From c10d6358b9f014375a13821465bc978d0c0da22e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Wed, 29 May 2024 17:17:08 +0800
Subject: [PATCH] 通过E呼即办数据统计
---
src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 98 insertions(+), 17 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 baaebc7..f9bc88c 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
@@ -23,6 +23,7 @@
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.SpringUtil;
@@ -33,7 +34,11 @@
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.grid.service.IGridmanService;
import org.springblade.modules.grid.vo.GridmanVO;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.entity.Region;
import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.service.IRegionService;
import org.springblade.modules.system.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -61,9 +66,8 @@
@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()));
}
/**
@@ -76,8 +80,13 @@
@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()) {
+ // 更新网格id
+ gridman.setGridId(gridEntity.getId());
// 更新网格员信息
flag = updateById(gridman);
} else {
@@ -87,9 +96,6 @@
wrapper.eq("is_deleted", 0).eq("account", gridman.getMobile());
List<User> list = userService.list(wrapper);
// 更新用户,查询是否需要更新角色
- // 查询网格id
- IGridService bean = SpringUtil.getBean(IGridService.class);
- GridEntity gridEntity = bean.getOne(Wrappers.<GridEntity>lambdaQuery().eq(GridEntity::getGridCode, gridman.getGridCode()));
gridman.setGridId(gridEntity.getId());
if (list.size() > 0) {
// 默认取出第一个
@@ -167,22 +173,97 @@
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());
+ }
+
+ /**
* 网格员查询
*
* @param gridman
--
Gitblit v1.9.3