From 5cceb01ea15fa807ebe0011c5b38780cb3e3e2c3 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 12 Nov 2021 23:50:26 +0800
Subject: [PATCH] 部门数菜单修改,考试审核修改

---
 src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java |  163 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 124 insertions(+), 39 deletions(-)

diff --git a/src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java b/src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java
index 1673428..0f9ce13 100644
--- a/src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java
+++ b/src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java
@@ -26,13 +26,17 @@
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.FTP.FtpUtil;
 import org.springblade.modules.apply.entity.Apply;
 import org.springblade.modules.exam.entity.ExamPaper;
 import org.springblade.modules.exam.entity.ExamSubjectChoices;
 import org.springblade.modules.exam.service.ExamPaperService;
 import org.springblade.modules.exam.vo.ExamPaperSubjectVO;
 import org.springblade.modules.exam.vo.ExamPaperVO;
+import org.springblade.modules.exam.vo.ExamSubjectChoicesVO;
 import org.springblade.modules.exam.wrapper.ExamPaperWrapper;
+import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IUserService;
 import org.springblade.modules.training.entity.TrainExam;
 import org.springblade.modules.training.entity.TrainingRegistration;
 import org.springblade.modules.training.service.TrainingRegistrationService;
@@ -61,6 +65,9 @@
 	private final TrainingRegistrationService trainingRegistrationService;
 
 
+	private final IUserService userService;
+
+
 	/**
 	 * 详情
 	 */
@@ -75,7 +82,7 @@
 	/**
 	 * 分页
 	 */
