智慧保安后台管理-外网
Administrator
2022-06-17 e41884a4ce0e0bfa38a708b633285e4a58cca2c3
修改人员导入的方法
3 files modified
269 ■■■■ changed files
src/main/java/org/springblade/modules/securitypaper/controller/SecurityPaperController.java 16 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/securitypaper/excel/SecurityPaperExcel.java 24 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/securitypaper/service/impl/SecurityPaperServiceImpl.java 229 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/securitypaper/controller/SecurityPaperController.java
@@ -119,19 +119,19 @@
    public void exportSecurity(HttpServletResponse response) throws IOException {
        List<SecurityPaperExcel> list = new ArrayList<>();
        SecurityPaperExcel securityExcel = new SecurityPaperExcel();
        securityExcel.setDeptId("xxx保安公司");
        securityExcel.setId("12124121245121");
        securityExcel.setRealName("张三");
        securityExcel.setPhone("12345678901");
        securityExcel.setCardid("360XXX19XXXXXX****");
        securityExcel.setRegistered("江西省南昌市******");
//        securityExcel.setPhone("12345678901");
//        securityExcel.setCardid("360XXX19XXXXXX****");
//        securityExcel.setRegistered("江西省南昌市******");
        list.add(securityExcel);
        SecurityPaperExcel securityExcel1 = new SecurityPaperExcel();
        securityExcel1.setDeptId("xxx保安公司");
        securityExcel.setId("12124121245121");
        securityExcel1.setRealName("李四");
        securityExcel1.setPhone("12345678901");
        securityExcel1.setCardid("360XXX19XXXXXX****");
        securityExcel1.setRegistered("江西省南昌市******");
//        securityExcel1.setPhone("12345678901");
//        securityExcel1.setCardid("360XXX19XXXXXX****");
//        securityExcel1.setRegistered("江西省南昌市******");
        list.add(securityExcel1);
        String fileName = null;
        try {
src/main/java/org/springblade/modules/securitypaper/excel/SecurityPaperExcel.java
@@ -36,24 +36,24 @@
public class SecurityPaperExcel implements Serializable {
    private static final long serialVersionUID = 1L;
    @ExcelProperty("企业名称*")
    @ExcelProperty("编号*")
    @ColumnWidth(30)
    private String deptId;
    private String id;
    @ColumnWidth(10)
    @ExcelProperty("姓名*")
    private String realName;
    @ColumnWidth(15)
    @ExcelProperty("联系电话*")
    private String phone;
    @ExcelProperty("身份证号*")
    @ColumnWidth(20)
    private String cardid;
    @ExcelProperty("身份证住址*")
    private String registered;
//    @ColumnWidth(15)
//    @ExcelProperty("联系电话*")
//    private String phone;
//
//    @ExcelProperty("身份证号*")
//    @ColumnWidth(20)
//    private String cardid;
//
//    @ExcelProperty("身份证住址*")
//    private String registered;
}
src/main/java/org/springblade/modules/securitypaper/service/impl/SecurityPaperServiceImpl.java
@@ -10,6 +10,7 @@
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.DigestUtil;
import org.springblade.modules.FTP.Result;
import org.springblade.modules.exam.entity.ExamScore;
import org.springblade.modules.securitypaper.entity.SecurityPaper;
import org.springblade.modules.securitypaper.excel.SecurityPaperExcel;
import org.springblade.modules.securitypaper.mapper.SecurityPaperMapper;
@@ -38,6 +39,121 @@
    private final RedisTemplate redisTemplate;
//    /**
//     * 导入保安员证数据
//     * @param data
//     * @param isCovered
//     * @param deptId
//     */
//    @Override
//    public void importSecurityPaper(List<SecurityPaperExcel> data, Boolean isCovered, String deptId) {
//        //需要推送内网的保安员信息集合
//        List<User> userList = new ArrayList<>();
//        //年龄不符的保安员信息存入集合
//        List<String> cardErrorList = new ArrayList<>();
//        boolean flag = false;
//        for (SecurityPaperExcel paperExcel : data) {
//            User user = Objects.requireNonNull(BeanUtil.copy(paperExcel, User.class));
//            //设置部门id
//            String deptIds = userDeptService.selectIn(user.getDeptId());
//            if (null!=deptIds && !deptIds.equals("")) {
//                user.setDeptId(deptIds);
//            }else {
//                //如果deptIds 为空,则说明还没有改公司
//                throw new ServiceException("导入失败!公司名:["+user.getDeptId()+"]不存在!");
//            }
//
//            //身份证校验
//            if (null==user.getCardid() || user.getCardid().equals("")){
//                throw new ServiceException("导入失败!身份证号码不能为空!");
//            }
//            //身份证住址校验
//            if (null==user.getRegistered() || user.getRegistered().equals("")){
//                throw new ServiceException("导入失败!身份证住址不能为空!");
//            }
//            if (null!=user.getCardid() && !user.getCardid().equals("")){
//                //去除所有空格
//                String cardid = user.getCardid().replaceAll(" ", "");
//                //校验
//                boolean b = IdCardNoUtil.checkIdCardNo(cardid);
//                if(b){
//                    user.setCardid(cardid);
//                }else {
//                    flag = true;
//                    cardErrorList.add(user.getCardid());
////                        throw new ServiceException("导入失败!身份证号码[ "+user.getCardid()+" ]不正确,请核对!");
//                    continue;
//                }
//            }
//
//            // 设置租户ID
//            user.setTenantId("000000");
//            //默认在职
//            user.setStatus(1);
//            user.setIsDeleted(0);
//            //分配保安角色
//            user.setRoleId("1412226235153731586");
//
//            //默认设置未持证
//            user.setHold("2");
//
//            //性别
//            if (IdCardNoUtil.getSex(paperExcel.getCardid()).equals("男")) {
//                user.setSex(1);
//            }else {
//                user.setSex(2);
//            }
//
//            //设置账号
//            String realName = user.getRealName();
//            String cardid = user.getCardid();
//            user.setAccount(realName.substring(0,1)+cardid.substring(cardid.length()-4));
//            //加密
//            user.setPassword(DigestUtil.encrypt(user.getCardid().substring(user.getCardid().length() - 6)));
//            user.setCreateTime(new Date());
//            user.setUpdateTime(new Date());
//            user.setDispatch("1");
//            //待审查
//            user.setExaminationType("2");
//
//            //推送内网的数据
//            User user0 = Objects.requireNonNull(BeanUtil.copy(user,User.class));
//
//            //生成随机数
//            String uuid = UUID.randomUUID().toString();
//            //将 user 存入 redis
//            redisTemplate.opsForValue().set(uuid, JSON.toJSONString(user));
//            //user0 临时设置uuid 到 reason_for_leav 离职原因字段
//            user0.setReasonForLeav(uuid);
//            //加入集合
//            userList.add(user0);
//        }
//
//        //用户批量插入
//        if (userList.size()>0) {
//            //生成随机数
//            String uuid = UUID.randomUUID().toString();
//            //数据推送
//            Map<String, Object> map = new HashMap<>(1);
//            map.put(uuid, userList);
//            myAsyncService.FTPSecurityPaperAndUserImport(map);
//        }
//
//        //如果所有数据导入有一个异常
//        StringBuilder errorBuilder = new StringBuilder();
//        if (flag){
//            String errorAccount = StringUtils.join(cardErrorList, "\\\n");
//            errorBuilder.append("用户:[" + errorAccount + "]导入失败!身份证号码不正确,请核对!");
//        }
//
//        //抛出异常
//        if (errorBuilder.length()>0){
//            throw new ServiceException(errorBuilder.toString());
//        }
//
//    }
//
    /**
     * 导入保安员证数据
     * @param data
@@ -46,109 +162,18 @@
     */
    @Override
    public void importSecurityPaper(List<SecurityPaperExcel> data, Boolean isCovered, String deptId) {
        //需要推送内网的保安员信息集合
        List<User> userList = new ArrayList<>();
        //年龄不符的保安员信息存入集合
        List<String> cardErrorList = new ArrayList<>();
        boolean flag = false;
        for (SecurityPaperExcel paperExcel : data) {
            User user = Objects.requireNonNull(BeanUtil.copy(paperExcel, User.class));
            //设置部门id
            String deptIds = userDeptService.selectIn(user.getDeptId());
            if (null!=deptIds && !deptIds.equals("")) {
                user.setDeptId(deptIds);
            }else {
                //如果deptIds 为空,则说明还没有改公司
                throw new ServiceException("导入失败!公司名:["+user.getDeptId()+"]不存在!");
        if (data.size()>0){
            for (SecurityPaperExcel securityPaperExcel : data) {
                //去内网生成保安证编号,由内网生成,无需返回
                //数据推送
                Map<String, Object> map = new HashMap<>(1);
                ExamScore examScore = new ExamScore();
                examScore.setUserId(securityPaperExcel.getId());
                examScore.setExamId("0");
                examScore.setApplyId(0L);
                map.put("key",examScore);
                myAsyncService.FTPSecurityNumberBit(map);
            }
            //身份证校验
            if (null==user.getCardid() || user.getCardid().equals("")){
                throw new ServiceException("导入失败!身份证号码不能为空!");
            }
            //身份证住址校验
            if (null==user.getRegistered() || user.getRegistered().equals("")){
                throw new ServiceException("导入失败!身份证住址不能为空!");
            }
            if (null!=user.getCardid() && !user.getCardid().equals("")){
                //去除所有空格
                String cardid = user.getCardid().replaceAll(" ", "");
                //校验
                boolean b = IdCardNoUtil.checkIdCardNo(cardid);
                if(b){
                    user.setCardid(cardid);
                }else {
                    flag = true;
                    cardErrorList.add(user.getCardid());
//                        throw new ServiceException("导入失败!身份证号码[ "+user.getCardid()+" ]不正确,请核对!");
                    continue;
                }
            }
            // 设置租户ID
            user.setTenantId("000000");
            //默认在职
            user.setStatus(1);
            user.setIsDeleted(0);
            //分配保安角色
            user.setRoleId("1412226235153731586");
            //默认设置未持证
            user.setHold("2");
            //性别
            if (IdCardNoUtil.getSex(paperExcel.getCardid()).equals("男")) {
                user.setSex(1);
            }else {
                user.setSex(2);
            }
            //设置账号
            String realName = user.getRealName();
            String cardid = user.getCardid();
            user.setAccount(realName.substring(0,1)+cardid.substring(cardid.length()-4));
            //加密
            user.setPassword(DigestUtil.encrypt(user.getCardid().substring(user.getCardid().length() - 6)));
            user.setCreateTime(new Date());
            user.setUpdateTime(new Date());
            user.setDispatch("1");
            //待审查
            user.setExaminationType("2");
            //推送内网的数据
            User user0 = Objects.requireNonNull(BeanUtil.copy(user,User.class));
            //生成随机数
            String uuid = UUID.randomUUID().toString();
            //将 user 存入 redis
            redisTemplate.opsForValue().set(uuid, JSON.toJSONString(user));
            //user0 临时设置uuid 到 reason_for_leav 离职原因字段
            user0.setReasonForLeav(uuid);
            //加入集合
            userList.add(user0);
        }
        //用户批量插入
        if (userList.size()>0) {
            //生成随机数
            String uuid = UUID.randomUUID().toString();
            //数据推送
            Map<String, Object> map = new HashMap<>(1);
            map.put(uuid, userList);
            myAsyncService.FTPSecurityPaperAndUserImport(map);
        }
        //如果所有数据导入有一个异常
        StringBuilder errorBuilder = new StringBuilder();
        if (flag){
            String errorAccount = StringUtils.join(cardErrorList, "\\\n");
            errorBuilder.append("用户:[" + errorAccount + "]导入失败!身份证号码不正确,请核对!");
        }
        //抛出异常
        if (errorBuilder.length()>0){
            throw new ServiceException(errorBuilder.toString());
        }
    }
}