From 832d80c13f96155264fc35ffc8b1136dbdf5946b Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 12 Aug 2021 21:38:54 +0800
Subject: [PATCH] 公司装备导入

---
 src/main/java/org/springblade/modules/equipage/excel/EquipageImporter.java                       |   40 ++++
 src/main/java/org/springblade/modules/equipage/service/impl/EquipageServiceImpl.java             |   61 ++++++
 src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.java            |    6 
 src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java                |   10 +
 src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java    |   70 +++++++
 src/main/java/org/springblade/modules/equipage/entity/Equipage.java                              |    6 
 src/main/java/org/springblade/modules/exam/entity/ExamPaper.java                                 |   20 ++
 src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml             |   20 ++
 src/main/java/org/springblade/modules/training/service/impl/TrainingRegistrationServiceImpl.java |    9 +
 src/main/java/org/springblade/modules/equipage/service/EquipageService.java                      |   10 +
 src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java                           |    7 
 src/main/java/org/springblade/modules/equipage/excel/EquipageExcel.java                          |   96 ++++++++++
 src/main/java/org/springblade/modules/equipage/controller/EquipageController.java                |   33 +++
 src/main/java/org/springblade/modules/exam/service/ExamPaperService.java                         |    7 
 src/main/java/org/springblade/modules/apply/controller/ApplyController.java                      |    2 
 src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java                   |   96 ++++++++++
 src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml                            |    9 +
 src/main/java/org/springblade/modules/training/service/TrainingRegistrationService.java          |    6 
 18 files changed, 499 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/springblade/modules/apply/controller/ApplyController.java b/src/main/java/org/springblade/modules/apply/controller/ApplyController.java
index fa2658f..0adada7 100644
--- a/src/main/java/org/springblade/modules/apply/controller/ApplyController.java
+++ b/src/main/java/org/springblade/modules/apply/controller/ApplyController.java
@@ -379,7 +379,6 @@
 	public R cancelApply(@RequestBody Apply apply){
 		//查询人员是否已报名
 		User user = userService.getById(apply.getUserId());
-		System.out.println("user = " + user);
 		if(null==user.getIsApply()){
 			apply.setApplyStatus(4);
 			boolean status = applyService.updateById(apply);
@@ -403,7 +402,6 @@
 					return R.data(200,"取消报名成功");
 				}
 			}
-
 		}
 		return R.data(202,"取消报名失败");
 	}
diff --git a/src/main/java/org/springblade/modules/equipage/controller/EquipageController.java b/src/main/java/org/springblade/modules/equipage/controller/EquipageController.java
index 0c41043..028ce1e 100644
--- a/src/main/java/org/springblade/modules/equipage/controller/EquipageController.java
+++ b/src/main/java/org/springblade/modules/equipage/controller/EquipageController.java
@@ -5,15 +5,25 @@
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.common.utils.arg;
+import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 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.equipage.entity.Equipage;
+import org.springblade.modules.equipage.excel.EquipageExcel;
+import org.springblade.modules.equipage.excel.EquipageImporter;
 import org.springblade.modules.equipage.service.EquipageService;
 import org.springblade.modules.equipage.vo.EquipageVo;
+import org.springblade.modules.exam.excel.ExamScoreExcel;
+import org.springblade.modules.exam.excel.ExamScoreImporter;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author zhongrj
@@ -91,4 +101,27 @@
 		return R.data(detail);
 	}
 
+	/**
+	 * 导入装备数据
+	 * @param isCovered 1 覆盖  0不覆盖
+	 * @return
+	 */
+	@PostMapping("import-equipage")
+	@ApiOperation(value = "导入装备数据", notes = "传入excel")
+	public R importExamScore(MultipartFile file, Integer isCovered) {
+		EquipageImporter equipageImporter = new EquipageImporter(equipageService, false);
+		ExcelUtil.save(file, equipageImporter, EquipageExcel.class);
+		return R.success("操作成功");
+	}
+
+	/**
+	 * 导出模板
+	 */
+	@GetMapping("export-template")
+	@ApiOperation(value = "导出模板")
+	public void exportUser(HttpServletResponse response) {
+		List<EquipageExcel> list = new ArrayList<>();
+		ExcelUtil.export(response, "装备导入数据模板", "装备导入数据表", list, EquipageExcel.class);
+	}
+
 }
