Joburgess 5 years ago
parent
commit
3876ca2d2d

+ 10 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/StudentExamResultDao.java

@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public interface StudentExamResultDao extends BaseDAO<Long, StudentExamResult> {
 
@@ -123,4 +124,13 @@ public interface StudentExamResultDao extends BaseDAO<Long, StudentExamResult> {
      * @return int
      */
     int countExamResultRecordNum(@Param("examId") Long examId);
+
+    /**
+     * @describe 获取考级项目中完成考试的学员
+     * @author Joburgess
+     * @date 2020.08.07
+     * @param examId:
+     * @return java.util.Set<java.lang.Long>
+     */
+    Set<Long> getIsFinishedExamRegistIds(@Param("examId") Long examId);
 }

+ 6 - 1
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamOrganizationRelationServiceImpl.java

@@ -494,7 +494,12 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 
 		List<Integer> childOrganIds = organizationService.getChildOrganIds(organId, true);
 
-		List<ExamRegistrationPayment> examRegistrationPayments = examRegistrationPaymentDao.getWithExamOrgansAndDay(examId, childOrganIds, days);
+		List<ExamRegistrationPayment> examRegistrationPayments;
+		if(!CollectionUtils.isEmpty(childOrganIds)){
+			examRegistrationPayments = examRegistrationPaymentDao.getWithExamOrgansAndDay(examId, childOrganIds, days);
+		}else{
+			examRegistrationPayments = examRegistrationPaymentDao.getWithExamOrganAndDay(examId, organId, days);
+		}
 		List<ExamManualLedger> examOrganManualLedgers = examManualLedgerDao.getExamOrganManualLedgers(organId, examId, days);
 
 		Map<String, List<ExamRegistrationPayment>> dayPaymentMap = new HashMap<>();

+ 8 - 1
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamTeacherSalaryServiceImpl.java

@@ -38,6 +38,8 @@ public class ExamTeacherSalaryServiceImpl extends BaseServiceImpl<Long, ExamTeac
 	private TeacherDao teacherDao;
 	@Autowired
 	private ExaminationBasicDao examinationBasicDao;
+	@Autowired
+	private StudentExamResultDao studentExamResultDao;
 
 	@Override
 	public BaseDAO<Long, ExamTeacherSalary> getDAO() {
@@ -54,6 +56,9 @@ public class ExamTeacherSalaryServiceImpl extends BaseServiceImpl<Long, ExamTeac
 
 		Map<Integer, List<ExamRoom>> teacherExamRoomMap=new HashMap<>();
 		for (ExamRoom examRoom : examRooms) {
+			if(examRoom.getExamRoomStudentNum()<=0){
+				continue;
+			}
 			if(!teacherExamRoomMap.containsKey(examRoom.getMainTeacherUserId())){
 				teacherExamRoomMap.put(examRoom.getMainTeacherUserId(), new ArrayList<>());
 			}
@@ -71,6 +76,8 @@ public class ExamTeacherSalaryServiceImpl extends BaseServiceImpl<Long, ExamTeac
 
 		List<ExamRoomStudentRelation> examRoomStudentRelations = examRoomStudentRelationDao.getExamRoomStudentRelations(examId, null, null);
 
+		Set<Long> isFinishedExamRegistIds = studentExamResultDao.getIsFinishedExamRegistIds(examId);
+
 		List<ExamTeacherSalary> examTeacherSalaries = examTeacherSalaryDao.queryWithExam(examId);
 		for (ExamTeacherSalary examTeacherSalary : examTeacherSalaries) {
 			List<ExamRoom> teacherExamRooms = teacherExamRoomMap.get(examTeacherSalary.getTeacherId());
@@ -81,7 +88,7 @@ public class ExamTeacherSalaryServiceImpl extends BaseServiceImpl<Long, ExamTeac
 				continue;
 			}
 			Set<Long> examRoomIds = teacherExamRooms.stream().map(ExamRoom::getId).collect(Collectors.toSet());
-			long studentNum = examRoomStudentRelations.stream().filter(e -> examRoomIds.contains(e.getExamRoomId())).count();
+			long studentNum = examRoomStudentRelations.stream().filter(e -> examRoomIds.contains(e.getExamRoomId())&&isFinishedExamRegistIds.contains(e.getExamRegistrationId())).count();
 			examTeacherSalary.setTotalInvigilationNum(examRoomIds.size());
 			examTeacherSalary.setTotalInvigilationStudentNum((int) studentNum);
 			if(TeacherSettlementTypeEnum.SINGLE.equals(examTeacherSalary.getSettlementType())){

+ 4 - 0
edu-user/edu-user-biz/src/main/resources/config/mybatis/StudentExamResultMapper.xml

@@ -302,4 +302,8 @@
 		SELECT COUNT(exam_registration_id_) FROM student_exam_result
 		WHERE examination_basic_id_=#{examId}
 	</select>
+
+    <select id="getIsFinishedExamRegistIds" resultType="Long">
+		SELECT exam_registration_id_ FROM student_exam_result WHERE examination_basic_id_=#{examId} AND is_finished_exam_=5;
+    </select>
 </mapper>