| | |
| | | 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.common.utils.SecurityPaperUtil; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.BeanUtil; |
| | | import org.springblade.modules.dispatcher.entity.Dispatcher; |
| | | import org.springblade.modules.dispatcher.service.IDispatcherService; |
| | | import org.springblade.modules.exam.entity.ExamPaper; |
| | | import org.springblade.modules.exam.entity.ExamScore; |
| | | import org.springblade.modules.exam.service.ExamScoreService; |
| | | import org.springblade.modules.experience.entity.Experience; |
| | | import org.springblade.modules.experience.service.IExperienceService; |
| | | import org.springblade.modules.securitypaper.entity.SecurityPaper; |
| | |
| | | import org.springblade.modules.system.entity.User; |
| | | import org.springblade.modules.system.service.IDeptService; |
| | | import org.springblade.modules.system.service.IUserService; |
| | | import org.springblade.modules.system.vo.UserVO; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | | import java.text.DecimalFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | |
| | | @Autowired |
| | | private IDeptService iDeptService; |
| | | |
| | | @Autowired |
| | | private ExamScoreService examScoreService; |
| | | |
| | | |
| | | |
| | | /** |
| | | |
| | | /** |
| | | * 初始化 |
| | | */ |
| | | @PostConstruct |
| | |
| | | hanlder.myAsyncService = this.myAsyncService; |
| | | hanlder.dispatcherService = this.dispatcherService; |
| | | hanlder.iDeptService = this.iDeptService; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 保安员审查 |
| | | * @param json |
| | | */ |
| | | public static void handlerUserExamine(String json) { |
| | | User user = JSON.parseObject(json, User.class); |
| | | //获取用户cardid |
| | | User user1 = hanlder.userService.getById(user.getId()); |
| | | //用户审查 |
| | | hanlder.myAsyncService.checkUserExamineByCardNo(user1); |
| | | } |
| | | |
| | | /** |
| | |
| | | map1.put(key, result); |
| | | //向外网发送数据 |
| | | FtpUtil.objectFileUploadListTrain(map1); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 考试实操成绩处理 |
| | | * @param json |
| | | */ |
| | | public static void handlerUserExamScore(String json) { |
| | | Map map = JSON.parseObject(json, Map.class); |
| | | //取出 key(uuid) |
| | | String key = map.keySet().toArray()[0].toString(); |
| | | Object value = map.get(key); |
| | | //得到考试成绩 |
| | | ExamScore examScore = JSON.parseObject(value.toString(), ExamScore.class); |
| | | //处理实操考试成绩 |
| | | examScoreHandler(examScore); |
| | | } |
| | | |
| | | /** |
| | | * 实操成绩处理 |
| | | * @param examScore0 |
| | | */ |
| | | private static void examScoreHandler(ExamScore examScore0) { |
| | | //取第一个 |
| | | List<ExamScore> examScoreList = hanlder.examScoreService.getExamScoreInfoByIdCardNo(examScore0.getCandidateNo(), new SimpleDateFormat("yyyy-MM-dd").format(examScore0.getExamTime())); |
| | | if (examScoreList.size()>0) { |
| | | //遍历集合 |
| | | examScoreList.forEach(examScore -> { |
| | | if (null != examScore) { |
| | | //查询当前保安信息 |
| | | UserVO user = hanlder.userService.getUserAgeById(Long.parseLong(examScore.getUserId())); |
| | | //设置实操成绩 |
| | | examScore.setLearnGrade(examScore0.getLearnGrade()); |
| | | if (null != examScore.getTheoryGrade()) { |
| | | if (examScore.getTheoryGrade() >= 60 && examScore.getLearnGrade() >= 60) { |
| | | //合格 |
| | | examScore.setQualified(0); |
| | | //修改制证状态为未制证 |
| | | user.setUserType(7); |
| | | //如果已有保安证编号,不更新用户信息 |
| | | if (null == user.getSecuritynumber() || user.getSecuritynumber().equals("")) { |
| | | //去生成保安证编号 |
| | | String pre = SecurityPaperUtil.getSecurityPaper(); |
| | | //查询当前年份已有的保安证编号 |
| | | int count = hanlder.userService.getSecurityPaperCount(pre); |
| | | String result = null; |
| | | if (count == 0) { |
| | | result = pre + "00001"; |
| | | } else { |
| | | //格式化 |
| | | DecimalFormat decimalFormat = new DecimalFormat("00000"); |
| | | count++; |
| | | result = pre + (decimalFormat.format(count)); |
| | | } |
| | | //脱敏处理 |
| | | user.setSecuritynumber(DesensitizedUtil.desensitizedSecurityNumber(result)); |
| | | //修改为持证保安 |
| | | user.setHold("1"); |
| | | user.setUpdateTime(new Date()); |
| | | //更新保安数据 |
| | | hanlder.userService.updateById(user); |
| | | |
| | | //生成保安证的同时向保安证管理表中插入一条数据 |
| | | SecurityPaper securityPaper = new SecurityPaper(); |
| | | securityPaper.setUserId(user.getId()); |
| | | securityPaper.setNumber(result); |
| | | securityPaper.setCreateTime(new Date()); |
| | | securityPaper.setIdCardNo(user.getCardid()); |
| | | securityPaper.setPeopleName(user.getRealName()); |
| | | securityPaper.setExamId(Long.parseLong(examScore.getExamId())); |
| | | securityPaper.setApplyId(examScore.getApplyId()); |
| | | securityPaper.setSource(1); |
| | | hanlder.securityPaperService.save(securityPaper); |
| | | |
| | | //内网同步 |
| | | String s1 = "update blade_user set hold = " + "'" + user.getHold() + "'" + |
| | | ",securitynumber = " + "'" + DesensitizedUtil.desensitizedSecurityNumber(result) + "'" + |
| | | ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" + |
| | | ",user_type = " + "'" + user.getUserType() + "'" + |
| | | " " + "where id = " + "'" + user.getId() + "'"; |
| | | hanlder.myAsyncService.FTP(s1); |
| | | } |
| | | } |
| | | } else { |
| | | //不合格 |
| | | examScore.setQualified(1); |
| | | } |
| | | //总成绩 |
| | | if (user.getAge() <= 50) { |
| | | if (null != examScore.getTheoryGrade()) { |
| | | examScore.setAllGrade(Math.round((examScore.getTheoryGrade() + examScore0.getLearnGrade()) / 2)); |
| | | } else { |
| | | examScore.setAllGrade(Math.round(examScore0.getLearnGrade() / 2)); |
| | | } |
| | | } |
| | | if (user.getAge() > 50) { |
| | | if (null != examScore.getTheoryGrade()) { |
| | | examScore.setAllGrade(Integer.parseInt(String.valueOf(Math.round(examScore.getTheoryGrade() * 0.5))) |
| | | + Integer.parseInt(String.valueOf(Math.round(examScore0.getLearnGrade() * 0.5)))); |
| | | } else { |
| | | examScore.setAllGrade(Math.round(examScore0.getLearnGrade() / 2)); |
| | | } |
| | | } |
| | | |
| | | //外网同步 |
| | | String s1 = |
| | | "update exam_score set learn_grade = " + "'" + examScore.getLearnGrade() + "'" + |
| | | ",all_grade = " + "'" + examScore.getAllGrade() + "'" + |
| | | ",qualified = " + "'" + examScore.getQualified() + "'" + |
| | | " " + "where id = " + "'" + examScore.getId() + "'"; |
| | | hanlder.myAsyncService.FTP(s1); |
| | | //更新成绩数据 |
| | | hanlder.examScoreService.updateById(examScore); |
| | | } |
| | | }); |
| | | }else { |
| | | //根据身份证号查询用户 |
| | | User user0 = hanlder.userService.getUserInfoByIdCardNo(examScore0.getCandidateNo()); |
| | | if (null == user0) { |
| | | String msg = "没有找到用户:[" + examScore0.getCandidateNo() + "]相关考试成绩信息,请检查身份证是否有误!"; |
| | | //向外网推送 |
| | | Result result = new Result(200,null,msg); |
| | | Map<String, Object> map = new HashMap<>(1); |
| | | map.put("key", result); |
| | | //向外网发送数据 |
| | | FtpUtil.objectFileUploadExamScore(map); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 数据处理 |
| | | * 数据处理(单个保安员新增) |
| | | * @param json |
| | | */ |
| | | public static void handler(String json){ |
| | |
| | | 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(); |
| | | //用户数据校验 |
| | |
| | | } |
| | | Map<String, Object> map1 = new HashMap<>(1); |
| | | map1.put(uuid,result1); |
| | | System.out.println("用户新增:开始向外网推送数据............"); |
| | | //向外网发送数据 |
| | | FtpUtil.objectFileUpload(map1); |
| | | FtpUtil.objectFileUpload(map1,uuid); |
| | | } |
| | | } |
| | | |
| | |
| | | one.setUpdateTime(new Date()); |
| | | //离职 |
| | | hanlder.userService.updateById(one); |
| | | //内网同步 |
| | | //同步外网 |
| | | String s1 = "update blade_user set status = " + one.getStatus() + |
| | | ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(one.getUpdateTime()) + "'" + |
| | | " where id = " + "'" + one.getId() + "'"; |
| | |
| | | |
| | | //人员离职后修改派遣记录,修改从业记录 |
| | | hanlder.updateUserDispatcherExp(one); |
| | | //返回 |
| | | return new Result(200,null,""); |
| | | } |
| | | } |
| | | return new Result(400,null,user.getRealName() + "已在其他单位导入"); |
| | |
| | | //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()); |