From d8103e5da17cd3dc9fb16abc223b6adcf93f0383 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 12 Aug 2021 14:26:30 +0800
Subject: [PATCH] 培训列表接口修改,帅选出已报名培训的数据

---
 src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java    |  147 ++++++++++++++++++++++++++++++------
 src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java |    6 
 src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java                   |   16 ++-
 src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml             |   10 +-
 src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java                    |    5 +
 src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml                   |    2 
 6 files changed, 147 insertions(+), 39 deletions(-)

diff --git a/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml b/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
index fd32991..d95b7fb 100644
--- a/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
+++ b/src/main/java/org/springblade/modules/information/mapper/InformationMapper.xml
@@ -124,6 +124,8 @@
         ) B ON A.dept_id = B.dept_id
         WHERE A.dept_id = #{deptid}
     </select>
+
+
     <!--保安员持证和未持证数量-->
     <select id="selectHold" resultType="java.util.HashMap">
         SELECT IFNULL(A.thisnum, 0) AS cz,
diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
index 8e2f2f1..c08be41 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -452,13 +452,15 @@
 	public List<TreeNode> getSecurityApplyTree(UserVO user) {
 		Map<Long,TreeNode> map = baseMapper.getSecurityApplyTree(user);
 		List<TreeNode> tree = new ArrayList<>();
-		map.forEach((id,treeNode) ->{
-			if (map.containsKey(treeNode.getParentId())){
-				map.get(treeNode.getParentId()).getChildren().add(treeNode);
-			}else {
-				tree.add(treeNode);
-			}
-		});
+		if (map.size()>1){
+			map.forEach((id,treeNode) ->{
+				if (map.containsKey(treeNode.getParentId())){
+					map.get(treeNode.getParentId()).getChildren().add(treeNode);
+				}else {
+					tree.add(treeNode);
+				}
+			});
+		}
 		return tree;
 	}
 
diff --git a/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java b/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
index 65455cb..2470d65 100644
--- a/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
+++ b/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
@@ -19,9 +19,12 @@
 import org.springblade.modules.apply.entity.Apply;
 import org.springblade.modules.apply.excel.ApplyImporter;
 import org.springblade.modules.apply.excel.ApplyInfoExcel;
+import org.springblade.modules.apply.vo.ApplyVO;
 import org.springblade.modules.exam.entity.ExamPaper;
 import org.springblade.modules.exam.entity.ExamScore;
 import org.springblade.modules.exam.service.ExamPaperService;
+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.excel.TrainingRegistrationImporter;
@@ -34,6 +37,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
@@ -50,7 +54,7 @@
 
 	private final TrainingRegistrationService trainingRegistrationService;
 
-	private final TrainExamService trainExamService;
+	private final IUserService userService;
 
 	private final ExamPaperService examPaperService;
 
@@ -71,8 +75,120 @@
 	 */
 	@PostMapping("/save")
 	@ApiOperation(value = "新增", notes = "传入trainingRegistration")
