| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | count++; |
| | | result = pre + (decimalFormat.format(count)); |
| | | } |
| | | //脱敏处理 |
| | | user.setSecuritynumber(DesensitizedUtil.desensitizedSecurityNumber(result)); |
| | | user.setSecuritynumber(result); |
| | | //修改为持证保安 |
| | | user.setHold("1"); |
| | | user.setUpdateTime(new Date()); |
| | | user.setUserType(7); |
| | | //更新保安数据 |
| | | hanlder.userService.updateById(user); |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 管理人员保安员导入并生成保安证编号 |
| | | * @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 |
| | | */ |
| | |
| | | && user.getHold().equals("1") |
| | | && null!=user.getSecuritynumber() |
| | | && !user.getSecuritynumber().equals("")){ |
| | | //截取,这个范围的不校验 |
| | | String pre = user.getSecuritynumber().substring(0,6); |
| | | String number = user.getSecuritynumber().substring(6); |
| | | if (pre.equals("赣洪2022")){ |
| | | int num = Integer.parseInt(number); |
| | | if (num>=22110 && num<=23110){ |
| | | return new Result(200,null,"",user); |
| | | } |
| | | } |
| | | //持证,校验保安证编号是否合法 |
| | | SecurityPaper securityPaper = new SecurityPaper(); |
| | | securityPaper.setIdCardNo(user.getCardid()); |
| | |
| | | } |
| | | if (!states){ |
| | | user.setHold("2"); |
| | | user.setSecuritynumber(""); |
| | | } |
| | | }else { |
| | | states = false; |
| | | user.setHold("2"); |
| | | user.setSecuritynumber(""); |
| | | } |
| | | }else { |
| | | states = true; |