| | |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | 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.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 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取保安员证编号 |
| | | * 生成保安员证编号 |
| | | * @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); |
| | | //获取考试信息 |
| | | String value = map.get(key).toString(); |
| | | ExamScore examScore = JSON.parseObject(value, ExamScore.class); |
| | | //查询用户 |
| | | User user = hanlder.userService.getById(examScore.getUserId()); |
| | | if (null!=user) { |
| | | //如果已有保安证编号,不更新用户信息 |
| | | 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()); |
| | | user.setUserType(7); |
| | | //更新保安数据 |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | map1.put(uuid,result1); |
| | | System.out.println("用户新增:开始向外网推送数据............"); |
| | | //向外网发送数据 |
| | | FtpUtil.objectFileUpload(map1); |
| | | FtpUtil.objectFileUpload(map1,uuid); |
| | | } |
| | | } |
| | | |