From fbf3b81e7e26a29238b4fe1476aafabf455cc6ea Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Sat, 12 Oct 2024 14:54:06 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=B9=B2=E7=BA=BF=E5=9F=BA=E7=A1=80=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BC=80=E5=8F=91=202.=E5=B9=B2=E7=BA=BFbug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=8C=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/broadcast/FanoutConstants.java | 18 + .../common/model/NodeFanoutMsg.java | 12 +- .../springblade/common/model/PackageData.java | 71 +++- .../entity/ReportPackageBasicEntity.java | 163 +++++++++ .../entity/ReportPackageTrunklineEntity.java | 119 +++++++ .../entity/TrunklineAdvanceDetailEntity.java | 3 + .../TrunklineCarsLoadLinePhotoEntity.java | 44 +++ .../feign/ITrunklineCarsLoadClient.java | 2 + .../trunkline/vo/CustmoerUnloadNumVO.java | 13 + blade-service/logpm-aftersales/pom.xml | 5 + .../service/IAftersalesAyscService.java | 12 + .../service/ISendFanoutService.java | 7 + .../AftersalesAbnormalRecordServiceImpl.java | 46 +++ .../impl/AftersalesAyscServiceImpl.java | 103 ++++++ .../service/impl/SendFanoutServiceImpl.java | 21 ++ .../src/main/resources/application-dev.yml | 27 ++ .../src/main/resources/application-prod.yml | 27 ++ .../src/main/resources/application-test.yml | 26 ++ .../mapper/BasicdataClientMapper.xml | 4 +- .../mapper/BasicdataStoreBrandMapper.java | 2 + .../mapper/BasicdataStoreBrandMapper.xml | 9 + .../service/IBasicdataStoreBrandService.java | 2 + .../impl/BasicdataClientServiceImpl.java | 11 + .../impl/BasicdataStoreBrandServiceImpl.java | 5 + .../DistributionStockArticleServiceImpl.java | 43 ++- .../mapper/ReportPackageBasicMapper.java | 12 + .../mapper/ReportPackageBasicMapper.xml | 7 + .../mapper/ReportPackageTrunklineMapper.java | 12 + .../mapper/ReportPackageTrunklineMapper.xml | 7 + .../report/mapper/WarehouseIndexMapper.java | 4 +- .../report/mapper/WarehouseIndexMapper.xml | 5 +- .../service/IReportPackageBasicService.java | 7 + .../IReportPackageTrunklineService.java | 7 + .../impl/ReportPackageBasicServiceImpl.java | 15 + .../ReportPackageTrunklineServiceImpl.java | 15 + .../impl/WarehouseIndexServiceImpl.java | 21 +- .../logpm/report/vo/IndexOpenOrderDataVO.java | 5 + .../vo/indexCount/IndexOpenItemDataVO.java | 13 + .../controller/CarsLoadController.java | 45 +++ .../feign/TrunklineCarsLoadClient.java | 5 + .../mapper/TrunklineCarsLoadScanMapper.java | 2 + .../mapper/TrunklineCarsLoadScanMapper.xml | 10 + .../mapper/TrunklineCarsOrderMapper.java | 1 + .../trunkline/mq/AdvanceOrderListener.java | 16 +- .../trunkline/mq/OpenOrderToLoadListener.java | 36 ++ .../service/ICarsLoadAsyncService.java | 19 +- .../ITrunklineAdvanceDetailService.java | 7 + .../service/ITrunklineAdvanceService.java | 2 +- .../ITrunklineCarsLoadScanService.java | 2 + .../service/ITrunklineCarsLoadService.java | 2 + .../service/ITrunklineCarsOrderService.java | 1 + .../impl/CarsLoadAsyncServiceImpl.java | 330 ++++++++++++++++++ .../service/impl/InComingServiceImpl.java | 29 +- .../impl/OpenOrderAsyncServiceImpl.java | 4 +- .../service/impl/OpenOrderServiceImpl.java | 236 ++++++++++++- .../TrunklineAdvanceDetailServiceImpl.java | 164 +++++++++ .../impl/TrunklineAdvanceServiceImpl.java | 3 +- .../TrunklineCarsLoadScanServiceImpl.java | 6 +- .../impl/TrunklineCarsLoadServiceImpl.java | 99 +++++- .../TrunklineCarsOrderEntityServiceImpl.java | 1 - .../api/WarehouseTaskApiController.java | 2 - .../WarehouseWaybillController.java | 20 +- .../warehouse/dto/WarehouseWaybillDTO.java | 1 + .../mapper/WarehouseWaybillMapper.xml | 27 +- 64 files changed, 1886 insertions(+), 109 deletions(-) create mode 100644 blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/ReportPackageBasicEntity.java create mode 100644 blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/ReportPackageTrunklineEntity.java create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLinePhotoEntity.java create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CustmoerUnloadNumVO.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAyscService.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/ISendFanoutService.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAyscServiceImpl.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/SendFanoutServiceImpl.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageBasicMapper.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageBasicMapper.xml create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageTrunklineMapper.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageTrunklineMapper.xml create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportPackageBasicService.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportPackageTrunklineService.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportPackageBasicServiceImpl.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportPackageTrunklineServiceImpl.java create mode 100644 blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/IndexOpenItemDataVO.java 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 276f5e201..6aaa2c2e2 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 @@ -7,9 +7,27 @@ import org.springblade.common.constant.ModuleNameConstant; */ public abstract class FanoutConstants { + // 干线 public interface trunkline { + + // 数据入库 + interface REPORTDATA { + + // 交换机 + String EXCHANGE = "fanout.trunkline.reportdata" + ModuleNameConstant.DEVAUTH; + + interface QUEUE { + + // 保存基础数据 + String REPORT_BASICDATA = "fanout.trunkline.reportdata.report.basicData" + ModuleNameConstant.DEVAUTH; + + } + + } + + // 开单 interface OPENWAYBILL { diff --git a/blade-biz-common/src/main/java/org/springblade/common/model/NodeFanoutMsg.java b/blade-biz-common/src/main/java/org/springblade/common/model/NodeFanoutMsg.java index e6519522a..8b5fb98ad 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/model/NodeFanoutMsg.java +++ b/blade-biz-common/src/main/java/org/springblade/common/model/NodeFanoutMsg.java @@ -1,6 +1,5 @@ package org.springblade.common.model; -import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -40,10 +39,14 @@ public class NodeFanoutMsg implements Serializable { */ private String operator; + /** + * 操作人id + */ + private Long operatorId; + /** * 操作时间 */ - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss") private Date operatorTime; /** @@ -51,6 +54,11 @@ public class NodeFanoutMsg implements Serializable { */ private String warehouse; + /** + * 当前仓id + */ + private Long warehouseId; + /** * 当前仓ID */ diff --git a/blade-biz-common/src/main/java/org/springblade/common/model/PackageData.java b/blade-biz-common/src/main/java/org/springblade/common/model/PackageData.java index 6c3fb0730..f116eb1e1 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/model/PackageData.java +++ b/blade-biz-common/src/main/java/org/springblade/common/model/PackageData.java @@ -7,6 +7,7 @@ import lombok.NoArgsConstructor; import org.springblade.common.enums.PackageTypeEnums; import java.io.Serializable; +import java.math.BigDecimal; import java.util.List; /** @@ -29,10 +30,26 @@ public class PackageData implements Serializable { * 订单号 */ private String orderCode; + /** + * 服务号 + */ + private String serviceNo; /** * 运单号 */ private String waybillNumber; + + /** + * 品类名称 + */ + private String productName ; + + /** + * 品类id + */ + private Long productId ; + + /** * 批次号 */ @@ -45,6 +62,10 @@ public class PackageData implements Serializable { * 物料Code */ private String materialCode; + /** + * 物料id + */ + private Long materialId ; /** * 商场 */ @@ -53,6 +74,19 @@ public class PackageData implements Serializable { * 数量 */ private Integer number; + + /** + * 数量 + */ + private Integer num; + /** + * 重量 + */ + private BigDecimal weight; + /** + * 体积 + */ + private BigDecimal volume; /** * 包件类型 订制品,库存品,零担 */ @@ -68,16 +102,45 @@ public class PackageData implements Serializable { * 品牌 */ private String brand; + /** + * 客户车次号 + */ + private String customerTrain ; + /** - * 结算品类 - * 零担的开单品类 - * + * 工厂商场编码 */ - private String productName; + private String dealerCode ; + /** + * 工厂商场名称 + */ + private String dealerName ; + /** + * 合包码 + */ + private String mergePackageCode ; + /** + * 入库类型 + */ + private Integer incomingType ; + /** + * 品牌id + */ + private Long brandId ; + + /** + * 品牌 + */ + private String brandName ; + + /** + * 订单来源 + */ + private String systemType ; } diff --git a/blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/ReportPackageBasicEntity.java b/blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/ReportPackageBasicEntity.java new file mode 100644 index 000000000..8ffed246a --- /dev/null +++ b/blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/ReportPackageBasicEntity.java @@ -0,0 +1,163 @@ +package com.logpm.report.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("logpm_report_package_basic") +@ApiModel(value = "ReportPackageBasic对象", description = "报表基础信息类") +@EqualsAndHashCode(callSuper = true) +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ReportPackageBasicEntity extends TenantEntity { + + /** 预留1 */ + @ApiModelProperty(name = "预留1",notes = "") + private String reserve1 ; + /** 预留2 */ + @ApiModelProperty(name = "预留2",notes = "") + private String reserve2 ; + /** 预留3 */ + @ApiModelProperty(name = "预留3",notes = "") + private String reserve3 ; + /** 预留4 */ + @ApiModelProperty(name = "预留4",notes = "") + private String reserve4 ; + /** 预留5 */ + @ApiModelProperty(name = "预留5",notes = "") + private String reserve5 ; + + @ApiModelProperty(name = "运单号",notes = "") + private String waybillNo ; + + @ApiModelProperty(name = "服务号",notes = "") + private String serviceNo ; + + @ApiModelProperty(name = "订单号",notes = "") + private String orderCode ; + + @ApiModelProperty(name = "包件码",notes = "") + private String orderPackageCode ; + + @ApiModelProperty(name = "品类名称",notes = "") + private String productName ; + + @ApiModelProperty(name = "品类id",notes = "") + private Long productId ; + + @ApiModelProperty(name = "数量",notes = "") + private Integer num ; + + @ApiModelProperty(name = "重量",notes = "") + private BigDecimal weight ; + + @ApiModelProperty(name = "体积",notes = "") + private BigDecimal volume ; + + @ApiModelProperty(name = "入库时间",notes = "") + private Date incomingTime ; + + @ApiModelProperty(name = "入库人",notes = "") + private String incomingUserName ; + + @ApiModelProperty(name = "入库人id",notes = "") + private Long incomingUserId ; + + @ApiModelProperty(name = "数据推送时间",notes = "") + private Date pushTime ; + + @ApiModelProperty(name = "数据推送人",notes = "") + private String pushUserName ; + + @ApiModelProperty(name = "数据推送人id",notes = "") + private Long pushUserId ; + + @ApiModelProperty(name = "开单时间",notes = "") + private Date openTime ; + + @ApiModelProperty(name = "开单人",notes = "") + private String openUserName ; + + @ApiModelProperty(name = "开单人id",notes = "") + private Long openUserId ; + + @ApiModelProperty(name = "数据类型 1订制品 2零担",notes = "") + private Integer dataType ; + + @ApiModelProperty(name = "客户车次号",notes = "") + private String customerTrain ; + + @ApiModelProperty(name = "物料名称",notes = "") + private String materialName ; + + @ApiModelProperty(name = "物料id",notes = "") + private Long materialId ; + + @ApiModelProperty(name = "批次号",notes = "") + private String incomingBatch ; + + @ApiModelProperty(name = "发货单位名称",notes = "") + private String shipper; + + @ApiModelProperty(name = "发货单位id",notes = "") + private Long shipperId; + + @ApiModelProperty(name = "收货单位名称",notes = "") + private String consignee ; + + @ApiModelProperty(name = "收货单位id",notes = "") + private Long consigneeId ; + + @ApiModelProperty(name = "发站仓",notes = "") + private String departureWarehouseName ; + + @ApiModelProperty(name = "发站仓id",notes = "") + private Long departureWarehouseId ; + + @ApiModelProperty(name = "目的仓",notes = "") + private String destinationWarehouseName ; + + @ApiModelProperty(name = "目的仓id",notes = "") + private Long destinationWarehouseId ; + + @ApiModelProperty(name = "发站",notes = "") + private String departure ; + + @ApiModelProperty(name = "到站",notes = "") + private String destination ; + + @ApiModelProperty(name = "工厂商场编码",notes = "") + private String dealerCode ; + + @ApiModelProperty(name = "工厂商场名称",notes = "") + private String dealerName ; + + @ApiModelProperty(name = "合包码",notes = "") + private String mergePackageCode ; + + @ApiModelProperty(name = "入库类型",notes = "") + private Integer incomingType ; + + @ApiModelProperty(name = "品牌id",notes = "") + private Long brandId ; + + @ApiModelProperty(name = "品牌",notes = "") + private String brand ; + + @ApiModelProperty(name = "订单来源",notes = "") + private String systemType ; + + @ApiModelProperty(name = "入库状态",notes = "") + private Integer incomingStatus ; + + @ApiModelProperty(name = "是否改过单",notes = "") + private Integer isEditWaybill ; + +} diff --git a/blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/ReportPackageTrunklineEntity.java b/blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/ReportPackageTrunklineEntity.java new file mode 100644 index 000000000..b4d7cdc76 --- /dev/null +++ b/blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/ReportPackageTrunklineEntity.java @@ -0,0 +1,119 @@ +package com.logpm.report.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; +import org.springblade.core.tenant.mp.TenantEntity; + +@Data +@TableName("logpm_report_package_trunkline") +@ApiModel(value = "ReportPackageTrunkline对象", description = "报表干线信息类") +@EqualsAndHashCode(callSuper = true) +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ReportPackageTrunklineEntity extends TenantEntity { + + /** 预留1 */ + @ApiModelProperty(name = "预留1",notes = "") + private String reserve1 ; + /** 预留2 */ + @ApiModelProperty(name = "预留2",notes = "") + private String reserve2 ; + /** 预留3 */ + @ApiModelProperty(name = "预留3",notes = "") + private String reserve3 ; + /** 预留4 */ + @ApiModelProperty(name = "预留4",notes = "") + private String reserve4 ; + /** 预留5 */ + @ApiModelProperty(name = "预留5",notes = "") + private String reserve5 ; + + @ApiModelProperty(name = "基础id",notes = "") + private Long basicId ; + + @ApiModelProperty(name = "运单号",notes = "") + private String waybillNo ; + + @ApiModelProperty(name = "服务号",notes = "") + private String serviceNo ; + + @ApiModelProperty(name = "订单号",notes = "") + private String orderCode ; + + @ApiModelProperty(name = "包件码",notes = "") + private String orderPackageCode ; + + @ApiModelProperty(name = "品类名称",notes = "") + private String productName ; + + @ApiModelProperty(name = "品类id",notes = "") + private Long productId ; + + @ApiModelProperty(name = "品牌",notes = "") + private String brand ; + + @ApiModelProperty(name = "品牌id",notes = "") + private Long brandId ; + + @ApiModelProperty(name = "发站仓",notes = "") + private String departureWarehouseName ; + + @ApiModelProperty(name = "发站仓id",notes = "") + private Long departureWarehouseId ; + + @ApiModelProperty(name = "目的仓",notes = "") + private String destinationWarehouseName ; + + @ApiModelProperty(name = "目的仓id",notes = "") + private Long destinationWarehouseId ; + + @ApiModelProperty(name = "装车仓库id",notes = "") + private Long loadingWarehouseId ; + + @ApiModelProperty(name = "装车仓库",notes = "") + private String loadingWarehouseName ; + + @ApiModelProperty(name = "装车人id",notes = "") + private Long loadingUserId ; + + @ApiModelProperty(name = "装车人名称",notes = "") + private String loadingUserName ; + + @ApiModelProperty(name = "是否是始发仓",notes = "") + private Integer isStartWarehouse ; + + @ApiModelProperty(name = "卸车仓库id",notes = "") + private Long unloadWarehouseId ; + + @ApiModelProperty(name = "卸车仓库",notes = "") + private String unloadWarehouseName ; + + @ApiModelProperty(name = "卸车人id",notes = "") + private Long unloadUserId ; + + @ApiModelProperty(name = "卸车人名称",notes = "") + private String unloadUserName ; + + @ApiModelProperty(name = "是否是目的仓仓",notes = "") + private Integer isEndWarehouse ; + + @ApiModelProperty(name = "干线状态 1装车 2卸车 3签收",notes = "") + private Integer trunklineStatus ; + + @ApiModelProperty(name = "是否是直发商家 0否 1是",notes = "") + private Integer isCustomer ; + + @ApiModelProperty(name = "装车数量",notes = "") + private Integer loadingNum ; + + @ApiModelProperty(name = "卸车数量",notes = "") + private Integer unloadNum ; + + @ApiModelProperty(name = "签收数量",notes = "") + private Integer signNum ; + + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineAdvanceDetailEntity.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineAdvanceDetailEntity.java index 33e137b21..d3e65bb97 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineAdvanceDetailEntity.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineAdvanceDetailEntity.java @@ -221,4 +221,7 @@ public class TrunklineAdvanceDetailEntity extends TenantEntity { private String costCategoryName;//成本品类名称 + @ApiModelProperty(name = "入库类型 1码板打托 2扫码入库 3直接入库 4 按车次号入库 5按订单入库 6扫描入库 7 批量卸车入库 8卸车托盘 9卸分一体 10补录数据入库", notes = "") + private Integer incomingType; + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLinePhotoEntity.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLinePhotoEntity.java new file mode 100644 index 000000000..261da83a6 --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLinePhotoEntity.java @@ -0,0 +1,44 @@ +package com.logpm.trunkline.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +@Data +@TableName("logpm_trunkline_cars_load_line_photo") +@ApiModel(value = "TrunklineCarsLoadLinePhoto对象", description = "车辆配载节点图片表") +@EqualsAndHashCode(callSuper = true) +public class TrunklineCarsLoadLinePhotoEntity extends TenantEntity{ + + /** 预留1 */ + @ApiModelProperty(name = "预留1",notes = "") + private String reserve1 ; + /** 预留2 */ + @ApiModelProperty(name = "预留2",notes = "") + private String reserve2 ; + /** 预留3 */ + @ApiModelProperty(name = "预留3",notes = "") + private String reserve3 ; + /** 预留4 */ + @ApiModelProperty(name = "预留4",notes = "") + private String reserve4 ; + /** 预留5 */ + @ApiModelProperty(name = "预留5",notes = "") + private String reserve5 ; + + /** 车辆配载id */ + @ApiModelProperty(name = "车辆配载id",notes = "") + private Long loadId ; + + /** 车辆配载节点id */ + @ApiModelProperty(name = "车辆配载节点id",notes = "") + private Long loadNodeId ; + + /** 图片类型 1*/ + @ApiModelProperty(name = "图片类型",notes = "") + private Integer type ; + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadClient.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadClient.java index 9deb64eac..9adbaf718 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadClient.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadClient.java @@ -16,4 +16,6 @@ public interface ITrunklineCarsLoadClient { @GetMapping(API_PREFIX+"/findEntityByCarsNo") TrunklineCarsLoadEntity findEntityByCarsNo(@RequestParam String carsNo); + @GetMapping(API_PREFIX+"/findEntityByLoadId") + TrunklineCarsLoadEntity findEntityByLoadId(@RequestParam Long loadId); } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CustmoerUnloadNumVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CustmoerUnloadNumVO.java new file mode 100644 index 000000000..ea8efa415 --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CustmoerUnloadNumVO.java @@ -0,0 +1,13 @@ +package com.logpm.trunkline.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class CustmoerUnloadNumVO implements Serializable { + + private Integer loadingNum; + private Integer unloadNum; + +} diff --git a/blade-service/logpm-aftersales/pom.xml b/blade-service/logpm-aftersales/pom.xml index e07240650..9ceecbc13 100644 --- a/blade-service/logpm-aftersales/pom.xml +++ b/blade-service/logpm-aftersales/pom.xml @@ -102,6 +102,11 @@ 3.2.0.RELEASE compile + + + org.springframework.boot + spring-boot-starter-amqp + diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAyscService.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAyscService.java new file mode 100644 index 000000000..2a90bcc21 --- /dev/null +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAyscService.java @@ -0,0 +1,12 @@ +package com.logpm.aftersales.service; + +import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity; +import org.springblade.common.model.PackageData; + +import java.util.List; + +public interface IAftersalesAyscService { + void sendReportPackageUnloadData(String nickName, Long userId, Long id, String name, AftersalesAbnormalRecordEntity abnormalRecordEntity, List orderPackageCodeList); + + void sendReportZeroUnloadData(Long userId, String nickName, Long id, String name, AftersalesAbnormalRecordEntity abnormalRecordEntity, List packageDataList); +} diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/ISendFanoutService.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/ISendFanoutService.java new file mode 100644 index 000000000..0239b2cab --- /dev/null +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/ISendFanoutService.java @@ -0,0 +1,7 @@ +package com.logpm.aftersales.service; + +import org.springblade.common.model.FanoutMsg; + +public interface ISendFanoutService { + void sendFanoutMsg(FanoutMsg fanoutMsg); +} diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java index 5c6b65a9a..e0388296c 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java @@ -9,6 +9,7 @@ import com.logpm.aftersales.dto.AbnormalRecordDTO; import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity; import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity; import com.logpm.aftersales.mapper.AftersalesAbnormalRecordMapper; +import com.logpm.aftersales.service.IAftersalesAyscService; import com.logpm.aftersales.service.IAftersalesAbnormalRecordService; import com.logpm.aftersales.service.IAftersalesAbnormalRecordZeroDetailService; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; @@ -29,6 +30,8 @@ import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.feign.IWarehouseWaybillClient; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springblade.common.enums.PackageTypeEnums; +import org.springblade.common.model.PackageData; import org.springblade.common.utils.CommonUtil; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; @@ -67,6 +70,8 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl page = new Page<>(); @@ -117,6 +122,7 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl orderPackageCodeList = new ArrayList<>(); + orderPackageCodeList.add(orderPackageCode); + aftersakesAyscService.sendReportPackageUnloadData(AuthUtil.getNickName(),AuthUtil.getUserId(),myCurrentWarehouse.getId(),myCurrentWarehouse.getName(),abnormalRecordEntity,orderPackageCodeList); + } }else if("4".equals(abnormalType)){ Integer dealType = abnormalRecordDTO.getDealType(); Long carsLoadScanId = abnormalRecordEntity.getAssociationId(); + String orderPackageCode = abnormalRecordEntity.getOrderPackageCode(); if(dealType.equals(3)){ //本车次少货 abnormalRecordEntity.setRemark("本车次少货("+upWarehouseName+" "+AuthUtil.getNickName()+")"); @@ -149,6 +162,12 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl orderPackageCodeList = new ArrayList<>(); + orderPackageCodeList.add(orderPackageCode); + aftersakesAyscService.sendReportPackageUnloadData(AuthUtil.getNickName(),AuthUtil.getUserId(),myCurrentWarehouse.getId(),myCurrentWarehouse.getName(),abnormalRecordEntity,orderPackageCodeList); + } }else if("5".equals(abnormalType)){ @@ -183,6 +202,7 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl packageDataList = new ArrayList<>(); //入库本仓 Integer enterNum = abnormalRecordDTO.getNum(); //把scanZeroDetailEntityList转化成以packageId为key的map @@ -296,6 +316,16 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl orderPackageCodeList) { + Long carsLoadScanId = abnormalRecordEntity.getAssociationId(); + TrunklineCarsLoadScanEntity trunklineCarsLoadScan = trunklineCarsLoadScanClient.findEntityById(carsLoadScanId); + Long loadId = trunklineCarsLoadScan.getLoadId(); + TrunklineCarsLoadEntity carsLoadEntity = trunklineCarsLoadClient.findEntityByLoadId(loadId); + + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE); + nodeFanoutMsg.setBizOperation(BizOperationEnums.MODIFY); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setMain(carsLoadEntity); + //组装包件数据 + + List packageDataList = new ArrayList<>(); + + orderPackageCodeList.forEach(packageCode -> { + PackageData packageData = new PackageData(); + packageData.setPackageCode(packageCode); + packageData.setNum(1); + packageData.setPackageType(PackageTypeEnums.CMP); + packageDataList.add(packageData); + }); + + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + } + + @Override + public void sendReportZeroUnloadData(Long userId, String nickName, Long warehouseId, String warehouseName, AftersalesAbnormalRecordEntity abnormalRecordEntity, List packageDataList) { + + + Long carsLoadScanId = abnormalRecordEntity.getAssociationId(); + TrunklineCarsLoadScanEntity trunklineCarsLoadScan = trunklineCarsLoadScanClient.findEntityById(carsLoadScanId); + Long loadId = trunklineCarsLoadScan.getLoadId(); + TrunklineCarsLoadEntity carsLoadEntity = trunklineCarsLoadClient.findEntityByLoadId(loadId); + + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE); + nodeFanoutMsg.setBizOperation(BizOperationEnums.MODIFY); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setMain(carsLoadEntity); + //组装包件数据 + + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + + } +} diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/SendFanoutServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/SendFanoutServiceImpl.java new file mode 100644 index 000000000..464ff509a --- /dev/null +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/SendFanoutServiceImpl.java @@ -0,0 +1,21 @@ +package com.logpm.aftersales.service.impl; + +import com.logpm.aftersales.service.ISendFanoutService; +import groovy.util.logging.Slf4j; +import lombok.AllArgsConstructor; +import org.springblade.common.model.FanoutMsg; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +@AllArgsConstructor +public class SendFanoutServiceImpl implements ISendFanoutService { + + private final RabbitTemplate rabbitTemplate; + + @Override + public void sendFanoutMsg(FanoutMsg fanoutMsg) { + rabbitTemplate.convertAndSend(fanoutMsg.getExchange(),null, fanoutMsg.getMsg()); + } +} diff --git a/blade-service/logpm-aftersales/src/main/resources/application-dev.yml b/blade-service/logpm-aftersales/src/main/resources/application-dev.yml index e2327e2d1..5d9b3886b 100644 --- a/blade-service/logpm-aftersales/src/main/resources/application-dev.yml +++ b/blade-service/logpm-aftersales/src/main/resources/application-dev.yml @@ -10,6 +10,33 @@ server: # password: ${blade.datasource.dev.password} spring: + #rabbitmq配置 + rabbitmq: + host: 192.168.2.46 + port: 5672 + username: admin + password: admin + #虚拟host 可以不设置,使用server默认host + virtual-host: / + #确认消息已发送到队列(Queue) + publisher-returns: true + publisher-confirm-type: correlated + # 手动提交消息 + listener: + simple: + acknowledge-mode: auto + default-requeue-rejected: false + retry: + enabled: true # 开启消费者失败重试 + initial-interval: 1000 # 初识的失败等待时长为1秒 + multiplier: 1 # 失败的等待时长倍数,下次等待时长 = multiplier * last-interval + max-attempts: 3 # 最大重试次数 + stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false + direct: + acknowledge-mode: manual + template: + mandatory: true + #排除DruidDataSourceAutoConfigure autoconfigure: exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure diff --git a/blade-service/logpm-aftersales/src/main/resources/application-prod.yml b/blade-service/logpm-aftersales/src/main/resources/application-prod.yml index 75ba62b14..6bef89294 100644 --- a/blade-service/logpm-aftersales/src/main/resources/application-prod.yml +++ b/blade-service/logpm-aftersales/src/main/resources/application-prod.yml @@ -10,6 +10,33 @@ server: # password: ${blade.datasource.prod.password} spring: + #rabbitmq配置 + rabbitmq: + host: 172.16.128.145 + port: 5672 + username: admin + password: Slwk@123654 + #虚拟host 可以不设置,使用server默认host + virtual-host: / + #确认消息已发送到队列(Queue) + publisher-returns: true + publisher-confirm-type: correlated + # 手动提交消息 + listener: + simple: + acknowledge-mode: auto + default-requeue-rejected: false + retry: + enabled: true # 开启消费者失败重试 + initial-interval: 1000 # 初识的失败等待时长为1秒 + multiplier: 1 # 失败的等待时长倍数,下次等待时长 = multiplier * last-interval + max-attempts: 3 # 最大重试次数 + stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false + direct: + acknowledge-mode: manual + template: + mandatory: true + #排除DruidDataSourceAutoConfigure autoconfigure: exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure diff --git a/blade-service/logpm-aftersales/src/main/resources/application-test.yml b/blade-service/logpm-aftersales/src/main/resources/application-test.yml index 4bd85e777..9cb52f45e 100644 --- a/blade-service/logpm-aftersales/src/main/resources/application-test.yml +++ b/blade-service/logpm-aftersales/src/main/resources/application-test.yml @@ -10,6 +10,32 @@ server: # password: ${blade.datasource.test.password} spring: + #rabbitmq配置 + rabbitmq: + host: 192.168.2.110 + port: 5672 + username: admin + password: Slwk@123654 + #虚拟host 可以不设置,使用server默认host + virtual-host: / + #确认消息已发送到队列(Queue) + publisher-returns: true + publisher-confirm-type: correlated + # 手动提交消息 + listener: + simple: + acknowledge-mode: auto + default-requeue-rejected: false + retry: + enabled: true # 开启消费者失败重试 + initial-interval: 1000 # 初识的失败等待时长为1秒 + multiplier: 1 # 失败的等待时长倍数,下次等待时长 = multiplier * last-interval + max-attempts: 3 # 最大重试次数 + stateless: true # true无状态;false有状态。如果业务中包含事务,这里改为false + direct: + acknowledge-mode: manual + template: + mandatory: true #排除DruidDataSourceAutoConfigure autoconfigure: exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml index 4356861de..98a9cb5f4 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml @@ -63,11 +63,9 @@ lbc.blade_region_province_id provinceId, lbc.blade_region_city_id cityId, lbc.blade_region_area_id areaId, - lbc.default_payment_methods defaultPayWay, - t.brand_id brandId + lbc.default_payment_methods defaultPayWay from logpm_basicdata_client lbc left join logpm_basicdata_store_contact lbsc on lbsc.shop_id = lbc.id - left join (select lbsb.client_id,max(lbsb.brand_id) brand_id from logpm_basicdata_store_brand lbsb group by lbsb.client_id) t on t.client_id = lbc.id where lbc.is_deleted = 0 and lbc.client_name like CONCAT('%',#{clientName},'%') diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStoreBrandMapper.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStoreBrandMapper.java index 0b099ce39..f2243c172 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStoreBrandMapper.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStoreBrandMapper.java @@ -66,4 +66,6 @@ public interface BasicdataStoreBrandMapper extends BaseMapper listNameBrand(@Param("ew") QueryWrapper queryWrapper); + + List findListByClientIds(@Param("clientIds") List clientIds); } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStoreBrandMapper.xml b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStoreBrandMapper.xml index 705003612..8dd883574 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStoreBrandMapper.xml +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataStoreBrandMapper.xml @@ -32,4 +32,13 @@ SELECT * FROM logpm_basicdata_store_brand ${ew.customSqlSegment} + + diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataStoreBrandService.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataStoreBrandService.java index 397a990d0..687a9b8cb 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataStoreBrandService.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataStoreBrandService.java @@ -79,4 +79,6 @@ public interface IBasicdataStoreBrandService extends BaseService findListByClientIds(List clientIds); } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java index 3b3bcb1cf..f23c291d2 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java @@ -815,8 +815,19 @@ public class BasicdataClientServiceImpl extends BaseServiceImpl findListByClientName(String clientName, String linkMan, String linkPhone) { List ls = baseMapper.findListByClientName(clientName, linkMan, linkPhone); + //把ls中所有元素的clientId放入一个list中 + List clientIds = ls.stream().map(ClientInfoVO::getClientId).collect(Collectors.toList()); + List storeBrandEntities = basicdataStoreBrandService.findListByClientIds(clientIds); + //把storeBrandEntities中所有元素通过clientId分组 + Map> collect = storeBrandEntities.stream().collect(Collectors.groupingBy(BasicdataStoreBrandEntity::getClientId)); + List list = new ArrayList<>(); for (ClientInfoVO clientInfoVO : ls) { + Long clientId = clientInfoVO.getClientId(); + List storeBrandEntityList = collect.get(clientId); + if(storeBrandEntityList.size() == 1){ + clientInfoVO.setBrandId(storeBrandEntityList.get(0).getBrandId()); + } list.add(JSON.parseObject(JSON.toJSONString(clientInfoVO))); } return list; diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataStoreBrandServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataStoreBrandServiceImpl.java index dc909577d..ea893b4ca 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataStoreBrandServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataStoreBrandServiceImpl.java @@ -226,6 +226,11 @@ public class BasicdataStoreBrandServiceImpl extends BaseServiceImpl findListByClientIds(List clientIds) { + return baseMapper.findListByClientIds(clientIds); + } + public static Predicate distinctByKey(Function keyExtractor) { Map seen = new ConcurrentHashMap<>(16); return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java index bb2e6ffc3..a53703535 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java @@ -2535,24 +2535,31 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("stock_article_id", Long.parseLong(orderId)); - List list = distributionParcelListService.list(queryWrapper); - StringBuilder product = new StringBuilder(); - for (DistributionParcelListEntity parcelListEntity : list) { - String firsts = parcelListEntity.getFirsts(); - Integer quantity = parcelListEntity.getQuantity(); - if (StringUtils.isBlank(product)) { - product.append(firsts).append("(").append(quantity).append(")"); - } else { - product.append(",").append(firsts).append("(").append(quantity).append(")"); - } - } - map.put("product", product.toString()); - } +// if (orderCode.equals(waybillNo)) { +// map.put("product", descriptionGoods + "(" + totalNumber + ")"); +// } else { +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("stock_article_id", Long.parseLong(orderId)); +// List list = distributionParcelListService.list(queryWrapper); +// StringBuilder product = new StringBuilder(); +// for (DistributionParcelListEntity parcelListEntity : list) { +// String firsts = parcelListEntity.getFirsts(); +// Integer quantity = parcelListEntity.getQuantity(); +// if (StringUtils.isBlank(product)) { +// product.append(firsts).append("(").append(quantity).append(")"); +// } else { +// product.append(",").append(firsts).append("(").append(quantity).append(")"); +// } +// } +// map.put("product", product.toString()); +// } + + List wayBillDetailList = warehouseWaybillDetailClient.findListByWaybillNo(waybillNo); + List productsNumList = new ArrayList<>(); + wayBillDetailList.forEach(wayBillDetail -> { + productsNumList.add(wayBillDetail.getProductName() + "(" + wayBillDetail.getNum() + ")"); + }); + map.put("product", String.join(",",productsNumList)); data.add(map); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageBasicMapper.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageBasicMapper.java new file mode 100644 index 000000000..1fe8ad2cf --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageBasicMapper.java @@ -0,0 +1,12 @@ +package com.logpm.report.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.logpm.report.entity.ReportPackageBasicEntity; +import org.mapstruct.Mapper; + +@Mapper +public interface ReportPackageBasicMapper extends BaseMapper { + + + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageBasicMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageBasicMapper.xml new file mode 100644 index 000000000..43b651057 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageBasicMapper.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageTrunklineMapper.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageTrunklineMapper.java new file mode 100644 index 000000000..c4f8791ba --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageTrunklineMapper.java @@ -0,0 +1,12 @@ +package com.logpm.report.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.logpm.report.entity.ReportPackageTrunklineEntity; +import org.mapstruct.Mapper; + +@Mapper +public interface ReportPackageTrunklineMapper extends BaseMapper { + + + +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageTrunklineMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageTrunklineMapper.xml new file mode 100644 index 000000000..2f2b9130f --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportPackageTrunklineMapper.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/WarehouseIndexMapper.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/WarehouseIndexMapper.java index 14fdf8efd..c4829c6c4 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/WarehouseIndexMapper.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/WarehouseIndexMapper.java @@ -5,17 +5,17 @@ import com.logpm.report.dto.IndexDTO; import com.logpm.report.vo.IndexHandOrderDataVO; import com.logpm.report.vo.IndexTrunklineCarsDataVO; import com.logpm.report.vo.indexCount.IndexDeliveryDataVO; +import com.logpm.report.vo.indexCount.IndexOpenItemDataVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; import java.util.List; -import java.util.Map; @Mapper public interface WarehouseIndexMapper { - int findTotalNum(@Param("param") IndexDTO indexDTO); + IndexOpenItemDataVO findTotalNum(@Param("param") IndexDTO indexDTO); BigDecimal findTotalFee(@Param("param") IndexDTO indexDTO); diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/WarehouseIndexMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/WarehouseIndexMapper.xml index b7bfceaff..206d9ecb0 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/WarehouseIndexMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/WarehouseIndexMapper.xml @@ -2,8 +2,9 @@ - + select IFNULL(count(id),0) totalNum, + IFNULL(sum(total_count),0) totalCount from logpm_warehouse_waybill where 1=1 diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportPackageBasicService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportPackageBasicService.java new file mode 100644 index 000000000..197c3fc3d --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportPackageBasicService.java @@ -0,0 +1,7 @@ +package com.logpm.report.service; + +import com.logpm.report.entity.ReportPackageBasicEntity; +import org.springblade.core.mp.base.BaseService; + +public interface IReportPackageBasicService extends BaseService { +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportPackageTrunklineService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportPackageTrunklineService.java new file mode 100644 index 000000000..330e8f836 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IReportPackageTrunklineService.java @@ -0,0 +1,7 @@ +package com.logpm.report.service; + +import com.logpm.report.entity.ReportPackageTrunklineEntity; +import org.springblade.core.mp.base.BaseService; + +public interface IReportPackageTrunklineService extends BaseService { +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportPackageBasicServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportPackageBasicServiceImpl.java new file mode 100644 index 000000000..d68f60605 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportPackageBasicServiceImpl.java @@ -0,0 +1,15 @@ +package com.logpm.report.service.impl; + +import com.logpm.report.entity.ReportPackageBasicEntity; +import com.logpm.report.mapper.ReportPackageBasicMapper; +import com.logpm.report.service.IReportPackageBasicService; +import groovy.util.logging.Slf4j; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +@Slf4j +public class ReportPackageBasicServiceImpl extends BaseServiceImpl implements IReportPackageBasicService { +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportPackageTrunklineServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportPackageTrunklineServiceImpl.java new file mode 100644 index 000000000..df147d7d3 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportPackageTrunklineServiceImpl.java @@ -0,0 +1,15 @@ +package com.logpm.report.service.impl; + +import com.logpm.report.entity.ReportPackageTrunklineEntity; +import com.logpm.report.mapper.ReportPackageTrunklineMapper; +import com.logpm.report.service.IReportPackageTrunklineService; +import groovy.util.logging.Slf4j; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +@Slf4j +public class ReportPackageTrunklineServiceImpl extends BaseServiceImpl implements IReportPackageTrunklineService { +} diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/WarehouseIndexServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/WarehouseIndexServiceImpl.java index ab1dee6b6..cacb97efb 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/WarehouseIndexServiceImpl.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/WarehouseIndexServiceImpl.java @@ -6,11 +6,10 @@ import com.logpm.report.mapper.WarehouseIndexMapper; import com.logpm.report.service.IWarehouseIndexService; import com.logpm.report.vo.*; import com.logpm.report.vo.indexCount.IndexDeliveryDataVO; +import com.logpm.report.vo.indexCount.IndexOpenItemDataVO; import com.logpm.report.vo.indexCount.IndexSignforDataVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springblade.common.cache.CacheNames; -import org.springblade.common.constant.DistributionTypeConstant; import org.springblade.common.utils.CommonUtil; import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.secure.BladeUser; @@ -19,9 +18,11 @@ import org.springblade.core.tool.utils.Func; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.math.MathContext; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; @Slf4j @Service @@ -40,7 +41,9 @@ public class WarehouseIndexServiceImpl implements IWarehouseIndexService { return indexOpenOrderDataVO; } - indexOpenOrderDataVO.setTotalNum(warehouseIndexMapper.findTotalNum(indexDTO)); + IndexOpenItemDataVO indexOpenItemDataVO = warehouseIndexMapper.findTotalNum(indexDTO); + indexOpenOrderDataVO.setTotalNum(indexOpenItemDataVO.getTotalNum()); + indexOpenOrderDataVO.setTotalCount(indexOpenItemDataVO.getTotalCount()); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); @@ -54,7 +57,9 @@ public class WarehouseIndexServiceImpl implements IWarehouseIndexService { Date dayEnd = calendar.getTime(); indexDTO.setStartDate(dayStart); indexDTO.setEndDate(dayEnd); - indexOpenOrderDataVO.setDayNum(warehouseIndexMapper.findTotalNum(indexDTO)); + IndexOpenItemDataVO dayNumVO = warehouseIndexMapper.findTotalNum(indexDTO); + indexOpenOrderDataVO.setDayNum(dayNumVO.getTotalNum()); + indexOpenOrderDataVO.setDayCount(dayNumVO.getTotalCount()); // 设置日为1,以获取当前月的第一天 calendar.set(Calendar.DAY_OF_MONTH, 1); // 将小时、分钟、秒和毫秒设置为0,确保获取的是完整的第一天 @@ -77,7 +82,9 @@ public class WarehouseIndexServiceImpl implements IWarehouseIndexService { Date lastDayOfMonth = calendar.getTime(); // 获取最后一天 indexDTO.setStartDate(firstDayOfMonth); indexDTO.setEndDate(lastDayOfMonth); - indexOpenOrderDataVO.setMonthNum(warehouseIndexMapper.findTotalNum(indexDTO)); + IndexOpenItemDataVO monthNumVO = warehouseIndexMapper.findTotalNum(indexDTO); + indexOpenOrderDataVO.setMonthNum(monthNumVO.getTotalNum()); + indexOpenOrderDataVO.setMonthCount(monthNumVO.getTotalCount()); return indexOpenOrderDataVO; } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/IndexOpenOrderDataVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/IndexOpenOrderDataVO.java index 15ea76511..4d4cf206d 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/IndexOpenOrderDataVO.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/IndexOpenOrderDataVO.java @@ -12,4 +12,9 @@ public class IndexOpenOrderDataVO implements Serializable { private int monthNum = 0; private int dayNum = 0; + + private int totalCount = 0; + private int monthCount = 0; + private int dayCount = 0; + } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/IndexOpenItemDataVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/IndexOpenItemDataVO.java new file mode 100644 index 000000000..bd4249772 --- /dev/null +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/indexCount/IndexOpenItemDataVO.java @@ -0,0 +1,13 @@ +package com.logpm.report.vo.indexCount; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class IndexOpenItemDataVO implements Serializable { + + private int totalNum = 0; + private int totalCount = 0; + +} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java index 249ebd16d..6e5fa91ba 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java @@ -989,6 +989,51 @@ public class CarsLoadController { } + @ResponseBody + @PostMapping("/unloadByLoadIdBefore") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "卸车确认之前", notes = "传入loadCarsDTO") + public R unloadByLoadIdBefore(@RequestBody LoadCarsDTO loadCarsDTO) { + String method = "############unloadByLoadIdBefore: "; + log.info(method + "请求参数{}", loadCarsDTO); + Long loadId = loadCarsDTO.getLoadId(); + Integer unloadType = loadCarsDTO.getUnloadType(); + try { + + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if (Objects.isNull(myCurrentWarehouse)) { + log.warn(method + "仓库信息为空 myCurrentWarehouse={}", myCurrentWarehouse); + return R.fail(405, "多仓权限无法操作,请选择仓库"); + } + loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); + + if (Objects.isNull(loadId)) { + log.warn(method + "请选择一条配载计划 loadId={}", loadId); + return R.fail(405, "请选择一条配载计划"); + } + + if (Objects.isNull(unloadType)) { + log.warn(method + "卸车确认类型不能为空 unloadType={}", unloadType); + return R.fail(405, "卸车确认类型不能为空"); + } + +// if(startCarType != 1 && startCarType != 2){ +// log.warn(method+"未知的发车类型 startCarType={}",startCarType); +// return R.fail(405,"未知的发车类型"); +// } + + return carsLoadService.unloadByLoadIdBefore(loadCarsDTO); + } catch (CustomerException e) { + log.error(e.message, e); + return R.fail(e.code, e.message); + } catch (Exception e) { + log.error(method + "系统异常", e); + return R.fail(500, "系统异常"); + } + } + + @ResponseBody @PostMapping("/unloadByLoadId") @ApiOperationSupport(order = 1) diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadClient.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadClient.java index abc700623..525fcd028 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadClient.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadClient.java @@ -20,4 +20,9 @@ public class TrunklineCarsLoadClient implements ITrunklineCarsLoadClient{ queryWrapper.eq("cars_no",carsNo); return carsLoadService.getOne(queryWrapper); } + + @Override + public TrunklineCarsLoadEntity findEntityByLoadId(Long loadId) { + return carsLoadService.getById(loadId); + } } 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 34d117d7d..dda64ed39 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 @@ -183,4 +183,6 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper findSignPackageListBySignOrderId(@Param("signOrderId") Long signOrderId); List findAllIdListByLoadIdAndScanStatus(@Param("loadId") Long loadId, @Param("scanStatus") String scanStatus); + + CustmoerUnloadNumVO findCarsLoadCustomeNumByLoadIdAndUnloadWarehouseId(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId); } 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 f56bf74a8..3723792f0 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 @@ -984,4 +984,14 @@ and scan_status = #{scanStatus} + + + 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 7e5ebe138..7b67f4e03 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 @@ -70,4 +70,5 @@ public interface TrunklineCarsOrderMapper extends BaseMapper findSignOrderListBySignOrderId(@Param("signOrderId") Long signOrderId); List findSignZeroOrderListBySignOrderId(@Param("signOrderId") Long signOrderId); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java index 4e192983a..ce5546327 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java @@ -24,6 +24,7 @@ import com.logpm.trunkline.service.ITrunklineDetailProductService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.factorydata.FactoryDataConstants; +import org.springblade.core.secure.utils.AuthUtil; import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Queue; @@ -32,12 +33,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; /** * 监听工厂数据转暂存单 @@ -176,6 +172,14 @@ public class AdvanceOrderListener { //发送入库包件处理无数据装车数据 trunklineCarsLoadService.sendRabbitMessageLoadScanData(JSONUtil.toJsonStr(advanceEntity)); detailProductService.saveBatch(detailProductEntityList); + + //发送报表数据广播 + Long warehouseId = advanceEntity.getWarehouseId(); + String warehouseName = advanceEntity.getWarehouseName(); + String dealerCode = advanceEntity.getDealerCode(); + String dealerName = advanceEntity.getDealerName(); + advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,new Date(),advanceDetailEntityList,dealerCode,dealerName); + } } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/OpenOrderToLoadListener.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/OpenOrderToLoadListener.java index 8bf44e626..f0e1c371c 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/OpenOrderToLoadListener.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/OpenOrderToLoadListener.java @@ -1,5 +1,6 @@ package com.logpm.trunkline.mq; +import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; @@ -10,6 +11,7 @@ import com.rabbitmq.client.Channel; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.RabbitConstant; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.StringUtil; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitHandler; @@ -18,6 +20,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; @Slf4j @AllArgsConstructor @@ -33,6 +37,7 @@ public class OpenOrderToLoadListener { private final ITrunklineCarsLoadLineService carsLoadLineService; private final ITrunklineWaybillOrderService waybillOrderService; private final IInComingService inComingService; + private final ICarsLoadAsyncService carsLoadAsyncService; @RabbitHandler @Transactional(rollbackFor = Exception.class) @@ -40,6 +45,7 @@ public class OpenOrderToLoadListener { String msg = (String) map.get("messageData"); log.info("###########openOrderToLoadScan: 开单补录包件运单信息 msg={}",msg); if(StringUtil.isNotBlank(msg)){ + List carsLoadScanEntityList = new ArrayList<>(); JSONObject jsonObject = JSONUtil.parseObj(msg); Long waybillId = jsonObject.getLong("waybillId"); String waybillNo = jsonObject.getStr("waybillNo"); @@ -75,6 +81,7 @@ public class OpenOrderToLoadListener { carsLoadScanEntity.setFromWarehouseId(advanceDetailEntity.getIncomingWarehouseId()); } carsLoadScanService.updateById(carsLoadScanEntity); + carsLoadScanEntityList.add(carsLoadScanEntity); Long loadId = carsLoadScanEntity.getLoadId(); Long warehouseId = carsLoadScanEntity.getWarehouseId(); @@ -121,6 +128,35 @@ public class OpenOrderToLoadListener { for (Long loadId : loadIds) { carsLoadService.updateNumByLoadId(loadId); } + + if(CollUtil.isNotEmpty(carsLoadScanEntityList)){ + + //把carsLoadScanEntityList通过loadId进行分组 + Map> loadIdMap = carsLoadScanEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getLoadId)); + List trunklineCarsLoadEntities = carsLoadService.listByIds(loadIds); + //trunklineCarsLoadEntities转化成以id为key 的map + Map loadIdMap1 = trunklineCarsLoadEntities.stream().collect(Collectors.toMap(TrunklineCarsLoadEntity::getId, Function.identity())); + + + loadIdMap.keySet().forEach(loadId -> { + List loadScanEntityList = loadIdMap.get(loadId); + + //把loadScanEntityList所有元素通过warehouseId进行分组 + Map> warehouseIdMap = loadScanEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getWarehouseId)); + + warehouseIdMap.keySet().forEach(warehouseId -> { + List scanEntityList = warehouseIdMap.get(warehouseId); + TrunklineCarsLoadEntity carsLoadEntity = loadIdMap1.get(loadId); + + //发送干线发车广播 + carsLoadAsyncService.sendReportCarsLoadSuppleFanout(AuthUtil.getUserId(),AuthUtil.getNickName(),warehouseId,carsLoadEntity,scanEntityList); + }); + + + }); + + + } } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ICarsLoadAsyncService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ICarsLoadAsyncService.java index 3a801de16..a0936dc35 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ICarsLoadAsyncService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ICarsLoadAsyncService.java @@ -1,9 +1,7 @@ package com.logpm.trunkline.service; -import com.logpm.trunkline.entity.TrunklineAdvanceEntity; -import com.logpm.trunkline.entity.TrunklineCarsLoadEntity; -import com.logpm.trunkline.entity.TrunklineCarsLoadLineEntity; -import com.logpm.trunkline.entity.TrunklineCarsUnloadLogEntity; +import com.logpm.trunkline.entity.*; +import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO; import java.util.List; @@ -26,4 +24,17 @@ public interface ICarsLoadAsyncService { void savaUnloadLogBatch(List unloadLogList); void sendRabbitMessageLoadScanData(List data); + + void sendReportCarsLoadStartFanout(Long userId, String nickName, Long warehouseId, String warehouseName, TrunklineCarsLoadEntity carsLoadEntity); + + void sendReportCancleStartData(String nickName, Long userId, Long warehouseId, String warehouseName, TrunklineCarsLoadEntity carsLoadEntity); + + void sendReportRemoveScanData(Long userId, String nickName, Long warehouseId, String warehouseName, List carsLoadScanEntityList, TrunklineCarsLoadEntity carsLoadEntity); + + void sendReportPackageUnloadData(String nickName, Long userId, Long warehouseId, String warehouseName, TrunklineCarsLoadEntity carsLoadEntity, List orderPackageCodeList); + + void sendReportZeroPackageUnloadData(Long userId, String nickName, Long warehouseId, String warehouseName, List sendList, TrunklineCarsLoadScanEntity carsLoadScanEntity,TrunklineCarsLoadEntity carsLoadEntity); + + void sendReportCarsLoadSuppleFanout(Long userId, String nickName, Long warehouseId, TrunklineCarsLoadEntity carsLoadEntity, List scanEntityList); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java index 7acf89bf3..c614fa3a2 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java @@ -7,6 +7,7 @@ import com.logpm.trunkline.dto.AdvanceDetailDTO; import com.logpm.trunkline.dto.OrderDetailsDTO; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.vo.*; +import com.logpm.warehouse.entity.WarehouseWaybillEntity; import org.springblade.core.mp.base.BaseService; import org.springblade.core.tool.api.R; @@ -93,4 +94,10 @@ public interface ITrunklineAdvanceDetailService extends BaseService advanceIds); + + void sendReportBasicdataFanout(String nickName, Long userId, Long warehouseId, String warehouseName, Date date, List advanceDetailEntityList,String dealerCode,String dealerName); + + void sendReportIncomingData(Long userId, String nickName, List sendAdvanceDetailEntityList, Long warehouseId, String warehouseName,Integer incomingType); + + void sendReportAdvanceOpenData(String nickName, Long userId, Long warehouseId, String warehouseName, List updateAdvanceDetailList, WarehouseWaybillEntity waybillEntity); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java index 2576b0167..e4fa7ea7a 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java @@ -37,7 +37,7 @@ public interface ITrunklineAdvanceService extends BaseService findIncomingOrderList(InComingDTO inComingDTO); - List incomingPackageBatch(Long advanceId, Long warehouseId, List detailList, Long userId, Long deptId, String tenantId, WarehouseWaybillEntity waybillEntity); + List incomingPackageBatch(Long advanceId, Long warehouseId, List detailList, Long userId, Long deptId, String tenantId, WarehouseWaybillEntity waybillEntity,Integer incomingType); List findListByExistsAndOrderCodeSet(List orderCodeSet); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java index 0e9c3bf90..bd2a2600d 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java @@ -179,4 +179,6 @@ public interface ITrunklineCarsLoadScanService extends BaseService findSignPackageListBySignOrderId(Long signOrderId); List findAllIdListByLoadIdAndScanStatus(Long loadId, String scanStatus); + + CustmoerUnloadNumVO findCarsLoadCustomeNumByLoadIdAndUnloadWarehouseId(Long loadId, Long warehouseId); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java index ecd4c0e56..3b3eac037 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java @@ -230,4 +230,6 @@ public interface ITrunklineCarsLoadService extends BaseService findSignOrderListBySignOrderId(Long signOrderId); List findSignZeroOrderListBySignOrderId(Long signOrderId); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java index 51eb1a1cd..85c62ed3c 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java @@ -3,6 +3,8 @@ package com.logpm.trunkline.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity; import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity; import com.logpm.aftersales.feign.IAftersalesAbnormalRecordClient; @@ -24,8 +26,15 @@ import org.springblade.common.annotations.LogpmAsync; import org.springblade.common.constant.DictBizConstant; import org.springblade.common.constant.RabbitConstant; import org.springblade.common.constant.TenantNum; +import org.springblade.common.constant.WorkNodeEnums; +import org.springblade.common.constant.broadcast.FanoutConstants; import org.springblade.common.constant.carsload.CarsLoadLogTypeConstant; +import org.springblade.common.enums.BizOperationEnums; +import org.springblade.common.enums.PackageTypeEnums; import org.springblade.common.exception.CustomerException; +import org.springblade.common.model.FanoutMsg; +import org.springblade.common.model.NodeFanoutMsg; +import org.springblade.common.model.PackageData; import org.springblade.common.utils.CommonUtil; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.system.cache.DictBizCache; @@ -38,6 +47,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; @Slf4j @@ -75,6 +85,8 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService { private IOpenOrderAsyncService openOrderAsyncService; @Autowired private IAftersalesAbnormalRecordZeroDetailClient abnormalRecordZeroDetailClient; + @Autowired + private ISendFanoutService sendFanoutService; @LogpmAsync("asyncExecutor") @Override @@ -670,4 +682,322 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService { } } + @LogpmAsync("asyncExecutor") + @Override + public void sendReportCarsLoadStartFanout(Long userId, String nickName, Long warehouseId, String warehouseName, TrunklineCarsLoadEntity carsLoadEntity) { + Long loadId = carsLoadEntity.getId(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("load_id", loadId) + .eq("warehouse_id",warehouseId) + .eq("scan_status","1"); + List carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper); + + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.INITIAL_WAREHOUSE_DEPART); + nodeFanoutMsg.setBizOperation(BizOperationEnums.ADD); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setMain(carsLoadEntity); + //组装包件数据 + + //把carsLoadScanEntityList通过type进行分组 + Map> collect = carsLoadScanEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getType)); + + List packageDataList = new ArrayList<>(); + + collect.keySet().forEach(type -> { + List list = collect.get(type); + if(CollUtil.isNotEmpty(list)){ + if(type.equals("1")){ + list.forEach(entity -> { + PackageData packageData = new PackageData(); + packageData.setPackageCode(entity.getScanCode()); + packageData.setOrderCode(entity.getOrderCode()); + packageData.setWaybillNumber(entity.getWaybillNo()); + packageData.setNum(entity.getNum()); + packageData.setPackageType(PackageTypeEnums.CMP); + packageDataList.add(packageData); + }); + + }else if(type.equals("2")){ + //把list中所有id放入一个List集合 + List carsLoadScanIds = list.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); + //把list转化成以id为key的Map + Map carsLoadScanEntityMap = carsLoadScanEntityList.stream().collect(Collectors.toMap(TrunklineCarsLoadScanEntity::getId, Function.identity())); + List zeroDetailVOList = trunklineScanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds); + + zeroDetailVOList.forEach(zeroDetailVO -> { + Long scanId = zeroDetailVO.getScanId(); + TrunklineCarsLoadScanEntity carsLoadScanEntity = carsLoadScanEntityMap.get(scanId); + + PackageData packageData = new PackageData(); + packageData.setOrderCode(carsLoadScanEntity.getOrderCode()); + packageData.setNum(zeroDetailVO.getLoadingNum()); + packageData.setPackageType(PackageTypeEnums.LTL); + packageData.setWaybillNumber(carsLoadScanEntity.getWaybillNo()); + packageData.setProductId(zeroDetailVO.getGoodsId()); + packageData.setProductName(zeroDetailVO.getGoodsName()); + packageDataList.add(packageData); + + }); + + } + } + + }); + + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + } + + @LogpmAsync("asyncExecutor") + @Override + public void sendReportCancleStartData(String nickName, Long userId, Long warehouseId, String warehouseName, TrunklineCarsLoadEntity carsLoadEntity) { + Long loadId = carsLoadEntity.getId(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("load_id", loadId) + .eq("warehouse_id",warehouseId) + .eq("scan_status","1"); + List carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper); + + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_DEPART); + nodeFanoutMsg.setBizOperation(BizOperationEnums.DELETE); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setMain(carsLoadEntity); + //组装包件数据 + + //把carsLoadScanEntityList通过type进行分组 + Map> collect = carsLoadScanEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getType)); + + List packageDataList = new ArrayList<>(); + + collect.keySet().forEach(type -> { + List list = collect.get(type); + if(CollUtil.isNotEmpty(list)){ + if(type.equals("1")){ + list.forEach(entity -> { + PackageData packageData = new PackageData(); + packageData.setPackageCode(entity.getScanCode()); + packageData.setOrderCode(entity.getOrderCode()); + packageData.setWaybillNumber(entity.getWaybillNo()); + packageData.setNum(entity.getNum()); + packageData.setPackageType(PackageTypeEnums.CMP); + packageDataList.add(packageData); + }); + + }else if(type.equals("2")){ + //把list中所有id放入一个List集合 + List carsLoadScanIds = list.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); + //把list转化成以id为key的Map + Map carsLoadScanEntityMap = carsLoadScanEntityList.stream().collect(Collectors.toMap(TrunklineCarsLoadScanEntity::getId, Function.identity())); + List zeroDetailVOList = trunklineScanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds); + + zeroDetailVOList.forEach(zeroDetailVO -> { + Long scanId = zeroDetailVO.getScanId(); + TrunklineCarsLoadScanEntity carsLoadScanEntity = carsLoadScanEntityMap.get(scanId); + + PackageData packageData = new PackageData(); + packageData.setOrderCode(carsLoadScanEntity.getOrderCode()); + packageData.setNum(zeroDetailVO.getLoadingNum()); + packageData.setPackageType(PackageTypeEnums.LTL); + packageData.setWaybillNumber(carsLoadScanEntity.getWaybillNo()); + packageData.setProductId(zeroDetailVO.getGoodsId()); + packageData.setProductName(zeroDetailVO.getGoodsName()); + packageDataList.add(packageData); + + }); + + } + } + + }); + + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + } + + @LogpmAsync("asyncExecutor") + @Override + public void sendReportRemoveScanData(Long userId, String nickName, Long warehouseId, String warehouseName, List carsLoadScanEntityList, TrunklineCarsLoadEntity carsLoadEntity) { + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING); + nodeFanoutMsg.setBizOperation(BizOperationEnums.DELETE); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setMain(carsLoadEntity); + //组装包件数据 + + //把carsLoadScanEntityList通过type进行分组 + Map> collect = carsLoadScanEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getType)); + + List packageDataList = new ArrayList<>(); + + collect.keySet().forEach(type -> { + List list = collect.get(type); + if(CollUtil.isNotEmpty(list)){ + if(type.equals("1")){ + list.forEach(entity -> { + PackageData packageData = new PackageData(); + packageData.setPackageCode(entity.getScanCode()); + packageData.setOrderCode(entity.getOrderCode()); + packageData.setWaybillNumber(entity.getWaybillNo()); + packageData.setNum(entity.getNum()); + packageData.setPackageType(PackageTypeEnums.CMP); + packageDataList.add(packageData); + }); + + }else if(type.equals("2")){ + //把list中所有id放入一个List集合 + List carsLoadScanIds = list.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); + //把list转化成以id为key的Map + Map carsLoadScanEntityMap = carsLoadScanEntityList.stream().collect(Collectors.toMap(TrunklineCarsLoadScanEntity::getId, Function.identity())); + List zeroDetailVOList = trunklineScanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds); + + zeroDetailVOList.forEach(zeroDetailVO -> { + Long scanId = zeroDetailVO.getScanId(); + TrunklineCarsLoadScanEntity carsLoadScanEntity = carsLoadScanEntityMap.get(scanId); + + PackageData packageData = new PackageData(); + packageData.setOrderCode(carsLoadScanEntity.getOrderCode()); + packageData.setNum(zeroDetailVO.getLoadingNum()); + packageData.setPackageType(PackageTypeEnums.LTL); + packageData.setWaybillNumber(carsLoadScanEntity.getWaybillNo()); + packageData.setProductId(zeroDetailVO.getGoodsId()); + packageData.setProductName(zeroDetailVO.getGoodsName()); + packageDataList.add(packageData); + + }); + + } + } + + }); + + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + } + + @LogpmAsync("asyncExecutor") + @Override + public void sendReportPackageUnloadData(String nickName, Long userId, Long warehouseId, String warehouseName, TrunklineCarsLoadEntity carsLoadEntity, List orderPackageCodeList) { + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE); + nodeFanoutMsg.setBizOperation(BizOperationEnums.MODIFY); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setMain(carsLoadEntity); + //组装包件数据 + + List packageDataList = new ArrayList<>(); + + orderPackageCodeList.forEach(packageCode -> { + PackageData packageData = new PackageData(); + packageData.setPackageCode(packageCode); + packageData.setNum(1); + packageData.setPackageType(PackageTypeEnums.CMP); + packageDataList.add(packageData); + }); + + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + } + + @LogpmAsync("asyncExecutor") + @Override + public void sendReportZeroPackageUnloadData(Long userId, String nickName, Long warehouseId, String warehouseName, List sendList, TrunklineCarsLoadScanEntity carsLoadScanEntity,TrunklineCarsLoadEntity carsLoadEntity) { + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE); + nodeFanoutMsg.setBizOperation(BizOperationEnums.MODIFY); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setMain(carsLoadEntity); + //组装包件数据 + + List packageDataList = new ArrayList<>(); + + sendList.forEach(zeroDetailVO -> { + PackageData packageData = new PackageData(); + packageData.setOrderCode(carsLoadScanEntity.getOrderCode()); + packageData.setNum(zeroDetailVO.getUnloadNum()); + packageData.setPackageType(PackageTypeEnums.LTL); + packageData.setWaybillNumber(carsLoadScanEntity.getWaybillNo()); + packageData.setProductId(zeroDetailVO.getGoodsId()); + packageData.setProductName(zeroDetailVO.getGoodsName()); + packageDataList.add(packageData); + }); + + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + + } + + @Override + public void sendReportCarsLoadSuppleFanout(Long userId, String nickName, Long warehouseId, TrunklineCarsLoadEntity carsLoadEntity, List scanEntityList) { + + BasicdataWarehouseEntity warehouseEntity = warehouseClient.getEntityWarehouseId(warehouseId); + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.INITIAL_WAREHOUSE_LOADING); + nodeFanoutMsg.setBizOperation(BizOperationEnums.ADD); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseEntity.getName()); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setMain(carsLoadEntity); + //组装包件数据 + + List packageDataList = new ArrayList<>(); + + scanEntityList.forEach(scanEntity -> { + PackageData packageData = new PackageData(); + packageData.setPackageCode(scanEntity.getScanCode()); + packageData.setNum(1); + packageData.setPackageType(PackageTypeEnums.CMP); + packageDataList.add(packageData); + }); + + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + } + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java index 7ec614b02..bab780596 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/InComingServiceImpl.java @@ -198,10 +198,13 @@ public class InComingServiceImpl implements IInComingService { @Transactional(rollbackFor = Exception.class) public R incomingPackage(InComingDTO inComingDTO) { AtomicReference audio = new AtomicReference<>(); - try { - String orderPackageCode = inComingDTO.getOrderPackageCode();//包件码 - Long warehouseId = inComingDTO.getWarehouseId();//仓库id - String warehouseName = inComingDTO.getWarehouseName(); + List sendAdvanceDetailEntityList = new ArrayList<>(); + String orderPackageCode = inComingDTO.getOrderPackageCode();//包件码 + Long warehouseId = inComingDTO.getWarehouseId();//仓库id + String warehouseName = inComingDTO.getWarehouseName(); + Integer incomingType = inComingDTO.getIncomingType();//入库类型 1码板打托 2扫码入库 3直接入库 4 按车次号入库 5按订单入库 6扫描入库 7 批量卸车入库 8卸车托盘 9卸分一体 10补录数据入库 + try{ + if (StringUtil.isBlank(warehouseName)) { BasicdataWarehouseEntity warehouseEntity = warehouseClient.getEntityWarehouseId(warehouseId); if (!Objects.isNull(warehouseEntity)) { @@ -209,7 +212,6 @@ public class InComingServiceImpl implements IInComingService { } } Long billladingId = inComingDTO.getBillladingId();//提货单id - Integer incomingType = inComingDTO.getIncomingType();//入库类型 1码板打托 2扫码入库 3直接入库 4 按车次号入库 5按订单入库 6扫描入库 7 批量卸车入库 8卸车托盘 9卸分一体 10补录数据入库 String trayCode = inComingDTO.getTrayCode();//托盘码 String trayType = inComingDTO.getTrayType();//打托方式 String customerTrain = inComingDTO.getCustomerTrain();//车次号 @@ -273,6 +275,7 @@ public class InComingServiceImpl implements IInComingService { advanceDetailEntities.forEach(advanceDetailEntity -> { advanceIds.add(advanceDetailEntity.getId()); advanceDetailEntity.setPackageStatus("1"); + advanceDetailEntity.setIncomingType(incomingType); advanceDetailEntity.setIncomingTime(new Date()); advanceDetailEntity.setIncomingWarehouseId(warehouseId); advanceDetailEntity.setIncomingWarehouseName(finalWarehouseName); @@ -435,6 +438,8 @@ public class InComingServiceImpl implements IInComingService { advanceDetailService.updateBatchById(updateAdvanceDetailList); + sendAdvanceDetailEntityList.addAll(updateAdvanceDetailList); + } else if ("1".equals(packageStatus)) { //已入库包件 if (incomingType != 1) { @@ -516,6 +521,10 @@ public class InComingServiceImpl implements IInComingService { throw e; } + if(CollUtil.isNotEmpty(sendAdvanceDetailEntityList)){ + advanceDetailService.sendReportIncomingData(AuthUtil.getUserId(),AuthUtil.getNickName(),sendAdvanceDetailEntityList,warehouseId,warehouseName,incomingType); + } + String a = audio.get(); if (StringUtil.isNotBlank(a)) { return Resp.scanFail(200, a, a); @@ -756,6 +765,8 @@ public class InComingServiceImpl implements IInComingService { String tenantId = inComingDTO.getTenantId(); String nickName = inComingDTO.getNickName(); + List sendAdvanceDetailEntityList = new ArrayList(); + Integer total = 0; for (Long advanceId : advanceIds) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -764,10 +775,12 @@ public class InComingServiceImpl implements IInComingService { //查询所有包件 List detailList = advanceDetailService.list(queryWrapper); - List orderPackageCodes = advanceService.incomingPackageBatch(advanceId, warehouseId, detailList, userId, deptId, tenantId, waybillEntity); + List orderPackageCodes = advanceService.incomingPackageBatch(advanceId, warehouseId, detailList, userId, deptId, tenantId, waybillEntity,incomingType); advanceDetailService.updateBatchById(detailList); + sendAdvanceDetailEntityList.addAll(detailList); + List incomingWarehouseNames = advanceDetailService.findIncomingWarehouseName(advanceId); advanceService.updateIncomingWarehouseName(String.join(",", incomingWarehouseNames), advanceId); @@ -813,6 +826,10 @@ public class InComingServiceImpl implements IInComingService { } + if(CollUtil.isNotEmpty(sendAdvanceDetailEntityList)){ + advanceDetailService.sendReportIncomingData(AuthUtil.getUserId(),AuthUtil.getNickName(),sendAdvanceDetailEntityList,warehouseId,warehouseName,incomingType); + } + // DynamicDataSourceContextHolder.clear(); return R.success("入库成功" + total + "件"); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java index cdfe4007e..6df346809 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderAsyncServiceImpl.java @@ -635,9 +635,9 @@ public class OpenOrderAsyncServiceImpl implements IOpenOrderAsyncService { json.put("totalWeight",detail.getWeight()); json.put("totalVolume",detail.getVolume()); json.put("freightFee",detail.getSubtotalFreight()); - openPrice = openPrice.add(detail.getSubtotalFreight()); + openPrice = openPrice.add(Objects.isNull(detail.getSubtotalFreight())?BigDecimal.ZERO:detail.getSubtotalFreight()); json.put("deliveryFee",detail.getSubtotalDeliveryFee()); - openPrice = openPrice.add(detail.getSubtotalDeliveryFee()); + openPrice = openPrice.add(Objects.isNull(detail.getSubtotalDeliveryFee())?BigDecimal.ZERO:detail.getSubtotalDeliveryFee()); json.put("warehouseServiceFee",BigDecimal.ZERO); json.put("warehouseFee",BigDecimal.ZERO); json.put("warehouseManageFee",BigDecimal.ZERO); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java index ad5a9f09b..9fb2417a4 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java @@ -1,6 +1,7 @@ package com.logpm.trunkline.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSON; @@ -38,11 +39,17 @@ import org.springblade.common.annotations.RepeatSubmit; import org.springblade.common.constant.CodeNumConstant; import org.springblade.common.constant.DictBizConstant; import org.springblade.common.constant.IncomingTypeEnum; +import org.springblade.common.constant.WorkNodeEnums; import org.springblade.common.constant.broadcast.FanoutConstants; import org.springblade.common.constant.order.*; +import org.springblade.common.enums.BizOperationEnums; +import org.springblade.common.enums.PackageTypeEnums; import org.springblade.common.exception.CustomerException; import org.springblade.common.model.FanoutMsg; +import org.springblade.common.model.NodeFanoutMsg; +import org.springblade.common.model.PackageData; import org.springblade.common.utils.CommonUtil; +import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.BeanUtil; @@ -102,6 +109,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { private final IDistributionReservationStockarticleClient reservationStockarticleClient; private final ISendFanoutService sendFanoutService; private final IOrderInfoClient orderInfoClient; + private final BladeRedis bladeRedis; @Override @@ -306,12 +314,29 @@ public class OpenOrderServiceImpl implements IOpenOrderService { } //组装货物数据 - List goodsList = advanceDetailService.findGoodsListByAdvanceIds(advanceIds); - BasicdataFreightApiVO basicdataFreightApiVO = new BasicdataFreightApiVO(); - basicdataFreightApiVO.setItemName(openOrderVO.getConsigneeClientId() + ""); - basicdataFreightApiVO.setIssueWarehouse(openOrderVO.getDepartureWarehouseId() + ""); - basicdataFreightApiVO.setDestination(openOrderVO.getDestinationCode()); - basicdataFreightApiVO.setArrivalWarehouse(openOrderVO.getDestinationWarehouseId() + ""); + List goodsList = new ArrayList<>(); +// BasicdataFreightApiVO basicdataFreightApiVO = new BasicdataFreightApiVO(); +// basicdataFreightApiVO.setItemName(openOrderVO.getConsigneeClientId() + ""); +// basicdataFreightApiVO.setIssueWarehouse(openOrderVO.getDepartureWarehouseId() + ""); +// basicdataFreightApiVO.setDestination(openOrderVO.getDestinationCode()); +// basicdataFreightApiVO.setArrivalWarehouse(openOrderVO.getDestinationWarehouseId() + ""); + + + Integer hasPackage = list.get(0).getHasPackage(); + if(hasPackage == 0){ + List addList = new ArrayList<>(); + list.forEach(t -> { + String packName = t.getPackName(); + AdvanceDetailGoodsVO goodsVO = new AdvanceDetailGoodsVO(); + goodsVO.setGoodsName(packName); + goodsVO.setNum(t.getTotalNum()); + addList.add(goodsVO); + }); + goodsList.addAll(addList); + }else{ + goodsList = advanceDetailService.findGoodsListByAdvanceIds(advanceIds); + } + // if (goodsList.isEmpty()) { // List ls = new ArrayList<>(); @@ -680,6 +705,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { //发布开单广播 // openOrderAsyncService.sendOpenWaybillFanout(waybillEntity, details, advanceIds); + advanceDetailService.sendReportAdvanceOpenData(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,updateAdvanceDetailList,waybillEntity); Map map = new HashMap<>(); map.put("waybillId", waybillId); @@ -901,11 +927,61 @@ public class OpenOrderServiceImpl implements IOpenOrderService { //发布开单广播 openOrderAsyncService.sendOpenWaybillFanout(waybillEntity, details, null); + //发送零担开单广播 + sendOpenZeroWaybillFanout(AuthUtil.getUserId(),AuthUtil.getNickName(),warehouseId,warehouseName,waybillEntity,details); + + Map map = new HashMap<>(); map.put("waybillId",waybillId); return R.data(map); } + private void sendOpenZeroWaybillFanout(Long userId, String nickName, Long warehouseId, String warehouseName, WarehouseWaybillEntity waybillEntity, List details) { + +// String key = AuthUtil.getTenantId()+":brandList"; +// +// Map brandMap = bladeRedis.hGetAll(key); +// +// if(CollUtil.isEmpty(brandMap)){ +// List allList = basicdataBrandClient.findAllList(); +// Map brandIdMap = new HashMap<>(); +// allList.forEach(jsonObject -> { +// brandIdMap.put(jsonObject.getString("brandName"),jsonObject.getLong("brandId")); +// }); +// brandMap.putAll(brandIdMap); +// } + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.OPEN_ORDER); + nodeFanoutMsg.setBizOperation(BizOperationEnums.ADD); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setMain(waybillEntity); + //组装包件数据 + List packageDataList = new ArrayList<>(); + details.forEach(detailEntity -> { + PackageData packageData = new PackageData(); + packageData.setOrderCode(detailEntity.getWaybillNo()); + packageData.setProductId(detailEntity.getProductId()); + packageData.setProductName(detailEntity.getProductName()); + packageData.setNum(detailEntity.getNum()); + packageData.setWeight(detailEntity.getWeight()); + packageData.setVolume(detailEntity.getVolume()); + packageData.setPackageType(PackageTypeEnums.LTL); + packageData.setWaybillNumber(detailEntity.getWaybillNo()); + packageDataList.add(packageData); + }); + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + + } + @Override public void updateCustomerInfo(AdvanceDTO advanceDTO) { List advanceIds = advanceDTO.getAdvanceIds(); @@ -1204,6 +1280,10 @@ public class OpenOrderServiceImpl implements IOpenOrderService { // detailEntities.add(advanceDetailEntity); // } advanceDetailService.saveBatch(detailEntities); + + //发送报表基础数据广播 + advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),openLabelDTO.getWarehouseId(),openLabelDTO.getWarehouseName(),new Date(),detailEntities,advanceEntity.getDealerCode(),advanceEntity.getDealerName()); + return R.success("保存成功"); } @@ -1359,7 +1439,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceEntity.setCustomerName(pacakgeDetailExcelDTO.getCustomerName()); advanceEntity.setCustomerPhone(pacakgeDetailExcelDTO.getCustomerTelephone()); advanceEntity.setCustomerAddress(pacakgeDetailExcelDTO.getCustomerAddress()); - advanceEntity.setSystemType("线上"); + advanceEntity.setSystemType("线下"); advanceEntity.setServiceNum(pacakgeDetailExcelDTO.getServiceNum()); advanceEntity.setMatingType("1"); advanceEntity.setTrainNumber(trainNumber); @@ -1429,12 +1509,13 @@ public class OpenOrderServiceImpl implements IOpenOrderService { Map> map = advanceDetailEntityList.parallelStream().collect(Collectors.groupingBy(TrunklineAdvanceDetailEntity::getAdvanceId, Collectors.mapping(TrunklineAdvanceDetailEntity::getOrderPackageCode, Collectors.toList()))); Map materialMap = new HashMap<>(); - + Map advanceMapByAdvanceId = new HashMap<>(); listMap.keySet().forEach(str -> { List pacakgeDetailExcelList = listMap.get(str); TrunklineAdvanceEntity advanceEntity = advanceEntityMap.get(str); if (!Objects.isNull(advanceEntity)) { Long advanceId = advanceEntity.getId(); + advanceMapByAdvanceId.put(advanceId, advanceEntity); String orderCode = advanceEntity.getOrderCode(); List orderPackageCodes = map.get(advanceId); pacakgeDetailExcelList.forEach(pacakgeDetailExcelDTO -> { @@ -1452,7 +1533,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { brandEntity = brandMap.get("其他"); advanceDetailModel.setBrand(brandEntity.getBrandName()); } - advanceDetailModel.setSystemType("线上"); + advanceDetailModel.setSystemType("线下"); advanceDetailModel.setTrainNumber(advanceEntity.getTrainNumber()); String firsts = pacakgeDetailExcelDTO.getFirsts(); advanceDetailModel.setFirstPackName(firsts); @@ -1544,6 +1625,16 @@ public class OpenOrderServiceImpl implements IOpenOrderService { carsLoadAsyncService.sendRabbitMessageLoadScanData(advanceEntityList); } + + //发送报表基础数据广播 + //把advanceDetailEntities通过advanceId进行分组 + Map> advanceDetailEntityMap = advanceDetailEntities.stream().collect(Collectors.groupingBy(TrunklineAdvanceDetailEntity::getAdvanceId)); + advanceDetailEntityMap.keySet().forEach(advanceId ->{ + TrunklineAdvanceEntity advanceEntity = advanceMapByAdvanceId.get(advanceId); + List advanceDetailEntities1 = advanceDetailEntityMap.get(advanceId); + advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,new Date(),advanceDetailEntities1,advanceEntity.getDealerCode(),advanceEntity.getDealerName()); + }); + int successNum = advanceDetailEntities.size(); return R.success("成功处理包件"+successNum+"件"); @@ -1695,7 +1786,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceEntity.setCustomerName(importCustomizedOuPaiDTO.getCustomerName()); advanceEntity.setCustomerPhone(importCustomizedOuPaiDTO.getCustomerPhone()); advanceEntity.setCustomerAddress(importCustomizedOuPaiDTO.getCustomerAddress()); - advanceEntity.setSystemType("线上"); + advanceEntity.setSystemType("线下"); advanceEntity.setServiceNum(importCustomizedOuPaiDTO.getServiceNum()); advanceEntity.setMatingType("1"); advanceEntity.setWaybillStatus("0"); @@ -1765,13 +1856,14 @@ public class OpenOrderServiceImpl implements IOpenOrderService { //把advanceDetailEntityList通过advanceId分组并且把集合转化为orderPackageCode的集合 Map> map = advanceDetailEntityList.parallelStream().collect(Collectors.groupingBy(TrunklineAdvanceDetailEntity::getAdvanceId, Collectors.mapping(TrunklineAdvanceDetailEntity::getOrderPackageCode, Collectors.toList()))); - + Map advanceMapByAdvanceId = new HashMap<>(); listMap.keySet().forEach(str -> { List importCustomizedOuPaiDTOList = listMap.get(str); TrunklineAdvanceEntity advanceEntity = advanceEntityMap.get(str); if(!Objects.isNull(advanceEntity)){ Long advanceId = advanceEntity.getId(); + advanceMapByAdvanceId.put(advanceId,advanceEntity); String orderCode = advanceEntity.getOrderCode(); List orderPackageCodes = map.get(advanceId); importCustomizedOuPaiDTOList.forEach(importCustomizedOuPaiDTO -> { @@ -1784,7 +1876,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceDetailModel.setOrderCode(orderCode); advanceDetailModel.setOrderPackageCode(orderPackageCode); advanceDetailModel.setBrand(advanceEntity.getBrand()); - advanceDetailModel.setSystemType("线上"); + advanceDetailModel.setSystemType("线下"); advanceDetailModel.setSiteName(importCustomizedOuPaiDTO.getSiteName()); advanceDetailModel.setSupple(importCustomizedOuPaiDTO.getSupple()); advanceDetailModel.setManifest(importCustomizedOuPaiDTO.getManifest()); @@ -1840,6 +1932,15 @@ public class OpenOrderServiceImpl implements IOpenOrderService { carsLoadAsyncService.sendRabbitMessageLoadScanData(advanceEntityList); } + //发送报表基础数据广播 + //把advanceDetailEntities通过advanceId进行分组 + Map> advanceDetailEntityMap = advanceDetailEntities.stream().collect(Collectors.groupingBy(TrunklineAdvanceDetailEntity::getAdvanceId)); + advanceDetailEntityMap.keySet().forEach(advanceId ->{ + TrunklineAdvanceEntity advanceEntity = advanceMapByAdvanceId.get(advanceId); + List advanceDetailEntities1 = advanceDetailEntityMap.get(advanceId); + advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,new Date(),advanceDetailEntities1,advanceEntity.getDealerCode(),advanceEntity.getDealerName()); + }); + return R.success("成功导入"+size+"条"); } @@ -2009,7 +2110,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceEntity.setCustomerPhone(importStandardOuPaiDTO.getCustomerPhone()); advanceEntity.setCustomerAddress(importStandardOuPaiDTO.getCustomerAddress()); advanceEntity.setSenderFactory(importStandardOuPaiDTO.getSendFactory()); - advanceEntity.setSystemType("线上"); + advanceEntity.setSystemType("线下"); advanceEntity.setMatingType("1"); advanceEntity.setWaybillStatus("0"); advanceEntity.setTrainNumber(importStandardOuPaiDTO.getTrainNumber()); @@ -2076,12 +2177,14 @@ public class OpenOrderServiceImpl implements IOpenOrderService { Map> map = advanceDetailEntityList.parallelStream().collect(Collectors.groupingBy(TrunklineAdvanceDetailEntity::getAdvanceId, Collectors.mapping(TrunklineAdvanceDetailEntity::getOrderPackageCode, Collectors.toList()))); Map materialMap = new HashMap<>(); + Map advanceMapByAdvanceId = new HashMap<>(); listMap.keySet().forEach(str -> { List importStandardOuPaiDTOList = listMap.get(str); TrunklineAdvanceEntity advanceEntity = advanceEntityMap.get(str); if(!Objects.isNull(advanceEntity)){ Long advanceId = advanceEntity.getId(); + advanceMapByAdvanceId.put(advanceId,advanceEntity); String orderCode = advanceEntity.getOrderCode(); String brand = advanceEntity.getBrand(); List orderPackageCodes = map.get(advanceId); @@ -2095,7 +2198,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceDetailModel.setOrderCode(orderCode); advanceDetailModel.setOrderPackageCode(orderPackageCode); advanceDetailModel.setBrand(brand); - advanceDetailModel.setSystemType("线上"); + advanceDetailModel.setSystemType("线下"); advanceDetailModel.setSiteName(importStandardOuPaiDTO.getSiteName()); advanceDetailModel.setReturnNum(importStandardOuPaiDTO.getReturnNum()); advanceDetailModel.setSendDateStr(importStandardOuPaiDTO.getSendDateStr()); @@ -2203,6 +2306,16 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceDetailService.updateBatchById(updateMaterialList); } + //发送报表基础数据广播 + //把advanceDetailEntities通过advanceId进行分组 + Map> advanceDetailEntityMap = advanceDetailEntities.stream().collect(Collectors.groupingBy(TrunklineAdvanceDetailEntity::getAdvanceId)); + advanceDetailEntityMap.keySet().forEach(advanceId ->{ + TrunklineAdvanceEntity advanceEntity = advanceMapByAdvanceId.get(advanceId); + List advanceDetailEntities1 = advanceDetailEntityMap.get(advanceId); + advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,new Date(),advanceDetailEntities1,advanceEntity.getDealerCode(),advanceEntity.getDealerName()); + }); + + int successNum = advanceDetailEntities.size(); return R.success("成功导入"+successNum+"条"); @@ -2271,6 +2384,37 @@ public class OpenOrderServiceImpl implements IOpenOrderService { log.warn("#############updateWaybill: 运单已作废 waybillId={}", waybillId); return R.fail(405, "运单已作废"); } + Integer waybillType = waybillEntity.getWaybillType(); + if(waybillType.equals(2)){ + //零担改单限制 + Long departureWarehouseId = waybillEntity.getDepartureWarehouseId(); + Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId(); + Integer totalCount = waybillEntity.getTotalCount(); + DistributionStockArticleEntity startStockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(waybillNo, departureWarehouseId); + if(Objects.isNull(startStockArticleEntity)){ + log.warn("#############updateWaybill: 订单信息不存在 waybillId={}", waybillId); + return R.fail(405, "订单信息不存在"); + } + Integer handQuantity = startStockArticleEntity.getHandQuantity(); + if(NumberUtil.equals(handQuantity,0)){ + DistributionStockArticleEntity endStockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(waybillNo, destinationWarehouseId); + if(Objects.isNull(endStockArticleEntity)){ + log.warn("#############updateWaybill: 订单信息不存在! waybillId={}", waybillId); + return R.fail(405, "订单信息不存在!"); + } + handQuantity = endStockArticleEntity.getHandQuantity(); + if(!NumberUtil.equals(handQuantity,totalCount)){ + log.warn("#############updateWaybill: 目的仓数据还未完全到达 waybillId={}", waybillId); + return R.fail(405, "目的仓数据还未完全到达"); + } + }else{ + if(!NumberUtil.equals(handQuantity,totalCount)){ + log.warn("#############updateWaybill: 始发仓数据已发运 waybillId={}", waybillId); + return R.fail(405, "始发仓数据已发运"); + } + } + } + //验证运单是否有配送任务 //查询运单下所有订单号 @@ -2300,7 +2444,6 @@ public class OpenOrderServiceImpl implements IOpenOrderService { // List wayBillDetailList = warehouseWaybillDetailClient.findListByWaybillNo(waybillNo); - Integer waybillType = waybillEntity.getWaybillType(); Long consigneeId = waybillEntity.getConsigneeId(); String consignee = waybillEntity.getConsignee(); String consigneeName = waybillEntity.getConsigneeName(); @@ -2403,6 +2546,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { List orderList = distributionStockArticleClient.findListByWaybillNumber(waybillNo); orderList.forEach(stockArticleEntity -> { stockArticleEntity.setMallId(consigneeId); + stockArticleEntity.setTotalNumber(totalCount); if(!Objects.isNull(basicdataClientEntity)){ stockArticleEntity.setMallCode(basicdataClientEntity.getClientCode()); }else{ @@ -2417,6 +2561,12 @@ public class OpenOrderServiceImpl implements IOpenOrderService { stockArticleEntity.setSendWarehouseName(departureWarehouseName); stockArticleEntity.setAcceptWarehouseId(destinationWarehouseId); stockArticleEntity.setAcceptWarehouseName(destinationWarehouseName); + String orderCode = stockArticleEntity.getOrderCode(); + if(orderCode.equals(waybillNo)){ + stockArticleEntity.setCustomerName(consigneeName); + stockArticleEntity.setCustomerTelephone(consigneeMobile); + stockArticleEntity.setCustomerAddress(consigneeAddress); + } }); List parcelListEntityList = distributionParcelListClient.findByWaybillNumber(waybillNo); @@ -2445,10 +2595,47 @@ public class OpenOrderServiceImpl implements IOpenOrderService { trunklineWaybillPackageService.updateWaybillStatus(waybillEntity); + + sendUpdateWaybillFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,waybillEntity); + // openOrderAsyncService.sendUpdateWaybillFanout(waybillEntity,wayBillDetailList,advanceIds,oldConsignee); return R.success("改单成功"); } + private void sendUpdateWaybillFanout(String nickName, Long userId, Long warehouseId, String warehouseName, WarehouseWaybillEntity waybillEntity) { + String key = AuthUtil.getTenantId()+":brandList"; + + Map brandMap = bladeRedis.hGetAll(key); + + if(CollUtil.isEmpty(brandMap)){ + List allList = basicdataBrandClient.findAllList(); + Map brandIdMap = new HashMap<>(); + allList.forEach(jsonObject -> { + brandIdMap.put(jsonObject.getString("brandName"),jsonObject.getLong("brandId")); + }); + brandMap.putAll(brandIdMap); + } + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.CHANGE_ORDER); + nodeFanoutMsg.setBizOperation(BizOperationEnums.MODIFY); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setMain(waybillEntity); + //组装包件数据 + List packageDataList = new ArrayList<>(); + + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + + } + @Override public R updateWaybillVerify(OpenOrderDTO openOrderDTO) { Long waybillId = openOrderDTO.getWaybillId(); @@ -2582,7 +2769,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceEntity.setSenderPhone(importOrderNoPackageExcelDTO.getShipperMobile()); advanceEntity.setSenderAddress(importOrderNoPackageExcelDTO.getShipperAddress()); advanceEntity.setTrainNumber(importOrderNoPackageExcelDTO.getTrainNumber()); - advanceEntity.setSystemType("线上"); + advanceEntity.setSystemType("线下"); advanceEntity.setMatingType("1"); advanceEntity.setWaybillStatus("0"); advanceEntity.setFreezeStatus("0"); @@ -2611,7 +2798,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceDetailModel.setAdvanceId(advanceEntity.getId()); advanceDetailModel.setOrderCode(advanceEntity.getOrderCode()); advanceDetailModel.setBrand(advanceEntity.getBrand()); - advanceDetailModel.setSystemType("线上"); + advanceDetailModel.setSystemType("线下"); advanceDetailModel.setFirstPackName(firsts); String sencods = importOrderNoPackageExcelDTO.getSeconds(); @@ -2679,6 +2866,19 @@ public class OpenOrderServiceImpl implements IOpenOrderService { CompletableFuture.allOf(comlist.toArray(new CompletableFuture[0])).join(); } + + //发送报表基础数据广播 + //把advanceDetailEntities通过advanceId进行分组 + Map> advanceDetailEntityMap = advanceDetailEntities.stream().collect(Collectors.groupingBy(TrunklineAdvanceDetailEntity::getAdvanceId)); + list.forEach(advanceEntity -> { + Long advanceId = advanceEntity.getId(); + String dealerCode = advanceEntity.getDealerCode(); + String dealerName = advanceEntity.getDealerName(); + List advanceDetailEntities1 = advanceDetailEntityMap.get(advanceId); + advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,new Date(),advanceDetailEntities1,dealerCode,dealerName); + }); + + return R.success("添加成功"); } @@ -2853,7 +3053,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceEntity.setSenderPhone(importOrderNoPackageExcelDTO.getShipperMobile()); advanceEntity.setSenderAddress(importOrderNoPackageExcelDTO.getShipperAddress()); advanceEntity.setTrainNumber(importOrderNoPackageExcelDTO.getTrainNumber()); - advanceEntity.setSystemType("线上"); + advanceEntity.setSystemType("线下"); advanceEntity.setMatingType("1"); advanceEntity.setWaybillStatus("0"); advanceEntity.setFreezeStatus("0"); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java index 9e911734d..b79d227c9 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java @@ -3,12 +3,14 @@ package com.logpm.trunkline.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.logpm.basic.entity.BasicPrintTemplateEntity; import com.logpm.basic.feign.IBasicPrintTemplateClient; +import com.logpm.basicdata.feign.IBasicdataBrandClient; import com.logpm.distribution.vo.DistributionStockArticleQRCodeVO; import com.logpm.distribution.vo.OrderPackgeCodeDataVO; import com.logpm.trunkline.dto.AdvanceDTO; @@ -18,18 +20,28 @@ import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceEntity; import com.logpm.trunkline.mapper.TrunklineAdvanceDetailMapper; import com.logpm.trunkline.mapper.TrunklineAdvanceMapper; +import com.logpm.trunkline.service.ISendFanoutService; import com.logpm.trunkline.service.ITrunklineAdvanceDetailService; import com.logpm.trunkline.vo.*; import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.feign.IWarehouseWaybillClient; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.WorkNodeEnums; +import org.springblade.common.constant.broadcast.FanoutConstants; import org.springblade.common.constant.printTemplate.PrintTemplateStatusConstant; +import org.springblade.common.enums.BizOperationEnums; +import org.springblade.common.enums.PackageTypeEnums; +import org.springblade.common.model.FanoutMsg; +import org.springblade.common.model.NodeFanoutMsg; +import org.springblade.common.model.PackageData; import org.springblade.common.utils.CommonUtil; import org.springblade.common.utils.QRCodeUtil; import org.springblade.common.utils.TemplateUtil; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.core.tool.utils.StringUtil; @@ -49,6 +61,12 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl advanceIds) { return baseMapper.findTotalNumberByAdvanceIds(advanceIds); } + + @Override + public void sendReportBasicdataFanout(String nickName, Long userId, Long warehouseId, String warehouseName, Date date, List advanceDetailEntityList,String dealerCode,String dealerName) { + + String key = AuthUtil.getTenantId()+":brandList"; + + Map brandMap = bladeRedis.hGetAll(key); + + if(CollUtil.isEmpty(brandMap)){ + List allList = basicdataBrandClient.findAllList(); + Map brandIdMap = new HashMap<>(); + allList.forEach(jsonObject -> { + brandIdMap.put(jsonObject.getString("brandName"),jsonObject.getLong("brandId")); + }); + brandMap.putAll(brandIdMap); + } + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.INITIAL_DATA_ENTRY); + nodeFanoutMsg.setBizOperation(BizOperationEnums.ADD); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(date); + //组装包件数据 + List packageDataList = new ArrayList<>(); + advanceDetailEntityList.forEach(detailEntity -> { + PackageData packageData = new PackageData(); + packageData.setPackageCode(detailEntity.getOrderPackageCode()); + packageData.setOrderCode(detailEntity.getOrderCode()); + packageData.setServiceNo(detailEntity.getServiceNum()); + packageData.setMaterialId(detailEntity.getMaterialId()); + packageData.setMaterialCode(detailEntity.getMaterialCode()); + packageData.setMaterialName(detailEntity.getMaterialName()); + packageData.setNum(detailEntity.getQuantity()); + packageData.setWeight(detailEntity.getWeight()); + packageData.setVolume(detailEntity.getVolume()); + packageData.setPackageType(PackageTypeEnums.CMP); + packageData.setCustomerTrain(detailEntity.getTrainNumber()); + packageData.setDealerCode(dealerName); + packageData.setDealerName(dealerCode); + String brand = detailEntity.getBrand(); + packageData.setBrandId(brandMap.get(brand)); + packageData.setBrandName(brand); + packageData.setSystemType(detailEntity.getSystemType()); + packageDataList.add(packageData); + }); + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + + } + + @Override + public void sendReportIncomingData(Long userId, String nickName, List sendAdvanceDetailEntityList, Long warehouseId, String warehouseName,Integer incomingType) { + String key = AuthUtil.getTenantId()+":brandList"; + + Map brandMap = bladeRedis.hGetAll(key); + + if(CollUtil.isEmpty(brandMap)){ + List allList = basicdataBrandClient.findAllList(); + Map brandIdMap = new HashMap<>(); + allList.forEach(jsonObject -> { + brandIdMap.put(jsonObject.getString("brandName"),jsonObject.getLong("brandId")); + }); + brandMap.putAll(brandIdMap); + } + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.INITIAL_WAREHOUSE_ENTRY); + nodeFanoutMsg.setBizOperation(BizOperationEnums.MODIFY); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + //组装包件数据 + List packageDataList = new ArrayList<>(); + sendAdvanceDetailEntityList.forEach(detailEntity -> { + PackageData packageData = new PackageData(); + packageData.setPackageCode(detailEntity.getOrderPackageCode()); + packageData.setOrderCode(detailEntity.getOrderCode()); + packageData.setServiceNo(detailEntity.getServiceNum()); + packageData.setNum(detailEntity.getQuantity()); + packageData.setWeight(detailEntity.getWeight()); + packageData.setVolume(detailEntity.getVolume()); + packageData.setPackageType(PackageTypeEnums.CMP); + packageData.setCustomerTrain(detailEntity.getTrainNumber()); + packageData.setIncomingType(incomingType); + packageDataList.add(packageData); + }); + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + } + + @Override + public void sendReportAdvanceOpenData(String nickName, Long userId, Long warehouseId, String warehouseName, List advanceDetailList, WarehouseWaybillEntity waybillEntity) { + String key = AuthUtil.getTenantId()+":brandList"; + + Map brandMap = bladeRedis.hGetAll(key); + + if(CollUtil.isEmpty(brandMap)){ + List allList = basicdataBrandClient.findAllList(); + Map brandIdMap = new HashMap<>(); + allList.forEach(jsonObject -> { + brandIdMap.put(jsonObject.getString("brandName"),jsonObject.getLong("brandId")); + }); + brandMap.putAll(brandIdMap); + } + + NodeFanoutMsg nodeFanoutMsg = new NodeFanoutMsg(); + nodeFanoutMsg.setNode(WorkNodeEnums.OPEN_ORDER); + nodeFanoutMsg.setBizOperation(BizOperationEnums.MODIFY); + nodeFanoutMsg.setOperator(nickName); + nodeFanoutMsg.setOperatorId(userId); + nodeFanoutMsg.setWarehouse(warehouseName); + nodeFanoutMsg.setWarehouseId(warehouseId); + nodeFanoutMsg.setOperatorTime(new Date()); + nodeFanoutMsg.setMain(waybillEntity); + //组装包件数据 + List packageDataList = new ArrayList<>(); + advanceDetailList.forEach(detailEntity -> { + PackageData packageData = new PackageData(); + packageData.setPackageCode(detailEntity.getOrderPackageCode()); + packageData.setOrderCode(detailEntity.getOrderCode()); + packageData.setServiceNo(detailEntity.getServiceNum()); + packageData.setNum(detailEntity.getQuantity()); + packageData.setWeight(detailEntity.getWeight()); + packageData.setVolume(detailEntity.getVolume()); + packageData.setPackageType(PackageTypeEnums.CMP); + packageData.setWaybillNumber(waybillEntity.getWaybillNo()); + packageDataList.add(packageData); + }); + nodeFanoutMsg.setDetails(packageDataList); + + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.REPORTDATA.EXCHANGE).msg(JSONObject.toJSONString(nodeFanoutMsg)).build(); + + sendFanoutService.sendFanoutMsg(fanoutMsg); + + } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java index 016668e52..60e8313e8 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java @@ -425,7 +425,7 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl incomingPackageBatch(Long advanceId, Long warehouseId, List detailList, Long userId, Long deptId, String tenantId, WarehouseWaybillEntity waybillEntity) { + public List incomingPackageBatch(Long advanceId, Long warehouseId, List detailList, Long userId, Long deptId, String tenantId, WarehouseWaybillEntity waybillEntity,Integer incomingType) { Date date = new Date(); @@ -675,6 +675,7 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl scanIds = carsLoadScanEntityList.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); + List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(scanIds); + //把zeroDetailVOList中所有元素通过scanId进行分组 + Map> mapByScanId = zeroDetailVOList.stream() + .collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); + + + carsLoadScanEntityList.forEach(carsLoadScanEntity -> { + + Long scanId = carsLoadScanEntity.getId(); + + List list = mapByScanId.get(scanId); + + carsLoadAsyncService.sendReportZeroPackageUnloadData(AuthUtil.getUserId(), AuthUtil.getNickName(), warehouseId, warehouseEntity.getName(),list,carsLoadScanEntity,carsLoadEntity); + + }); + + } //无装车记录异常日志记录 @@ -1766,6 +1795,23 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl signScanZeroOrderList = trunklineCarsOrderService.findSignZeroOrderListBySignOrderId(signOrderId); List signZeroPackageList = trunklineCarsLoadScanService.findSignPackageListBySignOrderId(signOrderId); - // 创建一个包含所有carsLoadScanId的新列表 - List carsLoadScanIds = signZeroPackageList.stream() - .map(SignPackageVO::getCarsLoadScanId) - .collect(Collectors.toList()); - List scanZeroDetailList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds); - //把scanZeroDetailList中所有元素通过id进行分组 - Map> scanZeroDetailMap = scanZeroDetailList.stream() - .collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); - - signZeroPackageList.forEach(signPackageVO -> { - Long carsLoadScanId = signPackageVO.getCarsLoadScanId(); - List list = scanZeroDetailMap.get(carsLoadScanId); - signPackageVO.setScanZeroDetailList(list); - }); + if(CollUtil.isNotEmpty(signZeroPackageList)){ + // 创建一个包含所有carsLoadScanId的新列表 + List carsLoadScanIds = signZeroPackageList.stream() + .map(SignPackageVO::getCarsLoadScanId) + .collect(Collectors.toList()); + List scanZeroDetailList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds); + //把scanZeroDetailList中所有元素通过id进行分组 + Map> scanZeroDetailMap = scanZeroDetailList.stream() + .collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); + + signZeroPackageList.forEach(signPackageVO -> { + Long carsLoadScanId = signPackageVO.getCarsLoadScanId(); + List list = scanZeroDetailMap.get(carsLoadScanId); + signPackageVO.setScanZeroDetailList(list); + }); + } for (SignScanOrderVO signScanOrderVO : signScanZeroOrderList) { String waybillNo = StringUtil.isBlank(signScanOrderVO.getWaybillNo())?"null":signScanOrderVO.getWaybillNo(); @@ -6346,6 +6397,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl carsLoadScanIdList = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); - List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds); + List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIdList); //把zeroDetailVOList所有元素通过packageId进行分组 Map> groupedByPackageId = zeroDetailVOList.stream().filter(trunklineScanZeroDetailVO-> !Objects.isNull(trunklineScanZeroDetailVO.getPackageId())) .collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getPackageId)); @@ -7641,6 +7694,11 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderPackageCodeList = new ArrayList<>(); + orderPackageCodeList.add(orderPackageCode); + carsLoadAsyncService.sendReportPackageUnloadData(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,carsLoadEntity,orderPackageCodeList); + if (isData == 0) { return Resp.scanSuccess("卸车成功", "系统无编码"); } @@ -9331,6 +9393,11 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderPackageCodeList = new ArrayList<>(); + orderPackageCodeList.add(orderPackageCode); + carsLoadAsyncService.sendReportPackageUnloadData(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,carsLoadEntity,orderPackageCodeList); + if (isData == 0) { return Resp.scanSuccess("卸车成功", "系统无编码"); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java index 53d89f456..ddb8887b8 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java @@ -12,7 +12,6 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.stereotype.Service; -import java.util.Collections; import java.util.List; @Slf4j diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java index b35c32c55..63e72728d 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java @@ -19,8 +19,6 @@ import lombok.extern.log4j.Log4j2; import org.springblade.common.exception.CustomerException; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; -import org.springblade.core.secure.BladeUser; -import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringUtil; diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java index c318bc02d..f8efd8f61 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java @@ -244,12 +244,14 @@ public class WarehouseWaybillController extends BladeController { log.info(method + "请求参数{}", waybillDTO); try{ //当前登录人选择的仓库 + List warehouseIds = new ArrayList<>(); BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); - if(Objects.isNull(myCurrentWarehouse)){ - log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); - return R.fail(403,"仓库信息为空"); + if(!Objects.isNull(myCurrentWarehouse)){ + warehouseIds.add(myCurrentWarehouse.getId()); + }else{ + List myWatchWarehouse = warehouseClient.getMyWatchWarehouse(); + myWatchWarehouse.forEach(warehouseEntity -> warehouseIds.add(warehouseEntity.getId())); } - waybillDTO.setWarehouseId(myCurrentWarehouse.getId()); IPage pages = warehouseWaybillService.pageList(waybillDTO); @@ -272,12 +274,14 @@ public class WarehouseWaybillController extends BladeController { log.info(method + "请求参数{}", waybillDTO); try{ //当前登录人选择的仓库 + List warehouseIds = new ArrayList<>(); BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); - if(Objects.isNull(myCurrentWarehouse)){ - log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); - throw new CustomerException(403,"仓库信息为空"); + if(!Objects.isNull(myCurrentWarehouse)){ + warehouseIds.add(myCurrentWarehouse.getId()); + }else{ + List myWatchWarehouse = warehouseClient.getMyWatchWarehouse(); + myWatchWarehouse.forEach(warehouseEntity -> warehouseIds.add(warehouseEntity.getId())); } - waybillDTO.setWarehouseId(myCurrentWarehouse.getId()); List list = warehouseWaybillService.exportWaybillList(waybillDTO); diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java index 9e970f90a..23cbcf63e 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java @@ -37,6 +37,7 @@ public class WarehouseWaybillDTO extends WarehouseWaybillEntity { private List departureWarehouseIds; private List destinationWarehouseIds; + private List warehouseIds; private Integer pageNum; private Integer pageSize; diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml index 1aeb12de5..cb36e61fd 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml @@ -148,7 +148,6 @@