From 60b96e9221632debb08aaf5fb7abd8361a90c0fb Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 31 Jan 2024 19:59:33 +0800
Subject: [PATCH] 社区新增面,网格员网格处理调整
---
src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java | 101 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 90 insertions(+), 11 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..c6ed108 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
@@ -33,7 +33,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;
@@ -167,22 +171,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