-	@GetMapping("/page")
+	@GetMapping("/list")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入exam")
 	public R<IPage<ExamPaperVO>> list(@ApiIgnore @RequestParam Map<String, Object> exam, Query query) {
@@ -87,8 +94,21 @@
 	 * 分页
 	 */
 	@GetMapping("/pages")
-	public R<IPage<ExamPaperVO>> page(ExamPaperVO exam, Query query) {
-		IPage<ExamPaperVO> pages = examPaperService.selectExamPaperPage(Condition.getPage(query), exam);
+	public R<IPage<ExamPaperVO>> pages(ExamPaperVO exam, Query query) {
+		IPage<ExamPaperVO> pages = examPaperService.selectExamPaperPages(Condition.getPage(query), exam);
+		return R.data(pages);
+	}
+
+
+	/**
+	 * 自定义查询
+	 * @param query 分页条件
+	 * @param examPaperVO 查询参数
+	 * @return
+	 */
+	@GetMapping("/page")
+	public R<IPage<ExamPaperVO>> page(ExamPaperVO examPaperVO, Query query) {
+		IPage<ExamPaperVO> pages = examPaperService.selectExamPaperPage(Condition.getPage(query), examPaperVO);
 		return R.data(pages);
 	}
 
@@ -99,8 +119,15 @@
 	@PostMapping("/save")
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入exam")
-	public R save(@RequestBody ExamPaper exam) {
-		return R.status(examPaperService.save(exam));
+	public R save(@RequestBody ExamPaper examPaper) {
+		boolean save = examPaperService.save(examPaper);
+		String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(examPaper.getStartTime());
+		String s = "insert into ksxt_exam(id,exam_name,exam_type,start_time) " +
+			"values(" + "'" + examPaper.getId() + "'" + "," + "'" + examPaper.getExamName() +
+			"'" + "," + "'" + examPaper.getExamType() +
+			"'" + ","  +"'" + format + "'" + ")";
+		FtpUtil.sqlFileUpload(s);
+		return R.status(save);
 	}
 
 	/**
@@ -110,6 +137,11 @@
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入exam")
 	public R update(@RequestBody ExamPaper exam) {
+		String s1 =
+			"update ksxt_exam set exam_name = " + "'" + exam.getExamName() + "'" +
+				",start_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(exam.getStartTime()) + "'" +
+				" " +"where id = " + "'" + exam.getId() + "'";
+		FtpUtil.sqlFileUpload(s1);
 		return R.status(examPaperService.updateById(exam));
 	}
 
@@ -130,6 +162,13 @@
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入exam")
 	public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+		//内网删除
+		List<Long> list = Func.toLongList(ids);
+		list.forEach(id ->{
+			//内网同步
+			String s1 = "delete from ksxt_exam where id = " + "'" + id + "'";
+			FtpUtil.sqlFileUpload(s1);
+		});
 		boolean temp = examPaperService.removeByIds(Func.toLongList(ids));
 		return R.status(temp);
 	}
@@ -141,7 +180,6 @@
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "考试题目绑定", notes = "传入exam")
 	public R setPagerSubject(@ApiParam(value = "主键集合") ExamPaper exam) {
-
 		return R.status(true);
 	}
 
@@ -162,8 +200,8 @@
 	@GetMapping("/queryRandomSubject")
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "考试题目绑定", notes = "传入exam")
-	public R<List> queryRandomSubject(@ApiParam(value = "主键集合") ExamPaper exam) {
-		List<ExamPaperSubjectVO> subject = examPaperService.queryRandomSubject(exam);
+	public R<List> queryRandomSubject(@ApiParam(value = "主键集合") ExamPaperVO exam) {
+		List<ExamSubjectChoicesVO> subject = examPaperService.queryRandomSubject(exam);
 		return R.data(subject);
 	}
 
@@ -177,7 +215,6 @@
 		Date date = new Date();
 		String strDateFormat = "yyyy-MM-dd HH:mm:ss";
 		SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
-		System.out.println(sdf.format(date));
 		return R.data(sdf.format(date));
 	}
 
@@ -218,29 +255,64 @@
 	 */
 	@PostMapping("/update-audit")
 	public R updateAudit(@RequestBody ExamPaper examPaper){
-		examPaper.setAuditTime(new Date());
-		//审核通过,插入一条考试信息
-		if (examPaper.getAuditStatus()==1){
-			examPaper.setAuditTime(new Date());
-			//修改考试审核状态
-			examPaperService.updateById(examPaper);
-			//查询当前考试已报名的人员培训报名数据集合
-			List<TrainingRegistration> trainingRegistrations = examPaperService.getTrainList(examPaper.getId());
-			if (trainingRegistrations.size()>0) {
-				trainingRegistrations.forEach(trainingRegistration -> {
-					//生成准考证号
-					trainingRegistration.setCandidateNo(getCandidateNo(examPaper));
-					//修改培训报名信息
-					trainingRegistrationService.updateById(trainingRegistration);
-				});
+		//查询之前的审核状态,如果审核状态没有发生改变,则不会去修改审核信息
+		ExamPaper paper = examPaperService.getById(examPaper.getId());
+		if (null!=paper.getAuditStatus()){
+			//审核状态发生改变
+			if (!paper.getAuditStatus().equals(examPaper.getAuditStatus())){
+				examPaper.setAuditTime(new Date());
+				//修改考试审核状态
+				boolean status = examPaperService.updateById(examPaper);
+				//数据同步
+				String s1 =
+					"update ksxt_exam set audit_status = " + "'" + examPaper.getAuditStatus()+ "'"
+						+ ",audit_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(examPaper.getAuditTime())+ "'"
+						+ " " +"where id = " + "'" + examPaper.getId() + "'";
+				FtpUtil.sqlFileUpload(s1);
+				//查询当前考试已报名的人员培训报名数据集合
+				List<TrainingRegistration> trainingRegistrations = examPaperService.getTrainList(examPaper.getId());
+//		System.out.println("trainingRegistrations = " + trainingRegistrations);
+				if (trainingRegistrations.size()>0) {
+					trainingRegistrations.forEach(trainingRegistration -> {
+						//审核通过,则生成准考证号
+						if (examPaper.getAuditStatus()==1) {
+							trainingRegistration.setAuditStatus(1);
+							//查询当前用户审核状态,如果异常,则审核不通过
+							User user = userService.getById(trainingRegistration.getUserId());
+							if (null!=user){
+								if (null!=user.getExaminationType() && !user.getExaminationType().equals("")){
+									if (user.getExaminationType().equals("1")){
+										//审核不通过
+										trainingRegistration.setAuditStatus(2);
+									}
+								}
+							}
+							//生成准考证号
+							trainingRegistration.setCandidateNo(getCandidateNo(examPaper));
+						}
+						//审核不通过
+						if (examPaper.getAuditStatus()==2) {
+							trainingRegistration.setAuditStatus(2);
+						}
+						//待审核
+						if (examPaper.getAuditStatus()==3) {
+							trainingRegistration.setAuditStatus(3);
+						}
+						//修改培训报名信息
+						trainingRegistrationService.updateById(trainingRegistration);
+						//数据同步
+						String s2 =
+							"update sys_training_registration set candidate_no = " + "'" + trainingRegistration.getCandidateNo()+ "'"
+								+ ",audit_status = " + "'" + trainingRegistration.getAuditStatus() + "'"
+								+ " " +"where id = " + "'" + trainingRegistration.getId() + "'";
+						FtpUtil.sqlFileUpload(s2);
+					});
+				}
+				return R.status(status);
 			}
-			return R.status(true);
-		}else {
-			examPaper.setAuditTime(new Date());
-			//修改考试审核状态
-			examPaperService.updateById(examPaper);
-			return R.status(true);
 		}
+		//返回
+		return R.status(false);
 	}
 
 	/**
@@ -271,6 +343,8 @@
 			}
 			if (month<=9){
 				months = "0" + month;
+			}else {
+				months = String.valueOf(month);
 			}
 			if (day<=9){
 				days = "0" + day;
@@ -285,8 +359,8 @@
 				type = "m";
 			}
 			//获取考试名称前缀,去除数字,字母
-			String examName
-				= examPaper.getExamName().replaceAll("\\s*", "").replaceAll("[^(\\u4e00-\\u9fa5)]", "").substring(0,1);
+//			String examName
+//				= examPaper.getExamName().replaceAll("\\s*", "").replaceAll("[^(\\u4e00-\\u9fa5)]", "").substring(0,1);
 
 			//前缀 = 年的最后两位  + 月份(两位) + 考试名称(中文拼音)首字母(去除数字,字母) + 考试类型 + 季度拼音首字母大写(春季就是 C)
 //			String result = year
@@ -296,23 +370,34 @@
 //							+ quarter;
 
 			//前缀 = 年的最后两位  + 月份(两位) + 日 (两位) + 考试类型 正式考试  z   模拟考试   m
-			String result = year
+			String pre = year
 				+ months
 				+ days
 				+ type;
-			//查询是当前前缀已生成的数量
-			int count = examPaperService.getCandidateNoCount(result);
-			if (count==0){
-				return result + "0000";
-			}
+			//查询是当前前缀已生成准考证号码最大的一位
+			int count = examPaperService.getCandidateNoCount(pre);
+			String result = null;
 			//格式化
 			DecimalFormat decimalFormat = new DecimalFormat("0000");
+			count++;
+			result = pre + (decimalFormat.format(count));
 			//返回
-			return result + (decimalFormat.format(count++));
+			return result;
 		}
 		return null;
 	}
 
 
+	/**
+	 * 考试中页面刷新,1查询所有的答题信息,2查询所有的已答信息  3其他信息
+	 * @param examPaperVO 必须包含 scoreId
+	 * @return
+	 */
+	@GetMapping("/getExamRefreshInfo")
+	public R getExamRefreshInfo(ExamPaperVO examPaperVO){
+		return R.data(examPaperService.getExamRefreshInfo(examPaperVO));
+	}
+
+
 
 }

--
Gitblit v1.9.3