Browse Source

客户端bug修改

xiaof 4 năm trước cách đây
mục cha
commit
db4fc24e8a

+ 7 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ClientStatus.java

@@ -31,11 +31,11 @@ public class ClientStatus extends BaseEntity implements Serializable {
     @TableField("machine_code")
     private String machineCode;
     /**
-     * 命题任务ID
+     * 考场ID
      */
     @JsonSerialize(using = ToStringSerializer.class)
-    @TableField("exam_task_id")
-    private Long examTaskId;
+    @TableField("exam_detail_id")
+    private Long examDetailId;
 
     /**
      * 命题任务ID
@@ -100,12 +100,12 @@ public class ClientStatus extends BaseEntity implements Serializable {
         this.machineCode = machineCode;
     }
 
-    public Long getExamTaskId() {
-        return examTaskId;
+    public Long getExamDetailId() {
+        return examDetailId;
     }
 
-    public void setExamTaskId(Long examTaskId) {
-        this.examTaskId = examTaskId;
+    public void setExamDetailId(Long examDetailId) {
+        this.examDetailId = examDetailId;
     }
 
     public Long getPrintPlanId() {

+ 4 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java

@@ -348,18 +348,21 @@ public class ClientServiceImpl implements ClientService {
 
     @Override
     public Boolean updateDownload(Long examDetailId, String machineCode, Boolean isDownload) {
+        ExamDetail examDetail = examDetailService.getById(examDetailId);
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         QueryWrapper<ExamDetailCourse> examDetailCourseQueryWrapper = new QueryWrapper<>();
         examDetailCourseQueryWrapper.lambda().eq(ExamDetailCourse::getSchoolId, schoolId).eq(ExamDetailCourse::getExamDetailId, examDetailId);
         List<ExamDetailCourse> examDetailCourses = examDetailCourseService.list(examDetailCourseQueryWrapper);
         for (ExamDetailCourse examDetailCours : examDetailCourses) {
             QueryWrapper<ClientStatus> clientStatusQueryWrapper = new QueryWrapper<>();
-            clientStatusQueryWrapper.lambda().eq(ClientStatus::getSchoolId, schoolId).eq(ClientStatus::getCourseCode, examDetailCours.getCourseCode()).eq(ClientStatus::getPaperNumber, examDetailCours.getPaperNumber()).eq(ClientStatus::getMachineCode, machineCode);
+            clientStatusQueryWrapper.lambda().eq(ClientStatus::getSchoolId, schoolId).eq(ClientStatus::getExamDetailId, examDetailId).eq(ClientStatus::getPrintPlanId, examDetail.getPrintPlanId()).eq(ClientStatus::getCourseCode, examDetailCours.getCourseCode()).eq(ClientStatus::getPaperNumber, examDetailCours.getPaperNumber()).eq(ClientStatus::getMachineCode, machineCode);
             ClientStatus clientStatus = clientStatusService.getOne(clientStatusQueryWrapper);
             if (clientStatus == null) {
                 clientStatus = new ClientStatus();
                 clientStatus.setId(SystemConstant.getDbUuid());
                 clientStatus.setSchoolId(schoolId);
+                clientStatus.setExamDetailId(examDetailId);
+                clientStatus.setPrintPlanId(examDetail.getPrintPlanId());
                 clientStatus.setMachineCode(machineCode);
                 clientStatus.setCourseCode(examDetailCours.getCourseCode());
                 clientStatus.setCourseName(examDetailCours.getCourseName());

+ 38 - 25
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientStatusServiceImpl.java

@@ -3,48 +3,61 @@ package com.qmth.distributed.print.business.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.entity.ClientStatus;
+import com.qmth.distributed.print.business.entity.ExamDetailCourse;
 import com.qmth.distributed.print.business.mapper.ClientStatusMapper;
 import com.qmth.distributed.print.business.service.ClientStatusService;
+import com.qmth.distributed.print.business.service.ExamDetailCourseService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * @Date: 2021/4/19.
  */
 @Service
 public class ClientStatusServiceImpl extends ServiceImpl<ClientStatusMapper, ClientStatus> implements ClientStatusService {
 
+    @Autowired
+    private ExamDetailCourseService examDetailCourseService;
+
     @Override
     public Boolean tagPass(Long schoolId, Long printPlanId, String courseCode, String courseName, String paperNumber, String machineCode, Boolean isPass, Long userId) {
-        QueryWrapper<ClientStatus> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(ClientStatus::getSchoolId, schoolId).eq(ClientStatus::getPrintPlanId, printPlanId).eq(ClientStatus::getCourseCode, courseCode).eq(ClientStatus::getPaperNumber, paperNumber).eq(ClientStatus::getMachineCode, machineCode);
-        ClientStatus clientStatus = this.getOne(queryWrapper);
-        if(clientStatus != null){
-            clientStatus.setPass(isPass);
-            clientStatus.setUpdateId(userId);
-            clientStatus.setUpdateTime(System.currentTimeMillis());
-            // 合格,更新打印时间
-            if(isPass){
+        List<ExamDetailCourse> examDetailCourses = examDetailCourseService.listByPrintPlanIdAndCourseCodeAndPaperNumber(schoolId, printPlanId, courseCode, paperNumber);
+        for (ExamDetailCourse examDetailCours : examDetailCourses) {
+            QueryWrapper<ClientStatus> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(ClientStatus::getSchoolId, schoolId).eq(ClientStatus::getExamDetailId, examDetailCours.getExamDetailId()).eq(ClientStatus::getPrintPlanId, printPlanId).eq(ClientStatus::getCourseCode, courseCode).eq(ClientStatus::getPaperNumber, paperNumber).eq(ClientStatus::getMachineCode, machineCode);
+            ClientStatus clientStatus = this.getOne(queryWrapper);
+            if(clientStatus != null){
+                clientStatus.setPass(isPass);
+                clientStatus.setUpdateId(userId);
+                clientStatus.setUpdateTime(System.currentTimeMillis());
+                // 合格,更新打印时间
+                if(isPass){
+                    clientStatus.setTryTime(System.currentTimeMillis());
+                }
+                this.updateById(clientStatus);
+            } else {
+                clientStatus = new ClientStatus();
+                clientStatus.setId(SystemConstant.getDbUuid());
+                clientStatus.setSchoolId(schoolId);
+                clientStatus.setExamDetailId(examDetailCours.getExamDetailId());
+                clientStatus.setPrintPlanId(printPlanId);
+                clientStatus.setMachineCode(machineCode);
+                clientStatus.setCourseCode(courseCode);
+                clientStatus.setCourseName(courseName);
+                clientStatus.setPaperNumber(paperNumber);
+                clientStatus.setTry(true);
                 clientStatus.setTryTime(System.currentTimeMillis());
+                clientStatus.setPass(isPass);
+                clientStatus.setDownload(false);
+                clientStatus.setCreateId(userId);
+                clientStatus.setCreateTime(System.currentTimeMillis());
+                this.save(clientStatus);
             }
-            return this.updateById(clientStatus);
-        } else {
-            clientStatus = new ClientStatus();
-            clientStatus.setId(SystemConstant.getDbUuid());
-            clientStatus.setSchoolId(schoolId);
-            clientStatus.setPrintPlanId(printPlanId);
-            clientStatus.setMachineCode(machineCode);
-            clientStatus.setCourseCode(courseCode);
-            clientStatus.setCourseName(courseName);
-            clientStatus.setPaperNumber(paperNumber);
-            clientStatus.setTry(true);
-            clientStatus.setTryTime(System.currentTimeMillis());
-            clientStatus.setPass(isPass);
-            clientStatus.setCreateId(userId);
-            clientStatus.setCreateTime(System.currentTimeMillis());
-            return this.save(clientStatus);
         }
+        return true;
     }
 }

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

@@ -139,8 +139,8 @@
             exam_detail b ON a.id = b.print_plan_id
                 JOIN
             (SELECT
-                c.print_plan_id,
-                exam_detail_id,
+                    b.exam_detail_id,
+                    b.print_plan_id,
                     GROUP_CONCAT(CONCAT(a.course_name, '(', a.course_code, ')')) courseNameCode,
                     GROUP_CONCAT(a.paper_number) paperNumber,
                     GROUP_CONCAT(IFNULL(a.paper_pages_a3, 0) + IFNULL(a.card_pages_a3, 0)) singlePagesA3,
@@ -158,13 +158,12 @@
                     END) isPass
             FROM
                 exam_detail_course a
-                LEFt JOIN exam_detail c on a.exam_detail_id = c.id
-                LEFT JOIN exam_print_plan d on c.print_plan_id = d.id
             LEFT JOIN client_status b ON a.school_id = b.school_id
+                AND a.exam_detail_id = b.exam_detail_id
                 AND a.course_code = b.course_code
                 AND a.paper_number = b.paper_number
                 AND b.machine_code = #{machineCode}
-            GROUP BY b.print_plan_id, exam_detail_id) c ON a.id = c.print_plan_id and b.id = c.exam_detail_id
+            GROUP BY b.exam_detail_id, b.print_plan_id) c ON a.id = c.print_plan_id and b.id = c.exam_detail_id
                 LEFT JOIN
             sys_user e ON b.print_user = e.login_name
                 LEFT JOIN
@@ -232,7 +231,8 @@
             exam_detail b ON a.id = b.print_plan_id
         JOIN
             (SELECT
-                exam_detail_id,
+                b.exam_detail_id,
+                b.print_plan_id,
                 GROUP_CONCAT(CONCAT(a.course_name, '(', a.course_code, ')')) courseNameCode,
                 GROUP_CONCAT(a.paper_number) paperNumber,
                 GROUP_CONCAT(IFNULL(a.paper_pages_a3, 0) + IFNULL(a.card_pages_a3, 0)) singlePagesA3,
@@ -251,10 +251,11 @@
         FROM
             exam_detail_course a
                 LEFT JOIN client_status b ON a.school_id = b.school_id
+                AND a.exam_detail_id = b.exam_detail_id
                 AND a.course_code = b.course_code
                 AND a.paper_number = b.paper_number
                 AND b.machine_code = #{machineCode}
-        GROUP BY exam_detail_id) c ON b.id = c.exam_detail_id
+        GROUP BY b.exam_detail_id, b.print_plan_id) c ON a.id = c.print_plan_id and b.id = c.exam_detail_id
             LEFT JOIN
         sys_user e ON b.print_user = e.login_name
             LEFT JOIN

+ 2 - 0
distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml

@@ -469,6 +469,8 @@
                 AND d.paper_number = c.paper_number
                 LEFT JOIN
             client_status e ON e.school_id = d.school_id
+                AND b.id = e.exam_detail_id
+                AND a.id = e.print_plan_id
                 AND e.course_code = d.course_code
                 AND e.paper_number = d.paper_number
                 and e.machine_code = #{machineCode}