钟日健
2022-05-06 61cfb19a3864e70cedaa8de38f4caf032f528455
src/main/java/org/springblade/modules/FTP/MyAsyncService.java
@@ -2,14 +2,20 @@
import org.json.JSONArray;
import org.json.JSONObject;
import org.springblade.common.utils.DesensitizedUtil;
import org.springblade.common.utils.InvestigateUtil;
import org.springblade.modules.experience.entity.Experience;
import org.springblade.modules.experience.service.IExperienceService;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
@@ -21,13 +27,49 @@
   @Autowired
   private IUserService userService;
   @Autowired
   private IDeptService iDeptService;
   @Autowired
   private IExperienceService experienceService;
   /**
    * FTP
    * @param s sql语句
    */
   @Async
   public void FTP(String s) {
      FtpUtil.sqlFileUpload(s);
   }
   /**
    * FTP 审查结果推送
    * @param s sql语句
    */
   @Async
   public void FTP1(String s) {
      //为防止外网尚未更新完成,休眠2秒发送第一次
      try {
         Thread.sleep(2);
      } catch (InterruptedException e) {
         e.printStackTrace();
      }
      FtpUtil.sqlFileUpload(s);
      FTP2(s);
   }
   /**
    * FTP 审查结果推送
    * @param s sql语句
    */
   @Async
   public void FTP2(String s) {
      //休眠30s,再次发送一次
      try {
         Thread.sleep(30);
      } catch (InterruptedException e) {
         e.printStackTrace();
      }
      FtpUtil.sqlFileUpload(s);
   }
@@ -38,14 +80,11 @@
    */
   @Async
   public void checkUserExamineByCardNo(User user0){
      User byId = userService.getById(user0.getId());
      //如果是保安员
      if (user0.getRoleId().equals("1412226235153731586")){
         //读取身份证号
         String cardid = user0.getCardid();
         //创建用户对象
         User user = new User();
         user.setId(user.getId());
         user.setId(user0.getId());
         //远程调用接口
         String body = InvestigateUtil.httpGetOne(user0.getCardid());
         JSONObject jsonObject = new JSONObject(body);
@@ -54,6 +93,7 @@
         JSONArray res = jsonData.getJSONArray("res");
         //设置审核时间
         user.setAuditTime(new Date());
         //如果有结果返回
         if (res.length() == 0) {
            //没有数据正常
            user.setExaminationType("0");
@@ -67,7 +107,7 @@
               ) {
                  user.setExaminationMx(res.getJSONObject(i).get("zdrylbjh").toString());
                  //更新用户数据
                  userService.updateById(user);
//                  userService.updateById(user);
                  break;
               }
               if (res.getJSONObject(i).get("zdryxlmc").toString() != null
@@ -76,7 +116,7 @@
               ) {
                  user.setExaminationMx(res.getJSONObject(i).get("zdryxlmc").toString());
                  //更新用户数据
                  userService.updateById(user);
//                  userService.updateById(user);
                  break;
               }
               if (res.getJSONObject(i).get("ztrylx").toString() != null
@@ -85,7 +125,7 @@
               ) {
                  user.setExaminationMx(res.getJSONObject(i).get("ztrylx").toString());
                  //更新用户数据
                  userService.updateById(user);
//                  userService.updateById(user);
                  break;
               }
               count++;
@@ -93,14 +133,61 @@
               if (count==res.length()){
                  //更新用户数据,设为正常
                  user.setExaminationType("0");
                  userService.updateById(user);
//                  userService.updateById(user);
               }
            }
         }
         //更新用户数据
         userService.updateById(user);
         //同时更新外网用户信息
         String s1 = "update blade_user set examination_type = " + user.getExaminationType() +
            ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
            " where id = " + "'" + user.getId() + "'";
         FTP1(s1);
      }
   }
   /**
    * 异步新增用户从业记录
    * @param user
    */
   @Async
   public void insertExperience(User user) {
      //根据公司名查询单位
      Dept dept = iDeptService.getById(user.getDeptId());
      Experience experience = new Experience();
      experience.setCompanyname(dept.getDeptName());
      //新增
      if (null != user.getRtime()) {
         experience.setEntrytime(user.getRtime());
      } else {
         experience.setEntrytime(new Date());
      }
      experience.setDeparturetime(new Date());
      experience.setName(user.getRealName());
      if (null != user.getReasonForLeav() && !user.getReasonForLeav().equals("")) {
         experience.setLeaving(user.getReasonForLeav());
      }
      experience.setCardid(user.getCardid());
      experience.setSecurityid(user.getId().toString());
      //新增
      experienceService.save(experience);
      // 身份证号脱敏
      String cardid = DesensitizedUtil.desensitizedIdNumberBy4(user.getCardid());
      //内网同步
      String s = "insert into sys_experience(id,name,entryTime,departureTime,leaving,cardId,companyname,securityId) " +
         "values(" + "'" + experience.getId() + "'" +
         "," + "'" + experience.getName() + "'" +
         "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getEntrytime()) + "'" +
         "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getDeparturetime()) + "'" +
         "," + "'" + experience.getLeaving() + "'" +
         "," + "'" + cardid + "'" +
         "," + "'" + experience.getCompanyname() + "'" +
         "," + "'" + experience.getSecurityid() + "'"
         + ")";
      //向外网推送
      FTP(s);
   }
}