zhongrj
2024-01-30 b3362ed634780027ff5e726c7eb15c0ca7c5d795
社区民警处理
6 files modified
2 files added
237 ■■■■■ changed files
src/main/java/org/springblade/modules/system/controller/DeptController.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/UserController.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/excel/PoliceUserExcel.java 39 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/excel/PoliceUserImporter.java 23 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/IDeptService.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/IUserService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java 61 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java 81 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/DeptController.java
@@ -198,6 +198,14 @@
        return R.data(deptService.dataHandle());
    }
    /**
     * 数据处理(社区绑定)-- 处理社区
     */
    @GetMapping("/dataHandleCommunity")
    public R dataHandleCommunity() {
        return R.data(deptService.dataHandleCommunity());
    }
    /**
     * 数据处理(区域网格编号绑定)
src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -45,6 +45,8 @@
import org.springblade.core.tool.utils.StringPool;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.excel.PoliceUserExcel;
import org.springblade.modules.system.excel.PoliceUserImporter;
import org.springblade.modules.system.excel.UserExcel;
import org.springblade.modules.system.excel.UserImporter;
import org.springblade.modules.system.service.IUserService;
@@ -431,4 +433,15 @@
        return R.data(userService.handleUser());
    }
    /**
     * 民警数据导入
     */
    @PostMapping("/policemanDataHandle")
    public R policemanDataHandle(MultipartFile file) {
        PoliceUserImporter policeUserImporter = new PoliceUserImporter(userService);
        ExcelUtil.save(file, policeUserImporter, PoliceUserExcel.class);
        return R.success("操作成功");
    }
}
src/main/java/org/springblade/modules/system/excel/PoliceUserExcel.java
New file
@@ -0,0 +1,39 @@
package org.springblade.modules.system.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import java.io.Serializable;
/**
 * UserExcel
 *
 * @author Chill
 */
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class PoliceUserExcel implements Serializable {
    private static final long serialVersionUID = 1L;
    @ColumnWidth(10)
    @ExcelProperty("姓名")
    private String realName;
    @ColumnWidth(15)
    @ExcelProperty("手机")
    private String phone;
    @ColumnWidth(15)
    @ExcelProperty("社区代码")
    private String communityCode;
    @ColumnWidth(15)
    @ExcelProperty("派出所名称")
    private String policeStationName;
}
src/main/java/org/springblade/modules/system/excel/PoliceUserImporter.java
New file
@@ -0,0 +1,23 @@
package org.springblade.modules.system.excel;
import lombok.RequiredArgsConstructor;
import org.springblade.core.excel.support.ExcelImporter;
import org.springblade.modules.system.service.IUserService;
import java.util.List;
/**
 * 民警用户数据导入类
 *
 * @author Chill
 */
