From 8b7258c9427882bb1798f1502eaa35184c6e374e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:29:18 +0800
Subject: [PATCH] 短信指定楼栋发送
---
src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java | 155 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 123 insertions(+), 32 deletions(-)
diff --git a/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java b/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
index 319c1e0..e30f8ab 100644
--- a/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
+++ b/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
@@ -18,12 +18,14 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.apache.logging.log4j.util.Strings;
import org.flowable.idm.engine.impl.persistence.entity.UserEntity;
-import org.springblade.common.cache.SysCache;
+import org.springblade.common.param.CommonParamSet;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.modules.grid.entity.GridEntity;
import org.springblade.modules.grid.entity.GridmanEntity;
import org.springblade.modules.grid.excel.GridmanExcel;
@@ -63,13 +65,13 @@
@Override
public IPage<GridmanVO> selectGridmanPage(IPage<GridmanVO> page, GridmanVO gridman) {
- List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
- Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
- return page.setRecords(baseMapper.selectGridmanPage(page, gridman,regionChildCodesList,isAdministrator));
+ CommonParamSet commonParamSet = new CommonParamSet<>().invoke(GridmanVO.class, gridman);
+ return page.setRecords(baseMapper.selectGridmanPage(page, gridman, commonParamSet.getRegionChildCodesList(), commonParamSet.getIsAdministrator()));
}
/**
* 网格员表 自定义新增或修改
+ *
* @param gridman
* @return
*/
@@ -77,17 +79,23 @@
@Transactional(rollbackFor = Exception.class)
public boolean saveOrUpdateGridman(GridmanEntity gridman) {
boolean flag = false;
+ // 查询网格id
+ IGridService bean = SpringUtil.getBean(IGridService.class);
+ GridEntity gridEntity = bean.getOne(Wrappers.<GridEntity>lambdaQuery().eq(GridEntity::getGridCode, gridman.getGridCode()));
// 修改
- if (null!=gridman.getId()) {
+ if (null != gridman.getId()) {
+ // 更新网格id
+ gridman.setGridId(gridEntity.getId());
// 更新网格员信息
flag = updateById(gridman);
- }else {
+ } else {
// 新增
// 先判断用户表中是否已存在该用户,如果已存在则不新增,需要更新角色
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("is_deleted", 0).eq("account", gridman.getMobile());
List<User> list = userService.list(wrapper);
// 更新用户,查询是否需要更新角色
+ gridman.setGridId(gridEntity.getId());
if (list.size() > 0) {
// 默认取出第一个
User user = list.get(0);
@@ -101,22 +109,22 @@
gridman.setUserId(user.getId());
//匹配
QueryWrapper<GridmanEntity> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("is_deleted",0)
- .eq("grid_id",gridman.getGridId())
- .eq("user_id",gridman.getUserId());
+ queryWrapper.eq("is_deleted", 0)
+ .eq("grid_id", gridman.getGridId())
+ .eq("user_id", gridman.getUserId());
GridmanEntity one = getOne(queryWrapper);
- if (null==one){
+ if (null == one) {
flag = save(gridman);
}
} else {
saveUser(gridman);
//匹配
QueryWrapper<GridmanEntity> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("is_deleted",0)
- .eq("grid_id",gridman.getGridId())
- .eq("user_id",gridman.getUserId());
+ queryWrapper.eq("is_deleted", 0)
+ .eq("grid_id", gridman.getGridId())
+ .eq("user_id", gridman.getUserId());
GridmanEntity one = getOne(queryWrapper);
- if (null==one){
+ if (null == one) {
flag = save(gridman);
}
}
@@ -127,6 +135,7 @@
/**
* 用户新增
+ *
* @param gridman
*/
public void saveUser(GridmanEntity gridman) {
@@ -154,6 +163,7 @@
/**
* 网格员导入
+ *
* @param data
* @param isCovered
*/
@@ -162,19 +172,94 @@
public void importGridman(List<GridmanExcel> data, Boolean isCovered) {
// 遍历
for (GridmanExcel gridmanExcel : data) {
- GridmanEntity gridmanEntity = Objects.requireNonNull(BeanUtil.copy(gridmanExcel, GridmanEntity.class));
- // 通过社区名称和网格名称获取网格id
- QueryWrapper<GridEntity> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("is_deleted",0)
- .eq("grid_code",gridmanExcel.getGridCode());
- GridEntity gridEntity = gridService.getOne(queryWrapper);
- // 设置网格id
- gridmanEntity.setGridId(gridEntity.getId());
- // 插入网格员
- if (!Strings.isBlank(gridmanExcel.getMobile())) {
- saveOrUpdateGridman(gridmanEntity);
+ // 先查询是否有对应的用户
+ List<User> userList = userService.getUserListByPhoneOrAccount(gridmanExcel.getMobile());
+ if (userList.size()>0){
+ User user = userList.get(0);
+ // 判断角色是否包好网格员的角色,如果没有则加入网格员的角色,有则不更改
+ if (!user.getRoleId().contains("1717429261910528001")) {
+ // 更新角色
+ user.setRoleId(user.getRoleId() + "," + "1717429261910528001");
+ // 更新机构
+ setDeptId(gridmanExcel,user);
+ // 更新用户信息
+ userService.updateById(user);
+ // 更新网格员绑定
+ updateGridmanBind(gridmanExcel,user);
+ }
+ }else {
+ // 创建用户
+ User user = new User();
+ user.setTenantId("000000");
+ user.setUserType(1);
+ user.setRoleId("1717429261910528001");
+ user.setName(gridmanExcel.getGridmanName());
+ user.setRealName(gridmanExcel.getGridmanName());
+ user.setPhone(gridmanExcel.getMobile());
+ user.setAccount(gridmanExcel.getMobile());
+ // 更新机构
+ setDeptId(gridmanExcel,user);
+ // 设置默认密码
+ user.setPassword("123456");
+ // 保存
+ userService.submit(user);
+ // 更新网格员绑定
+ updateGridmanBind(gridmanExcel,user);
}
+
}
+ }
+
+ /**
+ * 更新网格员绑定
+ * @param gridmanExcel
+ * @param user
+ */
+ public void updateGridmanBind(GridmanExcel gridmanExcel, User user) {
+ // 保存更新网格员信息
+ GridmanEntity gridmanEntity = Objects.requireNonNull(BeanUtil.copy(gridmanExcel, GridmanEntity.class));
+ // 通过社区名称和网格名称获取网格id
+ QueryWrapper<GridEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_deleted", 0)
+ .eq("grid_code", gridmanExcel.getGridCode());
+ GridEntity gridEntity = gridService.getOne(queryWrapper);
+ // 设置网格id
+ gridmanEntity.setGridId(gridEntity.getId());
+ gridmanEntity.setUserId(user.getId());
+ // 插入网格员
+ // 判断是否已存,已存在则更新,否则插入
+ QueryWrapper<GridmanEntity> wrapper = new QueryWrapper<>();
+ wrapper.eq("is_deleted",0).eq("user_id",user.getId()).eq("grid_code",gridmanExcel.getGridCode());
+ GridmanEntity entity = getOne(wrapper);
+ if (null!=entity){
+ gridmanEntity.setId(entity.getId());
+ updateById(gridmanEntity);
+ }else {
+ save(gridmanEntity);
+ }
+ }
+
+ /**
+ * 更新机构
+ * @param gridmanExcel
+ * @param user
+ */
+ public void setDeptId(GridmanExcel gridmanExcel, User user) {
+ // 通过社区编号查询对应的机构id
+ Region region = SpringUtil.getBean(IRegionService.class).getById(gridmanExcel.getCommunityCode());
+ // 查询社区对应的机构
+ QueryWrapper<Dept> wrapper = new QueryWrapper<>();
+ wrapper.eq("is_deleted",0).eq("dept_name",region.getName());
+ Dept dept = SpringUtil.getBean(IDeptService.class).getOne(wrapper);
+ // 查询网格对应的机构
+ QueryWrapper<Dept> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_deleted",0).
+ eq("parent_id",dept.getId()).
+ eq("dept_name",gridmanExcel.getGridName());
+ System.out.println("网格名称 = " + gridmanExcel.getGridName());
+ Dept deptGrid = SpringUtil.getBean(IDeptService.class).getOne(queryWrapper);
+ // 设置机构
+ user.setDeptId(deptGrid.getId().toString());
}
/**
@@ -191,17 +276,22 @@
@Override
public Object getGridStatistics(String code, String roleType) {
Map<String, Object> objectObjectHashMap = new HashMap<>();
+ List<String> communityCodeList = Func.toStrList(code);
+ // 判断 communityCodeList
+ if (communityCodeList != null && communityCodeList.size() == 0) {
+ return objectObjectHashMap;
+ }
if (roleType.equals("2")) {
- Integer gridStatistics = baseMapper.getGridStatistics(code, null, roleType);
- Integer companyStatistics = baseMapper.getCompanyStatistics(code, null, roleType);
- Integer ownersCommitteeStatistics = baseMapper.getOwnersCommitteeStatistics(code, null, roleType);
+ Integer gridStatistics = baseMapper.getGridStatistics(communityCodeList, null, roleType);
+ Integer companyStatistics = baseMapper.getCompanyStatistics(communityCodeList, null, roleType);
+ Integer ownersCommitteeStatistics = baseMapper.getOwnersCommitteeStatistics(communityCodeList, null, roleType);
objectObjectHashMap.put("gridStatistics", gridStatistics);
objectObjectHashMap.put("companyStatistics", companyStatistics);
objectObjectHashMap.put("ownersStatistics", ownersCommitteeStatistics);
} else {
- Integer gridStatistics = baseMapper.getGridStatistics(code, AuthUtil.getUserId(), roleType);
- Integer companyStatistics = baseMapper.getCompanyStatistics(code, AuthUtil.getUserId(), roleType);
- Integer ownersCommitteeStatistics = baseMapper.getOwnersCommitteeStatistics(code, AuthUtil.getUserId(), roleType);
+ Integer gridStatistics = baseMapper.getGridStatistics(communityCodeList, AuthUtil.getUserId(), roleType);
+ Integer companyStatistics = baseMapper.getCompanyStatistics(communityCodeList, AuthUtil.getUserId(), roleType);
+ Integer ownersCommitteeStatistics = baseMapper.getOwnersCommitteeStatistics(communityCodeList, AuthUtil.getUserId(), roleType);
objectObjectHashMap.put("gridStatistics", gridStatistics);
objectObjectHashMap.put("companyStatistics", companyStatistics);
objectObjectHashMap.put("ownersStatistics", ownersCommitteeStatistics);
@@ -220,6 +310,7 @@
/**
* 查询网格id
+ *
* @param userId
* @return
*/
--
Gitblit v1.9.3