From 8853292babb2ad94de4a3207966f1e83b767cd2d Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sun, 17 Sep 2023 16:38:34 +0800
Subject: [PATCH] 新增流程节点进程查询接口

---
 src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java |  381 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 231 insertions(+), 150 deletions(-)

diff --git a/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java b/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
index 1a48faa..398f695 100644
--- a/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
+++ b/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
@@ -18,12 +18,16 @@
 import org.springblade.modules.exam.service.ExamScoreService;
 import org.springblade.modules.exam.service.ExamSubjectChoicesService;
 import org.springblade.modules.exam.util.SecurityPaperUtil;
-import org.springblade.modules.exam.vo.ExamResultVO;
-import org.springblade.modules.exam.vo.ExamScoreVO;
-import org.springblade.modules.exam.vo.UpdateParamVo;
+import org.springblade.modules.exam.vo.*;
+import org.springblade.modules.information.entity.Information;
+import org.springblade.modules.information.service.IInformationService;
+import org.springblade.modules.information.vo.InformationVO;
+import org.springblade.modules.securitypaper.entity.SecurityPaper;
+import org.springblade.modules.securitypaper.service.SecurityPaperService;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IRoleService;
 import org.springblade.modules.system.service.IUserService;
+import org.springblade.modules.system.service.MyAsyncService;
 import org.springblade.modules.system.vo.UserVO;
 import org.springblade.modules.training.entity.TrainingRegistration;
 import org.springblade.modules.training.service.TrainingRegistrationService;
@@ -40,6 +44,7 @@
 
 /**
  * 考试成绩服务实现类
+ *
  * @author zhongrj
  */
 @Service
@@ -61,25 +66,31 @@
 	private TrainingRegistrationService trainingRegistrationService;
 
 	@Autowired
-	private IRoleService roleService;
-
+	private SecurityPaperService securityPaperService;
 
 	@Autowired
 	private ExamAnswerRecordService examAnswerRecordService;
 
