WANG 6 gadi atpakaļ
vecāks
revīzija
1a36acb437

+ 82 - 3
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/provider/ExamStudentOuterServiceProvider.java

@@ -1,11 +1,15 @@
 package cn.com.qmth.examcloud.exchange.outer.api.provider;
 
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.google.common.collect.Lists;
+
 import cn.com.qmth.examcloud.commons.base.exception.StatusException;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.commons.web.support.StatusResponse;
@@ -14,6 +18,8 @@ import cn.com.qmth.examcloud.examwork.api.bean.ExamStudentBean;
 import cn.com.qmth.examcloud.examwork.api.request.SaveExamStudentReq;
 import cn.com.qmth.examcloud.examwork.api.response.SaveExamStudentResp;
 import cn.com.qmth.examcloud.exchange.outer.api.ExamStudentOuterService;
+import cn.com.qmth.examcloud.exchange.outer.api.bean.ExamStudent4BatchBean;
+import cn.com.qmth.examcloud.exchange.outer.api.bean.ExamStudentStatus4BatchBean;
 import cn.com.qmth.examcloud.exchange.outer.api.bean.OuterExamStudentBean;
 import cn.com.qmth.examcloud.exchange.outer.api.request.OuterBatchSaveExamStudentReq;
 import cn.com.qmth.examcloud.exchange.outer.api.request.OuterSaveExamStudentReq;
@@ -103,10 +109,83 @@ public class ExamStudentOuterServiceProvider extends ControllerSupport
 		return resp;
 	}
 
+	@ApiOperation(value = "批量保存考生信息", httpMethod = "POST")
+	@ApiResponses({
+			@ApiResponse(code = 200, message = "成功", response = BatchOuterSaveExamStudentResp.class),
+			@ApiResponse(code = 500, message = "系统异常(异常信息见响应体)", response = StatusResponse.class)})
+	@PostMapping("batchSaveExamStudent")
 	@Override
-	public BatchOuterSaveExamStudentResp batchSaveExamStudent(OuterBatchSaveExamStudentReq req) {
-		// TODO Auto-generated method stub
-		return null;
+	public BatchOuterSaveExamStudentResp batchSaveExamStudent(
+			@RequestBody @ApiParam(required = true) OuterBatchSaveExamStudentReq req) {
+		if (!getSecurityRootOrgId().equals(req.getRootOrgId())) {
+			throw new StatusException("EX-1000001", "rootOrgId is wrong");
+		}
+
+		List<ExamStudent4BatchBean> examStudentList = req.getExamStudentList();
+
+		List<ExamStudentStatus4BatchBean> successList = Lists.newArrayList();
+		List<ExamStudentStatus4BatchBean> failureList = Lists.newArrayList();
+
+		for (ExamStudent4BatchBean cur : examStudentList) {
+			SaveExamStudentReq request = new SaveExamStudentReq();
+
+			request.setCourseCode(cur.getCourseCode());
+			request.setCourseLevel(cur.getCourseLevel());
+			request.setCourseName(cur.getCourseName());
+			request.setExamId(req.getExamId());
+			request.setExamName(req.getExamName());
+			request.setIdentityNumber(cur.getIdentityNumber());
+			request.setPaperType(cur.getPaperType());
+			request.setRootOrgId(req.getRootOrgId());
+			request.setStudentCode(cur.getStudentCode());
+			request.setStudentName(cur.getStudentName());
+			request.setInfoCollector(cur.getInfoCollector());
+			request.setSpecialtyName(cur.getSpecialtyName());
+			request.setExamSite(cur.getExamSite());
+			request.setGrade(cur.getGrade());
+			request.setRemark(cur.getRemark());
+
+			request.setExt1(cur.getExt1());
+			request.setExt2(cur.getExt2());
+			request.setExt3(cur.getExt3());
+			request.setExt4(cur.getExt4());
+			request.setExt5(cur.getExt5());
+
+			ExamStudentStatus4BatchBean bean = new ExamStudentStatus4BatchBean();
+			try {
+				SaveExamStudentResp response = examStudentCloudService.saveExamStudent(request);
+				ExamStudentBean sb = response.getExamStudentBean();
+
+				bean.setCourseCode(sb.getCourseCode());
+				bean.setCourseLevel(sb.getCourseLevel());
+				bean.setCourseName(sb.getCourseName());
+				bean.setExamId(sb.getExamId());
+				bean.setExamName(sb.getExamName());
+				bean.setIdentityNumber(sb.getIdentityNumber());
+				bean.setStudentCode(sb.getStudentCode());
+				bean.setName(sb.getStudentName());
+				successList.add(bean);
+
+			} catch (Exception e) {
+
+				bean.setCourseCode(cur.getCourseCode());
+				bean.setCourseLevel(cur.getCourseLevel());
+				bean.setCourseName(cur.getCourseName());
+				bean.setExamId(req.getExamId());
+				bean.setExamName(req.getExamName());
+				bean.setIdentityNumber(cur.getIdentityNumber());
+				bean.setStudentCode(cur.getStudentCode());
+				bean.setName(cur.getStudentName());
+				failureList.add(bean);
+
+			}
+
+		}
+
+		BatchOuterSaveExamStudentResp resp = new BatchOuterSaveExamStudentResp();
+		resp.setSuccessList(successList);
+		resp.setFailureList(failureList);
+		return resp;
 	}
 
 }

