فهرست منبع

Merge remote-tracking branch 'origin/master'

周箭河 5 سال پیش
والد
کامیت
e9e565cbb8
18فایلهای تغییر یافته به همراه155 افزوده شده و 34 حذف شده
  1. 1 1
      edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/service/impl/SysUserServiceImpl.java
  2. 3 0
      edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java
  3. 12 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/ExamCertificationDao.java
  4. 11 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/StudentExamResultDao.java
  5. 22 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dto/ExamCertificationDto.java
  6. 11 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dto/ExamReviewRecordDto.java
  7. 11 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/entity/ExamReview.java
  8. 7 2
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/ExamCertificationService.java
  9. 11 2
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamCertificationServiceImpl.java
  10. 5 2
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamReviewServiceImpl.java
  11. 8 1
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java
  12. 4 0
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/StudentExamResultServiceImpl.java
  13. 10 6
      edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/StudentServiceImpl.java
  14. 15 0
      edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamCertificationMapper.xml
  15. 8 13
      edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamRegistrationMapper.xml
  16. 10 5
      edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamReviewMapper.xml
  17. 5 1
      edu-user/edu-user-biz/src/main/resources/config/mybatis/StudentExamResultMapper.xml
  18. 1 1
      edu-user/edu-user-biz/src/main/resources/config/mybatis/StudentMapper.xml

+ 1 - 1
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/service/impl/SysUserServiceImpl.java

