|
@@ -138,13 +138,15 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
if (flowConfigHeaderVO.getFlowType().equals("ASN")) {
|
|
|
AgvCallItemDTO agvCall = agvCallDTO.getAgvCallItemDTOList().get(0);
|
|
|
List<BaseLocationInfo> locationFromList = this.convertLocation(paramLocationFrom, agvCallDTO.getWarehouseId(), null);
|
|
|
- List<BaseLocationInfo> locationToList = this.convertLocation(paramLocationTo, agvCallDTO.getWarehouseId(), "shift_no + 0,shift_index");
|
|
|
+ List<BaseLocationInfo> locationToList = this.convertLocation(paramLocationTo, agvCallDTO.getWarehouseId(), "shift_no+ 0,shift_index");
|
|
|
locationFrom = this.zoneLocationAllocation(locationFromList, "locationFrom", "ASN", asnSoStrategy, agvCall, token);
|
|
|
locationTo = this.zoneLocationAllocation(locationToList, "locationTo", "ASN", asnSoStrategy, agvCall, token);
|
|
|
//2.初始化库存
|
|
|
// for (AgvCallItemDTO call : agvCallDTO.getAgvCallItemDTOList()) {
|
|
|
-// invLotLocIdService.deleteInvLotLocIdById(locationFrom.getId());
|
|
|
-// invLotLocIdService.initInv(locationFrom.getId().toString(), call.getSku(), Constant.CUSTOMER_ID, call.getQty(), call.getLotattDTO(), BigDecimal.ZERO);
|
|
|
+// if (call.getLotattDTO() != null) {
|
|
|
+// invLotLocIdService.deleteInvLotLocIdById(locationFrom.getId());
|
|
|
+// invLotLocIdService.initInv(locationFrom.getId().toString(), call.getSku(), Constant.CUSTOMER_ID, call.getQty(), call.getLotattDTO(), BigDecimal.ZERO);
|
|
|
+// }
|
|
|
// }
|
|
|
wcsTaskList.addAll(this.genTask(locationFrom, locationTo, flowConfigHeaderVO, agvCallDTO, token));
|
|
|
|
|
@@ -166,14 +168,17 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
locationTo = this.zoneLocationAllocation(locationToList, "locationTo", "MV", asnSoStrategy, agvCall, token);
|
|
|
//2.初始化库存
|
|
|
for (AgvCallItemDTO call : agvCallDTO.getAgvCallItemDTOList()) {
|
|
|
- invLotLocIdService.deleteInvLotLocIdById(locationFrom.getId());
|
|
|
- invLotLocIdService.initInv(locationFrom.getId().toString(), call.getSku(), Constant.CUSTOMER_ID, call.getQty(), call.getLotattDTO(), BigDecimal.ZERO);
|
|
|
+ if (call.getLotattDTO() != null) {
|
|
|
+ invLotLocIdService.deleteInvLotLocIdById(locationFrom.getId());
|
|
|
+ invLotLocIdService.initInv(locationFrom.getId().toString(), call.getSku(), Constant.CUSTOMER_ID, call.getQty(), call.getLotattDTO(), BigDecimal.ZERO);
|
|
|
+ }
|
|
|
}
|
|
|
wcsTaskList.addAll(this.genTask(locationFrom, locationTo, flowConfigHeaderVO, agvCallDTO, token));
|
|
|
}
|
|
|
}
|
|
|
return AjaxResult.success("任务下发成功");
|
|
|
} catch (Exception e) {
|
|
|
+ redisCache.unlockCacheObject(token); // 异常捕获的话就不能释放锁
|
|
|
throw new ServiceException(e.getMessage(), token);
|
|
|
}
|
|
|
}
|
|
@@ -309,6 +314,7 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
if (!b.getStockStatus().equals("00") || !b.getIsEmpty().equals("Y") || redisCache.checkIsLock(RedisKey.LOCK_LOCATION + b.getId())) {
|
|
|
continue;
|
|
|
}
|
|
|
+ // todo 第六层不能放数量超过2的货
|
|
|
if (!redisCache.lockCacheObject(RedisKey.LOCK_LOCATION + b.getId(), b.getId().toString(), token)) {
|
|
|
continue;
|
|
|
}
|
|
@@ -663,11 +669,15 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
for (BaseLocationInfo baseLocationInfo : baseLocationInfos) {
|
|
|
// 判断是否有货并且空闲
|
|
|
if (baseLocationInfo.getStockStatus().equals(Constant.STOCK_STATUS.STOCK00.getValue())
|
|
|
- && baseLocationInfo.getIsEmpty().equals(Constant.IS_YES.N)) {
|
|
|
+ && baseLocationInfo.getIsEmpty().equals(Constant.IS_YES.N.name())) {
|
|
|
if (baseLocationInfo.getUserdefine1().equals("ASN")) {
|
|
|
- businessService.agvCall(null, Constant.TRAN_STO_FLOW_ID);
|
|
|
+ AgvCallItem agvCallItem = new AgvCallItem();
|
|
|
+ agvCallItem.setLocationFrom(baseLocationInfo.getLocationNo());
|
|
|
+ businessService.agvCall(agvCallItem, Constant.TRAN_STO_FLOW_ID);
|
|
|
} else if (baseLocationInfo.getUserdefine1().equals("SO")) {
|
|
|
- businessService.agvCall(null, Constant.TRAN_OUT_FLOW_ID);
|
|
|
+ AgvCallItem agvCallItem = new AgvCallItem();
|
|
|
+ agvCallItem.setLocationFrom(baseLocationInfo.getLocationNo());
|
|
|
+ businessService.agvCall(agvCallItem, Constant.TRAN_OUT_FLOW_ID);
|
|
|
}
|
|
|
}
|
|
|
}
|