ソースを参照

完善更新作业票进度判断;补上缺失的数据库更新

Frankensteinly 11 ヶ月 前
コミット
c1b8f44a27

+ 4 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/ticket/JobTicketUpdateProgressReqVO.java

@@ -12,4 +12,8 @@ public class JobTicketUpdateProgressReqVO {
     @ApiModelProperty(value = "工作票编号")
     @NotNull(message = "工作票编号不能为空")
     public Long ticketId;
+
+    @ApiModelProperty(value = "设备拿取情况,1:部分拿锁 2:全部拿锁 3:拿钥匙")
+    @NotNull(message = "设备拿取情况不能为空")
+    public Integer equipStatus;
 }

+ 23 - 13
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsJobTicketServiceImpl.java

@@ -282,8 +282,9 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
             log.error("Job ticket user not included, ticketId: {}, userId : {}", reqVO.ticketId, reqVO.userId);
             throw exception(JOB_TICKET_USER_NOT_INCLUDED);
         } else {
-            handleTicketStatus(isJobTicket, matchList, reqVO.ticketId, reqVO.userId);
+            handleTicketStatus(isJobTicket, jobUserList, reqVO);
         }
+        isJobTicketMapper.updateIsJobTicket(isJobTicket);
         return true;
     }
 
@@ -292,23 +293,23 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
      * @param isJobTicket 工作票
      * @param jobUserList 在工作票中的所有人
      */
-    private void handleTicketStatus(IsJobTicket isJobTicket, List<IsJobTicketUser> jobUserList, Long ticketId, Long userId) {
-        List<IsJobTicketUser> matchUserList = jobUserList.stream().filter(jobUser -> Objects.equals(jobUser.getUserId(), userId)).collect(Collectors.toList());
+    private void handleTicketStatus(IsJobTicket isJobTicket, List<IsJobTicketUser> jobUserList, JobTicketUpdateProgressReqVO reqVO) {
+        List<IsJobTicketUser> matchUserList = jobUserList.stream().filter(jobUser -> Objects.equals(jobUser.getUserId(), reqVO.userId)).collect(Collectors.toList());
         if (Objects.equals(isJobTicket.getTicketStatus(), FINISHED.status)) {
-            log.warn("Job ticket status is finished, cannot update progress, ticketId: {}, userId : {}", ticketId, userId);
+            log.warn("Job ticket status is finished, cannot update progress, ticketId: {}, userId : {}", reqVO.ticketId, reqVO.userId);
             throw exception(JOB_TICKET_STATUS_FINISHED);
         }
         if (matchUserList.stream().anyMatch(user -> Objects.equals(user.getUserRole(), JTLOCKER.key))) {
             if (Objects.equals(isJobTicket.getTicketStatus(), NOT_STARTED.status)
                     || Objects.equals(isJobTicket.getTicketStatus(), READY_TO_LOCK.status)
                     || Objects.equals(isJobTicket.getTicketStatus(), READY_TO_UNLOCK.status)) {
-                handleJobStatus(isJobTicket, matchUserList, userId, true);
+                handleJobStatus(isJobTicket, matchUserList, reqVO.userId, true, reqVO.equipStatus);
             } else if (Objects.equals(isJobTicket.getTicketStatus(), PROCESSING.status)) {
                 // 同时为上锁人、共锁人
                 if (matchUserList.stream().anyMatch(user -> Objects.equals(user.getUserRole(), JTCOLOCKER.key))) {
-                    handleJobStatus(isJobTicket, jobUserList, userId, false);
+                    handleJobStatus(isJobTicket, jobUserList, reqVO.userId, false, reqVO.equipStatus);
                 } else {
-                    log.warn("Job ticket status is processing, cannot update progress, ticketId: {}, userId : {}", ticketId, userId);
+                    log.warn("Job ticket status is processing, cannot update progress, ticketId: {}, userId : {}", reqVO.ticketId, reqVO.userId);
                     throw exception(JOB_TICKET_STATUS_NOT_PERMITTED);
                 }
             }
@@ -316,10 +317,10 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
             if (Objects.equals(isJobTicket.getTicketStatus(), NOT_STARTED.status)
                     || Objects.equals(isJobTicket.getTicketStatus(), READY_TO_LOCK.status)
                     || Objects.equals(isJobTicket.getTicketStatus(), READY_TO_UNLOCK.status)) {
-                log.warn("Job ticket status is processing, cannot update progress, ticketId: {}, userId : {}", ticketId, userId);
+                log.warn("Job ticket status is processing, cannot update progress, ticketId: {}, userId : {}", reqVO.ticketId, reqVO.userId);
                 throw exception(JOB_TICKET_STATUS_NOT_PERMITTED);
             } else if (Objects.equals(isJobTicket.getTicketStatus(), PROCESSING.status)) {
-                handleJobStatus(isJobTicket, jobUserList, userId, false);
+                handleJobStatus(isJobTicket, jobUserList, reqVO.userId, false, reqVO.equipStatus);
             }
         }
     }
@@ -331,7 +332,7 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
      * @param jobUserList 在工作票中的所有人
      * @param isLocker true:上锁人 false:共锁人
      */
-    private void handleJobStatus(IsJobTicket isJobTicket, List<IsJobTicketUser> jobUserList, Long userId, boolean isLocker) {
+    private void handleJobStatus(IsJobTicket isJobTicket, List<IsJobTicketUser> jobUserList, Long userId, boolean isLocker, int equipStatus) {
         List<IsJobTicketUser> matchUserList = jobUserList.stream()
                 .filter(jobUser -> Objects.equals(jobUser.getUserId(), userId)).collect(Collectors.toList());
 
@@ -339,9 +340,18 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
             matchUserList.stream().filter(user -> Objects.equals(user.getUserRole(), JTLOCKER.key)).findFirst().ifPresent(jobUser -> {
                 if (Objects.equals(jobUser.getJobStatus(), JobStatusEnum.NOT_STARTED.status)
                         || Objects.equals(jobUser.getJobStatus(), JobStatusEnum.ACQUIRE_LOCK.status)
-                        || Objects.equals(jobUser.getJobStatus(), JobStatusEnum.ACQUIRE_KEY.status)
-                        || Objects.equals(jobUser.getJobStatus(), JobStatusEnum.READY_TO_LOCK.status)) {
-                    jobUser.setJobStatus(jobUser.getJobStatus() + 1);
+                        || Objects.equals(jobUser.getJobStatus(), JobStatusEnum.ACQUIRE_KEY.status)) {
+                    // 部分拿锁
+                    if (equipStatus == 1) {
+                        jobUser.setJobStatus(JobStatusEnum.ACQUIRE_LOCK.status);
+                    } else if (equipStatus == 2) {  // 全部拿锁
+                        jobUser.setJobStatus(JobStatusEnum.ACQUIRE_KEY.status);
+                    } else {    // 已拿钥匙
+                        jobUser.setJobStatus(JobStatusEnum.READY_TO_LOCK.status);
+                    }
+                } else if (Objects.equals(jobUser.getJobStatus(), JobStatusEnum.READY_TO_LOCK.status)) {
+                    jobUser.setJobStatus(JobStatusEnum.READY_TO_UNLOCK.status);
+                    isJobTicket.setTicketStatus(PROCESSING.status);
                 } else if (Objects.equals(jobUser.getJobStatus(), JobStatusEnum.READY_TO_UNLOCK.status)) {
                     // 检查所有人
                     if (checkJobStatus(isJobTicket, jobUserList)) {