@@ -143,7 +143,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public SysUserInfo initUser(LoginEntity loginEntity) {
+	public synchronized SysUserInfo initUser(LoginEntity loginEntity) {
 		if(StringUtils.equalsIgnoreCase(loginEntity.getClientId(),"STUDENT")){
 			eduUserFeignService.studentApply(loginEntity.getOrganId(),loginEntity.getPhone());
 			return queryUserInfoByPhone(loginEntity.getPhone(),loginEntity.getClientId());

+ 3 - 0
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

@@ -482,6 +482,9 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
 
         RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, data.getUserId());
+        if(roomMember == null){
+            return true;
+        }
         int result = roomMemberDao.deleteUserByRidAndUid(roomId, data.getUserId());
         log.info("kickMember: roomId={}, userId={}, result = {}", roomId, userId, result);
         if (result == 0) {

+ 12 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/ExamCertificationDao.java

@@ -63,4 +63,16 @@ public interface ExamCertificationDao extends BaseDAO<Long, ExamCertification> {
      * @return java.util.List<com.keao.edu.user.dto.BasicNeedCheckingDetailDto>
      */
     List<BasicNeedCheckingDetailDto> basicNeedCheckingDetail(Long examRoomId);
+
+    /**
+     * @describe 根据合作单位获取学员准考证数量
+     * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
+     * @author zouxuan
+     * @date 2020/8/26
+     * @time 15:10
+     * @param studentIds:
+     * @param childOrganIds:
+     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
+     */
+    List<Map<Integer, Integer>> countExamNum(@Param("studentIds") List<Integer> studentIds, @Param("childOrganIds") List<Integer> childOrganIds);
 }

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

@@ -145,4 +145,15 @@ public interface StudentExamResultDao extends BaseDAO<Long, StudentExamResult> {
      * @return void
      */
     void updateVideoExam(Long examRegistrationId);
+
+    /**
+     * @describe 获取当前分部下所有学员编号
+     * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
+     * @author zouxuan
+     * @date 2020/8/26
+     * @time 11:07
+     * @param organId:
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> queryStudentByOrganId(Integer organId);
 }

+ 22 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dto/ExamCertificationDto.java

@@ -49,6 +49,28 @@ public class ExamCertificationDto{
     @ApiModelProperty(value = "呼叫时长")
     private Integer callTime;
 
+    @ApiModelProperty(value = "考试时长")
+    private Integer examDuration;
+
+    @ApiModelProperty(value = "学员考试状态 0考试中,1呼叫中,2已签到,3未签到,4录播中,5已完成")
+    private Integer isFinishedExam;
+
+    public Integer getIsFinishedExam() {
+        return isFinishedExam;
+    }
+
+    public void setIsFinishedExam(Integer isFinishedExam) {
+        this.isFinishedExam = isFinishedExam;
+    }
+
+    public Integer getExamDuration() {
+        return examDuration;
+    }
+
+    public void setExamDuration(Integer examDuration) {
+        this.examDuration = examDuration;
+    }
+
     public Integer getCallTime() {
         return callTime;
     }

+ 11 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dto/ExamReviewRecordDto.java

@@ -34,12 +34,23 @@ public class ExamReviewRecordDto {
     @ApiModelProperty(value = "视频地址")
     private String videoUrl;
 
+    @ApiModelProperty(value = "附加评价")
+    private String additionalEvaluation;
+
     @ApiModelProperty(value = "评分")
     private Integer evaluationResult;
 
     @ApiModelProperty(value = "评审编号")
     private Integer examReviewId;
 
+    public String getAdditionalEvaluation() {
+        return additionalEvaluation;
+    }
+
+    public void setAdditionalEvaluation(String additionalEvaluation) {
+        this.additionalEvaluation = additionalEvaluation;
+    }
+
     public Integer getOpenFlag() {
         return openFlag;
     }

+ 11 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/entity/ExamReview.java

@@ -49,12 +49,23 @@ public class ExamReview {
 	
 	private String tenantId;
 
+	@ApiModelProperty(value = "附加评价")
+	private String additionalEvaluation;
+
 	@ApiModelProperty(value = "能否编辑")
 	private YesOrNoEnum enableEdit;
 
 	@ApiModelProperty(value = "考试基本信息")
 	private ExaminationBasic examinationBasic;
 
+	public String getAdditionalEvaluation() {
+		return additionalEvaluation;
+	}
+
+	public void setAdditionalEvaluation(String additionalEvaluation) {
+		this.additionalEvaluation = additionalEvaluation;
+	}
+
 	public Long getExamRegistrationId() {
 		return examRegistrationId;
 	}

+ 7 - 2
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/ExamCertificationService.java

@@ -22,8 +22,13 @@ public interface ExamCertificationService extends BaseService<Long, ExamCertific
     ExamCertification findByStuAndBasicId(Long examRegistrationId);
 
     /**
-     * 获取学员的准考证列表
-     * @return
+     * @describe 获取学员的准考证列表
+     * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
+     * @author zouxuan
+     * @date 2020/8/27
+     * @time 11:34
+     * @param examRegistrationId:
+     * @return java.util.List<com.keao.edu.user.dto.ExamCertificationDto>
      */
     List<ExamCertificationDto> queryCertificationPage(Long examRegistrationId);
 

+ 11 - 2
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamCertificationServiceImpl.java

@@ -7,6 +7,7 @@ import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.api.entity.ExamRoomStudentRelation;
 import com.keao.edu.user.api.entity.Student;
+import com.keao.edu.user.api.entity.StudentAttendance;
 import com.keao.edu.user.dao.*;
 import com.keao.edu.user.dto.BasicNeedCheckingDetailDto;
 import com.keao.edu.user.dto.ExamCertificationDto;
@@ -38,6 +39,8 @@ public class ExamCertificationServiceImpl extends BaseServiceImpl<Long, ExamCert
 	@Autowired
 	private ExamRoomStudentRelationDao examRoomStudentRelationDao;
 	@Autowired
+	private StudentAttendanceDao studentAttendanceDao;
+	@Autowired
 	private SubjectDao subjectDao;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
@@ -62,7 +65,7 @@ public class ExamCertificationServiceImpl extends BaseServiceImpl<Long, ExamCert
 	public List<ExamCertificationDto> queryCertificationPage(Long examRegistrationId) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		List<ExamCertificationDto> dataList = examCertificationDao.queryExamCertificationDtoPage(sysUser.getId(),examRegistrationId);
-		if(dataList == null || dataList.size() < 0){
+		if(dataList == null || dataList.size() == 0){
 			return dataList;
 		}
 		List<Integer> subjectIds = dataList.stream().map(e -> e.getSubjectId()).collect(Collectors.toList());
@@ -125,11 +128,17 @@ public class ExamCertificationServiceImpl extends BaseServiceImpl<Long, ExamCert
 		examCertificationDto.setCertificatePhoto(student.getCertificatePhoto());
 		StudentExamResult studentExamResult = studentExamResultDao.findByRegistrationId(examRegistrationId);
 		examCertificationDto.setConfirmStatus(studentExamResult.getConfirmStatus());
+		examCertificationDto.setIsFinishedExam(studentExamResult.getIsFinishedExam());
 		if(studentExamResult.getIsFinishedExam() == 1){
 			ExamRoomStudentRelation studentExamRoom = examRoomStudentRelationDao.getStudentExamRoom(examRegistrationId);
 			if(studentExamRoom.getCallTime() != null){
 				examCertificationDto.setCallTime(DateUtil.secondsBetween(studentExamRoom.getCallTime(),new Date()));
-				DateUtil.secondsBetween(studentExamRoom.getCallTime(),new Date());
+			}
+		}
+		if(studentExamResult.getIsFinishedExam() == 0){
+			StudentAttendance studentAttendance = studentAttendanceDao.findByRegistrationId(examRegistrationId);
+			if(studentAttendance != null && studentAttendance.getSignInTime() != null){
+				examCertificationDto.setExamDuration(DateUtil.secondsBetween(studentAttendance.getSignInTime(),new Date()));
 			}
 		}
 		return examCertificationDto;

+ 5 - 2
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamReviewServiceImpl.java

@@ -23,6 +23,7 @@ import com.keao.edu.user.page.ExamReviewQueryInfo;
 import com.keao.edu.user.page.ExamReviewRecordQueryInfo;
 import com.keao.edu.user.service.ExamReviewService;
 import com.keao.edu.user.service.ExamRoomStudentRelationService;
+import com.keao.edu.user.service.OrganizationService;
 import com.keao.edu.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -49,6 +50,8 @@ public class ExamReviewServiceImpl extends BaseServiceImpl<Long, ExamReview> imp
 	private ExamRoomStudentRelationService examRoomStudentRelationService;
 	@Autowired
 	private SysUserDao sysUserDao;
+	@Autowired
+	private OrganizationService organizationService;
 
 	@Override
 	public BaseDAO<Long, ExamReview> getDAO() {
@@ -61,8 +64,8 @@ public class ExamReviewServiceImpl extends BaseServiceImpl<Long, ExamReview> imp
 		Map<String, Object> params = new HashMap<String, Object>();
 		MapUtil.populateMap(params, queryInfo);
 
-//		List<Integer> nextLevelOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
-//		params.put("organIds", nextLevelOrganIds);
+		List<Integer> nextLevelOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
+		params.put("organIds", nextLevelOrganIds);
 
 		List<ExamReviewDto> dataList = null;
 		int count = examReviewDao.countExamResult(params);

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

@@ -141,6 +141,7 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		Set<Integer> studentIds = examRegistrations.stream().map(ExamRegistration::getStudentId).collect(Collectors.toSet());
 
 		List<ExamRoomStudentRelation> examRoomStudentRelations=new ArrayList<>();
+		List<ExamRegistration> updateRegistrations = new ArrayList<>();
 		List<ExamCertification> examCertifications=new ArrayList<>();
 		List<StudentExamResult> studentExamResults=new ArrayList<>();
 		for (String registId : registIds) {
@@ -185,6 +186,9 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 				ser.setTenantId(TenantContextHolder.getTenantId());
 				ser.setExamRoomId(examRoom.getId());
 				studentExamResults.add(ser);
+
+				examRegistration.setCardNo(ec.getCardNo());
+				updateRegistrations.add(examRegistration);
 			}
 		}
 		if(!CollectionUtils.isEmpty(examRoomStudentRelations)){
@@ -195,6 +199,9 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		if(!CollectionUtils.isEmpty(examCertifications)){
 			examCertificationService.batchInsert(examCertifications);
 		}
+		if(!CollectionUtils.isEmpty(updateRegistrations)){
+			examRegistrationDao.batchUpdate(updateRegistrations);
+		}
 		if(!CollectionUtils.isEmpty(studentExamResults)){
 			studentExamResultDao.batchInsert(studentExamResults);
 			ExaminationBasic exam = examinationBasicDao.get(examRoom.getExaminationBasicId());
@@ -491,12 +498,12 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 				throw new BizException("操作失败:当前学员状态不支持录播");
 			}
 			ExamRoomStudentRelation examRoomStudentRelation = examRoomStudentRelationDao.get(roomStudentListDto.getExamRoomStudentRelationId());
-
 			//修改学员考试状态
 			StudentExamResult studentExamResult = studentExamResultDao.findByRegistrationId(examRoomStudentRelation.getExamRegistrationId());
 			studentExamResult.setRecordFlag(1);
 			studentExamResult.setIsFinishedExam(4);
 			studentExamResultDao.update(studentExamResult);
+			examReviewDao.delByRegistration(examRoomStudentRelation.getExamRegistrationId());
 			//关闭学员房间入口
 			examRoomStudentRelation.setClassroomSwitch(0);
 			examRoomStudentRelationDao.update(examRoomStudentRelation);

+ 4 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/StudentExamResultServiceImpl.java

@@ -289,6 +289,10 @@ public class StudentExamResultServiceImpl extends BaseServiceImpl<Long, StudentE
 					redisTemplate.delete(recordNotify.getRecordId());
 					Long registrationId = Long.parseLong(recordId);
 					StudentExamResult studentExamResult = studentExamResultDao.findByRegistrationId(registrationId);
+					Integer isFinishedExam = studentExamResult.getIsFinishedExam();
+					if(isFinishedExam != 5 && isFinishedExam != 0){
+						return;
+					}
 					String videoUrl = studentExamResult.getVideoUrl();
 					if(StringUtils.isNotEmpty(videoUrl)){
 						videoUrl += "," + jsonObject.get("fileUrl");

+ 10 - 6
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/StudentServiceImpl.java

@@ -43,6 +43,8 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     @Autowired
     private StudentExamResultDao studentExamResultDao;
     @Autowired
+    private ExamCertificationDao examCertificationDao;
+    @Autowired
     private ImFeignService imFeignService;
     @Autowired
     private OrganizationService organizationService;
@@ -169,8 +171,9 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
         Integer organId = queryInfo.getOrganId();
+        List<Integer> childOrganIds = null;
         if(organId != null){
-            List<Integer> childOrganIds = organizationService.getChildOrganIds(organId,true);
+            childOrganIds = organizationService.getChildOrganIds(organId,true);
             if(childOrganIds == null || childOrganIds.size() == 0){
                 return pageInfo;
             }
@@ -184,14 +187,15 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
             dataList = studentDao.queryRegistrationList(params);
             List<Integer> studentIds = dataList.stream().map(e -> e.getUserId()).collect(Collectors.toList());
             //获取考试次数
-            Map<Integer, Integer> examNumMap = MapUtil.convertMybatisMap(studentExamResultDao.countExamNum(studentIds, queryInfo.getTenantId()),Integer.class,Integer.class);
+            Map<Integer, Integer> examNumMap = MapUtil.convertMybatisMap(examCertificationDao.countExamNum(studentIds,childOrganIds),Integer.class,Integer.class);
+
+            List<Integer> studentId = studentExamResultDao.queryStudentByOrganId(organId);
 
             dataList.forEach(e -> {
                 e.setExamNum(examNumMap.get(e.getUserId()));
-                if(organId != null){
-                    if(e.getOrganId() != organId){
-                        e.getSysUser().setPhone(ValueUtil.fuzzyMobile(e.getSysUser().getPhone()));
-                    }
+                if (!studentId.contains(e.getUserId())){
+                    e.getSysUser().setPhone(ValueUtil.fuzzyMobile(e.getSysUser().getPhone()));
+                    e.setPhone(ValueUtil.fuzzyMobile(e.getSysUser().getPhone()));
                 }
             });
         }

+ 15 - 0
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamCertificationMapper.xml

@@ -201,4 +201,19 @@
 		WHERE ersr.exam_room_id_ = #{examRoomId} AND ser.is_finished_exam_ != 5
 		ORDER BY ser.is_finished_exam_ ASC,ersr.sign_in_time_ ASC,ersr.id_ ASC
 	</select>
+    <select id="countExamNum" resultType="java.util.Map">
+		SELECT ec.student_id_ 'key',COUNT(ec.id_) 'value' FROM exam_certification ec
+		LEFT JOIN exam_registration er ON ec.exam_registration_id_ = er.id_
+		WHERE ec.student_id_ IN
+		<foreach collection="studentIds" item="item" open="(" close=")" separator=",">
+			#{item}
+		</foreach>
+		<if test="childOrganIds != null">
+			AND er.organ_id_ IN
+			<foreach collection="childOrganIds" item="item" open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		GROUP BY ec.student_id_
+	</select>
 </mapper>

+ 8 - 13
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamRegistrationMapper.xml

@@ -601,7 +601,7 @@
 	</select>
 
 	<select id="countStudentBaseExams" resultType="java.lang.Integer">
-		SELECT COUNT(er.id_) FROM exam_registration er
+		SELECT COUNT(DISTINCT er.examination_basic_id_) FROM exam_registration er
 		<include refid="queryStudentBaseExamsSql"/>
 	</select>
 	<resultMap id="StudentBaseExamsDtoMap" type="com.keao.edu.user.dto.StudentBaseExamsDto">
@@ -613,7 +613,8 @@
 		SELECT eb.name_ examBaseName,eb.tenant_id_,er.examination_basic_id_ FROM examination_basic eb
 		LEFT JOIN exam_registration er ON er.examination_basic_id_ = eb.id_
 		<include refid="queryStudentBaseExamsSql"/>
-		ORDER BY er.update_time_ DESC
+		GROUP BY eb.id_
+		ORDER BY eb.update_time_ DESC
 		<include refid="global.limit"/>
 	</select>
 	<sql id="queryStudentBaseExamsSql">
@@ -647,14 +648,10 @@
 	</select>
 
     <select id="getNotInRoomStudents" resultMap="ExamRegistration">
-		SELECT
-			*
-		FROM
-			exam_registration er
-		WHERE
-			examination_basic_id_ = #{examId}
-			AND er.status_ IN ('AUDIT_PASS')
-			AND NOT EXISTS ( SELECT id_ FROM exam_room_student_relation WHERE examination_basic_id_ = #{examId} AND er.id_ = exam_registration_id_ )
+		SELECT * FROM exam_registration er
+		WHERE examination_basic_id_ = #{examId} AND er.status_ IN ('AUDIT_PASS')
+			AND NOT EXISTS ( SELECT id_ FROM exam_room_student_relation
+			WHERE examination_basic_id_ = #{examId} AND er.id_ = exam_registration_id_ )
 			<if test="organIds!=null">
 				AND er.organ_id_ IN
 				<foreach collection="organIds" item="organId" separator="," open="(" close=")">
@@ -664,9 +661,7 @@
 	</select>
 
     <select id="getOrganExamRegistStatistics" resultType="com.keao.edu.user.dto.OrganExamRegistStatisticsDto">
-		SELECT
-			o.id_ 'organId',
-			o.name_ 'organName',
+		SELECT o.id_ 'organId', o.name_ 'organName',
 			SUM(CASE YEAR(er.create_time_) WHEN YEAR(NOW()) THEN 1 ELSE 0 END) 'thisYearRegistStudentNum',
 			SUM(CASE WHEN YEAR(er.create_time_)!=YEAR(NOW()) THEN 1 ELSE 0 END) 'historyRegistStudentNum'
 		FROM

+ 10 - 5
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamReviewMapper.xml

@@ -20,6 +20,7 @@
 		<result column="update_time_" property="updateTime" />
 		<result column="tenant_id_" property="tenantId" />
 		<result column="enable_edit_" property="enableEdit" typeHandler="com.keao.edu.common.dal.CustomEnumTypeHandler"/>
+		<result column="additional_evaluation_" property="additionalEvaluation"/>
 		<association property="examinationBasic" column="exam_" resultMap="com.keao.edu.user.dao.ExaminationBasicDao.ExaminationBasic"/>
 	</resultMap>
 
@@ -41,17 +42,20 @@
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.keao.edu.user.entity.ExamReview" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO exam_review (id_,examination_basic_id_,exam_room_id_,teacher_id_,teacher_type_,student_id_,evaluation_content_,
-		evaluation_result_,create_time_,update_time_,tenant_id_,enable_edit_,exam_registration_id_)
+		evaluation_result_,create_time_,update_time_,tenant_id_,enable_edit_,exam_registration_id_,additional_evaluation_)
 		VALUES(#{id},#{examinationBasicId},#{examRoomId},#{teacherId},
 		#{teacherType,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{studentId},#{evaluationContent},
 		#{evaluationResult},NOW(),NOW(),
-		#{tenantId},#{enableEdit,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{examRegistrationId})
+		#{tenantId},#{enableEdit,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{examRegistrationId},#{additionalEvaluation})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.keao.edu.user.entity.ExamReview">
 		UPDATE exam_review
 		<set>
+			<if test="additionalEvaluation != null">
+				additional_evaluation_ = #{additionalEvaluation},
+			</if>
 			<if test="examinationBasicId != null">
 				examination_basic_id_ = #{examinationBasicId},
 			</if>
@@ -133,8 +137,8 @@
 			<if test="cardNo!=null">
 				AND ere.card_no_=#{cardNo}
 			</if>
-			<if test="organId!=null">
-				AND ere.organ_id_=#{organId}
+			<if test="organId != null and organId != 0 and organIds==null">
+				AND ere.organ_id_ = #{organId}
 			</if>
 			<if test="subjectId!=null">
 				AND ere.subject_id_=#{subjectId}
@@ -208,6 +212,7 @@
 		<result property="videoUrl" column="video_url_"/>
 		<result property="examRegistrationId" column="exam_registration_id_"/>
 		<result property="openFlag" column="open_flag_"/>
+		<result property="additionalEvaluation" column="additional_evaluation_"/>
 	</resultMap>
 	<sql id="queryExamReviewRecordListSql">
 		<where>
@@ -228,7 +233,7 @@
 
 	<select id="queryExamReviewRecordList" resultMap="ExamReviewRecordDtoMap">
 		SELECT ser.is_finished_exam_,ser.record_flag_,ser.confirm_status_,er.evaluation_content_,
-		er.evaluation_result_,ersr.exam_registration_id_,er.id_,ersr.student_id_,ser.video_url_,erm.open_flag_
+		er.evaluation_result_,ersr.exam_registration_id_,er.id_,ersr.student_id_,ser.video_url_,erm.open_flag_,er.additional_evaluation_
 		FROM exam_room_student_relation ersr
 		LEFT JOIN exam_room erm ON erm.id_ = ersr.exam_room_id_
 		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = ersr.exam_registration_id_

+ 5 - 1
edu-user/edu-user-biz/src/main/resources/config/mybatis/StudentExamResultMapper.xml

@@ -268,7 +268,7 @@
 	</select>
 	<select id="countExamNum" resultType="java.util.HashMap">
 		SELECT ser.student_id_ 'key',COUNT(ser.id_) 'value' FROM student_exam_result ser
-		WHERE ser.tenant_id_ = #{tenantId} AND ser.is_finished_exam_ != 5 AND ser.student_id_ IN
+		WHERE ser.tenant_id_ = #{tenantId} AND ser.student_id_ IN
 		<foreach collection="studentIds" item="item" open="(" close=")" separator=",">
 			#{item}
 		</foreach>
@@ -324,4 +324,8 @@
     <select id="getIsFinishedExamRegistIds" resultType="Long">
 		SELECT exam_registration_id_ FROM student_exam_result WHERE examination_basic_id_=#{examId} AND is_finished_exam_=5;
     </select>
+    <select id="queryStudentByOrganId" resultType="java.lang.Integer">
+		SELECT DISTINCT(er.student_id_) FROM exam_registration er
+		WHERE organ_id_ = #{organId}
+	</select>
 </mapper>

+ 1 - 1
edu-user/edu-user-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -117,7 +117,7 @@
 		</if>
 	</select>
 	<select id="queryRegistrationList" resultMap="Student">
-		SELECT su.* FROM exam_registration er
+		SELECT su.phone_,su.real_name_,su.id_ user_id_,su.id_ FROM exam_registration er
 		LEFT JOIN sys_user su ON er.student_id_ = su.id_
 		WHERE su.del_flag_ = 0 AND su.lock_flag_ = 0
 		<if test="search != null and search != ''">