Browse Source

PDA移库-起始库位需要为备货库存才可以转移到虚拟区

k 1 year ago
parent
commit
027c0d1b9b

+ 16 - 0
warewms-ams/src/main/java/com/ruoyi/ams/inv/service/impl/InvLotLocIdServiceImpl.java

@@ -287,7 +287,23 @@ public class InvLotLocIdServiceImpl implements IInvLotLocIdService {
 
         // 起始和目标库位
         baseLocationFrom = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationFrom, warehouseId);
+        if (baseLocationFrom.getZoneId().equals(Constant.ZONE_TYPE.ZONE_VIRTUAL.getValue())) {
+            return AjaxResult.error("起始库位不可为虚拟库位!");
+        }
         baseLocationTo = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(locationTo, warehouseId);
+        if (baseLocationTo.getZoneId().equals(Constant.ZONE_TYPE.ZONE_VIRTUAL.getValue())) {
+            // 起始库位库存需要为备货库存才可以转移到虚拟库位
+            boolean con = false;
+            List<InvLotLocIdLotattVO> invLotLocIdLotattVOList = invLotLocIdService.selectInvLocIdLotattByLocationId(baseLocationFrom.getId());
+            for (InvLotLocIdLotattVO invLotLocIdLotattVO : invLotLocIdLotattVOList) {
+                if (StringUtils.isNotEmpty(invLotLocIdLotattVO.getLotatt14())) {
+                    con = true;
+                }
+            }
+            if (!con) {
+                return AjaxResult.error("起始库位需要为备货库存才可以转移到虚拟区!");
+            }
+        }
 
         // 验证起始库位
         Boolean isIdleFrom = baseLocationInfoService.verifyLocationIsIdle(locationFrom, warehouseId);