wangliang 8 месяцев назад
Родитель
Сommit
f55380bd76

+ 1 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/obe/TCFinalScoreController.java

@@ -105,8 +105,7 @@ public class TCFinalScoreController {
         tcFinalScoreService.getLock(cultureProgramId, courseId, paperNumber, examId);
         TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(cultureProgramId, courseId, paperNumber, examId);
         List<Set<ExcelField>> excelFieldRowSet = new ArrayList<>();
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        List<TCFinalScore> finalScoreList = tcFinalScoreService.queryFinalScore(cultureProgramId, courseId, paperNumber, examId, sysUser.getId());
+        List<TCFinalScore> finalScoreList = tcFinalScoreService.queryFinalScore(cultureProgramId, courseId, paperNumber, examId);
         if (CollectionUtils.isNotEmpty(finalScoreList)) {
             finalScoreList.stream().peek(s -> {
                         Set<ExcelField> excelFieldList = new LinkedHashSet<>();

+ 1 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/obe/TCUsualScoreController.java

@@ -94,8 +94,7 @@ public class TCUsualScoreController {
     ) throws IOException {
         tcUsualScoreService.getUsualScoreImportLock(cultureProgramId, courseId, paperNumber, examId);
         List<Set<ExcelField>> excelFieldRowList = new ArrayList<>();
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        List<TCUsualScore> tcUsualScoreList = tcUsualScoreService.queryUsualScore(cultureProgramId, courseId, paperNumber, examId, sysUser.getId());
+        List<TCUsualScore> tcUsualScoreList = tcUsualScoreService.queryUsualScore(cultureProgramId, courseId, paperNumber, examId);
         if (CollectionUtils.isNotEmpty(tcUsualScoreList)) {
             tcUsualScoreList.stream().peek(s -> {
                         Set<ExcelField> excelFieldList = new LinkedHashSet<>();

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/obe/TRBasicInfoController.java

@@ -432,7 +432,7 @@ public class TRBasicInfoController {
                                    @ApiParam(value = "true:报告,false:成绩管理", required = true) @RequestParam boolean report) {
         ObeCourseOutline obeCourseOutline = obeCourseOutlineService.findByCultureProgramIdAndCourseId(cultureProgramId, courseId);
         ReportChangeResult reportChangeResult = new ReportChangeResult();
-        List<TCUsualScore> tcUsualScoreList = tcUsualScoreService.queryUsualScore(cultureProgramId, courseId, paperNumber, examId, null);
+        List<TCUsualScore> tcUsualScoreList = tcUsualScoreService.queryUsualScore(cultureProgramId, courseId, paperNumber, examId);
         if (CollectionUtils.isNotEmpty(tcUsualScoreList)) {
             Set<String> usualScoreCourseSet = new LinkedHashSet<>();
             TCUsualScore tcUsualScore = tcUsualScoreList.get(0);

+ 18 - 6
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/mapper/TCFinalScoreMapper.java

@@ -41,11 +41,11 @@ public interface TCFinalScoreMapper extends BaseMapper<TCFinalScore> {
      * @param courseId
      * @param examId
      * @param paperNumber
-     * @param userId
      * @param teachClassName
+     * @param dpr
      * @return
      */
-    public FinalScoreDto finalScoreScoreOverView(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("userId") Long userId, @Param("teachClassName") String teachClassName);
+    public FinalScoreDto finalScoreScoreOverView(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("teachClassName") String teachClassName, @Param("dpr") DataPermissionRule dpr);
 
     /**
      * 查找期末成绩分数区间
@@ -56,11 +56,11 @@ public interface TCFinalScoreMapper extends BaseMapper<TCFinalScore> {
      * @param end
      * @param examId
      * @param paperNumber
-     * @param userId
      * @param teachClassName
+     * @param dpr
      * @return
      */
-    public int getCountByScoreRange(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("start") Double start, @Param("end") Double end, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("userId") Long userId, @Param("teachClassName") String teachClassName);
+    public int getCountByScoreRange(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("start") Double start, @Param("end") Double end, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("teachClassName") String teachClassName, @Param("dpr") DataPermissionRule dpr);
 
     /**
      * 查找考生成绩
@@ -69,9 +69,21 @@ public interface TCFinalScoreMapper extends BaseMapper<TCFinalScore> {
      * @param courseId
      * @param examId
      * @param paperNumber
-     * @param userId
      * @param teachClassName
+     * @param dpr
+     * @return
+     */
+    public List<FinalScoreResult> examStudentOverview(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("teachClassName") String teachClassName, @Param("dpr") DataPermissionRule dpr);
+
+    /**
+     * 根据考试id/课程编码/试卷编码查询数据库数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @param dpr
      * @return
      */
-    public List<FinalScoreResult> examStudentOverview(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("userId") Long userId, @Param("teachClassName") String teachClassName);
+    public List<TCFinalScore> queryFinalScore(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("paperNumber") String paperNumber, @Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
 }

+ 13 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/mapper/TCUsualScoreMapper.java

@@ -7,6 +7,7 @@ import com.qmth.teachcloud.obe.been.result.ObeScoreResult;
 import com.qmth.teachcloud.obe.entity.TCUsualScore;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -44,4 +45,16 @@ public interface TCUsualScoreMapper extends BaseMapper<TCUsualScore> {
      * @return
      */
     public IPage<TCUsualScore> usualScoreList(IPage<Map> iPage, @Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("paperNumber") String paperNumber, @Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
+
+    /**
+     * 根据考试id/课程编码/试卷编码查询数据库数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @param dpr
+     * @return
+     */
+    public List<TCUsualScore> queryUsualScore(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("paperNumber") String paperNumber, @Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
 }

+ 1 - 2
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/TCFinalScoreService.java

@@ -122,10 +122,9 @@ public interface TCFinalScoreService extends IService<TCFinalScore> {
      * @param courseId
      * @param paperNumber
      * @param examId
-     * @param createId
      * @return
      */
-    public List<TCFinalScore> queryFinalScore(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long createId);
+    public List<TCFinalScore> queryFinalScore(Long cultureProgramId, Long courseId, String paperNumber, Long examId);
 
     /**
      * 获取期末考试同步锁

+ 12 - 2
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/TCUsualScoreService.java

@@ -51,10 +51,9 @@ public interface TCUsualScoreService extends IService<TCUsualScore> {
      * @param courseId
      * @param paperNumber
      * @param examId
-     * @param createId
      * @return
      */
-    public List<TCUsualScore> queryUsualScore(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long createId);
+    public List<TCUsualScore> queryUsualScore(Long cultureProgramId, Long courseId, String paperNumber, Long examId);
 
     /**
      * 获取平时成绩导入锁
@@ -65,4 +64,15 @@ public interface TCUsualScoreService extends IService<TCUsualScore> {
      * @param examId
      */
     public void getUsualScoreImportLock(Long cultureProgramId, Long courseId, String paperNumber, Long examId);
+
+    /**
+     * 根据考试id/课程编码/试卷编码删除数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @return
+     */
+    public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId);
 }

+ 25 - 34
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TCFinalScoreServiceImpl.java

@@ -10,7 +10,6 @@ import com.qmth.boot.tools.excel.enums.ExcelType;
 import com.qmth.distributed.print.business.enums.SourceEnum;
 import com.qmth.distributed.print.business.service.BasicExamStudentService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
-import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicCourse;
@@ -231,7 +230,7 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                 }
                 if (!CollectionUtils.isEmpty(tcFinalScoreList)) {
                     successData.add("共导入").add(tcFinalScoreList.size() + "").add("条数据");
-                    List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryFinalScore(cultureProgramId, courseId, paperNumber, examId, sysUser.getId());
+                    List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryFinalScore(cultureProgramId, courseId, paperNumber, examId);
                     tcFinalScoreList.stream().peek(s -> s.updateExamAndPaperNumberInfo(tcFinalScoreDbSourceList.get(0))).collect(Collectors.toList());
                     if (CollectionUtils.isEmpty(tcFinalScoreDbSourceList) || !CollectionUtils.isEqualCollection(tcFinalScoreDbSourceList, tcFinalScoreList)) {
                         Map<String, TCFinalScore> tcUsualScoreDbMap = tcFinalScoreDbSourceList.stream().collect(Collectors.toMap(TCFinalScore::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
@@ -302,7 +301,9 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
      */
     @Override
     public FinalScoreDto finalScoreScoreOverView(Long examId, String courseCode, String paperNumber, Long cultureProgramId, Long courseId, String teachClassName, Long userId) {
-        return this.baseMapper.finalScoreScoreOverView(cultureProgramId, courseId, examId, paperNumber, Objects.nonNull(userId) && userId.longValue() > 0 ? userId : null, teachClassName);
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
+        return this.baseMapper.finalScoreScoreOverView(cultureProgramId, courseId, examId, paperNumber, teachClassName, dpr);
     }
 
     /**
@@ -321,7 +322,9 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
      */
     @Override
     public int getCountByScoreRange(Long examId, String courseCode, String paperNumber, Long cultureProgramId, Long courseId, Double start, Double end, String teachClassName, Long userId) {
-        return this.baseMapper.getCountByScoreRange(cultureProgramId, courseId, start, end, examId, paperNumber, Objects.nonNull(userId) && userId.longValue() > 0 ? userId : null, teachClassName);
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
+        return this.baseMapper.getCountByScoreRange(cultureProgramId, courseId, start, end, examId, paperNumber, teachClassName, dpr);
     }
 
     /**
@@ -338,7 +341,9 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
      */
     @Override
     public List<FinalScoreResult> examStudentOverview(Long examId, String courseCode, String paperNumber, Long cultureProgramId, Long courseId, String teachClassName, Long userId) {
-        return this.baseMapper.examStudentOverview(cultureProgramId, courseId, examId, paperNumber, Objects.nonNull(userId) && userId.longValue() > 0 ? userId : null, teachClassName);
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
+        return this.baseMapper.examStudentOverview(cultureProgramId, courseId, examId, paperNumber, teachClassName, dpr);
     }
 
     /**
@@ -413,29 +418,28 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                                         SourceEnum.SYNC, sysUser.getId(), cultureProgramId, courseId));
                     }
                 }
-//                TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(cultureProgramId, courseId, paperNumber, examId);
-//                if (Objects.nonNull(tcPaperStruct)) {
-//                    tcPaperStructService.removeById(tcPaperStruct.getId());
-//                }
             }
             if (!CollectionUtils.isEmpty(tcFinalScoreList) && !CollectionUtils.isEmpty(tcUsualScoreList)) {
                 successData.add("共同步").add(tcFinalScoreList.size() + "").add("条数据");
                 List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryFinalScore(cultureProgramId,
-                        courseId, paperNumber, examId, null);
+                        courseId, paperNumber, examId);
                 List<TCUsualScore> tcUsualScoreDbSourceList = tcUsualScoreService.queryUsualScore(cultureProgramId,
-                        courseId, paperNumber, examId, null);
+                        courseId, paperNumber, examId);
+                boolean clearReport = false;
                 if (CollectionUtils.isEmpty(tcFinalScoreDbSourceList) || !CollectionUtils.isEqualCollection(
                         tcFinalScoreDbSourceList, tcFinalScoreList)) {
-                    tcFinalScoreService.removeByIds(
-                            tcFinalScoreDbSourceList.stream().map(BaseEntity::getId).collect(Collectors.toList()));
+                    tcFinalScoreService.remove(cultureProgramId, courseId, paperNumber, examId);
                     tcFinalScoreService.saveBatch(tcFinalScoreList);
-                    trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, true);
+                    clearReport = true;
                 }
                 if (CollectionUtils.isEmpty(tcUsualScoreDbSourceList) || !CollectionUtils.isEqualCollection(
                         tcUsualScoreDbSourceList, tcUsualScoreList)) {
-                    tcUsualScoreService.removeByIds(
-                            tcUsualScoreDbSourceList.stream().map(BaseEntity::getId).collect(Collectors.toList()));
+                    tcUsualScoreService.remove(cultureProgramId, courseId, paperNumber, examId);
                     tcUsualScoreService.saveBatch(tcUsualScoreList);
+                    clearReport = true;
+                }
+                if (clearReport) {
+                    trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, true);
                 }
             }
             messageMap.put(SystemConstant.SUCCESS, successData.length() > 0 ? successData.toString() : "无");
@@ -467,11 +471,9 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
     @Override
     @Transactional
     public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         QueryWrapper<TCFinalScore> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(TCFinalScore::getCultureProgramId, cultureProgramId)
-                .eq(TCFinalScore::getCourseId, courseId)
-                .eq(TCFinalScore::getCreateId, sysUser.getId());
+                .eq(TCFinalScore::getCourseId, courseId);
         if (Objects.nonNull(paperNumber)) {
             queryWrapper.lambda().and(w -> w.eq(TCFinalScore::getPaperNumber, paperNumber).or().isNull(TCFinalScore::getPaperNumber));
         }
@@ -488,24 +490,13 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
      * @param courseId
      * @param paperNumber
      * @param examId
-     * @param createId
      * @return
      */
     @Override
-    public List<TCFinalScore> queryFinalScore(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long createId) {
-        QueryWrapper<TCFinalScore> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(TCFinalScore::getCultureProgramId, cultureProgramId)
-                .eq(TCFinalScore::getCourseId, courseId);
-        if (Objects.nonNull(paperNumber)) {
-            queryWrapper.lambda().and(w -> w.eq(TCFinalScore::getPaperNumber, paperNumber).or().isNull(TCFinalScore::getPaperNumber));
-        }
-        if (Objects.nonNull(examId)) {
-            queryWrapper.lambda().eq(TCFinalScore::getExamId, examId);
-        }
-        if (Objects.nonNull(createId) && createId.longValue() > 0) {
-            queryWrapper.lambda().eq(TCFinalScore::getCreateId, createId);
-        }
-        return tcFinalScoreService.list(queryWrapper);
+    public List<TCFinalScore> queryFinalScore(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
+        return this.baseMapper.queryFinalScore(cultureProgramId, courseId, paperNumber, examId, dpr);
     }
 
     /**

+ 29 - 16
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TCUsualScoreServiceImpl.java

@@ -20,6 +20,7 @@ import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.obe.been.dto.TCUsualScoreDto;
+import com.qmth.teachcloud.obe.entity.TCFinalScore;
 import com.qmth.teachcloud.obe.entity.TCUsualScore;
 import com.qmth.teachcloud.obe.mapper.TCUsualScoreMapper;
 import com.qmth.teachcloud.obe.service.TCUsualScoreService;
@@ -172,7 +173,7 @@ public class TCUsualScoreServiceImpl extends ServiceImpl<TCUsualScoreMapper, TCU
                 }
                 if (!CollectionUtils.isEmpty(tcUsualScoreList)) {
                     successData.add("共导入").add(tcUsualScoreList.size() + "").add("条数据");
-                    List<TCUsualScore> tcUsualScoreDbSourceList = tcUsualScoreService.queryUsualScore(cultureProgramId, basicCourse.getId(), paperNumber, examId, sysUser.getId());
+                    List<TCUsualScore> tcUsualScoreDbSourceList = tcUsualScoreService.queryUsualScore(cultureProgramId, basicCourse.getId(), paperNumber, examId);
                     tcUsualScoreList.stream().peek(s -> s.updateExamAndPaperNumberInfo(tcUsualScoreDbSourceList.get(0))).collect(Collectors.toList());
                     if (CollectionUtils.isEmpty(tcUsualScoreDbSourceList) || !CollectionUtils.isEqualCollection(tcUsualScoreDbSourceList, tcUsualScoreList)) {
                         Map<String, TCUsualScore> tcUsualScoreDbMap = tcUsualScoreDbSourceList.stream().collect(Collectors.toMap(TCUsualScore::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
@@ -236,24 +237,13 @@ public class TCUsualScoreServiceImpl extends ServiceImpl<TCUsualScoreMapper, TCU
      * @param courseId
      * @param paperNumber
      * @param examId
-     * @param createId
      * @return
      */
     @Override
-    public List<TCUsualScore> queryUsualScore(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long createId) {
-        QueryWrapper<TCUsualScore> queryWrapper = new QueryWrapper<>();
-        if (Objects.nonNull(paperNumber)) {
-            queryWrapper.lambda().and(w -> w.eq(TCUsualScore::getPaperNumber, paperNumber).or().isNull(TCUsualScore::getPaperNumber));
-        }
-        queryWrapper.lambda().eq(TCUsualScore::getCultureProgramId, cultureProgramId)
-                .eq(TCUsualScore::getCourseId, courseId);
-        if (Objects.nonNull(examId)) {
-            queryWrapper.lambda().eq(TCUsualScore::getExamId, examId);
-        }
-        if (Objects.nonNull(createId)) {
-            queryWrapper.lambda().eq(TCUsualScore::getCreateId, createId);
-        }
-        return tcUsualScoreService.list(queryWrapper);
+    public List<TCUsualScore> queryUsualScore(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
+        return this.baseMapper.queryUsualScore(cultureProgramId, courseId, paperNumber, examId, dpr);
     }
 
     /**
@@ -272,4 +262,27 @@ public class TCUsualScoreServiceImpl extends ServiceImpl<TCUsualScoreMapper, TCU
             throw ExceptionResultEnum.ERROR.exception("正在导入平时成绩数据,请稍候再试!");
         }
     }
+
+    /**
+     * 根据考试id/课程编码/试卷编码删除数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @return
+     */
+    @Override
+    public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
+        QueryWrapper<TCUsualScore> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(TCUsualScore::getCultureProgramId, cultureProgramId)
+                .eq(TCUsualScore::getCourseId, courseId);
+        if (Objects.nonNull(paperNumber)) {
+            queryWrapper.lambda().and(w -> w.eq(TCUsualScore::getPaperNumber, paperNumber).or().isNull(TCUsualScore::getPaperNumber));
+        }
+        if (Objects.nonNull(examId)) {
+            queryWrapper.lambda().eq(TCUsualScore::getExamId, examId);
+        }
+        return tcUsualScoreService.remove(queryWrapper);
+    }
 }

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

@@ -983,7 +983,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
         if (clearDimension) {
             TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(cultureProgramId, courseId, paperNumber, examId);
             if (Objects.nonNull(tcPaperStruct)) {
-                tcPaperStruct.setPaperStructDimension(null);
+//                tcPaperStruct.setPaperStructDimension(null);
                 tcPaperStruct.updateInfo(sysUser.getId());
                 tcPaperStructService.updateById(tcPaperStruct);
             }

+ 85 - 33
teachcloud-obe/src/main/resources/mapper/TCFinalScoreMapper.xml

@@ -2,8 +2,9 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.teachcloud.obe.mapper.TCFinalScoreMapper">
 
-    <select id="finalScoreList" resultType="com.qmth.teachcloud.obe.entity.TCFinalScore">
+    <sql id="finalScoreCommonSql">
         select * from t_c_final_score t
+        left join basic_course bc on t.course_id = bc.id
         <where>
             <if test="cultureProgramId != null and cultureProgramId != ''">
                 and t.culture_program_id = #{cultureProgramId}
@@ -22,7 +23,8 @@
                     AND t.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 = bc.id)
+                    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
@@ -33,15 +35,21 @@
             </if>
         </where>
         order by t.student_code
+    </sql>
+
+    <select id="finalScoreList" resultType="com.qmth.teachcloud.obe.entity.TCFinalScore">
+        <include refid="finalScoreCommonSql"/>
     </select>
 
     <select id="finalScoreScoreOverView" resultType="com.qmth.teachcloud.obe.been.dto.FinalScoreDto">
         select count(1) as studentCount,
-            max(case when tcfs.score is not null then tcfs.score else null end) finalScoreMaxScore,
-            min(case when tcfs.score is not null then tcfs.score else null end) finalScoreMinScore,
-            avg(case when tcfs.score is not null then tcfs.score else null end) finalScoreAvgScore
-            from t_c_final_score tcfs
-            join t_c_usual_score tcus on tcfs.course_id = tcus.course_id and tcfs.culture_program_id = tcus.culture_program_id and tcfs.student_code = tcus.student_code
+        max(case when tcfs.score is not null then tcfs.score else null end) finalScoreMaxScore,
+        min(case when tcfs.score is not null then tcfs.score else null end) finalScoreMinScore,
+        avg(case when tcfs.score is not null then tcfs.score else null end) finalScoreAvgScore
+        from t_c_final_score tcfs
+        join t_c_usual_score tcus on tcfs.course_id = tcus.course_id and tcfs.culture_program_id =
+        tcus.culture_program_id and tcfs.student_code = tcus.student_code
+        left join basic_course bc on tcfs.course_id = bc.id
         <where>
             <if test="cultureProgramId != null and cultureProgramId != ''">
                 and tcfs.culture_program_id = #{cultureProgramId}
@@ -55,19 +63,33 @@
             <if test="paperNumber != null and paperNumber != ''">
                 and tcfs.paper_number = #{paperNumber}
             </if>
-            <if test="userId != null and userId != ''">
-                and tcfs.create_id = #{userId}
-            </if>
             <if test="teachClassName != null and teachClassName != ''">
                 and tcfs.teach_class_name = #{teachClassName}
             </if>
-                and tcfs.enable = true and tcus.enable = true and tcfs.score is not null and tcus.score is not null
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND tcfs.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 = bc.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>
+            and tcfs.enable = true and tcus.enable = true and tcfs.score is not null and tcus.score is not null
         </where>
     </select>
 
     <select id="getCountByScoreRange" resultType="int">
         SELECT count(1) FROM t_c_final_score tcfs
-        join t_c_usual_score tcus on tcfs.course_id = tcus.course_id and tcfs.culture_program_id = tcus.culture_program_id and tcfs.student_code = tcus.student_code
+        join t_c_usual_score tcus on tcfs.course_id = tcus.course_id and tcfs.culture_program_id =
+        tcus.culture_program_id and tcfs.student_code = tcus.student_code
+        left join basic_course bc on tcfs.course_id = bc.id
         <where>
             <if test="cultureProgramId != null and cultureProgramId != ''">
                 and tcfs.culture_program_id = #{cultureProgramId}
@@ -81,29 +103,44 @@
             <if test="paperNumber != null and paperNumber != ''">
                 and tcfs.paper_number = #{paperNumber}
             </if>
-            <if test="userId != null and userId != ''">
-                and tcfs.create_id = #{userId}
-            </if>
             <if test="teachClassName != null and teachClassName != ''">
                 and tcfs.teach_class_name = #{teachClassName}
             </if>
-                and tcfs.score &gt;= #{start} and tcfs.score &lt;= #{end}
-                and tcfs.enable = true and tcus.enable = true and tcfs.score is not null and tcus.score is not null
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND tcfs.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 = bc.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>
+            and tcfs.score &gt;= #{start} and tcfs.score &lt;= #{end}
+            and tcfs.enable = true and tcus.enable = true and tcfs.score is not null and tcus.score is not null
         </where>
     </select>
 
     <select id="examStudentOverview" resultType="com.qmth.teachcloud.obe.been.result.FinalScoreResult">
         select
-            tcfs.name,
-            tcfs.student_code as studentCode,
-            tcfs.score_detail as finalScoreDetail,
-            tcus.score as usualScore,
-            tcfs.teach_class_name as teachClassName,
-            tcfs.create_id as teachId,
-            group_concat(bes.teach_class_name) as administrativeClass
+        tcfs.name,
+        tcfs.student_code as studentCode,
+        tcfs.score_detail as finalScoreDetail,
+        tcus.score as usualScore,
+        tcfs.teach_class_name as teachClassName,
+        tcfs.create_id as teachId,
+        group_concat(bes.teach_class_name) as administrativeClass
         from t_c_final_score tcfs
-        join t_c_usual_score tcus on tcfs.course_id = tcus.course_id and tcfs.culture_program_id = tcus.culture_program_id and tcfs.student_code = tcus.student_code
-        left join basic_exam_student bes on bes.exam_id = tcfs.exam_id and bes.paper_number = tcfs.paper_number and bes.student_code = tcfs.student_code
+        join t_c_usual_score tcus on tcfs.course_id = tcus.course_id and tcfs.culture_program_id =
+        tcus.culture_program_id and tcfs.student_code = tcus.student_code
+        left join basic_exam_student bes on bes.exam_id = tcfs.exam_id and bes.paper_number = tcfs.paper_number and
+        bes.student_code = tcfs.student_code
+        left join basic_course bc on tcfs.course_id = bc.id
         <where>
             <if test="cultureProgramId != null and cultureProgramId != ''">
                 and tcfs.culture_program_id = #{cultureProgramId}
@@ -117,21 +154,36 @@
             <if test="paperNumber != null and paperNumber != ''">
                 and tcfs.paper_number = #{paperNumber}
             </if>
-            <if test="userId != null and userId != ''">
-                and tcfs.create_id = #{userId}
-            </if>
             <if test="teachClassName != null and teachClassName != ''">
                 and tcfs.teach_class_name = #{teachClassName}
             </if>
-                and tcfs.enable = true and tcus.enable = true and tcfs.score is not null and tcus.score is not null
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND tcfs.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 = bc.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>
+            and tcfs.enable = true and tcus.enable = true and tcfs.score is not null and tcus.score is not null
         </where>
-        group by
-        tcfs.name,
+        group by tcfs.name,
         tcfs.student_code,
         tcfs.score_detail,
         tcus.score,
         tcfs.teach_class_name,
         tcfs.create_id
-            order by tcfs.student_code
+        order by tcfs.student_code
+    </select>
+
+    <select id="queryFinalScore" resultType="com.qmth.teachcloud.obe.entity.TCFinalScore">
+        <include refid="finalScoreCommonSql"/>
     </select>
 </mapper>

+ 34 - 21
teachcloud-obe/src/main/resources/mapper/TCUsualScoreMapper.xml

@@ -4,29 +4,31 @@
 
     <select id="scoreList" resultType="com.qmth.teachcloud.obe.been.result.ObeScoreResult">
         SELECT distinct
-            oco.id AS obeCourseOutlineId,
-            oco.name AS obeCourseOutlineName,
-            bc.id AS courseId,
-            bc.name AS courseName,
-            bc.code AS courseCode,
-            bs.id AS semesterId,
-            bs.name AS semesterName,
-            ocp.id AS cultureProgramId,
-            ocp.name AS cultureProgramName,
-            su.id AS userId,
-            su.real_name AS userName,
-            su.login_name AS userLoginName,
-            oco.create_time,
-            tcfs.exam_id as examId,
-            tcfs.paper_number as paperNumber
+        oco.id AS obeCourseOutlineId,
+        oco.name AS obeCourseOutlineName,
+        bc.id AS courseId,
+        bc.name AS courseName,
+        bc.code AS courseCode,
+        bs.id AS semesterId,
+        bs.name AS semesterName,
+        ocp.id AS cultureProgramId,
+        ocp.name AS cultureProgramName,
+        su.id AS userId,
+        su.real_name AS userName,
+        su.login_name AS userLoginName,
+        oco.create_time,
+        tcfs.exam_id as examId,
+        tcfs.paper_number as paperNumber
         FROM
-            obe_course_outline oco
+        obe_course_outline oco
         LEFT JOIN basic_course bc ON oco.course_id = bc.id
         LEFT JOIN basic_semester bs ON oco.semester_id = bs.id
         LEFT JOIN sys_user su ON oco.user_id = su.id
         LEFT JOIN obe_culture_program ocp ON ocp.id = oco.culture_program_id
-        LEFT JOIN basic_exam_student bes on bes.course_id = oco.course_id and bes.school_id  = oco.school_id and bes.semester_id = bs.id
-        LEFT JOIN t_c_final_score tcfs on tcfs.culture_program_id = oco.culture_program_id and tcfs.course_id = oco.course_id
+        LEFT JOIN basic_exam_student bes on bes.course_id = oco.course_id and bes.school_id = oco.school_id and
+        bes.semester_id = bs.id
+        LEFT JOIN t_c_final_score tcfs on tcfs.culture_program_id = oco.culture_program_id and tcfs.course_id =
+        oco.course_id
         <where>
             AND oco.school_id = #{schoolId}
             <if test="cultureProgramId != null">
@@ -43,7 +45,8 @@
                     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 = bc.id)
+                    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
@@ -56,8 +59,9 @@
         ORDER BY oco.create_time DESC
     </select>
 
-    <select id="usualScoreList" resultType="com.qmth.teachcloud.obe.entity.TCUsualScore">
+    <sql id="usualScoreCommonSql">
         select * from t_c_usual_score t
+        left join basic_course bc on t.course_id = bc.id
         <where>
             <if test="cultureProgramId != null and cultureProgramId != ''">
                 and t.culture_program_id = #{cultureProgramId}
@@ -76,7 +80,8 @@
                     AND t.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 = bc.id)
+                    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
@@ -87,5 +92,13 @@
             </if>
         </where>
         order by t.student_code
+    </sql>
+
+    <select id="usualScoreList" resultType="com.qmth.teachcloud.obe.entity.TCUsualScore">
+        <include refid="usualScoreCommonSql"/>
+    </select>
+
+    <select id="queryUsualScore" resultType="com.qmth.teachcloud.obe.entity.TCUsualScore">
+        <include refid="usualScoreCommonSql"/>
     </select>
 </mapper>