Administrator
2022-05-18 644ed3e30bbee9a417dfbe649f2a72df25a7efb1
src/main/java/org/springblade/modules/FTP/DataHanlder.java
@@ -1,11 +1,8 @@
package org.springblade.modules.FTP;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import liquibase.pro.packaged.M;
import org.springblade.common.utils.DesensitizedUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.api.R;
import org.springblade.modules.dispatcher.entity.Dispatcher;
import org.springblade.modules.dispatcher.service.IDispatcherService;
import org.springblade.modules.experience.entity.Experience;
@@ -18,7 +15,6 @@
import org.springblade.modules.system.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -47,6 +43,9 @@
   @Autowired
   private IDeptService iDeptService;
   /**
    * 初始化
    */
@@ -61,6 +60,147 @@
      hanlder.iDeptService = this.iDeptService;
   }
   /**
    * 获取保安员证编号
    * @param json
    */
   public static void handlerSecurityNumerBit(String json) {
      Map map = JSON.parseObject(json, Map.class);
      //取出 key(uuid)
      String key = map.keySet().toArray()[0].toString();
      //编号前缀
      String pre = map.get(key).toString();
      Integer max = hanlder.userService.getSecurityPaperCount(pre);
      Result result = new Result(200, null, max.toString(),null);
      Map<String, Object> map1 = new HashMap<>(1);
      map1.put(key, result);
      //向外网发送数据
      FtpUtil.objectFileUploadSecurityNumberCount(map1);
   }
   /**
    * 培训报名数据处理
    * @param json
    */
   public static void handlerListTrain(String json) {
      Map map = JSON.parseObject(json, Map.class);
      //取出 key(uuid)
      String key = map.keySet().toArray()[0].toString();
      Object users = map.get(key);
      List<String > userList = JSON.parseArray(users.toString(), String.class);
      //遍历
      if (userList.size()>0) {
         List<Result> resultList = new ArrayList<>();
         //开始遍历
         for (String userId : userList) {
            //校验用户年龄
            int age = hanlder.userService.getUserAge(Long.parseLong(userId));
            //创建返回对象
            Result result1 = new Result();
            result1.setUserId(Long.parseLong(userId));
            if (age>=18 && age<=60) {
               //年龄符合要求
               result1.setCode(200);
            } else {
               //年龄不符合要求
               result1.setCode(201);
            }
            //存入结果集
            resultList.add(result1);
         }
         Result result = new Result(200, "", resultList);
         Map<String, Object> map1 = new HashMap<>(1);
         map1.put(key, result);
         //向外网发送数据
         FtpUtil.objectFileUploadListTrain(map1);
      }
   }
   /**
    * 数据处理(集合)
    * @param json
    */
   public static void handlerList(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<>();
         //创建更新用户集合对象
         List<User> updateUser = new ArrayList<>();
         //开始遍历
         for (User user : userList) {
            //取出 uuid
            String uuid = user.getReasonForLeav();
            //用户数据校验,是否已导入(本单位或其他单位)
            Result result = userCheckOut(user);
            //创建返回对象
            Result result1 = new Result();
            if (result.getCode() == 200) {
               user.setReasonForLeav("");
               //校验保安员证编号
               Result result2 = hanlder.checkSecurityNumber(user);
               User user1 = result2.getUser();
               //去新增
               boolean save = hanlder.userService.save(user1);
               if (save) {
                  //异步新增从业记录
                  hanlder.myAsyncService.insertExperience(user1);
                  //异步审查
                  hanlder.myAsyncService.checkUserExamineByCardNo(user1);
               }
               if (result2.getCode() == 200) {
                  //设置返回结果
                  result1.setCode(200);
                  result1.setUserId(user1.getId());
               } else {
                  //设置返回结果
                  result1.setCode(203);
                  result1.setUserId(user1.getId());
               }
            } else if (result.getCode() == 201) {
               //去修改
               user.setReasonForLeav("");
               User data = result.getUser();
               user.setId(data.getId());
               user.setCreateTime(data.getCreateTime());
               //校验保安员证编号
               Result result2 = hanlder.checkSecurityNumber(user);
               User user2 = result2.getUser();
               user2.setId(data.getId());
               hanlder.userService.updateById(user2);
               //设置返回结果
               if (result2.getCode() == 200) {
                  result1.setCode(201);
                  result1.setUserId(user.getId());
               } else {
                  //设置返回结果
                  result1.setCode(203);
                  result1.setUserId(user.getId());
               }
            } else {
               //不新增,不修改
               //设置返回结果,以在其他单位存在
               result1.setCode(202);
               result1.setUserId(null);
            }
            result1.setMsg(uuid);
            //存入结果集
            resultList.add(result1);
         }
         Result result = new Result(200, "", resultList);
         Map<String, Object> map1 = new HashMap<>(1);
         map1.put(key, result);
         System.out.println("map1 = " + map1);
         //向外网发送数据
         FtpUtil.objectFileUploadList(map1);
      }
   }
   /**
    * 数据处理
@@ -74,6 +214,8 @@
         Map map = JSON.parseObject(s, Map.class);
         Object user = map.get("user");
         User user1 = JSON.parseObject(user.toString(), User.class);
         System.out.println("user1 = " + user1);
         //获取 uuid
         String uuid = user1.getReasonForLeav();
         //用户数据校验
@@ -88,6 +230,8 @@
            //去新增
            boolean save = hanlder.userService.save(user2);
            if (save){
               //异步新增从业记录
               hanlder.myAsyncService.insertExperience(user2);
               //异步审查
               hanlder.myAsyncService.checkUserExamineByCardNo(user2);
            }
@@ -109,6 +253,8 @@
            user1.setReasonForLeav("");
            User data = result.getUser();
            user1.setId(data.getId());
            user1.setCreateTime(data.getCreateTime());
            //校验保安员证编号
            Result result2 = hanlder.checkSecurityNumber(user1);
            User user2 = result2.getUser();
@@ -135,6 +281,7 @@
         }
         Map<String, Object> map1 = new HashMap<>(1);
         map1.put(uuid,result1);
         System.out.println("用户新增:开始向外网推送数据............");
         //向外网发送数据
         FtpUtil.objectFileUpload(map1);
      }
@@ -248,8 +395,8 @@
         //内网同步
         String s = "insert into sys_experience(id,name,entryTime,departureTime,leaving,cardId,companyname,securityId) " +
            "values(" + "'" + experience.getId() + "'" + "," +
            "'" + experience.getName() + "'" + "," +
            "values(" + "'" + experience.getId() + "'" +
            "," + "'" + experience.getName() + "'" +
            "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getEntrytime()) + "'" +
            "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getDeparturetime()) + "'" +
            "," + "'" + experience.getLeaving() + "'" +
@@ -270,7 +417,10 @@
      //2.保安证编号校验
      //判断是否持证
      boolean states = false;
      if (user.getHold().equals("1") && null!=user.getSecuritynumber() && !user.getSecuritynumber().equals("")){
      if (null!= user.getHold()
         && user.getHold().equals("1")
         && null!=user.getSecuritynumber()
         && !user.getSecuritynumber().equals("")){
         //持证,校验保安证编号是否合法
         SecurityPaper securityPaper = new SecurityPaper();
         securityPaper.setIdCardNo(user.getCardid());
@@ -289,6 +439,8 @@
            states = false;
            user.setHold("2");
         }
      }else {
         states = true;
      }
      if (!states) {