瀏覽代碼

3.3.1 update

xiaofei 1 年之前
父節點
當前提交
8ea60996ae
共有 14 個文件被更改,包括 46 次插入57 次删除
  1. 0 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamStudentMapper.java
  2. 0 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamStudentService.java
  3. 9 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java
  4. 0 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamStudentServiceImpl.java
  5. 0 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  6. 0 9
      distributed-print-business/src/main/resources/mapper/ExamStudentMapper.xml
  7. 3 2
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkPaperMapper.java
  8. 1 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkPaperService.java
  9. 8 2
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java
  10. 4 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java
  11. 7 4
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java
  12. 0 12
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserClassServiceImpl.java
  13. 3 4
      teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml
  14. 11 11
      teachcloud-mark/src/main/resources/mapper/MarkStudentMapper.xml

+ 0 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamStudentMapper.java

@@ -33,8 +33,6 @@ public interface ExamStudentMapper extends BaseMapper<ExamStudent> {
      */
     List<ExamStudentCourseDto> queryBySchoolIdAndExamDetailCourseIds(@Param("schoolId") Long schoolId, @Param("examDetailCourseIds") List<Long> examDetailCourseIds);
 
-    void insertBatch(@Param("examStudents") List<ExamStudent> examStudents);
-
     /**
      * 根据班级id查询考生,班级可以是教学班或行政班(两表查)
      *

+ 0 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamStudentService.java

@@ -32,8 +32,6 @@ public interface ExamStudentService extends IService<ExamStudent> {
      */
     List<ExamStudentCourseDto> queryBySchoolIdAndExamDetailCourseIds(Long schoolId, List<Long> examDetailCourseIds);
 
-    void insertBatch(List<ExamStudent> examStudents);
-
     ExamStudentPdfInfoDto getByStudentId(Long id);
 
     void removeByExamDetailCourseId(Long id);

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java

@@ -132,6 +132,7 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
     @Override
     public Long save(BasicExamStudentParam basicExamStudentParam, SysUser requestUser) {
         BasicExam basicExam = basicExamService.getById(basicExamStudentParam.getExamId());
+        BasicExamStudent basicExamStudentOld = this.getById(basicExamStudentParam.getId());
         BasicExamStudent basicExamStudent = this.editEntityHelp(basicExamStudentParam, basicExam, requestUser);
         this.saveOrUpdate(basicExamStudent);
         MarkPaper markPaper = null;
@@ -156,6 +157,10 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
             markStudentService.updateByBasicExamStudent(basicExamStudent, markPaper, new HashSet<>());
             markPaperService.updateStudentCountByExamIdAndPaperNumberAndPaperType(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(), SystemConstant.DEFAULT_PAPER_TYPE_A);
         }
+
+        if (ExamModelEnum.MODEL4.equals(basicExam.getExamModel()) && basicExamStudentOld != null) {
+            markPaperService.deleteByExamIdAndPaperNumber(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(), true);
+        }
         return basicExamStudent.getId();
     }
 
@@ -192,6 +197,10 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
                     throw ExceptionResultEnum.ERROR.exception("考生已扫描,无法删除");
                 }
                 markStudentService.deleteByExamIdAndPaperNumberAndStudentCode(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(), basicExamStudent.getStudentCode());
+                BasicExam basicExam = basicExamService.getById(basicExamStudent.getExamId());
+                if (ExamModelEnum.MODEL4.equals(basicExam.getExamModel())) {
+                    markPaperService.deleteByExamIdAndPaperNumber(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(), true);
+                }
             }
             this.removeByIds(idList);
             basicExamStudentList.stream().map(BasicExamStudent::getClazzId).distinct().forEach(e -> basicTeachClazzService.deleteFreeClazz(e));

+ 0 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamStudentServiceImpl.java

@@ -78,12 +78,6 @@ public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentMapper, ExamS
         return examStudentMapper.queryBySchoolIdAndExamDetailCourseIds(schoolId, examDetailCourseIds);
     }
 
