Pārlūkot izejas kodu

fix: 优化工装呼叫增加库位锁定拦截

wang.sq@aliyun.com 3 mēneši atpakaļ
vecāks
revīzija
ecffbd96c7

+ 8 - 2
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/impl/RobotNodeServiceImpl2.java

@@ -1061,11 +1061,17 @@ public class RobotNodeServiceImpl2 implements NodeOperationService {
 
         // 判断夹具是否有可用的,查询线边库位信息中是否还有夹具,因为是通过匹配相同类型的托盘查询的,所以没有去除带物料的托盘
         List<StockInfo> allStockInfos = stockInfoMapper.selectList(Wraps.<StockInfo>lbQ().in(StockInfo::getGoodsId,trayAndMToolClamplist).in(StockInfo::getStorgeId,startProductionresourcePositionIds).eq(StockInfo::getLockStatus, "1").orderByAsc(StockInfo::getGoodsType));
-
         List<Long> collect1 = allStockInfos.stream().map(StockInfo::getStorgeId).distinct().collect(toList());
 
+        // 根据库位id查询有多少没有锁的库位信息
+        List<Storge> list = storgeService.list(Wraps.<Storge>lbQ().in(Storge::getId, collect1).eq(Storge::getLockStatus,"1"));
+        if(list.isEmpty()){
+            return returnList;
+        }
+        List<Long> list1 = list.stream().map(Storge::getId).distinct().collect(toList());
+
         // 根据库位ID 查询这个库位下最终有多少条数据,
-        List<StockInfo> newAllStockInfos = stockInfoMapper.selectList(Wraps.<StockInfo>lbQ().in(StockInfo::getStorgeId,collect1).in(StockInfo::getStorgeId,startProductionresourcePositionIds).eq(StockInfo::getLockStatus, "1").orderByAsc(StockInfo::getGoodsType));
+        List<StockInfo> newAllStockInfos = stockInfoMapper.selectList(Wraps.<StockInfo>lbQ().in(StockInfo::getStorgeId,list1).in(StockInfo::getStorgeId,startProductionresourcePositionIds).eq(StockInfo::getLockStatus, "1").orderByAsc(StockInfo::getGoodsType));
 
         // 根据集合数据,比对根据零件配置的工装夹具数量是不相等
         Map<Long, List<StockInfo>> collect = newAllStockInfos.stream().collect(groupingBy(StockInfo::getStorgeId));