|
|
|
@ -4436,21 +4436,25 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//查询出该签收任务下的客户对应的所有包件和库存品信息
|
|
|
|
|
List<String> orderCodes = new ArrayList<>(); |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.selectPackageListByReservationId(distributionSignforEntity.getReservationId()); |
|
|
|
|
//包件不需要考虑备货、装车直接可进行签收 过滤已装车的包件
|
|
|
|
|
// List<DistributionParcelListEntity> noLoadingPackage = parcelListEntityList.stream().filter(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue())).collect(Collectors.toList());
|
|
|
|
|
//查询该客户下的所有零担信息
|
|
|
|
|
List<DistributionParcelNumberDTO> parcelNumberEntityList = distributionReservationMapper.selectZeroPackageListByReservationId(distributionSignforEntity.getReservationId()); |
|
|
|
|
if (Func.isNotEmpty(parcelNumberEntityList)) { |
|
|
|
|
loadingPackageNum += parcelNumberEntityList.stream().mapToInt(DistributionParcelNumberDTO::getReservationNum).sum(); |
|
|
|
|
signingPackageNum += parcelNumberEntityList.stream().mapToInt(DistributionParcelNumberDTO::getReservationNum).sum(); |
|
|
|
|
// loadingPackageNum += parcelNumberEntityList.stream().mapToInt(DistributionParcelNumberDTO::getReservationNum).sum();
|
|
|
|
|
// signingPackageNum += parcelNumberEntityList.stream().mapToInt(DistributionParcelNumberDTO::getReservationNum).sum();
|
|
|
|
|
for (DistributionParcelNumberDTO parcelNumberEntity : parcelNumberEntityList) { |
|
|
|
|
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(parcelNumberEntity.getParcelListId()); |
|
|
|
|
DistributionLoadscanEntity distributionLoadscanEntity = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getReservationId, distributionSignforEntity.getReservationId()).eq(DistributionLoadscanEntity::getPackageId, parcelNumberEntity.getParcelListId()).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); |
|
|
|
|
DistributionParcelNumberEntity parcelNumberServiceById = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, parcelNumberEntity.getId())); |
|
|
|
|
Integer outboundQuantity = 0; |
|
|
|
|
Integer signinQuantity = 0; |
|
|
|
|
Integer deliveryQuantity = 0; |
|
|
|
|
Integer handQuantity = 0; |
|
|
|
|
DistributionParcelNumberEntity parcelNumberServiceById = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda() |
|
|
|
|
.eq(DistributionParcelNumberEntity::getParcelListId, parcelNumberEntity.getId()) |
|
|
|
|
); |
|
|
|
|
// Integer outboundQuantity = 0;
|
|
|
|
|
// Integer signinQuantity = 0;
|
|
|
|
|
// Integer deliveryQuantity = 0;
|
|
|
|
|
// Integer handQuantity = 0;
|
|
|
|
|
if (Func.isNotEmpty(distributionLoadscanEntity)) { |
|
|
|
|
//情况列举:
|
|
|
|
|
// 1、装车件数未按照计划数量
|
|
|
|
@ -4458,44 +4462,17 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
// 3、部分签收
|
|
|
|
|
// 4、完成签收
|
|
|
|
|
//不论什么情况均进行一次重新签收维护数量
|
|
|
|
|
DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, parcelNumberEntity.getId())); |
|
|
|
|
|
|
|
|
|
if (distributionLoadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())) { |
|
|
|
|
//装车数量和签收数量只会一样,
|
|
|
|
|
if (distributionLoadscanEntity.getReceivedQuantity() > 0 && distributionLoadscanEntity.getReceivedQuantity() <= parcelNumberEntity.getReservationNum()) { |
|
|
|
|
outboundQuantity = distributionParcelNumberEntity.getOutboundQuantity() + distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum(); |
|
|
|
|
signinQuantity = distributionParcelNumberEntity.getSigninQuantity() + distributionLoadscanEntity.getReceivedQuantity() - parcelNumberEntity.getReservationNum(); |
|
|
|
|
deliveryQuantity = distributionParcelNumberEntity.getDeliveryQuantity() + distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum(); |
|
|
|
|
handQuantity = distributionParcelNumberEntity.getHandQuantity() + distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum(); |
|
|
|
|
//装车按照计划完成装车
|
|
|
|
|
distributionLoadscanEntity.setPackageNub(parcelNumberEntity.getReservationNum()); |
|
|
|
|
distributionLoadscanEntity.setLoadedNub(parcelNumberEntity.getReservationNum()); |
|
|
|
|
distributionLoadscanEntity.setReceivedQuantity(parcelNumberEntity.getReservationNum()); |
|
|
|
|
distributionLoadscanService.updateById(distributionLoadscanEntity); |
|
|
|
|
packageLockIds.add(distributionLoadscanEntity.getPackageId()); |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
log.error("################扫描签收零担订单数量异常:{}", distributionLoadscanEntity); |
|
|
|
|
return Resp.scanFail("数量录入错误", "数量录入错误"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else if (distributionLoadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.weiqianshou.getValue())) { |
|
|
|
|
outboundQuantity = distributionParcelNumberEntity.getOutboundQuantity() + (distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum()); |
|
|
|
|
signinQuantity = distributionParcelNumberEntity.getSigninQuantity() + distributionLoadscanEntity.getReceivedQuantity(); |
|
|
|
|
deliveryQuantity = distributionParcelNumberEntity.getDeliveryQuantity() + (distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum()); |
|
|
|
|
handQuantity = distributionParcelNumberEntity.getHandQuantity() + (distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum()); |
|
|
|
|
distributionLoadscanEntity.setReceivedQuantity(parcelNumberEntity.getReservationNum()); |
|
|
|
|
distributionLoadscanEntity.setLoadedNub(parcelNumberEntity.getReservationNum()); |
|
|
|
|
distributionLoadscanEntity.setPackageNub(parcelNumberEntity.getReservationNum()); |
|
|
|
|
distributionLoadscanEntity.setSignforState(LoadScanSigningStatusConstant.yiqianshou.getValue()); |
|
|
|
|
if (distributionSignfor.getIsClerk()) { |
|
|
|
|
distributionLoadscanEntity.setMsg("文员一键签收数据补录"); |
|
|
|
|
} else { |
|
|
|
|
distributionLoadscanEntity.setMsg("司机一键签收数据补录"); |
|
|
|
|
} |
|
|
|
|
distributionLoadscanService.updateById(distributionLoadscanEntity); |
|
|
|
|
packageLockIds.add(distributionLoadscanEntity.getPackageId()); |
|
|
|
|
} |
|
|
|
|
// DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.<DistributionParcelNumberEntity>query().lambda().eq(DistributionParcelNumberEntity::getParcelListId, parcelNumberEntity.getId()));
|
|
|
|
|
//扣除在库数量
|
|
|
|
|
parcelNumberServiceById.setHandQuantity(parcelNumberServiceById.getHandQuantity() + distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum()); |
|
|
|
|
//扣除冻结数量
|
|
|
|
|
parcelNumberServiceById.setDeliveryQuantity(parcelNumberServiceById.getDeliveryQuantity() + distributionLoadscanEntity.getLoadedNub() - parcelNumberEntity.getReservationNum()); |
|
|
|
|
//维护出库数量
|
|
|
|
|
parcelNumberServiceById.setOutboundQuantity(parcelNumberServiceById.getOutboundQuantity() - distributionLoadscanEntity.getLoadedNub() + parcelNumberEntity.getReservationNum()); |
|
|
|
|
//维护签收数量
|
|
|
|
|
parcelNumberServiceById.setSigninQuantity(parcelNumberServiceById.getSigninQuantity() - distributionLoadscanEntity.getLoadedNub() + parcelNumberEntity.getReservationNum()); |
|
|
|
|
loadingPackageNum += (parcelNumberEntity.getReservationNum()- distributionLoadscanEntity.getLoadedNub()); |
|
|
|
|
signingPackageNum += (parcelNumberEntity.getReservationNum()- distributionLoadscanEntity.getLoadedNub()); |
|
|
|
|
} else { |
|
|
|
|
//不存在装车数据
|
|
|
|
|
DistributionLoadscanEntity loadscanEntity = new DistributionLoadscanEntity(); |
|
|
|
@ -4543,21 +4520,27 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
} |
|
|
|
|
distributionLoadscanService.save(loadscanEntity); |
|
|
|
|
packageLockIds.add(loadscanEntity.getPackageId()); |
|
|
|
|
|
|
|
|
|
//扣除在库数量
|
|
|
|
|
parcelNumberServiceById.setHandQuantity(parcelNumberServiceById.getHandQuantity() - parcelNumberEntity.getReservationNum()); |
|
|
|
|
//扣除冻结数量
|
|
|
|
|
parcelNumberServiceById.setDeliveryQuantity(parcelNumberServiceById.getDeliveryQuantity() - parcelNumberEntity.getReservationNum()); |
|
|
|
|
//维护出库数量
|
|
|
|
|
parcelNumberServiceById.setOutboundQuantity(parcelNumberServiceById.getOutboundQuantity() + parcelNumberEntity.getReservationNum()); |
|
|
|
|
//维护签收数量
|
|
|
|
|
parcelNumberServiceById.setSigninQuantity(parcelNumberServiceById.getSigninQuantity() + parcelNumberEntity.getReservationNum()); |
|
|
|
|
loadingPackageNum += parcelNumberEntity.getReservationNum(); |
|
|
|
|
signingPackageNum += parcelNumberEntity.getReservationNum(); |
|
|
|
|
} |
|
|
|
|
//维护出库数量和签收数量
|
|
|
|
|
parcelNumberServiceById.setSigninQuantity(signinQuantity); |
|
|
|
|
parcelNumberServiceById.setDeliveryQuantity(deliveryQuantity); |
|
|
|
|
parcelNumberServiceById.setOutboundQuantity(outboundQuantity); |
|
|
|
|
parcelNumberServiceById.setHandQuantity(handQuantity); |
|
|
|
|
|
|
|
|
|
log.info(method + "维护零担信息:{}", parcelNumberServiceById); |
|
|
|
|
distributionParcelNumberService.updateById(parcelNumberServiceById); |
|
|
|
|
orderCodes.add(parcelListEntity.getOrderCode()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
String signingTime = simpleDateFormat.format(new Date()); |
|
|
|
|
List<Long> packageIds = new ArrayList<>(); |
|
|
|
|
List<String> packageCodes = new ArrayList<>(); |
|
|
|
|
List<String> orderCodes = new ArrayList<>(); |
|
|
|
|
if (Func.isNotEmpty(parcelListEntityList)) { |
|
|
|
|
loadingPackageNum += parcelListEntityList.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum(); |
|
|
|
|
signingPackageNum += parcelListEntityList.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum(); |
|
|
|
@ -4645,11 +4628,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
orderCodes.add(parcelListEntity.getOrderCode()); |
|
|
|
|
packageCodes.add(parcelListEntity.getOrderPackageCode()); |
|
|
|
|
} |
|
|
|
|
//批量维护订单信息
|
|
|
|
|
if (Func.isNotEmpty(orderCodes)) { |
|
|
|
|
String orderCode = orderCodes.stream().distinct().collect(Collectors.joining(",")); |
|
|
|
|
distributionStockArticleService.maintenanceOrderInfo(orderCode, myCurrentWarehouse.getId()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (Func.isNotEmpty(packageIds)) { |
|
|
|
@ -4670,6 +4648,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
|
|
|
|
|
warehouseUpdownTypeClient.downDeliveryPackage(map); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//批量维护订单信息
|
|
|
|
|
if (Func.isNotEmpty(orderCodes)) { |
|
|
|
|
String orderCode = orderCodes.stream().distinct().collect(Collectors.joining(",")); |
|
|
|
|
distributionStockArticleService.maintenanceOrderInfo(orderCode, myCurrentWarehouse.getId()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//维护客户信息状态
|
|
|
|
|
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getValue()); |
|
|
|
|