xiaof 4 anni fa
parent
commit
cdafb7007a

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

@@ -53,7 +53,7 @@ public interface ExamTaskService extends IService<ExamTask> {
 
     boolean taskReviewSave(ExamTaskReviewLog taskReviewLog) throws IOException;
 
-    boolean taskReviewSaveBatch(ExamTaskReviewLog taskReviewLog);
+    boolean taskReviewSaveBatch(ExamTaskReviewLog taskReviewLog) throws IOException;
 
     IPage<ExamTaskDetailDto> listTaskPaper(String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
 

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

@@ -141,11 +141,18 @@ public class ClientServiceImpl implements ClientService {
     @Transactional
     @Override
     public Map<String, Object> getPrintData(Long examDetailId, String machineCode, Boolean isPrint, String printUser) {
+        if(isPrint && StringUtils.isBlank(printUser)){
+            throw ExceptionResultEnum.ERROR.exception("打印员不能为空");
+        }
+        ExamDetail examDetail = examDetailService.getById(examDetailId);
+        if(StringUtils.isNotBlank(examDetail.getPrintUser()) && !examDetail.getPrintUser().equals(printUser)){
+            throw ExceptionResultEnum.ERROR.exception("该任务已被["+printUser+"]占用");
+        }
+
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         List<Map<String, Object>> examDetailCourses = examDetailCourseService.listByExamDetailId(examDetailId);
         Map<String, Object> finalMap = new HashMap<>();
         // 2.取生成的完整的pdf
-        ExamDetail examDetail = examDetailService.getById(examDetailId);
         if (examDetail.getAttachmentId() == null) {
             throw ExceptionResultEnum.ERROR.exception("考场pdf未生成");
         }
@@ -262,7 +269,7 @@ public class ClientServiceImpl implements ClientService {
         if (isPrint) {
             // 更新exam_detail状态为印刷中
             UpdateWrapper<ExamDetail> examDetailUpdateWrapper = new UpdateWrapper<>();
-            examDetailUpdateWrapper.lambda().set(ExamDetail::getStatus, ExamDetailStatusEnum.PRINTING).eq(ExamDetail::getId, examDetailId);
+            examDetailUpdateWrapper.lambda().set(ExamDetail::getStatus, ExamDetailStatusEnum.PRINTING).set(ExamDetail::getPrintUser, printUser).eq(ExamDetail::getId, examDetailId);
             examDetailService.update(examDetailUpdateWrapper);
 
             // 更新曝光卷型、未曝光卷型

+ 42 - 12
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -657,7 +657,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
     @Transactional
     @Override
-    public boolean taskReviewSaveBatch(ExamTaskReviewLog taskReviewLog) {
+    public boolean taskReviewSaveBatch(ExamTaskReviewLog taskReviewLog) throws IOException {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
 
         ExamStatusEnum statusEnum;
@@ -667,17 +667,47 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             statusEnum = ExamStatusEnum.STAGE;
         }
         for (Long examTaskId : taskReviewLog.getExamTaskIds()) {
-            // 审核日志
-            taskReviewLog.setOperateId(sysUser.getId());
-            taskReviewLog.setOperateTime(System.currentTimeMillis());
-            taskReviewLog.setExamTaskId(examTaskId);
-            taskReviewLog.setId(SystemConstant.getDbUuid());
-            examTaskReviewLogService.save(taskReviewLog);
-
-            // 更新命题任务状态
-            UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
-            updateWrapper.lambda().set(ExamTask::getStatus, statusEnum).set(ExamTask::getReviewStatus, taskReviewLog.getReviewStatus()).eq(ExamTask::getId, taskReviewLog.getExamTaskId());
-            this.update(updateWrapper);
+            // 校验状态,可能被撤回
+            ExamTask examTask = this.getById(taskReviewLog.getExamTaskId());
+            if (!ExamStatusEnum.SUBMIT.equals(examTask.getStatus())) {
+                throw ExceptionResultEnum.ERROR.exception("当前状态不能审核");
+            }
+            ExamTaskPaperLog examTaskPaperLog = examTaskPaperLogService.getByExamTaskIdAndReview(taskReviewLog.getExamTaskId(), false);
+            if (examTaskPaperLog == null) {
+                // 审核日志
+                taskReviewLog.setOperateId(sysUser.getId());
+                taskReviewLog.setOperateTime(System.currentTimeMillis());
+                taskReviewLog.setExamTaskId(examTaskId);
+                taskReviewLog.setId(SystemConstant.getDbUuid());
+                examTaskReviewLogService.save(taskReviewLog);
+
+                // 更新命题任务状态
+                UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
+                if (taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.PASS.name())) {
+                    // 校验是否可以提交打印状态
+                    commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
+                }
+                updateWrapper.lambda().set(ExamTask::getStatus, statusEnum).set(ExamTask::getReviewStatus, taskReviewLog.getReviewStatus()).eq(ExamTask::getId, taskReviewLog.getExamTaskId());
+                this.update(updateWrapper);
+            } else {
+                // 更新记录表状态
+                examTaskPaperLog.setReview(true);
+                examTaskPaperLog.setReviewStatus(taskReviewLog.getReviewStatus());
+                examTaskPaperLog.setUpdateId(sysUser.getId());
+                examTaskPaperLog.setUpdateTime(System.currentTimeMillis());
+                examTaskPaperLogService.updateById(examTaskPaperLog);
+
+                if (taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.PASS.name())) {
+                    // 通过,更新正式表数据
+                    UpdateWrapper<ExamTaskDetail> examTaskDetailUpdateWrapper = new UpdateWrapper<>();
+                    examTaskDetailUpdateWrapper.lambda().set(ExamTaskDetail::getPaperType, examTaskPaperLog.getPaperType())
+                            .set(ExamTaskDetail::getPaperAttachmentIds, examTaskPaperLog.getPaperAttachmentIds())
+                            .set(ExamTaskDetail::getCardId, examTaskPaperLog.getCardId())
+                            .eq(ExamTaskDetail::getExamTaskId, taskReviewLog.getExamTaskId());
+                    examTaskDetailService.update(examTaskDetailUpdateWrapper);
+                    commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
+                }
+            }
         }
         return true;
     }

+ 1 - 3
distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml

@@ -350,7 +350,7 @@
     </select>
     <select id="selectPaperCount" resultType="java.lang.Integer">
         SELECT
-            COUNT(distinct e.paper_type)
+            COUNT(distinct c.paper_number, c.paper_type)
         FROM
             exam_print_plan a
             JOIN
@@ -358,8 +358,6 @@
             JOIN
         exam_detail_course c ON b.id = c.exam_detail_id
             JOIN
-        exam_student e ON c.id = e.exam_detail_course_id
-            JOIN
         sys_user d ON a.create_id = d.id
         <where>
             <if test="schoolId != null and schoolId != ''">

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

@@ -440,7 +440,7 @@
     <select id="listClientExamTaskPage"
             resultType="com.qmth.distributed.print.business.bean.dto.ClientExamTaskDto">
         SELECT
-            a.school_id schoolId,
+        distinct a.school_id schoolId,
             a.id printPlanId,
             a.name printPlanName,
             c.course_code courseCode,
@@ -474,7 +474,6 @@
             sys_user g ON a.create_id = g.id
         <where>
             and a.status = #{printPlanStatus}
-            and b.status = #{examDetailStatus}
             <if test="printPlanId != null and printPlanId != ''">
                 and a.id = #{printPlanId}
             </if>

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

@@ -369,7 +369,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "批量审核")
     @RequestMapping(value = "/review_save_batch", method = RequestMethod.POST)
-    public Result taskReviewSaveBatch(@RequestBody ExamTaskReviewLog taskReviewLog) {
+    public Result taskReviewSaveBatch(@RequestBody ExamTaskReviewLog taskReviewLog) throws IOException {
         boolean isSuccess = examTaskService.taskReviewSaveBatch(taskReviewLog);
         return ResultUtil.ok(isSuccess);
     }

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

@@ -188,9 +188,10 @@ public class SysController {
      * @return
      */
     @ApiOperation(value = "发送验证码")
-    @RequestMapping(value = "/getVerifyCode", method = RequestMethod.POST)
+    @RequestMapping(value = "/get_verify_code", method = RequestMethod.POST)
     public Object getverifyCode(@RequestBody LoginParam loginParam) {
         String loginName = loginParam.getLoginName();
+        String password = loginParam.getPassword();
         QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
         wrapper.lambda().eq(SysUser::getLoginName, loginName);
         SysUser user = sysUserService.getOne(wrapper);
@@ -198,8 +199,7 @@ public class SysController {
         if (Objects.isNull(user)) {
             throw ExceptionResultEnum.ERROR.exception("用户不存在");
         }
-        String password = Md5Utils.toMd5Hex(loginParam.getPassword());
-        if (password.equals(user.getPassword())) {
+        if (!password.equals(user.getPassword())) {
             throw ExceptionResultEnum.ERROR.exception("密码错误");
         }
         String mobileNumber = user.getMobileNumber();
@@ -207,7 +207,7 @@ public class SysController {
             throw ExceptionResultEnum.ERROR.exception("用户未绑定手机号码");
         }
         basicVerifyCodeService.sendVeirfyCode(mobileNumber, user.getId());
-        return ResultUtil.ok(true);
+        return ResultUtil.ok(mobileNumber, "");
     }
 
     @ApiOperation(value = "根据机构代码查询机构信息接口")