diff --git a/src/main/java/org/springblade/modules/equipage/entity/Equipage.java b/src/main/java/org/springblade/modules/equipage/entity/Equipage.java
index fb6929c..dc85e27 100644
--- a/src/main/java/org/springblade/modules/equipage/entity/Equipage.java
+++ b/src/main/java/org/springblade/modules/equipage/entity/Equipage.java
@@ -73,6 +73,10 @@
 	@DateTimeFormat(pattern = "yyyy-MM-dd")
 	private Date dateForProduction;
 
-
+	/**
+	 * 责任人id
+	 */
+	@TableField("user_id")
+	private Long userId;
 
 }
diff --git a/src/main/java/org/springblade/modules/equipage/excel/EquipageExcel.java b/src/main/java/org/springblade/modules/equipage/excel/EquipageExcel.java
new file mode 100644
index 0000000..edd295e
--- /dev/null
+++ b/src/main/java/org/springblade/modules/equipage/excel/EquipageExcel.java
@@ -0,0 +1,96 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.equipage.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * EquipageExcel 保安公司装备
+ * @author zhongrj
+ * @since 2021-08-12
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class EquipageExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 保安公司名称
+	 */
+	@ColumnWidth(25)
+	@ExcelProperty("保安公司名称")
+	private String deptName;
+
+	/**
+	 * 装备名称
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("装备名称")
+	private String name;
+
+	/**
+	 * 编号
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("编号")
+	private String number;
+
+	/**
+	 * 规格
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("规格")
+	private String specifications;
+
+	/**
+	 * 型号
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("型号")
+	private String mode;
+
+	/**
+	 * 责任人
+	 */
+	@ColumnWidth(15)
+	@ExcelProperty("责任人名字")
+	private String personInCharge;
+
+
+	/**
+	 * 责任人
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("责任人身份证号码")
+	private String idCardNo;
+
+	/**
+	 * 品牌,厂商
+	 */
+	@ColumnWidth(25)
+	@ExcelProperty("厂商名称")
+	private String brand;
+
+
+}
diff --git a/src/main/java/org/springblade/modules/equipage/excel/EquipageImporter.java b/src/main/java/org/springblade/modules/equipage/excel/EquipageImporter.java
new file mode 100644
index 0000000..4b3a330
--- /dev/null
+++ b/src/main/java/org/springblade/modules/equipage/excel/EquipageImporter.java
@@ -0,0 +1,40 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.equipage.excel;
+
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.excel.support.ExcelImporter;
+import org.springblade.modules.equipage.service.EquipageService;
+
+import java.util.List;
+
+/**
+ * 保安公司装备导入
+ * @author zhongrj
+ * @since 2021-08-12
+ */
+@RequiredArgsConstructor
+public class EquipageImporter implements ExcelImporter<EquipageExcel> {
+
+	private final EquipageService service;
+	private final Boolean isCovered;
+
+	@Override
+	public void save(List<EquipageExcel> data) {
+		service.importEquipage(data, isCovered);
+	}
+}
diff --git a/src/main/java/org/springblade/modules/equipage/service/EquipageService.java b/src/main/java/org/springblade/modules/equipage/service/EquipageService.java
index d4c4a83..3c1eb6a 100644
--- a/src/main/java/org/springblade/modules/equipage/service/EquipageService.java
+++ b/src/main/java/org/springblade/modules/equipage/service/EquipageService.java
@@ -3,11 +3,21 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.modules.equipage.entity.Equipage;
+import org.springblade.modules.equipage.excel.EquipageExcel;
 import org.springblade.modules.equipage.vo.EquipageVo;
