智慧保安后台管理-外网
Administrator
2022-03-07 ec3294d78c54a9707d9ef74626bc4709d5daa1b1
保安员批量导入修改,批量导入新增保安员证编号校验,同时向qfqk 推送数据
2 files modified
157 ■■■■ changed files
src/main/java/org/springblade/modules/system/service/MyAsyncService.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java 129 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/MyAsyncService.java
@@ -9,6 +9,7 @@
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.List;
import static org.springblade.common.config.FtpConfig.qfqkBaseApiUrl;
@@ -130,4 +131,31 @@
            e.printStackTrace();
        }
    }
    @Async
    public void batchUserList(List<User> userList) {
        for (User user : userList) {
            String requestUrl = qfqkBaseApiUrl + "/blade-user/securitySaves";
            System.out.println("用户 = " + user.getRealName() + "异步推送了!");
            UserDTO userDTO = new UserDTO();
            userDTO.setAccount(user.getAccount());
            userDTO.setCardid(user.getCardid());
            userDTO.setPassword(user.getPassword());
            userDTO.setSex(user.getSex());
            userDTO.setAvatar(user.getAvatar());
            userDTO.setStatus(user.getStatus());
            userDTO.setPhone(user.getPhone());
            userDTO.setIsDeleted(user.getIsDeleted());
            userDTO.setRealName(user.getRealName());
            //装换为 json
            JSONObject jsonObject = JSONObject.fromObject(userDTO);
            //发送请求
            try {
                HttpClientUtils.httpPostWithjson(requestUrl,jsonObject.toString());
                System.out.println("用户新增请求已发送....");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -50,6 +50,8 @@
import org.springblade.modules.information.service.IInformationService;
import org.springblade.modules.jurisdiction.entity.Jurisdiction;
import org.springblade.modules.jurisdiction.service.JurisdictionService;
import org.springblade.modules.securitypaper.entity.SecurityPaper;
import org.springblade.modules.securitypaper.service.SecurityPaperService;
import org.springblade.modules.system.entity.*;
import org.springblade.modules.system.excel.QrCodeExcel;
import org.springblade.modules.system.excel.SecurityExcel;
@@ -92,6 +94,7 @@
    private final JurisdictionService jurisdictionService;
    private final IExperienceService experienceService;
    private final MyAsyncService myAsyncService;
    private final SecurityPaperService securityPaperService;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -841,6 +844,8 @@
        List<String> errorList = new ArrayList<>();
        //年龄不符的保安员信息存入集合
        List<String> ageErrorList = new ArrayList<>();
        //保安员证编号不符的保安员信息存入集合
        List<String> securityInvalidList = new ArrayList<>();
        //将需要更新的保安员信息存入集合
        List<User> updateList = new ArrayList<>();
        //需要新增的保安员集合
@@ -850,6 +855,7 @@
        //导入状态,默认为true ,如果有一个出现问题则为 false
        AtomicBoolean status = new AtomicBoolean(true);
        AtomicBoolean agetStatus = new AtomicBoolean(true);
        AtomicBoolean securityInvalidStatus = new AtomicBoolean(true);
        //遍历
        for (SecurityExcel userExcel : data) {
            User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class));
@@ -891,6 +897,7 @@
                    continue;
                }
            }
            //判断当前用户是否已在本单位,如果是的更新数据
            User user1 = new User();
            user1.setAccount(user.getCardid());
@@ -907,6 +914,33 @@
                //判断是否持证
                if (null != userExcel.getSecuritynumber() && userExcel.getSecuritynumber() != "") {
                    user.setHold("1");
                    //校验保安员证编号是否合规
                    if (null!=userExcel.getSecuritynumber() && !userExcel.getSecuritynumber().equals("")){
                        //持证,校验保安证编号是否合法
                        SecurityPaper securityPaper = new SecurityPaper();
                        securityPaper.setIdCardNo(userExcel.getCardid());
                        List<SecurityPaper> securityPaperList = securityPaperService.list(Condition.getQueryWrapper(securityPaper));
                        if (securityPaperList.size()>0){
                            boolean state = false;
                            //遍历
                            for (SecurityPaper paper : securityPaperList) {
                                if (paper.getNumber().equals(user.getSecuritynumber())){
                                    state = true;
                                }
                            }
                            if (!state){
                                user.setHold("2");
                                user.setSecuritynumber(null);
                                securityInvalidList.add(userExcel.getCardid());
                                securityInvalidStatus.set(false);
                            }
                        }else {
                            user.setHold("2");
                            user.setSecuritynumber(null);
                            securityInvalidList.add(userExcel.getCardid());
                            securityInvalidStatus.set(false);
                        }
                    }
                }else {
                    user.setHold("2");
                }
