Administrator
2022-06-15 381f50210befd68e70c33af4b547a69d2b403181
src/main/java/org/springblade/modules/FTP/DataHanlder.java
@@ -1,7 +1,10 @@
package org.springblade.modules.FTP;
import com.alibaba.fastjson.JSON;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springblade.common.utils.DesensitizedUtil;
import org.springblade.common.utils.InvestigateUtil;
import org.springblade.common.utils.SecurityPaperUtil;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
@@ -21,6 +24,7 @@
import org.springblade.modules.system.service.IUserService;
import org.springblade.modules.system.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.text.DecimalFormat;
@@ -396,6 +400,170 @@
   }
   /**
    * 管理人员保安员导入并生成保安证编号
    * @param json
    */
   public static void handlerSecurityPaperList(String json) {
      Map map = JSON.parseObject(json, Map.class);
      //取出 key(uuid)
      String key = map.keySet().toArray()[0].toString();
      Object users = map.get(key);
      List<User> userList = JSON.parseArray(users.toString(), User.class);
      //遍历
      if (userList.size()>0) {
         List<Result> resultList = new ArrayList<>();
         //开始遍历
         for (User user : userList) {
            //取出 uuid
            String uuid = user.getReasonForLeav();
            //用户数据校验,是否已导入(本单位或其他单位)
            Result result = userCheckOut(user);
            //创建返回对象
            Result result1 = new Result();
            result1.setMsg(uuid);
            if (result.getCode() == 200) {
               user.setReasonForLeav("");
               //直接去审查,审查异常则不新增
               //异步审查
               User user1 = hanlder.checkUserExamineByCardNos(user);
               if (null!=user1){
                  if (user1.getExaminationType().equals("0")){
                     //生成保安证编号和记录
                     //去生成保安证编号
                     String pre = SecurityPaperUtil.getSecurityPaper();
                     //查询当前年份已有的保安证编号
                     int count = hanlder.userService.getSecurityPaperCount(pre);
                     String result0 = null;
                     if (count == 0) {
                        result0 = pre + "00001";
                     } else {
                        //格式化
                        DecimalFormat decimalFormat = new DecimalFormat("00000");
                        count++;
                        result0 = pre + (decimalFormat.format(count));
                     }
                     //修改制证状态为未制证
                     user.setUserType(7);
                     user.setSecuritynumber(result0);
                     //修改为持证保安
                     user.setHold("1");
                     user.setUpdateTime(new Date());
                     //更新保安数据
                     boolean save = hanlder.userService.save(user);
                     if (save) {
                        //生成保安证的同时向保安证管理表中插入一条数据
                        SecurityPaper securityPaper = new SecurityPaper();
                        securityPaper.setUserId(user.getId());
                        securityPaper.setNumber(result0);
                        securityPaper.setCreateTime(new Date());
                        securityPaper.setIdCardNo(user.getCardid());
                        securityPaper.setPeopleName(user.getRealName());
                        securityPaper.setSource(3);
                        hanlder.securityPaperService.save(securityPaper);
                        //异步新增从业记录
                        hanlder.myAsyncService.insertExperience(user);
                        //设置返回结果
                        result1.setCode(200);
                        result1.setUserId(user.getId());
                        result1.setMsg(result1.getMsg()+","+DesensitizedUtil.desensitizedSecurityNumber(result0));
                     }
                  }else {
                     //不新增,审查异常
                     result1.setCode(205);
                     result1.setUserId(null);
                  }
               }
            } else if (result.getCode() == 201) {
            } else {
               //不新增,不修改
               //设置返回结果,以在其他单位存在
               result1.setCode(202);
               result1.setUserId(null);
            }
            //存入结果集
            resultList.add(result1);
         }
         Result result = new Result(200, "", resultList);
         Map<String, Object> map1 = new HashMap<>(1);
         map1.put(key, result);
         //向外网发送数据
         FtpUtil.objectFileUploadPaperList(map1);
      }
   }
   /**
    * 异步审查新增的保安员,审查通过并生成保安员证编号
    * @param user0
    */
   public User checkUserExamineByCardNos(User user0){
      //如果是保安员
      if (user0.getRoleId().equals("1412226235153731586")){
         //创建用户对象
         User user = new User();
         user.setId(user0.getId());
         //远程调用接口
         String body = InvestigateUtil.httpGetOne(user0.getCardid());
         JSONObject jsonObject = new JSONObject(body);
         Object data = jsonObject.get("data");
         JSONObject jsonData = new JSONObject(data.toString());
         JSONArray res = jsonData.getJSONArray("res");
         //设置审核时间
         user.setAuditTime(new Date());
         //如果有结果返回
         if (res.length() == 0) {
            //没有数据正常
            user.setExaminationType("0");
         } else {
            int count = 0;
            user.setExaminationType("1");
            for (int i = 0; i < res.length(); i++) {
               if (res.getJSONObject(i).get("zdrylbjh").toString() != null
                  && res.getJSONObject(i).get("zdrylbjh").toString() != ""
                  && res.getJSONObject(i).get("zdrylbjh").toString() != "null"
               ) {
                  user.setExaminationMx(res.getJSONObject(i).get("zdrylbjh").toString());
                  //更新用户数据
//                  userService.updateById(user);
                  break;
               }
               if (res.getJSONObject(i).get("zdryxlmc").toString() != null
                  && res.getJSONObject(i).get("zdryxlmc").toString() != ""
                  && res.getJSONObject(i).get("zdryxlmc").toString() != "null"
               ) {
                  user.setExaminationMx(res.getJSONObject(i).get("zdryxlmc").toString());
                  //更新用户数据
//                  userService.updateById(user);
                  break;
               }
               if (res.getJSONObject(i).get("ztrylx").toString() != null
                  && res.getJSONObject(i).get("ztrylx").toString() != ""
                  && res.getJSONObject(i).get("ztrylx").toString() != "null"
               ) {
                  user.setExaminationMx(res.getJSONObject(i).get("ztrylx").toString());
                  //更新用户数据
//                  userService.updateById(user);
                  break;
               }
               count++;
               //条件中的数据都为空,则审查为正常
               if (count==res.length()){
                  //更新用户数据,设为正常
                  user.setExaminationType("0");
//                  userService.updateById(user);
               }
            }
         }
         //更新用户数据
         return user;
      }
      return null;
   }
   /**
    * 数据处理(单个保安员新增)
    * @param json
    */