|
|
|
@ -4389,7 +4389,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
Long loadId = loadCarsDTO.getLoadId(); |
|
|
|
|
Long warehouseId = loadCarsDTO.getWarehouseId(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId); |
|
|
|
|
String warehouseName = warehouseEntity.getName(); |
|
|
|
|
String warehouseCode = warehouseEntity.getWarehouseCode(); |
|
|
|
|
|
|
|
|
|
String[] split = carsOrderIds.split(","); |
|
|
|
|
List<Long> carsOrderIdList = new ArrayList<>(); |
|
|
|
@ -4404,18 +4406,196 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
if(Objects.isNull(carsLoadEntity)){ |
|
|
|
|
log.warn("###########updateWaybillOrderIsCustemer: 配载计划不存在 loadId={}",loadId); |
|
|
|
|
return R.fail(405,"配载计划不存在"); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
baseMapper.updateWaybillOrderIsCustemer(carsOrderIdList, isCustomer); |
|
|
|
|
|
|
|
|
|
//取消节点的签收单
|
|
|
|
|
cancleCustomerSignOrder(loadId, warehouseId); |
|
|
|
|
carsLoadEntity.setIsCustomer("2"); |
|
|
|
|
updateById(carsLoadEntity); |
|
|
|
|
if("1".equals(isCustomer)){ |
|
|
|
|
//直发商家添加
|
|
|
|
|
List<TrunklineCarsOrderVO> addCarsOrderEntityList = trunklineCarsOrderService.findMallOrderList(carsOrderIdList); |
|
|
|
|
//把addCarsOrderEntityList中所有元素以mallName和nodeId作为key进行分组
|
|
|
|
|
Map<String, List<TrunklineCarsOrderVO>> addCarsOrderEntityMap = addCarsOrderEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsOrderVO -> TrunklineCarsOrderVO.getMallName()+"&&"+TrunklineCarsOrderVO.getNodeId())); |
|
|
|
|
|
|
|
|
|
List<TrunklineLoadSignOrderEntity> signOrderEntityList = trunklineLoadSignOrderService.findAllLoadSignOrderList(loadId, warehouseId); |
|
|
|
|
//把signOrderEntityList中所有元素转化成mallName和warehouseId作为key的map
|
|
|
|
|
Map<String, TrunklineLoadSignOrderEntity> signOrderEntityMap = signOrderEntityList.stream().collect(Collectors.toMap(TrunklineLoadSignOrderEntity -> TrunklineLoadSignOrderEntity.getMallName()+"&&"+TrunklineLoadSignOrderEntity.getWarehouseId(), Function.identity(), (k1, k2) -> k1)); |
|
|
|
|
|
|
|
|
|
List<TrunklineCarsOrderEntity> updateCarsOrderList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
Long finalLoadId = loadId; |
|
|
|
|
addCarsOrderEntityMap.keySet().forEach(key -> { |
|
|
|
|
String[] split1 = key.split("&&"); |
|
|
|
|
String mallName = split1[0]; |
|
|
|
|
|
|
|
|
|
List<TrunklineCarsOrderVO> trunklineCarsOrderVOS = addCarsOrderEntityMap.get(key); |
|
|
|
|
Long finalNodeId = trunklineCarsOrderVOS.get(0).getFinalNodeId(); |
|
|
|
|
TrunklineLoadSignOrderEntity trunklineLoadSignOrderEntity = signOrderEntityMap.get(key); |
|
|
|
|
if(Objects.isNull(trunklineLoadSignOrderEntity)){ |
|
|
|
|
trunklineLoadSignOrderEntity = new TrunklineLoadSignOrderEntity(); |
|
|
|
|
trunklineLoadSignOrderEntity.setLoadId(finalLoadId); |
|
|
|
|
trunklineLoadSignOrderEntity.setWarehouseId(warehouseId); |
|
|
|
|
trunklineLoadSignOrderEntity.setMallName(mallName); |
|
|
|
|
//把trunklineCarsOrderVOS中所有元素的mallPerson去重后用,拼接
|
|
|
|
|
trunklineLoadSignOrderEntity.setMallPerson(trunklineCarsOrderVOS.stream().map(TrunklineCarsOrderVO::getMallPerson).distinct().collect(Collectors.joining(","))); |
|
|
|
|
trunklineLoadSignOrderEntity.setMallMobile(trunklineCarsOrderVOS.stream().map(TrunklineCarsOrderVO::getMallMobile).distinct().collect(Collectors.joining(","))); |
|
|
|
|
trunklineLoadSignOrderEntity.setMallAddress(trunklineCarsOrderVOS.stream().map(TrunklineCarsOrderVO::getMallAddress).distinct().collect(Collectors.joining(","))); |
|
|
|
|
trunklineLoadSignOrderEntity.setBelongToWarehouseId(warehouseId); |
|
|
|
|
trunklineLoadSignOrderEntity.setBelongToWarehouseName(warehouseName); |
|
|
|
|
//把trunklineCarsOrderVOS中所有元素的planNum求和
|
|
|
|
|
trunklineLoadSignOrderEntity.setPlanNum(trunklineCarsOrderVOS.stream().mapToInt(TrunklineCarsOrderVO::getPlanNum).sum()); |
|
|
|
|
trunklineLoadSignOrderEntity.setLoadingNum(trunklineCarsOrderVOS.stream().mapToInt(TrunklineCarsOrderVO::getRealNum).sum()); |
|
|
|
|
trunklineLoadSignOrderEntity.setSignNum(0); |
|
|
|
|
trunklineLoadSignOrderEntity.setSignStatus("0"); |
|
|
|
|
trunklineLoadSignOrderEntity.setLoadSignCode(codeClient.getCodeByType(CodeNumConstant.TRUNKLINE_LOAD_SIGN, warehouseCode, "")); |
|
|
|
|
trunklineLoadSignOrderEntity.setFinalNodeId(finalNodeId); |
|
|
|
|
}else{ |
|
|
|
|
//把trunklineCarsOrderVOS中所有元素的mallPerson去重后放入一个Set
|
|
|
|
|
Set<String> mallPersonSet = trunklineCarsOrderVOS.stream() |
|
|
|
|
.map(TrunklineCarsOrderVO::getMallPerson) |
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
mallPersonSet.add(trunklineLoadSignOrderEntity.getMallName()); |
|
|
|
|
trunklineLoadSignOrderEntity.setMallPerson(String.join(",",mallPersonSet)); |
|
|
|
|
Set<String> mallMobileSet = trunklineCarsOrderVOS.stream() |
|
|
|
|
.map(TrunklineCarsOrderVO::getMallMobile) |
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
mallMobileSet.add(trunklineLoadSignOrderEntity.getMallMobile()); |
|
|
|
|
trunklineLoadSignOrderEntity.setMallMobile(String.join(",",mallMobileSet)); |
|
|
|
|
Set<String> mallAddressSet = trunklineCarsOrderVOS.stream() |
|
|
|
|
.map(TrunklineCarsOrderVO::getMallMobile) |
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
mallAddressSet.add(trunklineLoadSignOrderEntity.getMallAddress()); |
|
|
|
|
trunklineLoadSignOrderEntity.setMallAddress(String.join(",",mallAddressSet)); |
|
|
|
|
int plan = trunklineCarsOrderVOS.stream().mapToInt(TrunklineCarsOrderVO::getPlanNum).sum() + trunklineLoadSignOrderEntity.getPlanNum(); |
|
|
|
|
trunklineLoadSignOrderEntity.setPlanNum(plan); |
|
|
|
|
trunklineLoadSignOrderEntity.setLoadingNum(trunklineCarsOrderVOS.stream().mapToInt(TrunklineCarsOrderVO::getRealNum).sum()+trunklineLoadSignOrderEntity.getLoadingNum()); |
|
|
|
|
Integer signNum = trunklineLoadSignOrderEntity.getSignNum(); |
|
|
|
|
if(signNum >= plan){ |
|
|
|
|
trunklineLoadSignOrderEntity.setSignStatus("20"); |
|
|
|
|
}else if(signNum == 0){ |
|
|
|
|
trunklineLoadSignOrderEntity.setSignStatus("0"); |
|
|
|
|
}else{ |
|
|
|
|
trunklineLoadSignOrderEntity.setSignStatus("10"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
trunklineLoadSignOrderService.saveOrUpdate(trunklineLoadSignOrderEntity); |
|
|
|
|
Long signOrderId = trunklineLoadSignOrderEntity.getId(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trunklineCarsOrderVOS.forEach(trunklineCarsOrderVO -> { |
|
|
|
|
Long nodeId = trunklineCarsOrderVO.getNodeId(); |
|
|
|
|
String waybillNo = trunklineCarsOrderVO.getWaybillNo(); |
|
|
|
|
String orderCode = trunklineCarsOrderVO.getOrderCode(); |
|
|
|
|
TrunklineCarsOrderEntity updateCarsOrder = new TrunklineCarsOrderEntity(); |
|
|
|
|
updateCarsOrder.setId(trunklineCarsOrderVO.getId()); |
|
|
|
|
updateCarsOrder.setNodeId(nodeId); |
|
|
|
|
updateCarsOrder.setWaybillNo(waybillNo); |
|
|
|
|
updateCarsOrder.setOrderCode(orderCode); |
|
|
|
|
updateCarsOrder.setIsCustomer("1"); |
|
|
|
|
updateCarsOrder.setSignOrderId(signOrderId); |
|
|
|
|
updateCarsOrderList.add(updateCarsOrder); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
//生成直发商家签收单
|
|
|
|
|
createCustomerSignOrder(loadId, warehouseId); |
|
|
|
|
if(CollUtil.isNotEmpty(updateCarsOrderList)){ |
|
|
|
|
trunklineCarsOrderService.updateBatchById(updateCarsOrderList); |
|
|
|
|
updateCarsOrderList.forEach(e -> { |
|
|
|
|
Long nodeId = e.getNodeId(); |
|
|
|
|
String orderCode = e.getOrderCode(); |
|
|
|
|
String waybillNo = e.getWaybillNo(); |
|
|
|
|
Long signOrderId = e.getSignOrderId(); |
|
|
|
|
trunklineCarsLoadScanService.addSignOrderIdByLoadIdAndNodeIdAndOrderCodeAndWaybillNo(finalLoadId, nodeId, orderCode, waybillNo, signOrderId); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
}else{ |
|
|
|
|
//直发商家移除
|
|
|
|
|
List<Long> dealwithCarsOrderIdList = new ArrayList<>(); |
|
|
|
|
List<TrunklineCarsOrderEntity> carsOrderEntityList = trunklineCarsOrderService.listByIds(carsOrderIdList); |
|
|
|
|
//移除carsOrderEntityList中signNum不为0的元素
|
|
|
|
|
carsOrderEntityList.removeIf(e -> e.getSignNum() != 0); |
|
|
|
|
//把carsOrderEntityList通过signOrderId进行分组
|
|
|
|
|
Map<Long, List<TrunklineCarsOrderEntity>> collect = carsOrderEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsOrderEntity::getSignOrderId)); |
|
|
|
|
Set<Long> signOrderIds = collect.keySet(); |
|
|
|
|
List<TrunklineLoadSignOrderEntity> signOrderEntityList = trunklineLoadSignOrderService.listByIds(signOrderIds); |
|
|
|
|
//把signOrderEntityList转化成id为key的Map
|
|
|
|
|
Map<Long, TrunklineLoadSignOrderEntity> signOrderEntityMap = signOrderEntityList.stream().collect(Collectors.toMap(TrunklineLoadSignOrderEntity::getId, Function.identity())); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<TrunklineCarsOrderEntity> updateCarsOrderList = new ArrayList<>(); |
|
|
|
|
List<TrunklineLoadSignOrderEntity> updateSignOrderList = new ArrayList<>(); |
|
|
|
|
List<Long> delSignOrderList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
Long finalLoadId1 = loadId; |
|
|
|
|
collect.keySet().forEach(signOrderId -> { |
|
|
|
|
List<TrunklineCarsOrderEntity> list = collect.get(signOrderId); |
|
|
|
|
TrunklineLoadSignOrderEntity trunklineLoadSignOrderEntity = signOrderEntityMap.get(signOrderId); |
|
|
|
|
//把list中所有元素的realNum求和
|
|
|
|
|
int sum = list.stream().mapToInt(TrunklineCarsOrderEntity::getRealNum).sum(); |
|
|
|
|
Integer planNum = trunklineLoadSignOrderEntity.getPlanNum(); |
|
|
|
|
Integer signNum = trunklineLoadSignOrderEntity.getSignNum(); |
|
|
|
|
if(sum < planNum){ |
|
|
|
|
//只是更新不删除
|
|
|
|
|
TrunklineLoadSignOrderEntity updateSignOrderEntity = new TrunklineLoadSignOrderEntity(); |
|
|
|
|
updateSignOrderEntity.setId(trunklineLoadSignOrderEntity.getId()); |
|
|
|
|
int diff = planNum - sum; |
|
|
|
|
updateSignOrderEntity.setPlanNum(diff); |
|
|
|
|
if(signNum >= diff){ |
|
|
|
|
updateSignOrderEntity.setSignStatus("20"); |
|
|
|
|
}else if(signNum == 0){ |
|
|
|
|
updateSignOrderEntity.setSignStatus("0"); |
|
|
|
|
}else{ |
|
|
|
|
updateSignOrderEntity.setSignStatus("10"); |
|
|
|
|
} |
|
|
|
|
updateSignOrderList.add(updateSignOrderEntity); |
|
|
|
|
}else{ |
|
|
|
|
//删除
|
|
|
|
|
delSignOrderList.add(signOrderId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
list.forEach(e -> { |
|
|
|
|
TrunklineCarsOrderEntity carsOrderEntity = new TrunklineCarsOrderEntity(); |
|
|
|
|
carsOrderEntity.setOrderCode(e.getOrderCode()); |
|
|
|
|
carsOrderEntity.setWaybillNo(e.getWaybillNo()); |
|
|
|
|
carsOrderEntity.setLoadId(finalLoadId1); |
|
|
|
|
carsOrderEntity.setNodeId(e.getNodeId()); |
|
|
|
|
updateCarsOrderList.add(carsOrderEntity); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
if(CollUtil.isNotEmpty(updateSignOrderList)){ |
|
|
|
|
trunklineLoadSignOrderService.updateBatchById(updateSignOrderList); |
|
|
|
|
} |
|
|
|
|
if(CollUtil.isNotEmpty(delSignOrderList)){ |
|
|
|
|
trunklineLoadSignOrderService.deleteListBySignOrderIds(delSignOrderList); |
|
|
|
|
} |
|
|
|
|
if(CollUtil.isNotEmpty(updateCarsOrderList)){ |
|
|
|
|
//把updateCarsOrderIdList所有的id放入一个List
|
|
|
|
|
List<Long> updateCarsOrderIdList = updateCarsOrderList.stream().map(TrunklineCarsOrderEntity::getId).collect(Collectors.toList()); |
|
|
|
|
trunklineCarsOrderService.updateNoCustomer(updateCarsOrderIdList); |
|
|
|
|
updateCarsOrderList.forEach(e -> { |
|
|
|
|
Long nodeId = e.getNodeId(); |
|
|
|
|
String orderCode = e.getOrderCode(); |
|
|
|
|
String waybillNo = e.getWaybillNo(); |
|
|
|
|
trunklineCarsLoadScanService.clearSignOrderIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(finalLoadId1,nodeId,orderCode,waybillNo); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<TrunklineLoadSignOrderEntity> signOrderList =trunklineLoadSignOrderService.findSignOrderListByLoadId(loadId); |
|
|
|
|
String isCustomer1 = carsLoadEntity.getIsCustomer(); |
|
|
|
|
if(CollUtil.isNotEmpty(signOrderList)){ |
|
|
|
|
if("2".equals(isCustomer1)){ |
|
|
|
|
carsLoadEntity.setIsCustomer("1"); |
|
|
|
|
updateById(carsLoadEntity); |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
if("1".equals(isCustomer1)){ |
|
|
|
|
carsLoadEntity.setIsCustomer("2"); |
|
|
|
|
updateById(carsLoadEntity); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return R.success("更新成功"); |
|
|
|
|
} |
|
|
|
@ -4776,12 +4956,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
log.warn("##############signScanPackageCode: 签收单信息不存在 signOrderId={}", signOrderId); |
|
|
|
|
throw new CustomerException(405, "签收单信息不存在"); |
|
|
|
|
} |
|
|
|
|
Integer loadingNum = trunklineCarsOrderService.findLoadingNumBySignOrderId(signOrderId); |
|
|
|
|
int loadingNum = trunklineCarsOrderService.findLoadingNumBySignOrderId(signOrderId); |
|
|
|
|
|
|
|
|
|
Integer signNum = trunklineCarsOrderService.findSignNumBySignOrderId(signOrderId); |
|
|
|
|
Integer realSignNum = trunklineCarsLoadScanService.findRealSignNumBySignOrderId(signOrderId); |
|
|
|
|
int signNum = trunklineCarsOrderService.findSignNumBySignOrderId(signOrderId); |
|
|
|
|
int realSignNum = trunklineCarsLoadScanService.findRealSignNumBySignOrderId(signOrderId); |
|
|
|
|
signOrderEntity.setSignNum(realSignNum); |
|
|
|
|
if (signNum.equals(loadingNum)) { |
|
|
|
|
if (signNum >= loadingNum) { |
|
|
|
|
signOrderEntity.setSignStatus("20"); |
|
|
|
|
signOrderEntity.setSignTime(new Date()); |
|
|
|
|
} else { |
|
|
|
@ -4919,7 +5099,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
|
|
|
|
|
|
|
|
|
|
Set<Long> loadIds = new HashSet<>(); |
|
|
|
|
//把list通过signOrderId进行分组
|
|
|
|
|
Map<Long, List<TrunklineCarsLoadScanVO>> map = list.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanVO::getSignOrderId)); |
|
|
|
|
Map<Long, List<TrunklineCarsLoadScanVO>> map = list.stream().filter(e -> !Objects.isNull(e.getSignOrderId())).collect(Collectors.groupingBy(TrunklineCarsLoadScanVO::getSignOrderId)); |
|
|
|
|
map.keySet().forEach(e -> { |
|
|
|
|
List<TrunklineCarsLoadScanVO> trunklineCarsLoadScanVOS = map.get(e);//该签收单对应的包件
|
|
|
|
|
trunklineCarsLoadScanVOS.forEach(t -> { |
|
|
|
|