Browse Source

3.3.0 fix

xiaofei 1 năm trước cách đây
mục cha
commit
d33cf50a61

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

@@ -42,7 +42,7 @@ public interface MarkStudentMapper extends BaseMapper<MarkStudent> {
 
 	StudentVo findOne(@Param("query") StudentQuery query);
 
-	IPage<AnswerQueryVo> queryPage(Page<AnswerQueryVo> page, @Param("query") AnswerQueryDomain query);
+	IPage<AnswerQueryVo> queryPage(Page<AnswerQueryVo> page, @Param("query") AnswerQueryDomain query, @Param("dpr") DataPermissionRule dpr);
 
 	List<String> querySummary(@Param("query") AnswerQueryDomain query);
 

+ 3 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -525,9 +525,10 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
 
     @Override
     public IPage<AnswerQueryVo> query(AnswerQueryDomain query) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
         // 查询考生分页信息
-        IPage<AnswerQueryVo> iPage = baseMapper.queryPage(new Page<>(query.getPageNumber(), query.getPageSize()),
-                query);
+        IPage<AnswerQueryVo> iPage = baseMapper.queryPage(new Page<>(query.getPageNumber(), query.getPageSize()), query, dpr);
         if (CollectionUtils.isNotEmpty(iPage.getRecords())) {
             for (AnswerQueryVo vo : iPage.getRecords()) {
                 if (vo.getIsAbsent() != null && vo.getIsAbsent()) {

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

@@ -225,6 +225,17 @@
         <if test="query.questionFilled != null">
             and t.question_filled=#{query.questionFilled}
         </if>
+        <if test="dpr != null">
+            <if test="dpr.requestUserId != null">
+                AND t.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>
     </sql>
     <select id="queryPage"
             resultType="com.qmth.teachcloud.mark.bean.scananswer.AnswerQueryVo">
@@ -232,6 +243,7 @@
         from mark_student t
         left join scan_answer_card c on t.exam_id=c.exam_id and t.card_number=c.number
         left join mark_paper s on s.course_paper_id=t.course_paper_id and s.exam_id=t.exam_id
+        left join sys_user su on t.create_id = su.id
         <include refid="queryWhereAndOrder"/>
         order by t.id
     </select>
@@ -240,6 +252,7 @@
         t.id
         from mark_student t
         left join mark_paper s on s.course_paper_id=t.course_paper_id and s.exam_id=t.exam_id
+        left join sys_user su on t.create_id = su.id
         <include refid="queryWhereAndOrder"/>
         order by t.id
     </select>
@@ -403,8 +416,16 @@
             <if test="markStudent.incomplete != null">
                 and ms.incomplete = #{markStudent.incomplete}
             </if>
-            <if test="markStudent.scanStatus != null">
-                and ms.scan_status = #{markStudent.scanStatus}
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND ms.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>
     </select>

+ 1 - 1
teachcloud-mark/src/main/resources/mapper/ScanPackageMapper.xml

@@ -46,7 +46,7 @@
 	</select>
     <select id="countPackageCode" resultType="java.lang.Integer">
 		SELECT
-			sp.*
+			count(1)
 		FROM
 			scan_package sp
 				JOIN

+ 1 - 1
teachcloud-task/src/main/java/com/qmth/teachcloud/task/service/impl/PrintFinishServiceImpl.java

@@ -116,7 +116,7 @@ public class PrintFinishServiceImpl implements PrintFinishService {
                     if (markStudent != null) {
                         continue;
                     }
-                    MarkStudent student = new MarkStudent(examStudent.getId(), dto.getExamId(), dto.getCourseCode(), dto.getCourseName(), dto.getPaperNumber(), dto.getCoursePaperId(), dto.getPaperType(), examStudent.getStudentCode(), examStudent.getStudentName(), examDetail.getPackageCode(), examDetail.getExamPlace(), examDetail.getExamRoom(), examStudent.getCollegeName(), examStudent.getClazzName(), dto.getExamStartTime(), dto.getExamEndTime());
+                    MarkStudent student = new MarkStudent(examStudent.getId(), dto.getExamId(), dto.getCourseCode(), dto.getCourseName(), dto.getPaperNumber(), dto.getCoursePaperId(), dto.getPaperType(), examStudent.getStudentCode(), examStudent.getStudentName(), examDetail.getPackageCode(), examDetail.getExamPlace(), examDetail.getExamRoom(), examStudent.getCollegeName(), examStudent.getClazzName(), dto.getExamStartTime(), dto.getExamEndTime(), dto.getCreateId());
                     if (student.getSecretNumber() == null) {
                         student.randomSecretNumber();
                         while (secretNumberSet.contains(student.getSecretNumber())