|
|
|
@ -139,7 +139,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
return pageList; |
|
|
|
|
} |
|
|
|
|
//使用trunklineCarsLoadLineService通过idsSet关联loadId批量查询TrunklineCarsLoadLineEntity集合
|
|
|
|
|
List<TrunklineCarsLoadLineEntity> loadLineList = trunklineCarsLoadLineService.list(new QueryWrapper<TrunklineCarsLoadLineEntity>().in("load_id", idsSet)); |
|
|
|
|
List<TrunklineCarsLoadLineEntity> loadLineList = trunklineCarsLoadLineService.list(new QueryWrapper<TrunklineCarsLoadLineEntity>().in("load_id", idsSet).orderByAsc("sort")); |
|
|
|
|
//把loadLineList中对象通过loadId分组
|
|
|
|
|
Map<Long, List<TrunklineCarsLoadLineEntity>> loadLineMap = loadLineList.stream() |
|
|
|
|
.collect(Collectors.groupingBy(TrunklineCarsLoadLineEntity::getLoadId)); |
|
|
|
@ -807,7 +807,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
trunklineCarsOrderService.updateStartNumByLoadIdAndWarehouseId(loadId, warehouseId); |
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(carsLoadScanIdList)) { |
|
|
|
|
removeCarsLoadScan(StringUtil.join(carsLoadScanIdList, ","), warehouseId); |
|
|
|
|
removeCarsLoadScan(carsLoadScanIdList, warehouseId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
@ -865,17 +865,17 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
Integer planLoadingNumber = currentCarsLoadLineEntity.getPlanLoadingNumber(); |
|
|
|
|
Integer realLoadingNumber = currentCarsLoadLineEntity.getRealLoadingNumber(); |
|
|
|
|
Integer unloadNumber = currentCarsLoadLineEntity.getUnloadNumber(); |
|
|
|
|
if (unloadNumber > 0) { |
|
|
|
|
if (Objects.isNull(unloadNumber) || unloadNumber > 0) { |
|
|
|
|
log.warn("#############cancelArriveCarByLoadId: 当前节点已卸车 unloadNumber={}", unloadNumber); |
|
|
|
|
throw new CustomerException(400, "当前节点已卸车"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(realLoadingNumber > 0){ |
|
|
|
|
if(Objects.isNull(realLoadingNumber) || realLoadingNumber > 0){ |
|
|
|
|
log.warn("#############cancelArriveCarByLoadId: 当前节点已做装车,不能取消到车 realLoadingNumber={}", realLoadingNumber); |
|
|
|
|
throw new CustomerException(400, "当前节点已做装车,不能取消到车"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(planLoadingNumber > 0){ |
|
|
|
|
if(Objects.isNull(planLoadingNumber) || planLoadingNumber > 0){ |
|
|
|
|
log.warn("#############cancelArriveCarByLoadId: 当前节点已做计划,不能取消到车 planLoadingNumber={}", planLoadingNumber); |
|
|
|
|
throw new CustomerException(400, "当前节点已做计划,不能取消到车"); |
|
|
|
|
} |
|
|
|
@ -1274,6 +1274,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
carsLoadLineEntity.setUnloadStatus("0"); |
|
|
|
|
carsLoadLineEntity.setLoadingStatus("0"); |
|
|
|
|
carsLoadLineEntity.setIsTermination("0"); |
|
|
|
|
carsLoadLineEntity.setPlanLoadingNumber(0); |
|
|
|
|
boolean saveLoadLine = trunklineCarsLoadLineService.save(carsLoadLineEntity); |
|
|
|
|
if (!saveLoadLine) { |
|
|
|
|
log.warn("##############saveNew: 保存配载计划节点失败"); |
|
|
|
@ -1414,11 +1415,11 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
log.warn("###############selectEditDetailByLoadId: 终点节点信息不存在 loadId={}", loadId); |
|
|
|
|
return R.fail(405, "终点节点信息不存在"); |
|
|
|
|
} |
|
|
|
|
Long endNodeId = endCarsLoadLineEntity.getNodeId(); |
|
|
|
|
if (endNodeId.equals(warehouseId)) { |
|
|
|
|
log.warn("###############selectEditDetailByLoadId: 终点节点不能编辑配载 loadId={}", loadId); |
|
|
|
|
return R.fail(405, "终点节点不能编辑配载"); |
|
|
|
|
} |
|
|
|
|
// Long endNodeId = endCarsLoadLineEntity.getNodeId();
|
|
|
|
|
// if (endNodeId.equals(warehouseId)) {
|
|
|
|
|
// log.warn("###############selectEditDetailByLoadId: 终点节点不能编辑配载 loadId={}", loadId);
|
|
|
|
|
// return R.fail(405, "终点节点不能编辑配载");
|
|
|
|
|
// }
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId); |
|
|
|
@ -1493,7 +1494,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
@Override |
|
|
|
|
public R updateCarsLoadBasicData(TrunklineCarsLoadDTO carsLoadDTO, Long warehouseId) { |
|
|
|
|
Long loadId = carsLoadDTO.getId(); |
|
|
|
@ -1650,6 +1651,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
carsLoadLineEntity.setUnloadStatus("0"); |
|
|
|
|
carsLoadLineEntity.setLoadingStatus("0"); |
|
|
|
|
carsLoadLineEntity.setIsTermination("0"); |
|
|
|
|
carsLoadLineEntity.setPlanLoadingNumber(0); |
|
|
|
|
trunklineCarsLoadLineService.save(carsLoadLineEntity); |
|
|
|
|
carsLoadLineId = carsLoadLineEntity.getId(); |
|
|
|
|
str.append("&").append(nodeName).append(carsLoadLineEntity.getNodeName()).append(":").append("新增节点 费用增加").append(carsLoadLineEntity.getTollFee()); |
|
|
|
@ -1663,6 +1665,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
String orderCode = trunklineCarsOrderDTO.getOrderCode(); |
|
|
|
|
String waybillNo = trunklineCarsOrderDTO.getWaybillNo(); |
|
|
|
|
Long carsOrderId = trunklineCarsOrderDTO.getId(); |
|
|
|
|
|
|
|
|
|
//修改当前仓的装车节点指定的订单运单数据为异常
|
|
|
|
|
trunklineCarsLoadScanService.updateScanToAbnormalByLoadIdAndNodeIdAndWarehouseIdAndOrderCodeAndWaybillNo(loadId, nodeId, warehouseId, orderCode, waybillNo); |
|
|
|
|
//删除指定的订单关联信息
|
|
|
|
@ -1684,31 +1687,52 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
for (TrunklineCarsOrderDTO trunklineCarsOrderDTO : addList) { |
|
|
|
|
TrunklineCarsOrderEntity trunklineCarsOrderEntity = new TrunklineCarsOrderEntity(); |
|
|
|
|
BeanUtil.copy(trunklineCarsOrderDTO, trunklineCarsOrderEntity); |
|
|
|
|
Integer realNum = trunklineCarsOrderDTO.getRealNum(); |
|
|
|
|
Long finalNodeId = trunklineCarsOrderDTO.getFinalNodeId(); |
|
|
|
|
BasicdataWarehouseEntity finalWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(finalNodeId); |
|
|
|
|
String orderCode = trunklineCarsOrderDTO.getOrderCode(); |
|
|
|
|
String waybillNo = trunklineCarsOrderDTO.getWaybillNo(); |
|
|
|
|
if(Objects.isNull(realNum)){ |
|
|
|
|
realNum = 0; |
|
|
|
|
} |
|
|
|
|
trunklineCarsOrderEntity.setId(null); |
|
|
|
|
trunklineCarsOrderEntity.setLoadId(loadId); |
|
|
|
|
trunklineCarsOrderEntity.setLoadLineId(carsLoadLineId); |
|
|
|
|
trunklineCarsOrderEntity.setNodeId(warehouseId); |
|
|
|
|
trunklineCarsOrderEntity.setNodeName(currentLoadLineEntity.getNodeName()); |
|
|
|
|
trunklineCarsOrderEntity.setRealNum(0); |
|
|
|
|
// trunklineCarsOrderEntity.setNodeId(warehouseId);
|
|
|
|
|
// trunklineCarsOrderEntity.setNodeName(currentLoadLineEntity.getNodeName());
|
|
|
|
|
trunklineCarsOrderEntity.setRealNum(realNum); |
|
|
|
|
trunklineCarsOrderEntity.setStartNum(trunklineCarsOrderDTO.getPlanNum()); |
|
|
|
|
trunklineCarsOrderService.save(trunklineCarsOrderEntity); |
|
|
|
|
if(realNum > 0){ |
|
|
|
|
//如果装车数量大于0则需要把装车的包件的计划目的仓改到对应的目的仓
|
|
|
|
|
trunklineCarsLoadScanService.updateFinalNodeIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(loadId,trunklineCarsOrderEntity.getNodeId(),orderCode,waybillNo,finalNodeId,finalWarehouseEntity.getName()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
loadLineTitleName = ""; |
|
|
|
|
List<TrunklineCarsLoadLineEntity> loadLineEntityList = trunklineCarsLoadLineService.findListByLoadId(loadId); |
|
|
|
|
for (TrunklineCarsLoadLineEntity carsLoadLineEntity : loadLineEntityList) { |
|
|
|
|
String nodeName = carsLoadLineEntity.getNodeName(); |
|
|
|
|
if (StringUtil.isBlank(loadLineTitleName)) { |
|
|
|
|
loadLineTitleName = nodeName; |
|
|
|
|
} else { |
|
|
|
|
loadLineTitleName = loadLineTitleName + "->" + nodeName; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
carsLoadEntity.setCarsLineName(loadLineTitleName); |
|
|
|
|
carsLoadEntity.setEndWarehouseIds(endWarehouseIds); |
|
|
|
|
carsLoadEntity.setEndWarehouseNames(endWarehouseNames); |
|
|
|
|
String[] split = endWarehouseIds.split(","); |
|
|
|
|
int length = split.length; |
|
|
|
|
Long lastEndWarehouseId = Long.parseLong(split[length - 1]); |
|
|
|
|
if(lastEndWarehouseId.equals(warehouseId)){ |
|
|
|
|
//移除当前仓作为目的仓的装车记录
|
|
|
|
|
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper = new QueryWrapper<>(); |
|
|
|
|
queryWrapper.eq("load_id",loadId) |
|
|
|
|
.eq("warehouse_id",warehouseId).isNull("final_node_id"); |
|
|
|
|
List<TrunklineCarsLoadScanEntity> carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper); |
|
|
|
|
if(CollUtil.isNotEmpty(carsLoadScanEntityList)){ |
|
|
|
|
//把carsLoadScanEntityList中所有元素的id放入一个List
|
|
|
|
|
List<Long> ids = carsLoadScanEntityList.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); |
|
|
|
|
removeCarsLoadScan(ids,warehouseId); |
|
|
|
|
} |
|
|
|
|
carsLoadEntity.setLoadStatus("40"); |
|
|
|
|
}else{ |
|
|
|
|
carsLoadEntity.setLoadStatus("20"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
updateById(carsLoadEntity); |
|
|
|
|
|
|
|
|
|
updateNumByLoadId(loadId); |
|
|
|
@ -1730,9 +1754,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
log.warn("#############updateCarsLoadBasicData: 存入日志失败"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return R.success("更新成功"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -6366,123 +6387,245 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
@Override |
|
|
|
|
public R removeCarsLoadScan(String carsLoadScanIds, Long warehouseId) { |
|
|
|
|
|
|
|
|
|
String[] split = carsLoadScanIds.split(","); |
|
|
|
|
Long loadId = null; |
|
|
|
|
for (String str : split) { |
|
|
|
|
long carsLoadScanId = Long.parseLong(str); |
|
|
|
|
public R removeCarsLoadScan(List<Long> carsLoadScanIds, Long warehouseId) { |
|
|
|
|
|
|
|
|
|
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getById(carsLoadScanId); |
|
|
|
|
if (Objects.isNull(carsLoadScanEntity)) { |
|
|
|
|
log.warn("##################removeCarsLoadScan: 配载装车扫描不存在 carsLoadScanId={}", carsLoadScanId); |
|
|
|
|
return R.fail(405, "配载装车扫描不存在"); |
|
|
|
|
} |
|
|
|
|
loadId = carsLoadScanEntity.getLoadId(); |
|
|
|
|
|
|
|
|
|
TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId); |
|
|
|
|
if (Objects.isNull(carsLoadEntity)) { |
|
|
|
|
log.warn("##################removeCarsLoadScan: 配载计划不存在 loadId={}", loadId); |
|
|
|
|
return R.fail(405, "配载计划不存在"); |
|
|
|
|
} |
|
|
|
|
QueryWrapper<TrunklineCarsLoadScanEntity> queryWrapper = new QueryWrapper<>(); |
|
|
|
|
queryWrapper.in("id", carsLoadScanIds) |
|
|
|
|
.eq("scan_status", "1"); |
|
|
|
|
List<TrunklineCarsLoadScanEntity> carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper); |
|
|
|
|
if (CollUtil.isEmpty(carsLoadScanEntityList)) { |
|
|
|
|
log.warn("##################removeCarsLoadScan: 没有删除的数据 carsLoadScanIds={}", carsLoadScanIds); |
|
|
|
|
return R.fail(405, "没有删除的数据"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Long nowWarehouseId = carsLoadEntity.getNowWarehouseId(); |
|
|
|
|
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId); |
|
|
|
|
if(Objects.isNull(warehouseEntity)){ |
|
|
|
|
log.warn("##################removeCarsLoadScan: 仓库信息不存在 warehouseId={}", warehouseId); |
|
|
|
|
return R.fail(405, "仓库信息不存在"); |
|
|
|
|
} |
|
|
|
|
String warehouseName = warehouseEntity.getName(); |
|
|
|
|
|
|
|
|
|
if (!nowWarehouseId.equals(warehouseId)) { |
|
|
|
|
log.warn("##################removeCarsLoadScan: 暂未有权限进行操作 nowWarehouseId={} warehouseId={}", nowWarehouseId, warehouseId); |
|
|
|
|
return R.fail(405, "暂未有权限进行操作"); |
|
|
|
|
} |
|
|
|
|
String loadStatus = carsLoadEntity.getLoadStatus(); |
|
|
|
|
if (!"0".equals(loadStatus) && !"20".equals(loadStatus) && !"40".equals(loadStatus) && !"100".equals(loadStatus)) { |
|
|
|
|
log.warn("##################removeCarsLoadScan: 当前配载计划不属于到车状态 loadStatus={} warehouseId={}", loadStatus, warehouseId); |
|
|
|
|
return R.fail(405, "当前配载计划不属于到车状态"); |
|
|
|
|
} |
|
|
|
|
//把carsLoadScanEntityList通过loadId分组
|
|
|
|
|
Map<Long, List<TrunklineCarsLoadScanEntity>> groupedByLoadId = carsLoadScanEntityList.stream() |
|
|
|
|
.collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getLoadId)); |
|
|
|
|
Set<Long> loadIdSet = groupedByLoadId.keySet(); |
|
|
|
|
|
|
|
|
|
TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId); |
|
|
|
|
if (Objects.isNull(carsLoadLineEntity)) { |
|
|
|
|
log.warn("##################removeCarsLoadScan: 当前节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId); |
|
|
|
|
return R.fail(405, "当前节点信息不存在"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
String nodeStatus = carsLoadLineEntity.getNodeStatus(); |
|
|
|
|
if (!"10".equals(nodeStatus)) { |
|
|
|
|
log.warn("##################removeCarsLoadScan: 当前节点不是到车状态 nodeStatus={} warehouseId={}", nodeStatus, warehouseId); |
|
|
|
|
return R.fail(405, "当前节点不是到车状态"); |
|
|
|
|
} |
|
|
|
|
List<DistributionParcelListEntity> updateParceListList = new ArrayList<>(); |
|
|
|
|
List<DistributionStockArticleEntity> updateStockArticleList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
//删除
|
|
|
|
|
boolean b = trunklineCarsLoadScanService.deleteEntityByCarsLoadScanId(carsLoadScanId); |
|
|
|
|
if (b) { |
|
|
|
|
Integer isData = carsLoadScanEntity.getIsData(); |
|
|
|
|
if (isData == 1) { |
|
|
|
|
updateNumByLoadId(loadId); |
|
|
|
|
String warehouseName = carsLoadScanEntity.getWarehouseName(); |
|
|
|
|
Integer isAbnormal = carsLoadScanEntity.getLoadingAbnormal(); |
|
|
|
|
Integer num = carsLoadScanEntity.getNum(); |
|
|
|
|
Long trayId = carsLoadScanEntity.getTrayId(); |
|
|
|
|
String trayCode = carsLoadScanEntity.getTrayCode(); |
|
|
|
|
String orderCode = carsLoadScanEntity.getOrderCode(); |
|
|
|
|
String waybillNo = carsLoadScanEntity.getWaybillNo(); |
|
|
|
|
String scanCode = carsLoadScanEntity.getScanCode(); |
|
|
|
|
Integer type = carsLoadScanEntity.getType(); |
|
|
|
|
Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId(); |
|
|
|
|
String fromWarehouseName = null; |
|
|
|
|
groupedByLoadId.keySet().forEach(loadId -> { |
|
|
|
|
List<TrunklineCarsLoadScanEntity> loadScanEntityList = groupedByLoadId.get(loadId); |
|
|
|
|
if(CollUtil.isNotEmpty(loadScanEntityList)){ |
|
|
|
|
//把loadScanEntityList通过fromNodeId进行分组
|
|
|
|
|
Map<Long, List<TrunklineCarsLoadScanEntity>> groupedByFromWarehouseId = loadScanEntityList.stream().filter(carsLoadScanEntity-> !Objects.isNull(carsLoadScanEntity.getFromWarehouseId())) |
|
|
|
|
.collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getFromWarehouseId)); |
|
|
|
|
groupedByFromWarehouseId.keySet().forEach(fromWarehouseId -> { |
|
|
|
|
BasicdataWarehouseEntity fromWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(fromWarehouseId); |
|
|
|
|
if (!Objects.isNull(fromWarehouseEntity)) { |
|
|
|
|
fromWarehouseName = fromWarehouseEntity.getName(); |
|
|
|
|
} |
|
|
|
|
String fromWarehouseEntityName = fromWarehouseEntity.getName(); |
|
|
|
|
|
|
|
|
|
List<TrunklineCarsLoadScanEntity> loadScanEntityList1 = groupedByFromWarehouseId.get(fromWarehouseId); |
|
|
|
|
if(CollUtil.isNotEmpty(loadScanEntityList1)){ |
|
|
|
|
//把loadScanEntityList1通过type进行分组
|
|
|
|
|
Map<Integer, List<TrunklineCarsLoadScanEntity>> groupedByType = loadScanEntityList1.stream().filter(carsLoadScanEntity-> !Objects.isNull(carsLoadScanEntity.getType())) |
|
|
|
|
.collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getType)); |
|
|
|
|
|
|
|
|
|
groupedByType.keySet().forEach(type -> { |
|
|
|
|
List<TrunklineCarsLoadScanEntity> trunklineCarsLoadScanEntities = groupedByType.get(type); |
|
|
|
|
//把trunklineCarsLoadScanEntities通过orderCode进行分组
|
|
|
|
|
Map<String, List<TrunklineCarsLoadScanEntity>> groupedByOrderCode = trunklineCarsLoadScanEntities.stream().filter(carsLoadScanEntity-> !Objects.isNull(carsLoadScanEntity.getOrderCode())) |
|
|
|
|
.collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getOrderCode)); |
|
|
|
|
if(type == 1){ |
|
|
|
|
|
|
|
|
|
groupedByOrderCode.keySet().forEach(orderCode -> { |
|
|
|
|
DistributionStockArticleEntity distributionStockArticle = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); |
|
|
|
|
List<TrunklineCarsLoadScanEntity> loadScanEntityList2 = groupedByOrderCode.get(orderCode); |
|
|
|
|
if(CollUtil.isNotEmpty(loadScanEntityList2)){ |
|
|
|
|
//把loadScanEntityList2的num进行累加
|
|
|
|
|
Integer num = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getNum).reduce(0, Integer::sum); |
|
|
|
|
//把loadScanEntityList2中所有元素的scanCode放入一个List
|
|
|
|
|
List<String> scanCodeList = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getScanCode).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
FindParamterDTO findParamterDTO = new FindParamterDTO(); |
|
|
|
|
findParamterDTO.setOrderPackageCodeList(scanCodeList); |
|
|
|
|
findParamterDTO.setWarehouseId(fromWarehouseId); |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListClient.findListByOrderPackageCodeList(findParamterDTO); |
|
|
|
|
parcelListEntityList.forEach(parcelListEntity -> { |
|
|
|
|
DistributionParcelListEntity updateParceList = new DistributionParcelListEntity(); |
|
|
|
|
updateParceList.setId(parcelListEntity.getId()); |
|
|
|
|
updateParceList.setOrderPackageStatus("20"); |
|
|
|
|
updateParceListList.add(updateParceList); |
|
|
|
|
}); |
|
|
|
|
loadScanEntityList2.forEach(trunklineCarsLoadScanEntity -> { |
|
|
|
|
String trayCode = trunklineCarsLoadScanEntity.getTrayCode(); |
|
|
|
|
String scanCode = trunklineCarsLoadScanEntity.getScanCode(); |
|
|
|
|
if (StringUtil.isNotBlank(trayCode)) { |
|
|
|
|
updownTypeClient.downPackageOrDelTray(scanCode, warehouseId, "包件下架解托"); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); |
|
|
|
|
if (!Objects.isNull(stockArticleEntity)) { |
|
|
|
|
Long articleId = stockArticleEntity.getId(); |
|
|
|
|
distributionStockArticleClient.submitHandleNumByOrderId(-num, articleId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (type == 1) { |
|
|
|
|
DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(scanCode, fromWarehouseId); |
|
|
|
|
if (Objects.isNull(parcelListEntity)) { |
|
|
|
|
log.warn("##################removeCarsLoadScan: 包件信息不存在 fromWarehouseId={} scanCode={}", fromWarehouseId, scanCode); |
|
|
|
|
return R.fail(405, "包件信息不存在"); |
|
|
|
|
} |
|
|
|
|
Long wid = parcelListEntity.getWarehouseId(); |
|
|
|
|
String waybillNumber = parcelListEntity.getWaybillNumber(); |
|
|
|
|
Long waybillId = parcelListEntity.getWaybillId(); |
|
|
|
|
if (!Objects.isNull(waybillId)) { |
|
|
|
|
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId); |
|
|
|
|
parcelListEntity.setIsTransfer(0); |
|
|
|
|
if (!Objects.isNull(waybillEntity)) { |
|
|
|
|
Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId(); |
|
|
|
|
parcelListEntity.setOrderPackageStatus("20"); |
|
|
|
|
if (destinationWarehouseId.equals(wid)) { |
|
|
|
|
parcelListEntity.setIsTransfer(0); |
|
|
|
|
} else { |
|
|
|
|
parcelListEntity.setIsTransfer(1); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
distributionParcelListClient.update(parcelListEntity); |
|
|
|
|
// if (StringUtil.isNotBlank(trayCode)) {
|
|
|
|
|
// updownTypeClient.downPackageOrDelTray(scanCode, warehouseId, "包件下架解托");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
List<String> orderPackageCodes = new ArrayList<>(); |
|
|
|
|
orderPackageCodes.add(scanCode); |
|
|
|
|
String content = "包件在 " + warehouseName + "取消装车,配载计划目的仓 " + carsLoadScanEntity.getFinalNodeName(); |
|
|
|
|
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseName, WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content); |
|
|
|
|
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity(); |
|
|
|
|
updateStockArticle.setId(distributionStockArticle.getId()); |
|
|
|
|
updateStockArticle.setHandQuantity(distributionStockArticle.getHandQuantity()+num); |
|
|
|
|
updateStockArticleList.add(updateStockArticle); |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
// if (StringUtil.isNotBlank(trayCode)) {
|
|
|
|
|
// trayTypeClient.deleteZeroOrderByTrayCode(orderCode, trayCode, warehouseId, "零担解托");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
String content = "包件在 " + warehouseName + "取消装车,配载计划目的仓 " + fromWarehouseEntityName; |
|
|
|
|
packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), scanCodeList, warehouseId, warehouseName, WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else if(type == 2){ |
|
|
|
|
groupedByOrderCode.keySet().forEach(orderCode -> { |
|
|
|
|
List<TrunklineCarsLoadScanEntity> loadScanEntityList2 = groupedByOrderCode.get(orderCode); |
|
|
|
|
if(CollUtil.isNotEmpty(loadScanEntityList2)){ |
|
|
|
|
//把loadScanEntityList2的num进行累加
|
|
|
|
|
Integer num = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getNum).reduce(0, Integer::sum); |
|
|
|
|
DistributionStockArticleEntity distributionStockArticle = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); |
|
|
|
|
DistributionStockArticleEntity updateStockArticle = new DistributionStockArticleEntity(); |
|
|
|
|
updateStockArticle.setId(distributionStockArticle.getId()); |
|
|
|
|
updateStockArticle.setHandQuantity(distributionStockArticle.getHandQuantity()+num); |
|
|
|
|
updateStockArticleList.add(updateStockArticle); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
trunklineCarsLoadScanService.deleteListByCarsLoadScanIds(carsLoadScanIds); |
|
|
|
|
|
|
|
|
|
if(CollUtil.isNotEmpty(updateStockArticleList)){ |
|
|
|
|
distributionStockArticleClient.updateByBatchId(updateStockArticleList); |
|
|
|
|
} |
|
|
|
|
if (!Objects.isNull(loadId)) { |
|
|
|
|
updateNumByLoadId(loadId); |
|
|
|
|
if(CollUtil.isNotEmpty(updateParceListList)){ |
|
|
|
|
distributionParcelListClient.updateList(updateParceListList); |
|
|
|
|
} |
|
|
|
|
if(CollUtil.isNotEmpty(loadIdSet)){ |
|
|
|
|
loadIdSet.forEach(loadId -> { |
|
|
|
|
updateNumByLoadId(loadId); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Long loadId = null;
|
|
|
|
|
// for (String str : split) {
|
|
|
|
|
// long carsLoadScanId = Long.parseLong(str);
|
|
|
|
|
//
|
|
|
|
|
// TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getById(carsLoadScanId);
|
|
|
|
|
// if (Objects.isNull(carsLoadScanEntity)) {
|
|
|
|
|
// log.warn("##################removeCarsLoadScan: 配载装车扫描不存在 carsLoadScanId={}", carsLoadScanId);
|
|
|
|
|
// return R.fail(405, "配载装车扫描不存在");
|
|
|
|
|
// }
|
|
|
|
|
// loadId = carsLoadScanEntity.getLoadId();
|
|
|
|
|
//
|
|
|
|
|
// TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId);
|
|
|
|
|
// if (Objects.isNull(carsLoadEntity)) {
|
|
|
|
|
// log.warn("##################removeCarsLoadScan: 配载计划不存在 loadId={}", loadId);
|
|
|
|
|
// return R.fail(405, "配载计划不存在");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// Long nowWarehouseId = carsLoadEntity.getNowWarehouseId();
|
|
|
|
|
//
|
|
|
|
|
// if (!nowWarehouseId.equals(warehouseId)) {
|
|
|
|
|
// log.warn("##################removeCarsLoadScan: 暂未有权限进行操作 nowWarehouseId={} warehouseId={}", nowWarehouseId, warehouseId);
|
|
|
|
|
// return R.fail(405, "暂未有权限进行操作");
|
|
|
|
|
// }
|
|
|
|
|
// String loadStatus = carsLoadEntity.getLoadStatus();
|
|
|
|
|
// if (!"0".equals(loadStatus) && !"20".equals(loadStatus) && !"40".equals(loadStatus) && !"100".equals(loadStatus)) {
|
|
|
|
|
// log.warn("##################removeCarsLoadScan: 当前配载计划不属于到车状态 loadStatus={} warehouseId={}", loadStatus, warehouseId);
|
|
|
|
|
// return R.fail(405, "当前配载计划不属于到车状态");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// TrunklineCarsLoadLineEntity carsLoadLineEntity = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId);
|
|
|
|
|
// if (Objects.isNull(carsLoadLineEntity)) {
|
|
|
|
|
// log.warn("##################removeCarsLoadScan: 当前节点信息不存在 loadId={} warehouseId={}", loadId, warehouseId);
|
|
|
|
|
// return R.fail(405, "当前节点信息不存在");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// String nodeStatus = carsLoadLineEntity.getNodeStatus();
|
|
|
|
|
// if (!"10".equals(nodeStatus)) {
|
|
|
|
|
// log.warn("##################removeCarsLoadScan: 当前节点不是到车状态 nodeStatus={} warehouseId={}", nodeStatus, warehouseId);
|
|
|
|
|
// return R.fail(405, "当前节点不是到车状态");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// //删除
|
|
|
|
|
// boolean b = trunklineCarsLoadScanService.deleteEntityByCarsLoadScanId(carsLoadScanId);
|
|
|
|
|
// if (b) {
|
|
|
|
|
// Integer isData = carsLoadScanEntity.getIsData();
|
|
|
|
|
// if (isData == 1) {
|
|
|
|
|
// updateNumByLoadId(loadId);
|
|
|
|
|
// String warehouseName = carsLoadScanEntity.getWarehouseName();
|
|
|
|
|
// Integer isAbnormal = carsLoadScanEntity.getLoadingAbnormal();
|
|
|
|
|
// Integer num = carsLoadScanEntity.getNum();
|
|
|
|
|
// Long trayId = carsLoadScanEntity.getTrayId();
|
|
|
|
|
// String trayCode = carsLoadScanEntity.getTrayCode();
|
|
|
|
|
// String orderCode = carsLoadScanEntity.getOrderCode();
|
|
|
|
|
// String waybillNo = carsLoadScanEntity.getWaybillNo();
|
|
|
|
|
// String scanCode = carsLoadScanEntity.getScanCode();
|
|
|
|
|
// Integer type = carsLoadScanEntity.getType();
|
|
|
|
|
// Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId();
|
|
|
|
|
// String fromWarehouseName = null;
|
|
|
|
|
// BasicdataWarehouseEntity fromWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(fromWarehouseId);
|
|
|
|
|
// if (!Objects.isNull(fromWarehouseEntity)) {
|
|
|
|
|
// fromWarehouseName = fromWarehouseEntity.getName();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, fromWarehouseId);
|
|
|
|
|
// if (!Objects.isNull(stockArticleEntity)) {
|
|
|
|
|
// Long articleId = stockArticleEntity.getId();
|
|
|
|
|
// distributionStockArticleClient.submitHandleNumByOrderId(-num, articleId);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// if (type == 1) {
|
|
|
|
|
// DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByPacketBarCodeAndWarehouseId(scanCode, fromWarehouseId);
|
|
|
|
|
// if (Objects.isNull(parcelListEntity)) {
|
|
|
|
|
// log.warn("##################removeCarsLoadScan: 包件信息不存在 fromWarehouseId={} scanCode={}", fromWarehouseId, scanCode);
|
|
|
|
|
// return R.fail(405, "包件信息不存在");
|
|
|
|
|
// }
|
|
|
|
|
// Long wid = parcelListEntity.getWarehouseId();
|
|
|
|
|
// String waybillNumber = parcelListEntity.getWaybillNumber();
|
|
|
|
|
// Long waybillId = parcelListEntity.getWaybillId();
|
|
|
|
|
// if (!Objects.isNull(waybillId)) {
|
|
|
|
|
// WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
|
|
|
|
|
// parcelListEntity.setIsTransfer(0);
|
|
|
|
|
// if (!Objects.isNull(waybillEntity)) {
|
|
|
|
|
// Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId();
|
|
|
|
|
// parcelListEntity.setOrderPackageStatus("20");
|
|
|
|
|
// if (destinationWarehouseId.equals(wid)) {
|
|
|
|
|
// parcelListEntity.setIsTransfer(0);
|
|
|
|
|
// } else {
|
|
|
|
|
// parcelListEntity.setIsTransfer(1);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// distributionParcelListClient.update(parcelListEntity);
|
|
|
|
|
//// if (StringUtil.isNotBlank(trayCode)) {
|
|
|
|
|
//// updownTypeClient.downPackageOrDelTray(scanCode, warehouseId, "包件下架解托");
|
|
|
|
|
//// }
|
|
|
|
|
//
|
|
|
|
|
// List<String> orderPackageCodes = new ArrayList<>();
|
|
|
|
|
// orderPackageCodes.add(scanCode);
|
|
|
|
|
// String content = "包件在 " + warehouseName + "取消装车,配载计划目的仓 " + carsLoadScanEntity.getFinalNodeName();
|
|
|
|
|
// packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseName, WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content);
|
|
|
|
|
//
|
|
|
|
|
// } else {
|
|
|
|
|
//// if (StringUtil.isNotBlank(trayCode)) {
|
|
|
|
|
//// trayTypeClient.deleteZeroOrderByTrayCode(orderCode, trayCode, warehouseId, "零担解托");
|
|
|
|
|
//// }
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// if (!Objects.isNull(loadId)) {
|
|
|
|
|
// updateNumByLoadId(loadId);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
return R.success("删除成功"); |
|
|
|
|
} |
|
|
|
|