-    @Override
-    public void insertBatch(List<ExamStudent> examStudents) {
-        this.baseMapper.insertBatch(examStudents);
-    }
-
-
     @Override
     public ExamStudentPdfInfoDto getByStudentId(Long id) {
         return this.baseMapper.getByStudentId(id);

+ 0 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1411,7 +1411,6 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                         examDetailCourseService.save(examDetailCourse);
 
                         if (!CollectionUtils.isEmpty(examStudents)) {
-//                            examStudentService.insertBatch(examStudents);
                             examStudentService.saveBatch(examStudents);
                         }
                         int studentCount = examStudents.size();

+ 0 - 9
distributed-print-business/src/main/resources/mapper/ExamStudentMapper.xml

@@ -22,15 +22,6 @@
     <sql id="Base_Column_List">
         select id,school_id, exam_detail_course_id, student_name, student_code, ticket_number, site_number, print_paper, print_card, required_fields, extend_fields, paper_type from exam_student
     </sql>
-    <insert id="insertBatch">
-        insert into exam_student (id, school_id, org_id, exam_id, exam_detail_course_id, student_name, student_code,paper_number,course_paper_id,
-        ticket_number, site_number, extend_fields, college_name, major_name, clazz_id, clazz_name, teach_clazz_id, teach_clazz_name, campus_name, create_id) values
-        <foreach collection="examStudents" separator="," item="item">
-            (#{item.id}, #{item.schoolId}, #{item.orgId}, #{item.examId}, #{item.examDetailCourseId}, #{item.studentName},
-            #{item.studentCode},#{item.paperNumber},#{item.coursePaperId}, #{item.ticketNumber}, #{item.siteNumber}, #{item.extendFields}, #{item.collegeName}, #{item.majorName}, #{item.clazzId},
-            #{item.clazzName},#{item.teachClazzId},#{item.teachClazzName},#{item.campusName}, #{item.createId})
-        </foreach>
-    </insert>
     <select id="getStudentDetail" resultType="java.util.Map">
         SELECT a.student_name    studentName,
                a.student_code    studentCode,

+ 3 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkPaperMapper.java

@@ -37,12 +37,13 @@ public interface MarkPaperMapper extends BaseMapper<MarkPaper> {
 
     List<MarkSettingDto> listPaperSetting(@Param("schoolId") Long schoolId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("groupStatus") boolean groupStatus, @Param("dpr") DataPermissionRule dpr);
 
-	IPage<ArchiveScoreVo> scoreList(Page<ArchiveScoreVo> page, @Param("req") ArchiveScoreQuery query, @Param("dpr") DataPermissionRule dpr);
+    IPage<ArchiveScoreVo> scoreList(Page<ArchiveScoreVo> page, @Param("schoolId") Long schoolId, @Param("req") ArchiveScoreQuery query, @Param("dpr") DataPermissionRule dpr);
 
     int getCourseCount(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("coursePaperId") String coursePaperId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
+
     int getPaperNumberCount(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("coursePaperId") String coursePaperId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
 
     List<MarkPaper> listByExamId(@Param("examId") Long examId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
 
-    IPage<ArchivePaperVo> documentList(Page<ArchiveScoreVo> page, @Param("req") ArchivePaperQuery query, @Param("dpr")DataPermissionRule dpr);
+    IPage<ArchivePaperVo> documentList(Page<ArchiveScoreVo> page, @Param("req") ArchivePaperQuery query, @Param("dpr") DataPermissionRule dpr);
 }

+ 1 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkPaperService.java

@@ -64,7 +64,7 @@ public interface MarkPaperService extends IService<MarkPaper> {
 
     IPage<ArchiveScoreVo> scoreList(ArchiveScoreQuery query);
 
-    void deleteByExamIdAndPaperNumber(Long examId, String paperNumber);
+    void deleteByExamIdAndPaperNumber(Long examId, String paperNumber, Boolean checkMarkStudent);
 
     void updateAbsentCount(Long examId, String paperNumber, int absentCount);
 

+ 8 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java

@@ -320,7 +320,7 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Page<ArchiveScoreVo> page = new Page<>(query.getPageNumber(), query.getPageSize());
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
-        IPage<ArchiveScoreVo> ret = this.baseMapper.scoreList(page, query, dpr);
+        IPage<ArchiveScoreVo> ret = this.baseMapper.scoreList(page, sysUser.getSchoolId(), query, dpr);
         if (CollectionUtils.isNotEmpty(ret.getRecords())) {
             for (ArchiveScoreVo vo : ret.getRecords()) {
                 double total = vo.getStudentCount() - vo.getAbsentCount();
@@ -335,7 +335,13 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
     }
 
     @Override
-    public void deleteByExamIdAndPaperNumber(Long examId, String paperNumber) {
+    public void deleteByExamIdAndPaperNumber(Long examId, String paperNumber, Boolean checkMarkStudent) {
+        if (checkMarkStudent) {
+            long count = markStudentService.countByExamIdAndPaperNumber(examId, paperNumber, null);
+            if (count > 0) {
+                return;
+            }
+        }
         UpdateWrapper<MarkPaper> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().eq(MarkPaper::getExamId, examId)
                 .eq(MarkPaper::getPaperNumber, paperNumber);

+ 4 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -379,6 +379,9 @@ public class MarkServiceImpl implements MarkService {
         checkStudentGroup(markArbitrateHistory.getStudentId(),
                 markGroupService.getByExamIdAndPaperNumberAndGroupNumber(markArbitrateHistory.getExamId(),
                         markArbitrateHistory.getPaperNumber(), markArbitrateHistory.getGroupNumber()));
+        // 评卷质量重新统计
+        List<MarkUserGroup> markUserGroups = markUserGroupService.listByExamIdAndPaperNumberAndGroupNumber(markArbitrateHistory.getExamId(), markArbitrateHistory.getPaperNumber(), markArbitrateHistory.getGroupNumber());
+        markUserGroups.forEach(m -> this.updateQuality(m));
     }
 
     private String getGroupKey(MarkUserGroup markUserGroup) {
@@ -1110,7 +1113,7 @@ public class MarkServiceImpl implements MarkService {
 
     @Override
     public void deleteInitMarkData(Long examId, String paperNumber) {
-        markPaperService.deleteByExamIdAndPaperNumber(examId, paperNumber);
+        markPaperService.deleteByExamIdAndPaperNumber(examId, paperNumber, false);
         markStudentService.deleteByExamIdAndPaperNumber(examId, paperNumber);
         scanAnswerCardService.deleteByExamIdAndPaperNumber(examId, paperNumber);
         markQuestionService.deleteByExamIdAndPaperNumber(examId, paperNumber);

+ 7 - 4
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -825,8 +825,11 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
     @Override
     public long countByExamIdAndPaperNumber(Long examId, String paperNumber, String paperType) {
         QueryWrapper<MarkStudent> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(MarkStudent::getExamId, examId).eq(MarkStudent::getPaperNumber, paperNumber)
-                .eq(MarkStudent::getPaperType, paperType);
+        LambdaQueryWrapper<MarkStudent> lambda = queryWrapper.lambda();
+        lambda.eq(MarkStudent::getExamId, examId).eq(MarkStudent::getPaperNumber, paperNumber);
+        if (StringUtils.isNotBlank(paperType)) {
+            lambda.eq(MarkStudent::getPaperType, paperType);
+        }
         return this.count(queryWrapper);
     }
 
@@ -1305,7 +1308,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
     }
 
     private void fillScoreRange(ScoreReportVo ret, List<ArchiveStudentVo> list) {
-        if(CollectionUtils.isEmpty(list)){
+        if (CollectionUtils.isEmpty(list)) {
             return;
         }
         List<ScoreRangeVo> scoreRange = new ArrayList<>();
@@ -1326,7 +1329,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
     private ScoreRangeVo getScoreRangeVo(int totalCount, List<ArchiveStudentVo> list, Double start, Double end) {
         int count = (int) list.stream().filter(s -> s.getTotalScore() >= start && s.getTotalScore() <= end).count();
         Double rate = 0d;
-        if (list.size() != 0 && totalCount!=0) {
+        if (list.size() != 0 && totalCount != 0) {
             rate = Calculator.divide(count, totalCount, 2);
         }
         ScoreRangeVo vo = new ScoreRangeVo(count, start, end, rate * 100);

+ 0 - 12
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserClassServiceImpl.java

@@ -63,16 +63,6 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
     public MarkUserClassDto listMarkUserClassByExamIdAndPaperNumber(Long examId, String paperNumber) {
         // 课程下所有班级数据
         List<String> paperNumberClassList = markStudentService.listClassByExamIdAndCourseCode(examId, paperNumber);
-        // 课程下所有分组
-        List<MarkGroup> markGroupList = markGroupService.listGroupByExamIdAndPaperNumber(examId, paperNumber);
-        List<MarkGroupDto> markGroupDtoList = markGroupList.stream().map(m -> {
-            MarkGroupDto markGroupDto = new MarkGroupDto();
-//            markGroupDto.setGroupNumber(m.getNumber());
-//            markGroupDto.setMarkers();
-//            markGroupDto.setGroupQuestions(markQuestionService.assembleGroupQuestionsByExamIdAndPaperNumberAndNumber(examId, paperNumber, m.getNumber()));
-            return markGroupDto;
-        }).collect(Collectors.toList());
-
         List<MarkUser> markUserList = markUserGroupService.listGroupUserByExamIdAndPaperNumberAndGroupNumberAndClassName(examId, paperNumber, null, null);
 
         MarkUserClassDto markUserClassDto = new MarkUserClassDto();
@@ -81,8 +71,6 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
         List<MarkUserClassDetailDto> markUserClassDetailDtos = new ArrayList<>();
         for (MarkUser marker : markUserList) {
             MarkUserClassDetailDto markUserClassDetailDto = new MarkUserClassDetailDto();
-//                markUserClassDetailDto.setGroupNumber(markGroupDto.getGroupNumber());
-//                markUserClassDetailDto.setGroupQuestions(markGroupDto.getGroupQuestions());
             markUserClassDetailDto.setMarker(marker);
             List<MarkUserClass> markUserClasses = this.baseMapper.listMarkerClassByExamIdAndPaperNumberAndUserId(examId, paperNumber, marker.getUserId());
             markUserClassDetailDto.setMarkerClassList(markUserClasses.stream().map(MarkUserClass::getClassName).collect(Collectors.toList()));

+ 3 - 4
teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml

@@ -137,11 +137,10 @@
         passCount,
         sum(case when s.objective_score+s.subjective_score >=t.total_score * t.excellent_score/100 then 1 else 0 end)
         excellentCount
-
         FROM
         mark_paper t
         left join mark_student s on t.exam_id=s.exam_id and t.course_paper_id=s.course_paper_id
-        left join sys_user su on t.user_id = su.id
+        left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_code = bc.code
         WHERE
         t.exam_id = #{req.examId}
         <if test="req.courseCode != null and req.courseCode != ''">
@@ -150,10 +149,10 @@
         AND t.status = 'FINISH'
         <if test="dpr != null">
             <if test="dpr.requestUserId != null">
-                AND t.user_id = #{dpr.requestUserId}
+                AND s.teacher_id = #{dpr.requestUserId}
             </if>
             <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
-                AND su.org_id IN
+                AND bc.teaching_room_id IN
                 <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
                     #{item}
                 </foreach>

+ 11 - 11
teachcloud-mark/src/main/resources/mapper/MarkStudentMapper.xml

@@ -326,6 +326,17 @@
         from mark_student s left join sys_user su on s.teacher_id = su.id
         left join (select * from basic_course where school_id = #{schoolId}) bc on s.course_code = bc.code
         <include refid="archiveQuery"/>
+        <if test="dpr != null">
+            <if test="dpr.requestUserId != null">
+                AND s.teacher_id = #{dpr.requestUserId}
+            </if>
+            <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                AND bc.teaching_room_id IN
+                <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </if>
         <if test="req.orderType != null and req.orderType != '' and req.orderField != null and req.orderField != ''">
             <choose>
                 <when test="req.orderField == 'totalScore'">
@@ -341,17 +352,6 @@
                 </otherwise>
             </choose>
         </if>
-        <if test="dpr != null">
-            <if test="dpr.requestUserId != null">
-                AND s.teacher_id = #{dpr.requestUserId}
-            </if>
-            <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
-                AND bc.teaching_room_id IN
-                <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
-            </if>
-        </if>
         <if test="req.orderType == null or req.orderType == '' or req.orderField == null or req.orderField == ''">
             order by s.student_code
         </if>