From 11c5138365796c91c014ff6a7374df6ea5da1ffc Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 2 Sep 2024 17:45:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=85=E8=BD=A6=E5=BA=93=E5=AD=98=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DistributionDeliveryListMapper.java | 9 + .../mapper/DistributionDeliveryListMapper.xml | 15 + .../DistributionDeliveryListServiceImpl.java | 416 +++++++++++++----- 3 files changed, 320 insertions(+), 120 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java index 5cb77e4f8..f78a8f38b 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.java @@ -552,4 +552,13 @@ public interface DistributionDeliveryListMapper extends BaseMapper + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java index f63c6dfc6..c590d6f0b 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java @@ -65,6 +65,7 @@ import org.apache.logging.log4j.util.Strings; import org.jetbrains.annotations.NotNull; import org.springblade.common.constant.DistributionTypeConstant; import org.springblade.common.constant.Inventory.InventoryLoadingStatusConstant; +import org.springblade.common.constant.Inventory.InventoryPackageStatusConstant; import org.springblade.common.constant.Inventory.InventorySigningStatusConstant; import org.springblade.common.constant.Inventory.InventoryStockUpStatusConstant; import org.springblade.common.constant.ModuleNameConstant; @@ -1786,7 +1787,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl disStockListDetailEntities, BasicdataWarehouseEntity warehouseEntity) { + private static DistributionLoadscaninvnEntity getDistributionLoadscaninvnEntity(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO, DistributionDeliverySelfEntity distributionDeliverySelfEntity, DisStockListDetailEntity disStockListDetailEntity, BasicdataWarehouseEntity warehouseEntity) { DistributionLoadscaninvnEntity distributionLoadscaninvnEntity = new DistributionLoadscaninvnEntity(); BladeUser user = AuthUtil.getUser(); String now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); @@ -1810,125 +1811,20 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl list = disStockListDetailService.list(Wrappers.query().lambda().eq(DisStockListDetailEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId())); -// if (list.size() < 0) { -// return R.fail("无效包条!!"); -// } -// //1、不存在这个客户的库存品列表中,串货 -// List disStockListDetailEntities = disStockListDetailService.list(Wrappers.query().lambda() -// .eq(DisStockListDetailEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId()) -// .eq(DisStockListDetailEntity::getStockPackageCode, distrilbutionloadingscanDTO.getBarcode())); -// if (disStockListDetailEntities.size() == 1) { -// //这里就需要插入库存品扫描信息 -// ArrayList distributionLoadscaninvnEntityArrayList = new ArrayList<>(); -// for (int i = 0; i < disStockListDetailEntities.size(); i++) { -// //依次插入该装车记录,设置车辆 -// DistributionLoadscaninvnEntity distributionLoadscaninvnEntity = new DistributionLoadscaninvnEntity(); -// if (null != distributionDeliverySelfEntity.getDriverId()) { -// distributionLoadscaninvnEntity.setDriverId(distributionDeliverySelfEntity.getDriverId()); -// } -// distributionLoadscaninvnEntity.setDriverName(distributionDeliverySelfEntity.getDriverName()); -// distributionLoadscaninvnEntity.setScanStatus(LoadingStatusConstant.saomiao.getValue()); -// distributionLoadscaninvnEntity.setScanType("1"); -// BladeUser user = AuthUtil.getUser(); -// distributionLoadscaninvnEntity.setScanUser(user.getNickName()); -// distributionLoadscaninvnEntity.setScanTime(new Date()); -// distributionLoadscaninvnEntity.setOrderPackageCode(disStockListDetailEntities.get(i).getStockPackageCode()); -// if (null == distributionLoadscaninvnEntity.getPackageNub()) { -// distributionLoadscaninvnEntity.setPackageNub(1); -// } -// distributionLoadscaninvnEntity.setLoadingId(distrilbutionloadingscanDTO.getLoadingId()); -// distributionLoadscaninvnEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub()); -// if (null != distributionDeliverySelfEntity.getDriverPhone()) { -// distributionLoadscaninvnEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone()); -// } -// if (null != distributionDeliverySelfEntity.getVehicleId()) { -// distributionLoadscaninvnEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId()); -// } -// -// distributionLoadscaninvnEntityArrayList.add(distributionLoadscaninvnEntity); -// } -// b = distributionLoadscaninvnService.saveBatch(distributionLoadscaninvnEntityArrayList); -// -// } else { -// return Resp.scanFail("重复包条码!!","4564"); -// } -// //2、不存在这个车次中无效包条码 -// //3、重复扫码 -// distributionAsyncService.changeMarketDeliveryListStatus(distrilbutionloadingscanDTO.getBarcode(), distrilbutionloadingscanDTO.getDeliveryId()); -//// return Resp.scanFail(b); - -// // if (distrilbutionloadingscanDTO.getInventorytype() == 3) { -// //无拆包 -// List distributionLoadscanvnEntities = new ArrayList<>(); -//// distributionLoadscanvnEntities = baseMapper.selectdeliveryworkVnScan(distrilbutionloadingscanDTO.getBarcode(), distrilbutionloadingscanDTO.getReservationId()); -//// if (distributionLoadscanvnEntities.size() <= 0) { -// //拆包从备货查询 -// distributionLoadscanvnEntities = baseMapper.selectdeliveryworkVnScanStock(distrilbutionloadingscanDTO.getBarcode(), distrilbutionloadingscanDTO.getReservationId(), distrilbutionloadingscanDTO.getDeliveryId()); -//// if (distributionLoadscanvnEntities.size() <= 0) { -//// return R.fail(3001, "窜货"); -//// } -//// } -// for (DistributionLoadscaninvnEntity distributionLoadscanEntity : distributionLoadscanvnEntities) { -// //查询是否重复扫码 -//// List distributionLoadscanEntitiesflag = distributionLoadscanMapper.selectList(new QueryWrapper().lambda() -//// .eq(DistributionLoadscanEntity::getDeliveryId, distributionLoadscanEntity.getReservationId()) -//// .eq(DistributionLoadscanEntity::getOrderPackageCode, distributionLoadscanEntity.getOrderPackageCode()) -//// .ne(DistributionLoadscanEntity::getScanStatus, 1) -//// ); -//// if (distributionLoadscanEntitiesflag.size() > 0) { -//// return R.fail(3002, "重复货物"); -//// } -// //依次插入该装车记录,设置车辆 -// if (null != distributionDeliverySelfEntity.getDriverId()) { -// distributionLoadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId()); -// } -// distributionLoadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName()); -// distributionLoadscanEntity.setScanStatus(2); -// distributionLoadscanEntity.setScanType("1"); -// distributionLoadscanEntity.setScanTime(new Date()); -// if (null == distributionLoadscanEntity.getPackageNub()) { -// distributionLoadscanEntity.setPackageNub(1); -// } -// distributionLoadscanEntity.setLoadingId(distrilbutionloadingscanDTO.getLoadingId()); -// distributionLoadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub()); -// if (null != distributionDeliverySelfEntity.getDriverPhone()) { -// distributionLoadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone()); -// } -// if (null != distributionDeliverySelfEntity.getVehicleId()) { -// distributionLoadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId()); -// } -// //查询本车次是否第一次扫码,没有则更新上车时间 -// Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId()); -// //更新签收表的装车数量 -// Integer j = distributionSignforMapper.updateloadByinvn(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub()); -// } -// b = distributionLoadscaninvnService.saveBatch(distributionLoadscanvnEntities); -//// } else if (distrilbutionloadingscanDTO.getInventorytype() == 1) { -// //TODO 库存品手动输入 -// -// } -// } @Override public IPage customListPage(IPage page, QueryWrapper queryWrapper) { @@ -8021,7 +7917,6 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl packageLogs = new ArrayList<>(); DistributionParcelListEntity parcelListEntity = distributionParcelListMapper.selectByOrderPackageCode(orderPackageCode, myCurrentWarehouse.getId()); if (Objects.isNull(parcelListEntity)) { @@ -8080,7 +7976,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl>>>>>packageCode:{},reservationId:{}", distrilbutionloadingscanDTO.getBarcode(), distrilbutionloadingscanDTO.getReservationId()); @@ -8088,7 +7984,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl parcelListDTOS = distrilbutionloadingscanDTO.getParcelListDTOS(); - + boolean flag = parcelListDTOS.stream().allMatch(d -> d.getLoadingNum() < 0); + if (flag) { + log.error("############################# parcelListDTOS装车数据无效:{}", parcelListDTOS); + return Resp.scanFail("装车失败", "请填写正确的装车数量!!!"); + } + String now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + if (Func.isNotEmpty(distrilbutionloadingscanDTO.getReservationId())) { + //查询该订单是否属于当前配送任务 + List reservationStockarticleEntityList = distributionReservationMapper.selectStockArticleByReservationId(distrilbutionloadingscanDTO.getReservationId()); + if (Func.isNotEmpty(reservationStockarticleEntityList)) { + //存在该计划,这里的异常装车只能 + //这里就需要进行零担计划的查询 + //对于零担订单对于同一个预约客户而言这里只能出现一种,这里就是单条结果 + DistributionReservationStockarticleEntity reservationStockarticleEntity = reservationStockarticleEntityList.get(0); + List reservationZeroPackageEntityList = distributionReservationZeroPackageService.list(Wrappers.query().lambda(). + eq(DistributionReservationZeroPackageEntity::getReservationId, reservationStockarticleEntity.getReservationId()). + eq(DistributionReservationZeroPackageEntity::getStockArticleId, distrilbutionloadingscanDTO.getOrderId()). + ne(DistributionReservationZeroPackageEntity::getZeroPackageStatus, ReservationPackageStatusConstant.quxiao.getValue())); + if (Func.isNotEmpty(reservationZeroPackageEntityList)) { + //查询零担订单品类信息 + List zeroPackageIds = reservationZeroPackageEntityList.stream().map(DistributionReservationZeroPackageEntity::getParcelListId).collect(Collectors.toList()); + Map reservationZeroPackageMap = reservationZeroPackageEntityList.stream().collect(Collectors.toMap(DistributionReservationZeroPackageEntity::getParcelListId, Function.identity(), (k1, k2) -> k2)); + List parcelNumberEntityList = distributionParcelNumberService.list(Wrappers.query().lambda().in(DistributionParcelNumberEntity::getParcelListId, zeroPackageIds)); + if (Func.isEmpty(parcelNumberEntityList)) { + log.error("#######################查询零担品类信息错误,reservationID:{}", distrilbutionloadingscanDTO.getReservationId()); + throw new RuntimeException("服务器正忙..."); + } + Map zeroPackageMap = parcelNumberEntityList.stream().collect(Collectors.toMap(DistributionParcelNumberEntity::getParcelListId, Function.identity(), (k1, k2) -> k2)); + List operationZeroPackageIds = parcelListDTOS.stream().map(DistributionParcelNumberDTO::getParcelListId).collect(Collectors.toList()); + //查询是否已经有装车数据了 + List loadscanEntityList = distributionLoadscanService.list(Wrappers.query().lambda().eq(DistributionLoadscanEntity::getReservationId, reservationStockarticleEntity.getReservationId()).eq(DistributionLoadscanEntity::getOrderId, reservationStockarticleEntity.getStockArticleId()).in(DistributionLoadscanEntity::getPackageId, operationZeroPackageIds).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); + Map> loadMap = null; + if (Func.isNotEmpty(loadscanEntityList)) { + loadMap = loadscanEntityList.stream().collect(Collectors.groupingBy(DistributionLoadscanEntity::getPackageId)); + } + for (DistributionParcelNumberDTO parcelListDTO : parcelListDTOS) { + DistributionParcelListEntity zeroParcelListEntity = distributionParcelListService.getById(parcelListDTO.getParcelListId()); + if (Func.isEmpty(reservationZeroPackageMap.get(parcelListDTO.getParcelListId()))) { + log.error("####################预约零担品类信息维护错误,parcelListDTO的ID:{}", parcelListDTO.getParcelListId()); + throw new RuntimeException("服务器正忙..."); + } + DistributionReservationZeroPackageEntity reservationZeroPackageEntity = reservationZeroPackageMap.get(parcelListDTO.getParcelListId()); + if (parcelListDTO.getLoadingNum() > reservationZeroPackageEntity.getQuantity()) { + log.error("####################预约零担品类信息维护错误,parcelListDTO的ID:{}", parcelListDTO.getParcelListId()); + throw new RuntimeException("计划数:" + reservationZeroPackageEntity.getQuantity()); + } + if (Func.isNotEmpty(loadMap)) { + List loadscanEntities = loadMap.get(parcelListDTO.getParcelListId()); + if (Func.isNotEmpty(loadscanEntities)) { + if (parcelListDTO.getLoadingNum() <= reservationZeroPackageEntity.getQuantity()) { + //零担修改装车 + DistributionLoadscanEntity loadscanEntity = loadscanEntities.get(0); + updateZeroLoadingEntity(loadscanEntity,parcelListDTO,myCurrentWarehouse,zeroPackageMap); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("code", zeroParcelListEntity.getOrderCode()); + jsonObject.put("warehouseId", myCurrentWarehouse.getId()); + jsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId()); + jsonObject.put("type", 3); + jsonObject.put("num", 1); + jsonObject.put("remark", "装车下架"); + jsonObjects.add(jsonObject); + } + } else { + if (parcelListDTO.getLoadingNum() <= reservationZeroPackageEntity.getQuantity()) { + //新增 + addZeroLoadingEntity(distrilbutionloadingscanDTO, + distributionDeliverySelfEntity, + deliveryListEntity, + distrilbutionloadingscanDTO.getReservationId(), + parcelListDTO,myCurrentWarehouse, + user, + zeroPackageMap); + packageLockIds.add(parcelListDTO.getParcelListId()); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("code", zeroParcelListEntity.getOrderCode()); + jsonObject.put("warehouseId", myCurrentWarehouse.getId()); + jsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId()); + jsonObject.put("type", 3); + jsonObject.put("num", 1); + jsonObject.put("remark", "装车下架"); + jsonObjects.add(jsonObject); + } + } + } else { + if (parcelListDTO.getLoadingNum() <= reservationZeroPackageEntity.getQuantity()) { + //新增 + addZeroLoadingEntity(distrilbutionloadingscanDTO, + distributionDeliverySelfEntity, + deliveryListEntity, + distrilbutionloadingscanDTO.getReservationId(), + parcelListDTO,myCurrentWarehouse, + user, + zeroPackageMap); + packageLockIds.add(parcelListDTO.getParcelListId()); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("code", zeroParcelListEntity.getOrderCode()); + jsonObject.put("warehouseId", myCurrentWarehouse.getId()); + jsonObject.put("taskId", distrilbutionloadingscanDTO.getReservationId()); + jsonObject.put("type", 3); + jsonObject.put("num", 1); + jsonObject.put("remark", "装车下架"); + jsonObjects.add(jsonObject); + } + } + } + } else { + log.error("#######################查询预约零担品类信息错误,reservationID:{}", distrilbutionloadingscanDTO.getReservationId()); + } + } else { + log.error("#######################查询预约订单信息错误,reservationID:{}", distrilbutionloadingscanDTO.getReservationId()); + } + } break; + case 3: + if (Objects.isNull(distrilbutionloadingscanDTO.getBarcode())) { + log.error(method + "参数缺失Barcode"); + return Resp.fail("参数缺失,请联系管理员"); + } + String inventoryPackageCode = distrilbutionloadingscanDTO.getBarcode(); + //查询库存品 + Long reservationId = baseMapper.selectInventoryPackageByDeliveryIdAndInventoryPackageCode(deliveryId,inventoryPackageCode); + if (Objects.nonNull(reservationId)){ + parcelListEntity = distributionParcelListMapper.selectByOrderPackageCode(inventoryPackageCode, myCurrentWarehouse.getId()); + if (!Objects.isNull(parcelListEntity)) { + return Resp.scanFail("请在定制品页面扫描此码", "请在定制品页面扫描此码"); + } else { + return Resp.scanFail("系统无编码", "系统无编码"); + } + } + List invemtoryPackageList = disStockListDetailService.list(Wrappers.query().lambda() + .eq(DisStockListDetailEntity::getReservationId, reservationId) + .eq(DisStockListDetailEntity::getStockPackageCode, inventoryPackageCode) + .ne(DisStockListDetailEntity::getStockPackageStatus, InventoryPackageStatusConstant.quxiao.getValue()) + ); + if (invemtoryPackageList.size() > 1) { + log.error(method+"此库存品包件在预约计划中存在多条,reservationId:{},inventoryPackageCode:{}",reservationId,inventoryPackageCode); + return Resp.scanFail("此包件数据错误", "此包件数据错误"); + } + DisStockListDetailEntity disStockListDetailEntity = invemtoryPackageList.get(0); + + + disStockListDetailEntity.setStockLockingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue()); + disStockListDetailService.updateById(disStockListDetailEntity); + //维护包件装车状态 + boolean update = distributionParcelListService.update( + Wrappers.update().lambda() + .eq(DistributionParcelListEntity::getOrderPackageCode, disStockListDetailEntity.getStockPackageCode()) + .eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId()) + .eq(DistributionParcelListEntity::getMaterialCode, disStockListDetailEntity.getSku()) + .set(DistributionParcelListEntity::getOrderPackageLoadingStatus, OrderPackageLoadingStatusConstant.yizhuangche.getValue()) + .set(DistributionParcelListEntity::getOrderPackageReservationStatus, OrderPackageReservationStatusConstant.yiyueyue.getValue()) + .set(DistributionParcelListEntity::getOrderPackageStatus, OrderPackageStatusConstant.yichuku.getValue()) + ); + if (update){ + //修改成功 此包件是转的 + DistributionParcelListEntity parcelListEntity1 = distributionParcelListService.selectByOrderPackageCode(inventoryPackageCode, myCurrentWarehouse.getId()); + if (Objects.isNull(parcelListEntity1)){ + pushList.add(parcelListEntity1); + } + } + log.info(">>>>>>>>>>>>>>>>>>>装车修改库存品包件>装车包件码:{},", disStockListDetailEntity.getStockPackageCode()); + DistributionLoadscaninvnEntity distributionLoadscaninvnEntity = getDistributionLoadscaninvnEntity(distrilbutionloadingscanDTO, distributionDeliverySelfEntity, disStockListDetailEntity, myCurrentWarehouse); + packageLockIds.add(distributionLoadscaninvnEntity.getInventoryPackageId()); + distributionLoadscaninvnService.save(distributionLoadscaninvnEntity); + //查询本车次是否第一次扫码,没有则更新上车时间 + Integer a = distributionDeliveryListMapper.updateloadingTimeById(distributionLoadscaninvnEntity.getDeliveryId()); + //更新签收表的装车数量 + Integer j = distributionSignforMapper.updateloadByinvn(distributionLoadscaninvnEntity.getDeliveryId(), distributionLoadscaninvnEntity.getReservationId(), distributionLoadscaninvnEntity.getLoadedNub()); + //处理出库问题 + distributionStockListMapper.deductionQuantityStock(distributionLoadscaninvnEntity.getInventoryId(), distributionLoadscaninvnEntity.getLoadedNub()); + //维护客户信息 + distributionReservationService.maintenanceReservationInfo(distrilbutionloadingscanDTO.getReservationId()); + //维护配送装车状态 + distributionDeliveryListService.maintenanceDeliveryInfo(distrilbutionloadingscanDTO.getDeliveryId()); + //备货库位下架 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("code", distributionLoadscaninvnEntity.getOrderPackageCode()); + jsonObject.put("warehouseId", myCurrentWarehouse.getId()); + jsonObject.put("taskId", distributionLoadscaninvnEntity.getReservationId()); + jsonObject.put("type", 2); + jsonObject.put("num", 1); + jsonObject.put("remark", "装车下架"); + jsonObjects.add(jsonObject); + break; } //添加缓存 if (!packageLockIds.isEmpty()) { @@ -8173,6 +8255,101 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl zeroPackageMap) { + //维护零担出库数量 + DistributionParcelNumberEntity parcelNumberEntity = zeroPackageMap.get(parcelListDTO.getParcelListId()); + BigDecimal deliveryQuantity = new BigDecimal(parcelNumberEntity.getDeliveryQuantity()); + BigDecimal handQuantity = new BigDecimal(parcelNumberEntity.getHandQuantity()); + BigDecimal loadedNub = new BigDecimal(loadscanEntity.getLoadedNub()); + BigDecimal outboundQuantity = new BigDecimal(parcelNumberEntity.getOutboundQuantity()); + BigDecimal loadedNum = new BigDecimal(parcelListDTO.getLoadingNum()); + + parcelNumberEntity.setDeliveryQuantity(deliveryQuantity.add(loadedNub).subtract(loadedNum).intValue()); + parcelNumberEntity.setOutboundQuantity(outboundQuantity.subtract(loadedNub).add(loadedNum).intValue()); + parcelNumberEntity.setHandQuantity(handQuantity.subtract(loadedNum).add(loadedNub).intValue()); + distributionParcelNumberService.updateById(parcelNumberEntity); + //维护装车数量 + DistributionSignforEntity signforEntity = distributionSignforService.getOne(Wrappers.query().lambda().eq(DistributionSignforEntity::getDeliveryId, loadscanEntity.getDeliveryId()).eq(DistributionSignforEntity::getReservationId, loadscanEntity.getReservationId())); + BigDecimal loadedNumber = new BigDecimal(signforEntity.getLoadedNumber()); + + signforEntity.setLoadedNumber(loadedNumber.add(loadedNum).subtract(loadedNub).intValue()); + distributionSignforService.updateById(signforEntity); + + loadscanEntity.setLoadedNub(parcelListDTO.getLoadingNum()); + loadscanEntity.setPackageNub(parcelListDTO.getLoadingNum()); + loadscanEntity.setWarehouseId(myCurrentWarehouse.getId()); + loadscanEntity.setWarehouseName(myCurrentWarehouse.getName()); + distributionLoadscanService.updateById(loadscanEntity); + //维护零担订单装车状态 + distributionAsyncService.checkZeroStockArticleLoadingStatus(parcelNumberEntity, loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId()); + } + + private void addZeroLoadingEntity(DistrilbutionloadingscanDTO distrilbutionloadingscanDTO, + DistributionDeliverySelfEntity distributionDeliverySelfEntity, + DistributionDeliveryListEntity deliveryListEntity, + Long reservationId, + DistributionParcelNumberDTO parcelNumberDTO, + BasicdataWarehouseEntity myCurrentWarehouse, + BladeUser user, + Map zeroPackageMap) { + DistributionLoadscanEntity zeroLoadscanEntity = createdDistributionZeroLoadscanEntity(distributionDeliverySelfEntity,deliveryListEntity,distrilbutionloadingscanDTO.getReservationId(),parcelNumberDTO,myCurrentWarehouse,user); + distributionLoadscanService.save(zeroLoadscanEntity); + //更新装车时间 + Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId()); + //更新装车数量 + Integer j = distributionSignforMapper.updateloadByReservationId(zeroLoadscanEntity.getDeliveryId(), zeroLoadscanEntity.getReservationId(), zeroLoadscanEntity.getPackageNub()); + //维护零担品类的数量 + DistributionParcelNumberEntity parcelNumberEntity = zeroPackageMap.get(parcelNumberDTO.getParcelListId()); + parcelNumberEntity.setOutboundQuantity(parcelNumberEntity.getOutboundQuantity() + parcelNumberDTO.getLoadingNum()); + parcelNumberEntity.setDeliveryQuantity(parcelNumberEntity.getDeliveryQuantity() - parcelNumberDTO.getLoadingNum()); + parcelNumberEntity.setHandQuantity(parcelNumberEntity.getHandQuantity() - parcelNumberDTO.getLoadingNum()); + distributionParcelNumberService.updateById(parcelNumberEntity); + distributionAsyncService.checkZeroStockArticleLoadingStatus(parcelNumberEntity, zeroLoadscanEntity.getDeliveryId(), zeroLoadscanEntity.getReservationId()); + } + + private DistributionLoadscanEntity createdDistributionZeroLoadscanEntity(DistributionDeliverySelfEntity distributionDeliverySelfEntity, + DistributionDeliveryListEntity deliveryListEntity, + Long reservationId, + DistributionParcelNumberDTO parcelNumberDTO, + BasicdataWarehouseEntity myCurrentWarehouse, + BladeUser user) { + String now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + DistributionLoadscanEntity zeroLoadscanEntity = new DistributionLoadscanEntity(); + if (Func.isNotEmpty(distributionDeliverySelfEntity.getDeliveryId())) { + zeroLoadscanEntity.setDriverId(distributionDeliverySelfEntity.getDriverId()); + } + if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverName())) { + zeroLoadscanEntity.setDriverName(distributionDeliverySelfEntity.getDriverName()); + } + if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleNub())) { + zeroLoadscanEntity.setVehicleName(distributionDeliverySelfEntity.getVehicleNub()); + } + if (Func.isNotEmpty(distributionDeliverySelfEntity.getVehicleId())) { + zeroLoadscanEntity.setVehicleId(distributionDeliverySelfEntity.getVehicleId()); + } + if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverPhone())) { + zeroLoadscanEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone()); + } + //添加车次号 + zeroLoadscanEntity.setTrainNumber(deliveryListEntity.getTrainNumber()); + zeroLoadscanEntity.setScanStatus(LoadingStatusConstant.saomiao.getValue()); + zeroLoadscanEntity.setScanType("1"); + zeroLoadscanEntity.setOneClick(1); + zeroLoadscanEntity.setWarehouseId(myCurrentWarehouse.getId()); + zeroLoadscanEntity.setWarehouseName(myCurrentWarehouse.getName()); + zeroLoadscanEntity.setPackageId(parcelNumberDTO.getParcelListId()); + zeroLoadscanEntity.setPackageNub(parcelNumberDTO.getLoadingNum()); + zeroLoadscanEntity.setLoadedNub(parcelNumberDTO.getLoadingNum()); + zeroLoadscanEntity.setReservationId(reservationId); + zeroLoadscanEntity.setDeliveryId(deliveryListEntity.getId()); + zeroLoadscanEntity.setOrderId(parcelNumberDTO.getStockArticleId()); + zeroLoadscanEntity.setScanTime(now); + zeroLoadscanEntity.setScanUser(user.getNickName()); + zeroLoadscanEntity.setLoadingId(distributionDeliverySelfEntity.getId()+""); + zeroLoadscanEntity.setIsAbnormalLoading(1); + return zeroLoadscanEntity; + } + private DistributionLoadscanEntity createdDistributionLoadscanEntity(DistributionDeliveryListEntity deliveryListEntity, DistributionDeliverySelfEntity distributionDeliverySelfEntity, Long reservationId, @@ -8251,16 +8428,15 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl reservationEntityList = distributionDeliveryListMapper.selectReservationByDeliveryListId(deliveryId); if (!reservationEntityList.isEmpty()) { boolean shangpeiFlag = reservationEntityList.stream().allMatch(r -> r.getDeliveryType().equals(DistributionTypeConstant.shipie.getValue())); DistributionStockArticleEntity stockArticleEntity = distributionStockArticleMapper.selectById(parcelListEntity.getStockArticleId()); if (shangpeiFlag) { - List reservationEntities = reservationEntityList.stream().filter(r -> Func.isNotEmpty(r.getConsignee()) && r.getConsignee().equals(stockArticleEntity.getCustomerName()) && r.getDeliveryAddress().equals(stockArticleEntity.getCustomerAddress()) && r.getDeliveryPhone().equals(stockArticleEntity.getCustomerTelephone()) && r.getMallName().equals(stockArticleEntity.getMallName()) && r.getId().equals(distrilbutionloadingscanDTO.getReservationId())).collect(Collectors.toList()); + List reservationEntities = reservationEntityList.stream().filter(r -> Func.isNotEmpty(r.getConsignee()) && r.getConsignee().equals(stockArticleEntity.getCustomerName()) && r.getDeliveryAddress().equals(stockArticleEntity.getCustomerAddress()) && r.getDeliveryPhone().equals(stockArticleEntity.getCustomerTelephone()) && r.getMallName().equals(stockArticleEntity.getMallName()) && r.getId().equals(reservationId)).collect(Collectors.toList()); //查看是否存在满足条件的预约单 - boolean flag = reservationEntityList.stream().anyMatch(r -> Func.isNotEmpty(r.getConsignee()) && r.getConsignee().equals(stockArticleEntity.getCustomerName()) && r.getDeliveryAddress().equals(stockArticleEntity.getCustomerAddress()) && r.getDeliveryPhone().equals(stockArticleEntity.getCustomerTelephone()) && r.getMallName().equals(stockArticleEntity.getMallName()) && r.getId().equals(distrilbutionloadingscanDTO.getReservationId())); - + boolean flag = reservationEntityList.stream().anyMatch(r -> Func.isNotEmpty(r.getConsignee()) && r.getConsignee().equals(stockArticleEntity.getCustomerName()) && r.getDeliveryAddress().equals(stockArticleEntity.getCustomerAddress()) && r.getDeliveryPhone().equals(stockArticleEntity.getCustomerTelephone()) && r.getMallName().equals(stockArticleEntity.getMallName()) && r.getId().equals(reservationId)); //存在多个,操作人指定具体客户即可 if (reservationEntities.size() == 1 && flag) { return true; @@ -8270,7 +8446,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl r.getDeliveryType().equals(DistributionTypeConstant.shangpei.getValue())); if (shangpeiFlag) { - List reservationEntities = reservationEntityList.stream().filter(r -> r.getReceivingUnit().equals(stockArticleEntity.getConsigneeUnit()) && r.getMallName().equals(stockArticleEntity.getMallName()) && r.getId().equals(distrilbutionloadingscanDTO.getReservationId())).collect(Collectors.toList()); + List reservationEntities = reservationEntityList.stream().filter(r -> r.getReceivingUnit().equals(stockArticleEntity.getConsigneeUnit()) && r.getMallName().equals(stockArticleEntity.getMallName()) && r.getId().equals(reservationId)).collect(Collectors.toList()); //查询是否满足商配异常装车 boolean flag = reservationEntityList.stream().anyMatch(r -> r.getReceivingUnit().equals(stockArticleEntity.getConsigneeUnit()) && r.getMallName().equals(stockArticleEntity.getMallName())); if (reservationEntities.size() == 1 && flag) {