Browse Source

3.3.0 fix

xiaofei 1 year ago
parent
commit
b92e190824

+ 1 - 6
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/ScanOmrTaskController.java

@@ -78,11 +78,6 @@ public class ScanOmrTaskController extends BaseController {
                        @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode,
                        @ApiParam(value = "课程试卷编号") @RequestParam(required = false) String coursePaperId,
                        @ApiParam(value = "状态") @RequestParam OmrTaskStatus status) {
-        Long userId = null;
-        if (status.equals(OmrTaskStatus.PROCESSED)) {
-            SysUser user = (SysUser) ServletUtil.getRequestUser();
-            userId = user.getId();
-        }
-        return ResultUtil.ok(omrTaskService.list(examId, courseCode, coursePaperId, status, userId));
+        return ResultUtil.ok(omrTaskService.list(examId, courseCode, coursePaperId, status));
     }
 }

+ 1 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkUserGroupMapper.java

@@ -22,7 +22,7 @@ import java.util.List;
  */
 public interface MarkUserGroupMapper extends BaseMapper<MarkUserGroup> {
 
-    IPage<MarkEntranceDto> listEntranceGroup(@Param("page") Page<MarkUserGroup> page, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("userId") Long userId);
+    IPage<MarkEntranceDto> listEntranceGroup(@Param("page") Page<MarkUserGroup> page, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("userId") Long userId, @Param("status") String status);
 
     List<MarkUser> listGroupUserByExamIdAndPaperNumberAndGroupNumber(@Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("groupNumber") Integer groupNumber, @Param("className") String className);
 

+ 0 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/ScanOmrTaskMapper.java

@@ -27,7 +27,6 @@ public interface ScanOmrTaskMapper extends BaseMapper<ScanOmrTask> {
 														@Param("courseCode") String courseCode,
 														@Param("coursePaperId") String coursePaperId,
 														@Param(value = "status") OmrTaskStatus status,
-														@Param(value = "userId") Long userId,
 														@Param("markPaperStatus") String markPaperStatus, @Param("dpr") DataPermissionRule dpr);
 
 	int getStudentCountByExamAndStatusAndUserId(@Param(value = "examId") Long examId,

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

@@ -40,7 +40,7 @@ public interface ScanOmrTaskService extends IService<ScanOmrTask> {
 
 	int getCount(Long examId, OmrTaskStatus status, String courseCode, String coursePaperId, MarkPaperStatus markPaperStatus, DataPermissionRule dpr);
 
-	List<ScanStudentDto> list(Long examId, String courseCode, String coursePaperId, OmrTaskStatus status, Long userId);
+	List<ScanStudentDto> list(Long examId, String courseCode, String coursePaperId, OmrTaskStatus status);
 
 	void saveTask(Long studentId);
 

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

@@ -10,6 +10,7 @@ import com.qmth.teachcloud.common.bean.dto.mark.MarkUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.mark.MarkMode;
+import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.mark.dto.mark.entrance.MarkEntranceDto;
@@ -72,7 +73,7 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
         }
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Page<MarkUserGroup> page = new Page<>(pageNumber, pageSize);
-        IPage<MarkEntranceDto> markEntranceDtoIPage = this.baseMapper.listEntranceGroup(page, examId, courseCode, paperNumber, sysUser.getId());
+        IPage<MarkEntranceDto> markEntranceDtoIPage = this.baseMapper.listEntranceGroup(page, examId, courseCode, paperNumber, sysUser.getId(), MarkPaperStatus.FORMAL.name());
         for (MarkEntranceDto record : markEntranceDtoIPage.getRecords()) {
             record.setLeftCount(record.getTaskCount() == null || record.getTaskCount() == 0 ? 0 : record.getTaskCount() - record.getMarkedCount());
             // 评卷进度

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

@@ -614,10 +614,10 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
     }
 
     @Override
-    public List<ScanStudentDto> list(Long examId, String courseCode, String coursePaperId, OmrTaskStatus status, Long userId) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, userId, ServletUtil.getRequest().getServletPath());
-        return this.baseMapper.listByExamIdAndStatusAndUserId(examId, courseCode, coursePaperId, status, userId, MarkPaperStatus.FORMAL.name(), dpr);
+    public List<ScanStudentDto> list(Long examId, String courseCode, String coursePaperId, OmrTaskStatus status) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
+        return this.baseMapper.listByExamIdAndStatusAndUserId(examId, courseCode, coursePaperId, status, MarkPaperStatus.FORMAL.name(), dpr);
     }
 
     @Override

+ 3 - 0
teachcloud-mark/src/main/resources/mapper/MarkUserGroupMapper.xml

@@ -44,6 +44,9 @@
                 and mg.paper_number = #{paperNumber}
             </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>
     </select>
     <select id="listGroupUserByExamIdAndPaperNumberAndGroupNumber"

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

@@ -37,7 +37,7 @@
 			s.id studentId,
 			s.student_name,
 			s.student_code
-		from mark_student s
+		from mark_student s left join sys_user su on s.create_id = su.id
 			<where>
 				<if test="examId != null">
 					and s.exam_id = #{examId}
@@ -53,11 +53,16 @@
 						from scan_omr_task t
 						where s.id = t.student_id
 						and t.status=#{status}
-						<if test="userId == null or userId == ''">
-						and t.user_id is null
-						</if>
-						<if test="userId != null and userId != ''">
-						and t.user_id=#{userId}
+						<if test="dpr != null">
+							<if test="dpr.requestUserId != null">
+								AND s.create_id = #{dpr.requestUserId}
+							</if>
+							<if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+								AND su.org_id IN
+								<foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+									#{item}
+								</foreach>
+							</if>
 						</if>
 				)
 			</where>