|
@@ -123,16 +123,11 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
AsnSoStrategy asnSoStrategy = asnSoStrategyMapper.selectAsnSoStrategy();
|
|
|
|
|
|
for (AgvCallDTO agvCallDTO : agvCallDTOList) {
|
|
|
- //如果是入库把起始库位相同的数据整合到一起生成库存记录
|
|
|
BaseLocationInfo locationFrom = null;
|
|
|
BaseLocationInfo locationTo = null;
|
|
|
- List<WcsTask> wcsTaskList = new ArrayList<>();
|
|
|
String paramLocationFrom = agvCallDTO.getLocationFrom();
|
|
|
String paramLocationTo = agvCallDTO.getLocationTo();
|
|
|
List<String> zoneIdList = new ArrayList<>();
|
|
|
- if (StringUtils.isEmpty(paramLocationFrom)) {
|
|
|
- paramLocationFrom = flowConfigHeaderVO.getLocationFrom();
|
|
|
- }
|
|
|
if (StringUtils.isEmpty(paramLocationTo)) {
|
|
|
paramLocationTo = flowConfigHeaderVO.getLocationTo();
|
|
|
}
|
|
@@ -140,43 +135,26 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
zoneIdList = Arrays.stream(flowConfigHeaderVO.getLocationFrom().split(",")).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
- if (flowConfigHeaderVO.getFlowType().equals("ASN")) {
|
|
|
- // 统计入库箱数
|
|
|
- List<AgvCallItemDTO> agvCallItemDTOList = agvCallDTO.getAgvCallItemDTOList();
|
|
|
- int boxNum = agvCallItemDTOList.size();
|
|
|
-// int boxNum = agvCallItemDTOList.stream()
|
|
|
-// .mapToInt(v -> v.getQty().intValue())
|
|
|
-// .reduce(Integer::sum).getAsInt();
|
|
|
- asnSoStrategy.setAsnHeightLimit(boxNum + "");
|
|
|
- log.info("统计箱数量:" + boxNum);
|
|
|
-
|
|
|
- List<BaseLocationInfo> locationFromList = this.convertLocation(paramLocationFrom, agvCallDTO.getWarehouseId(), null);
|
|
|
- List<BaseLocationInfo> locationToList = this.convertLocation(paramLocationTo, agvCallDTO.getWarehouseId(), "shift_no+ 0,shift_index");
|
|
|
- locationFrom = this.zoneLocationAllocation(locationFromList, "locationFrom", "ASN", asnSoStrategy, token);
|
|
|
- locationTo = this.zoneLocationAllocation(locationToList, "locationTo", "ASN", asnSoStrategy, token);
|
|
|
+ List<WcsTask> wcsTaskList = new ArrayList<>();
|
|
|
+ if ("PM_L".equals(flowConfigHeaderVO.getRemark())) {
|
|
|
+ locationFrom = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(agvCallDTO.getLocationFrom(),Constant.WAREHOUSE_ID);
|
|
|
+ locationTo = baseLocationInfoService.selectBaseLocationInfoByIdOrNo(agvCallDTO.getLocationTo(),Constant.WAREHOUSE_ID);
|
|
|
+ baseLocationInfoService.occupyLocation(locationTo.getId(),Constant.WAREHOUSE_ID,"AMS");
|
|
|
+ baseLocationInfoService.unOccupyLocation(locationFrom.getId(),Constant.WAREHOUSE_ID,"AMS");
|
|
|
wcsTaskList.addAll(this.genTask(locationFrom, locationTo, flowConfigHeaderVO, agvCallDTO, token));
|
|
|
|
|
|
- } else if (flowConfigHeaderVO.getFlowType().equals("SO")) {
|
|
|
+ }
|
|
|
+ if ("PM_UP".equals(flowConfigHeaderVO.getRemark())){
|
|
|
AgvCallItemDTO agvCall = agvCallDTO.getAgvCallItemDTOList().get(0);
|
|
|
List<BaseLocationInfo> locationToList = this.convertLocation(paramLocationTo, agvCallDTO.getWarehouseId(), null);
|
|
|
HashMap<String, String> hashMap = JSON.parseObject(JSON.toJSONString(agvCall.getLotattDTO()), HashMap.class);
|
|
|
List<BaseLocationInfo> locationFromList = baseLocationInfoMapper.selectSortedLocationLotattListByZoneIdListOrderBy(zoneIdList
|
|
|
, agvCallDTO.getWarehouseId(), hashMap, agvCall.getSku(), "inv.create_time");
|
|
|
- locationFrom = this.zoneLocationAllocation(locationFromList, "locationFrom", "SO", asnSoStrategy, token);
|
|
|
- locationTo = this.zoneLocationAllocation(locationToList, "locationTo", "SO", asnSoStrategy, token);
|
|
|
- wcsTaskList.addAll(this.genTask(locationFrom, locationTo, flowConfigHeaderVO, agvCallDTO, token));
|
|
|
-
|
|
|
- } else if (flowConfigHeaderVO.getFlowType().equals("MV")) {
|
|
|
- List<BaseLocationInfo> locationFromList = this.convertLocation(paramLocationFrom, agvCallDTO.getWarehouseId(), null);
|
|
|
- List<BaseLocationInfo> locationToList = this.convertLocation(paramLocationTo, agvCallDTO.getWarehouseId(), null);
|
|
|
- locationFrom = this.zoneLocationAllocation(locationFromList, "locationFrom", "MV", asnSoStrategy, token);
|
|
|
- locationTo = this.zoneLocationAllocation(locationToList, "locationTo", "MV", asnSoStrategy, token);
|
|
|
- // 初始化库存
|
|
|
- if (agvCallDTO.getAgvCallItemDTOList().size() > 0) {
|
|
|
- iInvLotAttService.deleteInvLotAttBylocationId(locationFrom.getId());
|
|
|
- invLotLocIdService.deleteInvLotLocIdById(locationFrom.getId());
|
|
|
- invLotLocIdService.initInv(locationFrom.getId().toString(), agvCallDTO);
|
|
|
- }
|
|
|
+ locationFrom = this.zoneLocationAllocation(locationFromList, "locationFrom", "PM_UP", asnSoStrategy, token);
|
|
|
+ locationTo = this.zoneLocationAllocation(locationToList, "locationTo", "PM_UP", asnSoStrategy, token);
|
|
|
+ iInvLotAttService.deleteInvLotAttBylocationId(locationTo.getId());
|
|
|
+ invLotLocIdService.deleteInvLotLocIdById(locationTo.getId());
|
|
|
+ baseLocationInfoService.updateLocationIdleAndNoEmpty(locationTo.getId(),Constant.WAREHOUSE_ID,"AMS");
|
|
|
wcsTaskList.addAll(this.genTask(locationFrom, locationTo, flowConfigHeaderVO, agvCallDTO, token));
|
|
|
}
|
|
|
}
|
|
@@ -451,22 +429,9 @@ public class BusinessServiceImpl implements IBusinessService {
|
|
|
wcsTask.setShopId(Constant.WAREHOUSE_ID.toString());
|
|
|
wcsTask.setCreateDate(new Date());
|
|
|
wcsTask.setBusinessType("01");
|
|
|
- wcsTask.setTaskType(Constant.TASK_TYPE.FORWARD.getValue());
|
|
|
+ wcsTask.setTaskType(flowConfigHeaderVO.getFlowType());
|
|
|
wcsTask.setExt8(token.toString());
|
|
|
wcsTask.setExt7(flowConfigHeaderVO.getId().toString());
|
|
|
- wcsTask.setExt6(StringUtils.isNotEmpty(agvCallDTO.getToArea()) ? agvCallDTO.getToArea() : "");
|
|
|
- // 三向车叉尺方向(货叉朝左1,朝右2,中位或其他0)
|
|
|
- // 如果起始点是仓储区,左1,右2,我们系统A是靠马路也就是叉尺的右边
|
|
|
- if (locationFrom.getZoneId() != null
|
|
|
- && Objects.equals(locationFrom.getZoneId(), Constant.ZONE_TYPE.STORAGE.getValue())) {
|
|
|
- wcsTask.setExt4(locationFrom.getRowNo().equals("A") ? "2" : "1");
|
|
|
- }
|
|
|
- // 如果起始点是接驳位,默认给1
|
|
|
- if (locationFrom.getZoneId() != null
|
|
|
- && Objects.equals(locationFrom.getZoneId(), Constant.ZONE_TYPE.TRANSIT.getValue())) {
|
|
|
- wcsTask.setExt4("1");
|
|
|
- }
|
|
|
- wcsTask.setExtParam(agvCallDTO.getExtParam());
|
|
|
wcsTaskList.add(wcsTask);
|
|
|
businessService.addTask(wcsTask);
|
|
|
} else {
|