Browse Source

修改未登陆下归还挂锁的查询

车车 2 months ago
parent
commit
0711d7a0f4

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

@@ -3,6 +3,7 @@ package com.ktg.iscs.service.impl;
 import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ktg.common.core.redis.RedisCache;
+import com.ktg.common.query.MPJLambdaWrapperX;
 import com.ktg.common.utils.SecurityUtils;
 import com.ktg.common.utils.StringUtils;
 import com.ktg.common.utils.bean.BeanUtils;
@@ -314,7 +315,7 @@ public class HardwareApiServiceImpl implements HardwareApiService {
             Assert.notNull(lock, "该nfc无对应的挂锁信息!");
             // 1.1检查这把锁是不是已经在该作业票中使用
             List<IsJobTicketLock> jobTicketLockList = iIsJobTicketLockService.list(Wrappers.<IsJobTicketLock>lambdaQuery()
-                    .eq(IsJobTicketLock::getTicketId, dto.getLockId())
+                    .eq(IsJobTicketLock::getTicketId, dto.getTicketId())
                     .eq(IsJobTicketLock::getLockId, lock.getLockId()));
             Assert.isFalse(!jobTicketLockList.isEmpty(), lock.getLockName() + "已被取出!");
             // 1.2通过序列号查询柜子信息
@@ -337,7 +338,7 @@ public class HardwareApiServiceImpl implements HardwareApiService {
 
         List<IsJobTicketLock> lockList = iIsJobTicketLockService.selectByTicketId(list.get(0).getTicketId());
         // 已取锁数量
-        int takeCount = lockList.stream().filter(data -> data.getLockId() != null).collect(Collectors.toList()).size();
+        int takeCount = (int) lockList.stream().filter(data -> data.getLockId() != null).count();
         int status = takeCount == lockList.size() ? 2 : 1;
 
         JobTicketUpdateProgressReqVO reqVO = new JobTicketUpdateProgressReqVO();
@@ -421,9 +422,15 @@ public class HardwareApiServiceImpl implements HardwareApiService {
         } else {
             // 2.2不登陆状态下归还
             // 查一下哪个作业票用了这个挂锁,而且还没有完成
-            List<IsJobTicketLock> jobTicketLockList = iIsJobTicketLockService.list(Wrappers.<IsJobTicketLock>lambdaQuery()
+            /*List<IsJobTicketLock> jobTicketLockList = iIsJobTicketLockService.list(Wrappers.<IsJobTicketLock>lambdaQuery()
+                    .eq(IsJobTicketLock::getLockId, lock.getLockId())
+                    .ne(IsJobTicketLock::getLockStatus, LockStatusEnum.RETURN_LOCK.status));*/
+            List<IsJobTicketLock> jobTicketLockList = iIsJobTicketLockService.list(new MPJLambdaWrapperX<IsJobTicketLock>()
                     .eq(IsJobTicketLock::getLockId, lock.getLockId())
-                    .ne(IsJobTicketLock::getLockStatus, LockStatusEnum.RETURN_LOCK.status));
+                    .ne(IsJobTicketLock::getLockStatus, LockStatusEnum.RETURN_LOCK.status)
+                    .leftJoin(IsJobTicket.class, IsJobTicket::getTicketId, IsJobTicketLock::getTicketId)
+                    .ne(IsJobTicket::getTicketStatus, "5")
+                    .ne(IsJobTicket::getTicketStatus, "6"));
             if (jobTicketLockList.isEmpty()) {
                 log.error("当前挂锁未找到关联的作业票, nfc: {}, name : {}", dto.getLockNfc(), lock.getLockName());
                 return null;