Bladeren bron

上锁阶段,取钥匙时更新进度状态

车车 10 maanden geleden
bovenliggende
commit
41a89ad842
1 gewijzigde bestanden met toevoegingen van 47 en 4 verwijderingen
  1. 47 4
      ktg-iscs/src/main/java/com/ktg/iscs/service/impl/HardwareApiServiceImpl.java

+ 47 - 4
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/HardwareApiServiceImpl.java

@@ -6,10 +6,7 @@ import com.ktg.common.utils.SecurityUtils;
 import com.ktg.common.utils.bean.BeanUtils;
 import com.ktg.iscs.domain.*;
 import com.ktg.iscs.domain.dto.hardwareApi.*;
-import com.ktg.iscs.domain.enums.KeyStatusEnum;
-import com.ktg.iscs.domain.enums.LockStatusEnum;
-import com.ktg.iscs.domain.enums.LocksetStatusEnum;
-import com.ktg.iscs.domain.enums.PointStatusEnum;
+import com.ktg.iscs.domain.enums.*;
 import com.ktg.iscs.domain.vo.hardwareApi.*;
 import com.ktg.iscs.domain.vo.ticket.JobTicketUpdateProgressReqVO;
 import com.ktg.iscs.service.*;
@@ -108,6 +105,52 @@ public class HardwareApiServiceImpl implements HardwareApiService {
         return true;
     }
 
+    /**
+     * 上锁阶段,取钥匙时更新状态
+     * @param ticketId
+     */
+    private void updateFirstProgress(Long ticketId) {
+        // 上锁阶段取钥匙,更新is_job_ticket_user和is_job_ticket
+        // 1.新更人员状态
+        iIsJobTicketUserService.update(Wrappers.<IsJobTicketUser>lambdaUpdate()
+                .eq(IsJobTicketUser::getTicketId, ticketId)
+                .eq(IsJobTicketUser::getUserRole, JobUserEnum.JTLOCKER.key)
+                .set(IsJobTicketUser::getJobStatus, JobStatusEnum.ACQUIRE_KEY.status));
+        // 2.获取设备取出状态
+        boolean b = checkTakeStatus(ticketId);
+        // 3.根据设备去除状态更新is_job_ticket
+        if (b) {
+            isJobTicketService.update(Wrappers.<IsJobTicket>lambdaUpdate()
+                    .eq(IsJobTicket::getTicketId, ticketId)
+                    .set(IsJobTicket::getTicketStatus, TicketStatusEnum.READY_TO_LOCK.status));
+        }
+    }
+
+    /**
+     * 检查上锁前的设备是否全部取出完毕
+     * @param ticketId
+     * @return
+     */
+    private boolean checkTakeStatus(Long ticketId) {
+        // 1.检查钥匙是否取出
+        int keyCount = (int)iIsJobTicketKeyService.count(Wrappers.<IsJobTicketKey>lambdaQuery()
+                .eq(IsJobTicketKey::getTicketId, ticketId)
+                .eq(IsJobTicketKey::getKeyStatus, KeyStatusEnum.WAIT_TAKE.status)
+                .eq(IsJobTicketKey::getTicketType, 0));
+        // 2.检查挂锁是否全部取出
+        int lockCount = (int)iIsJobTicketLockService.count(Wrappers.<IsJobTicketLock>lambdaQuery()
+                .eq(IsJobTicketLock::getTicketId, ticketId)
+                .eq(IsJobTicketLock::getLockStatus, LockStatusEnum.WAIT_TAKE.status));
+        // 3.检查辅件是否全部取出
+        int locksetCount = (int)iIsJobTicketLocksetService.count(Wrappers.<IsJobTicketLockset>lambdaQuery()
+                .eq(IsJobTicketLockset::getJobTicketId, ticketId)
+                .eq(IsJobTicketLockset::getLocksetStatus, LocksetStatusEnum.WAIT_TAKE.status));
+        if (keyCount == 0 && lockCount == 0 && locksetCount == 0) {
+            return true;
+        }
+        return false;
+    }
+
     /**
      * 归还钥匙
      * @param dto