diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/LauncherConstant.java index 1bf322b87..149f15f06 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/LauncherConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -45,7 +45,7 @@ public interface LauncherConstant { /** * nacos dev 地址 */ - String NACOS_DEV_ADDR = "192.168.3.100:8848"; + String NACOS_DEV_ADDR = "192.168.2.46:8848"; /** @@ -77,7 +77,7 @@ public interface LauncherConstant { /** * seata dev 地址 */ - String SEATA_DEV_ADDR = "192.168.3.100:8091"; + String SEATA_DEV_ADDR = "192.168.2.46:8091"; /** diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java index e3ad3f8e9..2f62971c1 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java @@ -171,14 +171,6 @@ public interface RabbitConstant { String OPEN_ORDER_LOAD_SCAN_ROUTING = "open_order_load_scan_routing" + ModuleNameConstant.DEVAUTH; - /****************运单创建推送商家数据start *************************/ - - String OPEN_WAYBILL_TO_BUSINESS_DATA_QUEUE = "open_waybill_to_business_data_queue" + ModuleNameConstant.DEVAUTH; - String OPEN_WAYBILL_TO_BUSINESS_DATA_EXCHANGE = "open_waybill_to_business_data_exchange" + ModuleNameConstant.DEVAUTH; - String OPEN_WAYBILL_TO_BUSINESS_DATA_ROUTING = "open_waybill_to_business_data_routing" + ModuleNameConstant.DEVAUTH; - - - /****************运单创建推送商家数据end *************************/ /****************库内入库推送商家数据start *************************/ diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java b/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java index 8b71a7c35..852a02c3a 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/broadcast/FanoutConstants.java @@ -19,7 +19,9 @@ public abstract class FanoutConstants { interface QUEUE { String STATISTICSDATA_CREATEPACKAGEINFO = "fanout.trunkline.openWaybill.statisticsdata.createPackageinfo" + ModuleNameConstant.DEVAUTH; - + // 开单检测数据 --商家端 + String SEND_BUSINESS_DATA_BY_OPENWAYBILL_DATA = "fanout.trunkline.openWaybill.send_business_data.open" + ModuleNameConstant.DEVAUTH; + // 改单数据 --商家端 } } @@ -33,6 +35,7 @@ public abstract class FanoutConstants { interface QUEUE { String STATISTICSDATA_UPDATEPACKAGEINFO = "fanout.trunkline.updatewaybill.statisticsdata.updatePackageinfo" + ModuleNameConstant.DEVAUTH; + String SEND_BUSINESS_DATA_BY_UPDATEWAYBILL_DATA = "fanout.trunkline.openWaybill.send_business_data.update" + ModuleNameConstant.DEVAUTH; } @@ -155,4 +158,20 @@ public abstract class FanoutConstants { } + /** + * 配送 + */ + public interface distribution { + interface signfor{ + String EXCHANGE = "fanout.distribution.signfor" + ModuleNameConstant.DEVAUTH; + interface QUEUE { + String FACTORY_NODE_WORK_DISTRIBUTION_SIGNFOR_QUERY = "fanout.factory.nodework.distribution.signforquery"+ ModuleNameConstant.DEVAUTH; + } + } + + + } + + + } diff --git a/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java b/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java index f6aa5bef8..485bc9ce4 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java +++ b/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java @@ -41,7 +41,7 @@ public class LauncherServiceImpl implements LauncherService { PropsUtil.setProperty(props, "spring.cloud.nacos.config.server-addr", LauncherConstant.nacosAddr(profile)); // 开启elk日志 -// PropsUtil.setProperty(props, "blade.log.elk.destination", LauncherConstant.elkAddr(profile)); + PropsUtil.setProperty(props, "blade.log.elk.destination", LauncherConstant.elkAddr(profile)); diff --git a/blade-biz-common/src/main/java/org/springblade/common/model/BroadcastNodeData.java b/blade-biz-common/src/main/java/org/springblade/common/model/BroadcastNodeData.java new file mode 100644 index 000000000..a44f2814b --- /dev/null +++ b/blade-biz-common/src/main/java/org/springblade/common/model/BroadcastNodeData.java @@ -0,0 +1,60 @@ +package org.springblade.common.model; + +import com.alibaba.fastjson.JSONObject; + +/** + * 节点作业数据传输对象 + */ +public class BroadcastNodeData extends JSONObject { + + /** + * 当前作业租户ID + */ + private String tenantId; + + /** + * 作业人名称 + */ + private String userName; + + /** + * 操作时间 + */ + private String operationTime; + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getOperationTime() { + return operationTime; + } + + public void setOperationTime(String operationTime) { + this.operationTime = operationTime; + } + + @Override + public String toJSONString() { + + + // 需要 将当前类的属性增加的到json的输出 + this.put("tenantId", tenantId); + this.put("userName", userName); + this.put("operationTime", operationTime); + + return super.toJSONString(); + } +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java index 50e14c9d7..d306ed6ce 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java @@ -31,12 +31,19 @@ public class LoadCarsDTO implements Serializable { private String loadCarsNo; private String loadStatus; + private String carrierName; + private String carrierOrderCode; + private String startWarehouseName; + private String deliveryType; + private String operator; + private String settlementPerson; private Long warehouseId; private Integer startCarType; private Integer loadingType; private Integer unloadType; + private Integer isSettlement; private List carsOrderList = new ArrayList<>(); @@ -63,6 +70,7 @@ public class LoadCarsDTO implements Serializable { private Integer isZero; private String scanCode; private String scanStatus; + private String payMethod; private List packageList = new ArrayList<>(); private List zeroList = new ArrayList<>(); diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsOrderVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsOrderVO.java index edf46b866..5618cc4cf 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsOrderVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsOrderVO.java @@ -5,4 +5,10 @@ import lombok.Data; @Data public class TrunklineCarsOrderVO extends TrunklineCarsOrderEntity { + + private String mallName; + private String mallPerson; + private String mallMobile; + private String mallAddress; + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java index 439f5c38d..b3c865288 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java @@ -1329,6 +1329,7 @@ public class DistributionStockupAppController extends BladeController { warehouseUpdownGoodsEntity.setIncomingBatch(byId.getIncomingBatch()); warehouseUpdownGoodsEntity.setMarketId(byId.getMarketId()); warehouseUpdownGoodsEntity.setAssociationId(byId.getMaterialId()); + warehouseUpdownGoodsEntity.setAssociationValue(byId.getCargoNumber()); warehouseUpdownGoodsEntity.setAssociationType("4"); warehouseUpdownGoodsEntity.setWarehouseId(byId.getWarehouseId()); locationInformation = warehouseUpdownGoodsClient.getLocationStockListInformation(warehouseUpdownGoodsEntity); @@ -1346,10 +1347,10 @@ public class DistributionStockupAppController extends BladeController { //查询包件信息 if (ObjectUtils.isNotNull(list) && list.size() > 1) { - return Resp.scanFail("查询到重复包条信息!!", "查询到重复包条信息!!"); + return Resp.scanFail("查询到重复包条信息!!", "查询到重复包条信息!!"); } if (ObjectUtils.isNull(list)) { - return Resp.scanFail("没有查询到包件信息 ! ", "没有查询到包件信息 ! "); + return Resp.scanFail("没有查询到包件信息!", "没有查询到包件信息 ! "); } log.info(">>>>> obj {}", list.get(0).getConditions()); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java index 3ef7ec7d2..896de3b56 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java @@ -314,7 +314,7 @@ public class DistributionSignforController extends BladeController { List packageIds = (List) data.get("packageIds"); Long signId = (Long) data.get("signId"); distributionAsyncService.handlPakcage(packageIds, myCurrentWarehouse.getId()); - distributionAsyncService.sendReviewFactory(signId,myCurrentWarehouse.getName() ,myCurrentWarehouse.getId()); +// distributionAsyncService.sendReviewFactory(signId,myCurrentWarehouse.getName() ,myCurrentWarehouse.getId()); PC对于的批量签收同样需要复核 } String orderPackageCodes = null; for (String packageCode : packageCodes) { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml index dcf611d7d..325dbd2d4 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml @@ -2,154 +2,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -203,7 +56,7 @@ - select * from logpm_distribution_loadscan where is_deleted = 0 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionNodeWorkService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionNodeWorkService.java new file mode 100644 index 000000000..79524a1e0 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionNodeWorkService.java @@ -0,0 +1,76 @@ +package com.logpm.distribution.service; + +import com.logpm.distribution.entity.DistributionParcelListEntity; + +/** + *

+ * 配送作业节点 推送给服务 + *

+ */ +public interface IDistributionNodeWorkService { + + // 签收作业节点 + + /** + * 装车 + */ + void nodeLoad(); + + /** + * 异常装车 + */ + void abnormalLoading(); + + /** + * 取消装车 + */ + void cancelLoading(); + + /** + * 发车 + */ + void carStart(); + + /** + * 配送到达 + */ + void carArrived(); + + + /** + * 签收 + */ + void signFor(DistributionParcelListEntity parcelListEntity, Long taskId, String operationTime, String destinationWarehouse); + + + /** + * 签收复核 + */ + void signForCheck(); + + /** + * 自提签收扫描 + */ + void billofladingSignfor(DistributionParcelListEntity parcelListEntity,Long taskId,String operationTime, String destinationWarehouse); + + /** + * 自提签收复核 + */ + void billofladingSignforCheck(); + + /** + * 滞留 + */ + void retention(); + + /** + * 异常签收 + */ + void abnormalSignfor(); + + /** + * 配送失败 + */ + void fail(); + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DisStockOrdercodeRecoServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DisStockOrdercodeRecoServiceImpl.java index 6ef4c2924..ffc5109f0 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DisStockOrdercodeRecoServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DisStockOrdercodeRecoServiceImpl.java @@ -90,14 +90,14 @@ public class DisStockOrdercodeRecoServiceImpl extends BaseServiceImpl locationStockListInformation = warehouseUpdownGoodsClient.getLocationStockListInformation(warehouseUpdownGoodsEntity); if (Func.isNotEmpty(locationStockListInformation)){ List IncomingBatchs = locationStockListInformation.stream().map(WarehouseUpdownGoodsEntity::getIncomingBatch).collect(Collectors.toList()); List distributionStockListEntity = distributionStockListMapper.selectList(Wrappers.query().lambda() .eq(DistributionStockListEntity::getCargoNumber, cargoNumber) - .eq(DistributionStockListEntity::getMarketName,mallName) + .eq(DistributionStockListEntity::getMarketName,mallName) .in(DistributionStockListEntity::getIncomingBatch, IncomingBatchs) - .orderByAsc(DistributionStockListEntity::getCreateTime) ); if (Func.isNotEmpty(distributionStockListEntity)){ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java index 8d98f5082..4a21f58d6 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java @@ -1535,29 +1535,15 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { } if (Func.isNotEmpty(brand.get("欧派"))) { - - // 重新筛选出欧派的包件 - for (DistributionReservationStockarticleEntity distributionReservationStockarticleEntity : distributionReservationStockarticleEntities) { - - // 查询预约单下面的包件信息 - log.info(">>>>>>>>>>>>>>>>>>>>> 欧派循环包件信息 {} ", distributionReservationStockarticleEntity); - List distributionParcelListEntities = buildOpByReservationId(distributionReservationStockarticleEntity); - - - for (DistributionParcelListEntity distributionParcelListEntity : distributionParcelListEntities) { - // todo 查询签收信息 - DistributionSignforEntity distributionSignfor = distributionSignforMapper.getByReservationId(distributionReservationStockarticleEntity.getReservationId()); - OrderStatusDTO orderStatusDTO = new OrderStatusDTO(); - orderStatusDTO.setUnitNo(distributionParcelListEntity.getOrderPackageCode()); //单号 - orderStatusDTO.setUsername(distributionSignfor.getSigneeName()); //操作人名称 - orderStatusDTO.setStatus("7"); - orderStatusDTO.setOperationTime(distributionSignfor.getSigningTime()); //时间 - ouPaiFactoryClinet.newSystemHandleStatusData(orderStatusDTO); - log.info(">>>>>>>>>>>>>>>>>进入newSystemHandleStatusData orderStatusDTO值 :{}", orderStatusDTO); - } + List oupai = brand.get("欧派"); + for (MtReceiveContentDTO mtReceiveContentDTO : oupai) { + OrderStatusDTO orderStatusDTO = new OrderStatusDTO(); + orderStatusDTO.setUnitNo(mtReceiveContentDTO.getUnitNo()); //包条 + orderStatusDTO.setUsername(distributionSignforEntity.getSigneeName()); //操作人名称 + orderStatusDTO.setStatus("7"); + orderStatusDTO.setOperationTime(distributionSignforEntity.getSigningTime()); //时间 + ouPaiFactoryClinet.newSystemHandleStatusData(orderStatusDTO); } - -// orderMainClinet.sendReceiveInfoByNewSystem(mtReceiveDTO); } if (Func.isNotEmpty(brand.get("志邦"))) { List zb = brand.get("志邦"); @@ -1599,7 +1585,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { map.put("messageData", JSONUtil.toJsonStr(orderStatusDTO)); rabbitTemplate.convertAndSend(RabbitConstant.HWY_ORDER_STATUS_EXCHANGE, RabbitConstant.HWY_ORDER_STATUS_ROUTING, map); } catch (Exception e) { - log.error("入库推送失败:{}", e); + log.error("入库推送失败", e); } } } @@ -1629,8 +1615,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { //....工厂 } catch (Exception e) { - log.error("sendReviewFactory ", e); - throw new RuntimeException(e); + log.error("复核推送工厂信息错误 ", e); +// throw new RuntimeException(e); } } @@ -3021,7 +3007,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { } orderList.add(order); - if (distributionStockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())){ + if (distributionStockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) { //构建包件信息 List distributionParcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationEntity.getId(), distributionStockArticleEntity.getId(), distributionStockArticleEntity.getWarehouseId()); if (!distributionParcelListEntities.isEmpty()) { @@ -3040,7 +3026,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { } } } - }else { + } else { //整理零担的数据 List distributionParcelNumberVOS = distributionReservationMapper.selectReservationZeroOrderDetail(distributionStockArticleEntity.getId(), reservationEntity.getId()); if (!distributionParcelNumberVOS.isEmpty()) { @@ -3115,7 +3101,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { } pushInstallDTO.setOrder(orderList); pushInstallDTO.setOrder_detail(orderDetailList); - log.info(">>>>>>>>>>>>>>安装推送整理数据:{}",JSONObject.toJSON(pushInstallDTO)); + log.info(">>>>>>>>>>>>>>安装推送整理数据:{}", JSONObject.toJSON(pushInstallDTO)); String jsonString = JSONObject.toJSONString(pushInstallDTO); rabbitTemplate.convertAndSend(RabbitConstant.PUSH_INSTALL_PLATFORM_EXCHANGE, RabbitConstant.PUSH_INSTALL_PLATFORM_ROUTING, jsonString); 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 147884b3d..5da777f39 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 @@ -260,6 +260,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl> inventoryMap = detailsEntities.stream().collect(Collectors.groupingBy(DistributionDeliveryDetailsEntity::getStockListId)); - List inventoryIds = detailsEntities.stream().map(DistributionDeliveryDetailsEntity::getStockListId).collect(Collectors.toList()); - List distributionStockListEntities = distributionStockListService.listByIds(inventoryIds); - if (!distributionStockListEntities.isEmpty()) { - for (DistributionStockListEntity distributionStockListEntity : distributionStockListEntities) { - Map tempMap = new HashMap<>(); - tempMap.put("序号", a); - tempMap.put("运单号", distributionStockListEntity.getIncomingBatch()); - tempMap.put("合同号", distributionStockListEntity.getOrderCode()); - tempMap.put("物料名称", distributionStockListEntity.getDescriptionGoods()); - //构建产品明细 - Map map1 = new HashMap<>(); - map1.put("物料编码", distributionStockListEntity.getCargoNumber()); - map1.put("物料单位", distributionStockListEntity.getCargoUnit()); - map1.put("物料规格", distributionStockListEntity.getCargoNorms()); - //查询此订制品库位信息 - DistributionDeliveryDetailsEntity distributionDeliveryDetailsEntity = inventoryMap.get(distributionStockListEntity.getId()).get(0); - Integer quantity = distributionDeliveryDetailsEntity.getQuantity(); - map1.put("计划数量", quantity); - hejiNum += quantity; - tempMap.put("小计", quantity); - tempMap.put("货位", ""); - tempMap.put("产品明细", map1); - tempMap.put("备货区", ""); - ls.add(tempMap); - a++; - if (!mailNames.toString().contains(distributionStockListEntity.getMarketName())) { - if (!mailNames.toString().isEmpty()) { - mailNames.append(","); - } - mailNames.append(distributionStockListEntity.getMarketName()); - } - if (!consigneeUnit.toString().contains(distributionStockListEntity.getMarketName())) { - if (!consigneeUnit.toString().isEmpty()) { - consigneeUnit.append(","); - } - consigneeUnit.append(distributionStockListEntity.getMarketName()); - } - } - } - } // 构建产品明细的表头 -- 这里目前只处理了定制品和有数据的库存品,对于零担 还没有处理 @@ -5098,6 +5059,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl ladingScanEntities = distributionBillLadingScanService.list(Wrappers.query().lambda() + .eq(DistributionBillLadingScanEntity::getBillLadingId, distrilbutionBillLadingEntity.getId()) + .eq(DistributionBillLadingScanEntity::getStockArticleId, distributionStockArticleEntity.getId()) + ); + if (!ladingScanEntities.isEmpty()) { + int sum = ladingScanEntities.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum(); + tempMap.put("签收件数", sum); + } ls.add(tempMap); a++; @@ -5148,6 +5119,62 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl> inventoryMap = detailsEntities.stream().collect(Collectors.groupingBy(DistributionDeliveryDetailsEntity::getStockListId)); + List inventoryIds = detailsEntities.stream().map(DistributionDeliveryDetailsEntity::getStockListId).collect(Collectors.toList()); + List distributionStockListEntities = distributionStockListService.listByIds(inventoryIds); + if (!distributionStockListEntities.isEmpty()) { + List> iList = new ArrayList<>(); + for (DistributionStockListEntity distributionStockListEntity : distributionStockListEntities) { + Map tempMap = new HashMap<>(); + tempMap.put("序号", a); + tempMap.put("批次号", distributionStockListEntity.getIncomingBatch()); + tempMap.put("产品名称", distributionStockListEntity.getDescriptionGoods()); + tempMap.put("单位", distributionStockListEntity.getCargoUnit()); + tempMap.put("物料编码", distributionStockListEntity.getCargoNumber()); + tempMap.put("物料单位", distributionStockListEntity.getCargoUnit()); + tempMap.put("物料规格", distributionStockListEntity.getCargoNorms()); + //构建产品明细 + //查询此订制品库位信息 + DistributionDeliveryDetailsEntity distributionDeliveryDetailsEntity = inventoryMap.get(distributionStockListEntity.getId()).get(0); + Integer quantity = distributionDeliveryDetailsEntity.getQuantity(); + //查询签收数量 + List list = disStockListDetailService.list(Wrappers.query().lambda() + .eq(DisStockListDetailEntity::getReservationId, distributionDeliveryDetailsEntity.getBillLadingId()) + .ne(DisStockListDetailEntity::getStockPackageStatus, ReservationPackageStatusConstant.quxiao.getValue()) + ); + tempMap.put("签收件数", 0); + if (!list.isEmpty()) { + int sum = list.stream().filter(l -> InventorySigningStatusConstant.yiqianshou.getValue().equals(l.getStockSignfoStatus())).mapToInt(DisStockListDetailEntity::getNum).sum(); + tempMap.put("签收件数", sum); + } + tempMap.put("数量", quantity); + hejiNum += quantity; + tempMap.put("小计", quantity); + //这里只进行计划指定的批次库位进行整理 + tempMap.put("货位", distributionStockListEntity.getStorageLocation()); + tempMap.put("备货区", ""); + tempMap.put("备货件数",distributionDeliveryDetailsEntity.getRealityQuantity()); + iList.add(tempMap); + a++; + if (!mailNames.toString().contains(distributionStockListEntity.getMarketName())) { + if (!mailNames.toString().isEmpty()) { + mailNames.append(","); + } + mailNames.append(distributionStockListEntity.getMarketName()); + } + if (!consigneeUnit.toString().contains(distributionStockListEntity.getMarketName())) { + if (!consigneeUnit.toString().isEmpty()) { + consigneeUnit.append(","); + } + consigneeUnit.append(distributionStockListEntity.getMarketName()); + } + } + if (!iList.isEmpty()) { + map.put("库存品集合",iList); + } + } + } map.put("收货单单位", consigneeUnit.toString()); map.put("商场名称", mailNames.toString()); @@ -5160,6 +5187,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl>>>>>>>>> signFor 签收扫描 {}", parcelListEntity.getOrderPackageCode()); + BroadcastNodeData broadcastNodeData = new BroadcastNodeData(); + broadcastNodeData.put("orderPackageCode", parcelListEntity.getOrderPackageCode()); + broadcastNodeData.put("distributionContactId", taskId); +// broadcastNodeData.put("distributionContactCode", distributionReservationEntity.getReservationCode()); + broadcastNodeData.put("destinationWarehouse", destinationWarehouse); + broadcastNodeData.put("brand", parcelListEntity.getBrandName()); + broadcastNodeData.setOperationTime(operationTime); + broadcastNodeData.setUserName(AuthUtil.getUserName()); + broadcastNodeData.setTenantId(AuthUtil.getTenantId()); + + FanoutMsg build = FanoutMsg.builder().msg(broadcastNodeData.toJSONString()) + .exchange(FanoutConstants.distribution.signfor.EXCHANGE).build(); + + sendFanoutMsg(build); + } + + + @Override + public void signForCheck() { + + } + + @Override + public void billofladingSignfor(DistributionParcelListEntity parcelListEntity,Long taskId,String operationTime, String destinationWarehouse) { + log.info(">>>>>>>>>> billofladingSignfor 自提扫描 {}", parcelListEntity.getOrderPackageCode()); + + + BroadcastNodeData broadcastNodeData = new BroadcastNodeData(); + broadcastNodeData.put("orderPackageCode", parcelListEntity.getOrderPackageCode()); + broadcastNodeData.put("distributionContactId", taskId); +// broadcastNodeData.put("distributionContactCode", distributionReservationEntity.getReservationCode()); + broadcastNodeData.put("destinationWarehouse", destinationWarehouse); + broadcastNodeData.put("brand", parcelListEntity.getBrandName()); + broadcastNodeData.setOperationTime(operationTime); + broadcastNodeData.setUserName(AuthUtil.getUserName()); + broadcastNodeData.setTenantId(AuthUtil.getTenantId()); + + FanoutMsg build = FanoutMsg.builder().msg(broadcastNodeData.toJSONString()) + .exchange(FanoutConstants.distribution.signfor.EXCHANGE).build(); + + sendFanoutMsg(build); + + } + + @Override + public void billofladingSignforCheck() { + + } + + @Override + public void retention() { + + } + + @Override + public void abnormalSignfor() { + + } + + @Override + public void fail() { + + } + + + @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(value = 3000, multiplier = 1.5)) + private void sendFanoutMsg(FanoutMsg fanoutMsg) { + + rabbitTemplate.convertAndSend(fanoutMsg.getExchange(), null, fanoutMsg.getMsg()); + + } +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationStockarticleServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationStockarticleServiceImpl.java index 9641ba8f0..5d2ff5086 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationStockarticleServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationStockarticleServiceImpl.java @@ -56,95 +56,95 @@ import java.util.stream.Collectors; public class DistributionReservationStockarticleServiceImpl extends BaseServiceImpl implements IDistributionReservationStockarticleService { - private final DistributionReservationMapper distributionReservationMapper; + private final DistributionReservationMapper distributionReservationMapper; + @Override + public IPage selectDistributionReservationStockarticlePage(IPage page, DistributionReservationStockarticleVO distributionReservationStockarticle) { + return page.setRecords(baseMapper.selectDistributionReservationStockarticlePage(page, distributionReservationStockarticle)); + } - @Override - public IPage selectDistributionReservationStockarticlePage(IPage page, DistributionReservationStockarticleVO distributionReservationStockarticle) { - return page.setRecords(baseMapper.selectDistributionReservationStockarticlePage(page, distributionReservationStockarticle)); - } - - @Override - public List exportDistributionReservationStockarticle(Map distributionReservationStockarticle) { + @Override + public List exportDistributionReservationStockarticle(Map distributionReservationStockarticle) { // QueryWrapper queryWrapper = Condition.getQueryWrapper(distributionReservationStockarticle, DistributionReservationStockarticleEntity.class); // queryWrapper.lambda().eq(DistributionReservationStockarticleEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); // queryWrapper.apply("stock_article_status in (1,3)"); - DistributionReservationStockarticleDTO reservationStockarticleDTO = JSONObject.parseObject(JSONObject.toJSONString(distributionReservationStockarticle), DistributionReservationStockarticleDTO.class); + DistributionReservationStockarticleDTO reservationStockarticleDTO = JSONObject.parseObject(JSONObject.toJSONString(distributionReservationStockarticle), DistributionReservationStockarticleDTO.class); - List distributionReservationStockarticleList = baseMapper.exportDistributionReservationStockarticle(reservationStockarticleDTO); - distributionReservationStockarticleList.forEach(d -> { - d.setDeliveryType(DictBizCache.getValue(DictBizConstant.DISTRIBUTION_TYPE,d.getDeliveryType())); + List distributionReservationStockarticleList = baseMapper.exportDistributionReservationStockarticle(reservationStockarticleDTO); + distributionReservationStockarticleList.forEach(d -> { + d.setDeliveryType(DictBizCache.getValue(DictBizConstant.DISTRIBUTION_TYPE, d.getDeliveryType())); // distributionReservationStockarticle.setTypeName(DictCache.getValue(DictEnum.YES_NO, DistributionReservationStockarticle.getType())); - }); - return distributionReservationStockarticleList; - } - - @Override - public IPage selectDistributionReservationStockarticleorderPage(IPage page, DistributionReservationStockarticleVO distributionReservationStockarticle) { - return page.setRecords(baseMapper.selectDistributionReservationStockarticleorderPage(page, distributionReservationStockarticle)); - } - - @Override - public void maintenanceReservationStockArticle(Long reservationId,Long warehouseId) { - List reservationStockarticleEntities = this.list(Wrappers.query().lambda() - .eq(DistributionReservationStockarticleEntity::getReservationId, reservationId) - .ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue()) - ); - if (Func.isNotEmpty(reservationStockarticleEntities)){ - List reservationOrderList = reservationStockarticleEntities.stream().filter(order -> order.getIsZero().equals(IsOrNoConstant.no.getValue())).collect(Collectors.toList()); - if (Func.isNotEmpty(reservationOrderList)){ - for (DistributionReservationStockarticleEntity reservationStockarticleEntity : reservationOrderList) { - if (IsOrNoConstant.yes.getValue().equals(reservationStockarticleEntity.getIsZero())){ - List distributionParcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationId, reservationStockarticleEntity.getStockArticleId(),warehouseId); - if (Func.isNotEmpty(distributionParcelListEntities)){ - int sum = distributionParcelListEntities.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum(); - if (sum == 0){ - reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue()); - //标识任务取消 - reservationStockarticleEntity.setCancelStatus(1); - this.updateById(reservationStockarticleEntity); - } - } - }else { - List distributionParcelNumberVOS = distributionReservationMapper.selectReservationZeroOrderDetail(reservationStockarticleEntity.getStockArticleId(), reservationId); - if (Func.isNotEmpty(distributionParcelNumberVOS)){ - int sum = distributionParcelNumberVOS.stream().mapToInt(DistributionParcelNumberVO::getReservationNum).sum(); - if (0 == sum){ - reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue()); - reservationStockarticleEntity.setCancelStatus(1); - this.updateById(reservationStockarticleEntity); - } - } - } - } - } - } - } - - @Override - public void maintenanceReservationStockArticleNum(Long reservationId, Long orderId,Long warehouseId) { - - DistributionReservationStockarticleEntity reservationStockarticleEntity = this.getOne(Wrappers.query().lambda() - .eq(DistributionReservationStockarticleEntity::getReservationId, reservationId) - .eq(DistributionReservationStockarticleEntity::getStockArticleId, orderId) - .ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue()) - ); - if (Func.isNotEmpty(reservationStockarticleEntity)){ - List distributionParcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationId, orderId, warehouseId); - if (Func.isNotEmpty(distributionParcelListEntities)){ - int sum = distributionParcelListEntities.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum(); - reservationStockarticleEntity.setReservationNum(sum); - }else { - reservationStockarticleEntity.setReservationNum(0); - reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue()); - reservationStockarticleEntity.setCancelStatus(1); - } - this.updateById(reservationStockarticleEntity); - - } - } + }); + return distributionReservationStockarticleList; + } + + @Override + public IPage selectDistributionReservationStockarticleorderPage(IPage page, DistributionReservationStockarticleVO distributionReservationStockarticle) { + return page.setRecords(baseMapper.selectDistributionReservationStockarticleorderPage(page, distributionReservationStockarticle)); + } + + @Override + public void maintenanceReservationStockArticle(Long reservationId, Long warehouseId) { + List reservationStockarticleEntities = this.list(Wrappers.query().lambda() + .eq(DistributionReservationStockarticleEntity::getReservationId, reservationId) + .ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue()) + ); + if (Func.isNotEmpty(reservationStockarticleEntities)) { + List reservationOrderList = reservationStockarticleEntities.stream().filter(order -> order.getIsZero().equals(IsOrNoConstant.no.getValue())).collect(Collectors.toList()); + if (Func.isNotEmpty(reservationOrderList)) { + for (DistributionReservationStockarticleEntity reservationStockarticleEntity : reservationOrderList) { + if (IsOrNoConstant.no.getValue().equals(reservationStockarticleEntity.getIsZero())) { + List distributionParcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationId, reservationStockarticleEntity.getStockArticleId(), warehouseId); + int sum = 0; + if (!distributionParcelListEntities.isEmpty()) { + sum = distributionParcelListEntities.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum(); + } + if (sum == 0) { + reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue()); + //标识任务取消 + reservationStockarticleEntity.setCancelStatus(1); + this.updateById(reservationStockarticleEntity); + } + } else { + List distributionParcelNumberVOS = distributionReservationMapper.selectReservationZeroOrderDetail(reservationStockarticleEntity.getStockArticleId(), reservationId); + if (Func.isNotEmpty(distributionParcelNumberVOS)) { + int sum = distributionParcelNumberVOS.stream().mapToInt(DistributionParcelNumberVO::getReservationNum).sum(); + if (0 == sum) { + reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue()); + reservationStockarticleEntity.setCancelStatus(1); + this.updateById(reservationStockarticleEntity); + } + } + } + } + } + } + } + + @Override + public void maintenanceReservationStockArticleNum(Long reservationId, Long orderId, Long warehouseId) { + + DistributionReservationStockarticleEntity reservationStockarticleEntity = this.getOne(Wrappers.query().lambda() + .eq(DistributionReservationStockarticleEntity::getReservationId, reservationId) + .eq(DistributionReservationStockarticleEntity::getStockArticleId, orderId) + .ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue()) + ); + if (Func.isNotEmpty(reservationStockarticleEntity)) { + List distributionParcelListEntities = distributionReservationMapper.selectPackageByReservationAndStockArticle(reservationId, orderId, warehouseId); + if (Func.isNotEmpty(distributionParcelListEntities)) { + int sum = distributionParcelListEntities.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum(); + reservationStockarticleEntity.setReservationNum(sum); + } else { + reservationStockarticleEntity.setReservationNum(0); + reservationStockarticleEntity.setStockArticleStatus(ReservationOrderStatusConstant.quxiao.getValue()); + reservationStockarticleEntity.setCancelStatus(1); + } + this.updateById(reservationStockarticleEntity); + + } + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index c09fb6260..38dd67d8a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -242,6 +242,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl selectDistributionSignforPage(IPage page, DistributionSignforVO distributionSignfor) { @@ -683,7 +686,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImplquery().lambda() .eq(DistributionSignforEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId()) ); @@ -2523,13 +2532,13 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl jsonObjects = new ArrayList<>(); @@ -2722,12 +2730,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImplquery().lambda() - .eq(DistributionParcelListEntity::getOrderPackageCode, distrilbutionloadingscanDTO.getBarcode()) - .eq(DistributionParcelListEntity::getWarehouseId, myCurrentWarehouse.getId()) - ); - if (Func.isNotEmpty(one) && one.getConditions() == 2) { - log.warn("#####################此包件不是定制品 {}", one.getConditions()); + if (Func.isNotEmpty(parcelListEntity) && parcelListEntity.getConditions() == 2) { + log.warn("#####################此包件不是定制品 {}", parcelListEntity.getConditions()); return Resp.scanFail("此包件不是定制品", "此包件不是定制品"); } List parcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId()); @@ -2796,15 +2800,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl>>> 签收推送报错", e); - } + // 节点作业推送 + sendNodeWorkDataBroadcast(parcelListEntity, distributionReservationEntity, singleTime, myCurrentWarehouse); return Resp.scanSuccessWithData("签收成功", str, orderPackageCodes); @@ -2814,6 +2811,20 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl>>> 签收作业节点广播报错", e); + } + } + /** * @param orderPackageCode * @param reservationCode @@ -2944,38 +2955,38 @@ public class DistributionSignforServiceImpl extends BaseServiceImplquery().lambda() + DistributionLoadscanEntity distributionLoadscanEntity = distributionLoadscanMapper.selectOne(Wrappers.query().lambda() .ne(DistributionLoadscanEntity::getScanStatus, 1) .eq(DistributionLoadscanEntity::getReservationId, distrilbutionloadingscanDTO.getReservationId()) .eq(DistributionLoadscanEntity::getDeliveryId, distrilbutionloadingscanDTO.getDeliveryId()) .eq(DistributionLoadscanEntity::getOrderPackageCode, parcelListEntity.getOrderPackageCode())); - if (Func.isNotEmpty(loadscanEntity)) { - if (loadscanEntity.getSignforState().equals(2)) { + if (Func.isNotEmpty(distributionLoadscanEntity)) { + if (distributionLoadscanEntity.getSignforState().equals(2)) { return Resp.scanFail("重复扫描", "重复扫描"); } //存在装车记录,进行修改即可 //进行签收记录数据的维护 - loadscanEntity.setSigningTime(simpleDateFormat.format(new Date())); - loadscanEntity.setSignforState(2); - loadscanEntity.setReceivedQuantity(loadscanEntity.getLoadedNub()); + distributionLoadscanEntity.setSigningTime(simpleDateFormat.format(new Date())); + distributionLoadscanEntity.setSignforState(2); + distributionLoadscanEntity.setReceivedQuantity(distributionLoadscanEntity.getLoadedNub()); - loadscanEntity.setSigningUser(nickName); - loadscanEntity.setSigningUserId(userId); - loadscanEntity.setSignforType(LoadScanSigningTypeStatusConstant.wenyuanpiliangqianshou.getValue()); + distributionLoadscanEntity.setSigningUser(nickName); + distributionLoadscanEntity.setSigningUserId(userId); + distributionLoadscanEntity.setSignforType(LoadScanSigningTypeStatusConstant.wenyuanpiliangqianshou.getValue()); - distributionLoadscanService.updateById(loadscanEntity); - packageLockIds.add(loadscanEntity.getPackageId()); + distributionLoadscanService.updateById(distributionLoadscanEntity); + packageLockIds.add(distributionLoadscanEntity.getPackageId()); //缺少一个异步维护包件签收的方法 // distributionAsyncService.changeOrderSignforStatus(collect.get(0)); - Integer j = distributionSignforMapper.updateSignforNum(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), loadscanEntity.getPackageNub()); + Integer j = distributionSignforMapper.updateSignforNum(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getPackageNub()); //更新签收人 - Integer m = distributionSignforMapper.updateSignUser(loadscanEntity.getDeliveryId(), loadscanEntity.getReservationId(), AuthUtil.getUser()); + Integer m = distributionSignforMapper.updateSignUser(distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getReservationId(), AuthUtil.getUser()); //下架解托 - warehouseUpdownTypeClient.downPackageOrDelTray(loadscanEntity.getOrderPackageCode(), myCurrentWarehouse.getId(), "签收下架解托"); + warehouseUpdownTypeClient.downPackageOrDelTray(distributionLoadscanEntity.getOrderPackageCode(), myCurrentWarehouse.getId(), "签收下架解托"); content = "包件在" + myCurrentWarehouse.getName() + "由" + AuthUtil.getNickName() + "后台签收,装车方式:扫描装车,配送车次号:" + deliveryListEntity.getTrainNumber() + "预约任务号:" + distributionReservationEntity.getReservationCode(); try { - trunklinePackageTrackLog = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), loadscanEntity.getOrderPackageCode(), content, WorkNodeEnums.DISTRIBUTION_SIGN_FOR.getCode(), deliveryListEntity.getTrainNumber(), parcelListEntity.getWarehouseEntryTimeEnd()); + trunklinePackageTrackLog = handleLogJSONObject(myCurrentWarehouse, AuthUtil.getUser(), distributionLoadscanEntity.getOrderPackageCode(), content, WorkNodeEnums.DISTRIBUTION_SIGN_FOR.getCode(), deliveryListEntity.getTrainNumber(), parcelListEntity.getWarehouseEntryTimeEnd()); } catch (Exception e) { log.error("装车日志数据错误", e); } @@ -2999,7 +3010,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl>>> 签收推送报错", e); - } +// try { +// sendMessage(orderPackageCode, distributionReservationEntity.getReservationCode(), +// deliveryListEntity.getTrainNumber(), deliveryListEntity.getVehicleName(), deliveryListEntity.getDriverName(), +// AuthUtil.getUserName(), myCurrentWarehouse.getId(), AuthUtil.getTenantId()); +// } catch (Exception e) { +//// throw new RuntimeException(e); +// log.error(">>>> 签收推送报错", e); +// } } else { //一个客户下出现重复包条码 @@ -3363,6 +3376,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl>>>>>>>>>>>>>>reservationId:{},deliveryId:{},orderPackageCode:{}", distributionLoadscanEntity.getReservationId(), distributionLoadscanEntity.getDeliveryId(), distributionLoadscanEntity.getOrderPackageCode()); //进行签收数量的修改 Integer i = distributionDeliveryListMapper.updateloadingTimeById(distrilbutionloadingscanDTO.getDeliveryId()); @@ -3519,6 +3533,10 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl detailEntities = distributionReservationMapper.selectInventoryListByReservation(distributionSignforEntity.getReservationId()); - if (detailEntities.size() > 0 && Func.isNotEmpty(detailEntities)) { + if (!detailEntities.isEmpty() && Func.isNotEmpty(detailEntities)) { loadingInventoryNum += detailEntities.stream().mapToInt(DisStockListDetailEntity::getNum).sum(); signingInventoryNum += detailEntities.stream().mapToInt(DisStockListDetailEntity::getNum).sum(); boolean flag = detailEntities.stream().allMatch(s -> Func.isNotEmpty(s.getStockPackageCode())); @@ -5308,9 +5328,10 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl> packageMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getConditions)); List ladingScanEntities = new ArrayList<>(); if (!packageMap.isEmpty()) { - ladingScanEntities = handleSignPackage(packageMap, distrilbutionBillLading.getId(), myCurrentWarehouse.getId()); + ladingScanEntities = handleSignPackage(packageMap, distrilbutionBillLading.getId(), myCurrentWarehouse); if (!ladingScanEntities.isEmpty()) { // 进行签收扫描数据补录 distributionBillLadingScanService.saveBatch(ladingScanEntities); @@ -1382,7 +1351,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl handleSignPackage(Map> packageMap, Long id, Long warehouseId) { + public List handleSignPackage(Map> packageMap, Long id, BasicdataWarehouseEntity myCurrentWarehouse) { String method = "###################DistributionBillLadingServiceImpl.handleSignPackage"; List ladingScanEntities = new ArrayList<>(); List orderCodes = new ArrayList<>(); @@ -1402,7 +1371,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl pushMap = new HashMap<>(); - pushMap.put("orderPackageCode", coding); - pushMap.put("operationTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); - pushMap.put("distributionContactId", billLadingId); - pushMap.put("destinationWarehouse", myCurrentWarehouse.getName()); - - rabbitTemplate.convertAndSend(RabbitConstant.MT_BUSINESS_DATA_2_FACTORY_EXCHANGE, RabbitConstant.MT_BUSINESS_DATA_2_FACTORY_ROUTING, pushMap, message -> { - message.getMessageProperties() - .setHeader("x-delay", 3000); - return message; - }); - } +// if (distributionParcelListEntity.getBrandName().equals("梦天")){ +// Map pushMap = new HashMap<>(); +// pushMap.put("orderPackageCode", coding); +// pushMap.put("operationTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); +// pushMap.put("distributionContactId", billLadingId); +// pushMap.put("destinationWarehouse", myCurrentWarehouse.getName()); +// +// rabbitTemplate.convertAndSend(RabbitConstant.MT_BUSINESS_DATA_2_FACTORY_EXCHANGE, RabbitConstant.MT_BUSINESS_DATA_2_FACTORY_ROUTING, pushMap, message -> { +// message.getMessageProperties() +// .setHeader("x-delay", 3000); +// return message; +// }); +// } } @@ -3335,6 +3314,21 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl>>> 自提签收作业节点广播报错", e); + } + } /** * pda扫描 diff --git a/blade-service/logpm-distribution/src/main/resources/application-dev.yml b/blade-service/logpm-distribution/src/main/resources/application-dev.yml index e2379fc57..5900ebb32 100644 --- a/blade-service/logpm-distribution/src/main/resources/application-dev.yml +++ b/blade-service/logpm-distribution/src/main/resources/application-dev.yml @@ -15,10 +15,10 @@ server: spring: #rabbitmq配置 rabbitmq: - host: 192.168.3.100 + host: 192.168.2.46 port: 5672 username: admin - password: 123456 + password: admin #虚拟host 可以不设置,使用server默认host virtual-host: / #确认消息已发送到队列(Queue) diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/NodeWorkHandler.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/NodeWorkHandler.java new file mode 100644 index 000000000..e8d1820c8 --- /dev/null +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/NodeWorkHandler.java @@ -0,0 +1,54 @@ +package com.logpm.factory.receiver; + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.logpm.factory.mt.service.IMtFactoryDataService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.broadcast.FanoutConstants; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +/** + * 作业节点数据监听 + */ +@Slf4j +@AllArgsConstructor +@Component +public class NodeWorkHandler { + + private final IMtFactoryDataService mtFactoryDataService; + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = FanoutConstants.distribution.signfor.QUEUE.FACTORY_NODE_WORK_DISTRIBUTION_SIGNFOR_QUERY), + exchange = @Exchange(name = FanoutConstants.distribution.signfor.EXCHANGE, type = ExchangeTypes.FANOUT) + )) + public void distributionSignforQuery(String message) { + + try { + JSONObject jsonObject = JSONUtil.parseObj(message); + String orderPackageCode = jsonObject.getStr("orderPackageCode"); + String operationTime = jsonObject.getStr("operationTime"); + String distributionContactId = jsonObject.getStr("distributionContactId"); + String destinationWarehouse = jsonObject.getStr("destinationWarehouse"); + // 获取品牌BrandEnums.MTMM.getValue() + String o = jsonObject.getStr("brand"); + switch (o) { + case "梦天" : + log.info("工厂节点数据监听:1"); + mtFactoryDataService.qianshouScanForNewSystem(orderPackageCode, operationTime, distributionContactId, destinationWarehouse); + break; + default: + log.info("签收扫描没有找到品牌: {}",o); + } + }catch (Exception e){ + log.error("工厂节点数据监听异常", e); + } + + + } + +} diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java index 38b90c771..aae4e8158 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java @@ -212,9 +212,9 @@ public class DistributionDatarepair { @XxlJob("pushBillNotification") public ReturnT pushBillNotification(String params) { // 得到当前仓库所有的签收任务 - Integer parmeId = null; + Long parmeId = null; if(StringUtil.isNotBlank(params)){ - parmeId = Integer.parseInt(params); + parmeId = Long.parseLong(params); } List allSignfor = warehouseMappingDataMapper.findAllBillSign(parmeId); for (JSONObject entries : allSignfor) { diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java index 4d217c5cc..01f043e41 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java @@ -96,7 +96,7 @@ public interface WarehouseMappingDataMapper { void updateClearSignforStatus(@Param("singnforId") Long singnforId, @Param("warehouseId") Long warehouseId, @Param("dealStatus") Integer dealStatus); void updateClearBillSignforStatus(@Param("singnforId") Long singnforId, @Param("warehouseId") Long warehouseId, @Param("dealStatus") Integer dealStatus); - List findAllBillSign(@Param("id") Integer id); + List findAllBillSign(@Param("id") Long id); List findExceptionTrayType(); diff --git a/blade-service/logpm-statisticsdata/src/main/resources/application-dev.yml b/blade-service/logpm-statisticsdata/src/main/resources/application-dev.yml index cb3725ec1..f5a8e1df0 100644 --- a/blade-service/logpm-statisticsdata/src/main/resources/application-dev.yml +++ b/blade-service/logpm-statisticsdata/src/main/resources/application-dev.yml @@ -12,10 +12,10 @@ server: spring: #rabbitmq配置 rabbitmq: - host: 192.168.3.100 + host: 192.168.2.46 port: 5672 username: admin - password: 123456 + password: admin #虚拟host 可以不设置,使用server默认host virtual-host: / #确认消息已发送到队列(Queue) diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/config/RabbitMqConfiguration.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/config/RabbitMqConfiguration.java index f69f45af9..4f41cda88 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/config/RabbitMqConfiguration.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/config/RabbitMqConfiguration.java @@ -104,32 +104,4 @@ public class RabbitMqConfiguration { return BindingBuilder.bind(hwyOpenOrderLoadScanQueue).to(hwyOpenOrderLoadScanExchange).with(RabbitConstant.HWY_ORDER_STATUS_ROUTING).noargs(); } - @Bean - public Queue openWaybillToBusinessQueue() { - return new Queue(RabbitConstant.OPEN_WAYBILL_TO_BUSINESS_DATA_QUEUE, true); - } - @Bean - public CustomExchange openWaybillToBusinessExchange() { - Map args = Maps.newHashMap(); - args.put("x-delayed-type", "direct"); - return new CustomExchange(RabbitConstant.OPEN_WAYBILL_TO_BUSINESS_DATA_EXCHANGE, "x-delayed-message", true, false, args); - } - @Bean - public Binding openWaybillToBusinessBinding(Queue openWaybillToBusinessQueue, CustomExchange openWaybillToBusinessExchange) { - return BindingBuilder.bind(openWaybillToBusinessQueue).to(openWaybillToBusinessExchange).with(RabbitConstant.OPEN_WAYBILL_TO_BUSINESS_DATA_ROUTING).noargs(); - } - - - - - - - - - - - - - - } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java index 03fa30bb9..0f16d25bf 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java @@ -1011,8 +1011,15 @@ public class OpenOrderController { log.warn(method+"订单号为空 orderCode={}",orderCode); throw new CustomerException(405,"订单号为空"); } + + String brand = openLabelDTO.getBrand(); + if(StringUtil.isBlank(brand)){ + log.warn(method+"品牌为空 brand={}",brand); + throw new CustomerException(405,"品牌为空"); + } + Integer totalNumber = openLabelDTO.getTotalNumber(); - if(totalNumber == 0){ + if(totalNumber == 0 && !"曼好家".equals(brand)){ log.warn(method+"总数量不正确 totalNumber={}",totalNumber); throw new CustomerException(405,"总数量不正确"); } @@ -1021,11 +1028,7 @@ public class OpenOrderController { log.warn(method+"一级品类为空 firsts={}",firsts); throw new CustomerException(405,"一级品类为空"); } - String brand = openLabelDTO.getBrand(); - if(StringUtil.isBlank(brand)){ - log.warn(method+"品牌为空 brand={}",brand); - throw new CustomerException(405,"品牌为空"); - } + String dealerName = openLabelDTO.getDealerName(); if(StringUtil.isBlank(dealerName)){ log.warn(method+"商场为空 dealerName={}",dealerName); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml index ceada808a..a95db511c 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml @@ -400,6 +400,33 @@ and Locate(#{param.loadCarsNo},ltcl.cars_no) > 0 + + and Locate(#{param.carrierName},ltcl.carrier_name) > 0 + + + and ltcl.pay_method = #{param.payMethod} + + + and Locate(#{param.carrierOrderCode},ltcl.carrier_order_code) > 0 + + + and Locate(#{param.startWarehouseName},ltcl.start_warehouse_name) > 0 + + + and ltcl.load_status = #{param.loadStatus} + + + and ltcl.is_settlement = #{param.isSettlement} + + + and ltcl.delivery_type = #{param.deliveryType} + + + and Locate(#{param.operator},ltcl.operator) > 0 + + + and Locate(#{param.settlementPerson},ltcl.settlement_person) > 0 + group by ltcl.id order by ltcl.create_time desc diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java index e64daa9d9..ca8671370 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java @@ -118,7 +118,7 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper findUnloadByLoadIdAndWarehouseId(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId); - void updateScanStatusByLoadId(@Param("loadId") Long loadId, @Param("scanStatus") String scanStatus, @Param("unloadTime") Date unloadTime); + void updateScanStatusByLoadId(@Param("loadId") Long loadId, @Param("scanStatus") String scanStatus, @Param("unloadTime") Date unloadTime,@Param("signUserName") String signUserName); List findSignListOrderPackageCodes(@Param("loadId") Long loadId); @@ -162,4 +162,7 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper carsLoadScanIdList); + void clearSignOrderIdByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(@Param("loadId") Long loadId, @Param("nodeId") Long nodeId, @Param("orderCode") String orderCode, @Param("waybillNo") String waybillNo); + + void addSignOrderIdByLoadIdAndNodeIdAndOrderCodeAndWaybillNo(@Param("loadId") Long finalLoadId, @Param("nodeId") Long nodeId, @Param("orderCode") String orderCode, @Param("waybillNo") String waybillNo, @Param("signOrderId") Long signOrderId); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml index 078c45086..0fcc72850 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml @@ -473,12 +473,7 @@ set scan_status = #{scanStatus}, sign_time = #{unloadTime}, sign_user_name = #{signUserName}, - unload_abnormal = 0, - unload_num = num, - unload_user_name = #{signUserName}, - unload_time = #{unloadTime}, - unload_node_id = #{warehouseId}, - unload_node_name = #{warehouseName} + sign_abnormal = 0 where 1=1 and id in @@ -590,7 +585,9 @@ update logpm_trunkline_cars_load_scan set scan_status = #{scanStatus}, - sign_time = #{unloadTime} + sign_time = #{unloadTime}, + sign_user_name = #{signUserName}, + sign_abnormal = 0 where load_id = #{loadId} @@ -856,4 +853,24 @@ + + update logpm_trunkline_cars_load_scan + set sign_order_id = null + where load_id = #{loadId} + and warehouse_id = #{nodeId} + and order_code = #{orderCode} + and waybill_no = #{waybillNo} + and scan_status = '1' + + + + update logpm_trunkline_cars_load_scan + set sign_order_id = #{signOrderId} + where load_id = #{loadId} + and warehouse_id = #{nodeId} + and order_code = #{orderCode} + and waybill_no = #{waybillNo} + and scan_status = '1' + +
diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.java index 3b98d3905..adc569c08 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.java @@ -60,4 +60,8 @@ public interface TrunklineCarsOrderMapper extends BaseMapper findLoadingList(@Param("loadId") Long loadId, @Param("nodeId") Long nodeId); Integer findLoadingNumBySignOrderId(@Param("signOrderId") Long signOrderId); + + void updateNoCustomer(@Param("updateCarsOrderIdList") List updateCarsOrderIdList); + + List findMallOrderList(@Param("carsOrderIdList") List carsOrderIdList); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml index 42fe51de2..a6ff9b330 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml @@ -225,11 +225,13 @@ lww.id belongToWarehouseId, lww.name belongToWarehouseName, ltco.final_node_id finalNodeId, - 0 signNum, - '0' signStatus, + case when sum(ltco.sign_num) >= sum(ltco.real_num) and sum(ltco.sign_num) > 0 then '20' + when sum(ltco.sign_num) = 0 then '0' + else '10' end signStatus, GROUP_CONCAT(distinct ldsa.consignee_person) mallPerson, GROUP_CONCAT(distinct ldsa.consignee_mobile) mallMobile, GROUP_CONCAT(distinct ldsa.consignee_address) mallAddress, + sum(ltco.sign_num) signNum, sum(ltco.plan_num) planNum, sum(ltco.real_num) loadingNum from logpm_trunkline_cars_order ltco @@ -322,5 +324,30 @@ where sign_order_id = #{signOrderId} + + update logpm_trunkline_cars_order + set is_customer = '0', + sign_order_id = null + where id in + + #{item} + + and sign_num = 0 + + + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.java index eb1871b06..51ab86112 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.java @@ -26,4 +26,7 @@ public interface TrunklineLoadSignOrderMapper extends BaseMapper findSignOrderPageList(IPage page, @Param("param") LoadCarsDTO loadCarsDTO); + + void deleteListBySignOrderIds(@Param("delSignOrderList") List delSignOrderList); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.xml index 3ccab8873..53d2397c6 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineLoadSignOrderMapper.xml @@ -152,4 +152,13 @@ GROUP BY ltlso.id + + + delete from logpm_trunkline_load_sign_order + where id in + + #{signOrderId} + + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillTrackMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillTrackMapper.xml index 2a710a662..bcde05b3e 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillTrackMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillTrackMapper.xml @@ -23,7 +23,8 @@