Browse Source

3.4.0 bug fix

xiaofei 9 months ago
parent
commit
4bcb9afa4d

+ 5 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -335,7 +335,11 @@ public class CreatePdfUtil {
     private CodeNameEnableValue defaultCodeNameEnableValue(String code, String name, Set<List<CodeNameEnableValue>> examStudentFieldSet) {
         Set<String> valueSet = new HashSet<>();
         for (List<CodeNameEnableValue> codeNameEnableValues : examStudentFieldSet) {
-            CollectionUtils.addAll(valueSet, codeNameEnableValues.stream().filter(m -> code.equals(m.getCode())).map(m -> m.getValue()).collect(Collectors.toSet()));
+            Set<String> collect = codeNameEnableValues.stream().filter(m -> code.equals(m.getCode()) && StringUtils.isNotBlank(m.getValue())).map(m -> m.getValue()).collect(Collectors.toSet());
+            if(CollectionUtils.isEmpty(collect)){
+                continue;
+            }
+            CollectionUtils.addAll(valueSet, collect);
         }
         return new CodeNameEnableValue(code, name, true, CollectionUtils.isNotEmpty(valueSet) ? String.join(SystemConstant.COMMA_OF_CHINESE, valueSet) : "");
     }

+ 2 - 1
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/mapper/TRExamStudentMapper.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.obe.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.obe.been.report.StudentCourseInfoDto;
 import com.qmth.teachcloud.obe.been.report.StudentRequirementInfoDto;
 import com.qmth.teachcloud.obe.entity.TRExamStudent;
@@ -22,5 +23,5 @@ public interface TRExamStudentMapper extends BaseMapper<TRExamStudent> {
 
     List<StudentCourseInfoDto> listStudentCourseByCultureProgramIdAndStudentCodeAndSemesterId(@Param("cultureProgramId") Long cultureProgramId, @Param("studentCode") String studentCode, @Param("semesterId") Long semesterId);
 
-    IPage<StudentRequirementInfoDto> requirementStudentPage(@Param("studentRequirementInfoDtoPage") Page<StudentRequirementInfoDto> studentRequirementInfoDtoPage, @Param("cultureProgramId") Long cultureProgramId, @Param("studentCodeOrName") String studentCodeOrName);
+    IPage<StudentRequirementInfoDto> requirementStudentPage(@Param("studentRequirementInfoDtoPage") Page<StudentRequirementInfoDto> studentRequirementInfoDtoPage, @Param("cultureProgramId") Long cultureProgramId, @Param("studentCodeOrName") String studentCodeOrName, @Param("dpr") DataPermissionRule dpr);
 }

+ 9 - 1
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TRExamStudentServiceImpl.java

@@ -5,7 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.obe.been.obe.CourseRequirementMatrixDto;
 import com.qmth.teachcloud.obe.been.obe.MatrixRequirementDto;
 import com.qmth.teachcloud.obe.been.obe.MatrixSubRequirementDto;
@@ -58,6 +62,8 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
 
     @Resource
     private ObeCourseRequirementReportService obeCourseRequirementReportService;
+    @Resource
+    private BasicRoleDataPermissionService basicRoleDataPermissionService;
 
     /**
      * 获取考生详细报告
@@ -299,7 +305,9 @@ public class TRExamStudentServiceImpl extends ServiceImpl<TRExamStudentMapper, T
 
     @Override
     public IPage<StudentRequirementInfoDto> getRequirementsStudentPage(Long cultureProgramId, String studentCodeOrName, Integer pageNumber, Integer pageSize) {
-        return this.baseMapper.requirementStudentPage(new Page<>(pageNumber, pageSize), cultureProgramId, studentCodeOrName);
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(requestUser.getSchoolId(), requestUser.getId(), ServletUtil.getRequest().getServletPath());
+        return this.baseMapper.requirementStudentPage(new Page<>(pageNumber, pageSize), cultureProgramId, studentCodeOrName, dpr);
     }
 
 //    /**

+ 1 - 1
teachcloud-obe/src/main/resources/mapper/ObeCourseOutlineMapper.xml

@@ -67,7 +67,7 @@
                     AND oco.user_id = #{dpr.requestUserId}
                 </if>
                 <if test="dpr.courseUserId != null">
-                    AND EXISTS( SELECT 1 FROM (select course_code from teach_course where user_id = #{dpr.courseUserId}) tc WHERE tc.course_code = bc.code)
+                    AND EXISTS( SELECT 1 FROM (select course_id from teach_course where user_id = #{dpr.courseUserId}) tc WHERE tc.course_id = bc.id)
                 </if>
                 <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
                     AND bc.teaching_room_id IN

+ 1 - 1
teachcloud-obe/src/main/resources/mapper/ObeCourseRequirementReportMapper.xml

@@ -24,7 +24,7 @@
                     AND ocp.create_id = #{dpr.requestUserId}
                 </if>
                 <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
-                    AND su.org_id IN
+                    AND bp.org_id IN
                     <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
                         #{item}
                     </foreach>

+ 4 - 1
teachcloud-obe/src/main/resources/mapper/ObeCultureProgramMapper.xml

@@ -43,8 +43,11 @@
                 <if test="dpr.requestUserId != null">
                     AND ocp.create_id = #{dpr.requestUserId}
                 </if>
+                <if test="dpr.courseUserId != null">
+                    AND EXISTS( SELECT 1 FROM (select course_id from teach_course where user_id = #{dpr.courseUserId}) tc WHERE tc.course_id in (select ocpc.course_id from obe_culture_program_course ocpc where ocpc.culture_program_id = ocp.id))
+                </if>
                 <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
-                    AND su.org_id IN
+                    AND bp.org_id IN
                     <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
                         #{item}
                     </foreach>

+ 15 - 0
teachcloud-obe/src/main/resources/mapper/TRExamStudentMapper.xml

@@ -41,10 +41,25 @@
                 LEFT JOIN
             t_r_basic_info rbi ON res.r_basic_info_id = rbi.id
             left join basic_exam_student bes on rbi.exam_id = bes.exam_id and rbi.paper_number = bes.paper_number and res.student_code = bes.student_code
+            left join basic_course bc on rbi.course_id = bc.id
             where rbi.culture_program_id = #{cultureProgramId}
                 <if test="studentCodeOrName != null and studentCodeOrName != ''">
                     AND (res.name LIKE CONCAT('%', #{studentCodeOrName}, '%')
                     OR res.student_code LIKE CONCAT('%', #{studentCodeOrName}, '%'))
                 </if>
+                <if test="dpr != null">
+                    <if test="dpr.requestUserId != null">
+                        AND bes.teacher_id = #{dpr.requestUserId}
+                    </if>
+                    <if test="dpr.courseUserId != null">
+                        AND EXISTS( SELECT 1 FROM (select course_id from teach_course where user_id = #{dpr.courseUserId}) tc WHERE tc.course_id = rbi.course_id)
+                    </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>
     </select>
 </mapper>