|
|
|
@ -237,6 +237,12 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
// HashSet serviceNumber = new HashSet();
|
|
|
|
|
HashSet<String> serviceNumber = new HashSet<>(); |
|
|
|
|
|
|
|
|
|
HashSet<String> warehouseNames = new HashSet<>(); |
|
|
|
|
|
|
|
|
|
HashSet<String> storeName = new HashSet<>(); |
|
|
|
|
|
|
|
|
|
HashSet<String> mallName = new HashSet<>(); |
|
|
|
|
|
|
|
|
|
AtomicReference<BigDecimal> initTotal = new AtomicReference<>(BigDecimal.ZERO); |
|
|
|
|
|
|
|
|
|
//存在订单构建预约订单关联信息
|
|
|
|
@ -244,6 +250,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
//存在订单的情况下才会对预约和包件的关系进行维护
|
|
|
|
|
//选择了订单但是未进行包件的选择,默认选择了订单下的所有在库包件
|
|
|
|
|
stockArticleList.forEach(s -> { |
|
|
|
|
storeName.add(s.getStoreName()); |
|
|
|
|
mallName.add(s.getMallName()); |
|
|
|
|
warehouseNames.add(s.getWarehouse()); |
|
|
|
|
orderNumber.add(s.getOrderCode()); |
|
|
|
|
serviceNumber.add(s.getServiceNumber()); |
|
|
|
|
// DistributionStockArticleEntity stockArticleEntity = Func.copy(s, DistributionStockArticleEntity.class);
|
|
|
|
@ -292,7 +301,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
}); |
|
|
|
|
// s.setReservationStatus(ServiceConstant.ORDER_RESERVATION_STATE_PART);
|
|
|
|
|
//设置订单可用数量为
|
|
|
|
|
s.setAvailableQuantity(s.getHandQuantity() - s.getReservationNum()); |
|
|
|
|
// s.setAvailableQuantity(s.getHandQuantity() - s.getReservationNum());
|
|
|
|
|
//这里查询到当前订单下的包件信息和选中包件进行比对,如果数量一致那么说明该订单是已预约状态、否则为部分预约状态
|
|
|
|
|
LambdaQueryWrapper<DistributionParcelListEntity> qw = new QueryWrapper<DistributionParcelListEntity>().lambda().eq(DistributionParcelListEntity::getStockArticleId, s.getId()); |
|
|
|
|
List<DistributionParcelListEntity> parcelListEntities = distributionParcelListService.getBaseMapper().selectList(qw); |
|
|
|
@ -346,6 +355,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
// str = str.replaceFirst(",","");
|
|
|
|
|
//拼接在库和库存订单编号
|
|
|
|
|
reservationEntity.setStockArticleId(str); |
|
|
|
|
reservationEntity.setWarehouseName(String.join(",",warehouseNames)); |
|
|
|
|
reservationEntity.setMallName(String.join(",",mallName)); |
|
|
|
|
reservationEntity.setStoreName(String.join(",",storeName)); |
|
|
|
|
//统计数量
|
|
|
|
|
BigDecimal fee = initTotal.get().add(reservationEntity.getOtherFee()); |
|
|
|
|
reservationEntity.setFee(fee); |
|
|
|
@ -499,7 +511,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
// //预约单号拼接
|
|
|
|
|
// AtomicInteger reservationNum = new AtomicInteger();
|
|
|
|
|
//订单编号
|
|
|
|
|
StringBuilder orderIds = new StringBuilder(); |
|
|
|
|
// StringBuilder orderIds = new StringBuilder();
|
|
|
|
|
//库存品编号
|
|
|
|
|
StringBuilder stockListId = new StringBuilder(); |
|
|
|
|
//订单自编号
|
|
|
|
@ -536,6 +548,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
distributionStockupEntity.setTypeService(DistributionTypeConstant.shipie.getValue()); |
|
|
|
|
distributionStockupService.save(distributionStockupEntity); |
|
|
|
|
} |
|
|
|
|
HashSet<String> warehouseNames = new HashSet<>(); |
|
|
|
|
for (int i = 0; i < ids.size(); i++) { |
|
|
|
|
DistributionReservationEntity reservationEntity = this.getById(ids.get(i)); |
|
|
|
|
if (Func.equals(reservationEntity.getStockupStatus(), ReservationStockupStatusConstant.weibeihuo.getValue())) { |
|
|
|
@ -568,11 +581,14 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
w.lambda().eq(DistributionReservationStocklistEntity::getReservationId, reservationEntity.getId()); |
|
|
|
|
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationStockarticleService.getBaseMapper().selectList(q); |
|
|
|
|
List<DistributionReservationStocklistEntity> reservationStocklistEntityList = distributionReservationStocklistService.getBaseMapper().selectList(w); |
|
|
|
|
|
|
|
|
|
//查询预约单下的包件信息
|
|
|
|
|
if (!Func.isEmpty(reservationStockarticleEntityList)) { |
|
|
|
|
|
|
|
|
|
reservationStockarticleEntityList.forEach(r -> { |
|
|
|
|
//查询订单信息,完成对订单的信息修改
|
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(r.getStockArticleId()); |
|
|
|
|
warehouseNames.add(stockArticleEntity.getWarehouse()); |
|
|
|
|
//这里查询出订单下所有包件信息的长度,和预约的包件进行比对,如果一致那么订单状态为已预约否则为部分预约
|
|
|
|
|
QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>(); |
|
|
|
|
queryWrapper.lambda().eq(DistributionParcelListEntity::getStockArticleId, r.getStockArticleId()); |
|
|
|
@ -585,7 +601,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
} |
|
|
|
|
//拼接订单编号
|
|
|
|
|
orderIds.append(stockArticleEntity.getId()).append(","); |
|
|
|
|
// orderIds.append(stockArticleEntity.getId()).append(",");
|
|
|
|
|
//拼接订单自编号
|
|
|
|
|
hashSet.add(stockArticleEntity.getOrderCode()); |
|
|
|
|
//存在数据来源,维护订单、包件和配送的关系
|
|
|
|
@ -666,19 +682,20 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
driverNames.append(a.getDriver()).append(","); |
|
|
|
|
}); |
|
|
|
|
distributionDeliveryListEntity.setKind(ServiceConstant.DELIVERLIST_KIND_SELF); |
|
|
|
|
distributionDeliveryListEntity.setDistributionCompany("汇通"); |
|
|
|
|
distributionDeliveryListEntity.setDriverName(driverNames.deleteCharAt(driverNames.length() - 1).toString()); |
|
|
|
|
distributionDeliveryListEntity.setVehicleName(vehicleNubs.deleteCharAt(vehicleNubs.length() - 1).toString()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
distributionDeliveryListEntity.setWarehouseName(String.join(",",warehouseNames)); |
|
|
|
|
distributionDeliveryListEntity.setDeliveryStatus(DeliveryStatusConstant.daipeisong.getValue()); |
|
|
|
|
distributionDeliveryListEntity.setCustomersNumber(reservationIds.split(",").length); |
|
|
|
|
distributionDeliveryListEntity.setOrderNumber(orderNum.get()); |
|
|
|
|
distributionDeliveryListEntity.setType(DistributionTypeConstant.shipie.getValue()); |
|
|
|
|
distributionDeliveryListEntity.setOrderCode(String.join(",", hashSet)); |
|
|
|
|
if (orderIds.length() > 1) { |
|
|
|
|
distributionDeliveryListEntity.setOrderId(orderIds.deleteCharAt(orderIds.length() - 1).toString()); |
|
|
|
|
} |
|
|
|
|
distributionDeliveryListEntity.setReservationId(reservationIds); |
|
|
|
|
// if (orderIds.length() > 1) {
|
|
|
|
|
// distributionDeliveryListEntity.setOrderId(orderIds.deleteCharAt(orderIds.length() - 1).toString());
|
|
|
|
|
// }
|
|
|
|
|
// distributionDeliveryListEntity.setReservationId(reservationIds);
|
|
|
|
|
distributionDeliveryListEntity.setDeliveryNumber(packageNum.get()); |
|
|
|
|
distributionDeliveryListService.updateById(distributionDeliveryListEntity); |
|
|
|
|
return R.status(true); |
|
|
|
@ -731,6 +748,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
Map<Long, List<DistributionStockArticleDTO>> newStockArticle = dtoStockArticleList.stream().collect(Collectors.groupingBy(DistributionStockArticleDTO::getId)); |
|
|
|
|
AtomicInteger packTotal = new AtomicInteger(); |
|
|
|
|
AtomicInteger reduceTotal = new AtomicInteger(); |
|
|
|
|
HashSet<String> warehouseNames = new HashSet<>(); |
|
|
|
|
HashSet<String> mallName = new HashSet<>(); |
|
|
|
|
HashSet<String> storeName = new HashSet<>(); |
|
|
|
|
newStockArticle.forEach((k, v) -> { |
|
|
|
|
if (Func.isEmpty(oldStockArticle.get(k))) { |
|
|
|
|
//这里发生了新增订单的操作
|
|
|
|
@ -762,9 +782,15 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleService.getById(distributionStockArticleDTO.getId()); |
|
|
|
|
stockArticleEntity.setReservationStatus(status); |
|
|
|
|
distributionStockArticleService.updateById(stockArticleEntity); |
|
|
|
|
warehouseNames.add(stockArticleEntity.getWarehouse()); |
|
|
|
|
mallName.add(stockArticleEntity.getMallName()); |
|
|
|
|
storeName.add(stockArticleEntity.getStoreName()); |
|
|
|
|
} else { |
|
|
|
|
//查询出这个订单原来在这个预约中的勾选情况
|
|
|
|
|
DistributionStockArticleDTO distributionStockArticleDTO = v.get(0); |
|
|
|
|
warehouseNames.add(distributionStockArticleDTO.getWarehouse()); |
|
|
|
|
mallName.add(distributionStockArticleDTO.getMallName()); |
|
|
|
|
storeName.add(distributionStockArticleDTO.getStoreName()); |
|
|
|
|
List<DistributionReservationPackageEntity> packageEntityList = distributionReservationPackageMapper.selectPackageByReservationAndStockArticleId(id, k); |
|
|
|
|
Map<Long, List<DistributionReservationPackageEntity>> oldPackage = packageEntityList.stream().collect(Collectors.groupingBy(DistributionReservationPackageEntity::getParceListId)); |
|
|
|
|
Map<Long, List<DistributionParcelListEntity>> newPackage = distributionStockArticleDTO.getPackageListInfo().stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getId)); |
|
|
|
@ -890,10 +916,13 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
DistributionReservationEntity reservationEntity = this.getById(id); |
|
|
|
|
Integer reservationNum = reservationEntity.getReservationNum(); |
|
|
|
|
reservationEntity.setOtherFee(distributionReservationDTO.getOtherFee()); |
|
|
|
|
reservationEntity.setDeliveryType(distributionReservationDTO.getDeliveryType()); |
|
|
|
|
reservationEntity.setWarehouseName(String.join(",",warehouseNames)); |
|
|
|
|
reservationEntity.setDeliveryType(DistributionTypeConstant.shipie.getValue()); |
|
|
|
|
reservationEntity.setDeliveryWay(distributionReservationDTO.getDeliveryWay()); |
|
|
|
|
reservationEntity.setServeType(distributionReservationDTO.getServeType()); |
|
|
|
|
reservationEntity.setReservationNum(packTotal.get()); |
|
|
|
|
reservationEntity.setMallName(String.join(",",mallName)); |
|
|
|
|
reservationEntity.setStoreName(String.join(",",storeName)); |
|
|
|
|
reservationEntity.setReservationStockListNum(inventorTotal.get()); |
|
|
|
|
reservationEntity.setReservationDate(distributionReservationDTO.getReservationDate()); |
|
|
|
|
reservationEntity.setPeriodOfTime(distributionReservationDTO.getPeriodOfTime()); |
|
|
|
@ -970,7 +999,12 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
//订单拼接
|
|
|
|
|
// StringBuilder orderSelfNumbering = new StringBuilder();
|
|
|
|
|
HashSet<String> orderNumber = new HashSet<>(); |
|
|
|
|
HashSet<String> orderIds = new HashSet<>(); |
|
|
|
|
HashSet<String> serviceNumber = new HashSet<>(); |
|
|
|
|
HashSet<String> warehouseName = new HashSet<>(); |
|
|
|
|
HashSet<String> deliveryWarehouseName = new HashSet<>(); |
|
|
|
|
HashSet<String> mallName = new HashSet<>(); |
|
|
|
|
HashSet<String> storeName = new HashSet<>(); |
|
|
|
|
mallClient.forEach((k, v) -> { |
|
|
|
|
if (!Func.isBlank(k)) { |
|
|
|
|
////统计客户数
|
|
|
|
@ -982,7 +1016,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
reservationEntity.setConsignee(k); |
|
|
|
|
reservationEntity.setDeliveryAddress(v.get(0).getCustomerAddress()); |
|
|
|
|
reservationEntity.setDeliveryPhone(v.get(0).getCustomerTelephone()); |
|
|
|
|
reservationEntity.setDeliveryType(ReservationDeliveryTypeConstant.songhuo.getValue()); |
|
|
|
|
reservationEntity.setDeliveryType(DistributionTypeConstant.shangpei.getValue()); |
|
|
|
|
reservationEntity.setReservationStatus(ReservationStatusConstant.daipeisong.getValue()); |
|
|
|
|
reservationEntity.setStockupStatus(ReservationStockupStatusConstant.daibeihuo.getValue()); |
|
|
|
|
reservationEntity.setReservationCode(Func.random(13, RandomType.INT)); |
|
|
|
@ -1002,12 +1036,15 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
v.forEach(a -> { |
|
|
|
|
orderTotal.getAndIncrement(); |
|
|
|
|
DistributionStockArticleEntity stockArticleEntity = Func.copy(a, DistributionStockArticleEntity.class); |
|
|
|
|
if (stockArticleEntity.getMallId() == -1) { |
|
|
|
|
stockArticleEntity.setMallId(null); |
|
|
|
|
} |
|
|
|
|
if (stockArticleEntity.getStoreId() == -1) { |
|
|
|
|
stockArticleEntity.setStoreId(null); |
|
|
|
|
} |
|
|
|
|
// if (stockArticleEntity.getMallId() == -1) {
|
|
|
|
|
// stockArticleEntity.setMallId(null);
|
|
|
|
|
// }
|
|
|
|
|
// if (stockArticleEntity.getStoreId() == -1) {
|
|
|
|
|
// stockArticleEntity.setStoreId(null);
|
|
|
|
|
// }
|
|
|
|
|
warehouseName.add(stockArticleEntity.getWarehouse()); |
|
|
|
|
mallName.add(stockArticleEntity.getMallName()); |
|
|
|
|
storeName.add(stockArticleEntity.getStoreName()); |
|
|
|
|
//维护订单数据,订单状态直接变更未待配送
|
|
|
|
|
// stockArticleEntity.setOrderStatus();
|
|
|
|
|
// distributionStockArticleService.updateById(stockArticleEntity);
|
|
|
|
@ -1072,6 +1109,9 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
//这里将预约信息进行完善
|
|
|
|
|
reservationEntity.setStockArticleId(String.join(",", orderNumber)); |
|
|
|
|
reservationEntity.setServiceNumber(String.join(",", serviceNumber)); |
|
|
|
|
reservationEntity.setWarehouseName(String.join(",", warehouseName)); |
|
|
|
|
reservationEntity.setMallName(String.join(",", mallName)); |
|
|
|
|
reservationEntity.setStoreName(String.join(",", storeName)); |
|
|
|
|
//预约添加订单数量
|
|
|
|
|
reservationEntity.setReservationNum(packageTotal.get()); |
|
|
|
|
this.updateById(reservationEntity); |
|
|
|
@ -1080,6 +1120,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
distributionSignforEntity.setTrainNumber(str); |
|
|
|
|
distributionSignforEntity.setDeliveryId(distributionDeliveryListEntity.getId()); |
|
|
|
|
distributionSignforService.save(distributionSignforEntity); |
|
|
|
|
deliveryWarehouseName.add(reservationEntity.getWarehouseName()); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
//判断是否为自主配送
|
|
|
|
@ -1137,6 +1178,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
|
|
|
|
|
if (!Func.isEmpty(taskTime)) { |
|
|
|
|
distributionDeliveryListEntity.setTaskTime(taskTime); |
|
|
|
|
} |
|
|
|
|
distributionDeliveryListEntity.setWarehouseName(String.join(",",deliveryWarehouseName)); |
|
|
|
|
distributionDeliveryListEntity.setOrderCode(String.join(",", orderNumber)); |
|
|
|
|
distributionDeliveryListEntity.setOrderNumber(orderTotal.get()); |
|
|
|
|
// distributionDeliveryListEntity.setDeliveryNumber(packageTotal.get());
|
|
|
|
|