Joburgess hace 5 años
padre
commit
283b07fef7

+ 11 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamRegistrationRoomDto.java

@@ -20,6 +20,9 @@ public class ExamRegistrationRoomDto extends ExamRegistration {
     @ApiModelProperty(value = "考试结束时间")
     private Date examEndTime;
 
+    @ApiModelProperty(value = "是否完成考试")
+    private Integer isFinishedExam;
+
     public Long getExamRoomId() {
         return examRoomId;
     }
@@ -43,4 +46,12 @@ public class ExamRegistrationRoomDto extends ExamRegistration {
     public void setExamEndTime(Date examEndTime) {
         this.examEndTime = examEndTime;
     }
+
+    public Integer getIsFinishedExam() {
+        return isFinishedExam;
+    }
+
+    public void setIsFinishedExam(Integer isFinishedExam) {
+        this.isFinishedExam = isFinishedExam;
+    }
 }

+ 21 - 10
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/StudentExamResult.java

@@ -16,6 +16,9 @@ public class StudentExamResult {
 	
 	@ApiModelProperty(value = "考级项目编号")
 	private Integer examinationBasicId;
+
+	@ApiModelProperty(value = "考级项目")
+	private ExaminationBasic examinationBasic;
 	
 	@ApiModelProperty(value = "学员编号")
 	private Integer studentId;
@@ -30,7 +33,7 @@ public class StudentExamResult {
 	private Float avgScore;
 
 	@ApiModelProperty(value = "考试结果确认")
-	private Boolean confirmStatus;
+	private Integer confirmStatus;
 	
 	@ApiModelProperty(value = "备注")
 	private String memo;
@@ -39,7 +42,7 @@ public class StudentExamResult {
 	private Integer operatorId;
 
 	@ApiModelProperty(value = "是否参与考试")
-	private Boolean isFinishedExam;
+	private Integer isFinishedExam;
 
 	private java.util.Date createTime;
 
@@ -47,6 +50,14 @@ public class StudentExamResult {
 
 	private String tenantId;
 
+	public ExaminationBasic getExaminationBasic() {
+		return examinationBasic;
+	}
+
+	public void setExaminationBasic(ExaminationBasic examinationBasic) {
+		this.examinationBasic = examinationBasic;
+	}
+
 	public Long getExamRegistrationId() {
 		return examRegistrationId;
 	}
@@ -71,14 +82,18 @@ public class StudentExamResult {
 		this.examRegistration = examRegistration;
 	}
 
-	public Boolean getConfirmStatus() {
+	public Integer getConfirmStatus() {
 		return confirmStatus;
 	}
 
-	public void setConfirmStatus(Boolean confirmStatus) {
+	public void setConfirmStatus(Integer confirmStatus) {
 		this.confirmStatus = confirmStatus;
 	}
 
+	public void setIsFinishedExam(Integer isFinishedExam) {
+		this.isFinishedExam = isFinishedExam;
+	}
+
 	public void setExaminationBasicId(Integer examinationBasicId){
 		this.examinationBasicId = examinationBasicId;
 	}
@@ -151,12 +166,8 @@ public class StudentExamResult {
 		return this.tenantId;
 	}
 
-	public Boolean getIsFinishedExam() {
-		return this.isFinishedExam;
-	}
-
-	public void setIsFinishedExam(Boolean isFinishedExam) {
-		this.isFinishedExam = isFinishedExam;
+	public Integer getIsFinishedExam() {
+		return isFinishedExam;
 	}
 
 	@Override

+ 4 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamManualLedgerServiceImpl.java

@@ -46,7 +46,7 @@ public class ExamManualLedgerServiceImpl extends BaseServiceImpl<Long, ExamManua
 			throw new BizException("请指定交易金额");
 		}
 		sysUserDao.lockUser(examManualLedger.getOperatorUserId());
-		if(Objects.nonNull(examManualLedger.getOrganId())){
+		if(Objects.nonNull(examManualLedger.getOrganId())&&examManualLedger.getOrganId()>0){
 			ExamOrganizationRelation examOrganizationRelation = examOrganizationRelationDao.getExamOrganizationRelation(examManualLedger.getOrganId(), examManualLedger.getOrganId());
 			if(Objects.isNull(examOrganizationRelation)){
 				throw new BizException("合作单位信息异常");
@@ -54,6 +54,9 @@ public class ExamManualLedgerServiceImpl extends BaseServiceImpl<Long, ExamManua
 			examOrganizationRelation.setTotalTransAmount(examOrganizationRelation.getTotalTransAmount().add(examManualLedger.getAmount()));
 			examOrganizationRelationDao.update(examOrganizationRelation);
 		}
+		if(Objects.nonNull(examManualLedger.getOrganId())&&examManualLedger.getOrganId()<=0){
+			examManualLedger.setOrganId(null);
+		}
 		examManualLedgerDao.insert(examManualLedger);
 	}
 

+ 6 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java

@@ -177,10 +177,15 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
 
             List<Integer> studentIds = dataList.stream().map(ExamRegistration::getStudentId).collect(Collectors.toList());
             Map<Integer, String> idPhotoMap = this.getMap("student", "user_id_", "certificate_photo_", studentIds, Integer.class, String.class);
-            for (ExamRegistration examRegistration : dataList) {
+
+            List<Integer> registIds = dataList.stream().map(ExamRegistrationRoomDto::getId).collect(Collectors.toList());
+            Map<Integer, Integer> registExamStatusMap = this.getMap("student_exam_result", "exam_registration_id_", "is_finished_exam_", registIds, Integer.class, Integer.class);
+
+            for (ExamRegistrationRoomDto examRegistration : dataList) {
                 examRegistration.setOrganization(new Organization(examRegistration.getOrganId(), organIdNameMap.get(examRegistration.getOrganId())));
                 examRegistration.getSubject().setName(subjectIdNameMap.get(examRegistration.getSubjectId()));
                 examRegistration.getSysUser().setCertificatePhoto(idPhotoMap.get(examRegistration.getStudentId()));
+                examRegistration.setIsFinishedExam(registExamStatusMap.get(examRegistration.getId()));
                 examRegistration.setExaminationBasic(new ExaminationBasic(examRegistration.getExaminationBasicId(), examIdNameMap.get(examRegistration.getExaminationBasicId())));
             }
         }

+ 10 - 3
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/StudentExamResultServiceImpl.java

@@ -8,6 +8,7 @@ import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.api.entity.Student;
 import com.keao.edu.user.dao.ExaminationBasicDao;
 import com.keao.edu.user.dao.StudentExamResultDao;
+import com.keao.edu.user.dto.ExaminationBasicDto;
 import com.keao.edu.user.dto.StudentExamResultStatisticsDto;
 import com.keao.edu.user.entity.ExaminationBasic;
 import com.keao.edu.user.entity.Organization;
@@ -50,22 +51,28 @@ public class StudentExamResultServiceImpl extends BaseServiceImpl<Long, StudentE
 		params.put("organIds", childOrganIds);
 
 		List<StudentExamResult> dataList = new ArrayList<>();
-		int count = this.findCount(params);
+		int count = studentExamResultDao.countStudentExamResult(params);
 		if (count > 0) {
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
-			dataList = this.getDAO().queryPage(params);
+			dataList = studentExamResultDao.queryStudentExamResult(params);
+			List<Integer> examIds = dataList.stream().map(StudentExamResult::getExaminationBasicId).collect(Collectors.toList());
 			List<Integer> studentIds = dataList.stream().map(StudentExamResult::getStudentId).collect(Collectors.toList());
 			List<Integer> subjectIds = dataList.stream().map(e -> e.getExamRegistration().getSubjectId()).collect(Collectors.toList());
 			List<Integer> organIds = dataList.stream().map(e -> e.getExamRegistration().getOrganId()).collect(Collectors.toList());
 			Map<Integer, String> studentIdNameMap = this.getMap("sys_user", "id_", "real_name_", studentIds, Integer.class, String.class);
 			Map<Integer, String> subjectIdNameMap = this.getMap("subject", "id_", "name_", subjectIds, Integer.class, String.class);
 			Map<Integer, String> organIdNameMap = this.getMap("organization", "id_", "name_", organIds, Integer.class, String.class);
+
+			List<ExaminationBasicDto> exams = examinationBasicDao.getExams(examIds);
+			Map<Integer, ExaminationBasicDto> idExamMap = exams.stream().collect(Collectors.toMap(ExaminationBasic::getId, e -> e));
+
 			for (StudentExamResult s : dataList) {
 				Student student=new Student(s.getStudentId(), studentIdNameMap.get(s.getStudentId()));
+				s.setExaminationBasic(idExamMap.get(s.getExaminationBasicId()));
 				s.getExamRegistration().setSysUser(student);
 				s.getExamRegistration().setSubject(new Subject(s.getExamRegistration().getSubjectId(), subjectIdNameMap.get(s.getExamRegistration().getSubjectId())));
-				s.getExamRegistration().setOrganization(new Organization(s.getExamRegistration().getOrganId(), organIdNameMap.get(s.getExamRegistration().getSubjectId())));
+				s.getExamRegistration().setOrganization(new Organization(s.getExamRegistration().getOrganId(), organIdNameMap.get(s.getExamRegistration().getOrganId())));
 			}
 		}
 		pageInfo.setRows(dataList);

+ 11 - 12
edu-user/edu-user-server/src/main/resources/config/mybatis/StudentExamResultMapper.xml

@@ -120,27 +120,26 @@
 
 	<select id="queryStudentExamResult" resultMap="StudentExamResult" parameterType="map">
 		SELECT
-			er.card_no_,
-			er.student_id_,
-			er.organ_id_,
-			er.subject_id_,
-			er.level_,
-			CASE WHEN ser.id_>0 THEN 1 ELSE 0 END,
-			ser.confirm_status_
+			ser.*,
+			er.card_no_ regist_card_no_,
+			er.student_id_ regist_student_id_,
+			er.organ_id_ regist_organ_id_,
+			er.subject_id_ regist_subject_id_,
+			er.level_ regist_level_
 		FROM
-			exam_registration er
-			LEFT JOIN student_exam_result ser ON er.examination_basic_id_ = ser.examination_basic_id_
+			student_exam_result ser
+			LEFT JOIN exam_registration er ON er.examination_basic_id_ = ser.examination_basic_id_
 			AND er.student_id_ = ser.student_id_
 		<include refid="queryStudentExamResultCondition"/>
-		ORDER BY id_ <include refid="global.limit"/>
+		ORDER BY er.id_ <include refid="global.limit"/>
 	</select>
 
 	<select id="countStudentExamResult" resultType="int">
 		SELECT
 			COUNT(er.id_)
 		FROM
-			exam_registration er
-			LEFT JOIN student_exam_result ser ON er.examination_basic_id_ = ser.examination_basic_id_
+			student_exam_result ser
+			LEFT JOIN exam_registration er ON er.examination_basic_id_ = ser.examination_basic_id_
 			AND er.student_id_ = ser.student_id_
 		<include refid="queryStudentExamResultCondition"/>
 	</select>