@@ -969,19 +1003,40 @@
                        user2.setDeptId(dept1.getId().toString());
                        //判断是否持证
                        if (null != userExcel.getSecuritynumber() && userExcel.getSecuritynumber() != "") {
                            user.setHold("1");
                        }else {
                            user.setHold("2");
                        }
                        if (null != userExcel.getSecuritynumber() && userExcel.getSecuritynumber() != "") {
                            user2.setHold("1");
                            user2.setSecuritynumber(user.getSecuritynumber());
                            //校验保安员证编号是否合规
                            SecurityPaper securityPaper = new SecurityPaper();
                            securityPaper.setIdCardNo(userExcel.getCardid());
                            List<SecurityPaper> securityPaperList = securityPaperService.list(Condition.getQueryWrapper(securityPaper));
                            if (securityPaperList.size()>0){
                                boolean state = false;
                                //遍历
                                for (SecurityPaper paper : securityPaperList) {
                                    if (paper.getNumber().equals(user.getSecuritynumber())){
                                        state = true;
                                    }
                                }
                                if (!state){
                                    user2.setHold("2");
                                    user2.setSecuritynumber(null);
                                    securityInvalidList.add(userExcel.getCardid());
                                    securityInvalidStatus.set(false);
                                }
                            }else {
                                user2.setHold("2");
                                user2.setSecuritynumber(null);
                                securityInvalidList.add(userExcel.getCardid());
                                securityInvalidStatus.set(false);
                            }
                        }else {
                            user2.setHold("2");
                        }
                        //更新用户数据
                        user2.setUpdateTime(new Date());
                        this.updateById(user2);
                        //qfqk异步推送
                        myAsyncService.updateUserByQfqk(user2);
                        String s1 =
                            "update blade_user set hold = " + "'" + user2.getHold() + "'"
                                + ",securitynumber = " + "'" + user2.getSecuritynumber() + "'"
@@ -1005,6 +1060,30 @@
                    if (null != userExcel.getSecuritynumber() && userExcel.getSecuritynumber() != "") {
                        user2.setHold("1");
                        user2.setSecuritynumber(user.getSecuritynumber());
                        //校验保安员证编号是否合规
                        SecurityPaper securityPaper = new SecurityPaper();
                        securityPaper.setIdCardNo(userExcel.getCardid());
                        List<SecurityPaper> securityPaperList = securityPaperService.list(Condition.getQueryWrapper(securityPaper));
                        if (securityPaperList.size()>0){
                            boolean state = false;
                            //遍历
                            for (SecurityPaper paper : securityPaperList) {
                                if (paper.getNumber().equals(user.getSecuritynumber())){
                                    state = true;
                                }
                            }
                            if (!state){
                                user2.setHold("2");
                                user2.setSecuritynumber(null);
                                securityInvalidList.add(userExcel.getCardid());
                                securityInvalidStatus.set(false);
                            }
                        }else {
                            user2.setHold("2");
                            user2.setSecuritynumber(null);
                            securityInvalidList.add(userExcel.getCardid());
                            securityInvalidStatus.set(false);
                        }
                    }else {
                        user2.setHold("2");
                    }
@@ -1016,6 +1095,9 @@
                    user2.setUpdateTime(new Date());
                    //更新用户数据
                    this.updateById(user2);
                    //qfqk异步推送
                    myAsyncService.updateUserByQfqk(user2);
                    //内网数据sql
                    String s1 =
                        "update blade_user set hold = " + "'" + user2.getHold() + "'"
                            + ",securitynumber = " + "'" + user2.getSecuritynumber() + "'"
@@ -1031,6 +1113,8 @@
        //用户批量插入
        if (userList.size()>0) {
            baseMapper.batchUserList(userList);
            //用户批量插入异步推送
            myAsyncService.batchUserList(userList);
            //sql 拼接
            StringBuilder builder = new StringBuilder();
            StringBuilder builder1 = new StringBuilder();
@@ -1127,26 +1211,23 @@
//        System.out.println("导入时间: = " + (System.currentTimeMillis()-time));
        //如果所有数据导入有一个异常
        if (!status.get() || !agetStatus.get()){
            if (!status.get() && agetStatus.get()) {
                String errorAccount = StringUtils.join(errorList, "\\\n");
                throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
            }
            if (!agetStatus.get() && status.get()) {
                String errorAccount = StringUtils.join(ageErrorList, "\\\n");
                throw new ServiceException("用户:[" + errorAccount + "]导入失败!身份证号码不正确,请核对!");
            }
            if (!status.get() && !agetStatus.get()) {
                String errorAccount = StringUtils.join(errorList, "\\\n");
                String errorAgeAccount = StringUtils.join(ageErrorList, "\\\n");
                throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!"+
                    "用户:[" + errorAgeAccount + "]导入失败!身份证号码不正确,请核对!");
            }
        StringBuilder errorBuilder = new StringBuilder();
        if (!status.get()){
            String errorAccount = StringUtils.join(errorList, "\\\n");
            errorBuilder.append("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
        }
//        if (!status.get()) {
//            String errorAccount = StringUtils.join(errorList, "\\\n");
//            throw new ServiceException("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
//        }
        if (!agetStatus.get()){
            String errorAccount = StringUtils.join(ageErrorList, "\\\n");
            errorBuilder.append("用户:[" + errorAccount + "]导入失败!已在其他单位存在!");
        }
        if (!securityInvalidStatus.get()){
            String errorAccount = StringUtils.join(securityInvalidList, "\\\n");
            errorBuilder.append("用户:[" + errorAccount + "]保安证编号不匹配,请核实!也可通过提供保安证件信息提交核实申请!!");
        }
        //抛出异常
        if (errorBuilder.length()>0){
            throw new ServiceException(errorBuilder.toString());
        }
    }
    @Override