+
+import java.util.List;
 
 public interface EquipageService extends IService<Equipage> {
 
 	EquipageVo selectEquipageInfo(Equipage equipage);
 
 	IPage<EquipageVo> selectEquipagePage(IPage<EquipageVo> page, EquipageVo equipage);
+
+	/**
+	 * 保安公司装备导入
+	 * @param data
+	 * @param isCovered
+	 */
+    void importEquipage(List<EquipageExcel> data, Boolean isCovered);
 }
diff --git a/src/main/java/org/springblade/modules/equipage/service/impl/EquipageServiceImpl.java b/src/main/java/org/springblade/modules/equipage/service/impl/EquipageServiceImpl.java
index d55061a..3a849d4 100644
--- a/src/main/java/org/springblade/modules/equipage/service/impl/EquipageServiceImpl.java
+++ b/src/main/java/org/springblade/modules/equipage/service/impl/EquipageServiceImpl.java
@@ -4,18 +4,30 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
 import org.springblade.modules.equipage.entity.Equipage;
+import org.springblade.modules.equipage.excel.EquipageExcel;
 import org.springblade.modules.equipage.mapper.EquipageMapper;
 import org.springblade.modules.equipage.service.EquipageService;
 import org.springblade.modules.equipage.vo.EquipageVo;
+import org.springblade.modules.system.service.IUserDeptService;
+import org.springblade.modules.system.service.IUserService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
 
 /**
  * 装备服务实现类
  * @author zhongrj
  */
 @Service