-	public R save(@RequestBody TrainingRegistration trainingRegistration) throws Exception {
-		return R.status(trainingRegistrationService.save(trainingRegistration));
+	public R save(@RequestBody TrainingRegistration trainingRegistration){
+		//查询人员是否已报名
+		User user = userService.getById(trainingRegistration.getUserId());
+		if (null==user.getIsTrain()){
+			//已报名
+			trainingRegistration.setCancel(1);
+			//默认为未考试状态
+			trainingRegistration.setIsExam(1);
+			trainingRegistration.setTrainingTime(new Date());
+			//报名
+			trainingRegistrationService.save(trainingRegistration);
+			//修改保安报名状态
+			User user1 = new User();
+			user1.setId(Long.parseLong(trainingRegistration.getUserId()));
+			user1.setIsTrain(1);
+			userService.updateById(user1);
+			return R.data(200,"报名成功");
+		}else {
+			if (1==user.getIsTrain()){
+				return R.data(201,"已报名,不能重复报名");
+			}
+			if (2==user.getIsTrain()){
+				//已报名
+				trainingRegistration.setCancel(1);
+				//默认为未考试状态
+				trainingRegistration.setIsExam(1);
+				trainingRegistration.setTrainingTime(new Date());
+				//报名
+				trainingRegistrationService.save(trainingRegistration);
+				//修改保安报名状态
+				User user1 = new User();
+				user1.setId(Long.parseLong(trainingRegistration.getUserId()));
+				user1.setIsTrain(1);
+				userService.updateById(user1);
+				return R.data(200,"报名成功");
+			}
+		}
+		return R.data(202,"报名失败");
+	}
+
+
+	/**
+	 * 取消报名
+	 * @param trainingRegistration 考试报名信息对象
+	 */
+	@PostMapping("/cancelTrain")
+	public R cancelApply(@RequestBody TrainingRegistration trainingRegistration){
+		//查询人员是否已报名
+		User user = userService.getById(trainingRegistration.getUserId());
+		if(null==user.getIsTrain()){
+			trainingRegistration.setCancel(2);
+			boolean status = trainingRegistrationService.updateById(trainingRegistration);
+			//修改保安报名状态
+			user.setIsTrain(2);
+			userService.updateById(user);
+			if (status){
+				return R.data(200,"取消报名成功");
+			}
+		}else {
+			if (user.getIsTrain()==2) {
+				return R.data(201,"尚未报名");
+			}
+			if(user.getIsTrain()==1){
+				trainingRegistration.setCancel(2);
+				boolean status = trainingRegistrationService.updateById(trainingRegistration);
+				//修改保安报名状态
+				user.setIsTrain(2);
+				userService.updateById(user);
+				if (status){
+					return R.data(200,"取消报名成功");
+				}
+			}
+
+		}
+		return R.data(202,"取消报名失败");
+	}
+
+	/**
+	 * 批量报名
+	 * @param trainingRegistration 考试报名信息对象
+	 */
+	@PostMapping("/batchTrain")
+	public R batchApply(@RequestBody TrainingRegistrationVo trainingRegistration){
+		List<String> list = Arrays.asList(trainingRegistration.getUserIds().split(","));
+		list.forEach(userId ->{
+			User user = userService.getById(userId);
+			//未报名的新增,已报名的不做处理
+			if (null==user.getIsTrain()) {
+				TrainingRegistration trainingRegistration1 = new TrainingRegistration();
+				trainingRegistration1.setCancel(1);
+				//默认为未考试状态
+				trainingRegistration1.setIsExam(1);
+				trainingRegistration1.setTrainingTime(new Date());
+				trainingRegistration1.setUserId(userId);
+				trainingRegistrationService.save(trainingRegistration1);
+				//修改保安报名状态
+				user.setIsTrain(1);
+				userService.updateById(user);
+			}else {
+				if (user.getIsTrain()==2) {
+					TrainingRegistration trainingRegistration1 = new TrainingRegistration();
+					trainingRegistration1.setCancel(1);
+					//默认为未考试状态
+					trainingRegistration1.setIsExam(1);
+					trainingRegistration1.setTrainingTime(new Date());
+					trainingRegistration1.setUserId(userId);
+					trainingRegistrationService.save(trainingRegistration1);
+					//修改保安报名状态
+					user.setIsTrain(1);
+					userService.updateById(user);
+				}
+			}
+		});
+		return R.data(200,"报名成功");
 	}
 
 	/**
@@ -80,7 +196,7 @@
 	 * @param trainingRegistration 报名培训信息对象
 	 */
 	@PostMapping("/update")
-	public R update(@RequestBody TrainingRegistration trainingRegistration) throws Exception {
+	public R update(@RequestBody TrainingRegistration trainingRegistration){
 		return R.status(trainingRegistrationService.updateById(trainingRegistration));
 	}
 
@@ -89,27 +205,8 @@
 	 * @param trainingRegistration 报名培训信息对象
 	 */
 	@PostMapping("/submit")
-	public R submit(@RequestBody TrainingRegistration trainingRegistration) throws Exception {
-		if (null==trainingRegistration.getId()){
-			//查询是否已报名
-			Integer registration = trainingRegistrationService.getTrainingRegistrationInfo(trainingRegistration);
-			if (null!=registration){
-				return R.data(201,"已报名,不能重复报名");
-			}
-			trainingRegistration.setTrainingTime(new Date());
-			trainingRegistration.setCancel(1);
-			//默认报名未考试状态
-//			trainingRegistration.setIsExam(1);
-			//去生成准考证号码
-//			trainingRegistration.setCandidateNo(getCandidateNo(trainingRegistration));
-			//去生成考试编号
-//			trainingRegistration.setApplyCode(getApplyCode(trainingRegistration));
-		}
-		boolean status = trainingRegistrationService.saveOrUpdate(trainingRegistration);
-		if (status){
-			return R.data(200,"报名成功");
-		}
-		return R.data(202,"报名失败");
+	public R submit(@RequestBody TrainingRegistration trainingRegistration){
+		return R.data(trainingRegistrationService.saveOrUpdate(trainingRegistration));
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml b/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml
index de83311..5f5d269 100644
--- a/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml
+++ b/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml
@@ -14,10 +14,6 @@
         FROM
             sys_training_registration sr
         LEFT JOIN
-            blade_dept bt
-        ON
-            sr.dept_id = bt.id
-        LEFT JOIN
             blade_dept bt0
         ON
             sr.training_unit_id = bt0.id
@@ -25,6 +21,10 @@
             blade_user bu
         on
             sr.user_id = bu.id
+        LEFT JOIN
+            blade_dept bt
+        ON
+            bu.dept_id = bt.id
         left join
             ksxt_exam ke
         on
@@ -32,6 +32,8 @@
         WHERE
             1=1
         and is_exam = 1
+        and bu.is_train = 1
+        and sr.cancel = 1
         <if test="trainingRegistration.trainingUnitId!=null and  trainingRegistration.trainingUnitId!=''">
             and sr.training_unit_id = #{trainingRegistration.trainingUnitId}
         </if>
diff --git a/src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java b/src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java
index 9d97a0a..49cf874 100644
--- a/src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java
+++ b/src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java
@@ -25,9 +25,9 @@
 	@Override
 	public IPage<TrainingRegistrationVo> selectTrainingRegistrationPage(IPage<TrainingRegistrationVo> page, TrainingRegistrationVo trainingRegistration) {
 		List<TrainingRegistrationVo> trainingRegistrationVos = baseMapper.selectTrainingRegistrationPage(page, trainingRegistration);
-		trainingRegistrationVos.forEach(trainingRegistrationVo -> {
-			trainingRegistrationVo.setRemainingTime(LongTimeUtil.getDistanceTime(trainingRegistrationVo.getTrainExamTime().getTime(), System.currentTimeMillis()));
-		});
+//		trainingRegistrationVos.forEach(trainingRegistrationVo -> {
+//			trainingRegistrationVo.setRemainingTime(LongTimeUtil.getDistanceTime(trainingRegistrationVo.getTrainExamTime().getTime(), System.currentTimeMillis()));
+//		});
 		return page.setRecords(trainingRegistrationVos);
 	}
 
diff --git a/src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java b/src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java
index 7228943..a6fbd45 100644
--- a/src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java
+++ b/src/main/java/org/springblade/modules/training/vo/TrainingRegistrationVo.java
@@ -72,4 +72,9 @@
 	 * 考试类型
 	 */
 	private Integer examType;
+
+	/**
+	 * 多人报名
+	 */
+	private String userIds;
 }

--
Gitblit v1.9.3