@RequiredArgsConstructor
public class PoliceUserImporter implements ExcelImporter<PoliceUserExcel> {
    private final IUserService service;
    @Override
    public void save(List<PoliceUserExcel> data) {
        service.importPoliceUser(data);
    }
}
src/main/java/org/springblade/modules/system/service/IDeptService.java
@@ -132,4 +132,9 @@
     * 数据处理(区域网格编号绑定)
     */
    Object dataRegionGridCodeBindHandle();
    /**
     * 数据处理(社区绑定)-- 处理社区
     */
    Object dataHandleCommunity();
}
src/main/java/org/springblade/modules/system/service/IUserService.java
@@ -26,6 +26,7 @@
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.entity.UserInfo;
import org.springblade.modules.system.entity.UserOauth;
import org.springblade.modules.system.excel.PoliceUserExcel;
import org.springblade.modules.system.excel.UserExcel;
import org.springblade.modules.system.vo.UserDetailVO;
import org.springblade.modules.system.vo.UserVO;
@@ -256,4 +257,10 @@
    List<User> getUserInfoByPropertyId(String propertyCompanyId,String roleId);
    Object handleUser();
    /**
     * 导入民警信息
     * @param data
     */
    void importPoliceUser(List<PoliceUserExcel> data);
}
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -29,12 +29,16 @@
import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.modules.community.entity.CommunityEntity;
import org.springblade.modules.community.service.ICommunityService;
import org.springblade.modules.grid.entity.GridEntity;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.property.entity.PropertyCompanyEntity;
import org.springblade.modules.property.service.IPropertyCompanyService;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.entity.Region;
import org.springblade.modules.system.mapper.DeptMapper;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.service.IRegionService;
@@ -312,24 +316,65 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Object dataHandle() {
        // 查询未绑定的网格
        List<TreeStringNode> list = regionService.getTree(null);
        // 查询所有的社区
        QueryWrapper<Region> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("district_code","361102").eq("region_level",5);
        List<Region> list = regionService.list(queryWrapper);
        // 遍历
        for (TreeStringNode treeStringNode : list) {
        for (Region region : list) {
            // 查询是否已创建
            QueryWrapper<Dept> wrapper = new QueryWrapper<>();
            wrapper.eq("is_deleted", 0).eq("dept_name", treeStringNode.getName());
            wrapper.eq("is_deleted", 0).eq("dept_name", region.getName());
            Dept one = getOne(wrapper);
            if (null == one) {
                // 新增
                Dept dept = new Dept();
                dept.setParentId(1733066387113734145L);
                dept.setFullName(treeStringNode.getName());
                dept.setDeptName(treeStringNode.getName());
                dept.setFullName(region.getName());
                dept.setDeptName(region.getName());
                dept.setDeptCategory(1);
                dept.setTenantId("000000");
                // 查询上级id
                QueryWrapper<Dept> deptQueryWrapper = new QueryWrapper<>();
                deptQueryWrapper.eq("is_deleted", 0).eq("dept_name", region.getTownName());
                Dept parentDept = getOne(deptQueryWrapper);
                if (null!=parentDept){
                    dept.setParentId(parentDept.getId());
                    dept.setAncestors(parentDept.getAncestors() + "," + parentDept.getId());
                }
                dept.setRegionCode(region.getCode());
                // 新增
                save(dept);
                saveOrUpdate(dept);
                // 插入社区表数据
            }
        }
        return null;
    }
    /**
     * 数据处理(社区绑定)--处理机构
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Object dataHandleCommunity() {
        // 查询所有的社区
        QueryWrapper<Region> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("district_code","361102").eq("region_level",5);
        List<Region> list = regionService.list(queryWrapper);
        // 遍历
        for (Region region : list) {
            // 查询是否已创建
            QueryWrapper<CommunityEntity> wrapper = new QueryWrapper<>();
            wrapper.eq("is_deleted", 0).eq("name", region.getName());
            CommunityEntity one = SpringUtil.getBean(ICommunityService.class).getOne(wrapper);
            if (null == one) {
                // 新增
                CommunityEntity communityEntity = new CommunityEntity();
                communityEntity.setStreetCode(region.getTownCode());
                communityEntity.setName(region.getName());
                communityEntity.setCode(region.getCode());
                // 新增
                SpringUtil.getBean(ICommunityService.class).save(communityEntity);
            }
        }
        return null;
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -19,6 +19,7 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
@@ -42,6 +43,8 @@
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.*;
import org.springblade.modules.auth.enums.UserEnum;
import org.springblade.modules.community.entity.CommunityEntity;
import org.springblade.modules.community.service.ICommunityService;
import org.springblade.modules.grid.service.IGridmanService;
import org.springblade.modules.house.entity.HouseholdEntity;
import org.springblade.modules.house.service.IHouseholdService;
@@ -49,12 +52,10 @@
import org.springblade.modules.property.service.IPropertyCompanyDistrictService;
import org.springblade.modules.property.service.IPropertyCompanyService;
import org.springblade.modules.system.entity.*;
import org.springblade.modules.system.excel.PoliceUserExcel;
import org.springblade.modules.system.excel.UserExcel;
import org.springblade.modules.system.mapper.UserMapper;
import org.springblade.modules.system.service.IRoleService;
import org.springblade.modules.system.service.IUserDeptService;
import org.springblade.modules.system.service.IUserOauthService;
import org.springblade.modules.system.service.IUserService;
import org.springblade.modules.system.service.*;
import org.springblade.modules.system.vo.UserDetailVO;
import org.springblade.modules.system.vo.UserVO;
import org.springblade.modules.system.wrapper.UserWrapper;
@@ -561,4 +562,76 @@
        }
        return null;
    }
    /**
     * 导入民警信息
     * @param data
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void importPoliceUser(List<PoliceUserExcel> data) {
        for (PoliceUserExcel userExcel : data) {
            // 查询用户
            List<User> list = getUserListByPhoneOrAccount(userExcel.getPhone());
            if (list.size()>0){
                User userInfo = list.get(0);
                // 判断角色
                if (!userInfo.getRoleId().contains("1727864411451359233")){
                    userInfo.setRoleId(userInfo.getRoleId() + ",1727864411451359233");
                    // 更新
                    updateById(userInfo);
                    // 更新社区民警绑定信息
                    updateCommunityInfo(userExcel,userInfo);
                }
            }else {
                // 插入用户角色
                User user = new User();
                user.setTenantId("000000");
                user.setUserType(1);
                user.setRoleId("1727864411451359233");
                user.setName(userExcel.getRealName());
                user.setRealName(userExcel.getRealName());
                user.setPhone(userExcel.getPhone());
                user.setAccount(userExcel.getPhone());
                // 查询机构
                QueryWrapper<Dept> queryWrapper = new QueryWrapper<>();
                queryWrapper.eq("is_deleted",0).eq("dept_name",userExcel.getPoliceStationName());
                Dept dept = SpringUtil.getBean(IDeptService.class).getOne(queryWrapper);
                if (null!=dept){
                    user.setDeptId(dept.getId().toString());
                }
                user.setPassword("123456");
                // 保存
                submit(user);
                // 更新社区民警绑定信息
                updateCommunityInfo(userExcel,user);
            }
        }
    }
    /**
     * 更新社区民警绑定信息
     * @param userExcel
     * @param user
     */
    public void updateCommunityInfo(PoliceUserExcel userExcel, User user) {
        QueryWrapper<CommunityEntity> wrapper = new QueryWrapper<>();
        System.out.println("wrapper = " + userExcel.getCommunityCode());
        wrapper.eq("is_deleted",0).eq("code",userExcel.getCommunityCode());
        CommunityEntity one = SpringUtil.getBean(ICommunityService.class).getOne(wrapper);
        if (null!=one){
            String userId = user.getId().toString();
            if (!Strings.isBlank(one.getResPoliceUserId())){
                if(!one.getResPoliceUserId().contains(userId)) {
                    one.setResPoliceUserId(one.getResPoliceUserId() + "," + userId);
                    // 更新
                    SpringUtil.getBean(ICommunityService.class).updateById(one);
                }
            }else {
                one.setResPoliceUserId(userId);
                // 更新
                SpringUtil.getBean(ICommunityService.class).updateById(one);
            }
        }
    }
}