瀏覽代碼

考生导入新增特殊时间设置

wangwei 5 年之前
父節點
當前提交
378ed23177

+ 28 - 0
examcloud-task-dao/src/main/java/cn/com/qmth/examcloud/task/dao/entity/ExamStudentTempEntity.java

@@ -1,5 +1,7 @@
 package cn.com.qmth.examcloud.task.dao.entity;
 
+import java.util.Date;
+
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
@@ -147,6 +149,16 @@ public class ExamStudentTempEntity extends JpaEntity {
 	 */
 	private Long lineNum;
 
+	/**
+	 * 特殊考试批次开始时间
+	 */
+	private Date specialBeginTime;
+
+	/**
+	 * 特殊考试批次结束时间
+	 */
+	private Date specialEndTime;
+
 	/**
 	 * 扩展属性1
 	 */
@@ -372,6 +384,22 @@ public class ExamStudentTempEntity extends JpaEntity {
 		this.lineNum = lineNum;
 	}
 
+	public Date getSpecialBeginTime() {
+		return specialBeginTime;
+	}
+
+	public void setSpecialBeginTime(Date specialBeginTime) {
+		this.specialBeginTime = specialBeginTime;
+	}
+
+	public Date getSpecialEndTime() {
+		return specialEndTime;
+	}
+
+	public void setSpecialEndTime(Date specialEndTime) {
+		this.specialEndTime = specialEndTime;
+	}
+
 	public String getExt1() {
 		return ext1;
 	}

+ 3 - 0
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamStudentImportDataProcessingTask.java

@@ -282,6 +282,9 @@ public class ExamStudentImportDataProcessingTask extends AbstractTask {
 			sReq.setInfoCollector(entity.getInfoCollector());
 			sReq.setExamSite(entity.getExamSite());
 
+			sReq.setSpecialBeginTime(entity.getSpecialBeginTime());
+			sReq.setSpecialEndTime(entity.getSpecialEndTime());
+
 			sReq.setExt1(entity.getExt1());
 			sReq.setExt2(entity.getExt2());
 			sReq.setExt3(entity.getExt3());

+ 57 - 5
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/ExamStudentImportParsingFileTask.java

@@ -4,6 +4,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -20,6 +21,8 @@ import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 
 import cn.com.qmth.examcloud.commons.helpers.poi.ExcelReader;
+import cn.com.qmth.examcloud.commons.util.BooleanUtil;
+import cn.com.qmth.examcloud.commons.util.DateUtil;
 import cn.com.qmth.examcloud.commons.util.PathUtil;
 import cn.com.qmth.examcloud.task.dao.ExamStudentImportRepo;
 import cn.com.qmth.examcloud.task.dao.ExamStudentTempRepo;
@@ -165,7 +168,44 @@ public class ExamStudentImportParsingFileTask extends AbstractTask {
 			es.setPhone(trimAndNullIfBlank(line[11]));
 			es.setGrade(trimAndNullIfBlank(line[12]));
 
-			es.setExt1(trimAndNullIfBlank(line[13]));
+			String d1 = trimAndNullIfBlank(line[13]);
+			String d2 = trimAndNullIfBlank(line[14]);
+
+			if (!new Boolean(null == d1).equals(new Boolean(null == d2))) {
+				failRecords.add(buildFailRecord(es.getLineNum(), "特殊考试时间不匹配"));
+				continue;
+			}
+
+			int trueNum = BooleanUtil.countTrue(null == d1, null == d2);
+			if (2 == trueNum) {
+				Date specialBeginTime = null;
+				Date specialEndTime = null;
+				try {
+					specialBeginTime = DateUtil.parseRandomly(d1);
+				} catch (Exception e) {
+					failRecords.add(buildFailRecord(es.getLineNum(), "特殊考试开始时间格式错误"));
+					continue;
+				}
+				try {
+					specialEndTime = DateUtil.parseRandomly(d2);
+				} catch (Exception e) {
+					failRecords.add(buildFailRecord(es.getLineNum(), "特殊考试结束时间格式错误"));
+					continue;
+				}
+
+				if (specialBeginTime.after(specialEndTime)) {
+					failRecords.add(buildFailRecord(es.getLineNum(), "开始时间不能大于结束时间"));
+					continue;
+				}
+				es.setSpecialBeginTime(specialBeginTime);
+				es.setSpecialEndTime(specialEndTime);
+			}
+
+			es.setExt1(trimAndNullIfBlank(line[15]));
+			es.setExt2(trimAndNullIfBlank(line[16]));
+			es.setExt3(trimAndNullIfBlank(line[17]));
+			es.setExt4(trimAndNullIfBlank(line[18]));
+			es.setExt5(trimAndNullIfBlank(line[19]));
 
 			if (hasError(failRecords, es)) {
 				continue;
@@ -270,15 +310,27 @@ public class ExamStudentImportParsingFileTask extends AbstractTask {
 		}
 
 		if (hasError) {
-			Map<String, Object> map = Maps.newHashMap();
-			map.put("lineNum", entity.getLineNum());
-			map.put("msg", sb.toString());
-			failRecords.add(map);
+			failRecords.add(buildFailRecord(entity.getLineNum(), sb.toString()));
 		}
 
 		return hasError;
 	}
 
+	/**
+	 * 构建错误信息
+	 *
+	 * @author WANGWEI
+	 * @param lineNum
+	 * @param msg
+	 * @return
+	 */
+	private Map<String, Object> buildFailRecord(Long lineNum, String msg) {
+		Map<String, Object> map = Maps.newHashMap();
+		map.put("lineNum", lineNum);
+		map.put("msg", msg);
+		return map;
+	}
+
 	/**
 	 * 方法注释
 	 *