+ 0 - 33
examcloud-exchange-outer-api/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/bean/ExamStudent4BatchBean.java

@@ -16,15 +16,6 @@ public class ExamStudent4BatchBean implements JsonSerializable {
 
 	private static final long serialVersionUID = 4259890948495983284L;
 
-	@ApiModelProperty(value = "顶级机构", example = "0", required = true)
-	private Long rootOrgId;
-
-	@ApiModelProperty(value = "考试ID", example = "100", required = false)
-	private Long examId;
-
-	@ApiModelProperty(value = "考试名称", example = "2018年秋季入学考试", required = true)
-	private String examName;
-
 	@ApiModelProperty(value = "学生姓名", example = "陈圆圆", required = true)
 	private String studentName;
 
@@ -76,30 +67,6 @@ public class ExamStudent4BatchBean implements JsonSerializable {
 	@ApiModelProperty(value = "扩展属性5", example = "XX", required = false)
 	private String ext5;
 
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getExamId() {
-		return examId;
-	}
-
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
-
-	public String getExamName() {
-		return examName;
-	}
-
-	public void setExamName(String examName) {
-		this.examName = examName;
-	}
-
 	public String getStudentName() {
 		return studentName;
 	}

+ 48 - 8
examcloud-exchange-outer-api/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/bean/ExamStudentStatus4BatchBean.java

@@ -17,6 +17,14 @@ public class ExamStudentStatus4BatchBean implements Serializable {
 
 	private String desc;
 
+	private Long examId;
+
+	private String examName;
+
+	private Long id;
+
+	private Long studentId;
+
 	private String name;
 
 	private String studentCode;
@@ -29,14 +37,6 @@ public class ExamStudentStatus4BatchBean implements Serializable {
 
 	private String courseLevel;
 
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
 	public String getCode() {
 		return code;
 	}
@@ -53,6 +53,46 @@ public class ExamStudentStatus4BatchBean implements Serializable {
 		this.desc = desc;
 	}
 
+	public Long getExamId() {
+		return examId;
+	}
+
+	public void setExamId(Long examId) {
+		this.examId = examId;
+	}
+
+	public String getExamName() {
+		return examName;
+	}
+
+	public void setExamName(String examName) {
+		this.examName = examName;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getStudentId() {
+		return studentId;
+	}
+
+	public void setStudentId(Long studentId) {
+		this.studentId = studentId;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
 	public String getStudentCode() {
 		return studentCode;
 	}

+ 35 - 0
examcloud-exchange-outer-api/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/request/OuterBatchSaveExamStudentReq.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
 import cn.com.qmth.examcloud.exchange.outer.api.bean.ExamStudent4BatchBean;
+import io.swagger.annotations.ApiModelProperty;
 
 /**
  * 类注释
@@ -16,8 +17,42 @@ public class OuterBatchSaveExamStudentReq extends BaseRequest {
 
 	private static final long serialVersionUID = 9086274932441194883L;
 
+	@ApiModelProperty(value = "顶级机构", example = "0", required = true)
+	private Long rootOrgId;
+
+	@ApiModelProperty(value = "考试ID", example = "100", required = false)
+	private Long examId;
+
+	@ApiModelProperty(value = "考试名称", example = "2018年秋季入学考试", required = true)
+	private String examName;
+
+	@ApiModelProperty(value = "考生集合", example = "", required = true)
 	List<ExamStudent4BatchBean> examStudentList;
 
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public Long getExamId() {
+		return examId;
+	}
+
+	public void setExamId(Long examId) {
+		this.examId = examId;
+	}
+
+	public String getExamName() {
+		return examName;
+	}
+
+	public void setExamName(String examName) {
+		this.examName = examName;
+	}
+
 	public List<ExamStudent4BatchBean> getExamStudentList() {
 		return examStudentList;
 	}