Ver código fonte

3.2.3 bug修改

xiaofei 2 anos atrás
pai
commit
eb9834053b
14 arquivos alterados com 96 adições e 23 exclusões
  1. 3 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ConditionMapper.java
  2. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailCourseMapper.java
  3. 3 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ConditionService.java
  4. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailCourseService.java
  5. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPrintPlanService.java
  6. 13 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java
  7. 14 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java
  8. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java
  9. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  10. 2 0
      distributed-print-business/src/main/resources/db/3.2.3更新脚本-增量.sql
  11. 37 0
      distributed-print-business/src/main/resources/mapper/ConditionMapper.xml
  12. 6 3
      distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml
  13. 8 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/ConditionController.java
  14. 3 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java

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

@@ -2,6 +2,7 @@ package com.qmth.distributed.print.business.mapper;
 
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import com.qmth.teachcloud.common.entity.BasicClazz;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import org.apache.ibatis.annotations.Param;
 
@@ -29,4 +30,6 @@ public interface ConditionMapper {
     List<PrintPlanBrief> listPrintPlan(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
 
     List<BasicCourse> listCourseForScore(@Param("semesterId") Long semesterId, @Param("examId") Long examId,@Param("dpr") DataPermissionRule dpr);
+
+    List<BasicClazz> listClazz(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("dpr") DataPermissionRule dpr);
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailCourseMapper.java

@@ -40,5 +40,5 @@ public interface ExamDetailCourseMapper extends BaseMapper<ExamDetailCourse> {
 
     List<ExamDetailCourseDto> listByPrintPlanIdAndExamTaskId(@Param("printPlanIds") List<Long> printPlanIds, @Param("examTaskId") Long examTaskId);
 
-    IPage<SyncExamTaskDto> listSyncCourseByPrintPlanId(@Param("ipage") Page<SyncExamTaskDto> ipage, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("orgIds") Set<Long> orgIds, @Param("cardType") SyncCardTypeEnum cardType, @Param("syncStatus") ExamTaskSyncStatusEnum syncStatus, @Param("courseName") String courseName, @Param("startTime") Long startTime, @Param("endTime") Long endTime);
+    IPage<SyncExamTaskDto> listSyncCourseByPrintPlanId(@Param("ipage") Page<SyncExamTaskDto> ipage, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("orgIds") Set<Long> orgIds, @Param("cardType") SyncCardTypeEnum cardType, @Param("syncStatus") ExamTaskSyncStatusEnum syncStatus, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime);
 }

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ConditionService.java

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print.business.service;
 
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
+import com.qmth.teachcloud.common.entity.BasicClazz;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.entity.BasicExam;
 import com.qmth.teachcloud.common.entity.BasicSemester;
@@ -23,4 +24,6 @@ public interface ConditionService {
     List<String> listPaperNumber(Long semesterId, Long examId, String courseCode, List<String> printPlanId);
 
     List<PrintPlanBrief> listPrintPlan(Long semesterId, Long examId);
+
+    List<BasicClazz> listClazz(Long semesterId, Long examId, String courseCode);
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailCourseService.java

@@ -37,7 +37,7 @@ public interface ExamDetailCourseService extends IService<ExamDetailCourse> {
 
     List<ExamDetailCourse> listByCourseCodeAndPaperNumber(Long schoolId, String courseCode, String paperNumber);
 
-    IPage<SyncExamTaskDto> listSyncCourseByPrintPlanId(Long semesterId, Long examId, Long orgId, SyncCardTypeEnum cardType, ExamTaskSyncStatusEnum syncStatus, String courseName, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
+    IPage<SyncExamTaskDto> listSyncCourseByPrintPlanId(Long semesterId, Long examId, Long orgId, SyncCardTypeEnum cardType, ExamTaskSyncStatusEnum syncStatus, String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
 
     List<ExamDetailCourseDto> listByPrintPlanIdAndExamTaskId(List<Long> printPlanIds, Long examTaskId);
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPrintPlanService.java

@@ -114,7 +114,7 @@ public interface ExamPrintPlanService extends IService<ExamPrintPlan> {
 
     List<ExamPrintPlan> listBySchoolId(Long schoolId);
 
-    IPage<SyncExamTaskDto> listSyncExamTask(Long semesterId, Long examId, Long orgId, SyncCardTypeEnum cardType, ExamTaskSyncStatusEnum syncStatus, String courseName, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
+    IPage<SyncExamTaskDto> listSyncExamTask(Long semesterId, Long examId, Long orgId, SyncCardTypeEnum cardType, ExamTaskSyncStatusEnum syncStatus, String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
 
     String checkSyncMode(SyncDataParam syncDataParam);
 }

+ 13 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java

@@ -6,10 +6,7 @@ import com.qmth.distributed.print.business.mapper.ConditionMapper;
 import com.qmth.distributed.print.business.service.BasicExamService;
 import com.qmth.distributed.print.business.service.ConditionService;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
-import com.qmth.teachcloud.common.entity.BasicCourse;
-import com.qmth.teachcloud.common.entity.BasicExam;
-import com.qmth.teachcloud.common.entity.BasicSemester;
-import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.BasicSemesterService;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -119,7 +116,7 @@ public class ConditionServiceImpl implements ConditionService {
     @Override
     public List<PrintPlanBrief> listPrintPlan(Long semesterId, Long examId) {
         Long privilegeId = ServletUtil.getCurrentPrivilegeId();
-        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
+        DataPermissionRule dpr = new DataPermissionRule();
         // 未找到权限菜单,默认为本人权限
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
 
@@ -132,4 +129,15 @@ public class ConditionServiceImpl implements ConditionService {
         }
         return conditionMapper.listPrintPlan(semesterId, examId, dpr);
     }
+
+    @Override
+    public List<BasicClazz> listClazz(Long semesterId, Long examId, String courseCode) {
+        Long privilegeId = ServletUtil.getCurrentPrivilegeId();
+        String privilegeIdString = privilegeId == null ? null : String.valueOf(privilegeId);
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
+        if ("487".equals(privilegeIdString)) {
+            return conditionMapper.listClazz(semesterId, examId, courseCode, dpr);
+        }
+        return null;
+    }
 }

+ 14 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java

@@ -360,6 +360,8 @@ public class DataSyncServiceImpl implements DataSyncService {
         // 同步初始参数
         TaskResultEnum result = null;
         String errorMessage = null;
+        File paperFile = null;
+        File answerFile = null;
         try {
             Long schoolId = examPaperStructure.getSchoolId();
             // 云阅卷考试ID
@@ -382,7 +384,7 @@ public class DataSyncServiceImpl implements DataSyncService {
                             continue;
                         }
                         // 同步试卷文件
-                        File paperFile = downFileFromFss(paper, paperType, SyncFileTypeEnum.PAPER);
+                        paperFile = downFileFromFss(paper, paperType, SyncFileTypeEnum.PAPER);
                         String syncPaperFileUrl = cloudMarkingTaskUtils.syncFile(schoolId, examId, subjectCode, SyncFileTypeEnum.PAPER, paperFile);
                         // 试卷文件保存url
                         paperAnswerJson.put("paperUrl", syncPaperFileUrl);
@@ -393,7 +395,7 @@ public class DataSyncServiceImpl implements DataSyncService {
                             continue;
                         }
                         // 同步标答文件
-                        File answerFile = downFileFromFss(answer, paperType, SyncFileTypeEnum.ANSWER);
+                        answerFile = downFileFromFss(answer, paperType, SyncFileTypeEnum.ANSWER);
                         String syncAnswerFileUrl = cloudMarkingTaskUtils.syncFile(schoolId, examId, subjectCode, SyncFileTypeEnum.ANSWER, answerFile);
                         // 标答文件保存url
                         paperAnswerJson.put("answerUrl", syncAnswerFileUrl);
@@ -413,6 +415,12 @@ public class DataSyncServiceImpl implements DataSyncService {
             errorMessage = e.getMessage();
         } finally {
             tbSyncTaskService.updateStatusAndResultById(tbSyncTask.getId(), examPaperStructure.getThirdRelateId(), TaskStatusEnum.FINISH, result, errorMessage);
+            if (paperFile != null) {
+                paperFile.delete();
+            }
+            if (answerFile != null) {
+                answerFile.delete();
+            }
         }
     }
 
@@ -479,7 +487,7 @@ public class DataSyncServiceImpl implements DataSyncService {
                     SysUser markerUser = sysUserService.getById(object.getLong("id"));
                     SysConfigService sysConfigService = SpringContextHolder.getBean(SysConfigService.class);
                     SysConfig sysConfig = sysConfigService.getByKey("sys.user.initPassword");
-                    cloudMarkingTaskUtils.syncUser(SpecialPrivilegeEnum.SUBJECT_HEADER.getPrefix() +markerUser.getLoginName(), markerUser.getRealName(), sysConfig.getConfigValue(), SpecialPrivilegeEnum.MARKER.getValue(), markerUser.getEnable(), schoolId, orgCode);
+                    cloudMarkingTaskUtils.syncUser(SpecialPrivilegeEnum.SUBJECT_HEADER.getPrefix() + markerUser.getLoginName(), markerUser.getRealName(), sysConfig.getConfigValue(), SpecialPrivilegeEnum.MARKER.getValue(), markerUser.getEnable(), schoolId, orgCode);
 
                     cloudMarkingTaskUtils.saveMarkLeader(schoolId, subjectCode, object.getString("loginName"));
                 }
@@ -737,9 +745,9 @@ public class DataSyncServiceImpl implements DataSyncService {
                     throw ExceptionResultEnum.ERROR.exception("附件数据异常");
                 }
                 String fileName = attachment.getName() + SystemConstant.HYPHEN + name + attachment.getType();
-                String dirName = "upload-temp" + File.separator + type.name().toLowerCase() + File.separator + System.currentTimeMillis();
-                File file = SystemConstant.getFileTempDirVar(dirName, SystemConstant.getNanoId() + ".json");
-                return teachcloudCommonService.copyFile(file.getPath(), fileName, attachment);
+                String dirName = dictionaryConfig.fssPrivateDomain().getConfig() + File.separator + "upload-temp" + File.separator + type.name().toLowerCase() + File.separator + System.currentTimeMillis();
+//                File file = SystemConstant.getFileTempDirVar(dirName, SystemConstant.getNanoId() + attachment.getType());
+                return teachcloudCommonService.copyFile(dirName, fileName, attachment);
             }
         } catch (Exception e) {
             throw ExceptionResultEnum.ERROR.exception(e.getMessage());

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

@@ -91,14 +91,14 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
     }
 
     @Override
-    public IPage<SyncExamTaskDto> listSyncCourseByPrintPlanId(Long semesterId, Long examId, Long orgId, SyncCardTypeEnum cardType, ExamTaskSyncStatusEnum syncStatus, String courseName, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
+    public IPage<SyncExamTaskDto> listSyncCourseByPrintPlanId(Long semesterId, Long examId, Long orgId, SyncCardTypeEnum cardType, ExamTaskSyncStatusEnum syncStatus, String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Page<SyncExamTaskDto> ipage = new Page<>(pageNumber, pageSize);
         // 顶级机构
         SysOrg rootOrg = sysOrgService.findRootOrg(sysUser.getSchoolId());
         // 查询用户所在机构及以下机构
         Set<Long> orgIds = sysOrgService.findDeepOrgIdListByUserId(sysUser.getId());
-        IPage<SyncExamTaskDto> examTaskDtos = this.baseMapper.listSyncCourseByPrintPlanId(ipage, semesterId, examId, orgIds, cardType, syncStatus, courseName, startTime, endTime);
+        IPage<SyncExamTaskDto> examTaskDtos = this.baseMapper.listSyncCourseByPrintPlanId(ipage, semesterId, examId, orgIds, cardType, syncStatus, courseCode, paperNumber, startTime, endTime);
         for (SyncExamTaskDto examTaskDto : examTaskDtos.getRecords()) {
             String paperType = examTaskDto.getPaperType();
             List<String> paperTypes = Arrays.asList(paperType.split(","));

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

@@ -511,8 +511,8 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     }
 
     @Override
-    public IPage<SyncExamTaskDto> listSyncExamTask(Long semesterId, Long examId, Long orgId, SyncCardTypeEnum cardType, ExamTaskSyncStatusEnum syncStatus, String courseName, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
-        return examDetailCourseService.listSyncCourseByPrintPlanId(semesterId, examId, orgId, cardType, syncStatus, courseName, startTime, endTime, pageNumber, pageSize);
+    public IPage<SyncExamTaskDto> listSyncExamTask(Long semesterId, Long examId, Long orgId, SyncCardTypeEnum cardType, ExamTaskSyncStatusEnum syncStatus, String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
+        return examDetailCourseService.listSyncCourseByPrintPlanId(semesterId, examId, orgId, cardType, syncStatus, courseCode, paperNumber, startTime, endTime, pageNumber, pageSize);
     }
 
     @Override

+ 2 - 0
distributed-print-business/src/main/resources/db/3.2.3更新脚本-增量.sql

@@ -56,6 +56,8 @@ INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence
 
 ALTER TABLE `t_sync_exam_student_score` ADD COLUMN `paper_number` VARCHAR(45) NULL COMMENT '试卷编号' AFTER `name`;
 
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('865', '共用接口-查询班级', '/api/admin/basic/condition/list_clazz', 'URL', '149', '13', 'SYS', '1', '1', '1');
+
 
 /*王亮新增*/
 INSERT INTO sys_role

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

@@ -235,4 +235,41 @@
         </where>
         order by et.course_code
     </select>
+    <select id="listClazz" resultType="com.qmth.teachcloud.common.entity.BasicClazz">
+        SELECT DISTINCT
+            tsess.clazz_id id, tsess.clazz_name name
+        FROM
+            t_sync_exam_student_score tsess
+                JOIN
+            exam_task et ON tsess.school_id = et.school_id
+                AND tsess.paper_number = et.paper_number
+                JOIN
+            basic_course bc ON et.school_id = bc.school_id
+                AND et.course_code = bc.code
+                LEFT JOIN
+            teach_course tc ON bc.school_id = tc.school_id
+                AND bc.id = tc.basic_course_id
+        <where>
+            <if test="semesterId != null">
+                AND tsess.semester_id = #{semesterId}
+            </if>
+            <if test="examId != null">
+                AND et.exam_id = #{examId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                AND et.course_code = #{courseCode}
+            </if>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND tc.user_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND bc.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </if>
+        </where>
+    </select>
 </mapper>

+ 6 - 3
distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml

@@ -181,8 +181,11 @@
                 <if test="examId != null">
                     and be.id = #{examId}
                 </if>
-                <if test="courseName != null and courseName != ''">
-                    and b.course_name like concat(#{courseName}, '%')
+                <if test="courseCode != null and courseCode != ''">
+                    and b.course_code = #{courseCode}
+                </if>
+                <if test="paperNumber != null and paperNumber != ''">
+                    and b.paper_number = #{paperNumber}
                 </if>
             </where>
              GROUP BY b.school_id , b.paper_number , b.paper_type) t
@@ -213,7 +216,7 @@
                     and et.end_time &lt;= #{endTime}
                 </if>
             </where>
-        ORDER BY et.course_code , et.sequence
+        ORDER BY et.create_time desc
     </select>
     <select id="listByPrintPlanIdAndExamTaskId"
             resultType="com.qmth.distributed.print.business.bean.dto.ExamDetailCourseDto">

+ 8 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/ConditionController.java

@@ -80,4 +80,12 @@ public class ConditionController {
         return ResultUtil.ok(conditionService.listPrintPlan(semesterId, examId));
     }
 
+    @ApiOperation(value = "试卷编号")
+    @RequestMapping(value = "/list_clazz", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicCollegeResult.class)})
+    public Result listClazz(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId,
+                                  @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
+                                  @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode) {
+        return ResultUtil.ok(conditionService.listClazz(semesterId, examId, courseCode));
+    }
 }

+ 3 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java

@@ -49,7 +49,8 @@ public class ExamPrintPlanSyncController {
                                    @ApiParam(value = "学院ID") @RequestParam(required = false) Long orgId,
                                    @ApiParam(value = "题卡类型") @RequestParam(required = false) SyncCardTypeEnum cardType,
                                    @ApiParam(value = "推送状态") @RequestParam(required = false) ExamTaskSyncStatusEnum syncStatus,
-                                   @ApiParam(value = "课程名称") @RequestParam(required = false) String courseName,
+                                   @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode,
+                                   @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
                                    @ApiParam(value = "计划创建时间段开始时间") @RequestParam(required = false) Long startTime,
                                    @ApiParam(value = "计划创建时间段结束时间") @RequestParam(required = false) Long endTime,
                                    @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
@@ -57,7 +58,7 @@ public class ExamPrintPlanSyncController {
         if (semesterId == null) {
             throw ExceptionResultEnum.ERROR.exception("请选择学期");
         }
-        return ResultUtil.ok(examPrintPlanService.listSyncExamTask(semesterId, examId, orgId, cardType,syncStatus, courseName, startTime, endTime, pageNumber, pageSize));
+        return ResultUtil.ok(examPrintPlanService.listSyncExamTask(semesterId, examId, orgId, cardType,syncStatus, courseCode, paperNumber, startTime, endTime, pageNumber, pageSize));
     }
 
     /**