+@AllArgsConstructor
 public class EquipageServiceImpl extends ServiceImpl<EquipageMapper, Equipage> implements EquipageService {
+
+	private final IUserService userService;
+
+	private final IUserDeptService userDeptService;
 
 	@Override
 	public IPage<EquipageVo> selectEquipagePage(IPage<EquipageVo> page, EquipageVo rquipage) {
@@ -30,4 +42,53 @@
 	public EquipageVo selectEquipageInfo(Equipage rquipage) {
 		return baseMapper.selectEquipageInfo(rquipage);
 	}
+
+	/**
+	 * 保安公司装备导入
+	 * @param data 装备数据集合
+	 * @param isCovered
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void importEquipage(List<EquipageExcel> data, Boolean isCovered) {
+		if (data.size()>0){
+			//数据导入
+			data.forEach(equipageExcel -> {
+				Equipage equipage = new Equipage();
+				//使用责任人身份证号匹配userId
+				if (null!=equipageExcel.getIdCardNo() && equipageExcel.getIdCardNo()!=""){
+					equipage.setUserId(userService.getUserInfoByIdCardNo(equipageExcel.getIdCardNo()).getId());
+					equipage.setPersonInCharge(userService.getUserInfoByIdCardNo(equipageExcel.getIdCardNo()).getRealName());
+				}
+				//使用保安公司名称匹配组织机构id
+				if (null!=equipageExcel.getDeptName() && equipageExcel.getDeptName()!=""){
+					equipage.setDeptId(Long.parseLong(userDeptService.selectIn(equipageExcel.getDeptName())));
+				}
+
+				if (null!=equipageExcel.getBrand() && equipageExcel.getBrand()!="") {
+					equipage.setBrand(equipageExcel.getBrand());
+				}
+
+				if (null!=equipageExcel.getMode() && equipageExcel.getMode()!="") {
+					equipage.setMode(equipageExcel.getMode());
+				}
+
+				if (null!=equipageExcel.getName() && equipageExcel.getName()!="") {
+					equipage.setName(equipageExcel.getName());
+				}
+
+				if (null!=equipageExcel.getNumber() && equipageExcel.getNumber()!="") {
+					equipage.setNumber(equipageExcel.getNumber());
+				}
+
+				if (null!=equipageExcel.getSpecifications() && equipageExcel.getSpecifications()!="") {
+					equipage.setSpecifications(equipageExcel.getSpecifications());
+				}
+
+				//插入数据
+				this.save(equipage);
+
+			});
+		}
+	}
 }
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 42bc085..2b69dd5 100644
--- a/src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java
+++ b/src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java
@@ -26,15 +26,18 @@
 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.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.wrapper.ExamPaperWrapper;
+import org.springblade.modules.training.entity.TrainExam;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
@@ -189,7 +192,6 @@
 	 */
 	@GetMapping("/UnbindSubject")
 	public R UnbindSubject(String paperid,String subjectid){
-
 		return R.status(examPaperService.UnbindSubject(paperid,subjectid));
 	}
 
@@ -205,5 +207,97 @@
 	}
 
 
+	/**
+	 * 审核修改
+	 * @param examPaper 报名培训申请信息对象
+	 */
+	@PostMapping("/update-audit")
+	public R updateAudit(@RequestBody ExamPaper examPaper){
+		examPaper.setAuditTime(new Date());
+		//审核通过,插入一条考试信息
+		if (examPaper.getAuditStatus()==1){
+			examPaper.setAuditTime(new Date());
+			//修改考试审核状态
+			examPaperService.updateById(examPaper);
+
+			//查询当前考试已报名的人员集合数据
+			//生成准考证号
+			getCandidateNo(examPaper);
+			//查询
+		}
+		return R.status(false);
+	}
+
+	/**
+	 * 生成准考证号码
+	 * @param examPaper 考试报名信息对象
+	 */
+	private String getCandidateNo(ExamPaper examPaper) {
+		//获取考试信息
+		if (null!=examPaper.getStartTime()){
+			String format = new SimpleDateFormat("yyyy-MM-dd").format(examPaper.getStartTime());
+			String year = format.substring(2,4);
+			String quarter  = null;
+			String months = null;
+			int month = Integer.parseInt(format.substring(5,7));
+			int day = Integer.parseInt(format.substring(8,10));
+			String days = null;
+			if (month>0 && month<=3){
+				quarter = "C";
+			}
+			if (month>3 && month<=6){
+				quarter = "X";
+			}
+			if (month>6 && month<=9){
+				quarter = "Q";
+			}
+			if (month>9 && month<=12){
+				quarter = "D";
+			}
+			if (month<=9){
+				months = "0" + month;
+			}
+			if (day<=9){
+				days = "0" + day;
+			}else {
+				days = ""+day;
+			}
+			String type = null;
+			if (examPaper.getExamType()==1){
+				type = "z";
+			}
+			if (examPaper.getExamType()==2){
+				type = "m";
+			}
+			//获取考试名称前缀,去除数字,字母
+			String examName
+				= examPaper.getExamName().replaceAll("\\s*", "").replaceAll("[^(\\u4e00-\\u9fa5)]", "").substring(0,1);
+
+			//前缀 = 年的最后两位  + 月份(两位) + 考试名称(中文拼音)首字母(去除数字,字母) + 考试类型 + 季度拼音首字母大写(春季就是 C)
+//			String result = year
+//							+ months
+//							+ toFirstChar(examName).toUpperCase()
+//							+ examPaper.getExamType()
+//							+ quarter;
+
+			//前缀 = 年的最后两位  + 月份(两位) + 日 (两位) + 考试类型 正式考试  z   模拟考试   m
+			String result = year
+				+ months
+				+ days
+				+ type;
+			//查询是当前前缀已生成的数量
+			int count = examPaperService.getCandidateNoCount(result);
+			if (count==0){
+				return result + "0000";
+			}
+			//格式化
+			DecimalFormat decimalFormat = new DecimalFormat("0000");
+			//返回
+			return result + (decimalFormat.format(count++));
+		}
+		return null;
+	}
+
+
 
 }
diff --git a/src/main/java/org/springblade/modules/exam/entity/ExamPaper.java b/src/main/java/org/springblade/modules/exam/entity/ExamPaper.java
index 3c51b8c..b50fd57 100644
--- a/src/main/java/org/springblade/modules/exam/entity/ExamPaper.java
+++ b/src/main/java/org/springblade/modules/exam/entity/ExamPaper.java
@@ -109,5 +109,25 @@
 	@TableField("train_exam_id")
 	private Long trainExamId;
 
