|
|
|
@ -2659,6 +2659,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
//客户数量
|
|
|
|
|
AtomicInteger deliveryPackageTotal = new AtomicInteger(); |
|
|
|
|
Date reservationDate = new Date(); |
|
|
|
|
List<DistributionReservationPackageEntity> allPackageList = new ArrayList<>(); |
|
|
|
|
List<DistributionReservationZeroPackageEntity> allZeroPackageList = new ArrayList<>(); |
|
|
|
|
newClient.forEach((k, v) -> { |
|
|
|
|
HashSet<String> orderNumber = new HashSet<>(); |
|
|
|
|
//运单号
|
|
|
|
@ -2709,6 +2711,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
reservationEntity.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getValue()); |
|
|
|
|
reservationEntity.setSigningStatus(ReservationSigningStatusConstant.daiqianshou.getValue()); |
|
|
|
|
reservationEntity.setStatus(1); |
|
|
|
|
Map<String,List> map = new HashMap<>(); |
|
|
|
|
String waybillNumbers = v.stream().map(DistributionStockArticleEntity::getWaybillNumber).distinct().collect(Collectors.joining(",")); |
|
|
|
|
String storeCodes = v.stream().map(DistributionStockArticleEntity::getStoreCode).distinct().collect(Collectors.joining(",")); |
|
|
|
|
List<Long> waybillIds = v.stream().map(DistributionStockArticleEntity::getWaybillId).distinct().collect(Collectors.toList()); |
|
|
|
@ -2774,6 +2777,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
if (s.getIsZero().equals(IsOrNoConstant.no.getValue())) { |
|
|
|
|
//现在前端进行订单提交必然会携带包件信息
|
|
|
|
|
List<DistributionParcelListDTO> packageListInfo = s.getPackageListInfo(); |
|
|
|
|
List<DistributionReservationPackageEntity> packageEntityList = new ArrayList<>(); |
|
|
|
|
reservationStockarticleEntity.setIsZero(s.getIsZero()); |
|
|
|
|
if (Func.isEmpty(packageListInfo)) { |
|
|
|
|
//添加该订单下可操作包件至计划中
|
|
|
|
@ -2797,6 +2801,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
distributionReservationPackageEntity.setParceListId(dp.getId()); |
|
|
|
|
distributionReservationPackageEntity.setStockArticleId(s.getId()); |
|
|
|
|
distributionReservationPackageEntity.setPacketBarCode(dp.getOrderPackageCode()); |
|
|
|
|
packageEntityList.add(distributionReservationPackageEntity); |
|
|
|
|
allPackageList.add(distributionReservationPackageEntity); |
|
|
|
|
//维护订单下包件信息
|
|
|
|
|
distributionReservationPackageService.save(distributionReservationPackageEntity); |
|
|
|
|
//此时订单下的所有包件都处于预约状态,可用数为0
|
|
|
|
@ -2823,6 +2829,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
reservationPackageEntity.setStockArticleId(s.getId()); |
|
|
|
|
reservationPackageEntity.setReservationId(reservationEntity.getId()); |
|
|
|
|
reservationPackageEntity.setParceListId(p.getId()); |
|
|
|
|
packageEntityList.add(reservationPackageEntity); |
|
|
|
|
allPackageList.add(reservationPackageEntity); |
|
|
|
|
distributionReservationPackageService.save(reservationPackageEntity); |
|
|
|
|
p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
distributionParcelListService.updateById(p); |
|
|
|
@ -2835,10 +2843,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
logs.add(js); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
if (!packageEntityList.isEmpty()) { |
|
|
|
|
map.put("1", packageEntityList); |
|
|
|
|
} |
|
|
|
|
//维护订单信息
|
|
|
|
|
distributionStockArticleService.maintenanceOrderInfo(s.getOrderCode(), myCurrentWarehouse.getId()); |
|
|
|
|
} else if (s.getIsZero().equals(IsOrNoConstant.yes.getValue())) { |
|
|
|
|
List<DistributionParcelNumberVO> parcelNumberVOS = s.getParcelNumberVOS(); |
|
|
|
|
List<DistributionReservationZeroPackageEntity> zeroPackageEntityList = new ArrayList<>(); |
|
|
|
|
reservationStockarticleEntity.setIsZero(s.getIsZero()); |
|
|
|
|
if (Func.isNotEmpty(parcelNumberVOS)) { |
|
|
|
|
//这里需要先进行是否满足
|
|
|
|
@ -2853,6 +2865,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
distributionReservationZeroPackageEntity.setParcelListId(p.getParcelListId()); |
|
|
|
|
distributionReservationZeroPackageEntity.setCategoryName(p.getFirsts()); |
|
|
|
|
distributionReservationZeroPackageEntity.setRealityQuantity(0); |
|
|
|
|
zeroPackageEntityList.add(distributionReservationZeroPackageEntity); |
|
|
|
|
allZeroPackageList.add(distributionReservationZeroPackageEntity); |
|
|
|
|
distributionReservationZeroPackageService.save(distributionReservationZeroPackageEntity); |
|
|
|
|
p.setDeliveryQuantity(p.getDeliveryQuantity() + p.getReservationNum()); |
|
|
|
|
distributionParcelNumberService.updateById(p); |
|
|
|
@ -2874,6 +2888,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
distributionReservationZeroPackageEntity.setParcelListId(l.getParcelListId()); |
|
|
|
|
distributionReservationZeroPackageEntity.setCategoryName(l.getFirsts()); |
|
|
|
|
distributionReservationZeroPackageEntity.setRealityQuantity(0); |
|
|
|
|
zeroPackageEntityList.add(distributionReservationZeroPackageEntity); |
|
|
|
|
allZeroPackageList.add(distributionReservationZeroPackageEntity); |
|
|
|
|
distributionReservationZeroPackageService.save(distributionReservationZeroPackageEntity); |
|
|
|
|
l.setDeliveryQuantity(l.getDeliveryQuantity() + l.getReservationNum()); |
|
|
|
|
distributionParcelNumberService.updateById(l); |
|
|
|
@ -2887,6 +2903,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
throw new RuntimeException(s.getOrderCode() + "无可用数量"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!zeroPackageEntityList.isEmpty()) { |
|
|
|
|
map.put("2",zeroPackageEntityList); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
log.error("########################订单isZero字段错误,订单ID:{}", s.getId()); |
|
|
|
|
} |
|
|
|
@ -2935,6 +2954,10 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
//预约添加订单数量
|
|
|
|
|
reservationEntity.setReservationNum(packageTotal.get()); |
|
|
|
|
distributionReservationMapper.updateById(reservationEntity); |
|
|
|
|
//推送广播
|
|
|
|
|
//进行节点推送
|
|
|
|
|
NodeFanoutMsg<ReservationVO> nodeFanoutMsg = distributionReservationService.buildNodeFanoutMsgByReservation(reservationEntity,map); |
|
|
|
|
distributionNodeWorkService.planReservation(nodeFanoutMsg, user); |
|
|
|
|
deliveryWarehouseName.add(reservationEntity.getWarehouseName()); |
|
|
|
|
deliveryPackageTotal.getAndAdd(reservationEntity.getReservationNum()); |
|
|
|
|
//建立这个预约和配送任务之间的关系
|
|
|
|
@ -2952,15 +2975,12 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
stockupInfoEntity.setStockUpType("1"); |
|
|
|
|
distributionStockupInfoService.save(stockupInfoEntity); |
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//根据配送计划和运单号查询出该预约
|
|
|
|
|
DistributionReservationEntity reservationEntity = baseMapper.selectReservationByDeliveryListIdAndCustomerUnit(deliveryListEntityId, k); |
|
|
|
|
DistributionSignforEntity signforEntity = distributionSignforService.getOne(Wrappers.<DistributionSignforEntity>query().lambda() |
|
|
|
|
.eq(DistributionSignforEntity::getReservationId, reservationEntity.getId()) |
|
|
|
|
.eq(DistributionSignforEntity::getDeliveryId, deliveryListEntity.getId()) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
//查询出该预约下的订单信息
|
|
|
|
|
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationStockarticleMapper.selectList(Wrappers.<DistributionReservationStockarticleEntity>query().lambda().eq(DistributionReservationStockarticleEntity::getReservationId, reservationEntity.getId()).ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue())); |
|
|
|
|
Map<Long, List<DistributionReservationStockarticleEntity>> oldOrder = reservationStockarticleEntityList.stream().collect(Collectors.groupingBy(DistributionReservationStockarticleEntity::getStockArticleId)); |
|
|
|
@ -3026,6 +3046,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
reservationPackageEntity.setReservationId(reservationEntity.getId()); |
|
|
|
|
reservationPackageEntity.setParceListId(p.getId()); |
|
|
|
|
distributionReservationPackageService.save(reservationPackageEntity); |
|
|
|
|
allPackageList.add(reservationPackageEntity); |
|
|
|
|
p.setOrderPackageReservationStatus(OrderPackageReservationStatusConstant.yiyueyue.getValue()); |
|
|
|
|
distributionParcelListService.updateById(p); |
|
|
|
|
packageLockIds.add(p.getId()); |
|
|
|
@ -3069,6 +3090,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
distributionReservationPackageEntity.setPacketBarCode(dp.getOrderPackageCode()); |
|
|
|
|
//维护订单下包件信息
|
|
|
|
|
distributionReservationPackageService.save(distributionReservationPackageEntity); |
|
|
|
|
allPackageList.add(distributionReservationPackageEntity); |
|
|
|
|
//此时订单下的所有包件都处于预约状态,可用数为0
|
|
|
|
|
orderPackageNum.getAndAdd(dp.getQuantity()); |
|
|
|
|
//修改订单下的包件状态
|
|
|
|
@ -3106,6 +3128,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
distributionReservationZeroPackageEntity.setParcelListId(p.getParcelListId()); |
|
|
|
|
distributionReservationZeroPackageEntity.setCategoryName(p.getFirsts()); |
|
|
|
|
distributionReservationZeroPackageEntity.setRealityQuantity(0); |
|
|
|
|
allZeroPackageList.add(distributionReservationZeroPackageEntity); |
|
|
|
|
distributionReservationZeroPackageService.save(distributionReservationZeroPackageEntity); |
|
|
|
|
p.setDeliveryQuantity(p.getDeliveryQuantity() + p.getReservationNum()); |
|
|
|
|
distributionParcelNumberService.updateById(p); |
|
|
|
@ -3127,6 +3150,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
distributionReservationZeroPackageEntity.setParcelListId(l.getParcelListId()); |
|
|
|
|
distributionReservationZeroPackageEntity.setCategoryName(l.getFirsts()); |
|
|
|
|
distributionReservationZeroPackageEntity.setRealityQuantity(0); |
|
|
|
|
allZeroPackageList.add(distributionReservationZeroPackageEntity); |
|
|
|
|
distributionReservationZeroPackageService.save(distributionReservationZeroPackageEntity); |
|
|
|
|
l.setDeliveryQuantity(l.getDeliveryQuantity() + l.getReservationNum()); |
|
|
|
|
distributionParcelNumberService.updateById(l); |
|
|
|
@ -3196,6 +3220,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
log.info(">>>>> 修改计划 验证包件是否存在 {}", isExit); |
|
|
|
|
if (!isExit) { |
|
|
|
|
list.add(reservationPackageEntity); |
|
|
|
|
allPackageList.add(reservationPackageEntity); |
|
|
|
|
distributionReservationPackageService.save(reservationPackageEntity); |
|
|
|
|
distributionAsyncService.checkStockArticleReservationStatus(p); |
|
|
|
|
packageLockIds.add(p.getId()); |
|
|
|
@ -3207,9 +3232,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
//包件数量累加
|
|
|
|
|
packageNum.getAndAdd(p.getQuantity()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
//对原有包间进行继续推送
|
|
|
|
|
allPackageList.add(oldPackageList.get(p.getOrderPackageCode()).get(0)); |
|
|
|
|
//依然存在包件,
|
|
|
|
|
oldPackageList.remove(p.getOrderPackageCode()); |
|
|
|
|
//包件数量累加
|
|
|
|
@ -3285,6 +3310,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
distributionReservationZeroPackageEntity.setQuantity(pn.getReservationNum()); |
|
|
|
|
distributionParcelNumberService.updateById(parcelNumberEntity); |
|
|
|
|
distributionReservationZeroPackageEntity.setZeroPackageStatus(ReservationPackageStatusConstant.zhengchang.getValue()); |
|
|
|
|
allZeroPackageList.add(distributionReservationZeroPackageEntity); |
|
|
|
|
distributionReservationZeroPackageService.updateById(distributionReservationZeroPackageEntity); |
|
|
|
|
packageNum.getAndAdd(distributionReservationZeroPackageEntity.getQuantity()); |
|
|
|
|
oldZeroPackageList.remove(pn.getParcelListId()); |
|
|
|
@ -3300,6 +3326,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
reservationZeroPackageEntity.setParcelListId(pn.getParcelListId()); |
|
|
|
|
reservationZeroPackageEntity.setCategoryName(pn.getFirsts()); |
|
|
|
|
reservationZeroPackageEntity.setRealityQuantity(0); |
|
|
|
|
allZeroPackageList.add(reservationZeroPackageEntity); |
|
|
|
|
distributionReservationZeroPackageService.save(reservationZeroPackageEntity); |
|
|
|
|
distributionParcelListService.update(Wrappers.<DistributionParcelListEntity>update().lambda() |
|
|
|
|
.eq(DistributionParcelListEntity::getId, parcelNumberEntity.getParcelListId()) |
|
|
|
@ -3600,9 +3627,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
List<Map<String, Object>> data = deliveryreBroadcastData.get("1"); |
|
|
|
|
if (data != null) { |
|
|
|
|
for (Map<String, Object> map : data) { |
|
|
|
|
PackageData packageData = BeanUtil.copy(map, PackageData.class); |
|
|
|
|
assert packageData != null; |
|
|
|
|
packageData.setBrand(Convert.toStr(map.get("brandName"))); |
|
|
|
|
|
|
|
|
|
PackageData packageData =new PackageData(); |
|
|
|
|
packageData.setPackageCode((String) map.get("packageCode")); |
|
|
|
|
PackageTypeEnums type = PackageTypeEnums.CMP; |
|
|
|
|
packageData.setPackageType(type); |
|
|
|
|
packageDataList.add(packageData); |
|
|
|
@ -3629,6 +3656,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
PackageData packageData = BeanUtil.copy(map, PackageData.class); |
|
|
|
|
assert packageData != null; |
|
|
|
|
packageData.setBrand(Convert.toStr(map.get("brandName"))); |
|
|
|
|
packageData.setNumber(Integer.parseInt(map.get("number").toString())); |
|
|
|
|
PackageTypeEnums type = PackageTypeEnums.LTL; |
|
|
|
|
packageData.setPackageType(type); |
|
|
|
|
packageData.setProductName(Convert.toStr(map.get("productName"))); |
|
|
|
@ -4647,6 +4675,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R loadingStart(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO) { |
|
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
|
//获取当前用户司机
|
|
|
|
|
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distrilbutionloadingscanDTO.getDeliveryId()); |
|
|
|
|
if ("3".equals(distributionDeliveryListEntity.getDeliveryStatus())) { |
|
|
|
@ -4708,7 +4737,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
distributionAsyncService.sendTrunkineLog(distributionDeliveryListEntity.getId(), null, AuthUtil.getUser(), warehouseClient.getMyCurrentWarehouse(), 1); |
|
|
|
|
distributionAsyncService.sendTrunkineLog(distributionDeliveryListEntity.getId(), null, user, warehouseClient.getMyCurrentWarehouse(), 1); |
|
|
|
|
|
|
|
|
|
Map mapState = new HashMap(); |
|
|
|
|
mapState.put("messageId", CommonUtil.getUUID()); |
|
|
|
@ -4724,10 +4753,49 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
|
|
|
|
|
log.error(">>>>>>>>>>>>>>>>>>>>>>>>>> 消息推送失败~ 请联系管理员! ", customerException); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
NodeFanoutMsg<CarStartVO> nodeFanoutMsg = builderNodeFanoutMsgByCarStart(distributionDeliveryListEntity,user); |
|
|
|
|
distributionNodeWorkService.carStart(nodeFanoutMsg,user); |
|
|
|
|
|
|
|
|
|
// 推送数据
|
|
|
|
|
return Resp.scanSuccess("发车成功", builder.toString()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private NodeFanoutMsg<CarStartVO> builderNodeFanoutMsgByCarStart(DistributionDeliveryListEntity distributionDeliveryListEntity, BladeUser user) { |
|
|
|
|
NodeFanoutMsg<CarStartVO> nodeFanoutMsg = new NodeFanoutMsg<>(); |
|
|
|
|
nodeFanoutMsg.setBizOperation(BizOperationEnums.ADD); |
|
|
|
|
nodeFanoutMsg.setNode(WorkNodeEnums.DISTRIBUTION_CAR_START); |
|
|
|
|
nodeFanoutMsg.setWarehouse(distributionDeliveryListEntity.getWarehouseName()); |
|
|
|
|
nodeFanoutMsg.setWarehouseId(distributionDeliveryListEntity.getWarehouseId()); |
|
|
|
|
nodeFanoutMsg.setOperator(AuthUtil.getTenantId()); |
|
|
|
|
nodeFanoutMsg.setOperatorTime(distributionDeliveryListEntity.getUpdateTime()); |
|
|
|
|
List<PlanDriverbindCarVO> planDriverbindCarVOS = buildDeliveryCarDriverInfor(distributionDeliveryListEntity); |
|
|
|
|
|
|
|
|
|
String driverName = distributionDeliveryListEntity.getDriverName(); |
|
|
|
|
String vehicleName = distributionDeliveryListEntity.getVehicleName(); |
|
|
|
|
// 如果是自主配送 需要去获取当前司机绑定的车牌
|
|
|
|
|
if ("1".equals(distributionDeliveryListEntity.getKind())) { |
|
|
|
|
BasicdataDriverArteryEntity driverArteryById = basicdataDriverArteryClient.getDriverArteryById(AuthUtil.getUserId()); |
|
|
|
|
if (driverArteryById != null) { |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < planDriverbindCarVOS.size(); i++) { |
|
|
|
|
if (planDriverbindCarVOS.get(i).getDriverName().equals(driverArteryById.getName())) { |
|
|
|
|
driverName = planDriverbindCarVOS.get(i).getDriverName(); |
|
|
|
|
vehicleName = planDriverbindCarVOS.get(i).getCarPlate(); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
CarStartVO carStartVO = new CarStartVO(); |
|
|
|
|
|
|
|
|
|
carStartVO.setTrainNumber(distributionDeliveryListEntity.getTrainNumber()); |
|
|
|
|
carStartVO.setDriverName(driverName); |
|
|
|
|
carStartVO.setVehicleName(vehicleName); |
|
|
|
|
nodeFanoutMsg.setMain(carStartVO); |
|
|
|
|
|
|
|
|
|
return nodeFanoutMsg; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R<?> cancelMarketDeliveryListTask(Map<String, Object> distributionDeliveryListDTO) { |
|
|
|
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
|
|
|
|