瀏覽代碼

Merge remote-tracking branch 'origin/dev_v3.3.1' into dev_v3.3.1

wangliang 1 年之前
父節點
當前提交
1879d28e01

+ 4 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ConditionMapper.java

@@ -38,4 +38,8 @@ public interface ConditionMapper {
     List<BasicCourse> listCourseForPlanTask(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanIds") List<String> printPlanIds, @Param("dpr") DataPermissionRule dpr);
 
     List<String> listPaperNumberPlanTask(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanIds") List<String> printPlanIds, @Param("courseCode") String courseCode, @Param("dpr") DataPermissionRule dpr);
+
+    List<BasicCourse> listCourseForEntrance(@Param("examId") Long examId, @Param("userId") Long userId,  @Param("status") String status);
+
+    List<String> listPaperNumberForEntrance(@Param("examId") Long examId, @Param("userId") Long userId, @Param("courseCode") String courseCode, @Param("status") String status);
 }

+ 6 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java

@@ -108,6 +108,8 @@ public class ConditionServiceImpl implements ConditionService {
             }
             dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
             return conditionMapper.listCourseForScore(semesterId, examId, basicCourses, MarkPaperStatus.FINISH.name(), dpr);
+        } else if ("491".equals(privilegeIdString)) {
+            return conditionMapper.listCourseForEntrance(examId, sysUser.getId(), MarkPaperStatus.FORMAL.name());
         } else {
             dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
             return conditionMapper.listCourse(semesterId, examId, enable, printPlanIds, dpr);
@@ -139,6 +141,8 @@ public class ConditionServiceImpl implements ConditionService {
             return conditionMapper.listPaperNumberAudit(semesterId, examId, courseCode);
         } else if ("47".equals(privilegeIdString)) {
             return conditionMapper.listPaperNumberPlanTask(semesterId, examId, printPlanIds, courseCode, dpr);
+        } else if ("491".equals(privilegeIdString)) {
+            return conditionMapper.listPaperNumberForEntrance(examId, sysUser.getId(), courseCode, MarkPaperStatus.FORMAL.name());
         } else {
             return conditionMapper.listPaperNumber(semesterId, examId, courseCode, printPlanIds, dpr);
         }
@@ -152,8 +156,8 @@ public class ConditionServiceImpl implements ConditionService {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
 
         if ("client".equals(source)) {
-            String[] examDetailStatus = new String[] { ExamDetailStatusEnum.NEW.name(),
-                    PrintPlanStatusEnum.READY.name() };
+            String[] examDetailStatus = new String[]{ExamDetailStatusEnum.NEW.name(),
+                    PrintPlanStatusEnum.READY.name()};
             return conditionMapper.listPrintPlanForClient(semesterId, examId, examDetailStatus);
         } else {
             // 如果byAssignUser为true时,不能通过层级关系查询

+ 40 - 0
distributed-print-business/src/main/resources/mapper/ConditionMapper.xml

@@ -389,4 +389,44 @@
             </if>
         </where>
     </select>
+    <select id="listCourseForEntrance" resultType="com.qmth.teachcloud.common.entity.BasicCourse">
+        SELECT
+            distinct mg.course_code code,
+            mg.course_name name
+        FROM
+            mark_user_group mug
+        LEFT JOIN
+            mark_group mg ON mug.exam_id = mg.exam_id
+            AND mug.paper_number = mg.paper_number
+            AND mug.group_number = mg.number
+        <where>
+            mg.exam_id = #{examId}
+            and mug.user_id = #{userId} and mg.task_count > 0
+            <if test="status != null and status != ''">
+                and exists (select 1 from mark_paper mp where mp.exam_id = mg.exam_id and mp.paper_number = mg.paper_number and mp.status = #{status})
+            </if>
+        </where>
+        order by mg.course_code
+    </select>
+    <select id="listPaperNumberForEntrance" resultType="java.lang.String">
+        SELECT
+            distinct mg.paper_number paperNumber
+        FROM
+            mark_user_group mug
+                LEFT JOIN
+            mark_group mg ON mug.exam_id = mg.exam_id
+                AND mug.paper_number = mg.paper_number
+                AND mug.group_number = mg.number
+        <where>
+            mg.exam_id = #{examId}
+            <if test="courseCode != null and courseCode != ''">
+                and mg.course_code = #{courseCode}
+            </if>
+            and mug.user_id = #{userId} and mg.task_count > 0
+            <if test="status != null and status != ''">
+                and exists (select 1 from mark_paper mp where mp.exam_id = mg.exam_id and mp.paper_number = mg.paper_number and mp.status = #{status})
+            </if>
+        </where>
+        order by mg.paper_number
+    </select>
 </mapper>

+ 2 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserGroupServiceImpl.java

@@ -86,8 +86,9 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
                     classNames = markUserClassList.stream().map(MarkUserClass::getClassName).collect(Collectors.toList());
                 }
                 taskCount = markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndAndClassNameStatusIn(examId, record.getPaperNumber(), record.getGroupNumber(), null, classNames);
+                record.setTaskCount(taskCount);
                 markedCount = markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndAndClassNameStatusIn(examId, record.getPaperNumber(), record.getGroupNumber(), null, classNames, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED);
-
+                record.setMarkedCount(markedCount);
             }
             record.setLeftCount(taskCount == 0 ? 0 : taskCount - markedCount);
             // 评卷进度