+	/**
+	 * 审核状态   1:通过   2:不通过  3:待审核
+	 */
+	@TableField("audit_status")
+	private Integer auditStatus;
+
+	/**
+	 * 审核明细
+	 */
+	@TableField("audit_detail")
+	private String auditDetail;
+
+	/**
+	 * 审核时间
+	 */
+	@TableField("audit_time")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date auditTime;
+
 
 }
diff --git a/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java b/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java
index 82cadc7..8702de5 100644
--- a/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java
+++ b/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java
@@ -57,4 +57,11 @@
 	 * @return
 	 */
     List<ExamPaperVO> getExamDetail(String userId);
+
+	/**
+	 * 查询前缀相同的准考证数量
+	 * @param result 前缀
+	 * @return
+	 */
+	int getCandidateNoCount(String result);
 }
diff --git a/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml b/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
index 50b97f4..30c18aa 100644
--- a/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
+++ b/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
@@ -174,4 +174,13 @@
         )
     </select>
 
+    <!--查询前缀相同的准考证数量-->
+    <select id="getCandidateNoCount" resultType="java.lang.Integer">
+        select count(*) from sys_training_registration
+        where 1=1
+        <if test="result!=null and result!=''">
+            and candidate_no like concat('%', #{result},'%')
+        </if>
+    </select>
+
 </mapper>
diff --git a/src/main/java/org/springblade/modules/exam/service/ExamPaperService.java b/src/main/java/org/springblade/modules/exam/service/ExamPaperService.java
index 675ba8d..b2cb0c3 100644
--- a/src/main/java/org/springblade/modules/exam/service/ExamPaperService.java
+++ b/src/main/java/org/springblade/modules/exam/service/ExamPaperService.java
@@ -65,4 +65,11 @@
 	 * @return
 	 */
 	List<ExamPaperVO> getExamDetail(String userId);
+
+	/**
+	 * 查询前缀相同的准考证数量
+	 * @param result 前缀
+	 * @return
+	 */
+    int getCandidateNoCount(String result);
 }
diff --git a/src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java b/src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java
index ccf3e4f..8eaaf23 100644
--- a/src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java
@@ -87,4 +87,14 @@
 		//查询考试信息
 		return baseMapper.getExamDetail(userId);
 	}
+
+	/**
+	 * 查询前缀相同的准考证数量
+	 * @param result 前缀
+	 * @return
+	 */
+	@Override
+	public int getCandidateNoCount(String result) {
+		return baseMapper.getCandidateNoCount(result);
+	}
 }
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 2470d65..55186da 100644
--- a/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
+++ b/src/main/java/org/springblade/modules/training/controller/TrainingRegistrationController.java
@@ -37,10 +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;
+import java.util.*;
 
 /**
  * @author zhongrj
@@ -386,4 +383,69 @@
 		}
 		return pinyinStr;
 	}
+
+
+	/**
+	 * 生成试卷,报名
+	 * @param ids 报名ids
+	 */
+	@PostMapping("/batchExam")
+	public R batchExam(@RequestParam String ids,
+					   @RequestParam String examTime,
+					   @RequestParam Date startTime,
+					   @RequestParam Date endTime){
+		if (!ids.equals("")){
+			List<String> list = Arrays.asList(ids.split(","));
+			if (list.size()>0){
+				ExamPaper examPaper = new ExamPaper();
+				examPaper.setExamTime(examTime);
+				examPaper.setExamType(2);
+				examPaper.setStartTime(startTime);
+				examPaper.setEndTime(endTime);
+				Calendar instance = Calendar.getInstance();
+				instance.setTime(startTime);
+				int year = instance.get(Calendar.YEAR);
+				int month = instance.get(Calendar.MONTH)+1;
+				int day = instance.get(Calendar.DAY_OF_MONTH);
+				String examName = year + "年" + month+ "月"+ day +"日" +"保安员证模拟考试";
+				examPaper.setExamName(examName);
+				//待审核
+				examPaper.setAuditStatus(3);
+				//生成考试
+				examPaperService.save(examPaper);
+			}
+
+		}else {
+			//查询已报名未关联试卷的人员
+			List<Long> applyIds = trainingRegistrationService.getTrainIds();
+			if (applyIds.size()>0){
+				//生成考试
+				ExamPaper examPaper = new ExamPaper();
+				examPaper.setExamTime(examTime);
+				examPaper.setExamType(2);
+				examPaper.setStartTime(startTime);
+				examPaper.setEndTime(endTime);
+				Calendar instance = Calendar.getInstance();
+				instance.setTime(startTime);
+				int year = instance.get(Calendar.YEAR);
+				int month = instance.get(Calendar.MONTH)+1;
+				int day = instance.get(Calendar.DAY_OF_MONTH);
+				String examName = year + "年" + month+ "月"+ day +"日" +"保安员证模拟考试";
+				examPaper.setExamName(examName);
+				//待审核
+				examPaper.setAuditStatus(3);
+				//生成考试
+				examPaperService.save(examPaper);
+				//修改报名信息
+//				applyIds.forEach(id ->{
+//					Apply apply = new Apply();
+//					apply.setId(id);
+//					apply.setExamId(examPaper.getId());
+//					apply.setCandidateNo(getCandidateNo(apply));
+//					applyService.updateById(apply);
+//				});
+			}
+		}
+		return null;
+	}
 }
