Преглед изворни кода

3.4.4 update-20250325,bug修改

xiaofei пре 3 месеци
родитељ
комит
5693373a33
13 измењених фајлова са 50 додато и 96 уклоњено
  1. 0 28
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/PrintPlanParams.java
  2. 0 22
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/PrintPlanResult.java
  3. 0 26
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamPrintPlan.java
  4. 1 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPrintPlanMapper.java
  5. 3 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPrintPlanService.java
  6. 2 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  7. 7 5
      distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml
  8. 4 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java
  9. 3 3
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkUserPaper.java
  10. 2 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkService.java
  11. 15 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java
  12. 2 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkSyncServiceImpl.java
  13. 11 3
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserPaperServiceImpl.java

+ 0 - 28
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/PrintPlanParams.java

@@ -46,18 +46,6 @@ public class PrintPlanParams {
     @NotNull(message = "请选择考试类型")
     private ExamCategoryEnum category;
 
-    @JsonSerialize(using = ToStringSerializer.class)
-    @ApiModelProperty(value = "考试开始时间",required = true)
-    @NotNull(message = "请输入考试开始时间")
-    @Range(min = 1L,message = "请输入考试开始时间")
-    private Long examStartTime;
-
-    @JsonSerialize(using = ToStringSerializer.class)
-    @ApiModelProperty(value = "考试结束时间",required = true)
-    @NotNull(message = "请输入考试结束时间")
-    @Range(min = 1L,message = "请输入考试结束时间")
-    private Long examEndTime;
-
     @ApiModelProperty(value = "*打印内容:{“PAPER”, \"CARD\"}",required = true)
     @NotNull(message = "请输入打印内容")
     private List<String> printContent;
@@ -130,22 +118,6 @@ public class PrintPlanParams {
         this.category = category;
     }
 
-    public Long getExamStartTime() {
-        return examStartTime;
-    }
-
-    public void setExamStartTime(Long examStartTime) {
-        this.examStartTime = examStartTime;
-    }
-
-    public Long getExamEndTime() {
-        return examEndTime;
-    }
-
-    public void setExamEndTime(Long examEndTime) {
-        this.examEndTime = examEndTime;
-    }
-
     public List<String> getPrintContent() {
         return printContent;
     }

+ 0 - 22
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/PrintPlanResult.java

@@ -33,12 +33,6 @@ public class PrintPlanResult {
     @ApiModelProperty(value = "印刷计划名称")
     private String name;
 
-    @ApiModelProperty(value = "考试开始时间")
-    private Long examStartTime;
-
-    @ApiModelProperty(value = "考试结束时间")
-    private Long examEndTime;
-
     @ApiModelProperty(value = "印刷计划状态")
     private PrintPlanStatusEnum status;
 
@@ -141,22 +135,6 @@ public class PrintPlanResult {
         this.name = name;
     }
 
-    public Long getExamStartTime() {
-        return examStartTime;
-    }
-
-    public void setExamStartTime(Long examStartTime) {
-        this.examStartTime = examStartTime;
-    }
-
-    public Long getExamEndTime() {
-        return examEndTime;
-    }
-
-    public void setExamEndTime(Long examEndTime) {
-        this.examEndTime = examEndTime;
-    }
-
     public PrintPlanStatusEnum getStatus() {
         return status;
     }

+ 0 - 26
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamPrintPlan.java

@@ -46,16 +46,6 @@ public class ExamPrintPlan extends BaseEntity implements Serializable {
      * 印刷计划名称
      */
     private String name;
-    /**
-     * 考试开始时间
-     */
-    @TableField("exam_start_time")
-    private Long examStartTime;
-    /**
-     * 考试结束时间
-     */
-    @TableField("exam_end_time")
-    private Long examEndTime;
     /**
      * {“PAPER”, "CARD"}
      */
@@ -154,22 +144,6 @@ public class ExamPrintPlan extends BaseEntity implements Serializable {
         this.name = name;
     }
 
-    public Long getExamStartTime() {
-        return examStartTime;
-    }
-
-    public void setExamStartTime(Long examStartTime) {
-        this.examStartTime = examStartTime;
-    }
-
-    public Long getExamEndTime() {
-        return examEndTime;
-    }
-
-    public void setExamEndTime(Long examEndTime) {
-        this.examEndTime = examEndTime;
-    }
-
     public String getPrintContent() {
         return printContent;
     }

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

@@ -12,7 +12,6 @@ import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-import java.util.Set;
 
 /**
  * <p>
@@ -33,7 +32,7 @@ public interface ExamPrintPlanMapper extends BaseMapper<ExamPrintPlan> {
                                              @Param("endTime") Long endTime,
                                              @Param("dpr") DataPermissionRule dpr);
 
-    List<PrintPlanBrief> list(@Param("schoolId") Long schoolId, @Param("source") String source, @Param("module") String module, @Param("status") String[] status, @Param("dpr") DataPermissionRule dpr);
+    List<PrintPlanBrief> list(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("source") String source, @Param("module") String module, @Param("status") String[] status, @Param("dpr") DataPermissionRule dpr);
 
     IPage<ClientPrintStatisticsDto> listClientPrintStatistics(Page<ClientPrintStatisticsDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanId") String printPlanId, @Param("examPlace") String examPlace, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("courseId") Long courseId, @Param("paperNumber") String paperNumber, @Param("orgId") Long orgId, @Param("examDetailStatus") String[] examDetailStatus);
 

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

@@ -44,11 +44,13 @@ public interface ExamPrintPlanService extends IService<ExamPrintPlan> {
     /**
      * 印刷计划模糊名称
      *
+     * @param semesterId
+     * @param examId
      * @param source
      * @param module
      * @return 印刷计划id和名称
      */
-    List<PrintPlanBrief> printPlanBriefQuery(String source, String module);
+    List<PrintPlanBrief> printPlanBriefQuery(Long semesterId, Long examId, String source, String module);
 
 
     /**

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

@@ -14,7 +14,6 @@ import com.qmth.distributed.print.business.bean.params.DeleteParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.bean.result.PrintPlanResult;
-import com.qmth.distributed.print.business.bean.result.TemplatePrintInfoResult;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
@@ -30,7 +29,6 @@ import com.qmth.teachcloud.common.enums.ClassifyEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.ServletUtil;
-import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
@@ -97,7 +95,7 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public List<PrintPlanBrief> printPlanBriefQuery(String source, String module) {
+    public List<PrintPlanBrief> printPlanBriefQuery(Long semesterId, Long examId, String source, String module) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         List<PrintPlanBrief> list;
         if ("client".equals(source)) {
@@ -120,7 +118,7 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
                 dpr = basicRoleDataPermissionService.findDataPermission();
             }
             String[] status = {PrintPlanStatusEnum.NEW.name(), PrintPlanStatusEnum.READY.name()};
-            list = this.baseMapper.list(schoolId, source, module, status, dpr);
+            list = this.baseMapper.list(schoolId, semesterId, examId, source, module, status, dpr);
         }
         return list;
     }

+ 7 - 5
distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml

@@ -7,8 +7,6 @@
     <result column="id" property="id" />
         <result column="school_id" property="schoolId" />
         <result column="name" property="name" />
-        <result column="exam_start_time" property="examStartTime" />
-        <result column="exam_end_time" property="examEndTime" />
         <result column="print_content" property="printContent" />
         <result column="backup_method" property="backupMethod" />
         <result column="backup_count" property="backupCount" />
@@ -25,7 +23,7 @@
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
         id,
-        school_id, name, exam_start_time, exam_end_time, print_content, backup_method, backup_count, draw_rule, variable_content, ordinary_content, status, create_id, create_time, update_id, update_time
+        school_id, name, print_content, backup_method, backup_count, draw_rule, variable_content, ordinary_content, status, create_id, create_time, update_id, update_time
     </sql>
 
     <select id="findPrintPlanPage"
@@ -35,8 +33,6 @@
             c.id semesterId,
             c.name semesterName,
             a.name,
-            a.exam_start_time AS examStartTime,
-            a.exam_end_time AS examEndTime,
             a.status,
             a.category,
             (
@@ -121,6 +117,12 @@
             <if test="schoolId != null and schoolId != ''">
                 and a.school_id = #{schoolId}
             </if>
+            <if test="semesterId != null">
+                and bs.id = #{semesterId}
+            </if>
+            <if test="examId != null">
+                and be.id = #{examId}
+            </if>
             <if test="source == 'client'">
                 <if test="module == 'try'">
                     AND LOCATE('PAPER', print_content) > 0

+ 4 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java

@@ -85,9 +85,11 @@ public class ExamPrintPlanController {
     @ApiOperation(value = "印刷计划模糊查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    public Result findPrintPlanQuery(@RequestParam(value = "source", required = false) String source,
+    public Result findPrintPlanQuery(@RequestParam(value = "semesterId", required = false) Long semesterId,
+                                     @RequestParam(value = "examId", required = false) Long examId,
+                                     @RequestParam(value = "source", required = false) String source,
                                      @RequestParam(value = "module", required = false) String module) {
-        return ResultUtil.ok(examPrintPlanService.printPlanBriefQuery(source, module));
+        return ResultUtil.ok(examPrintPlanService.printPlanBriefQuery(semesterId, examId, source, module));
     }
 
     @ApiOperation(value = "按类型查询模板")

+ 3 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkUserPaper.java

@@ -1,8 +1,7 @@
 package com.qmth.teachcloud.mark.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.*;
+
 import java.io.Serializable;
 
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -42,6 +41,7 @@ public class MarkUserPaper implements Serializable {
     private QuestionModel questionModel;
 
     @ApiModelProperty(value = "正在评卷的题目ID")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long markedQuestionId;
 
     public MarkUserPaper() {

+ 2 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkService.java

@@ -100,4 +100,6 @@ public interface MarkService {
      * /** 释放整修科目的锁定任务
      */
     void releaseByMarkQuestion(MarkQuestion markQuestion);
+
+    void resetMarkedQuestionId(MarkUserQuestion markUserQuestion);
 }

+ 15 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -1372,4 +1372,19 @@ public class MarkServiceImpl implements MarkService {
         taskLock.clear();
     }
 
+    @Override
+    public void resetMarkedQuestionId(MarkUserQuestion markUserQuestion) {
+        List<MarkQuestion> markQuestionList = markQuestionService.listByExamIdAndPaperNumberAndObjective(markUserQuestion.getExamId(), markUserQuestion.getPaperNumber(), false);
+        List<Long> list = markQuestionList.stream().map(MarkQuestion::getId).collect(Collectors.toList());
+        MarkUserPaper markUserPaper = markUserPaperService.getByExamIdAndPaperNumberAndUserId(markUserQuestion.getExamId(), markUserQuestion.getPaperNumber(), markUserQuestion.getUserId());
+        if (markUserPaper != null && QuestionModel.SINGLE.equals(markUserPaper.getQuestionModel()) && markUserPaper.getMarkedQuestionId() != null) {
+            int currentQuestionIdIndex = list.indexOf(markUserQuestion.getQuestionId());
+            int oldQuestionIdIndex = list.indexOf(markUserPaper.getMarkedQuestionId());
+            if (currentQuestionIdIndex < oldQuestionIdIndex) {
+                markUserPaper.setMarkedQuestionId(markUserQuestion.getQuestionId());
+                markUserPaperService.updateById(markUserPaper);
+            }
+        }
+    }
+
 }

+ 2 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkSyncServiceImpl.java

@@ -7,6 +7,7 @@ import com.qmth.teachcloud.mark.enums.LockType;
 import com.qmth.teachcloud.mark.lock.LockService;
 import com.qmth.teachcloud.mark.service.MarkService;
 import com.qmth.teachcloud.mark.service.MarkSyncService;
+import com.qmth.teachcloud.mark.service.MarkUserPaperService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -36,6 +37,7 @@ public class MarkSyncServiceImpl implements MarkSyncService {
                 lockService.waitlock(LockType.MARK_USER_QUESTION, markUserQuestion.getId());
                 lockService.watch(LockType.QUESTION, markUserQuestion.getQuestionId());
                 markService.resetMarker(markUserQuestion);
+                markService.resetMarkedQuestionId(markUserQuestion);
             }
         } catch (Exception e) {
             log.error("reset marker error", e);

+ 11 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserPaperServiceImpl.java

@@ -48,14 +48,22 @@ public class MarkUserPaperServiceImpl extends ServiceImpl<MarkUserPaperMapper, M
             markUserPaper = new MarkUserPaper(examId, paperNumber, userId);
             markUserPaper.setMode(mode);
             markUserPaper.setQuestionModel(questionModel);
-            markUserPaper.setMarkedQuestionId(markedQuestionId);
+            // 单题阅,记录当前第几题
+            if (QuestionModel.SINGLE.equals(questionModel)) {
+                markUserPaper.setMarkedQuestionId(markedQuestionId);
+            }
         } else {
             markUserPaper.setMode(mode);
             if (questionModel != null) {
                 markUserPaper.setQuestionModel(questionModel);
             }
-            if (markedQuestionId != null) {
-                markUserPaper.setMarkedQuestionId(markedQuestionId);
+            // 单题阅,记录当前第几题
+            if (QuestionModel.SINGLE.equals(questionModel)) {
+                if (markedQuestionId != null) {
+                    markUserPaper.setMarkedQuestionId(markedQuestionId);
+                }
+            } else {
+                markUserPaper.setMarkedQuestionId(null);
             }
         }
         this.saveOrUpdate(markUserPaper);