Browse Source

对接修改

车车 11 tháng trước cách đây
mục cha
commit
5662b6dde8

+ 3 - 2
ktg-iscs/src/main/java/com/ktg/iscs/domain/enums/TicketStatusEnum.java

@@ -8,7 +8,8 @@ public enum TicketStatusEnum {
     READY_TO_LOCK("1", "待上锁"),
     PROCESSING("2", "进行中"),
     READY_TO_UNLOCK("3", "待解锁"),
-    FINISHED("4", "已结束");
+    UNLOCKED("4", "已解锁"),
+    FINISHED("5", "已结束");
 
     /**
      * 状态编号
@@ -19,4 +20,4 @@ public enum TicketStatusEnum {
      * 描述
      */
     public final String desc;
-}
+}

+ 7 - 6
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/HardwareApiServiceImpl.java

@@ -271,12 +271,13 @@ public class HardwareApiServiceImpl implements HardwareApiService {
                 // 出现了多条对应
                 log.error("当前挂锁找到多条关联的作业票, nfc: {}, name : {}", dto.getLockNfc(), lock.getLockName());
             }
+            JobTicketUpdateProgressReqVO reqVO = new JobTicketUpdateProgressReqVO();
+            reqVO.userId = SecurityUtils.getUserId();
+            reqVO.ticketId = jobTicketLockList.get(0).getTicketId();
+            reqVO.equipStatus = 3;
+            isJobTicketService.updateTicketProgress(reqVO);
         }
-        JobTicketUpdateProgressReqVO reqVO = new JobTicketUpdateProgressReqVO();
-        reqVO.userId = SecurityUtils.getUserId();
-        reqVO.ticketId = dto.getTicketId();
-        reqVO.equipStatus = 3;
-        isJobTicketService.updateTicketProgress(reqVO);
+
         return true;
     }
 
@@ -337,7 +338,7 @@ public class HardwareApiServiceImpl implements HardwareApiService {
             // 1..通过nfc查询钥匙信息
             IsKey key = isKeyService.getOne(Wrappers.<IsKey>lambdaQuery()
                     .eq(IsKey::getKeyNfc, dto.getKeyNfc()));
-            Assert.notNull(lock, "该nfc无对应的挂锁信息");
+            Assert.notNull(lock, "该nfc无对应的钥匙信息");
             // 2.通过nfc查询隔离点信息
             IsIsolationPoint point = iIsIsolationPointService.getOne(Wrappers.<IsIsolationPoint>lambdaQuery()
                     .eq(IsIsolationPoint::getPointNfc, dto.getPointNfc()));

+ 50 - 4
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsJobTicketServiceImpl.java

@@ -11,8 +11,7 @@ import com.ktg.iscs.domain.*;
 import com.ktg.iscs.domain.dto.ticket.AddJobTicketDTO;
 import com.ktg.iscs.domain.dto.ticket.AddTicketUserDTO;
 import com.ktg.iscs.domain.dto.ticket.PageTicketDTO;
-import com.ktg.iscs.domain.enums.JobStatusEnum;
-import com.ktg.iscs.domain.enums.TicketStatusEnum;
+import com.ktg.iscs.domain.enums.*;
 import com.ktg.iscs.domain.vo.points.PointDetailVO;
 import com.ktg.iscs.domain.vo.ticket.*;
 import com.ktg.iscs.domain.vo.ticketKey.IsJobTicketKeyVO;
@@ -450,13 +449,27 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
                     // 检查所有人
                     if (checkJobStatus(isJobTicket, jobUserList)) {
                         jobUser.setJobStatus(JobStatusEnum.UNLOCKED.status);
+                        // 检查所有设备归还,钥匙归还,锁没还完:已解锁(ticket_status),都还:已完成(ticket_status)
+                        if (checkToolReturn(isJobTicket.getTicketId()) == 1) {
+                            isJobTicket.setTicketStatus(UNLOCKED.status);
+                        } else if (checkToolReturn(isJobTicket.getTicketId()) == 2) {
+                            isJobTicket.setTicketStatus(FINISHED.status);
+                        }
                     } else {
                         throw exception(JOB_TICKET_USER_WAIT_COLOCKERS);
                     }
                 } else if (Objects.equals(jobUser.getJobStatus(), JobStatusEnum.UNLOCKED.status)) {
                     // 任务已完成,更新
-                    jobUser.setJobStatus(JobStatusEnum.UNLOCKED.status);
-                    isJobTicket.setTicketStatus(FINISHED.status);
+//                    jobUser.setJobStatus(JobStatusEnum.UNLOCKED.status);
+//                    if (checkToolReturn(isJobTicket.getTicketId())) {
+//                        isJobTicket.setTicketStatus(FINISHED.status);
+//                    }
+                    // 检查所有设备归还,钥匙归还,锁没还完:已解锁(ticket_status),都还:已完成(ticket_status)
+                    if (checkToolReturn(isJobTicket.getTicketId()) == 1) {
+                        isJobTicket.setTicketStatus(UNLOCKED.status);
+                    } else if (checkToolReturn(isJobTicket.getTicketId()) == 2) {
+                        isJobTicket.setTicketStatus(FINISHED.status);
+                    }
                 }
             });
         } else {
@@ -480,6 +493,39 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
         }
     }
 
+    /**
+     * 根据作业票检查锁、辅件、钥匙是否都已经归还了
+     *
+     * @return 1:挂锁全还,其他有未还  2:全还 3:其他
+     */
+    private int checkToolReturn(Long ticketId) {
+        // 1.1检查钥匙
+        List<IsJobTicketKey> ticketKeyList = iIsJobTicketKeyService.list(Wrappers.<IsJobTicketKey>lambdaQuery()
+                .eq(IsJobTicketKey::getTicketId, ticketId)
+                .ne(IsJobTicketKey::getKeyStatus, KeyStatusEnum.RETURNED.status));
+
+        // 1.2检查挂锁是否都已经归还
+        List<IsJobTicketLock> jobTicketLockList = iIsJobTicketLockService.list(Wrappers.<IsJobTicketLock>lambdaQuery()
+                .eq(IsJobTicketLock::getTicketId, ticketId)
+                .ne(IsJobTicketLock::getLockStatus, LockStatusEnum.RETURN_LOCK.status));
+
+        // 1.3检查辅件是否都已经归还
+        List<IsJobTicketLockset> jobTicketLocksetList = iIsJobTicketLocksetService.list(Wrappers.<IsJobTicketLockset>lambdaQuery()
+                .eq(IsJobTicketLockset::getJobTicketId, ticketId)
+                .ne(IsJobTicketLockset::getLocksetStatus, LocksetStatusEnum.RETURNED.status));
+
+        // 锁全还
+        if (jobTicketLockList.isEmpty()) {
+            if (ticketKeyList.isEmpty() || jobTicketLocksetList.isEmpty()) {
+                return 2;
+            } else {
+                return 1;
+            }
+        } else {
+            return 3;
+        }
+    }
+
     /**
      * 根据关联人作业状态更新工作票状态
      */