From f70d9a7b19b8451532de026bf1e6b2a5770c16bd Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 13 Jun 2022 11:00:12 +0800
Subject: [PATCH] 新增实操成绩导入逻辑修改,ftp 处理文件逻辑修改
---
src/main/java/org/springblade/modules/FTP/DataHanlder.java | 140 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 139 insertions(+), 1 deletions(-)
diff --git a/src/main/java/org/springblade/modules/FTP/DataHanlder.java b/src/main/java/org/springblade/modules/FTP/DataHanlder.java
index 33fa6ed..8cdb11f 100644
--- a/src/main/java/org/springblade/modules/FTP/DataHanlder.java
+++ b/src/main/java/org/springblade/modules/FTP/DataHanlder.java
@@ -2,9 +2,15 @@
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;
@@ -13,9 +19,11 @@
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.*;
@@ -43,10 +51,13 @@
@Autowired
private IDeptService iDeptService;
+ @Autowired
+ private ExamScoreService examScoreService;
- /**
+
+ /**
* 初始化
*/
@PostConstruct
@@ -130,6 +141,133 @@
}
/**
+ * 考试实操成绩处理
+ * @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
*/
--
Gitblit v1.9.3