+	@Autowired
+	private IInformationService informationService;
+	@Autowired
+	private MyAsyncService myAsyncService;
+
+
 	/**
 	 * 自定义分页数据
-	 * @param page 分页条件
+	 *
+	 * @param page      分页条件
 	 * @param examScore 考试成绩对象
 	 * @return
 	 */
 	@Override
 	public IPage<ExamScoreVO> selectExamScorePage(IPage<ExamScoreVO> page, ExamScoreVO examScore) {
-		if (null!=examScore.getExamType()){
-			if (examScore.getExamType()==1){
+		if (null != examScore.getExamType()) {
+			if (examScore.getExamType() == 1) {
 				return page.setRecords(baseMapper.selectExamScorePage(page, examScore));
 			}
-			if (examScore.getExamType()==2){
+			if (examScore.getExamType() == 2) {
 				return page.setRecords(baseMapper.selectTrainExamScorePage(page, examScore));
 			}
 		}
@@ -88,6 +99,7 @@
 
 	/**
 	 * 详情
+	 *
 	 * @param examScore 考试成绩信息对象
 	 */
 	@Override
@@ -97,6 +109,7 @@
 
 	/**
 	 * 保存考试成绩
+	 *
 	 * @param examScore 考试成绩信息对象
 	 * @return
 	 */
@@ -104,7 +117,7 @@
 	@Transactional(rollbackFor = Exception.class)
 	public Boolean saveExamScore(ExamScoreVO examScore) {
 		//取出考试结果
-		if (examScore.getExamResultVOS().size()>0){
+		if (examScore.getExamResultVOS().size() > 0) {
 			List<ExamResultVO> examResultVOS = examScore.getExamResultVOS();
 			//获取试卷的内容(题号,答案)
 //			ExamPaper examPaper = new ExamPaper();
@@ -116,16 +129,16 @@
 			//声明理论得分
 			int theoryGrade = 0;
 			for (ExamResultVO examResultVO : examResultVOS) {
-				for (ExamSubjectChoices es: list) {
+				for (ExamSubjectChoices es : list) {
 					//对比题目id
 					if (examResultVO.getSubjectChoicesId().equals(es.getId())) {
 						//对比答案
-						if (es.getChoicesType() == 2 || es.getChoicesType() == 3){
+						if (es.getChoicesType() == 2 || es.getChoicesType() == 3) {
 							//判断题逻辑
 							if (examResultVO.getValue().equals(es.getAnswer())) {
 								theoryGrade += examResultVO.getGrade();
 							}
-						}else if(es.getChoicesType() == 0 || es.getChoicesType() == 1){
+						} else if (es.getChoicesType() == 0 || es.getChoicesType() == 1) {
 							//处理多选题的答案排序
 							String[] split = examResultVO.getValue().split(",");
 							StringBuilder builder = new StringBuilder();
@@ -136,7 +149,7 @@
 							//利用数组帮助类自动排序
 							Arrays.sort(arrayCh);
 							String sub0 = Arrays.toString(arrayCh);
-							String sub = sub0.substring(1,sub0.length()-1).replaceAll(" ","");
+							String sub = sub0.substring(1, sub0.length() - 1).replaceAll(" ", "");
 							if (sub.equals(es.getAnswer())) {
 								theoryGrade += examResultVO.getGrade();
 							}
@@ -152,7 +165,7 @@
 			int age = 0;
 			UserVO user = new UserVO();
 			//使用准考证号查询报名信息,修改考试状态为已考试
-			if(paper.getExamType()==1){
+			if (paper.getExamType() == 1) {
 				Apply apply = new Apply();
 				apply.setCandidateNo(examScore.getCandidateNo());
 				Apply apply1 = applyService.getOne(Condition.getQueryWrapper(apply));
@@ -168,13 +181,14 @@
 
 				//数据同步
 				String s =
-					"update sys_apply set is_exam = " + apply1.getIsExam() + " " +"where id = " + "'" + apply1.getId() + "';" +
-						"update blade_user set is_apply = " + user.getIsApply() + " " +"where id = " + "'" + user.getId() + "'";
-				FtpUtil.sqlFileUpload(s);
+					"update sys_apply set is_exam = " + apply1.getIsExam() + " " + "where id = " + "'" + apply1.getId() + "';" +
+						"update blade_user set is_apply = " + user.getIsApply() + " " + "where id = " + "'" + user.getId() + "'";
+				//FtpUtil.sqlFileUpload(s);
+				myAsyncService.dataSync(s);
 
 			}
-			//模拟考试
-			if(paper.getExamType()==2){
+			//培训考试
+			if (paper.getExamType() == 2) {
 				TrainingRegistration trainingRegistration = new TrainingRegistration();
 				trainingRegistration.setCandidateNo(examScore.getCandidateNo());
 				trainingRegistration.setCancel(1);
@@ -191,26 +205,28 @@
 
 				//数据同步
 				String s =
-					"update sys_training_registration set is_exam = " + trainingRegistration1.getIsExam() + " " +"where id = " + "'" + trainingRegistration1.getId() + "';" +
-						"update blade_user set is_train = " + user.getIsTrain() + " " +"where id = " + "'" + user.getId() + "'";
-				FtpUtil.sqlFileUpload(s);
+					"update sys_training_registration set is_exam = " + trainingRegistration1.getIsExam() + " " + "where id = " + "'" + trainingRegistration1.getId() + "';" +
+						"update blade_user set is_train = " + user.getIsTrain() + " " + "where id = " + "'" + user.getId() + "'";
+				//FtpUtil.sqlFileUpload(s);
+				myAsyncService.dataSync(s);
 			}
-
+			//设置提交时间
+			examScore.setExamEndTime(new Date());
 			//设置考试ID
 			examScore.setExamId(examScore.getPapersId().toString());
 			//设置理论得分
 			examScore.setTheoryGrade(theoryGrade);
 			//计算总成绩,此时没有实操成绩,总成绩为实操成绩和理论成绩和的一半
-			if (age<=50) {
+			if (age <= 50) {
 				examScore.setAllGrade(Math.round(theoryGrade / 2));
 			}
-			if (age>50) {
-				examScore.setAllGrade(Integer.parseInt(String.valueOf(Math.round(theoryGrade*0.5))));
+			if (age > 50) {
+				examScore.setAllGrade(Integer.parseInt(String.valueOf(Math.round(theoryGrade * 0.5))));
 			}
 			//设置状态
-			if (theoryGrade>=60){
+			if (theoryGrade >= 60) {
 				examScore.setQualified(2);
-			}else {
+			} else {
 				examScore.setQualified(1);
 			}
 			//修改成绩数据
@@ -222,10 +238,11 @@
 					",all_grade = " + "'" + examScore.getAllGrade() + "'" +
 					",exam_end_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:dd").format(examScore.getExamEndTime()) + "'" +
 					",qualified = " + "'" + examScore.getQualified() + "'" +
-					" " +"where id = " + "'" + examScore.getId() + "'";
-			FtpUtil.sqlFileUpload(s1);
+					" " + "where id = " + "'" + examScore.getId() + "'";
+			//FtpUtil.sqlFileUpload(s1);
+			myAsyncService.dataSync(s1);
 
-			if (i>0){
+			if (i > 0) {
 				//返回结果
 				return true;
 			}
@@ -236,30 +253,31 @@
 
 	/**
 	 * 导入实操成绩
+	 *
 	 * @param examScoreExcelList
-	 * @param isCovered 是否覆盖
+	 * @param isCovered          是否覆盖
 	 */
 	@Override
 	public void importExamScore(List<ExamScoreExcel> examScoreExcelList, Boolean isCovered) {
-		if (examScoreExcelList.size()>0){
+		if (examScoreExcelList.size() > 0) {
 			List<Object> errorList = new ArrayList<>();
 			//导入状态,默认为true ,如果有一个出现问题则为 false
 			AtomicBoolean status = new AtomicBoolean(true);
 			//遍历
 			examScoreExcelList.forEach(examScoreExcel -> {
-				if (null!=examScoreExcel.getLearnGrade() && null!=examScoreExcel.getIdCardNo() && examScoreExcel.getIdCardNo()!=""){
+				if (null != examScoreExcel.getLearnGrade() && null != examScoreExcel.getIdCardNo() && examScoreExcel.getIdCardNo() != "") {
 					//使用考试名称匹配考试信息
 					List<ExamPaper> examPaperList = examPaperService.getExamInfoByExamName(examScoreExcel.getExamName());
 					ExamPaper examPaper = examPaperList.get(0);
 					//查询出成绩数据
-					if (examPaperList.size()>0){
+					if (examPaperList.size() > 0) {
 						//取第一个
-						List<ExamScore> examScoreList = baseMapper.getExamScoreInfoByIdCardNo(examScoreExcel.getIdCardNo(),new SimpleDateFormat("yyyy-MM-dd").format(examPaper.getStartTime()));
-						if (examScoreList.size()==0){
+						List<ExamScore> examScoreList = baseMapper.getExamScoreInfoByIdCardNo(examScoreExcel.getIdCardNo(), new SimpleDateFormat("yyyy-MM-dd").format(examPaper.getStartTime()));
+						if (examScoreList.size() == 0) {
 							//根据身份证号查询用户
 							User user0 = userService.getUserInfoByIdCardNo(examScoreExcel.getIdCardNo());
-							if (null==user0){
-								throw new ServiceException("没有找到用户:["+examScoreExcel.getIdCardNo()+"]相关考试成绩信息,请检查身份证是否有误!");
+							if (null == user0) {
+								throw new ServiceException("没有找到用户:[" + examScoreExcel.getIdCardNo() + "]相关考试成绩信息,请检查身份证是否有误!");
 //								throw new ServiceException("用户:["+examScoreExcel.getIdCardNo()+"]不存在");
 							}
 						}
@@ -270,68 +288,70 @@
 //							examScore1.setUserId(user0.getId().toString());
 //							//根据准考证号和用户id查询考试成绩
 //							ExamScore examScore = this.getOne(Condition.getQueryWrapper(examScore1));
-							if (null!=examScore) {
+							if (null != examScore) {
 								//查询当前保安信息
 								UserVO user = userService.getUserAgeById(Long.parseLong(examScore.getUserId()));
-								examScore.setLearnGrade(examScoreExcel.getLearnGrade());
-								if (examScore.getTheoryGrade() >= 60 && examScore.getLearnGrade() >= 60) {
-									//合格
-									examScore.setQualified(0);
-									//修改制证状态为未制证
-									user.setUserType(7);
-									//正式考试通过生成保安证编号
-//							if (examPaper.getExamType()==1) {
-									//如果已有保安证编号,不更新用户信息
-									if (null==user.getSecuritynumber() || user.getSecuritynumber().equals("")) {
-										//去生成保安证编号
-										String pre = SecurityPaperUtil.getSecurityPaper();
-										//查询当前年份已有的保安证编号
-										int count = 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(result);
-										//发证日期
-//								user.setPaperTime(new Date());
-										//修改为持证保安
-										user.setHold("1");
-										user.setUpdateTime(new Date());
-										//更新保安数据
-										userService.updateById(user);
+								//设置实操成绩
+								if (examScoreExcel.getLearnGrade().equals("合格")) {
+									examScore.setLearnGrade(0);
+								}
+								if (examScoreExcel.getLearnGrade().equals("不合格")) {
+									examScore.setLearnGrade(1);
+								}
+								if (null != examScore.getTheoryGrade()) {
+									if (examScore.getTheoryGrade() >= 60 && examScore.getLearnGrade() == 0) {
+										//合格
+										examScore.setQualified(0);
+										//修改制证状态为未制证
+										user.setUserType(7);
+										//如果已有保安证编号,不更新用户信息
+										if (null == user.getSecuritynumber() || user.getSecuritynumber().equals("")) {
+											//去生成保安证编号
+											String pre = SecurityPaperUtil.getSecurityPaper();
+											//查询当前年份已有的保安证编号
+											int count = userService.getSecurityPaperCount(pre);
+											String result = null;
+											if (count == 0) {
+												result = pre + "000001";
+											} else {
+												//格式化
+												DecimalFormat decimalFormat = new DecimalFormat("000000");
+												count++;
+												result = pre + (decimalFormat.format(count));
+											}
+											user.setSecuritynumber(result);
+											//修改为持证保安
+											user.setHold("1");
+											user.setUpdateTime(new Date());
+											//更新保安数据
+											userService.updateById(user);
 
-										String s1 =
-											"update blade_user set hold = " + "'" + user.getHold() + "'" +
-												",securitynumber = " + "'" + user.getSecuritynumber() + "'" +
-												",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
-												",user_type = " + "'" + user.getUserType() + "'" +
-												" " + "where id = " + "'" + user.getId() + "'";
-										FtpUtil.sqlFileUpload(s1);
+											//生成保安证的同时向保安证管理表中插入一条数据
+											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);
+											//新增保安员证信息
+											securityPaperService.save(securityPaper);
+
+											String s1 =
+												"update blade_user set hold = " + "'" + user.getHold() + "'" +
+													",securitynumber = " + "'" + user.getSecuritynumber() + "'" +
+													",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" +
+													",user_type = " + "'" + user.getUserType() + "'" +
+													" " + "where id = " + "'" + user.getId() + "'";
+
+											myAsyncService.dataSync(s1);
+										}
 									}
 								} else {
 									//不合格
 									examScore.setQualified(1);
-								}
-								//总成绩
-								if (user.getAge() <= 50) {
-									if (null!=examScore.getTheoryGrade()) {
-										examScore.setAllGrade(Math.round((examScore.getTheoryGrade() + examScoreExcel.getLearnGrade()) / 2));
-									}else {
-										examScore.setAllGrade(Math.round(examScoreExcel.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(examScoreExcel.getLearnGrade() * 0.5))));
-									}else {
-										examScore.setAllGrade(Math.round(examScoreExcel.getLearnGrade() / 2));
-									}
 								}
 
 								//内网同步
@@ -340,24 +360,25 @@
 										",all_grade = " + "'" + examScore.getAllGrade() + "'" +
 										",qualified = " + "'" + examScore.getQualified() + "'" +
 										" " + "where id = " + "'" + examScore.getId() + "'";
-								FtpUtil.sqlFileUpload(s1);
+								//FtpUtil.sqlFileUpload(s1);
+								myAsyncService.dataSync(s1);
 								//更新成绩数据
 								baseMapper.updateById(examScore);
-							}else {
+							} else {
 								errorList.add(examScoreExcel.getIdCardNo());
 								status.set(false);
 							}
 						});
 
-					}else {
-						throw new ServiceException("导入失败!考试名称:["+examScoreExcel.getExamName()+"]不存在!请核对!");
+					} else {
+						throw new ServiceException("导入失败!考试名称:[" + examScoreExcel.getExamName() + "]不存在!请核对!");
 					}
 				}
 			});
 			//如果所有数据导入有一个异常
-			if (!status.get()){
+			if (!status.get()) {
 				String errorAccount = StringUtils.join(errorList, "\\\n");
-				throw new ServiceException("用户:["+errorAccount+"]实操成绩导入失败!账号与准考证号不匹配!");
+				throw new ServiceException("用户:[" + errorAccount + "]实操成绩导入失败!账号与准考证号不匹配!");
 			}
 		}
 	}
@@ -432,41 +453,44 @@
 //	}
 
 	@Override
-	public List<Map<String, Object>> scoreStatistics(String deptid,String jurisdiction) {
-		return baseMapper.scoreStatistics(deptid,jurisdiction);
+	public List<Map<String, Object>> scoreStatistics(String deptid, String jurisdiction) {
+		return baseMapper.scoreStatistics(deptid, jurisdiction);
 	}
+
 	@Override
-	public List<Map<String, Object>> scoreStatisticssc(String deptid,String jurisdiction) {
-		return baseMapper.scoreStatisticssc(deptid,jurisdiction);
+	public List<Map<String, Object>> scoreStatisticssc(String deptid, String jurisdiction) {
+		return baseMapper.scoreStatisticssc(deptid, jurisdiction);
 	}
 
 	/**
 	 * 修改成绩信息
+	 *
 	 * @param examScore
 	 * @return
 	 */
 	@Override
 	public boolean updateByIdAndQualifiee(ExamScore examScore) {
 		int result = baseMapper.updateByIdAndQualifiee(examScore);
-		if (result>0){
+		if (result > 0) {
 			return true;
 		}
 		return false;
 	}
 
 	@Override
-	public IPage<ExamScoreVO> scorePage(IPage page, String deptid, String jurisdiction) {
-		return page.setRecords(baseMapper.scorePage(page,deptid,jurisdiction));
+	public IPage<ExamScoreVO> scorePage(IPage page, ExamScoreVO examScore) {
+		return page.setRecords(baseMapper.scorePage(page, examScore));
 	}
 
 	/**
 	 * 考试成绩及状态修改
+	 *
 	 * @param updateParamVo
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean updateExamScore(UpdateParamVo updateParamVo) {
-		if (updateParamVo.getType()==1){
+		if (updateParamVo.getType() == 1) {
 			//查询所有无成绩的数据
 			List<ExamScore> noScoreInfoList = baseMapper.getNoScoreInfo();
 			noScoreInfoList.forEach(examScore1 -> {
@@ -477,7 +501,7 @@
 				//修改考试状态
 				trainingRegistration1.setIsExam(2);
 				trainingRegistrationService.updateById(trainingRegistration1);
-				if (null!=trainingRegistration1){
+				if (null != trainingRegistration1) {
 					//修改用户培训状态信息
 					User user = new User();
 					user.setIsTrain(3);
@@ -488,10 +512,10 @@
 
 				//修改考试成绩
 				//生成随机数,在60-79 之间
-				int score = (int)(Math.random()*20);
+				int score = (int) (Math.random() * 20);
 				int sc = score + 60;
 				examScore1.setTheoryGrade(sc);
-				examScore1.setTheoryGrade(score/2);
+				examScore1.setTheoryGrade(score / 2);
 				//设置为合格
 				examScore1.setQualified(2);
 				examScore1.setCandidateNo(trainingRegistration1.getCandidateNo());
@@ -507,15 +531,15 @@
 			});
 		}
 
-		if (updateParamVo.getType()==2) {
+		if (updateParamVo.getType() == 2) {
 			//查询所有成绩不合格的数据(准考证号)
 			List<ExamScore> list = baseMapper.getDisqualificationExamInfo();
 			if (list.size() > 0) {
 				list.forEach(examScore1 -> {
 					//修改考试成绩为合格
 					//生成随机数,在60-79 之间
-					int score = (int)((Math.random() * 20));
-					int sc = score+60;
+					int score = (int) ((Math.random() * 20));
+					int sc = score + 60;
 					examScore1.setTheoryGrade(sc);
 					//设置为合格
 					examScore1.setQualified(2);
@@ -542,15 +566,15 @@
 			}
 		}
 
-		if (updateParamVo.getType()==3) {
+		if (updateParamVo.getType() == 3) {
 			//查询所有成绩不合格的数据(准考证号)
 			List<ExamScore> list = baseMapper.getLheoryGradeLess60();
 			if (list.size() > 0) {
 				list.forEach(examScore1 -> {
 					//修改考试成绩为合格
 					//生成随机数,在60-79 之间
-					int score = (int)((Math.random() * 20));
-					int sc = score+60;
+					int score = (int) ((Math.random() * 20));
+					int sc = score + 60;
 					examScore1.setTheoryGrade(sc);
 					//设置为合格
 					examScore1.setQualified(2);
@@ -567,19 +591,20 @@
 
 	/**
 	 * 考试重置
+	 *
 	 * @param updateParamVo
 	 * @return
 	 */
 	@Override
 	public boolean refreshTrainExamInfo(UpdateParamVo updateParamVo) {
-		if (null!=updateParamVo.getScoreId()){
+		if (null != updateParamVo.getScoreId()) {
 			ExamScore examScore = this.getById(updateParamVo.getScoreId());
 			//获取成绩数据,准考证号,用户id,报名培训id,考试id
-			if (null!=examScore){
+			if (null != examScore) {
 				ExamPaper paper = examPaperService.getById(examScore.getExamId());
 				//判断考试类型
 				//考试
-				if (paper.getExamType()==1){
+				if (paper.getExamType() == 1) {
 					//1.修改培训报名信息
 					Apply apply = new Apply();
 					apply.setId(examScore.getApplyId());
@@ -600,16 +625,17 @@
 					//4.内网数据同步
 					String s1 =
 						"update sys_apply set is_exam = " + "'" + apply.getIsExam() + "'" +
-							" " + "where id = " + "'" + apply.getId() + "';"+
+							" " + "where id = " + "'" + apply.getId() + "';" +
 							"update blade_user set is_train = " + "'" + user.getIsTrain() + "'" +
-							" " + "where id = " + "'" + user.getId() + "';"+
+							" " + "where id = " + "'" + user.getId() + "';" +
 							"delete from exam_score where id = " + "'" + updateParamVo.getScoreId() + "'";
-					FtpUtil.sqlFileUpload(s1);
+					//FtpUtil.sqlFileUpload(s1);
+					myAsyncService.dataSync(s1);
 
 					return true;
 				}
 				//培训考试
-				if (paper.getExamType()==2){
+				if (paper.getExamType() == 2) {
 					//1.修改培训报名信息
 					TrainingRegistration trainingRegistration = new TrainingRegistration();
 					trainingRegistration.setId(examScore.getApplyId());
@@ -630,11 +656,12 @@
 					//4.内网数据同步
 					String s1 =
 						"update sys_training_registration set is_exam = " + "'" + trainingRegistration.getIsExam() + "'" +
-							" " + "where id = " + "'" + trainingRegistration.getId() + "';"+
-						"update blade_user set is_train = " + "'" + user.getIsTrain() + "'" +
-							" " + "where id = " + "'" + user.getId() + "';"+
-						"delete from exam_score where id = " + "'" + updateParamVo.getScoreId() + "'";
-					FtpUtil.sqlFileUpload(s1);
+							" " + "where id = " + "'" + trainingRegistration.getId() + "';" +
+							"update blade_user set is_train = " + "'" + user.getIsTrain() + "'" +
+							" " + "where id = " + "'" + user.getId() + "';" +
+							"delete from exam_score where id = " + "'" + updateParamVo.getScoreId() + "'";
+					//FtpUtil.sqlFileUpload(s1);
+					myAsyncService.dataSync(s1);
 
 					return true;
 				}
@@ -645,6 +672,7 @@
 
 	/**
 	 * 按条件查询成绩数据
+	 *
 	 * @param examScoreVO
 	 * @return
 	 */
@@ -656,6 +684,7 @@
 
 	/**
 	 * 考试状态修改,考试成绩恢复
+	 *
 	 * @param
 	 * @return
 	 */
@@ -664,14 +693,14 @@
 		int a = 654;
 		List<Integer> list = new ArrayList<>();
 		list.add(a);
-		while (a>=654 && a<=702){
+		while (a >= 654 && a <= 702) {
 			a++;
 			list.add(a);
 		}
 		//遍历集合
-		list.forEach(b->{
+		list.forEach(b -> {
 			//查询考试记录
-			if (b!=698) {
+			if (b != 698) {
 				ExamAnswerRecord examAnswerRecord = new ExamAnswerRecord();
 				examAnswerRecord.setScoreId(Long.parseLong(b.toString()));
 				//查询考试成绩
@@ -680,23 +709,23 @@
 				List<ExamAnswerRecord> examAnswerRecords = examAnswerRecordService.list(Condition.getQueryWrapper(examAnswerRecord));
 				//遍历考试记录
 				int socre = 2;
-				if (examAnswerRecords.size()>0){
+				if (examAnswerRecords.size() > 0) {
 					for (ExamAnswerRecord answerRecord : examAnswerRecords) {
 						//计算分数
 						socre = socre + answerRecord.getAnswerScore();
 					}
 					//修改考试成绩
 					examScore.setTheoryGrade(socre);
-					examScore.setAllGrade(socre/2);
+					examScore.setAllGrade(socre / 2);
 					String endDate = "2021-10-16 15:30:25";
 					try {
 						examScore.setExamEndTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endDate));
 					} catch (ParseException e) {
 						e.printStackTrace();
 					}
-					if (socre>=60){
+					if (socre >= 60) {
 						examScore.setQualified(2);
-					}else {
+					} else {
 						examScore.setQualified(1);
 					}
 					//更新数据
@@ -719,6 +748,7 @@
 
 	/**
 	 * 点击了开始考试后超过60分钟后再考试的,计算之前的考试成绩
+	 *
 	 * @param examScore
 	 * @return
 	 */
@@ -733,11 +763,11 @@
 		//设置默认理论成绩为0
 		int count = 0;
 		//计算成绩
-		if (list.size()>0){
+		if (list.size() > 0) {
 			//成绩相加
 			count = list.stream().mapToInt(ExamAnswerRecord::getAnswerScore).sum();
 
-		}else {
+		} else {
 			//没有考试记录,本次考试理论成绩为 0
 			count = 0;
 		}
@@ -760,23 +790,24 @@
 
 		//数据同步
 		String s =
-			"update sys_training_registration set is_exam = " + trainingRegistration1.getIsExam() + " " +"where id = " + "'" + trainingRegistration1.getId() + "';" +
-				"update blade_user set is_train = " + user.getIsTrain() + " " +"where id = " + "'" + user.getId() + "'";
-		FtpUtil.sqlFileUpload(s);
+			"update sys_training_registration set is_exam = " + trainingRegistration1.getIsExam() + " " + "where id = " + "'" + trainingRegistration1.getId() + "';" +
+				"update blade_user set is_train = " + user.getIsTrain() + " " + "where id = " + "'" + user.getId() + "'";
+		//FtpUtil.sqlFileUpload(s);
+		myAsyncService.dataSync(s);
 
 		//设置理论得分
 		score.setTheoryGrade(count);
 		//计算总成绩,此时没有实操成绩,总成绩为实操成绩和理论成绩和的一半
-		if (age<=50) {
+		if (age <= 50) {
 			score.setAllGrade(Math.round(count / 2));
 		}
-		if (age>50) {
-			score.setAllGrade(Integer.parseInt(String.valueOf(Math.round(count*0.5))));
+		if (age > 50) {
+			score.setAllGrade(Integer.parseInt(String.valueOf(Math.round(count * 0.5))));
 		}
 		//设置状态
-		if (count>=60){
+		if (count >= 60) {
 			score.setQualified(2);
-		}else {
+		} else {
 			score.setQualified(1);
 		}
 		//修改成绩数据
@@ -788,13 +819,63 @@
 				",all_grade = " + "'" + score.getAllGrade() + "'" +
 				",exam_end_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:dd").format(new Date()) + "'" +
 				",qualified = " + "'" + score.getQualified() + "'" +
-				" " +"where id = " + "'" + score.getId() + "'";
-		FtpUtil.sqlFileUpload(s1);
+				" " + "where id = " + "'" + score.getId() + "'";
+		//FtpUtil.sqlFileUpload(s1);
+		myAsyncService.dataSync(s1);
 
-		if (i>0){
+		if (i > 0) {
 			//返回结果
 			return true;
 		}
 		return false;
 	}
+
+	/**
+	 * 考试情况统计,按月统计各个培训学校考试合格人数和不合格人数
+	 *
+	 * @param
+	 */
+	@Override
+	public Object getExamStatisInfo(InformationVO information) {
+		//获取培训学校信息
+		Information information2 = new Information();
+		information2.setStats("1");
+		List<Information> informationList = informationService.list(Condition.getQueryWrapper(information2));
+		//创建 objectList 集合
+		List<Object> objectList = new ArrayList<>();
+		for (Information information1 : informationList) {
+			//查询各个培训学校本年每月考试情况统计,不是测试学校
+			if (!information1.getId().equals(469)) {
+				//合格和不合格
+				ExamSocreStatisVo statisVo = new ExamSocreStatisVo();
+				ExamSocreStatisVo statisVo1 = new ExamSocreStatisVo();
+
+				information.setDepartmentid(information1.getDepartmentid());
+				//统计数据查询
+				List<ExamSocreStatis> examStatisInfo = baseMapper.getExamStatisInfo(information);
+				//数据转换
+				List<Integer> list = new ArrayList<>();
+				List<Integer> list1 = new ArrayList<>();
+				for (ExamSocreStatis examSocreStatis : examStatisInfo) {
+					//合格人数集合
+					list.add(examSocreStatis.getHgnum());
+					//不合格人数集合
+					list1.add(examSocreStatis.getBhgnum());
+				}
+				//合格
+				statisVo.setName(information1.getEnterprisename());
+				statisVo.setType(1);
+				statisVo.setExamSocreStatis(list);
+				//不合格
+				statisVo1.setName(information1.getEnterprisename());
+				statisVo1.setType(2);
+				statisVo1.setExamSocreStatis(list1);
+				//数据封装
+				objectList.add(statisVo);
+				objectList.add(statisVo1);
+			}
+		}
+		//返回数据
+		return objectList;
+	}
 }

--
Gitblit v1.9.3