diff --git a/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.java b/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.java
index 1314e10..47bc2a3 100644
--- a/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.java
+++ b/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.java
@@ -52,4 +52,10 @@
 	 * @return
 	 */
     Integer getTrainingRegistrationInfo(@Param("trainingRegistration")TrainingRegistration trainingRegistration);
+
+	/**
+	 * 查询已报名培训公司未关联考试的人员
+	 * @return
+	 */
+    List<Long> getTrainIds();
 }
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 5f5d269..115c6bd 100644
--- a/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml
+++ b/src/main/java/org/springblade/modules/training/mapper/TrainingRegistrationMapper.xml
@@ -9,7 +9,7 @@
             bt.dept_name AS deptName,
             bt0.dept_name AS trainUnitName,
             bu.real_name realName,bu.phone,bu.cardid idCardNo,
-            ke.start_time trainExamTime,ke.exam_name trainExamName,ke.exam_type examType,
+            ke.start_time trainExamTime,if(ke.audit_status=1,ke.exam_name,"") trainExamName,ke.exam_type examType,
             "保安证" applyCard
         FROM
             sys_training_registration sr
@@ -143,4 +143,22 @@
         </if>
         limit 1
     </select>
+
+    <!--查询已报名培训公司未关联考试的人员-->
+    <select id="getTrainIds" resultType="java.lang.Long">
+        SELECT
+        str.id
+        FROM
+        sys_training_registration str
+        left join
+        blade_user bu
+        on
+        str.user_id = bu.id
+        WHERE
+        1=1
+        and str.is_exam = 1
+        and str.cancel = 1
+        and bu.is_train = 1
+        and str.train_exam_id is null
+    </select>
 </mapper>
diff --git a/src/main/java/org/springblade/modules/training/service/TrainingRegistrationService.java b/src/main/java/org/springblade/modules/training/service/TrainingRegistrationService.java
index d811d03..95b0726 100644
--- a/src/main/java/org/springblade/modules/training/service/TrainingRegistrationService.java
+++ b/src/main/java/org/springblade/modules/training/service/TrainingRegistrationService.java
@@ -55,4 +55,10 @@
 	 * @return
 	 */
 	Integer getTrainingRegistrationInfo(TrainingRegistration trainingRegistration);
+
+	/**
+	 * 查询已报名培训公司未关联考试的人员
+	 * @return
+	 */
+    List<Long> getTrainIds();
 }
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 49cf874..30c5378 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
@@ -97,4 +97,13 @@
 	public Integer getTrainingRegistrationInfo(TrainingRegistration trainingRegistration) {
 		return baseMapper.getTrainingRegistrationInfo(trainingRegistration);
 	}
+
+	/**
+	 * 查询已报名培训公司未关联考试的人员
+	 * @return
+	 */
+	@Override
+	public List<Long> getTrainIds() {
+		return baseMapper.getTrainIds();
+	}
 }

--
Gitblit v1.9.3