From 3e81aa3d2a12ac9d51d2feb2a8b02385a4295f5a Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Wed, 28 Aug 2024 16:31:30 +0800 Subject: [PATCH 01/73] =?UTF-8?q?fix:=E6=B3=A8=E9=87=8A=E6=8E=89=E4=B8=8D?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/ModuleNameConstant.java | 2 +- .../common/launch/LauncherServiceImpl.java | 26 +++++++++---------- .../aftersales/AftersalesApplication.java | 1 - .../com/logpm/basic/BasicApplication.java | 1 - .../src/main/resources/application-dev.yml | 2 +- .../logpm/basicdata/BasicDataApplication.java | 1 - .../impl/BasicdataTrayServiceImpl.java | 2 +- .../src/main/resources/application-dev.yml | 2 +- .../logpm/business/BusinessApplication.java | 1 - .../distribution/DistributionApplication.java | 1 - .../src/main/resources/application-dev.yml | 2 +- .../logpm/supervise/SuperviseApplication.java | 1 - .../logpm/trunkline/TrunkLineApplication.java | 2 -- .../logpm/warehouse/WarehouseApplication.java | 1 - .../src/main/resources/application-dev.yml | 6 ++--- blade-service/pom.xml | 8 +++--- 16 files changed, 24 insertions(+), 35 deletions(-) diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java index d60420fe5..4708feb7c 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java @@ -9,7 +9,7 @@ public interface ModuleNameConstant { /** * 如果不需要 "" */ - public static final String DEVAUTH =""; + public static final String DEVAUTH ="-pref"; /** * 工厂对接服务名称 diff --git a/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java b/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java index f6aa5bef8..107c8211e 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java +++ b/blade-biz-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java @@ -43,27 +43,25 @@ public class LauncherServiceImpl implements LauncherService { // 开启elk日志 // PropsUtil.setProperty(props, "blade.log.elk.destination", LauncherConstant.elkAddr(profile)); - - PropsUtil.setProperty(props, "spring.cloud.sentinel.transport.dashboard", LauncherConstant.sentinelAddr(profile)); PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.username","nacos"); PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.password","Nacos123123"); PropsUtil.setProperty(props, "spring.cloud.nacos.config.username","nacos"); PropsUtil.setProperty(props, "spring.cloud.nacos.config.password","Nacos123123"); // dubbo注册 - PropsUtil.setProperty(props, "dubbo.application.name", appName); - PropsUtil.setProperty(props, "dubbo.application.qos.enable", "false"); - PropsUtil.setProperty(props, "dubbo.protocol.name", "dubbo"); - PropsUtil.setProperty(props, "dubbo.registry.address", "nacos://" + LauncherConstant.nacosAddr(profile)); - PropsUtil.setProperty(props, "dubbo.version", AppConstant.APPLICATION_VERSION); - PropsUtil.setProperty(props, "dubbo.scan.base-packages", AppConstant.BASE_PACKAGES); +// PropsUtil.setProperty(props, "dubbo.application.name", appName); +// PropsUtil.setProperty(props, "dubbo.application.qos.enable", "false"); +// PropsUtil.setProperty(props, "dubbo.protocol.name", "dubbo"); +// PropsUtil.setProperty(props, "dubbo.registry.address", "nacos://" + LauncherConstant.nacosAddr(profile)); +// PropsUtil.setProperty(props, "dubbo.version", AppConstant.APPLICATION_VERSION); +// PropsUtil.setProperty(props, "dubbo.scan.base-packages", AppConstant.BASE_PACKAGES); - // seata注册地址 - PropsUtil.setProperty(props, "seata.service.grouplist.default", LauncherConstant.seataAddr(profile)); - // seata注册group格式 - PropsUtil.setProperty(props, "seata.tx-service-group", LauncherConstant.seataServiceGroup(appName)); - // seata配置服务group - PropsUtil.setProperty(props, "seata.service.vgroup-mapping.".concat(LauncherConstant.seataServiceGroup(appName)), LauncherConstant.DEFAULT_MODE); +// // seata注册地址 +// PropsUtil.setProperty(props, "seata.service.grouplist.default", LauncherConstant.seataAddr(profile)); +// // seata注册group格式 +// PropsUtil.setProperty(props, "seata.tx-service-group", LauncherConstant.seataServiceGroup(appName)); +// // seata配置服务group +// PropsUtil.setProperty(props, "seata.service.vgroup-mapping.".concat(LauncherConstant.seataServiceGroup(appName)), LauncherConstant.DEFAULT_MODE); // seata注册模式配置 // PropsUtil.setProperty(props, "seata.registry.type", LauncherConstant.NACOS_MODE); // PropsUtil.setProperty(props, "seata.registry.nacos.server-addr", LauncherConstant.nacosAddr(profile)); diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/AftersalesApplication.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/AftersalesApplication.java index ed1163063..fe28ef4b7 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/AftersalesApplication.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/AftersalesApplication.java @@ -19,7 +19,6 @@ package com.logpm.aftersales; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Demo启动器 diff --git a/blade-service/logpm-basic/src/main/java/com/logpm/basic/BasicApplication.java b/blade-service/logpm-basic/src/main/java/com/logpm/basic/BasicApplication.java index 3972782f9..90224f55d 100644 --- a/blade-service/logpm-basic/src/main/java/com/logpm/basic/BasicApplication.java +++ b/blade-service/logpm-basic/src/main/java/com/logpm/basic/BasicApplication.java @@ -5,7 +5,6 @@ package com.logpm.basic; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Basic启动器 diff --git a/blade-service/logpm-basic/src/main/resources/application-dev.yml b/blade-service/logpm-basic/src/main/resources/application-dev.yml index edd1af818..0e280f09f 100644 --- a/blade-service/logpm-basic/src/main/resources/application-dev.yml +++ b/blade-service/logpm-basic/src/main/resources/application-dev.yml @@ -12,7 +12,7 @@ server: spring: #排除DruidDataSourceAutoConfigure autoconfigure: - exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure,com.alibaba.cloud.seata.feign.SeataFeignClientAutoConfiguration + exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure datasource: dynamic: druid: diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/BasicDataApplication.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/BasicDataApplication.java index bc3652dfc..0ea8593ac 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/BasicDataApplication.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/BasicDataApplication.java @@ -4,7 +4,6 @@ package com.logpm.basicdata; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Basic启动器 diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java index 2592d1d6d..727cebbb9 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataTrayServiceImpl.java @@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; -import com.ibm.icu.impl.data.ResourceReader; import com.itextpdf.html2pdf.ConverterProperties; import com.itextpdf.html2pdf.HtmlConverter; import com.itextpdf.kernel.geom.PageSize; @@ -60,6 +59,7 @@ import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springframework.beans.BeanUtils; +import org.springframework.data.repository.init.ResourceReader; import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/blade-service/logpm-basicdata/src/main/resources/application-dev.yml b/blade-service/logpm-basicdata/src/main/resources/application-dev.yml index ad768428d..65ac97dae 100644 --- a/blade-service/logpm-basicdata/src/main/resources/application-dev.yml +++ b/blade-service/logpm-basicdata/src/main/resources/application-dev.yml @@ -12,7 +12,7 @@ server: spring: #排除DruidDataSourceAutoConfigure autoconfigure: - exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure,com.alibaba.cloud.seata.feign.SeataFeignClientAutoConfiguration + exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure datasource: dynamic: druid: diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/BusinessApplication.java b/blade-service/logpm-business/src/main/java/com/logpm/business/BusinessApplication.java index b5654d540..2c40a6fb7 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/BusinessApplication.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/BusinessApplication.java @@ -4,7 +4,6 @@ package com.logpm.business; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; @BladeCloudApplication public class BusinessApplication { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java index b37bf3a93..32edd5cbc 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/DistributionApplication.java @@ -19,7 +19,6 @@ package com.logpm.distribution; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Demo启动器 diff --git a/blade-service/logpm-distribution/src/main/resources/application-dev.yml b/blade-service/logpm-distribution/src/main/resources/application-dev.yml index 5900ebb32..2ced6d350 100644 --- a/blade-service/logpm-distribution/src/main/resources/application-dev.yml +++ b/blade-service/logpm-distribution/src/main/resources/application-dev.yml @@ -41,7 +41,7 @@ spring: mandatory: true #排除DruidDataSourceAutoConfigure autoconfigure: - exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure,com.alibaba.cloud.seata.feign.SeataFeignClientAutoConfiguration + exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure datasource: dynamic: druid: diff --git a/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/SuperviseApplication.java b/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/SuperviseApplication.java index 0dbf98df6..52e2666af 100644 --- a/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/SuperviseApplication.java +++ b/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/SuperviseApplication.java @@ -5,7 +5,6 @@ package com.logpm.supervise; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Basic启动器 diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/TrunkLineApplication.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/TrunkLineApplication.java index a82e78131..d17b93470 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/TrunkLineApplication.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/TrunkLineApplication.java @@ -19,7 +19,6 @@ package com.logpm.trunkline; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Demo启动器 @@ -27,7 +26,6 @@ import org.springblade.core.transaction.annotation.SeataCloudApplication; * @author Chill */ @BladeCloudApplication -@SeataCloudApplication public class TrunkLineApplication { public static void main(String[] args) { diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/WarehouseApplication.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/WarehouseApplication.java index a8668fb2e..20720b6d2 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/WarehouseApplication.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/WarehouseApplication.java @@ -19,7 +19,6 @@ package com.logpm.warehouse; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; -import org.springblade.core.transaction.annotation.SeataCloudApplication; /** * Demo启动器 diff --git a/blade-service/logpm-warehouse/src/main/resources/application-dev.yml b/blade-service/logpm-warehouse/src/main/resources/application-dev.yml index b7affbaba..17c0a2b32 100644 --- a/blade-service/logpm-warehouse/src/main/resources/application-dev.yml +++ b/blade-service/logpm-warehouse/src/main/resources/application-dev.yml @@ -12,10 +12,10 @@ server: spring: #rabbitmq配置 rabbitmq: - host: 192.168.2.46 + host: 192.168.3.100 port: 5672 username: admin - password: admin + password: 123456 #虚拟host 可以不设置,使用server默认host virtual-host: / #确认消息已发送到队列(Queue) @@ -38,7 +38,7 @@ spring: mandatory: true #排除DruidDataSourceAutoConfigure autoconfigure: - exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure,com.alibaba.cloud.seata.feign.SeataFeignClientAutoConfiguration + exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure datasource: dynamic: druid: diff --git a/blade-service/pom.xml b/blade-service/pom.xml index 69f65ccb5..36ab0faff 100644 --- a/blade-service/pom.xml +++ b/blade-service/pom.xml @@ -65,10 +65,10 @@ blade-starter-metrics - - org.springblade - blade-starter-transaction - + + + + org.springblade blade-starter-tenant From e90383f12ce0d57256dfd8043550a6262ac5a392 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Thu, 29 Aug 2024 09:38:31 +0800 Subject: [PATCH 02/73] =?UTF-8?q?1.=E4=B8=89=E6=96=B9=E4=B8=AD=E8=BD=AC?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trunkline/vo/TrunklineCarsLoadScanVO.java | 1 + .../TripartiteTransferController.java | 61 ++++- .../mapper/TrunklineCarsLoadScanMapper.java | 4 + .../mapper/TrunklineCarsLoadScanMapper.xml | 20 +- .../service/IOpenOrderAsyncService.java | 2 + .../ITrunklineCarsLoadScanService.java | 4 + .../service/ITrunklineCarsLoadService.java | 2 + .../impl/OpenOrderAsyncServiceImpl.java | 75 ++++++ .../TrunklineCarsLoadScanServiceImpl.java | 10 + .../impl/TrunklineCarsLoadServiceImpl.java | 231 ++++++++++++++---- .../TrunklineWaybillTrackServiceImpl.java | 18 +- 11 files changed, 371 insertions(+), 57 deletions(-) diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java index a9bee5e6d..70ef81332 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java @@ -7,6 +7,7 @@ import lombok.Data; public class TrunklineCarsLoadScanVO extends TrunklineCarsLoadScanEntity { private Long signOrderId; + private Long carsLoadScanId; private String destinationWarehouseName; diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/TripartiteTransferController.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/TripartiteTransferController.java index e3a5d7ea8..af225e61c 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/TripartiteTransferController.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/TripartiteTransferController.java @@ -175,6 +175,38 @@ public class TripartiteTransferController { } + @ResponseBody + @PostMapping("/startCarsBefore") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "三方中转发车前验证", notes = "传入loadCarsDTO") + public R startCarsBefore(@RequestBody LoadCarsDTO loadCarsDTO) { + String method = "############startCars: "; + log.info(method+"请求参数{}",loadCarsDTO); + Long loadId = loadCarsDTO.getLoadId(); + try{ + + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(400,"多仓权限无法操作,请选择仓库"); + } + if(Objects.isNull(loadId)){ + log.warn(method+"三方中转id为空 loadId={}",loadId); + return R.fail(400,"三方中转id为空"); + } + + + return carsLoadService.startCarsBefore(loadId,myCurrentWarehouse.getId()); + }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("/startCars") @ApiOperationSupport(order = 1) @@ -392,6 +424,7 @@ public class TripartiteTransferController { String carNumber = carsLoadDTO.getCarNumber(); String remark = carsLoadDTO.getRemark(); String loadType = carsLoadDTO.getLoadType(); + String deliveryType = carsLoadDTO.getDeliveryType(); try{ @@ -406,18 +439,26 @@ public class TripartiteTransferController { log.warn(method+"配载id为空 loadId={}",loadId); return R.fail(400,"配载id为空"); } - if(Objects.isNull(driverId)){ - log.warn(method+"司机id为空 driverId={}",driverId); - return R.fail(400,"司机id为空"); - } - if(StringUtil.isBlank(driverName)){ - log.warn(method+"司机名称为空 driverName={}",driverName); - return R.fail(400,"司机名称为空"); + if(StringUtil.isBlank(deliveryType)){ + log.warn(method+"送货方式为空 deliveryType={}",deliveryType); + return R.fail(400,"送货方式为空"); } - if(StringUtil.isBlank(driverMobile)){ - log.warn(method+"司机电话为空 driverMobile={}",driverMobile); - return R.fail(400,"司机电话为空"); + + if(deliveryType.equals("2")){ + if(Objects.isNull(driverId)){ + log.warn(method+"司机id为空 driverId={}",driverId); + return R.fail(400,"司机id为空"); + } + + if(StringUtil.isBlank(driverName)){ + log.warn(method+"司机名称为空 driverName={}",driverName); + return R.fail(400,"司机名称为空"); + } + if(StringUtil.isBlank(driverMobile)){ + log.warn(method+"司机电话为空 driverMobile={}",driverMobile); + return R.fail(400,"司机电话为空"); + } } if(StringUtil.isBlank(chargeType)){ 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 98db9c039..7557ffb12 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 @@ -171,4 +171,8 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper findAbnormalZeroScanList(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId); List findZeroStartNum(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId); + + List findAllIdListByLoadIdAndNoScanStatus(@Param("loadId") Long loadId, @Param("scanStatus") String scanStatus); + + List findTransferLoadScanWaybillList(@Param("loadId") Long loadId, @Param("nodeId") Long nodeId); } 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 a8bf03373..9b8e2f006 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 @@ -80,7 +80,8 @@ + + + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderAsyncService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderAsyncService.java index d75fcf07d..a7646fa31 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderAsyncService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderAsyncService.java @@ -10,10 +10,12 @@ public interface IOpenOrderAsyncService { void saveLog(Long waybillId, String waybillNo, String trackType, String refer, String operationRemark, String nickName,Long userId,Long warehouseId,String warehouseName); void saveStartCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity,String nickName,Long userId); + void saveTripartiteStartCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity,String nickName,Long userId); void saveCancelStartCarLog(TrunklineCarsLoadLineEntity currentCarsLoadLineEntity, String nickName,Long userId); void saveArriveCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity, String nickName,Long userId); + void saveTripartiteArriveCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity, String nickName,Long userId); void saveCancelArriveCarLog(TrunklineCarsLoadLineEntity currentCarsLoadLineEntity, String nickName,Long userId); 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 51913e4ef..84a0a0cdd 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 @@ -166,4 +166,8 @@ public interface ITrunklineCarsLoadScanService extends BaseService findAbnormalZeroScanList(Long loadId, Long warehouseId); List findZeroStartNum(Long loadId, Long warehouseId); + + List findAllIdListByLoadIdAndNoScanStatus(Long loadId, String scanStatus); + + List findTransferLoadScanWaybillList(Long loadId, Long nodeId); } 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 183fcd320..0c29aa26a 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 @@ -223,4 +223,6 @@ public interface ITrunklineCarsLoadService extends BaseService list = trunklineCarsLoadScanService.findTransferLoadScanWaybillList(loadId,nodeId); + + for (LoadScanWaybillVO loadScanWaybillVO : list) { + String waybillNo = loadScanWaybillVO.getWaybillNo(); + Integer num = loadScanWaybillVO.getNum(); + WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo); + if(Objects.isNull(waybillEntity)){ + log.warn("##############saveStartCarLog: 运单信息不存在 waybillNo={}",waybillNo); + continue; + } + Long waybillId = waybillEntity.getId(); + + String operationRemark = "运单装车"+num+"件 三方中转批次号:"+carsNo+",车牌号:"+carNumber+",司机姓名:"+driverName+",司机手机:"+driverMobile; + saveLog(waybillId,waybillNo,"30",nodeName+" 三方中转装车",operationRemark,nickName,userId,nodeId,nodeName); + + operationRemark = "三方中转从"+nodeName+"发车,实际发车时间"+ CommonUtil.dateToStringGeneral(new Date()); + saveLog(waybillId,waybillNo,"40",nodeName+"已发车",operationRemark,nickName,userId,nodeId,nodeName); + } + + } + + private void saveTrackLog(Long waybillId, String waybillNo, String trackType, String refer, String operationRemark, String nickName,Long userId,Long warehouseId,String warehouseName) { TrunklineWaybillTrackEntity waybillTrackEntity = new TrunklineWaybillTrackEntity(); waybillTrackEntity.setWarehouseId(warehouseId); @@ -249,6 +294,36 @@ public class OpenOrderAsyncServiceImpl implements IOpenOrderAsyncService { } } + @LogpmAsync("asyncExecutor") + @Override + public void saveTripartiteArriveCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity, String nickName,Long userId) { + Long loadId = carsLoadLineEntity.getLoadId(); + TrunklineCarsLoadEntity carsLoadEntity = trunklineCarsLoadService.getById(loadId); + if(Objects.isNull(carsLoadEntity)){ + log.warn("##############saveCancelStartCarLog: 配载信息不存在 loadId={}",loadId); + return; + } + + Long nodeId = carsLoadLineEntity.getNodeId(); + String nodeName = carsLoadLineEntity.getNodeName(); + + + List list = trunklineCarsLoadScanService.findArriveLoadScanWaybillList(loadId,nodeId); + + for (LoadScanWaybillVO loadScanWaybillVO : list) { + String waybillNo = loadScanWaybillVO.getWaybillNo(); + WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo); + if(Objects.isNull(waybillEntity)){ + log.warn("##############saveCancelStartCarLog: 运单信息不存在 waybillNo={}",waybillNo); + continue; + } + Long waybillId = waybillEntity.getId(); + + String operationRemark = "三方中转到达"+nodeName+",到达时间"+ CommonUtil.dateToStringGeneral(new Date()); + saveLog(waybillId,waybillNo,"60",nodeName+" 三方中转到达",operationRemark,nickName,userId,nodeId,nodeName); + } + } + @LogpmAsync("asyncExecutor") @Override public void saveCancelArriveCarLog(TrunklineCarsLoadLineEntity carsLoadLineEntity, String nickName,Long userId) { diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java index 211f387a6..2e7e8f3c4 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java @@ -404,4 +404,14 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl findAllIdListByLoadIdAndNoScanStatus(Long loadId, String scanStatus) { + return baseMapper.findAllIdListByLoadIdAndNoScanStatus(loadId,scanStatus); + } + + @Override + public List findTransferLoadScanWaybillList(Long loadId, Long nodeId) { + return baseMapper.findTransferLoadScanWaybillList(loadId,nodeId); + } + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index 2134603a2..d4816a506 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -1719,6 +1719,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("load_id",loadId); + + List carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper); + Integer loadingNum = carsLoadScanEntityList.stream().mapToInt(t -> Objects.nonNull(t.getNum()) ? t.getNum() : 0).sum(); + Integer unloadNum = carsLoadScanEntityList.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum(); + + Map map = new HashMap<>(); + map.put("loadingNum",loadingNum); + map.put("unloadNum",unloadNum); + + return R.data(map); + } + @Transactional(rollbackFor = Exception.class) @Override @@ -2355,10 +2371,65 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderPackageCodes = trunklineCarsLoadScanService.findPackageListByLoadId(loadId); + openOrderAsyncService.saveTripartiteStartCarLog(carsLoadLineEntity, AuthUtil.getNickName(), AuthUtil.getUserId()); - String content = "包件在 " + warehouseEntity.getName() + "三方中转发车"; - packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.TRIPARTITE_TRANSFER_DEPART.getCode(), content); + List orderPackageCodes = new ArrayList<>(); + List noUnloadOrderPackageCodes = new ArrayList<>(); + + //处理三方中转未卸车数据 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("load_id",loadId); + List carsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper); + //把carsLoadScanEntityList中所有元素通过type进行分组 + //通过type分组区分零担和包件 + Map> carsLoadScanEntityMap = carsLoadScanEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getType)); + carsLoadScanEntityMap.keySet().forEach(type -> { + List trunklineCarsLoadScanEntities = carsLoadScanEntityMap.get(type); + if(type == 1){ + //包件 + trunklineCarsLoadScanEntities.forEach(trunklineCarsLoadScanEntity -> { + String scanCode = trunklineCarsLoadScanEntity.getScanCode(); + Integer num = trunklineCarsLoadScanEntity.getNum(); + Integer unloadNum = trunklineCarsLoadScanEntity.getUnloadNum(); + Integer isData = trunklineCarsLoadScanEntity.getIsData(); + if(unloadNum == num){ + orderPackageCodes.add(scanCode); + }else{ + //未卸车包件 + if(isData == 1){ + noUnloadOrderPackageCodes.add(scanCode); + } + } + }); + }else if(type == 2){ + //零担 + //把trunklineCarsLoadScanEntities通过orderCode进行分组 + //通过orderCode分组 + Map> orderCodeMap = trunklineCarsLoadScanEntities.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getOrderCode)); + orderCodeMap.keySet().forEach(orderCode -> { + List trunklineCarsLoadScanEntities1 = orderCodeMap.get(orderCode); + Integer loadingNum = trunklineCarsLoadScanEntities1.stream().mapToInt(t -> Objects.nonNull(t.getNum()) ? t.getNum() : 0).sum(); + Integer unloadNum = trunklineCarsLoadScanEntities1.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum(); + int i = loadingNum - unloadNum; + + DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId); + if(!Objects.isNull(stockArticleEntity)){ + distributionStockArticleClient.addHandQuantity(stockArticleEntity.getId(), i); + } + }); + } + }); + + + if(CollUtil.isNotEmpty(orderPackageCodes)){ + String content = "包件在 " + warehouseEntity.getName() + "三方中转发车"; + packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.TRIPARTITE_TRANSFER_DEPART.getCode(), content); + } + + if(CollUtil.isNotEmpty(noUnloadOrderPackageCodes)){ + String content = "包件在 " + warehouseEntity.getName() + "三方中转取消装车"; + packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), noUnloadOrderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.CANCEL_INITIAL_WAREHOUSE_LOADING.getCode(), content); + } } catch (Exception e) { log.warn("#############startCarByLoadId: 存入日志失败"); @@ -2493,6 +2564,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderPackageCodes = trunklineCarsLoadScanService.findPackageListByLoadId(loadId); + openOrderAsyncService.saveTripartiteArriveCarLog(carsLoadLineEntity,AuthUtil.getNickName(),AuthUtil.getUserId()); + String content = "包件在 " + warehouseEntity.getName() + "三方中转到达"; packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.ARRICE_TRIPARTITE_TRANSFER_DEPART.getCode(), content); @@ -2535,27 +2608,30 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl scanLoadIds = trunklineCarsLoadScanService.findAllIdListByLoadIdAndNoScanStatus(loadId,"3"); - try { - trunklineCarsLoadLogService.saveLog(carsLoadEntity, carsLoadLineEntity, CarsLoadLogTypeConstant.TRIPARTITE_TRANSFER_SIGN.getValue()); + return signLoadScanByIds(scanLoadIds,warehouseId); - List orderPackageCodes = trunklineCarsLoadScanService.findSignListOrderPackageCodes(loadId); - - String content = "包件在" + warehouseEntity.getName() + "被三方中转整车签收"; - packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.SIGN_TRIPARTITE_TRANSFER_DEPART.getCode(), content); - // 推送签收数据给工厂 - sendFactorySignTriparite(warehouseId, orderPackageCodes, warehouseEntity); - } catch (Exception e) { - log.warn("###########存入日志失败"); - } - - - return R.success("签收成功"); +// carsLoadEntity.setSignTime(new Date()); +// carsLoadEntity.setLoadStatus("90"); +// updateById(carsLoadEntity); +// +// trunklineCarsLoadScanService.updateScanStatusByLoadId(loadId, "3", new Date(),AuthUtil.getNickName()); +// +// try { +// trunklineCarsLoadLogService.saveLog(carsLoadEntity, carsLoadLineEntity, CarsLoadLogTypeConstant.TRIPARTITE_TRANSFER_SIGN.getValue()); +// +// List orderPackageCodes = trunklineCarsLoadScanService.findSignListOrderPackageCodes(loadId); +// +// String content = "包件在" + warehouseEntity.getName() + "被三方中转整车签收"; +// packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.SIGN_TRIPARTITE_TRANSFER_DEPART.getCode(), content); +// // 推送签收数据给工厂 +// sendFactorySignTriparite(warehouseId, orderPackageCodes, warehouseEntity); +// } catch (Exception e) { +// log.warn("###########存入日志失败"); +// } +// return R.success("签收成功"); } @Override @@ -3647,6 +3723,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderPackageCodes = new ArrayList<>(); try { +// if(!Objects.isNull(waybillId)){ +// WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId); +// waybillPackageService.updateWaybillStatus(waybillEntity); +// WaybillLogDTO waybillLogDTO = new WaybillLogDTO(); +// waybillLogDTO.setWarehouseId(warehouseId); +// waybillLogDTO.setWarehouseName(warehouseName); +// waybillLogDTO.setWaybillNo(waybillEntity.getWaybillNo()); +// waybillLogDTO.setTrainNumber(carsLoadEntity.getCarsNo()); +// waybillLogDTO.setCarNumber(carsLoadEntity.getCarNumber()); +// waybillLogDTO.setSignUser(AuthUtil.getNickName()); +// waybillLogDTO.setSignTime(date); +// waybillLogDTO.setDriverName(carsLoadEntity.getDriverName()); +// waybillLogDTO.setNum(unloadNum); +// waybillLogDTO.setSignOrderCode(carsLoadEntity.getCarsNo()); +// waybillLogDTO.setType(1); +// waybillLogDTO.setUserId(AuthUtil.getUserId()); +// waybillLogDTO.setNickName(AuthUtil.getNickName()); +// waybillTrackService.addSignWaybillLog(waybillLogDTO); +// } + orderPackageCodes.add(orderPackageCode); String content = "包件在 " + warehouseEntity.getName() + "直发商家签收"; packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseEntity.getName(), WorkNodeEnums.SIGN_DIRECT_SHIPPER.getCode(), content); @@ -5474,8 +5598,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl> map = trunklineCarsLoadScanEntities.stream().filter(t -> Objects.nonNull(t.getWaybillNo())).collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getWaybillNo)); map.keySet().forEach(waybillNo -> { List list = map.get(waybillNo); - //把list中所有元素的unloadNum求和,没有值就取0 - Integer unloadNum = list.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum(); - - WaybillLogDTO waybillLogDTO = new WaybillLogDTO(); - waybillLogDTO.setWarehouseId(warehouseId); - waybillLogDTO.setWarehouseName(warehouseName); - waybillLogDTO.setWaybillNo(waybillNo); - waybillLogDTO.setTrainNumber(carsLoadEntity.getCarsNo()); - waybillLogDTO.setCarNumber(carsLoadEntity.getCarNumber()); - waybillLogDTO.setSignUser(AuthUtil.getNickName()); - waybillLogDTO.setSignTime(date); - waybillLogDTO.setDriverName(carsLoadEntity.getDriverName()); - waybillLogDTO.setNum(unloadNum); - waybillLogDTO.setSignOrderCode(carsLoadEntity.getCarsNo()); - waybillLogDTO.setType(1); - waybillLogDTO.setUserId(AuthUtil.getUserId()); - waybillLogDTO.setNickName(AuthUtil.getNickName()); - waybillTrackService.addSignWaybillLog(waybillLogDTO); - }); + Integer signNum = 0; + if("1".equals(deliveryType)){ + signNum = list.stream().mapToInt(t -> Objects.nonNull(t.getNum()) ? t.getNum() : 0).sum(); + }else if("2".equals(deliveryType)){ + signNum = list.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum(); + } + if(signNum > 0){ + WaybillLogDTO waybillLogDTO = new WaybillLogDTO(); + waybillLogDTO.setWarehouseId(warehouseId); + waybillLogDTO.setWarehouseName(warehouseName); + waybillLogDTO.setWaybillNo(waybillNo); + waybillLogDTO.setTrainNumber(carsLoadEntity.getCarsNo()); + waybillLogDTO.setCarNumber(carsLoadEntity.getCarNumber()); + waybillLogDTO.setSignUser(AuthUtil.getNickName()); + waybillLogDTO.setSignTime(date); + waybillLogDTO.setDriverName(carsLoadEntity.getDriverName()); + waybillLogDTO.setNum(signNum); + waybillLogDTO.setSignOrderCode(carsLoadEntity.getCarsNo()); + waybillLogDTO.setType(1); + waybillLogDTO.setUserId(AuthUtil.getUserId()); + waybillLogDTO.setNickName(AuthUtil.getNickName()); + waybillTrackService.addSignWaybillLog(waybillLogDTO); + } + + }); } catch (Exception e) { log.warn("###########存入日志失败"); @@ -6395,7 +6538,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl waybillLogDTOList = new ArrayList<>(); QueryWrapper queryWrapper1 = new QueryWrapper<>(); - queryWrapper1.eq("load_id",warehouseId) + queryWrapper1.eq("load_id",loadId) .eq("sign_order_id",signOrderId) .eq("scan_status","3"); List signCarsLoadScanEntityList = trunklineCarsLoadScanService.list(queryWrapper1); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillTrackServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillTrackServiceImpl.java index a7144c1a5..0aeb85233 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillTrackServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillTrackServiceImpl.java @@ -100,6 +100,9 @@ public class TrunklineWaybillTrackServiceImpl extends BaseServiceImpl Date: Thu, 29 Aug 2024 09:53:03 +0800 Subject: [PATCH 03/73] =?UTF-8?q?fix:=E5=90=88=E5=B9=B6=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=20=E5=8F=96=E6=B6=88=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/common/constant/ModuleNameConstant.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java index 4708feb7c..d60420fe5 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java @@ -9,7 +9,7 @@ public interface ModuleNameConstant { /** * 如果不需要 "" */ - public static final String DEVAUTH ="-pref"; + public static final String DEVAUTH =""; /** * 工厂对接服务名称 From de365161ecc4f00694771a0a77ca907251e01938 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Thu, 29 Aug 2024 10:38:42 +0800 Subject: [PATCH 04/73] =?UTF-8?q?1.=E6=9C=AC=E5=9C=B0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logpm-warehouse/src/main/resources/application-dev.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blade-service/logpm-warehouse/src/main/resources/application-dev.yml b/blade-service/logpm-warehouse/src/main/resources/application-dev.yml index 17c0a2b32..c6e9d35fd 100644 --- a/blade-service/logpm-warehouse/src/main/resources/application-dev.yml +++ b/blade-service/logpm-warehouse/src/main/resources/application-dev.yml @@ -12,10 +12,10 @@ server: spring: #rabbitmq配置 rabbitmq: - host: 192.168.3.100 + host: 192.168.2.46 port: 5672 username: admin - password: 123456 + password: admin #虚拟host 可以不设置,使用server默认host virtual-host: / #确认消息已发送到队列(Queue) From f239bf9ba0a85f1bff23d42ecac0548b33e73f90 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Thu, 29 Aug 2024 15:28:24 +0800 Subject: [PATCH 05/73] =?UTF-8?q?feat(all):=20=E5=A2=9E=E5=8A=A0=E6=A2=A6?= =?UTF-8?q?=E5=A4=A9=E5=9B=9E=E4=BC=A0=E6=80=BB=E7=BA=BF=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mengtian/mq/NodeDataPushListener.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java b/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java index 485ba3af9..084ab93f4 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java @@ -75,8 +75,10 @@ public class NodeDataPushListener { log.info("接收到节点数据推送:{}", msg); // 1 校验数据 if (checkData(msg)) { + log.info("数据校验不通过"); return; } + JSONObject entries = JSONUtil.parseObj(msg); // 节点 String node = entries.getStr("node"); @@ -335,12 +337,17 @@ public class NodeDataPushListener { entity.setOperationCode(operationCode); entity.setSendUrl(mengTianProperties.getHost() + url); String resBody = ""; + String resultCode = ""; try { - HttpResponse execute = post.execute(); - resBody = execute.body(); + if(mengTianProperties.getEnable()){ + HttpResponse execute = post.execute(); + resBody = execute.body(); + JSONObject entries = JSONUtil.parseObj(resBody); + resultCode = entries.getStr("Result"); + } else { + resBody = "总线推送开关未开启"; + } log.info("推送工厂结果:{}", resBody); - JSONObject entries = JSONUtil.parseObj(resBody); - String resultCode = entries.getStr("Result"); entity.setResultContent(resBody); entity.setSendStatus(StrUtil.isEmpty(resultCode) ? "-1" : resultCode); } catch (Exception e) { From d5dcfee1f7cbab813a0725ac09a4bbb06bc7ec29 Mon Sep 17 00:00:00 2001 From: chenlong Date: Thu, 29 Aug 2024 15:39:08 +0800 Subject: [PATCH 06/73] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BB=93=E5=BA=93?= =?UTF-8?q?=E6=89=A9=E5=B1=95=20=EF=BC=8C=20fegin=20Boolean=20isMandatoryL?= =?UTF-8?q?oading(Long=20warehouseId)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/ModuleNameConstant.java | 2 +- .../entity/WarehouseSettingEntity.java | 25 +++++++ .../feign/IWarehouseSettingClient.java | 19 +++++ .../WarehouseSettingController.java | 26 +++++++ .../warehouse/dto/WarehouseSettingDTO.java | 19 +++++ .../feign/WarehouseSettingClient.java | 24 +++++++ .../mapper/WarehouseSettingMapper.java | 7 ++ .../service/IWarehouseSettingService.java | 13 ++++ .../service/impl/WarehouseSettingImpl.java | 69 +++++++++++++++++++ 9 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseSettingEntity.java create mode 100644 blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseSettingClient.java create mode 100644 blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseSettingController.java create mode 100644 blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseSettingDTO.java create mode 100644 blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseSettingClient.java create mode 100644 blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseSettingMapper.java create mode 100644 blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseSettingService.java create mode 100644 blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseSettingImpl.java diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java index d60420fe5..5857d4c24 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java @@ -9,7 +9,7 @@ public interface ModuleNameConstant { /** * 如果不需要 "" */ - public static final String DEVAUTH =""; + public static final String DEVAUTH ="-chenlong"; /** * 工厂对接服务名称 diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseSettingEntity.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseSettingEntity.java new file mode 100644 index 000000000..506744350 --- /dev/null +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseSettingEntity.java @@ -0,0 +1,25 @@ +package com.logpm.warehouse.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +@TableName("logpm_warehouse_setting") +@ApiModel(value = "WarehouseSetting对象", description = "仓库设置") +@EqualsAndHashCode(callSuper = true) +@Data +public class WarehouseSettingEntity extends TenantEntity { + private static final long serialVersionUID = 1L; + + /** + * 仓库id + */ + private Long warehouseId; + + /** + * 强制装车:0=不限制,1=强制 + */ + private Integer mandatoryLoading; +} diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseSettingClient.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseSettingClient.java new file mode 100644 index 000000000..70d94a8af --- /dev/null +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseSettingClient.java @@ -0,0 +1,19 @@ +package com.logpm.warehouse.feign; + +import org.springblade.common.constant.ModuleNameConstant; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * 仓库设置 Feign接口 + */ +@FeignClient( + value = ModuleNameConstant.APPLICATION_WAREHOUSE_NAME +) +public interface IWarehouseSettingClient { + + String API_PREFIX = "warehouse-setting/client"; + + @GetMapping(API_PREFIX + "/is-mandatory-loading") + Boolean isMandatoryLoading(Long warehouseId); +} diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseSettingController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseSettingController.java new file mode 100644 index 000000000..3e787089b --- /dev/null +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseSettingController.java @@ -0,0 +1,26 @@ +package com.logpm.warehouse.controller; + +import com.logpm.warehouse.dto.WarehouseSettingDTO; +import com.logpm.warehouse.service.IWarehouseSettingService; +import io.swagger.annotations.Api; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.api.R; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@AllArgsConstructor +@RequestMapping("/warehouse-setting") +@Api(value = "仓库设置", tags = "仓库设置") +public class WarehouseSettingController extends BladeController { + + private final IWarehouseSettingService warehouseSettingService; + + @PostMapping("/save") + public R save(WarehouseSettingDTO warehouseSettingDTO) { + return warehouseSettingService.saveSetting(warehouseSettingDTO); + } + +} diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseSettingDTO.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseSettingDTO.java new file mode 100644 index 000000000..15ee36b09 --- /dev/null +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseSettingDTO.java @@ -0,0 +1,19 @@ +package com.logpm.warehouse.dto; + +import com.logpm.warehouse.entity.WarehouseSettingEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +@EqualsAndHashCode(callSuper = true) +@Data +public class WarehouseSettingDTO extends WarehouseSettingEntity { + + private static final long serialVersionUID = 1L; + + /** + * 仓库id集合 + */ + List warehouseListIds; +} diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseSettingClient.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseSettingClient.java new file mode 100644 index 000000000..421c1cc48 --- /dev/null +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseSettingClient.java @@ -0,0 +1,24 @@ +package com.logpm.warehouse.feign; + +import com.logpm.warehouse.service.IWarehouseSettingService; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + +@ApiIgnore() +@RestController +@AllArgsConstructor +public class WarehouseSettingClient implements IWarehouseSettingClient{ + + private final IWarehouseSettingService warehouseSettingService; + + /** + * 是否强制装车 + * @param warehouseId + * @return + */ + @Override + public Boolean isMandatoryLoading(Long warehouseId) { + return warehouseSettingService.isMandatoryLoading(warehouseId); + } +} diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseSettingMapper.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseSettingMapper.java new file mode 100644 index 000000000..ed1e59b60 --- /dev/null +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseSettingMapper.java @@ -0,0 +1,7 @@ +package com.logpm.warehouse.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.logpm.warehouse.entity.WarehouseSettingEntity; + +public interface WarehouseSettingMapper extends BaseMapper { +} diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseSettingService.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseSettingService.java new file mode 100644 index 000000000..b11e5aa8a --- /dev/null +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseSettingService.java @@ -0,0 +1,13 @@ +package com.logpm.warehouse.service; + +import com.logpm.warehouse.dto.WarehouseSettingDTO; +import com.logpm.warehouse.entity.WarehouseSettingEntity; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.tool.api.R; + +public interface IWarehouseSettingService extends BaseService { + + boolean isMandatoryLoading(Long WarehouseId); + + R saveSetting(WarehouseSettingDTO warehouseSettingDTO); +} diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseSettingImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseSettingImpl.java new file mode 100644 index 000000000..67b927ed3 --- /dev/null +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseSettingImpl.java @@ -0,0 +1,69 @@ +package com.logpm.warehouse.service.impl; + + +import com.baomidou.mybatisplus.core.toolkit.SerializationUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.logpm.warehouse.dto.WarehouseSettingDTO; +import com.logpm.warehouse.entity.WarehouseSettingEntity; +import com.logpm.warehouse.mapper.WarehouseSettingMapper; +import com.logpm.warehouse.service.IWarehouseSettingService; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.api.R; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + + +@Service +@AllArgsConstructor +public class WarehouseSettingImpl extends BaseServiceImpl implements IWarehouseSettingService { + + public boolean isMandatoryLoading(Long WarehouseId){ + WarehouseSettingEntity setting = getSetting(WarehouseId); + int noLimit = 0; + int forcibly = 1; + int res = noLimit; + + if (setting != null && forcibly == setting.getMandatoryLoading() ) { + res = forcibly; + } + + return res == forcibly; + } + + @Transactional + @Override + public R saveSetting(WarehouseSettingDTO warehouseSettingDTO) { + if (warehouseSettingDTO == null) { + return R.fail("参数错误"); + } + + if (warehouseSettingDTO.getWarehouseListIds().isEmpty()) { + if (warehouseSettingDTO.getWarehouseId() == null) { + return R.fail("参数错误"); + } + + save(warehouseSettingDTO); + + return R.success("保存成功"); + } + + List list = new ArrayList<>(); + for (int i = 0; i < warehouseSettingDTO.getWarehouseListIds().size(); i++) { + WarehouseSettingEntity setting = SerializationUtils.clone(warehouseSettingDTO); + setting.setWarehouseId(warehouseSettingDTO.getWarehouseListIds().get(i)); + list.add(setting); + } + + return saveBatch(list) ? R.success("保存成功") : R.fail("保存失败"); + } + + private WarehouseSettingEntity getSetting(Long WarehouseId){ + return baseMapper.selectOne(Wrappers.lambdaQuery() + .eq(WarehouseSettingEntity::getWarehouseId, WarehouseId) + ); + } +} From 6a0633bc14541fe07b33186b665deb24c08b091a Mon Sep 17 00:00:00 2001 From: chenlong Date: Thu, 29 Aug 2024 15:41:22 +0800 Subject: [PATCH 07/73] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/common/constant/ModuleNameConstant.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java index 5857d4c24..d60420fe5 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java @@ -9,7 +9,7 @@ public interface ModuleNameConstant { /** * 如果不需要 "" */ - public static final String DEVAUTH ="-chenlong"; + public static final String DEVAUTH =""; /** * 工厂对接服务名称 From 542a68ec516821d40e3ad3acd0fa0f041fc4c958 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Thu, 29 Aug 2024 16:51:58 +0800 Subject: [PATCH 08/73] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/mapper/ReportDeliverMapeer.java | 4 ++ .../report/mapper/ReportDeliverMapper.xml | 16 ++++- .../report/reader/DeliveryDetailReader.java | 6 +- .../logpm/report/service/IAsyncService.java | 2 + .../report/service/impl/AsyncServiceImpl.java | 58 +++++++++++++++---- 5 files changed, 72 insertions(+), 14 deletions(-) diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java index 8925195be..bd6a6bacc 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java @@ -68,4 +68,8 @@ public interface ReportDeliverMapeer extends BaseMapper { List getDeliveryTrainLoadSacnByIds(@Param("idBatch") List idBatch); List getDeliveryTrainLoadSacnInvnByIds(@Param("idBatch") List idBatch); + + Long getDetailsPageCount(@Param("ew") Wrapper query); + + List getDetailsPageExport(@Param("ew") Wrapper queryWrapper, @Param("current") Integer current, @Param("size") Integer size); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml index 115015632..6c8fd701c 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml @@ -303,7 +303,7 @@ ) t ${ew.customSqlSegment} - + select @@ -828,4 +831,15 @@ group by t.delivery_id order by null + + + + diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.java b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.java index 7774621c8..978650871 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/reader/DeliveryDetailReader.java @@ -31,14 +31,14 @@ public class DeliveryDetailReader implements ExportReader { @Override public Long getCount(Wrapper query) { Page page = new Page(1, 1); - reportDeliverMapeer.getDetailsPage(page, query); + Long detailsPageCount = reportDeliverMapeer.getDetailsPageCount(query); Long detailsZeroPageCount = reportDeliverMapeer.getDetailsZeroPageCount(query); - return page.getTotal() + detailsZeroPageCount; + return detailsPageCount + detailsZeroPageCount; } @Override public List findList(Page page, Wrapper query) { - return asyncService.getdetailPages(page, query, Convert.toInt(page.getCurrent()), Convert.toInt(page.getSize())); + return asyncService.getdetailPagesExport(page, query, Convert.toInt(page.getCurrent()), Convert.toInt(page.getSize())); } } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/IAsyncService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IAsyncService.java index 02843e1f4..cb5480546 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/IAsyncService.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/IAsyncService.java @@ -21,4 +21,6 @@ public interface IAsyncService { List getDeliveryTrainLoadSacnByIds(List idBatch); List getdetailPages(IPage page, Wrapper queryWrapper, Integer current, Integer size); + + List getdetailPagesExport(IPage page, Wrapper queryWrapper, Integer current, Integer size); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java index 630a26f66..90bba2334 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/AsyncServiceImpl.java @@ -52,7 +52,7 @@ public class AsyncServiceImpl implements IAsyncService { }, asyncExecutor); future.thenAccept(list -> { - if(CollUtil.isNotEmpty(list)){ + if (CollUtil.isNotEmpty(list)) { // 获取组装的数据列表 List detailVo = pageMap.get(finalI); // 将查询数据添加到本地缓存 @@ -92,11 +92,11 @@ public class AsyncServiceImpl implements IAsyncService { countDownLatch.countDown(); } - @Override + @Override // @LogpmAsync("asyncExecutor") - public List getDeliveryTrainLoadSacnInvnByIds(List idBatch) { - return reportDeliverMapeer.getDeliveryTrainLoadSacnInvnByIds(idBatch); - } + public List getDeliveryTrainLoadSacnInvnByIds(List idBatch) { + return reportDeliverMapeer.getDeliveryTrainLoadSacnInvnByIds(idBatch); + } @Override // @LogpmAsync("asyncExecutor") @@ -105,8 +105,8 @@ public class AsyncServiceImpl implements IAsyncService { return reportDeliverMapeer.getDeliveryTrainLoadSacnByIds(idBatch); } - @Override - public List getdetailPages(IPage page, Wrapper queryWrapper, Integer current, Integer size) { + @Override + public List getdetailPages(IPage page, Wrapper queryWrapper, Integer current, Integer size) { List detailsPage = reportDeliverMapeer.getDetailsPage(page, queryWrapper); // 包件总数 long total = page.getTotal(); @@ -123,7 +123,7 @@ public class AsyncServiceImpl implements IAsyncService { int zeroSize = zeroTotal % size; long limitA = 0; long limitB = 0; - if(zeroSize == 0){ + if (zeroSize == 0) { zeroSize = size; } if (!NumberUtil.equals(zeroCurrent, 1)) { @@ -132,12 +132,50 @@ public class AsyncServiceImpl implements IAsyncService { } limitB = zeroSize; List zeroPage = reportDeliverMapeer.getDetailsZeroPage(limitA, limitB, queryWrapper); - if(CollUtil.isEmpty(detailsPage)){ + if (CollUtil.isEmpty(detailsPage)) { detailsPage = new ArrayList<>(); } detailsPage.addAll(zeroPage); } page.setTotal(allTotal); return detailsPage; - } + } + + @Override + public List getdetailPagesExport(IPage page, Wrapper queryWrapper, Integer current, Integer size) { + List detailsPage = reportDeliverMapeer.getDetailsPageExport(queryWrapper, (current - 1) * size, size); + // 包件总数 + long total = detailsPage.size(); + // 零件总数 + Long detailsZeroPageCount = reportDeliverMapeer.getDetailsZeroPageCount(queryWrapper); + long allTotal = total + detailsZeroPageCount; + // 包件没数据查零担 + int pageSize = current * size; + if (total < pageSize) { + // 剩余需要查询的数量 + int zeroTotal = Convert.toInt(pageSize - total); + double div = NumberUtil.div(zeroTotal, size.doubleValue()); + long zeroCurrent = (int) Math.ceil(div); + int zeroSize = zeroTotal % size; + long limitA = 0; + long limitB = 0; + if (zeroSize == 0) { + zeroSize = size; + } + if (!NumberUtil.equals(zeroCurrent, 1)) { + limitA = zeroSize + (zeroCurrent - 2) * size; + zeroSize = size; + } + limitB = zeroSize; + List zeroPage = reportDeliverMapeer.getDetailsZeroPage(limitA, limitB, queryWrapper); + if (CollUtil.isEmpty(detailsPage)) { + detailsPage = new ArrayList<>(); + } + detailsPage.addAll(zeroPage); + } + page.setTotal(allTotal); + return detailsPage; + } + + } From 0990fc8079140364475dd5381bef00a92b37aa12 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Thu, 29 Aug 2024 17:06:11 +0800 Subject: [PATCH 09/73] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/logpm/report/mapper/ReportDeliverMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml index 6c8fd701c..d44fe019a 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml @@ -368,7 +368,7 @@ WHEN lddl.kind = 1 THEN '自主配送' WHEN lddl.kind = 2 THEN - '自主配送' + '三方配送' ELSE '' END kind, lddl.vehicle_name vehicle_name, From ebd56352d23d9f31c75d7ac3b582e65d7212666c Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Thu, 29 Aug 2024 17:16:30 +0800 Subject: [PATCH 10/73] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/logpm/report/mapper/ReportBillLoadingMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.xml index 14f752c76..bae38a2c8 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportBillLoadingMapper.xml @@ -186,7 +186,7 @@ forklift_fee, add_value_fee, amountToFee, - createdTime created_time + created_time from (select obj.pickup_batch, lww.name as warehouse, lww.id as warehouse_id, @@ -223,7 +223,7 @@ fee.addValueFee add_value_fee, fee.collectPaymentFee + fee.transportFee + fee.storageFee + fee.forkliftFee + fee.addValueFee amountToFee, - obj.pick_up_time createdTime + obj.pick_up_time created_time from logpm_distrilbution_bill_lading obj left join logpm_warehouse_warehouse lww on lww.id = obj.warehouse_id left join logpm_distribution_stock_article ldsa on ldsa.id = obj.stock_article_id From 73e172462855da2c3ae893a02d2fb7e3cfd15ce2 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Thu, 29 Aug 2024 17:29:24 +0800 Subject: [PATCH 11/73] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E6=8C=87=E6=A0=87?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervise/mapper/ClassifyMapper.java | 2 + .../logpm/supervise/mapper/ClassifyMapper.xml | 4 ++ .../service/impl/ClassifyServiceImpl.java | 37 ++++++++++++------- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/mapper/ClassifyMapper.java b/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/mapper/ClassifyMapper.java index 68b565715..8bfe5793f 100644 --- a/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/mapper/ClassifyMapper.java +++ b/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/mapper/ClassifyMapper.java @@ -30,4 +30,6 @@ public interface ClassifyMapper extends BaseMapper { List selectAllClassifyList(@Param("pid") Long pid,@Param("list")List list); List exportList(@Param("param") ClassifyDTO classifyDTO); + + List findAll(); } diff --git a/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/mapper/ClassifyMapper.xml b/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/mapper/ClassifyMapper.xml index 7a55b6322..87352026f 100644 --- a/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/mapper/ClassifyMapper.xml +++ b/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/mapper/ClassifyMapper.xml @@ -111,6 +111,10 @@ order by create_time desc + diff --git a/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/service/impl/ClassifyServiceImpl.java b/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/service/impl/ClassifyServiceImpl.java index 8752d2a22..88483b939 100644 --- a/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/service/impl/ClassifyServiceImpl.java +++ b/blade-service/logpm-supervise/src/main/java/com/logpm/supervise/service/impl/ClassifyServiceImpl.java @@ -119,6 +119,10 @@ public class ClassifyServiceImpl extends BaseServiceImpl all = baseMapper.findAll(); + IPage pages = baseMapper.pageList(page, classifyDTO); List records = pages.getRecords(); @@ -143,22 +147,27 @@ public class ClassifyServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("classify_id", classifyId) - .eq("is_deleted", 0); - List list = pointsService.list(queryWrapper); - String pointStr = ""; - for (PointsEntity pointsEntity : list) { - if(StringUtil.isBlank(pointStr)){ - pointStr = pointStr + pointsEntity.getPoint(); - }else{ - pointStr = pointStr + "," + pointsEntity.getPoint(); + + ClassifyEntity classifyEntity =all.stream().filter(item -> item.getId().equals(pId1)).findFirst().orElse(null); + + if(classifyEntity!=null){ + record.setParentClassifyName(classifyEntity.getName()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("classify_id", classifyId) + .eq("is_deleted", 0); + List list = pointsService.list(queryWrapper); + String pointStr = ""; + for (PointsEntity pointsEntity : list) { + if(StringUtil.isBlank(pointStr)){ + pointStr = pointStr + pointsEntity.getPoint(); + }else{ + pointStr = pointStr + "," + pointsEntity.getPoint(); + } } + record.setPointStr(pointStr); + record.setPointsEntities(list); } - record.setPointStr(pointStr); - record.setPointsEntities(list); + } } From c92d10627e9be9627a9f92be5c442fecda25d56d Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Thu, 29 Aug 2024 18:02:02 +0800 Subject: [PATCH 12/73] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E6=A2=A6?= =?UTF-8?q?=E5=A4=A9=E5=9B=9E=E6=8E=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java b/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java index 084ab93f4..d0dc26255 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java @@ -351,7 +351,7 @@ public class NodeDataPushListener { entity.setResultContent(resBody); entity.setSendStatus(StrUtil.isEmpty(resultCode) ? "-1" : resultCode); } catch (Exception e) { - entity.setResultContent(resBody); + entity.setResultContent(e.getMessage()); entity.setSendStatus("-1"); } factoryNodePushService.save(entity); From fb3e8ab21732e62d5f54d202b0fbb17616b0b269 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Thu, 29 Aug 2024 18:04:46 +0800 Subject: [PATCH 13/73] =?UTF-8?q?feat(all):=20=E5=88=A0=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/logpm/factory/mt/controller/MtFactoryDataController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java index 8adbaa3f2..2c032bbf0 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java @@ -22,7 +22,6 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.google.gson.Gson; import com.logpm.factory.comfac.service.IAsyncDataService; import com.logpm.factory.comfac.service.IOrderStatusLogService; import com.logpm.factory.mt.dto.MtFactoryDataDTO; From 3dfe6a482e3390009279064e8e4b2b2b0e5cc248 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Thu, 29 Aug 2024 18:07:28 +0800 Subject: [PATCH 14/73] =?UTF-8?q?feat(all):=20=E5=88=A0=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logpm/factory/mt/controller/MtFactoryDataController.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java index 2c032bbf0..24a94bda1 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/controller/MtFactoryDataController.java @@ -41,7 +41,6 @@ import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -56,8 +55,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import static com.alibaba.druid.util.FnvHash.Constants.GSON; - /** * 梦天数据 控制器 * From 934680421a34ea9e00b8deca49db6bbeab1ba729 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Thu, 29 Aug 2024 18:28:56 +0800 Subject: [PATCH 15/73] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E6=A2=A6?= =?UTF-8?q?=E5=A4=A9=E5=9B=9E=E6=8E=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../factorydata/mengtian/mq/NodeDataPushListener.java | 10 +++++----- .../factorydata/mengtian/pros/MengTianProperties.java | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java b/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java index d0dc26255..036b4d83e 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/mq/NodeDataPushListener.java @@ -141,7 +141,7 @@ public class NodeDataPushListener { .packageCode(centralStkInVO.getPackageCode()) .type("收货") .build(); - sendFactory(s, "mt.poc.ht_yc_noms.CentralStkIn", mengTianProperties.getCentralStkInUrl(), entity); + sendFactory(s, mengTianProperties.getCentralStkInCode(), mengTianProperties.getCentralStkInUrl(), entity); } } } @@ -207,7 +207,7 @@ public class NodeDataPushListener { .packageCode(packageCodes) .type("确认收货") .build(); - sendFactory(s, "mt.poc.ht_yc_noms.CentralStkInConfirm", mengTianProperties.getCentralStkInConfirmUrl(), entity); + sendFactory(s, mengTianProperties.getCentralStkInConfirmCode(), mengTianProperties.getCentralStkInConfirmUrl(), entity); } } } @@ -260,7 +260,7 @@ public class NodeDataPushListener { .type("签收") .sendTaskId(signForVO.getSendTaskId()) .build(); - sendFactory(s, "mt.poc.ht_yc_noms.SignFor", mengTianProperties.getSignForUrl(), entity); + sendFactory(s, mengTianProperties.getSignForCode(), mengTianProperties.getSignForUrl(), entity); } } } @@ -320,7 +320,7 @@ public class NodeDataPushListener { .type("确认签收") .sendTaskId(confirmVO.getSendTaskId()) .build(); - sendFactory(s, "mt.poc.ht_yc_noms.SignForConfirm", mengTianProperties.getSignForConfirmUrl(), entity); + sendFactory(s, mengTianProperties.getSignForConfirmCode(), mengTianProperties.getSignForConfirmUrl(), entity); } } @@ -339,7 +339,7 @@ public class NodeDataPushListener { String resBody = ""; String resultCode = ""; try { - if(mengTianProperties.getEnable()){ + if (mengTianProperties.getEnable()) { HttpResponse execute = post.execute(); resBody = execute.body(); JSONObject entries = JSONUtil.parseObj(resBody); diff --git a/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/pros/MengTianProperties.java b/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/pros/MengTianProperties.java index 6a43b9aa4..3222ddbd2 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/pros/MengTianProperties.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/pros/MengTianProperties.java @@ -18,12 +18,16 @@ public class MengTianProperties { * 收货 url */ private String centralStkInUrl; + private String centralStkInCode; /** 确认收货 url */ private String centralStkInConfirmUrl; + private String centralStkInConfirmCode; /** 签收扫描 url */ private String signForUrl; + private String signForCode; /** 确认签收 url */ private String signForConfirmUrl; + private String signForConfirmCode; /** * 是否推送工厂 */ From 44fa3b1139b24b65d902a97e2a1ccb69d2896b00 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Fri, 30 Aug 2024 09:27:57 +0800 Subject: [PATCH 16/73] =?UTF-8?q?1.=E5=B9=B2=E7=BA=BFbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IDistributionStockArticleClient.java | 2 + .../feign/DistributionStockArticleClient.java | 10 +++ .../mapper/TrunklineCarsLoadMapper.xml | 2 + .../mapper/TrunklineCarsLoadScanMapper.xml | 2 +- .../impl/TrunklineCarsLoadServiceImpl.java | 32 +++++---- .../TrunklineWaybillTrackServiceImpl.java | 70 +++++++++---------- 6 files changed, 68 insertions(+), 50 deletions(-) diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java index df9c448e7..926d966f9 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java @@ -211,4 +211,6 @@ public interface IDistributionStockArticleClient { @GetMapping(API_PREFIX + "/findSignNumByWaybillNo") Integer findSignNumByWaybillNo(@RequestParam String waybillNo, @RequestParam Long destinationWarehouseId); + @GetMapping(API_PREFIX + "/addSignNum") + void addSignNum(@RequestParam Long orderId, @RequestParam Integer unloadNum); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java index 3d78aa64d..76c45f506 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java @@ -414,4 +414,14 @@ public class DistributionStockArticleClient implements IDistributionStockArticle return distributionStockArticleService.findSignNumByWaybillNo(waybillNo,destinationWarehouseId); } + @Override + public void addSignNum(Long orderId, Integer unloadNum) { + DistributionStockArticleEntity stockArticle = distributionStockArticleService.getById(orderId); + Integer signinQuantity = stockArticle.getSigninQuantity(); + DistributionStockArticleEntity updateEntity = new DistributionStockArticleEntity(); + updateEntity.setId(orderId); + updateEntity.setSigninQuantity(signinQuantity+unloadNum); + distributionStockArticleService.updateById(updateEntity); + } + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml index a9d626ec7..c2accde79 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml @@ -404,6 +404,8 @@ ltcl.cars_no carsNo, ltcl.carrier_name carrierName, ltcl.carrier_time carrierTime, + ltcl.driver_name driverName, + ltcl.driver_mobile driverMobile, ltcl.pay_method payMethod, ltcl.count_transport_cost countTransportCost, ltcl.replace_price replacePrice, 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 9b8e2f006..0455bf279 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 @@ -451,7 +451,7 @@ lww.consignee_mobile consigneeMobile, IFNULL(ltco.plan_num,0) AS planNum, sum(case when ltcls.scan_status != 1 then ltcls.num else 0 end) unloadNum, - sum( ltcls.num ) AS smallTota + IFNULL(sum( ltcls.num ),0) AS smallTotal from logpm_trunkline_cars_load_scan ltcls left join logpm_trunkline_cars_order ltco on ltco.order_code = ltcls.order_code and ltco.waybill_no = ltcls.waybill_no and ltco.load_id = ltcls.load_id and ltco.node_id = ltcls.warehouse_id left join logpm_distribution_stock_article ldsa on ldsa.order_code = ltcls.order_code and ldsa.warehouse_id = ltcls.from_warehouse_id diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index d4816a506..a33e10310 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -2958,10 +2958,13 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderPackageCodes = new ArrayList<>(); - orderPackageCodes.add(orderPackageCode); - String content = "包件在 " + warehouseName + " " + (StringUtil.isBlank(trayName) ? "扫码" : "托盘(" + trayName + ")") + " 装车, 车次号:"+loadCode+" ,配载计划目的仓 " + carsLoadScanEntity.getFinalNodeName() + ",数据来源仓库 " + fromWarehouseName; - packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseName, WorkNodeEnums.INITIAL_WAREHOUSE_LOADING.getCode(), content); + String loadType = carsLoadEntity.getLoadType(); + if(!"4".equals(loadType)){ + List orderPackageCodes = new ArrayList<>(); + orderPackageCodes.add(orderPackageCode); + String content = "包件在 " + warehouseName + " " + (StringUtil.isBlank(trayName) ? "扫码" : "托盘(" + trayName + ")") + " 装车, 车次号:"+loadCode+" ,配载计划目的仓 " + carsLoadScanEntity.getFinalNodeName() + ",数据来源仓库 " + fromWarehouseName; + packageTrackLogAsyncService.addPackageTrackLog(AuthUtil.getTenantId(), AuthUtil.getUserId(), Func.firstLong(AuthUtil.getDeptId()), AuthUtil.getNickName(), orderPackageCodes, warehouseId, warehouseName, WorkNodeEnums.INITIAL_WAREHOUSE_LOADING.getCode(), content); + } trunklineCarsLoadingLogService.savaLoadingLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode, orderPackageCode, 1, 1, isData, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark); @@ -4329,10 +4332,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl Date: Fri, 30 Aug 2024 11:38:13 +0800 Subject: [PATCH 17/73] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zbom/service/impl/ReceiptServiceImpl.java | 3 ++- .../comfac/service/impl/AsyncDataServiceImpl.java | 14 ++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/service/impl/ReceiptServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/service/impl/ReceiptServiceImpl.java index 5a84b31de..21c659e6b 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/service/impl/ReceiptServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-zbom/src/main/java/com/logpm/factorydata/zbom/service/impl/ReceiptServiceImpl.java @@ -27,6 +27,7 @@ import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.logpm.factorydata.base.feign.IFactoryDataBaseClient; import com.logpm.factorydata.base.vo.FactoryWarehouseBindVO; +import com.logpm.factorydata.enums.BrandEnums; import com.logpm.factorydata.feign.IFactoryDataClient; import com.logpm.factorydata.vo.SendMsg; import com.logpm.factorydata.zbom.entity.ZbCategoryContrastEntity; @@ -88,7 +89,7 @@ public class ReceiptServiceImpl extends BaseServiceImpl warehouseByBrandAndSiteName = baseClient.getWarehouseByBrandAndSiteName(zbReceiptDTO.getSenderName(), zbReceiptDTO.getSenderName()); + R warehouseByBrandAndSiteName = baseClient.getWarehouseByBrandAndSiteName(BrandEnums.ZB.getValue(), zbReceiptDTO.getSenderCity()); if (ObjectUtil.equal(HttpConstants.HTTP.HTTP_RESOURCE_CODE.SUCCESS_CODE, warehouseByBrandAndSiteName.getCode())) { FactoryWarehouseBindVO data = warehouseByBrandAndSiteName.getData(); if (ObjectUtil.isNotNull(data)) { diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/AsyncDataServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/AsyncDataServiceImpl.java index d70d6360a..b9ee80022 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/AsyncDataServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/AsyncDataServiceImpl.java @@ -96,6 +96,7 @@ public class AsyncDataServiceImpl implements IAsyncDataService { private final IAdvanceDetailClient advanceDetailClient; private final IServiceNumClient serviceNumClient; private final IDetailProductClient detailProductClient; + private final IFactoryDataBaseClient factoryDataBaseClient; /* pan */ private final IPanFactoryOrderService panFactoryOrderService; private final IPanPackageInfoService panPackageInfoService; @@ -128,7 +129,6 @@ public class AsyncDataServiceImpl implements IAsyncDataService { private final OuPaiProperties ouPaiProperties; - private final IFactoryDataBaseClient factoryDataBaseClient; private final IFactoryDataClient factoryDataClient; /** @@ -1489,10 +1489,16 @@ public class AsyncDataServiceImpl implements IAsyncDataService { private AdvanceEntity saveAdvanceInfor(ZbOrderPackageEntity serviceNumEntity, List zbOrderPackageEntityList) { Long orderId = serviceNumEntity.getId(); log.info("#########handlerDataToHt: 当前处理的订单id={}", orderId); - + Integer warehouseId = 54; // 查询订单对应的发货单 ZbReceiptEntity zbReceiptEntity = findZbReceiptEntityUseCacheById(serviceNumEntity.getReceiptId()); - + R r = factoryDataBaseClient.getWarehouseByBrandAndSiteName(BrandEnums.ZB.getValue(), zbReceiptEntity.getSenderCity()); + if(r.isSuccess()){ + FactoryWarehouseBindVO data = r.getData(); + if(ObjectUtil.isNotEmpty(data) && ObjectUtil.isNotEmpty(data.getOldWarehouseId())){ + warehouseId = Convert.toInt(data.getWarehouseId()); + } + } AdvanceEntity advanceEntity = findAdvanceEntityUseCacheByOrderSelfNumAndReceiptId(serviceNumEntity.getReceiptId(), serviceNumEntity.getPlatformOrderCode(), zbReceiptEntity.getDepartCode()); if (ObjectUtils.isNotNull(advanceEntity)) { return advanceEntity; @@ -1541,7 +1547,7 @@ public class AsyncDataServiceImpl implements IAsyncDataService { advanceEntity.setCarsNum(""); //派车单--snm 可以为空 advanceEntity.setDeleteTime(0); // 删除时间 advanceEntity.setWaybillNo("");//运单号 可以为空 - Integer warehouseId = 54; + advanceEntity.setWarehouseId(warehouseId); //导入人仓库id advanceEntity.setWaybillStatus(Integer.parseInt("1"));//开单状态:1=未开单,2=已开单 From d1f5fc4341136e043734f834f60bc0c9cffeb261 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Fri, 30 Aug 2024 12:20:55 +0800 Subject: [PATCH 18/73] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0=E4=B8=89=E6=96=B9?= =?UTF-8?q?=E9=85=8D=E9=80=81=E7=9A=84=E4=BB=B7=E6=A0=BC=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/DistributionDeliveryListExcel.java | 3 ++ .../DistributionDeliveryListServiceImpl.java | 52 +++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryListExcel.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryListExcel.java index 03040c59b..553b0ff1a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryListExcel.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryListExcel.java @@ -42,6 +42,9 @@ public class DistributionDeliveryListExcel implements Serializable { private static final long serialVersionUID = 1L; + + + private Long id; /** * 车次 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java index 530fe9499..f9367f528 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java @@ -307,6 +307,30 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl distributionDeliveryListEntities = baseMapper.selectDistributionDeliveryListPage(page, distributionDeliveryList); + // 获取集合中 kind =2 的id集合 + List ids = distributionDeliveryListEntities.stream().filter(item -> "2".equals(item.getKind())).map(DistributionDeliveryListEntity::getId).collect(Collectors.toList()); + + if(!ids.isEmpty()){ + // 关联查询所有的三方配送信息表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(DistributionDeliveryTripartiteEntity::getDeliveryId, ids); + List distributionDeliveryTripartiteEntities = distributionDeliveryTripartiteService.list(wrapper); + + for (DistributionDeliveryListEntity distributionDeliveryListEntity : distributionDeliveryListEntities) { + if(Objects.equals( "2",distributionDeliveryListEntity.getKind())){ + // 在集合 distributionDeliveryTripartiteEntities 中寻找 distributionDeliveryListEntity的ID相同的 + DistributionDeliveryTripartiteEntity tripartiteEntity = distributionDeliveryTripartiteEntities.stream().filter(item -> item.getDeliveryId().equals(distributionDeliveryListEntity.getId())).findFirst().orElse(null); + if(tripartiteEntity != null){ + // 保留2为小数 + if(tripartiteEntity.getDeliveryFee()!=null){ + distributionDeliveryListEntity.setPrice(tripartiteEntity.getDeliveryFee().setScale(2)); + } + + } + } + } + } + return page.setRecords(distributionDeliveryListEntities); } @@ -336,6 +360,34 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl distributionDeliveryListExcels = baseMapper.exportDistributionDeliveryList(distributionDeliveryList); + + + // 获取集合中 kind =2 的id集合 + List ids = distributionDeliveryListExcels.stream().filter(item -> "三方配送".equals(item.getKind())).map(DistributionDeliveryListExcel::getId).collect(Collectors.toList()); + + if(!ids.isEmpty()){ + // 关联查询所有的三方配送信息表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(DistributionDeliveryTripartiteEntity::getDeliveryId, ids); + List distributionDeliveryTripartiteEntities = distributionDeliveryTripartiteService.list(wrapper); + + for (DistributionDeliveryListExcel distributionDeliveryListEntity : distributionDeliveryListExcels) { + if(Objects.equals( "三方配送",distributionDeliveryListEntity.getKind())){ + // 在集合 distributionDeliveryTripartiteEntities 中寻找 distributionDeliveryListEntity的ID相同的 + DistributionDeliveryTripartiteEntity tripartiteEntity = distributionDeliveryTripartiteEntities.stream().filter(item -> item.getDeliveryId().equals(distributionDeliveryListEntity.getId())).findFirst().orElse(null); + if(tripartiteEntity != null){ + // 保留2为小数 + if(tripartiteEntity.getDeliveryFee()!=null){ + distributionDeliveryListEntity.setPrice(tripartiteEntity.getDeliveryFee().setScale(2)); + } + + } + } + } + } + + + return distributionDeliveryListExcels; } From c542cfa58287f5c73d0ee59cb02eb448e2b147fb Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Fri, 30 Aug 2024 15:55:44 +0800 Subject: [PATCH 19/73] =?UTF-8?q?=E8=87=AA=E6=8F=90BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DistrilbutionBillLadingServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java index f8ea3e3c3..7e579fa62 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java @@ -3752,7 +3752,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl ids = list.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList()); //查询包件 List distributionParcelListEntities = distributionParcelListService.listByIds(ids); - List packageIds = distributionParcelListEntities.stream().filter(f -> !OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(f.getOrderPackageLoadingStatus()) || !OrderPackageStatusConstant.yiqianshou.getValue().equals(f.getOrderPackageStatus())).map(DistributionParcelListEntity::getId).collect(Collectors.toList()); + List packageIds = distributionParcelListEntities.stream().filter(f -> !OrderPackageStatusConstant.yiqianshou.getValue().equals(f.getOrderPackageStatus())).map(DistributionParcelListEntity::getId).collect(Collectors.toList()); if (Func.isNotEmpty(packageIds)) { distributionParcelListService.update(new UpdateWrapper().lambda() .set(DistributionParcelListEntity::getOrderPackageReservationStatus, OrderPackageReservationStatusConstant.daiyuyue.getValue()) From 0a0f106a9af478904ab60a4c40e8358749f3f2b0 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Fri, 30 Aug 2024 16:12:54 +0800 Subject: [PATCH 20/73] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E8=80=81=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E6=8E=A8=E9=80=81=E5=8C=85=E4=BB=B6=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E8=BF=90=E5=8D=95=E4=BF=A1=E6=81=AF=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PanFactoryDataServiceImpl.java | 353 +++++++++--------- 1 file changed, 185 insertions(+), 168 deletions(-) diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java index 66a4a45ce..a54a06d4c 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java @@ -53,6 +53,8 @@ import org.springblade.common.constant.orderpackage.*; import org.springblade.common.exception.CustomerException; import org.springblade.common.utils.CommonUtil; import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.redis.lock.LockType; +import org.springblade.core.redis.lock.RedisLockClient; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.core.tool.utils.StringUtil; @@ -62,6 +64,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; +import java.util.concurrent.TimeUnit; @Slf4j @AllArgsConstructor @@ -110,6 +113,7 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { private final BladeRedis redis; + private final RedisLockClient redisLockClient; private final IRegionFeign regionFeign; private final IBasicdataBrandClient basicdataBrandClient; @@ -813,7 +817,9 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo); if(!Objects.isNull(warehouseWaybillEntity)){ entity.setWaybillId(warehouseWaybillEntity.getId()); - entity.setWaybillNumber(waybillNo); + }else{ + Long waybillId = saveWaybillEntity(waybillNo); + entity.setWaybillId(waybillId); } String brand = distributionStockArticleEntity.getBrand(); @@ -894,186 +900,197 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { } } - private void saveWaybillEntity(String waybillNo) { + private Long saveWaybillEntity(String waybillNo) { log.info("#################handleDataToPlatform.saveWaybillEntity: {}", waybillNo); if (StringUtil.isBlank(waybillNo)) { - return; + return null; } - if(redis.exists("dealwithWaybillNo:"+waybillNo)){ - log.info("###########saveWaybillEntity: 已有保存数据 waybillNo={}",waybillNo); - return; - } +// if (redis.exists("dealwithWaybillNo:" + waybillNo)) { +// log.info("###########saveWaybillEntity: 已有保存数据 waybillNo={}", waybillNo); +// return waybillId; +// } - //通过运单号先去查询新系统是否存在这个运单号 - WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo); - log.info("#################handleDataToPlatform.warehouseWaybill: {}", warehouseWaybill); - - if (Objects.isNull(warehouseWaybill)) { - redis.setEx("dealwithWaybillNo:"+waybillNo,waybillNo,30L); - //如果新系统中不存在这个运单,那么就去查询老系统的运单数据 - WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNo); - log.info("#################handleDataToPlatform.wayBillEntity: {}", wayBillEntity); - if (Objects.isNull(wayBillEntity)) { - log.warn("##############saveWaybillEntity: 老系统中未找到对应运单waybillNo={}", waybillNo); - throw new CustomerException("老系统中未找到对应运单"); - } - String startSite = wayBillEntity.getStartSite();//始发仓名称 - BasicdataWarehouseEntity starthouse = basicdataWarehouseClient.findByName(startSite); - String warehouseName = wayBillEntity.getWarehouseName();//目的仓 - BasicdataWarehouseEntity endhouse = basicdataWarehouseClient.findByName(warehouseName); - Integer number = wayBillEntity.getNumber();//运单总数量 - String packname = wayBillEntity.getPackname(); - String agent = wayBillEntity.getAgent(); - - warehouseWaybill = new WarehouseWaybillEntity(); - warehouseWaybill.setTenantId(TenantNum.HUITONGCODE); - warehouseWaybill.setCreateUser(1714696768639311873L); - warehouseWaybill.setUpdateUser(1714696768639311873L); - warehouseWaybill.setCreateDept(1649331096241836033L); - warehouseWaybill.setWaybillNo(waybillNo); - warehouseWaybill.setDestinationWarehouseName(warehouseName); - warehouseWaybill.setDestinationWarehouseId(Objects.isNull(endhouse) ? null : endhouse.getId()); - warehouseWaybill.setDepartureWarehouseName(startSite); - warehouseWaybill.setDepartureWarehouseId(Objects.isNull(starthouse) ? null : starthouse.getId()); - warehouseWaybill.setCustomerTrain(wayBillEntity.getCarNo()); - warehouseWaybill.setBrand(wayBillEntity.getBrand()); - String sendCompany = wayBillEntity.getSendCompany();//发货单位 - String takeCompany = wayBillEntity.getTakeCompany();//收货单位 - BasicdataClientEntity sendClient = basicdataClientClient.findByName(sendCompany); - BasicdataClientEntity takeClient = basicdataClientClient.findByName(takeCompany); - if (!Objects.isNull(sendClient)) { - Long clientEntityId = sendClient.getId();//基础客户 - warehouseWaybill.setShipperId(clientEntityId); - } - if (!Objects.isNull(takeClient)) { - Long clientEntityId = takeClient.getId();//基础客户 - BasicdataStoreBusinessEntity basicdataStoreBusinessEntity = basicdataStoreBusinessClient.findByClientIdAndTypeService(clientEntityId, 3); - if (!Objects.isNull(basicdataStoreBusinessEntity)) { - warehouseWaybill.setServiceType(Integer.parseInt(basicdataStoreBusinessEntity.getMold())); + String lockKey = "dealwithWaybillNo:" + waybillNo; + Long aLong = null; + boolean flag = false; + try { + flag = redisLockClient.tryLock(lockKey, LockType.FAIR, 20000, 30000, TimeUnit.MILLISECONDS); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + if(flag){ + //通过运单号先去查询新系统是否存在这个运单号 + WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo); + log.info("#################handleDataToPlatform.warehouseWaybill: {}", warehouseWaybill); + + if (Objects.isNull(warehouseWaybill)) { + redis.setEx("dealwithWaybillNo:" + waybillNo, waybillNo, 30L); + //如果新系统中不存在这个运单,那么就去查询老系统的运单数据 + WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNo); + log.info("#################handleDataToPlatform.wayBillEntity: {}", wayBillEntity); + if (Objects.isNull(wayBillEntity)) { + log.warn("##############saveWaybillEntity: 老系统中未找到对应运单waybillNo={}", waybillNo); + throw new CustomerException("老系统中未找到对应运单"); } - warehouseWaybill.setConsigneeId(clientEntityId); - } - warehouseWaybill.setShipper(sendCompany); - warehouseWaybill.setShipperName(wayBillEntity.getSendPerson()); - warehouseWaybill.setShipperMobile(wayBillEntity.getSendMobile()); - warehouseWaybill.setShipperAddress(wayBillEntity.getSendAddress()); - warehouseWaybill.setConsignee(takeCompany); - warehouseWaybill.setConsigneeName(wayBillEntity.getTakePerson()); - warehouseWaybill.setConsigneeMobile(wayBillEntity.getTakeMobile()); - warehouseWaybill.setConsigneeAddress(wayBillEntity.getTakeAddress()); + String startSite = wayBillEntity.getStartSite();//始发仓名称 + BasicdataWarehouseEntity starthouse = basicdataWarehouseClient.findByName(startSite); + String warehouseName = wayBillEntity.getWarehouseName();//目的仓 + BasicdataWarehouseEntity endhouse = basicdataWarehouseClient.findByName(warehouseName); + Integer number = wayBillEntity.getNumber();//运单总数量 + String packname = wayBillEntity.getPackname(); + String agent = wayBillEntity.getAgent(); + + warehouseWaybill = new WarehouseWaybillEntity(); + warehouseWaybill.setTenantId(TenantNum.HUITONGCODE); + warehouseWaybill.setCreateUser(1714696768639311873L); + warehouseWaybill.setUpdateUser(1714696768639311873L); + warehouseWaybill.setCreateDept(1649331096241836033L); + warehouseWaybill.setWaybillNo(waybillNo); + warehouseWaybill.setDestinationWarehouseName(warehouseName); + warehouseWaybill.setDestinationWarehouseId(Objects.isNull(endhouse) ? null : endhouse.getId()); + warehouseWaybill.setDepartureWarehouseName(startSite); + warehouseWaybill.setDepartureWarehouseId(Objects.isNull(starthouse) ? null : starthouse.getId()); + warehouseWaybill.setCustomerTrain(wayBillEntity.getCarNo()); + warehouseWaybill.setBrand(wayBillEntity.getBrand()); + String sendCompany = wayBillEntity.getSendCompany();//发货单位 + String takeCompany = wayBillEntity.getTakeCompany();//收货单位 + BasicdataClientEntity sendClient = basicdataClientClient.findByName(sendCompany); + BasicdataClientEntity takeClient = basicdataClientClient.findByName(takeCompany); + if (!Objects.isNull(sendClient)) { + Long clientEntityId = sendClient.getId();//基础客户 + warehouseWaybill.setShipperId(clientEntityId); + } + if (!Objects.isNull(takeClient)) { + Long clientEntityId = takeClient.getId();//基础客户 + BasicdataStoreBusinessEntity basicdataStoreBusinessEntity = basicdataStoreBusinessClient.findByClientIdAndTypeService(clientEntityId, 3); + if (!Objects.isNull(basicdataStoreBusinessEntity)) { + warehouseWaybill.setServiceType(Integer.parseInt(basicdataStoreBusinessEntity.getMold())); + } + warehouseWaybill.setConsigneeId(clientEntityId); + } + warehouseWaybill.setShipper(sendCompany); + warehouseWaybill.setShipperName(wayBillEntity.getSendPerson()); + warehouseWaybill.setShipperMobile(wayBillEntity.getSendMobile()); + warehouseWaybill.setShipperAddress(wayBillEntity.getSendAddress()); + warehouseWaybill.setConsignee(takeCompany); + warehouseWaybill.setConsigneeName(wayBillEntity.getTakePerson()); + warehouseWaybill.setConsigneeMobile(wayBillEntity.getTakeMobile()); + warehouseWaybill.setConsigneeAddress(wayBillEntity.getTakeAddress()); // String arriveSite = wayBillEntity.getArriveSite(); - Integer arriveSiteId = wayBillEntity.getArriveSiteId(); - String code = wayBillClient.findAreaCodeByArriveSiteId(arriveSiteId); + Integer arriveSiteId = wayBillEntity.getArriveSiteId(); + String code = wayBillClient.findAreaCodeByArriveSiteId(arriveSiteId); // String code = regionFeign.getCode(arriveSite); - warehouseWaybill.setDestinationCode(code); - warehouseWaybill.setDestination(wayBillEntity.getArriveSite()); - warehouseWaybill.setGoodsName(packname); - warehouseWaybill.setTotalCount(number); - warehouseWaybill.setStockCount(1); - warehouseWaybill.setWaybillType(1); - warehouseWaybill.setTotalWeight(wayBillEntity.getWeight()); - warehouseWaybill.setTotalVolume(wayBillEntity.getVolume()); - warehouseWaybill.setDeliveryMethod(wayBillEntity.getSendType()); - warehouseWaybill.setUrgency(wayBillEntity.getUrgency()); - warehouseWaybill.setReceiptCount(wayBillEntity.getReceiptNum()); - warehouseWaybill.setReceiptRequirement(wayBillEntity.getReceiptAsk()); - //--------------2023-07-28------------- - warehouseWaybill.setCollectPay(wayBillEntity.getDPay()); - warehouseWaybill.setReceivedCollectPay(BigDecimal.ZERO); - warehouseWaybill.setReplacePrice(wayBillEntity.getReplacePrice()); - warehouseWaybill.setReceivedReplacePrice(BigDecimal.ZERO); - warehouseWaybill.setReceivedTotalPrice(BigDecimal.ZERO); - warehouseWaybill.setWaybillType(wayBillEntity.getType()); - warehouseWaybill.setReceivedStatus(0); - - warehouseWaybill.setTotalFreight(wayBillEntity.getFreight()); - warehouseWaybill.setDeliveryFee(wayBillEntity.getDeliveryCost()); - warehouseWaybill.setPickupFee(wayBillEntity.getTakeCost()); - warehouseWaybill.setWarehouseManagementFee(wayBillEntity.getWarehouseManagementFee()); - warehouseWaybill.setStorageFee(wayBillEntity.getWarehousingFee()); - warehouseWaybill.setHandlingFee(wayBillEntity.getPretendCost()); - warehouseWaybill.setOtherFee(wayBillEntity.getOtherFee()); - warehouseWaybill.setInsuranceFee(wayBillEntity.getPriceProtectionFee()); - warehouseWaybill.setClaimingValue(wayBillEntity.getValue()); - warehouseWaybill.setPayType(wayBillEntity.getPayType()+""); - warehouseWaybill.setPayWay(wayBillEntity.getPaymentMethod()+""); - warehouseWaybill.setXPay(wayBillEntity.getXPay()); - warehouseWaybill.setDPay(wayBillEntity.getDPay()); - warehouseWaybill.setHPay(wayBillEntity.getHPay()); - warehouseWaybill.setYPay(wayBillEntity.getYPay()); - warehouseWaybill.setThirdOperationFee(wayBillEntity.getThreeHandleFee()); - warehouseWaybill.setDeliveryWay(wayBillEntity.getSendType()+""); - warehouseWaybill.setUrgency(wayBillEntity.getUrgency()+""); - warehouseWaybill.setReceipt(wayBillEntity.getReceiptAsk()); - warehouseWaybill.setReceiptNum(wayBillEntity.getReceiptNum()); - warehouseWaybill.setTransportType(wayBillEntity.getShippingType()+""); - warehouseWaybill.setRebate(wayBillEntity.getRebate()); - - BasicdataClientEntity agentClient = basicdataClientClient.findByName(agent); - if (!Objects.isNull(agentClient)) { - Long clientEntityId = agentClient.getId();//基础客户 - warehouseWaybill.setAgentId(clientEntityId); - } - Date date = new Date(); - warehouseWaybill.setAgent(agent); - warehouseWaybill.setDocumentMakingTime(wayBillEntity.getPreparationTime()); - warehouseWaybill.setRemark(wayBillEntity.getMsg()); - warehouseWaybill.setBatchNo(wayBillEntity.getStartCarsNo()); - warehouseWaybill.setFreezeStatus(0); - warehouseWaybill.setStatus(0); - warehouseWaybill.setIsDeleted(0); - warehouseWaybill.setCreateTime(date); - warehouseWaybill.setUpdateTime(date); - Long aLong = warehouseWaybillClient.addEnntity(warehouseWaybill); - if(aLong != 0){ - - List desList = waybillDesClient.getDesList(waybillNo); - List warehouseWayBillDetails = new ArrayList<>(); - for (WaybillDesEntity waybillDesEntity : desList) { - WarehouseWayBillDetail warehouseWayBillDetail = new WarehouseWayBillDetail(); - warehouseWayBillDetail.setCreateUser(1714696768639311873L); - warehouseWayBillDetail.setUpdateUser(1714696768639311873L); - warehouseWayBillDetail.setCreateDept(1649331096241836033L); - warehouseWayBillDetail.setWaybillId(aLong); - warehouseWayBillDetail.setWaybillNo(waybillNo); - String goodsName = waybillDesEntity.getName(); - BasicdataCategoryEntity categoryEntity = categoryClient.findByName(goodsName); - if(Objects.isNull(categoryEntity)){ - categoryEntity = new BasicdataCategoryEntity(); - categoryEntity.setName(goodsName); - categoryEntity.setType(1); - categoryEntity.setTenantId(TenantNum.HUITONGCODE); - categoryEntity.setCreateUser(1714696768639311873L); - categoryEntity.setUpdateUser(1714696768639311873L); - categoryEntity.setCreateDept(1649331096241836033L); - Long categoryId = categoryClient.addReturnId(categoryEntity); - warehouseWayBillDetail.setProductId(categoryId); - }else{ - warehouseWayBillDetail.setProductId(categoryEntity.getId()); + warehouseWaybill.setDestinationCode(code); + warehouseWaybill.setDestination(wayBillEntity.getArriveSite()); + warehouseWaybill.setGoodsName(packname); + warehouseWaybill.setTotalCount(number); + warehouseWaybill.setStockCount(1); + warehouseWaybill.setWaybillType(1); + warehouseWaybill.setTotalWeight(wayBillEntity.getWeight()); + warehouseWaybill.setTotalVolume(wayBillEntity.getVolume()); + warehouseWaybill.setDeliveryMethod(wayBillEntity.getSendType()); + warehouseWaybill.setUrgency(wayBillEntity.getUrgency()); + warehouseWaybill.setReceiptCount(wayBillEntity.getReceiptNum()); + warehouseWaybill.setReceiptRequirement(wayBillEntity.getReceiptAsk()); + //--------------2023-07-28------------- + warehouseWaybill.setCollectPay(wayBillEntity.getDPay()); + warehouseWaybill.setReceivedCollectPay(BigDecimal.ZERO); + warehouseWaybill.setReplacePrice(wayBillEntity.getReplacePrice()); + warehouseWaybill.setReceivedReplacePrice(BigDecimal.ZERO); + warehouseWaybill.setReceivedTotalPrice(BigDecimal.ZERO); + warehouseWaybill.setWaybillType(wayBillEntity.getType()); + warehouseWaybill.setReceivedStatus(0); + + warehouseWaybill.setTotalFreight(wayBillEntity.getFreight()); + warehouseWaybill.setDeliveryFee(wayBillEntity.getDeliveryCost()); + warehouseWaybill.setPickupFee(wayBillEntity.getTakeCost()); + warehouseWaybill.setWarehouseManagementFee(wayBillEntity.getWarehouseManagementFee()); + warehouseWaybill.setStorageFee(wayBillEntity.getWarehousingFee()); + warehouseWaybill.setHandlingFee(wayBillEntity.getPretendCost()); + warehouseWaybill.setOtherFee(wayBillEntity.getOtherFee()); + warehouseWaybill.setInsuranceFee(wayBillEntity.getPriceProtectionFee()); + warehouseWaybill.setClaimingValue(wayBillEntity.getValue()); + warehouseWaybill.setPayType(wayBillEntity.getPayType() + ""); + warehouseWaybill.setPayWay(wayBillEntity.getPaymentMethod() + ""); + warehouseWaybill.setXPay(wayBillEntity.getXPay()); + warehouseWaybill.setDPay(wayBillEntity.getDPay()); + warehouseWaybill.setHPay(wayBillEntity.getHPay()); + warehouseWaybill.setYPay(wayBillEntity.getYPay()); + warehouseWaybill.setThirdOperationFee(wayBillEntity.getThreeHandleFee()); + warehouseWaybill.setDeliveryWay(wayBillEntity.getSendType() + ""); + warehouseWaybill.setUrgency(wayBillEntity.getUrgency() + ""); + warehouseWaybill.setReceipt(wayBillEntity.getReceiptAsk()); + warehouseWaybill.setReceiptNum(wayBillEntity.getReceiptNum()); + warehouseWaybill.setTransportType(wayBillEntity.getShippingType() + ""); + warehouseWaybill.setRebate(wayBillEntity.getRebate()); + + BasicdataClientEntity agentClient = basicdataClientClient.findByName(agent); + if (!Objects.isNull(agentClient)) { + Long clientEntityId = agentClient.getId();//基础客户 + warehouseWaybill.setAgentId(clientEntityId); + } + Date date = new Date(); + warehouseWaybill.setAgent(agent); + warehouseWaybill.setDocumentMakingTime(wayBillEntity.getPreparationTime()); + warehouseWaybill.setRemark(wayBillEntity.getMsg()); + warehouseWaybill.setBatchNo(wayBillEntity.getStartCarsNo()); + warehouseWaybill.setFreezeStatus(0); + warehouseWaybill.setStatus(0); + warehouseWaybill.setIsDeleted(0); + warehouseWaybill.setCreateTime(date); + warehouseWaybill.setUpdateTime(date); + aLong = warehouseWaybillClient.addEnntity(warehouseWaybill); + if (aLong != 0) { + redis.setEx("dealwithWaybillNoId:" + waybillNo,aLong, 30L); + List desList = waybillDesClient.getDesList(waybillNo); + List warehouseWayBillDetails = new ArrayList<>(); + for (WaybillDesEntity waybillDesEntity : desList) { + WarehouseWayBillDetail warehouseWayBillDetail = new WarehouseWayBillDetail(); + warehouseWayBillDetail.setCreateUser(1714696768639311873L); + warehouseWayBillDetail.setUpdateUser(1714696768639311873L); + warehouseWayBillDetail.setCreateDept(1649331096241836033L); + warehouseWayBillDetail.setWaybillId(aLong); + warehouseWayBillDetail.setWaybillNo(waybillNo); + String goodsName = waybillDesEntity.getName(); + BasicdataCategoryEntity categoryEntity = categoryClient.findByName(goodsName); + if (Objects.isNull(categoryEntity)) { + categoryEntity = new BasicdataCategoryEntity(); + categoryEntity.setName(goodsName); + categoryEntity.setType(1); + categoryEntity.setTenantId(TenantNum.HUITONGCODE); + categoryEntity.setCreateUser(1714696768639311873L); + categoryEntity.setUpdateUser(1714696768639311873L); + categoryEntity.setCreateDept(1649331096241836033L); + Long categoryId = categoryClient.addReturnId(categoryEntity); + warehouseWayBillDetail.setProductId(categoryId); + } else { + warehouseWayBillDetail.setProductId(categoryEntity.getId()); + } + warehouseWayBillDetail.setProductName(goodsName); + warehouseWayBillDetail.setNum(waybillDesEntity.getNum()); + warehouseWayBillDetail.setPrice(waybillDesEntity.getPrice()); + warehouseWayBillDetail.setVolume(waybillDesEntity.getVolume()); + warehouseWayBillDetail.setWeight(waybillDesEntity.getWeight()); + warehouseWayBillDetail.setSubtotalFreight(waybillDesEntity.getTotalDesPrice()); + warehouseWayBillDetail.setChargeType(waybillDesEntity.getPic()); + warehouseWayBillDetails.add(warehouseWayBillDetail); } - warehouseWayBillDetail.setProductName(goodsName); - warehouseWayBillDetail.setNum(waybillDesEntity.getNum()); - warehouseWayBillDetail.setPrice(waybillDesEntity.getPrice()); - warehouseWayBillDetail.setVolume(waybillDesEntity.getVolume()); - warehouseWayBillDetail.setWeight(waybillDesEntity.getWeight()); - warehouseWayBillDetail.setSubtotalFreight(waybillDesEntity.getTotalDesPrice()); - warehouseWayBillDetail.setChargeType(waybillDesEntity.getPic()); - warehouseWayBillDetails.add(warehouseWayBillDetail); + warehouseWaybillDetailClient.addList(warehouseWayBillDetails); } - warehouseWaybillDetailClient.addList(warehouseWayBillDetails); - } - } else { - warehouseWaybill.setStockCount(warehouseWaybill.getStockCount() + 1); - warehouseWaybill.setUpdateTime(new Date()); - warehouseWaybillClient.updateEntity(warehouseWaybill); + } else { + warehouseWaybill.setStockCount(warehouseWaybill.getStockCount() + 1); + warehouseWaybill.setUpdateTime(new Date()); + warehouseWaybillClient.updateEntity(warehouseWaybill); + aLong = warehouseWaybill.getId(); + } + //暂存单与运单的关联 + saveAdvanceData(warehouseWaybill); + redisLockClient.unLock(lockKey, LockType.FAIR); } - - //暂存单与运单的关联 - saveAdvanceData(warehouseWaybill); - + return aLong; } private void saveAdvanceData(WarehouseWaybillEntity warehouseWaybill) { From 7417f8ac155c432d8295aeca850d3832114b12a2 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Sat, 31 Aug 2024 16:21:53 +0800 Subject: [PATCH 21/73] =?UTF-8?q?1.=E5=B9=B2=E7=BA=BFbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/IDistributionParcelListClient.java | 5 + .../com/logpm/trunkline/dto/LoadCarsDTO.java | 1 + .../logpm/trunkline/dto/ZeroPackageDTO.java | 15 +++ .../entity/TrunklineScanZeroDetailEntity.java | 51 ++++++++ .../logpm/trunkline/vo/LoadZeroListVO.java | 5 + .../com/logpm/trunkline/vo/ZeroPackageVO.java | 15 +++ .../feign/DistributionParcelListClient.java | 14 ++ .../mapper/DistributionParcelListMapper.java | 3 + .../mapper/DistributionParcelListMapper.xml | 11 ++ .../IDistributionParcelListService.java | 3 + .../DistributionParcelListServiceImpl.java | 20 +-- .../trunkline/api/CarsLoadApiController.java | 6 +- .../mapper/TrunklineScanZeroDetailMapper.java | 12 ++ .../service/ITrunklineCarsLoadService.java | 3 +- .../ITrunklineScanZeroDetailService.java | 7 + .../service/impl/OpenOrderServiceImpl.java | 5 + .../impl/TrunklineCarsLoadServiceImpl.java | 120 +++++++++++++++++- .../TrunklineScanZeroDetailServiceImpl.java | 15 +++ 18 files changed, 291 insertions(+), 20 deletions(-) create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ZeroPackageDTO.java create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineScanZeroDetailEntity.java create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java index b4d2e6835..5cb1f2b4d 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java @@ -16,6 +16,7 @@ */ package com.logpm.distribution.feign; +import com.alibaba.fastjson.JSONObject; import com.logpm.distribution.dto.FindParamterDTO; import com.logpm.distribution.dto.OrderPackageDTO; import com.logpm.distribution.entity.DistributionParcelListEntity; @@ -211,6 +212,10 @@ public interface IDistributionParcelListClient { @PostMapping(API_PREFIX + "/clearPallet") void clearPallet(@RequestBody List orderPackageIdList); + @GetMapping(API_PREFIX + "/findPackageGoodsListByWaybillNo") + List findPackageGoodsListByWaybillNo(@RequestParam String waybillNo); + @GetMapping(API_PREFIX + "/findListByStockArticleId") + List findListByStockArticleId(@RequestParam Long articleId); } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java index 8409a7f32..ba1b057c7 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java @@ -61,6 +61,7 @@ public class LoadCarsDTO implements Serializable { private String orderPackageCode; private List productInfoList = new ArrayList<>(); + private List zeroPackageList = new ArrayList<>(); private String goodsName; diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ZeroPackageDTO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ZeroPackageDTO.java new file mode 100644 index 000000000..4acac8b3e --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ZeroPackageDTO.java @@ -0,0 +1,15 @@ +package com.logpm.trunkline.dto; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ZeroPackageDTO implements Serializable { + + private Long packageId; + private Long goodsId; + private String goodsName;//品类名称 + private Integer enterNum;//装车数量 + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineScanZeroDetailEntity.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineScanZeroDetailEntity.java new file mode 100644 index 000000000..e1b837ef8 --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineScanZeroDetailEntity.java @@ -0,0 +1,51 @@ +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_scan_zero_detail") +@ApiModel(value = "TrunklineScanZeroDetail对象", description = "装车扫描零担明细表") +@EqualsAndHashCode(callSuper = true) +public class TrunklineScanZeroDetailEntity 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 ; + /** scanId */ + @ApiModelProperty(name = "装车扫描id",notes = "") + private Long scanId ; + /** packageId */ + @ApiModelProperty(name = "包件id",notes = "") + private Long packageId ; + /** goodsId */ + @ApiModelProperty(name = "品类id",notes = "") + private Long goodsId ; + /** goodsName */ + @ApiModelProperty(name = "品类名称",notes = "") + private String goodsName ; + /** loadingNum */ + @ApiModelProperty(name = "装车数量",notes = "") + private Integer loadingNum ; + /** unloadNum */ + @ApiModelProperty(name = "卸车数量",notes = "") + private Integer unloadNum ; + + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadZeroListVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadZeroListVO.java index c07d2669a..d521f7abf 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadZeroListVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadZeroListVO.java @@ -3,6 +3,8 @@ package com.logpm.trunkline.vo; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; @Data public class LoadZeroListVO implements Serializable { @@ -12,4 +14,7 @@ public class LoadZeroListVO implements Serializable { private Integer planNum;//计划装车件数 private Integer loadingNum;//已装车件数 private Integer unloadingNum;//已卸车件数 + + private List zeroPackageList = new ArrayList<>(); + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java new file mode 100644 index 000000000..51e9df223 --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java @@ -0,0 +1,15 @@ +package com.logpm.trunkline.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ZeroPackageVO implements Serializable { + + private Long packageId; + private Long goodsId; + private String goodsName;//品类名称 + private Integer stockNum;//品类在库件数 + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java index 816f5d8bc..abb6d2ecf 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java @@ -18,6 +18,7 @@ package com.logpm.distribution.feign; import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -502,4 +503,17 @@ public class DistributionParcelListClient implements IDistributionParcelListClie public void clearPallet(List orderPackageIdList) { distributionParcelListService.clearPalletByIds(orderPackageIdList); } + + @Override + public List findPackageGoodsListByWaybillNo(String waybillNo) { + return distributionParcelListService.findPackageGoodsListByWaybillNo(waybillNo); + } + + @Override + public List findListByStockArticleId(Long articleId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("stock_article_id",articleId); + + return distributionParcelListService.list(queryWrapper); + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java index a0bff054b..98d024307 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java @@ -16,6 +16,7 @@ */ package com.logpm.distribution.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.distribution.dto.DistributionParcelListDTO; @@ -296,4 +297,6 @@ public interface DistributionParcelListMapper extends BaseMapper parcelListIdList, @Param("orderCode") String orderCode); void clearAllocationByIds(@Param("clearTrayList") List clearTrayList); + + List findPackageGoodsListByWaybillNo(@Param("waybillNo") String waybillNo); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml index 78c93bb8e..dabe84761 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml @@ -1874,4 +1874,15 @@ + + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java index 3f363a7e2..a9d902ce7 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java @@ -16,6 +16,7 @@ */ package com.logpm.distribution.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.distribution.dto.app.StockupDTO; import com.logpm.distribution.entity.DistributionParcelListEntity; @@ -255,4 +256,6 @@ public interface IDistributionParcelListService extends BaseService clearTrayList); + List findPackageGoodsListByWaybillNo(String waybillNo); + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java index dd02ac449..a45ee4d5a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java @@ -32,23 +32,12 @@ import com.logpm.basicdata.feign.IBasicdataClientClient; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.distribution.dto.DistributionParcelListDTO; import com.logpm.distribution.dto.app.StockupDTO; -import com.logpm.distribution.entity.DistributionParcelDetailsEntity; -import com.logpm.distribution.entity.DistributionParcelListEntity; -import com.logpm.distribution.entity.DistributionParcelNumberEntity; -import com.logpm.distribution.entity.DistributionReservationZeroPackageEntity; -import com.logpm.distribution.entity.DistributionStockArticleEntity; -import com.logpm.distribution.entity.DistributionStockListEntity; -import com.logpm.distribution.entity.DistributionStockListInfoEntity; -import com.logpm.distribution.entity.DistrilbutionBillPackageEntity; +import com.logpm.distribution.entity.*; import com.logpm.distribution.excel.DistributionParcelListExcel; import com.logpm.distribution.mapper.DistributionParcelListMapper; import com.logpm.distribution.mapper.DistributionStockArticleMapper; import com.logpm.distribution.service.*; -import com.logpm.distribution.vo.DistributionParcelListBaseVO; -import com.logpm.distribution.vo.DistributionParcelListNodeVO; -import com.logpm.distribution.vo.DistributionParcelListVO; -import com.logpm.distribution.vo.DistributionParcelListZeroVO; -import com.logpm.distribution.vo.PackageStockupVO; +import com.logpm.distribution.vo.*; import com.logpm.trunkline.feign.ITrunklinePackageTrackLogClient; import com.logpm.warehouse.entity.WarehouseUpdownGoodsEntity; import com.logpm.warehouse.entity.WarehouseWaybillEntity; @@ -1360,6 +1349,11 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl findPackageGoodsListByWaybillNo(String waybillNo) { + return baseMapper.findPackageGoodsListByWaybillNo(waybillNo); + } + private JSONObject handleLogJSONObject(BasicdataWarehouseEntity warehouse, BladeUser user, String orderPackageCode, String content, Integer node) { JSONObject trunklinePackageTrackLog = new JSONObject(); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java index 6dc0915ea..b85435e87 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java @@ -6,6 +6,7 @@ import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.trunkline.dto.LoadCarsDTO; import com.logpm.trunkline.dto.LoadingPackageDTO; import com.logpm.trunkline.dto.LoadingZeroDTO; +import com.logpm.trunkline.dto.ZeroPackageDTO; import com.logpm.trunkline.service.ITrunklineCarsLoadService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -420,8 +421,7 @@ public class CarsLoadApiController { String trayCode = loadCarsDTO.getTrayCode(); Integer enterNum = loadCarsDTO.getEnterNum(); String orderCode = loadCarsDTO.getOrderCode(); - -// List productInfoList = loadCarsDTO.getProductInfoList(); + List zeroPackageList = loadCarsDTO.getZeroPackageList(); try{ //当前登录人选择的仓库 @@ -457,7 +457,7 @@ public class CarsLoadApiController { // return R.fail(405,"零担品类信息为空"); // } - return carsLoadService.loadingZero(loadId,myCurrentWarehouse.getId(),waybillNo,orderCode,trayCode,enterNum,"正常装车"); + return carsLoadService.loadingZero(loadId,myCurrentWarehouse.getId(),waybillNo,orderCode,trayCode,enterNum,"正常装车",zeroPackageList); }catch (CustomerException e){ log.error(e.message,e); return R.fail(e.code,e.message); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java new file mode 100644 index 000000000..b9881f419 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java @@ -0,0 +1,12 @@ +package com.logpm.trunkline.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; +import org.mapstruct.Mapper; + +@Mapper +public interface TrunklineScanZeroDetailMapper extends BaseMapper { + + + +} 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 0c29aa26a..6d5697895 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 @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.trunkline.dto.BatchUnloadDTO; import com.logpm.trunkline.dto.LoadCarsDTO; import com.logpm.trunkline.dto.TrunklineCarsLoadDTO; +import com.logpm.trunkline.dto.ZeroPackageDTO; import com.logpm.trunkline.entity.TrunklineCarsLoadEntity; import com.logpm.trunkline.vo.LoadingDetailExportVO; import com.logpm.trunkline.vo.TripartiteTransferVO; @@ -76,7 +77,7 @@ public interface ITrunklineCarsLoadService extends BaseService zeroPackageList); R findZeroAllocation(String orderCode, Long warehouseId); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java new file mode 100644 index 000000000..320846b09 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java @@ -0,0 +1,7 @@ +package com.logpm.trunkline.service; + +import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; +import org.springblade.core.mp.base.BaseService; + +public interface ITrunklineScanZeroDetailService extends BaseService { +} 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 72a2039c5..5dd3b6cc9 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 @@ -4678,10 +4678,14 @@ public class OpenOrderServiceImpl implements IOpenOrderService { List parcelNumberList = new ArrayList<>(); for (WarehouseWayBillDetail warehouseWayBillDetail : wayBillDetailList) { DistributionParcelListEntity entity = new DistributionParcelListEntity(); + entity.setBrandId(warehouseWaybill.getBrandId()); + entity.setBrandName(warehouseWaybill.getBrand()); + entity.setDealerName(warehouseWaybill.getConsignee()); entity.setFirsts(warehouseWayBillDetail.getProductName()); entity.setWarehouseId(distributionStockArticleEntity.getWarehouseId()); entity.setWarehouse(distributionStockArticleEntity.getWarehouse()); entity.setQuantity(warehouseWayBillDetail.getNum()); + entity.setTrainNumber(warehouseWaybill.getCustomerTrain()); entity.setConditions(1); entity.setStockArticleId(orderId); entity.setOrderCode(distributionStockArticleEntity.getOrderCode()); @@ -4694,6 +4698,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { entity.setWaybillId(warehouseWaybill.getId()); entity.setWaybillNumber(warehouseWaybill.getWaybillNo()); entity.setIsZero("1"); + entity.setAdvanceId(warehouseWayBillDetail.getId()); entity.setWarehouseEntryTimeEnd(date); entity.setSendWarehouseId(departureWarehouseId); entity.setSendWarehouseName(departureWarehouseName); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index a33e10310..63c44abd7 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -122,6 +122,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl loadCarsPageList(LoadCarsDTO loadCarsDTO) { @@ -3015,8 +3016,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroPackageList) { TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId); if (Objects.isNull(carsLoadEntity)) { @@ -3071,6 +3073,28 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl parcelListEntities = distributionParcelListClient.findListByStockArticleId(articleId); + //把parcelListEntities转化为id作为key的Map + Map parcelListMapById = parcelListEntities.stream().collect(Collectors.toMap(DistributionParcelListEntity::getId, Function.identity())); + + + //把parcelListEntities转化成以firsts作为key的map + Map parcelListMap = parcelListEntities.stream().collect(Collectors.toMap(DistributionParcelListEntity::getFirsts, Function.identity())); + if(CollUtil.isNotEmpty(zeroPackageList)){ + for (ZeroPackageDTO zeroPackageDTO : zeroPackageList) { + Integer en = zeroPackageDTO.getEnterNum(); + String gn = zeroPackageDTO.getGoodsName(); + DistributionParcelListEntity parcelList = parcelListMap.get(gn); + if(Objects.isNull(parcelList)){ + log.warn("##################loadingZero: 品类信息不存在 gn={}", gn); + return R.fail(405, "品类信息有误"); + } + } + + } + Long loadScanId = null; Integer isAbnormal = 0; Integer isData = 1; @@ -3152,6 +3176,51 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailList = new ArrayList<>(); + List updateParceList = new ArrayList<>(); + if(CollUtil.isNotEmpty(zeroPackageList)){ + Long finalLoadScanId = loadScanId; + zeroPackageList.forEach(zeroPackageDTO -> { + TrunklineScanZeroDetailEntity scanZeroDetailEntity = new TrunklineScanZeroDetailEntity(); + scanZeroDetailEntity.setGoodsId(zeroPackageDTO.getGoodsId()); + scanZeroDetailEntity.setScanId(finalLoadScanId); + scanZeroDetailEntity.setGoodsName(zeroPackageDTO.getGoodsName()); + scanZeroDetailEntity.setPackageId(zeroPackageDTO.getPackageId()); + scanZeroDetailEntity.setLoadingNum(zeroPackageDTO.getEnterNum()); + scanZeroDetailEntity.setUnloadNum(0); + zeroDetailList.add(scanZeroDetailEntity); + DistributionParcelListEntity parcelList = parcelListMap.get(zeroPackageDTO.getGoodsName()); + Integer quantity = parcelList.getQuantity(); + DistributionParcelListEntity updateEntity = new DistributionParcelListEntity(); + updateEntity.setId(parcelList.getId()); + updateEntity.setQuantity(quantity-zeroPackageDTO.getEnterNum()); + updateParceList.add(updateEntity); + }); + }else{ + if(enterNum == handQuantity){ + Long finalLoadScanId = loadScanId; + parcelListEntities.forEach(entity -> { + Long waybillDetailId = entity.getAdvanceId(); + WarehouseWayBillDetail entityByWaybillDetailId = warehouseWaybillDetailClient.findEntityByWaybillDetailId(waybillDetailId); + TrunklineScanZeroDetailEntity scanZeroDetailEntity = new TrunklineScanZeroDetailEntity(); + scanZeroDetailEntity.setGoodsId(entityByWaybillDetailId.getProductId()); + scanZeroDetailEntity.setScanId(finalLoadScanId); + scanZeroDetailEntity.setGoodsName(entityByWaybillDetailId.getProductName()); + scanZeroDetailEntity.setPackageId(entity.getId()); + scanZeroDetailEntity.setLoadingNum(entityByWaybillDetailId.getNum()); + scanZeroDetailEntity.setUnloadNum(0); + zeroDetailList.add(scanZeroDetailEntity); + Integer quantity = entity.getQuantity(); + DistributionParcelListEntity updateEntity = new DistributionParcelListEntity(); + updateEntity.setId(entity.getId()); + updateEntity.setQuantity(quantity-entityByWaybillDetailId.getNum()); + updateParceList.add(updateEntity); + }); + } + } + scanZeroDetailService.saveBatch(zeroDetailList); + distributionParcelListClient.updateList(updateParceList); + difficult = enterNum; distributionStockArticleClient.submitHandleNumByOrderId(enterNum, articleId); } else { @@ -3178,6 +3247,41 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailList = new ArrayList<>(); + List updateParceList = new ArrayList<>(); + + QueryWrapper queryWrapper1 = new QueryWrapper<>(); + queryWrapper1.eq("scanId",loadScanId); + List scanZeroDetailEntities = scanZeroDetailService.list(queryWrapper1); + //把scanZeroDetailEntities中所有元素的scanId作为key转为Map + Map map = scanZeroDetailEntities.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getPackageId, Function.identity())); + + for (ZeroPackageDTO zeroPackageDTO : zeroPackageList) { + Long packageId = zeroPackageDTO.getPackageId(); + Integer enterNum1 = zeroPackageDTO.getEnterNum(); + TrunklineScanZeroDetailEntity scanZeroDetailEntity = map.get(packageId); + if(Objects.isNull(scanZeroDetailEntity)){ + log.warn("##################loadingZero: 品类信息不存在 packageId={}", packageId); + return R.fail(405, "品类信息有误"); + } + DistributionParcelListEntity parcelList = parcelListMapById.get(packageId); + if(Objects.isNull(parcelList)){ + log.warn("##################loadingZero: 包件信息不存在 packageId={}", packageId); + return R.fail(405, "包件信息不存在"); + } + Integer quantity = parcelList.getQuantity(); + + Integer loadingNum = scanZeroDetailEntity.getLoadingNum(); + int i2 = enterNum1 - loadingNum; + parcelList.setQuantity(quantity-i2); + updateParceList.add(parcelList); + scanZeroDetailEntity.setLoadingNum(enterNum1); + zeroDetailList.add(scanZeroDetailEntity); + } + + distributionParcelListClient.updateList(updateParceList); + scanZeroDetailService.updateBatchById(zeroDetailList); } audio = (enterNum)+"件"; @@ -5929,7 +6033,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroList = trunklineCarsOrderService.findZeroList(loadId, warehouseId); + zeroList.forEach(loadZeroListVO -> { + String waybillNo = loadZeroListVO.getWaybillNo(); + List zeroPackageList = distributionParcelListClient.findPackageGoodsListByWaybillNo(waybillNo); + List ls = new ArrayList<>(); + zeroPackageList.forEach(jsonObject -> { + ls.add(jsonObject.toJavaObject(ZeroPackageVO.class)); + }); + loadZeroListVO.setZeroPackageList(ls); + }); + //查询异常列表 QueryWrapper queryWrapper = new QueryWrapper<>(); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java new file mode 100644 index 000000000..575146d32 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java @@ -0,0 +1,15 @@ +package com.logpm.trunkline.service.impl; + +import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; +import com.logpm.trunkline.mapper.TrunklineScanZeroDetailMapper; +import com.logpm.trunkline.service.ITrunklineScanZeroDetailService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +@Slf4j +public class TrunklineScanZeroDetailServiceImpl extends BaseServiceImpl implements ITrunklineScanZeroDetailService { +} From e0ef0794c23095aae95e7cb75c347c6e6be90dc6 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Sat, 31 Aug 2024 16:52:37 +0800 Subject: [PATCH 22/73] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E5=8C=85=E4=BB=B6?= =?UTF-8?q?=E8=A7=A3=E6=89=98bug=202.=E6=96=B0=E5=A2=9E=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=8C=85=E4=BB=B6=E4=B8=8B=E6=9E=B6=E8=A7=A3=E6=89=98=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jobhandle/SyncOrderInfoToPlatform.java | 24 +++++++++++++++++++ .../patch/service/ISyncOrderInfoService.java | 2 ++ .../impl/SyncOrderInfoServiceImpl.java | 5 ++++ .../impl/WarehouseTrayTypeServiceImpl.java | 2 +- 4 files changed, 32 insertions(+), 1 deletion(-) diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java index 113479683..a54848427 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java @@ -408,6 +408,30 @@ public class SyncOrderInfoToPlatform { } + @XxlJob("clearOrderPackageStatusStock") + public ReturnT clearOrderPackageDownAndDelTray(String param) { + log.info("############clearOrderPackageDownAndDelTray: 清理包件数据下架解托 开始"); + + List ls = warehouseMappingDataService.findAllOrderPackage(); + + for (JSONObject l : ls) { + String orderPackageCode = l.getStr("orderPackageCode"); + Long warehouseId = l.getLong("warehouseId"); + + syncOrderInfoService.clearOrderPackageDownAndDelTray(orderPackageCode,warehouseId); + + warehouseMappingDataService.updateClearOrderPackageStatusSignStatus(orderPackageCode,warehouseId,1); + } + + + + log.info("############clearOrderPackageDownAndDelTray: 清理包件数据下架解托 完成"); + + return ReturnT.SUCCESS; + } + + + @XxlJob("syncZeroOrderInfo") public ReturnT syncZeroOrderInfo(String param) { diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java index ecf7bfa6e..ab8fdc6b6 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java @@ -28,4 +28,6 @@ public interface ISyncOrderInfoService { void clearOrderPackageStatusOut(String orderPackageCode, Long warehouseId); void dealWithPackageUpdown(String orderPackageCode, Long allocationId,Long warehouseId); + + void clearOrderPackageDownAndDelTray(String orderPackageCode, Long warehouseId); } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java index 2df380f45..39f291204 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java @@ -365,6 +365,11 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService { } + @Override + public void clearOrderPackageDownAndDelTray(String orderPackageCode, Long warehouseId) { + warehouseUpdownTypeClient.downPackageOrDelTray(orderPackageCode,warehouseId,"系统下架解托"); + } + @Transactional(rollbackFor = Exception.class) @Override diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java index 62001e59d..c91d62f67 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java @@ -2765,7 +2765,7 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl trayTypeIds = trayTypeIdToTrayGoodsListMap.keySet(); - if(!trayTypeIds.isEmpty()){ + if(trayTypeIds.isEmpty()){ return ; } List warehouseTrayTypeEntities = baseMapper.selectBatchIds(trayTypeIds); From 2841dbcb581b79702e91036d6d1a27df686088d0 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Mon, 2 Sep 2024 08:37:30 +0800 Subject: [PATCH 23/73] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TrunklineWaybillTrackServiceImpl.java | 72 +++++++------------ 1 file changed, 24 insertions(+), 48 deletions(-) diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillTrackServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillTrackServiceImpl.java index 5c734bfb0..f9aa26336 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillTrackServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillTrackServiceImpl.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; +import java.util.Objects; @Slf4j @Service @@ -50,22 +51,30 @@ public class TrunklineWaybillTrackServiceImpl extends BaseServiceImpl Date: Mon, 2 Sep 2024 09:25:44 +0800 Subject: [PATCH 24/73] =?UTF-8?q?1.=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java index a54848427..d142941a9 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java @@ -408,7 +408,7 @@ public class SyncOrderInfoToPlatform { } - @XxlJob("clearOrderPackageStatusStock") + @XxlJob("clearOrderPackageDownAndDelTray") public ReturnT clearOrderPackageDownAndDelTray(String param) { log.info("############clearOrderPackageDownAndDelTray: 清理包件数据下架解托 开始"); From baf741fd2dc120a4aa2ce718785d8b6e0d6252e3 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 2 Sep 2024 10:11:44 +0800 Subject: [PATCH 25/73] =?UTF-8?q?=E8=87=AA=E6=8F=90=E7=BB=B4=E6=8A=A4?= =?UTF-8?q?=E5=8C=85=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DistrilbutionBillLadingServiceImpl.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java index 7e579fa62..f41c58335 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java @@ -3353,7 +3353,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl Date: Mon, 2 Sep 2024 10:33:33 +0800 Subject: [PATCH 26/73] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E9=85=8D?= =?UTF-8?q?=E9=80=81=E6=98=8E=E7=BB=86=E6=8A=A5=E8=A1=A8=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E4=B8=8D=E6=AD=A3=E7=A1=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/logpm/report/mapper/ReportDeliverMapper.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml index d44fe019a..e4d158a4a 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml @@ -416,11 +416,11 @@ ldl.signing_time sjsigning_time, ldl.signing_user lds_signee_name, case when ldl.signfor_type = 1 THEN - '扫描签收' + '司机扫描签收' when ldl.signfor_type = 2 then - '文员签收' + '司机批量签收' when ldl.signfor_type = 3 then - '一键签收' + '文员批量签收' else '' end sign_type, From 03f3f6ee61206c9156e66d7706aae17ee0d71cc6 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 2 Sep 2024 14:47:32 +0800 Subject: [PATCH 27/73] =?UTF-8?q?=E6=89=B9=E9=87=8F=E7=AD=BE=E6=94=B6BUG?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DistributionSignforServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index d0ed1b4de..d65fdec1f 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -5011,7 +5011,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl Date: Mon, 2 Sep 2024 16:18:06 +0800 Subject: [PATCH 28/73] =?UTF-8?q?=E8=BD=A6=E8=BE=86BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logpm/basicdata/controller/BasicdataVehicleController.java | 2 +- .../java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.java | 2 +- .../java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.xml | 2 +- .../com/logpm/basicdata/service/IBasicdataVehicleService.java | 2 +- .../basicdata/service/impl/BasicdataVehicleServiceImpl.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java index 754820195..ac756d579 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataVehicleController.java @@ -86,7 +86,7 @@ public class BasicdataVehicleController extends BladeController { public R detail(@Param("id") Long id) { // BasicdataVehicleEntity detail = basicdataVehicleService.getOne(Condition.getQueryWrapper(basicdataVehicle)); - BasicdataVehicleEntity detail = basicdataVehicleService.getVehicleDetail(id); + BasicdataVehicleVO detail = basicdataVehicleService.getVehicleDetail(id); //查询历史照片 BasicdataVehicleVO basicdataVehicleVO = new BasicdataVehicleVO(); BeanUtils.copyProperties(detail,basicdataVehicleVO); diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.java index d6b788b68..bfddef518 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataVehicleMapper.java @@ -69,5 +69,5 @@ public interface BasicdataVehicleMapper extends BaseMapper - SELECT lbv.id id, lbv.tenant_id tenantId, diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataVehicleService.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataVehicleService.java index d69417978..a1902a62e 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataVehicleService.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataVehicleService.java @@ -99,5 +99,5 @@ public interface IBasicdataVehicleService extends BaseService Date: Mon, 2 Sep 2024 17:28:32 +0800 Subject: [PATCH 29/73] =?UTF-8?q?feat(all):=20=E5=A2=9E=E5=8A=A0=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/IBasicdataWarehouseClient.java | 3 + .../report/entity/QualityDeliverEntity.java | 492 ++++++++++++++++++ .../feign/BasicdataWarehouseClient.java | 36 ++ blade-service/logpm-distribution/pom.xml | 5 + .../receiver/report/PlanReportListener.java | 125 +++++ 5 files changed, 661 insertions(+) create mode 100644 blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/QualityDeliverEntity.java create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataWarehouseClient.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataWarehouseClient.java index 50f2500ad..d71f7d28b 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataWarehouseClient.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataWarehouseClient.java @@ -127,5 +127,8 @@ public interface IBasicdataWarehouseClient { @GetMapping(API_PREFIX + "/findWarehouseList") List findWarehouseList(@RequestParam("warehouseName") String warehouseName); + + @GetMapping(API_PREFIX + "/findWarehousesByIds") + List findWarehousesByIds(@RequestParam("ids") List ids); } diff --git a/blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/QualityDeliverEntity.java b/blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/QualityDeliverEntity.java new file mode 100644 index 000000000..204494d4a --- /dev/null +++ b/blade-service-api/logpm-report-api/src/main/java/com/logpm/report/entity/QualityDeliverEntity.java @@ -0,0 +1,492 @@ +package com.logpm.report.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 配送明细 + * + * @author zqb + * @create 2024-08-23 + */ +@Data +@TableName("logpm_quality_deliver") +@ApiModel(value = "QualityDeliver对象", description = "配送明细") +@EqualsAndHashCode(callSuper = true) +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class QualityDeliverEntity extends TenantEntity { + private static final long serialVersionUID = 1L; + /** + * 事业线 + */ + @ApiModelProperty(value = "事业线") + private String businessUnit; + /** + * 作业仓库 + */ + @ApiModelProperty(value = "作业仓库") + private String warehouseName; + /** + * 作业仓库ID + */ + @ApiModelProperty(value = "作业仓库ID") + private Long warehouseId; + /** + * 品牌 + */ + @ApiModelProperty(value = "品牌") + private String brandName; + /** + * 客户名称 + */ + @ApiModelProperty(value = "客户名称") + private String customName; + /** + * 客户电话 + */ + @ApiModelProperty(value = "客户电话") + private String customPhone; + /** + * 客户地址 + */ + @ApiModelProperty(value = "客户地址") + private String customAddress; + /** + * 运单发货单位 + */ + @ApiModelProperty(value = "运单发货单位") + private String shipperUnit; + /** + * 运单发货人 + */ + @ApiModelProperty(value = "运单发货人") + private String shipperPerson; + /** + * 运单发货电话 + */ + @ApiModelProperty(value = "运单发货电话") + private String shipperMobile; + /** + * 运单发货地址 + */ + @ApiModelProperty(value = "运单发货地址") + private String shipperAddress; + /** + * 运单收货单位 + */ + @ApiModelProperty(value = "运单收货单位") + private String consigneeUnit; + /** + * 运单收货人 + */ + @ApiModelProperty(value = "运单收货人") + private String consigneePerson; + /** + * 运单收货电话 + */ + @ApiModelProperty(value = "运单收货电话") + private String consigneeMobile; + /** + * 运单收货地址 + */ + @ApiModelProperty(value = "运单收货地址") + private String consigneeAddress; + /** + * 运单号 + */ + @ApiModelProperty(value = "运单号") + private String waybillNumber; + /** + * 商场名称 + */ + @ApiModelProperty(value = "商场名称") + private String mallName; + /** + * 商场ID + */ + @ApiModelProperty(value = "商场ID") + private Long mallId; + /** + * 入库批次号 + */ + @ApiModelProperty(value = "入库批次号") + private String incomingBatch; + /** + * 订单号 + */ + @ApiModelProperty(value = "订单号") + private String orderCode; + /** + * 包条码 + */ + @ApiModelProperty(value = "包条码") + private String orderPackageCode; + /** + * 客户车次号 + */ + @ApiModelProperty(value = "客户车次号") + private String trainNumber; + /** + * 数据类型 1 定制品 2 库存品 3零担 + */ + @ApiModelProperty(value = "数据类型 1 定制品 2 库存品 3零担") + private Integer conditions; + /** + * 一级品 + */ + @ApiModelProperty(value = "一级品") + private String firstsProduct; + /** + * 二级品 + */ + @ApiModelProperty(value = "二级品") + private String secondProduct; + /** + * 三级品 + */ + @ApiModelProperty(value = "三级品") + private String thirdProduct; + /** + * 体积 + */ + @ApiModelProperty(value = "体积") + private BigDecimal volume; + /** + * 重量 + */ + @ApiModelProperty(value = "重量") + private BigDecimal weight; + /** + * 成本结算品类 + */ + @ApiModelProperty(value = "成本结算品类") + private String costCategory; + /** + * 收入结算品类 + */ + @ApiModelProperty(value = "收入结算品类") + private String revenueCategory; + /** + * 物料信息 + */ + @ApiModelProperty(value = "物料信息") + private String materielName; + /** + * 物料编码 + */ + @ApiModelProperty(value = "物料编码") + private String materielCode; + /** + * 始发仓 + */ + @ApiModelProperty(value = "始发仓") + private String beginWarehouseName; + /** + * 始发仓入库时间 + */ + @ApiModelProperty(value = "始发仓入库时间") + private Date beginWarehouseInTime; + /** + * 始发仓发货时间 + */ + @ApiModelProperty(value = "始发仓发货时间") + private Date beginWarehouseOutTime; + /** + * 末端仓入库时间 + */ + @ApiModelProperty(value = "末端仓入库时间") + private String endWarehouseInTime; + /** + * 计划配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号 + */ + @ApiModelProperty(value = "计划配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号") + private String planTrainNumber; + /** + * 计划预约单号 只有商市配,自提采用自提车次号 三方中转采用三方中转车次号 + */ + @ApiModelProperty(value = "计划预约单号 只有商市配,自提采用自提车次号 三方中转采用三方中转车次号") + private String planReservationCode; + /** + * 配送日期 + */ + @ApiModelProperty(value = "配送日期") + private Date deliveryTime; + /** + * 配送类型2市配 1商配 3自提 4三方中转(5直发商家 【签收节点进行驱动】) 没有这个字段 + */ + @ApiModelProperty(value = "配送类型2市配 1商配 3自提 4三方中转(5直发商家 【签收节点进行驱动】) 没有这个字段") + private String deliveryType; + /** + * 配送种类 + */ + @ApiModelProperty(value = "配送种类") + private String deliveryKind; + /** + * 配送车辆 存在多个逗号拼接 + */ + @ApiModelProperty(value = "配送车辆 存在多个逗号拼接") + private String vehicleName; + /** + * 配送司机 存在多个逗号拼接 + */ + @ApiModelProperty(value = "配送司机 存在多个逗号拼接") + private String driverName; + /** + * 配送公司 + */ + @ApiModelProperty(value = "配送公司") + private String distributionCompany; + /** + * 计划时间 + */ + @ApiModelProperty(value = "计划时间") + private Date deliveryPlanTime; + /** + * 计划数量 + */ + @ApiModelProperty(value = "计划数量") + private Integer planNum; + /** + * 计划类型(新增 补录) + */ + @ApiModelProperty(value = "计划类型(新增 补录)") + private String planType; + /** + * 计划人 + */ + @ApiModelProperty(value = "计划人") + private String deliveryCreateUserName; + /** + * 备货单号 + */ + @ApiModelProperty(value = "备货单号") + private String stockupCode; + /** + * 备货人 + */ + @ApiModelProperty(value = "备货人") + private String stockupUserName; + /** + * 备货时间 + */ + @ApiModelProperty(value = "备货时间") + private Date stockupFinishTime; + /** + * 备货数量 + */ + @ApiModelProperty(value = "备货数量") + private Integer stockNum; + /** + * 备货区 + */ + @ApiModelProperty(value = "备货区") + private String stockAllocation; + /** + * 备货类型(新增 补录) + */ + @ApiModelProperty(value = "备货类型(新增 补录)") + private String stockupType; + /** + * 装车人 + */ + @ApiModelProperty(value = "装车人") + private String loadUserName; + /** + * 装车时间 + */ + @ApiModelProperty(value = "装车时间") + private Date loadTime; + /** + * 装车配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号 + */ + @ApiModelProperty(value = "装车配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号") + private String loadTrainNumber; + /** + * 装车数量 + */ + @ApiModelProperty(value = "装车数量") + private Integer loadNum; + /** + * 装车类型(按件装车 一键装车 补录) + */ + @ApiModelProperty(value = "装车类型(按件装车 一键装车 补录)") + private String loadType; + /** + * 发车人 + */ + @ApiModelProperty(value = "发车人") + private String startCarUserName; + /** + * 发车时间 + */ + @ApiModelProperty(value = "发车时间") + private String startCarTime; + /** + * 到达人 + */ + @ApiModelProperty(value = "到达人") + private String arriveCarUserName; + /** + * 到达时间 + */ + @ApiModelProperty(value = "到达时间") + private String arriveCarTime; + /** + * 到达省 + */ + @ApiModelProperty(value = "到达省") + private String arriveProvince; + /** + * 到达市 + */ + @ApiModelProperty(value = "到达市") + private String arriveCity; + /** + * 到达区/县 + */ + @ApiModelProperty(value = "到达区/县") + private String arriveDistrict; + /** + * 到达地址 + */ + @ApiModelProperty(value = "到达地址") + private String arriveAddress; + /** + * 签收人 + */ + @ApiModelProperty(value = "签收人") + private String signUserName; + /** + * 签收时间 + */ + @ApiModelProperty(value = "签收时间") + private String signTime; + /** + * 签收状态 1.已签收 0 未签收 -1 已回库 -2 滞留 + */ + @ApiModelProperty(value = "签收状态 1.已签收 0 未签收 -1 已回库 -2 滞留") + private String signStatus; + /** + * 签收数量 + */ + @ApiModelProperty(value = "签收数量") + private String signNum; + /** + * 签收配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号 + */ + @ApiModelProperty(value = "签收配送单号 包含配送车次和自提车次 直发商家 对应干线车次 三方中转 三方中转车次号") + private String signTrainNumber; + /** + * 签收预约单号 只有商市配,自提没有该字段 + */ + @ApiModelProperty(value = "签收预约单号 只有商市配,自提没有该字段") + private String signReservationCode; + /** + * 签收车牌 + */ + @ApiModelProperty(value = "签收车牌") + private String signCarNumber; + /** + * 签收类型(按件签收 批量签收 补录) + */ + @ApiModelProperty(value = "签收类型(按件签收 批量签收 补录)") + private String signType; + /** + * 车辆类型 + */ + @ApiModelProperty(value = "车辆类型") + private String signCarType; + /** + * 复核人 + */ + @ApiModelProperty(value = "复核人") + private String reviewUserName; + /** + * 复核时间 复核时间=回库时间 + */ + @ApiModelProperty(value = "复核时间 复核时间=回库时间") + private String reviewTime; + /** + * 滞留人 + */ + @ApiModelProperty(value = "滞留人") + private String retentionUserName; + /** + * 滞留时间 + */ + @ApiModelProperty(value = "滞留时间") + private String retentionTime; + /** + * 配送成本 + */ + @ApiModelProperty(value = "配送成本") + private String distributionCost; + /** + * 分货费成本 + */ + @ApiModelProperty(value = "分货费成本") + private String apartCost; + /** + * 上楼费成本 + */ + @ApiModelProperty(value = "上楼费成本") + private String apstairsCost; + /** + * 平移费成本 + */ + @ApiModelProperty(value = "平移费成本") + private String moveCost; + /** + * 装卸费成本 + */ + @ApiModelProperty(value = "装卸费成本") + private String stevedoreCost; + /** + * 公里数成本 + */ + @ApiModelProperty(value = "公里数成本") + private String kiloAllowCost; + /** + * 补贴公里数成本 + */ + @ApiModelProperty(value = "补贴公里数成本") + private String allowKiloAllowCost; + /** + * 超区公里数成本 + */ + @ApiModelProperty(value = "超区公里数成本") + private String ultrAllpwCost; + /** + * 点位补贴成本 + */ + @ApiModelProperty(value = "点位补贴成本") + private String pointAllowCost; + /** + * 保底费成本 + */ + @ApiModelProperty(value = "保底费成本") + private String guarCost; + /** + * 油费成本 + */ + @ApiModelProperty(value = "油费成本") + private String fuelCost; + /** + * 其它成本 + */ + @ApiModelProperty(value = "其它成本") + private String otherCost; + +} diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataWarehouseClient.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataWarehouseClient.java index 94b62c882..35ed03499 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataWarehouseClient.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataWarehouseClient.java @@ -16,6 +16,9 @@ */ package com.logpm.basicdata.feign; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -32,14 +35,18 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.tool.api.R; +import org.springblade.system.entity.Dept; +import org.springblade.system.feign.IDeptClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * 仓库 Feign实现类 @@ -55,6 +62,8 @@ public class BasicdataWarehouseClient implements IBasicdataWarehouseClient { private final IBasicdataWarehouseService warehouseWarehouseService; + private final IDeptClient deptClient; + private final BladeRedis bladeRedis; @Override @@ -225,5 +234,32 @@ public class BasicdataWarehouseClient implements IBasicdataWarehouseClient { return list; } + @Override + public List findWarehousesByIds(List ids) { + if(CollUtil.isNotEmpty(ids)){ + List list = warehouseWarehouseService.list(Wrappers.lambdaQuery().in(BasicdataWarehouseEntity::getId, ids.stream().collect(Collectors.toSet()))); + if(CollUtil.isNotEmpty(list)){ + for (BasicdataWarehouseEntity warehouseEntity : list) { + Long department = warehouseEntity.getDepartment(); + if(ObjectUtil.isNotNull(department)){ + Dept dept = deptClient.findEntityById(department); + if(ObjectUtil.isNotEmpty(dept)){ + Integer deptCategory = dept.getDeptCategory(); + if(NumberUtil.equals(deptCategory,2)){ + warehouseEntity.setBusinessLine(dept.getDeptName()); + } else { + Long parentId = dept.getParentId(); + Dept parentDept = deptClient.findEntityById(parentId); + warehouseEntity.setBusinessLine(parentDept.getDeptName()); + } + } + } + } + return list; + } + } + return Collections.emptyList(); + } + } diff --git a/blade-service/logpm-distribution/pom.xml b/blade-service/logpm-distribution/pom.xml index 56afb2ebc..50c5e6106 100644 --- a/blade-service/logpm-distribution/pom.xml +++ b/blade-service/logpm-distribution/pom.xml @@ -133,6 +133,11 @@ logpm-business-api ${bladex.project.version} + + org.springblade + logpm-report-api + 3.2.0.RELEASE + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java new file mode 100644 index 000000000..0801bb6c5 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/report/PlanReportListener.java @@ -0,0 +1,125 @@ +package com.logpm.distribution.receiver.report; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.logpm.basicdata.entity.BasicdataWarehouseEntity; +import com.logpm.basicdata.feign.IBasicdataWarehouseClient; +import com.logpm.distribution.entity.DistributionParcelListEntity; +import com.logpm.distribution.service.IDistributionDeliveryListService; +import com.logpm.distribution.service.IDistributionParcelListService; +import com.logpm.report.entity.QualityDeliverEntity; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.broadcast.FanoutConstants; +import org.springblade.common.enums.BizOperationEnums; +import org.springblade.common.enums.PackageTypeEnums; +import org.springblade.common.model.NodeFanoutMsg; +import org.springblade.common.model.PackageData; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 配送计划生成明细报表 + * + * @author zhaoqiaobo + * @create 2024-03-18 0:02 + */ +@Slf4j +@Component +@AllArgsConstructor +public class PlanReportListener { + + @Resource + private IDistributionParcelListService parcelListService; + + @Resource + private IDistributionDeliveryListService deliveryListService; + + @Resource + private IBasicdataWarehouseClient warehouseClient; + + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = FanoutConstants.distribution.plan.QUEUE.REPORT, durable = "true"), + exchange = @Exchange(name = FanoutConstants.distribution.plan.EXCHANGE, type = ExchangeTypes.FANOUT) + )) + public void nodeDataPushDelayed(String msg) { + log.info("配送计划生成明细报表: {}", msg); + if (StrUtil.isEmpty(msg)) { + return; + } + NodeFanoutMsg bean = JSONUtil.toBean(msg, NodeFanoutMsg.class); + // Long warehouseId = bean.getWarehouseId(); + BizOperationEnums bizOperation = bean.getBizOperation(); + List details = bean.getDetails(); + Object main = bean.getMain(); + // main: {"distributionCompany":"承运商", "driverName":"司机姓名", "id":"任务ID", "kind":"任务类型 1-自主 2-外协", "taskTime":"任务时间", "trainNumber":"车次号","type":"配送类型 1商配 2市配", "vehicleName":"车牌号"} + JSONObject entries = JSONUtil.parseObj(main); + BasicdataWarehouseEntity warehouseEntity = null; + // if (ObjectUtil.isNotEmpty(warehouseId)) { + // List warehouseEntities = warehouseClient.findWarehousesByIds(CollUtil.newArrayList(warehouseId)); + // if (CollUtil.isNotEmpty(warehouseEntities)) { + // warehouseEntity = warehouseEntities.get(0); + // } + // } + if (BizOperationEnums.ADD.equals(bizOperation)) { + List entities = new ArrayList<>(); + // 新增 + // 查询出基础信息插入基础表 + // 订制品 库存品 零担 + if (CollUtil.isNotEmpty(details)) { + // 按 packageType 分组 + Map> detailMap = details.stream().collect(Collectors.groupingBy(PackageData::getPackageType)); + if (detailMap.containsKey(PackageTypeEnums.CMP)) { + // 订制品 + List packageData = detailMap.get(PackageTypeEnums.CMP); + // List listByOrderPackageCode = parcelListService.findListByOrderPackageCode(packageData.stream().map(PackageData::getPackageCode).collect(Collectors.toList()), bean.getWarehouseId()); + Map parcelListMap = null; + // if (CollUtil.isNotEmpty(listByOrderPackageCode)) { + // 转map + // parcelListMap = listByOrderPackageCode.stream().collect(Collectors.toMap(DistributionParcelListEntity::getOrderPackageCode, e -> e)); + // } + for (PackageData packageDatum : packageData) { + QualityDeliverEntity entity = QualityDeliverEntity.builder() + .orderCode(packageDatum.getOrderCode()) + .businessUnit(ObjectUtil.isNotEmpty(warehouseEntity) ? warehouseEntity.getBusinessLine() : "") + .warehouseName(bean.getWarehouse()) + // .warehouseId(bean.getWarehouseId()) + .build(); + if (MapUtil.isNotEmpty(parcelListMap) && parcelListMap.containsKey(packageDatum.getPackageCode())) { + DistributionParcelListEntity parcelListEntity = parcelListMap.get(packageDatum.getPackageCode()); + if (ObjectUtil.isNotEmpty(parcelListEntity)) { + entity.setBrandName(parcelListEntity.getBrandName()); + } + } + } + } else if (detailMap.containsKey(PackageTypeEnums.INV)) { + // 库存品 + + } else if (detailMap.containsKey(PackageTypeEnums.LTL)) { + // 零担 + + } + + } + } else if (BizOperationEnums.DELETE.equals(bizOperation)) { + // 删除 + } else if (BizOperationEnums.MODIFY.equals(bizOperation)) { + // 修改 + } + } + +} From 9ff1ee4135f0b0f10d4c02459c92cbd1246de3b6 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 2 Sep 2024 17:48:14 +0800 Subject: [PATCH 30/73] =?UTF-8?q?=E8=87=AA=E6=8F=90=E6=89=AB=E6=8F=8F?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E5=8C=85=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DistrilbutionBillLadingServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java index f41c58335..3f7a35068 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java @@ -3356,7 +3356,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl Date: Mon, 2 Sep 2024 17:56:34 +0800 Subject: [PATCH 31/73] =?UTF-8?q?=E5=8C=85=E4=BB=B6=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DistrilbutionBillLadingServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java index 3f7a35068..78de1693b 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java @@ -3356,7 +3356,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl Date: Mon, 2 Sep 2024 18:30:39 +0800 Subject: [PATCH 32/73] =?UTF-8?q?=E8=87=AA=E6=8F=90=E7=AD=BE=E6=94=B6?= =?UTF-8?q?=E5=8C=85=E4=BB=B6=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DistrilbutionBillLadingServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java index 78de1693b..c8a3f3c5d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java @@ -3353,10 +3353,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl Date: Mon, 2 Sep 2024 18:46:02 +0800 Subject: [PATCH 33/73] =?UTF-8?q?1.=E9=9B=B6=E6=8B=85=E6=8C=89=E5=93=81?= =?UTF-8?q?=E7=B1=BB=E9=80=BB=E8=BE=91=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 --- ...ersalesAbnormalRecordZeroDetailEntity.java | 53 +++ .../IAftersalesAbnormalRecordClient.java | 4 + ...ersalesAbnormalRecordZeroDetailClient.java | 44 ++ .../feign/IDistributionParcelListClient.java | 5 + .../IDistributionParcelNumberClient.java | 6 + .../vo/DistributionParcelListVO.java | 2 + .../logpm/trunkline/vo/OrderCodeNumVO.java | 14 + .../vo/TrunklineScanZeroDetailVO.java | 11 + .../logpm/trunkline/vo/UnloadPackageVO.java | 4 + .../feign/AftersalesAbnormalRecordClient.java | 6 + ...ersalesAbnormalRecordZeroDetailClient.java | 22 + ...ersalesAbnormalRecordZeroDetailMapper.java | 9 + ...rsalesAbnormalRecordZeroDetailService.java | 7 + ...esAbnormalRecordZeroDetailServiceImpl.java | 16 + .../feign/DistributionParcelListClient.java | 13 + .../feign/DistributionParcelNumberClient.java | 17 +- .../mapper/DistributionParcelListMapper.java | 4 + .../mapper/DistributionParcelListMapper.xml | 15 + .../DistributionParcelNumberMapper.java | 2 + .../mapper/DistributionParcelNumberMapper.xml | 8 + .../IDistributionParcelListService.java | 3 + .../IDistributionParcelNumberService.java | 2 + .../DistributionParcelListServiceImpl.java | 10 + .../DistributionParcelNumberServiceImpl.java | 21 +- .../trunkline/api/CarsLoadApiController.java | 8 +- .../mapper/TrunklineAdvanceDetailMapper.java | 2 + .../mapper/TrunklineAdvanceDetailMapper.xml | 13 + .../mapper/TrunklineScanZeroDetailMapper.java | 7 +- .../mapper/TrunklineScanZeroDetailMapper.xml | 21 + .../ITrunklineAdvanceDetailService.java | 3 + .../ITrunklineCarsLoadScanService.java | 1 + .../service/ITrunklineCarsLoadService.java | 2 +- .../ITrunklineScanZeroDetailService.java | 6 + .../impl/CarsLoadAsyncServiceImpl.java | 54 ++- .../TrunklineAdvanceDetailServiceImpl.java | 5 + .../TrunklineCarsLoadScanServiceImpl.java | 27 +- .../impl/TrunklineCarsLoadServiceImpl.java | 446 +++++++++--------- .../TrunklineScanZeroDetailServiceImpl.java | 12 + 38 files changed, 677 insertions(+), 228 deletions(-) create mode 100644 blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java create mode 100644 blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordZeroDetailClient.java create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderCodeNumVO.java create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineScanZeroDetailVO.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordZeroDetailClient.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAbnormalRecordZeroDetailMapper.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordZeroDetailService.java create mode 100644 blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordZeroDetailServiceImpl.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java new file mode 100644 index 000000000..4dcf02a88 --- /dev/null +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java @@ -0,0 +1,53 @@ +package com.logpm.aftersales.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_aftersales_abnormal_record_zero_detail") +@ApiModel(value = "AftersalesAbnormalRecordZeroDetail对象", description = "异常记录零担明细表") +@EqualsAndHashCode(callSuper = true) +public class AftersalesAbnormalRecordZeroDetailEntity 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 AbnormalRecordId; + + @ApiModelProperty(name = "异常记录id",notes = "") + private Long packageId; + + @ApiModelProperty(name = "品类id",notes = "") + private Long goodsId; + + @ApiModelProperty(name = "品类名称",notes = "") + private String goodsName; + + @ApiModelProperty(name = "异常数量",notes = "") + private Integer abnormalNum; + + @ApiModelProperty(name = "回库数量",notes = "") + private Integer returnNum; + + @ApiModelProperty(name = "入库数量",notes = "") + private Integer incomingNum; + +} diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java index 7ff999f08..26e1c5cc6 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java @@ -58,4 +58,8 @@ public interface IAftersalesAbnormalRecordClient { @PostMapping(API_PREFIX+"/addAbnormalRecordList") void addAbnormalRecordList(@RequestBody List abnormalRecordEntities); + + @PostMapping(API_PREFIX+"/addAbnormalRecordListReturnList") + List addAbnormalRecordListReturnList(@RequestBody List abnormalRecordEntities); + } diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordZeroDetailClient.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordZeroDetailClient.java new file mode 100644 index 000000000..d5a4ede48 --- /dev/null +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordZeroDetailClient.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package com.logpm.aftersales.feign; + +import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity; +import org.springblade.common.constant.ModuleNameConstant; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + * 货位 Feign接口类 + * + * @author zhy + * @since 2023-09-02 + */ +@FeignClient( + value = ModuleNameConstant.APPLICATION_AFTERSALES_NAME +) +public interface IAftersalesAbnormalRecordZeroDetailClient { + + String API_PREFIX = "abormal/client"; + String TOP = API_PREFIX + "/top"; + + @PostMapping(API_PREFIX+"/addAbnormalRecordZeroDetail") + void addAbnormalRecordZeroDetail(@RequestBody List abnormalRecordZeroDetailEntityList); + +} diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java index 5cb1f2b4d..d8fc7911e 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java @@ -218,4 +218,9 @@ public interface IDistributionParcelListClient { @GetMapping(API_PREFIX + "/findListByStockArticleId") List findListByStockArticleId(@RequestParam Long articleId); + @GetMapping(API_PREFIX + "/findEntityVOListByOrderCode") + List findEntityVOListByOrderCode(@RequestParam String orderCode, @RequestParam Long fromWarehouseId); + + @GetMapping(API_PREFIX + "/addZeroQuantity") + void addZeroQuantity(@RequestParam Long packageId, @RequestParam int num); } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java index b88cbd1e9..70b64c983 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java @@ -54,4 +54,10 @@ public interface IDistributionParcelNumberClient { @PostMapping(API_PREFIX + "/addBatch") void addBatch(@RequestBody List parcelNumberList); + @PostMapping(API_PREFIX + "/findListByParcelListIds") + List findListByParcelListIds(@RequestBody List parcelListIds); + + @PostMapping(API_PREFIX + "/updateList") + void updateList(@RequestBody List updateParceNumberList); + } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionParcelListVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionParcelListVO.java index fcd4cfa42..4fc7232ff 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionParcelListVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionParcelListVO.java @@ -37,6 +37,8 @@ import java.util.List; public class DistributionParcelListVO extends DistributionParcelListEntity { private static final long serialVersionUID = 1L; + private Integer zeroPackageTotalNum; + private String stockupStatus; //备货状态 private String stockupStatusName; //备货名称 private Date stockupDate; diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderCodeNumVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderCodeNumVO.java new file mode 100644 index 000000000..58c32efd7 --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderCodeNumVO.java @@ -0,0 +1,14 @@ +package com.logpm.trunkline.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class OrderCodeNumVO implements Serializable { + + private String orderCode; + + private Integer totalNum; + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineScanZeroDetailVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineScanZeroDetailVO.java new file mode 100644 index 000000000..f81bf4b1d --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineScanZeroDetailVO.java @@ -0,0 +1,11 @@ +package com.logpm.trunkline.vo; + +import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; +import lombok.Data; + +@Data +public class TrunklineScanZeroDetailVO extends TrunklineScanZeroDetailEntity { + + + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java index 1b7bbbdb1..2805c25a6 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java @@ -3,6 +3,8 @@ package com.logpm.trunkline.vo; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; @Data public class UnloadPackageVO implements Serializable { @@ -16,4 +18,6 @@ public class UnloadPackageVO implements Serializable { private String scanStatus; private String unloadNodeName; + private List scanZeroDetailList = new ArrayList<>(); + } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java index dc1820ef3..e0ee72a05 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java @@ -54,4 +54,10 @@ public class AftersalesAbnormalRecordClient implements IAftersalesAbnormalRecord public void addAbnormalRecordList(List abnormalRecordEntities) { aftersalesAbnormalRecordService.saveBatch(abnormalRecordEntities); } + + @Override + public List addAbnormalRecordListReturnList(List abnormalRecordEntities) { + aftersalesAbnormalRecordService.saveBatch(abnormalRecordEntities); + return abnormalRecordEntities; + } } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordZeroDetailClient.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordZeroDetailClient.java new file mode 100644 index 000000000..18f988378 --- /dev/null +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordZeroDetailClient.java @@ -0,0 +1,22 @@ +package com.logpm.aftersales.feign; + +import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity; +import com.logpm.aftersales.service.IAftersalesAbnormalRecordZeroDetailService; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; + +@ApiIgnore() +@RestController +@AllArgsConstructor +public class AftersalesAbnormalRecordZeroDetailClient implements IAftersalesAbnormalRecordZeroDetailClient { + + private final IAftersalesAbnormalRecordZeroDetailService abnormalRecordZeroDetailService; + + @Override + public void addAbnormalRecordZeroDetail(List abnormalRecordZeroDetailEntityList) { + abnormalRecordZeroDetailService.saveBatch(abnormalRecordZeroDetailEntityList); + } +} diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAbnormalRecordZeroDetailMapper.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAbnormalRecordZeroDetailMapper.java new file mode 100644 index 000000000..789a0ea53 --- /dev/null +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAbnormalRecordZeroDetailMapper.java @@ -0,0 +1,9 @@ +package com.logpm.aftersales.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity; +import org.mapstruct.Mapper; + +@Mapper +public interface AftersalesAbnormalRecordZeroDetailMapper extends BaseMapper { +} diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordZeroDetailService.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordZeroDetailService.java new file mode 100644 index 000000000..c81a3dd40 --- /dev/null +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordZeroDetailService.java @@ -0,0 +1,7 @@ +package com.logpm.aftersales.service; + +import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity; +import org.springblade.core.mp.base.BaseService; + +public interface IAftersalesAbnormalRecordZeroDetailService extends BaseService { +} diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordZeroDetailServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordZeroDetailServiceImpl.java new file mode 100644 index 000000000..e78854b95 --- /dev/null +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordZeroDetailServiceImpl.java @@ -0,0 +1,16 @@ +package com.logpm.aftersales.service.impl; + +import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity; +import com.logpm.aftersales.mapper.AftersalesAbnormalRecordZeroDetailMapper; +import com.logpm.aftersales.service.IAftersalesAbnormalRecordZeroDetailService; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +@Slf4j +public class AftersalesAbnormalRecordZeroDetailServiceImpl extends BaseServiceImpl implements IAftersalesAbnormalRecordZeroDetailService { +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java index abb6d2ecf..27bc19be8 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java @@ -516,4 +516,17 @@ public class DistributionParcelListClient implements IDistributionParcelListClie return distributionParcelListService.list(queryWrapper); } + + @Override + public List findEntityVOListByOrderCode(String orderCode, Long fromWarehouseId) { + return distributionParcelListService.findEntityVOListByOrderCode(orderCode,fromWarehouseId); + } + + @Override + public void addZeroQuantity(Long packageId, int num) { + //零担加了数量 + distributionParcelListService.addZeroPackageQuantity(packageId,num); + //对应的parceNumber也要加上在库数量 + distributionParcelNumberService.addZeroQuantity(packageId,num); + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java index 495f02454..d46248cc3 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java @@ -16,13 +16,14 @@ */ package com.logpm.distribution.feign; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.logpm.distribution.entity.DistributionParcelNumberEntity; +import com.logpm.distribution.service.IDistributionParcelNumberService; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.BladePage; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; -import com.logpm.distribution.entity.DistributionParcelNumberEntity; -import com.logpm.distribution.service.IDistributionParcelNumberService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; @@ -57,4 +58,16 @@ public class DistributionParcelNumberClient implements IDistributionParcelNumber distributionParcelNumberService.saveBatch(parcelNumberList); } + @Override + public List findListByParcelListIds(List parcelListIds) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("parcel_list_id", parcelListIds); + return distributionParcelNumberService.list(queryWrapper); + } + + @Override + public void updateList(List updateParceNumberList) { + distributionParcelNumberService.updateBatchById(updateParceNumberList); + } + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java index 98d024307..bd019cb23 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java @@ -299,4 +299,8 @@ public interface DistributionParcelListMapper extends BaseMapper clearTrayList); List findPackageGoodsListByWaybillNo(@Param("waybillNo") String waybillNo); + + List findEntityVOListByOrderCode(@Param("orderCode") String orderCode,@Param("fromWarehouseId") Long fromWarehouseId); + + void addZeroPackageQuantity(@Param("packageId") Long packageId, @Param("num") int num); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml index dabe84761..b9c4ea74c 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml @@ -1884,5 +1884,20 @@ where lwwd.order_code = #{waybillNo} + + + + + update logpm_distribution_parcel_list + set quantity = quantity + #{num} + where id = #{packageId} + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.java index 26b6142a7..13a37a426 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelNumberMapper.java @@ -74,4 +74,6 @@ public interface DistributionParcelNumberMapper extends BaseMapper + + UPDATE + logpm_distribution_parcel_number + SET + hand_quantity = hand_quantity + #{num} + WHERE + parcel_list_id = #{packageId} + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java index a9d902ce7..b2c9a4afb 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java @@ -258,4 +258,7 @@ public interface IDistributionParcelListService extends BaseService findPackageGoodsListByWaybillNo(String waybillNo); + List findEntityVOListByOrderCode(String orderCode, Long fromWarehouseId); + + void addZeroPackageQuantity(Long packageId, int num); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelNumberService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelNumberService.java index e041e0a3b..efd3ac722 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelNumberService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelNumberService.java @@ -78,4 +78,6 @@ public interface IDistributionParcelNumberService extends BaseService findEntityVOListByOrderCode(String orderCode, Long fromWarehouseId) { + return baseMapper.findEntityVOListByOrderCode(orderCode,fromWarehouseId); + } + + @Override + public void addZeroPackageQuantity(Long packageId, int num) { + baseMapper.addZeroPackageQuantity(packageId,num); + } + private JSONObject handleLogJSONObject(BasicdataWarehouseEntity warehouse, BladeUser user, String orderPackageCode, String content, Integer node) { JSONObject trunklinePackageTrackLog = new JSONObject(); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelNumberServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelNumberServiceImpl.java index 1a05df9b1..f4565d1f5 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelNumberServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelNumberServiceImpl.java @@ -16,31 +16,29 @@ */ package com.logpm.distribution.service.impl; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.distribution.dto.DistributionParcelNumberDTO; import com.logpm.distribution.entity.DistributionParcelListEntity; import com.logpm.distribution.entity.DistributionParcelNumberEntity; import com.logpm.distribution.entity.DistributionStockArticleEntity; -import com.logpm.distribution.service.IDistributionParcelListService; -import com.logpm.distribution.service.IDistributionStockArticleService; -import com.logpm.distribution.vo.DistributionParcelNumberVO; import com.logpm.distribution.excel.DistributionParcelNumberExcel; import com.logpm.distribution.mapper.DistributionParcelNumberMapper; +import com.logpm.distribution.service.IDistributionParcelListService; import com.logpm.distribution.service.IDistributionParcelNumberService; -import lombok.AllArgsConstructor; +import com.logpm.distribution.service.IDistributionStockArticleService; +import com.logpm.distribution.vo.DistributionParcelNumberVO; import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import org.springblade.core.mp.base.BaseServiceImpl; + import java.util.List; import java.util.concurrent.atomic.AtomicInteger; -import java.util.stream.Collectors; /** * 订单零担包件数量记录 服务实现类 @@ -175,4 +173,9 @@ public class DistributionParcelNumberServiceImpl extends BaseServiceImpl zeroPackageList = loadCarsDTO.getZeroPackageList(); try{ @@ -607,8 +609,12 @@ public class CarsLoadApiController { log.warn(method+"订单号为空 orderCode={}",orderCode); return R.fail(405,"订单号为空"); } + if(CollUtil.isEmpty(zeroPackageList)){ + log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList); + return R.fail(405,"品类信息为空"); + } - return carsLoadService.unloadZero(carsLoadScanId,loadId,waybillNo,enterNum,myCurrentWarehouse.getId(),1,trayCode,orderCode,"零担正常卸车",null,null); + return carsLoadService.unloadZero(carsLoadScanId,loadId,waybillNo,enterNum,myCurrentWarehouse.getId(),1,trayCode,orderCode,"零担正常卸车",null,null,zeroPackageList); }catch (CustomerException e){ log.error(e.message,e); return R.fail(e.code,e.message); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java index fed8426ca..4a79bf7fe 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java @@ -77,4 +77,6 @@ public interface TrunklineAdvanceDetailMapper extends BaseMapper findAdvanceDetailListByAdvanceIds(@Param("param") AdvanceDTO advanceDTO); List findAdvanceDetailListByWaybillId(@Param("param") AdvanceDTO advanceDTO); + + List findTotalNumByOrderCodes(@Param("orderCodeSet") Set orderCodeSet); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml index f38eddc76..2e340dd73 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml @@ -480,4 +480,17 @@ + + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java index b9881f419..0e6baf314 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java @@ -2,11 +2,16 @@ package com.logpm.trunkline.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; +import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO; +import org.apache.ibatis.annotations.Param; import org.mapstruct.Mapper; +import java.util.List; + @Mapper public interface TrunklineScanZeroDetailMapper extends BaseMapper { + List findListByCarsLoadScanId(@Param("carsLoadScanId") Long carsLoadScanId); - + List findListByCarsLoadScanIds(@Param("carsLoadScanIds") List carsLoadScanIds); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml new file mode 100644 index 000000000..43c476d4b --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + 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 2d097a852..a9e43b726 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 @@ -87,4 +87,7 @@ public interface ITrunklineAdvanceDetailService extends BaseService findAdvanceDetailListByAdvanceIds(AdvanceDTO advanceDTO); List findAdvanceDetailListByWaybillId(AdvanceDTO advanceDTO); + + List findTotalNumByOrderCodes(Set 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 84a0a0cdd..8f158ce25 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 @@ -46,6 +46,7 @@ public interface ITrunklineCarsLoadScanService extends BaseService findPackageWithOrderList(Long loadId, Long warehouseId); List findUnloadPackageList(Long loadId, Long warehouseId, String waybillNo, String orderCode); + List findUnloadZeroList(Long loadId, Long warehouseId, String waybillNo, String orderCode); Integer findUnloadNumByLoadId(Long loadId); 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 6d5697895..9cf630809 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 @@ -95,7 +95,7 @@ public interface ITrunklineCarsLoadService extends BaseService zeroPackageList); R findLoadScanWaybillDetailList(Long loadId, String orderCode, Long warehouseId); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java index 320846b09..19837f625 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineScanZeroDetailService.java @@ -1,7 +1,13 @@ package com.logpm.trunkline.service; import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; +import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO; import org.springblade.core.mp.base.BaseService; +import java.util.List; + public interface ITrunklineScanZeroDetailService extends BaseService { + List findListByCarsLoadScanId(Long carsLoadScanId); + + List findListByCarsLoadScanIds(List carsLoadScanIds); } 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 0dc5b67d7..b90f50bfb 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 @@ -4,14 +4,18 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.json.JSONUtil; import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity; +import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity; import com.logpm.aftersales.feign.IAftersalesAbnormalRecordClient; +import com.logpm.aftersales.feign.IAftersalesAbnormalRecordZeroDetailClient; import com.logpm.aftersales.feign.IAftersalesWorkOrderClient; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.distribution.entity.DistributionStockArticleEntity; +import com.logpm.distribution.feign.IDistributionParcelListClient; import com.logpm.distribution.feign.IDistributionStockArticleClient; import com.logpm.trunkline.entity.*; import com.logpm.trunkline.service.*; +import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO; import com.logpm.trunkline.vo.UnloadReportVO; import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.feign.IWarehouseWaybillClient; @@ -23,6 +27,7 @@ import org.springblade.common.constant.TenantNum; import org.springblade.common.constant.carsload.CarsLoadLogTypeConstant; import org.springblade.common.exception.CustomerException; import org.springblade.common.utils.CommonUtil; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.system.cache.DictBizCache; import org.springframework.amqp.rabbit.connection.CorrelationData; import org.springframework.amqp.rabbit.core.RabbitTemplate; @@ -33,6 +38,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -61,6 +67,14 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService { private ITrunklineCarsUnloadLogService trunklineCarsUnloadLogService; @Autowired private RabbitTemplate rabbitTemplate; + @Autowired + private IDistributionParcelListClient distributionParcelListClient; + @Autowired + private ITrunklineScanZeroDetailService trunklineScanZeroDetailService; + @Autowired + private IOpenOrderAsyncService openOrderAsyncService; + @Autowired + private IAftersalesAbnormalRecordZeroDetailClient abnormalRecordZeroDetailClient; @LogpmAsync("asyncExecutor") @Override @@ -521,6 +535,9 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService { Integer num = carsLoadScanEntity.getNum(); String scanStatus = carsLoadScanEntity.getScanStatus(); Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId(); + WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo); + Long waybillId = warehouseWaybill.getId(); + List zeroDetailVOList = trunklineScanZeroDetailService.findListByCarsLoadScanId(scanId); //卸车数量异常 AftersalesAbnormalRecordEntity abnormalRecordEntity = new AftersalesAbnormalRecordEntity(); @@ -547,7 +564,15 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService { DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); if(!Objects.isNull(stockArticleEntity)){ distributionStockArticleClient.addHandQuantity(stockArticleEntity.getId(),num-unloadNum); + zeroDetailVOList.forEach(zeroDetailVO -> { + Long packageId = zeroDetailVO.getPackageId(); + Integer loadingNum = zeroDetailVO.getLoadingNum(); + Integer unloadNum1 = zeroDetailVO.getUnloadNum(); + distributionParcelListClient.addZeroQuantity(packageId,loadingNum-unloadNum1); + }); } + String content = warehouseName+"干线未签收卸车回库,总数/卸车数:"+num+"/"+num+",卸车时间"+ CommonUtil.dateToStringGeneral(new Date());; + openOrderAsyncService.saveLog(waybillId,waybillNo,"80","零担未签收回库",content,AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName); } abnormalRecordEntity.setSendOrderStatus(0); abnormalRecordEntity.setUpTime(new Date()); @@ -558,7 +583,34 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService { addList.add(abnormalRecordEntity); }); } - abnormalRecordClient.addAbnormalRecordList(addList); + List aftersalesAbnormalRecordEntities = abnormalRecordClient.addAbnormalRecordListReturnList(addList); + //把aftersalesAbnormalRecordEntities只保留isZero等于1的数据 + List abnormalRecordEntities1 = aftersalesAbnormalRecordEntities.stream().filter(abnormalRecordEntity -> abnormalRecordEntity.getIsZero() == 1).collect(Collectors.toList()); + //把abnormalRecordEntities1中所有元素associationId放入一个集合 + List associationIdList = abnormalRecordEntities1.stream().map(AftersalesAbnormalRecordEntity::getAssociationId).collect(Collectors.toList()); + List scanZeroDetailVOList = trunklineScanZeroDetailService.findListByCarsLoadScanIds(associationIdList); + //把scanZeroDetailVOList所有元素通过scanId进行分组 + Map> scanZeroDetailVOMap = scanZeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); + List abnormalRecordZeroDetailEntityList = new ArrayList<>(); + abnormalRecordEntities1.forEach(abnormalRecordEntity -> { + Long associationId = abnormalRecordEntity.getAssociationId(); + List zeroDetailVOList = scanZeroDetailVOMap.get(associationId); + Long abnormalRecordId = abnormalRecordEntity.getId(); + zeroDetailVOList.forEach(zeroDetailVO -> { + AftersalesAbnormalRecordZeroDetailEntity abnormalRecordZeroDetailEntity = new AftersalesAbnormalRecordZeroDetailEntity(); + abnormalRecordZeroDetailEntity.setAbnormalRecordId(abnormalRecordId); + abnormalRecordZeroDetailEntity.setPackageId(zeroDetailVO.getPackageId()); + abnormalRecordZeroDetailEntity.setGoodsId(zeroDetailVO.getGoodsId()); + abnormalRecordZeroDetailEntity.setGoodsName(zeroDetailVO.getGoodsName()); + abnormalRecordZeroDetailEntity.setAbnormalNum(zeroDetailVO.getLoadingNum()-zeroDetailVO.getUnloadNum()); + abnormalRecordZeroDetailEntity.setReturnNum(0); + abnormalRecordZeroDetailEntity.setIncomingNum(0); + abnormalRecordZeroDetailEntityList.add(abnormalRecordZeroDetailEntity); + }); + }); + if(CollUtil.isNotEmpty(abnormalRecordZeroDetailEntityList)){ + abnormalRecordZeroDetailClient.addAbnormalRecordZeroDetail(abnormalRecordZeroDetailEntityList); + } } @LogpmAsync("asyncExecutor") 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 79f265c73..83977da86 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 @@ -357,4 +357,9 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl findAdvanceDetailListByWaybillId(AdvanceDTO advanceDTO) { return baseMapper.findAdvanceDetailListByWaybillId(advanceDTO); } + + @Override + public List findTotalNumByOrderCodes(Set orderCodeSet) { + return baseMapper.findTotalNumByOrderCodes(orderCodeSet); + } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java index 2e7e8f3c4..ce14ec96c 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java @@ -9,6 +9,7 @@ import com.logpm.trunkline.dto.ProductInfoDTO; import com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity; import com.logpm.trunkline.mapper.TrunklineCarsLoadScanMapper; import com.logpm.trunkline.service.ITrunklineCarsLoadScanService; +import com.logpm.trunkline.service.ITrunklineScanZeroDetailService; import com.logpm.trunkline.vo.*; import com.logpm.warehouse.entity.WarehouseWaybillEntity; import lombok.AllArgsConstructor; @@ -16,16 +17,19 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.stereotype.Service; -import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Slf4j @Service @AllArgsConstructor public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl implements ITrunklineCarsLoadScanService { + + private final ITrunklineScanZeroDetailService scanZeroDetailService; + @Override public Integer findNumByLoadId(Long loadId) { return baseMapper.findNumByLoadId(loadId); @@ -101,6 +105,27 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl findUnloadZeroList(Long loadId, Long warehouseId, String waybillNo, String orderCode) { + List unloadPackageList = baseMapper.findUnloadPackageList(loadId, warehouseId, waybillNo, orderCode); + //把unloadPackageList中所有元素的carsLoadScanId放入一个集合 + // 创建一个包含所有carsLoadScanId的新列表 + List carsLoadScanIds = unloadPackageList.stream() + .map(UnloadPackageVO::getCarsLoadScanId) + .collect(Collectors.toList()); + List scanZeroDetailList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds); + //把scanZeroDetailList中所有元素通过id进行分组 + Map> scanZeroDetailMap = scanZeroDetailList.stream() + .collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); + + unloadPackageList.forEach(unloadPackageVO -> { + Long carsLoadScanId = unloadPackageVO.getCarsLoadScanId(); + List list = scanZeroDetailMap.get(carsLoadScanId); + unloadPackageVO.setScanZeroDetailList(list); + }); + return unloadPackageList; + } + @Override public Integer findUnloadNumByLoadId(Long loadId) { return baseMapper.findUnloadNumByLoadId(loadId); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index 63c44abd7..6561afc0b 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -28,6 +28,7 @@ import com.logpm.distribution.entity.DistributionStockArticleEntity; import com.logpm.distribution.feign.IDistributionParcelListClient; import com.logpm.distribution.feign.IDistributionParcelNumberClient; import com.logpm.distribution.feign.IDistributionStockArticleClient; +import com.logpm.distribution.vo.DistributionParcelListVO; import com.logpm.factorydata.enums.BrandEnums; import com.logpm.factorydata.feign.IFactoryDataClient; import com.logpm.factorydata.util.FactoryDataMessageSender; @@ -1200,162 +1201,155 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl> fromWarehouseIdmap = orderCodeList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getFromWarehouseId)); fromWarehouseIdmap.keySet().forEach(fromWarehouseId -> { - TrunklineCarsOrderEntity trunklineCarsOrderEntity = trunklineCarsOrderService.findEntityByLoadIdAndWarehouseIdAndOrderCodeAndWaybillNo(loadId, fromWarehouseId, orderCode, orderCode); - if(!Objects.isNull(trunklineCarsOrderEntity)){ - Integer realNum = trunklineCarsOrderEntity.getRealNum(); - List fromWarehouseIdList = fromWarehouseIdmap.get(fromWarehouseId); - //把fromWarehouseIdList中所有元素的unloadNum累加 - int unloadNum = fromWarehouseIdList.stream().mapToInt(TrunklineCarsLoadScanEntity::getUnloadNum).sum(); - DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); - if(!Objects.isNull(stockArticleEntity)){ - Integer handQuantity = stockArticleEntity.getHandQuantity(); - - if(unloadNum > realNum){ - //卸车数大于实际装车数 - throw new CustomerException(405,"零担订单"+orderCode+"卸车件数已大于实际装车件数,请去调整补录"); - }else { -// if(unloadNum < realNum){ -// distributionStockArticleClient.addHandQuantity(stockArticleEntity.getId(),realNum-unloadNum); -// } - - DistributionStockArticleEntity newStockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId); - if (Objects.isNull(newStockArticleEntity)) { - newStockArticleEntity = new DistributionStockArticleEntity(); - BeanUtil.copy(stockArticleEntity, newStockArticleEntity); - newStockArticleEntity.setId(null); + List fromWarehouseIdList = fromWarehouseIdmap.get(fromWarehouseId); + + int realNum = fromWarehouseIdList.stream().mapToInt(TrunklineCarsLoadScanEntity::getNum).sum(); + //把fromWarehouseIdList中所有元素的unloadNum累加 + int unloadNum = fromWarehouseIdList.stream().mapToInt(TrunklineCarsLoadScanEntity::getUnloadNum).sum(); + DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); + if(!Objects.isNull(stockArticleEntity)){ + + if(unloadNum > realNum){ + //卸车数大于实际装车数 + throw new CustomerException(405,"零担订单"+orderCode+"卸车件数已大于实际装车件数,请去调整补录"); + }else { + + //把fromWarehouseIdList中所有元素的id放入一个集合 + List carsLoadScanIds = fromWarehouseIdList.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); + + List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds); + //把zeroDetailVOList所有元素通过goodsName进行分组 + Map> goodsNamemap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getGoodsName)); + + + DistributionStockArticleEntity newStockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId); + if (Objects.isNull(newStockArticleEntity)) { + newStockArticleEntity = new DistributionStockArticleEntity(); + BeanUtil.copy(stockArticleEntity, newStockArticleEntity); + Integer totalNumber = stockArticleEntity.getTotalNumber(); + newStockArticleEntity.setId(null); + if(totalNumber == unloadNum){ + newStockArticleEntity.setOrderReceiveStatus("30"); + }else{ newStockArticleEntity.setOrderReceiveStatus("20"); - newStockArticleEntity.setOrderStatus("10"); - newStockArticleEntity.setHandQuantity(unloadNum); - newStockArticleEntity.setIncomingNum(unloadNum); - newStockArticleEntity.setWarehouse(warehouseEntity.getName()); - newStockArticleEntity.setWarehouseId(warehouseEntity.getId()); - newStockArticleEntity.setAllocation(null); - newStockArticleEntity.setTrays(null); - newStockArticleEntity.setCarsLoadNum(0); - Long orderId = distributionStockArticleClient.addData(newStockArticleEntity); - if (orderId != 0) { - Integer isTransfer = 1; - List parcelListEntityList = distributionParcelListClient.findEntityListByOrderCode(orderCode, fromWarehouseId); - List ls = new ArrayList<>(); - for (DistributionParcelListEntity parcelListEntity : parcelListEntityList) { - DistributionParcelListEntity newParcelListEntity = new DistributionParcelListEntity(); - BeanUtil.copy(parcelListEntity, newParcelListEntity); - newParcelListEntity.setId(null); - newParcelListEntity.setWarehouseId(warehouseId); - newParcelListEntity.setWarehouse(warehouseEntity.getName()); - newParcelListEntity.setStockArticleId(orderId); - Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId(); - if(warehouseId.equals(acceptWarehouseId)){ - newParcelListEntity.setIsTransfer(0); - isTransfer = 0; -// String operationRemark = "运单装车"+unloadNum+"件 干线批次号:"+carsLoadEntity.getCarsNo()+",车牌号:"+carsLoadEntity.getCarNumber()+",司机姓名:"+carsLoadEntity.getDriverName()+",司机手机:"+carsLoadEntity.getDriverMobile(); -// openOrderAsyncService.saveLog(waybillId, waybillNo, "30", "干线装车", operationRemark, AuthUtil.getNickName(), AuthUtil.getUserId(), warehouseId, warehouseName); - }else{ - newParcelListEntity.setIsTransfer(1); - } - Long orderPackageId = distributionParcelListClient.addReturnId(newParcelListEntity); - - DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity(); - parcelNumberEntity.setStockArticleId(orderId); - parcelNumberEntity.setParcelListId(orderPackageId); - parcelNumberEntity.setQuantity(newParcelListEntity.getQuantity()); - parcelNumberEntity.setHandQuantity(newParcelListEntity.getQuantity()); - parcelNumberEntity.setDeliveryQuantity(0); - parcelNumberEntity.setSigninQuantity(0); - parcelNumberEntity.setOutboundQuantity(0); - parcelNumberEntity.setWarehouseId(warehouseId); - ls.add(parcelNumberEntity); + } + newStockArticleEntity.setOrderStatus("10"); + newStockArticleEntity.setHandQuantity(unloadNum); + newStockArticleEntity.setIncomingNum(unloadNum); + newStockArticleEntity.setWarehouse(warehouseEntity.getName()); + newStockArticleEntity.setWarehouseId(warehouseEntity.getId()); + newStockArticleEntity.setAllocation(null); + newStockArticleEntity.setTrays(null); + newStockArticleEntity.setCarsLoadNum(0); + Long orderId = distributionStockArticleClient.addData(newStockArticleEntity); + if (orderId != 0) { + + Integer isTransfer = 1; + List parcelListEntityList = distributionParcelListClient.findEntityVOListByOrderCode(orderCode, fromWarehouseId); + List ls = new ArrayList<>(); + for (DistributionParcelListVO parcelListEntity : parcelListEntityList) { + DistributionParcelListEntity newParcelListEntity = new DistributionParcelListEntity(); + String firsts = parcelListEntity.getFirsts(); + List detailVOList = goodsNamemap.get(firsts); + //把detailVOList所有元素的unloadNum求和,如果为空用0代替 + int totalUnloadNum = detailVOList.stream() + .mapToInt(vo -> Optional.ofNullable(vo.getUnloadNum()).orElse(0)) + .sum(); + + BeanUtil.copy(parcelListEntity, newParcelListEntity); + newParcelListEntity.setId(null); + newParcelListEntity.setWarehouseId(warehouseId); + newParcelListEntity.setWarehouse(warehouseEntity.getName()); + newParcelListEntity.setStockArticleId(orderId); + newParcelListEntity.setQuantity(totalUnloadNum); + Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId(); + if(warehouseId.equals(acceptWarehouseId)){ + newParcelListEntity.setIsTransfer(0); + isTransfer = 0; + }else{ + newParcelListEntity.setIsTransfer(1); } - distributionParcelNumberClient.addBatch(ls); - -// if(isTransfer == 0){ -// //查询零担发车件数 -// List zeroNumVOList = trunklineCarsLoadScanService.findZeroStartNum(loadId,warehouseId); -// if(CollUtil.isNotEmpty(zeroNumVOList)){ -// zeroNumVOList.forEach(zeroNumVO -> { -// String waybillNo = zeroNumVO.getWaybillNo(); -// Integer num = zeroNumVO.getNum(); -// WarehouseWaybillEntity waybill = warehouseWaybillClient.findByWaybillNo(waybillNo); -// Integer totalCount = waybill.getTotalCount(); -// Integer waybillStatusInt = Integer.parseInt(waybill.getWaybillStatus()); -// TrunklineWaybillOrderEntity waybillOrderEntity = trunklineWaybillOrderService.findEntityByWaybillNoAndOrderCode(waybillNo,waybillNo); -// if(!Objects.isNull(waybillOrderEntity)){ -// Integer handleNumber = waybillOrderEntity.getHandleNumber(); -// if(waybillStatusInt <= 40){ -// if(Objects.isNull(handleNumber)){ -// handleNumber = 0; -// } -// int i = handleNumber - num; -// if(i==0){ -// waybill.setWaybillStatus("20"); -// waybillOrderEntity.setHandleNumber(totalCount); -// }else{ -// waybill.setWaybillStatus("30"); -// waybillOrderEntity.setHandleNumber(i); -// } -// -// warehouseWaybillClient.updateEntity(waybill); -// trunklineWaybillOrderService.updateById(waybillOrderEntity); -// } -// -// } -// -// }); -// } -// } + Long orderPackageId = distributionParcelListClient.addReturnId(newParcelListEntity); + + DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity(); + parcelNumberEntity.setStockArticleId(orderId); + parcelNumberEntity.setParcelListId(orderPackageId); + parcelNumberEntity.setQuantity(parcelListEntity.getZeroPackageTotalNum()); + parcelNumberEntity.setHandQuantity(totalUnloadNum); + parcelNumberEntity.setDeliveryQuantity(0); + parcelNumberEntity.setSigninQuantity(0); + parcelNumberEntity.setOutboundQuantity(0); + parcelNumberEntity.setWarehouseId(warehouseId); + ls.add(parcelNumberEntity); } - } else { - Integer hQuantity = newStockArticleEntity.getHandQuantity() + unloadNum; - Integer incomingNum = newStockArticleEntity.getIncomingNum() + unloadNum; - Integer totalNumber = newStockArticleEntity.getTotalNumber(); - - if (incomingNum.equals(totalNumber)) { - if (hQuantity.equals(totalNumber)) { - newStockArticleEntity.setOrderStatus("20"); - } else { - newStockArticleEntity.setOrderStatus("30"); - } - newStockArticleEntity.setOrderReceiveStatus("30"); + distributionParcelNumberClient.addBatch(ls); + } + } else { + Integer hQuantity = newStockArticleEntity.getHandQuantity() + unloadNum; + Integer incomingNum = newStockArticleEntity.getIncomingNum() + unloadNum; + Integer totalNumber = newStockArticleEntity.getTotalNumber(); + + if (incomingNum.equals(totalNumber)) { + if (hQuantity.equals(totalNumber)) { + newStockArticleEntity.setOrderStatus("20"); } else { - if (incomingNum.equals(hQuantity)) { - newStockArticleEntity.setOrderStatus("10"); - } else { - newStockArticleEntity.setOrderStatus("30"); - } - newStockArticleEntity.setOrderReceiveStatus("20"); + newStockArticleEntity.setOrderStatus("30"); } - newStockArticleEntity.setHandQuantity(hQuantity); - newStockArticleEntity.setIncomingNum(incomingNum); - - distributionStockArticleClient.saveOrUpdate(newStockArticleEntity); -// String waybillNumber = newStockArticleEntity.getWaybillNumber(); -// WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNumber); -// Long destinationWarehouseId = warehouseWaybillEntity.getDestinationWarehouseId(); -// if(warehouseId.equals(destinationWarehouseId)){ -// QueryWrapper queryWrapper1 = new QueryWrapper<>(); -// queryWrapper1.eq("waybill_no",stockArticleEntity.getWaybillNumber()) -// .eq("order_code",stockArticleEntity.getWaybillNumber()); -// TrunklineWaybillOrderEntity one = trunklineWaybillOrderService.getOne(queryWrapper1); -// if(!Objects.isNull(one)){ -// Integer totalCount = warehouseWaybillEntity.getTotalCount(); -// Integer waybillStatusInt = Integer.parseInt(warehouseWaybillEntity.getWaybillStatus()); -// if(waybillStatusInt <= 30){ -// Integer handleNumber = one.getHandleNumber(); -// int total = handleNumber + unloadNum; -// if(total < totalCount){ -// warehouseWaybillEntity.setWaybillStatus("50"); -// one.setHandleNumber(total); -// }else{ -// warehouseWaybillEntity.setWaybillStatus("60"); -// one.setHandleNumber(totalCount); -// } -// warehouseWaybillClient.updateEntity(warehouseWaybillEntity); -// trunklineWaybillOrderService.updateById(one); -// } -// } -// } + newStockArticleEntity.setOrderReceiveStatus("30"); + } else { + newStockArticleEntity.setOrderReceiveStatus("20"); + } + newStockArticleEntity.setHandQuantity(hQuantity); + newStockArticleEntity.setIncomingNum(incomingNum); + + List listEntityList = distributionParcelListClient.findEntityListByOrderCode(orderCode, warehouseId); + //把listEntityList中所有元素的id放入一个集合 + List parcelListIds = listEntityList.stream().map(DistributionParcelListEntity::getId).collect(Collectors.toList()); + List parceNumberList = distributionParcelNumberClient.findListByParcelListIds(parcelListIds); + //把parceNumberList转化成以parcelListId为key的Map + Map mapByParcelListId = parceNumberList.stream() + .collect(Collectors.toMap( + DistributionParcelNumberEntity::getParcelListId, + entity -> entity, + (entity1, entity2) -> entity1)); // 处理可能的键冲突 + + + + List updateParceList = new ArrayList<>(); + List updateParceNumberList = new ArrayList<>(); + + listEntityList.forEach(entity -> { + Long parceListId = entity.getId(); + String firsts = entity.getFirsts(); + List detailVOList = goodsNamemap.get(firsts); + //把detailVOList所有元素的unloadNum求和,如果为空用0代替 + int totalUnloadNum = detailVOList.stream() + .mapToInt(vo -> Optional.ofNullable(vo.getUnloadNum()).orElse(0)) + .sum(); + Integer quantity = entity.getQuantity(); + DistributionParcelListEntity updatePaceList = new DistributionParcelListEntity(); + updatePaceList.setId(parceListId); + updatePaceList.setQuantity(quantity+totalUnloadNum); + updateParceList.add(updatePaceList); + + DistributionParcelNumberEntity parcelNumberEntity = mapByParcelListId.get(parceListId); + if(!Objects.isNull(parcelNumberEntity)){ + Integer handQuantity = parcelNumberEntity.getHandQuantity(); + DistributionParcelNumberEntity updateParceNumberEntity = new DistributionParcelNumberEntity(); + updateParceNumberEntity.setId(parcelNumberEntity.getId()); + updateParceNumberEntity.setHandQuantity(handQuantity + totalUnloadNum); + updateParceNumberList.add(updateParceNumberEntity); + } + }); + if(CollUtil.isNotEmpty(updateParceList)){ + distributionParcelListClient.updateList(updateParceList); + } + if(CollUtil.isNotEmpty(updateParceNumberList)){ + distributionParcelNumberClient.updateList(updateParceNumberList); } + distributionStockArticleClient.saveOrUpdate(newStockArticleEntity); + } } } @@ -1364,48 +1358,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl queryWrapper1 = new QueryWrapper<>(); -// queryWrapper1.eq("waybill_no",orderCode) -// .eq("order_code",orderCode); -// TrunklineWaybillOrderEntity one = trunklineWaybillOrderService.getOne(queryWrapper1); -// if(!Objects.isNull(one)){ -// Integer handleNumber = one.getHandleNumber(); -// Integer totalCount = warehouseWaybillEntity.getTotalCount(); -// Integer waybillStatusInt = Integer.parseInt(warehouseWaybillEntity.getWaybillStatus()); -// int total = handleNumber + unloadNum; -// if(waybillStatusInt < 50){ -// if(total != totalCount){ -// warehouseWaybillEntity.setWaybillStatus("50"); -// one.setHandleNumber(total); -// warehouseWaybillClient.updateEntity(warehouseWaybillEntity); -// trunklineWaybillOrderService.updateById(one); -// }else{ -// warehouseWaybillEntity.setWaybillStatus("60"); -// one.setHandleNumber(total); -// warehouseWaybillClient.updateEntity(warehouseWaybillEntity); -// trunklineWaybillOrderService.updateById(one); -// } -// }else if(waybillStatusInt == 50){ -// if(total == totalCount){ -// warehouseWaybillEntity.setWaybillStatus("60"); -// one.setHandleNumber(total); -// warehouseWaybillClient.updateEntity(warehouseWaybillEntity); -// trunklineWaybillOrderService.updateById(one); -// } -// } -// } -// } + }); } //无装车记录异常日志记录 try { -// carsLoadAsyncService. carsLoadAsyncService.abnormalListUnloadCheckByLoadIdAndWarehouseId(loadId, warehouseId, currentCarsLoadLineEntity.getNodeName(), AuthUtil.getTenantId(), AuthUtil.getUserId(), AuthUtil.getNickName(), Func.firstLong(AuthUtil.getDeptId()),currentCarsLoadLineEntity); List orderPackageCodes = trunklineCarsLoadScanService.findUnloadByLoadIdAndWarehouseId(loadId, warehouseId); @@ -3218,8 +3176,12 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroPackageList = loadCarsDTO.getZeroPackageList(); BasicdataTrayEntity basicdataTrayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode); if(Objects.isNull(basicdataTrayEntity)){ @@ -4050,7 +4017,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl map = new HashMap<>(); map.put("trayType", trayType); @@ -4559,14 +4531,32 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl unloadPackageList = batchUnloadDTO.getUnloadPackageList(); List unloadZeroList = batchUnloadDTO.getUnloadZeroList(); - - for (UnloadZeroDTO unloadZeroDTO : unloadZeroList) { - Long carsLoadScanId = unloadZeroDTO.getCarsLoadScanId(); - String waybillNo = unloadZeroDTO.getWaybillNo(); - Integer enterNum = unloadZeroDTO.getEnterNum(); - String trayCode = unloadZeroDTO.getTrayCode(); - String orderCode = unloadZeroDTO.getOrderCode(); - unloadZero(carsLoadScanId,loadId, waybillNo, enterNum, warehouseId, 1, trayCode, orderCode, "批量卸车零担正常卸车",null,null); + //把unloadZeroList中所有元素的carsLoadScanId放入一个list中 + List carsLoadScanIdList = unloadZeroList.stream().map(UnloadZeroDTO::getCarsLoadScanId).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(carsLoadScanIdList)){ + List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIdList); + //把zeroDetailVOList所有元素通过id分组 + Map> zeroDetailVOMap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getId)); + + for (UnloadZeroDTO unloadZeroDTO : unloadZeroList) { + Long carsLoadScanId = unloadZeroDTO.getCarsLoadScanId(); + String waybillNo = unloadZeroDTO.getWaybillNo(); + Integer enterNum = unloadZeroDTO.getEnterNum(); + String trayCode = unloadZeroDTO.getTrayCode(); + String orderCode = unloadZeroDTO.getOrderCode(); + + List list = zeroDetailVOMap.get(carsLoadScanId); + List zeroPackageList = new ArrayList<>(); + list.forEach(zeroDetailVO -> { + ZeroPackageDTO zeroPackageDTO = new ZeroPackageDTO(); + zeroPackageDTO.setPackageId(zeroDetailVO.getPackageId()); + zeroPackageDTO.setGoodsId(zeroDetailVO.getGoodsId()); + zeroPackageDTO.setGoodsName(zeroDetailVO.getGoodsName()); + zeroPackageDTO.setEnterNum(zeroDetailVO.getLoadingNum()); + zeroPackageList.add(zeroPackageDTO); + }); + unloadZero(carsLoadScanId,loadId, waybillNo, enterNum, warehouseId, 1, trayCode, orderCode, "批量卸车零担正常卸车",null,null,zeroPackageList); + } } List carsLoadScanIds = new ArrayList<>(); @@ -4596,7 +4586,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl stockArticleEntityList = distributionStockArticleClient.findListByOrderCodesAndWarehouseId(findParamterDTO); stockArticleEntities.addAll(stockArticleEntityList); - }); //把stockArticleEntities转成orderCode为键值的map @@ -8953,9 +8942,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroPackageList) { log.info("#############unloadZero: 卸车零担"); + if(CollUtil.isEmpty(zeroPackageList)){ + log.warn("#############unloadZero: ;品类信息有误 zeroPackageList={}", zeroPackageList); + return R.fail(405, "品类信息有误"); + } + TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId); if (Objects.isNull(carsLoadEntity)) { log.warn("#############unloadZero: 配载计划信息不存在 loadId={}", loadId); @@ -9029,6 +9023,27 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailMap = zeroPackageList.stream().collect(Collectors.toMap(ZeroPackageDTO::getGoodsId, Function.identity())); + + List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId); + List updateList = new ArrayList<>(); + zeroDetailVOList.forEach(detailVO -> { + Long goodsId = detailVO.getGoodsId(); + Long id = detailVO.getId(); + ZeroPackageDTO zeroPackageDTO = zeroDetailMap.get(goodsId); + if(!Objects.isNull(zeroPackageDTO)){ + TrunklineScanZeroDetailEntity updateEntity = new TrunklineScanZeroDetailEntity(); + updateEntity.setId(id); + updateEntity.setUnloadNum(zeroPackageDTO.getEnterNum()); + updateList.add(updateEntity); + } + }); + if(CollUtil.isNotEmpty(updateList)){ + scanZeroDetailService.updateBatchById(updateList); + } + trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode, scanCode, enterNun, 2, 1, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark); @@ -9435,23 +9450,30 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl unloadScanOrderList = trunklineCarsLoadScanService.findPackageWithOrderList(loadId, warehouseId); - for (UnloadScanOrderVO unloadScanOrderVO : unloadScanOrderList) { - Integer loadingNum = unloadScanOrderVO.getLoadingNum(); - String waybillNo = unloadScanOrderVO.getWaybillNo(); - String orderCode = unloadScanOrderVO.getOrderCode(); - Integer totalNumber = trunklineAdvanceDetailService.findTotalNumByOrderCode(orderCode); - unloadScanOrderVO.setTotalNumber(totalNumber); - List unloadPackageList = trunklineCarsLoadScanService.findUnloadPackageList(loadId, warehouseId, waybillNo, orderCode); - unloadScanOrderVO.setUnloadPackageList(unloadPackageList); + if(CollUtil.isNotEmpty(unloadScanOrderList)){ + //把unloadScanOrderList中所有元素转化成以orderCode为key的map + Map unloadScanOrderMap = unloadScanOrderList.stream().collect(Collectors.toMap(UnloadScanOrderVO::getOrderCode, Function.identity())); + Set orderCodeSet = unloadScanOrderMap.keySet(); + List orderCodeNumList = trunklineAdvanceDetailService.findTotalNumByOrderCodes(orderCodeSet); + //把orderCodeNumList中所有元素转化成以orderCode为key的map + Map orderCodeNumMap = orderCodeNumList.stream().collect(Collectors.toMap(OrderCodeNumVO::getOrderCode, Function.identity())); + + for (UnloadScanOrderVO unloadScanOrderVO : unloadScanOrderList) { + String waybillNo = unloadScanOrderVO.getWaybillNo(); + String orderCode = unloadScanOrderVO.getOrderCode(); + unloadScanOrderVO.setTotalNumber(orderCodeNumMap.get(orderCode).getTotalNum()); + List unloadPackageList = trunklineCarsLoadScanService.findUnloadPackageList(loadId, warehouseId, waybillNo, orderCode); + unloadScanOrderVO.setUnloadPackageList(unloadPackageList); + } } + //查询已装车的零担 List zeroList = trunklineCarsLoadScanService.findUnloadZeroList(loadId, warehouseId); for (UnloadZeroVO unloadZeroVO : zeroList) { - Integer loadingNum = unloadZeroVO.getLoadingNum(); String waybillNo = unloadZeroVO.getWaybillNo(); String orderCode = unloadZeroVO.getOrderCode(); - List unloadPackageList = trunklineCarsLoadScanService.findUnloadPackageList(loadId, warehouseId, waybillNo, orderCode); + List unloadPackageList = trunklineCarsLoadScanService.findUnloadZeroList(loadId, warehouseId, waybillNo, orderCode); unloadZeroVO.setUnloadPackageList(unloadPackageList); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java index 575146d32..b5590e22b 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineScanZeroDetailServiceImpl.java @@ -3,13 +3,25 @@ package com.logpm.trunkline.service.impl; import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; import com.logpm.trunkline.mapper.TrunklineScanZeroDetailMapper; import com.logpm.trunkline.service.ITrunklineScanZeroDetailService; +import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + @Service @AllArgsConstructor @Slf4j public class TrunklineScanZeroDetailServiceImpl extends BaseServiceImpl implements ITrunklineScanZeroDetailService { + @Override + public List findListByCarsLoadScanId(Long carsLoadScanId) { + return baseMapper.findListByCarsLoadScanId(carsLoadScanId); + } + + @Override + public List findListByCarsLoadScanIds(List carsLoadScanIds) { + return baseMapper.findListByCarsLoadScanIds(carsLoadScanIds); + } } From f294cc53883eb113a9499bac16f9bf185c7e04de Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Tue, 3 Sep 2024 14:28:46 +0800 Subject: [PATCH 34/73] =?UTF-8?q?feat(all):=20=E5=A2=9E=E5=8A=A0=E5=BF=97?= =?UTF-8?q?=E9=82=A6=E4=BB=93=E5=BA=93id=E9=94=99=E8=AF=AF=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logpm/factory/comfac/service/impl/AsyncDataServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/AsyncDataServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/AsyncDataServiceImpl.java index b9ee80022..48cc18ba2 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/AsyncDataServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/service/impl/AsyncDataServiceImpl.java @@ -1496,7 +1496,7 @@ public class AsyncDataServiceImpl implements IAsyncDataService { if(r.isSuccess()){ FactoryWarehouseBindVO data = r.getData(); if(ObjectUtil.isNotEmpty(data) && ObjectUtil.isNotEmpty(data.getOldWarehouseId())){ - warehouseId = Convert.toInt(data.getWarehouseId()); + warehouseId = Convert.toInt(data.getOldWarehouseId()); } } AdvanceEntity advanceEntity = findAdvanceEntityUseCacheByOrderSelfNumAndReceiptId(serviceNumEntity.getReceiptId(), serviceNumEntity.getPlatformOrderCode(), zbReceiptEntity.getDepartCode()); From c52f5a351675cdec1c3de08e779fad467df998bf Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Thu, 5 Sep 2024 16:51:39 +0800 Subject: [PATCH 35/73] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E6=A2=A6?= =?UTF-8?q?=E5=A4=A9=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logpm/factory/mt/feign/MtFactoryDataClient.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/mt/feign/MtFactoryDataClient.java b/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/mt/feign/MtFactoryDataClient.java index f656f2b99..6d4d6c19a 100644 --- a/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/mt/feign/MtFactoryDataClient.java +++ b/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/mt/feign/MtFactoryDataClient.java @@ -4,8 +4,8 @@ package com.logpm.factory.mt.feign; import com.logpm.factory.mt.dto.MtPushDataDTO; import org.springblade.common.constant.ModuleNameConstant; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; import java.util.Set; @@ -20,10 +20,10 @@ public interface MtFactoryDataClient { /** * 根据订单编号查询梦天的数据 - * @param orderCodes + * @param orderCode */ - @GetMapping(HANDLEDATATOPLATFORM) - List orderPushData(@RequestParam("orderCode") Set orderCodes); + @PostMapping(HANDLEDATATOPLATFORM) + List orderPushData(@RequestBody Set orderCode); From 08fba6ef8a2ace9bc92e02cc01b3f64122a17c06 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Thu, 5 Sep 2024 18:05:25 +0800 Subject: [PATCH 36/73] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E5=B7=A5?= =?UTF-8?q?=E5=8E=82=E4=BF=9D=E5=AD=98=E8=BF=90=E5=8D=95=E6=97=B6=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PanFactoryDataServiceImpl.java | 391 ++++++++++-------- 1 file changed, 216 insertions(+), 175 deletions(-) diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java index a54a06d4c..cab9914fd 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java @@ -9,8 +9,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.logpm.basic.entity.BasicMaterialEntity; import com.logpm.basic.feign.IBasicMaterialClient; -import com.logpm.basicdata.entity.*; -import com.logpm.basicdata.feign.*; +import com.logpm.basicdata.entity.BasicdataBrandEntity; +import com.logpm.basicdata.entity.BasicdataCategoryEntity; +import com.logpm.basicdata.entity.BasicdataClientEntity; +import com.logpm.basicdata.entity.BasicdataStoreBusinessEntity; +import com.logpm.basicdata.entity.BasicdataWarehouseEntity; +import com.logpm.basicdata.feign.IBasicdataBrandClient; +import com.logpm.basicdata.feign.IBasicdataCategoryClient; +import com.logpm.basicdata.feign.IBasicdataClientClient; +import com.logpm.basicdata.feign.IBasicdataStoreBusinessClient; +import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.distribution.entity.DistributionParcelListEntity; import com.logpm.distribution.entity.DistributionStockArticleEntity; import com.logpm.distribution.feign.IDistributionParcelListClient; @@ -29,8 +37,23 @@ import com.logpm.factory.snm.bean.Resp; import com.logpm.factory.snm.entity.PanFactoryOrder; import com.logpm.factory.snm.entity.PanPackageInfo; import com.logpm.factory.snm.entity.PanPackageList; -import com.logpm.oldproject.entity.*; -import com.logpm.oldproject.feign.*; +import com.logpm.oldproject.entity.AdvanceDetailEntity; +import com.logpm.oldproject.entity.AdvanceEntity; +import com.logpm.oldproject.entity.DetailProductEntity; +import com.logpm.oldproject.entity.OrderDetailEntity; +import com.logpm.oldproject.entity.TrayScanDesEntity; +import com.logpm.oldproject.entity.TrayScanEntity; +import com.logpm.oldproject.entity.WayBillEntity; +import com.logpm.oldproject.entity.WaybillDesEntity; +import com.logpm.oldproject.feign.IAdvanceClient; +import com.logpm.oldproject.feign.IAdvanceDetailClient; +import com.logpm.oldproject.feign.IDetailProductClient; +import com.logpm.oldproject.feign.IOrderDetailClient; +import com.logpm.oldproject.feign.ITrayScanClient; +import com.logpm.oldproject.feign.ITrayScanDesClient; +import com.logpm.oldproject.feign.IWarehouseClient; +import com.logpm.oldproject.feign.IWayBillClient; +import com.logpm.oldproject.feign.IWaybillDesClient; import com.logpm.oldproject.vo.DistributionParcelListEntityVO; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceEntity; @@ -47,13 +70,23 @@ import com.logpm.warehouse.feign.IWarehouseWaybillClient; import com.logpm.warehouse.feign.IWarehouseWaybillDetailClient; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; import org.springblade.common.constant.TenantNum; -import org.springblade.common.constant.order.*; -import org.springblade.common.constant.orderpackage.*; +import org.springblade.common.constant.order.OrderFreezeStatusConstant; +import org.springblade.common.constant.order.OrderGroundingStatusConstant; +import org.springblade.common.constant.order.OrderReceiveStatusConstant; +import org.springblade.common.constant.order.OrderReservationStatusConstant; +import org.springblade.common.constant.order.OrderStatusConstant; +import org.springblade.common.constant.order.OrderStockupStatusConstant; +import org.springblade.common.constant.orderpackage.OrderPackageFreezeStatusConstant; +import org.springblade.common.constant.orderpackage.OrderPackageGroundingStatusConstant; +import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant; +import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant; +import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusConstant; import org.springblade.common.exception.CustomerException; import org.springblade.common.utils.CommonUtil; import org.springblade.core.redis.cache.BladeRedis; -import org.springblade.core.redis.lock.LockType; import org.springblade.core.redis.lock.RedisLockClient; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.ObjectUtil; @@ -63,8 +96,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.*; -import java.util.concurrent.TimeUnit; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; @Slf4j @AllArgsConstructor @@ -114,6 +151,7 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { private final BladeRedis redis; private final RedisLockClient redisLockClient; + private final RedissonClient redissonClient; private final IRegionFeign regionFeign; private final IBasicdataBrandClient basicdataBrandClient; @@ -911,184 +949,187 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { // log.info("###########saveWaybillEntity: 已有保存数据 waybillNo={}", waybillNo); // return waybillId; // } - - String lockKey = "dealwithWaybillNo:" + waybillNo; + //通过运单号先去查询新系统是否存在这个运单号 + WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo); + String lockKey = "dealwithWaybillNo:lock:" + waybillNo; Long aLong = null; boolean flag = false; + RLock lock = redissonClient.getLock(lockKey); try { - flag = redisLockClient.tryLock(lockKey, LockType.FAIR, 20000, 30000, TimeUnit.MILLISECONDS); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - if(flag){ - //通过运单号先去查询新系统是否存在这个运单号 - WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo); - log.info("#################handleDataToPlatform.warehouseWaybill: {}", warehouseWaybill); - if (Objects.isNull(warehouseWaybill)) { - redis.setEx("dealwithWaybillNo:" + waybillNo, waybillNo, 30L); - //如果新系统中不存在这个运单,那么就去查询老系统的运单数据 - WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNo); - log.info("#################handleDataToPlatform.wayBillEntity: {}", wayBillEntity); - if (Objects.isNull(wayBillEntity)) { - log.warn("##############saveWaybillEntity: 老系统中未找到对应运单waybillNo={}", waybillNo); - throw new CustomerException("老系统中未找到对应运单"); - } - String startSite = wayBillEntity.getStartSite();//始发仓名称 - BasicdataWarehouseEntity starthouse = basicdataWarehouseClient.findByName(startSite); - String warehouseName = wayBillEntity.getWarehouseName();//目的仓 - BasicdataWarehouseEntity endhouse = basicdataWarehouseClient.findByName(warehouseName); - Integer number = wayBillEntity.getNumber();//运单总数量 - String packname = wayBillEntity.getPackname(); - String agent = wayBillEntity.getAgent(); - - warehouseWaybill = new WarehouseWaybillEntity(); - warehouseWaybill.setTenantId(TenantNum.HUITONGCODE); - warehouseWaybill.setCreateUser(1714696768639311873L); - warehouseWaybill.setUpdateUser(1714696768639311873L); - warehouseWaybill.setCreateDept(1649331096241836033L); - warehouseWaybill.setWaybillNo(waybillNo); - warehouseWaybill.setDestinationWarehouseName(warehouseName); - warehouseWaybill.setDestinationWarehouseId(Objects.isNull(endhouse) ? null : endhouse.getId()); - warehouseWaybill.setDepartureWarehouseName(startSite); - warehouseWaybill.setDepartureWarehouseId(Objects.isNull(starthouse) ? null : starthouse.getId()); - warehouseWaybill.setCustomerTrain(wayBillEntity.getCarNo()); - warehouseWaybill.setBrand(wayBillEntity.getBrand()); - String sendCompany = wayBillEntity.getSendCompany();//发货单位 - String takeCompany = wayBillEntity.getTakeCompany();//收货单位 - BasicdataClientEntity sendClient = basicdataClientClient.findByName(sendCompany); - BasicdataClientEntity takeClient = basicdataClientClient.findByName(takeCompany); - if (!Objects.isNull(sendClient)) { - Long clientEntityId = sendClient.getId();//基础客户 - warehouseWaybill.setShipperId(clientEntityId); - } - if (!Objects.isNull(takeClient)) { - Long clientEntityId = takeClient.getId();//基础客户 - BasicdataStoreBusinessEntity basicdataStoreBusinessEntity = basicdataStoreBusinessClient.findByClientIdAndTypeService(clientEntityId, 3); - if (!Objects.isNull(basicdataStoreBusinessEntity)) { - warehouseWaybill.setServiceType(Integer.parseInt(basicdataStoreBusinessEntity.getMold())); + lock.lock(); + warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo); + log.info("#################handleDataToPlatform.warehouseWaybill: {}", warehouseWaybill); + if (Objects.isNull(warehouseWaybill)) { + redis.setEx("dealwithWaybillNo:" + waybillNo, waybillNo, 30L); + //如果新系统中不存在这个运单,那么就去查询老系统的运单数据 + WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNo); + log.info("#################handleDataToPlatform.wayBillEntity: {}", wayBillEntity); + if (Objects.isNull(wayBillEntity)) { + log.warn("##############saveWaybillEntity: 老系统中未找到对应运单waybillNo={}", waybillNo); + throw new CustomerException("老系统中未找到对应运单"); } - warehouseWaybill.setConsigneeId(clientEntityId); - } - warehouseWaybill.setShipper(sendCompany); - warehouseWaybill.setShipperName(wayBillEntity.getSendPerson()); - warehouseWaybill.setShipperMobile(wayBillEntity.getSendMobile()); - warehouseWaybill.setShipperAddress(wayBillEntity.getSendAddress()); - warehouseWaybill.setConsignee(takeCompany); - warehouseWaybill.setConsigneeName(wayBillEntity.getTakePerson()); - warehouseWaybill.setConsigneeMobile(wayBillEntity.getTakeMobile()); - warehouseWaybill.setConsigneeAddress(wayBillEntity.getTakeAddress()); + String startSite = wayBillEntity.getStartSite();//始发仓名称 + BasicdataWarehouseEntity starthouse = basicdataWarehouseClient.findByName(startSite); + String warehouseName = wayBillEntity.getWarehouseName();//目的仓 + BasicdataWarehouseEntity endhouse = basicdataWarehouseClient.findByName(warehouseName); + Integer number = wayBillEntity.getNumber();//运单总数量 + String packname = wayBillEntity.getPackname(); + String agent = wayBillEntity.getAgent(); + + warehouseWaybill = new WarehouseWaybillEntity(); + warehouseWaybill.setTenantId(TenantNum.HUITONGCODE); + warehouseWaybill.setCreateUser(1714696768639311873L); + warehouseWaybill.setUpdateUser(1714696768639311873L); + warehouseWaybill.setCreateDept(1649331096241836033L); + warehouseWaybill.setWaybillNo(waybillNo); + warehouseWaybill.setDestinationWarehouseName(warehouseName); + warehouseWaybill.setDestinationWarehouseId(Objects.isNull(endhouse) ? null : endhouse.getId()); + warehouseWaybill.setDepartureWarehouseName(startSite); + warehouseWaybill.setDepartureWarehouseId(Objects.isNull(starthouse) ? null : starthouse.getId()); + warehouseWaybill.setCustomerTrain(wayBillEntity.getCarNo()); + warehouseWaybill.setBrand(wayBillEntity.getBrand()); + String sendCompany = wayBillEntity.getSendCompany();//发货单位 + String takeCompany = wayBillEntity.getTakeCompany();//收货单位 + BasicdataClientEntity sendClient = basicdataClientClient.findByName(sendCompany); + BasicdataClientEntity takeClient = basicdataClientClient.findByName(takeCompany); + if (!Objects.isNull(sendClient)) { + Long clientEntityId = sendClient.getId();//基础客户 + warehouseWaybill.setShipperId(clientEntityId); + } + if (!Objects.isNull(takeClient)) { + Long clientEntityId = takeClient.getId();//基础客户 + BasicdataStoreBusinessEntity basicdataStoreBusinessEntity = basicdataStoreBusinessClient.findByClientIdAndTypeService(clientEntityId, 3); + if (!Objects.isNull(basicdataStoreBusinessEntity)) { + warehouseWaybill.setServiceType(Integer.parseInt(basicdataStoreBusinessEntity.getMold())); + } + warehouseWaybill.setConsigneeId(clientEntityId); + } + warehouseWaybill.setShipper(sendCompany); + warehouseWaybill.setShipperName(wayBillEntity.getSendPerson()); + warehouseWaybill.setShipperMobile(wayBillEntity.getSendMobile()); + warehouseWaybill.setShipperAddress(wayBillEntity.getSendAddress()); + warehouseWaybill.setConsignee(takeCompany); + warehouseWaybill.setConsigneeName(wayBillEntity.getTakePerson()); + warehouseWaybill.setConsigneeMobile(wayBillEntity.getTakeMobile()); + warehouseWaybill.setConsigneeAddress(wayBillEntity.getTakeAddress()); // String arriveSite = wayBillEntity.getArriveSite(); - Integer arriveSiteId = wayBillEntity.getArriveSiteId(); - String code = wayBillClient.findAreaCodeByArriveSiteId(arriveSiteId); + Integer arriveSiteId = wayBillEntity.getArriveSiteId(); + String code = wayBillClient.findAreaCodeByArriveSiteId(arriveSiteId); // String code = regionFeign.getCode(arriveSite); - warehouseWaybill.setDestinationCode(code); - warehouseWaybill.setDestination(wayBillEntity.getArriveSite()); - warehouseWaybill.setGoodsName(packname); - warehouseWaybill.setTotalCount(number); - warehouseWaybill.setStockCount(1); - warehouseWaybill.setWaybillType(1); - warehouseWaybill.setTotalWeight(wayBillEntity.getWeight()); - warehouseWaybill.setTotalVolume(wayBillEntity.getVolume()); - warehouseWaybill.setDeliveryMethod(wayBillEntity.getSendType()); - warehouseWaybill.setUrgency(wayBillEntity.getUrgency()); - warehouseWaybill.setReceiptCount(wayBillEntity.getReceiptNum()); - warehouseWaybill.setReceiptRequirement(wayBillEntity.getReceiptAsk()); - //--------------2023-07-28------------- - warehouseWaybill.setCollectPay(wayBillEntity.getDPay()); - warehouseWaybill.setReceivedCollectPay(BigDecimal.ZERO); - warehouseWaybill.setReplacePrice(wayBillEntity.getReplacePrice()); - warehouseWaybill.setReceivedReplacePrice(BigDecimal.ZERO); - warehouseWaybill.setReceivedTotalPrice(BigDecimal.ZERO); - warehouseWaybill.setWaybillType(wayBillEntity.getType()); - warehouseWaybill.setReceivedStatus(0); - - warehouseWaybill.setTotalFreight(wayBillEntity.getFreight()); - warehouseWaybill.setDeliveryFee(wayBillEntity.getDeliveryCost()); - warehouseWaybill.setPickupFee(wayBillEntity.getTakeCost()); - warehouseWaybill.setWarehouseManagementFee(wayBillEntity.getWarehouseManagementFee()); - warehouseWaybill.setStorageFee(wayBillEntity.getWarehousingFee()); - warehouseWaybill.setHandlingFee(wayBillEntity.getPretendCost()); - warehouseWaybill.setOtherFee(wayBillEntity.getOtherFee()); - warehouseWaybill.setInsuranceFee(wayBillEntity.getPriceProtectionFee()); - warehouseWaybill.setClaimingValue(wayBillEntity.getValue()); - warehouseWaybill.setPayType(wayBillEntity.getPayType() + ""); - warehouseWaybill.setPayWay(wayBillEntity.getPaymentMethod() + ""); - warehouseWaybill.setXPay(wayBillEntity.getXPay()); - warehouseWaybill.setDPay(wayBillEntity.getDPay()); - warehouseWaybill.setHPay(wayBillEntity.getHPay()); - warehouseWaybill.setYPay(wayBillEntity.getYPay()); - warehouseWaybill.setThirdOperationFee(wayBillEntity.getThreeHandleFee()); - warehouseWaybill.setDeliveryWay(wayBillEntity.getSendType() + ""); - warehouseWaybill.setUrgency(wayBillEntity.getUrgency() + ""); - warehouseWaybill.setReceipt(wayBillEntity.getReceiptAsk()); - warehouseWaybill.setReceiptNum(wayBillEntity.getReceiptNum()); - warehouseWaybill.setTransportType(wayBillEntity.getShippingType() + ""); - warehouseWaybill.setRebate(wayBillEntity.getRebate()); - - BasicdataClientEntity agentClient = basicdataClientClient.findByName(agent); - if (!Objects.isNull(agentClient)) { - Long clientEntityId = agentClient.getId();//基础客户 - warehouseWaybill.setAgentId(clientEntityId); - } - Date date = new Date(); - warehouseWaybill.setAgent(agent); - warehouseWaybill.setDocumentMakingTime(wayBillEntity.getPreparationTime()); - warehouseWaybill.setRemark(wayBillEntity.getMsg()); - warehouseWaybill.setBatchNo(wayBillEntity.getStartCarsNo()); - warehouseWaybill.setFreezeStatus(0); - warehouseWaybill.setStatus(0); - warehouseWaybill.setIsDeleted(0); - warehouseWaybill.setCreateTime(date); - warehouseWaybill.setUpdateTime(date); - aLong = warehouseWaybillClient.addEnntity(warehouseWaybill); - if (aLong != 0) { - redis.setEx("dealwithWaybillNoId:" + waybillNo,aLong, 30L); - List desList = waybillDesClient.getDesList(waybillNo); - List warehouseWayBillDetails = new ArrayList<>(); - for (WaybillDesEntity waybillDesEntity : desList) { - WarehouseWayBillDetail warehouseWayBillDetail = new WarehouseWayBillDetail(); - warehouseWayBillDetail.setCreateUser(1714696768639311873L); - warehouseWayBillDetail.setUpdateUser(1714696768639311873L); - warehouseWayBillDetail.setCreateDept(1649331096241836033L); - warehouseWayBillDetail.setWaybillId(aLong); - warehouseWayBillDetail.setWaybillNo(waybillNo); - String goodsName = waybillDesEntity.getName(); - BasicdataCategoryEntity categoryEntity = categoryClient.findByName(goodsName); - if (Objects.isNull(categoryEntity)) { - categoryEntity = new BasicdataCategoryEntity(); - categoryEntity.setName(goodsName); - categoryEntity.setType(1); - categoryEntity.setTenantId(TenantNum.HUITONGCODE); - categoryEntity.setCreateUser(1714696768639311873L); - categoryEntity.setUpdateUser(1714696768639311873L); - categoryEntity.setCreateDept(1649331096241836033L); - Long categoryId = categoryClient.addReturnId(categoryEntity); - warehouseWayBillDetail.setProductId(categoryId); - } else { - warehouseWayBillDetail.setProductId(categoryEntity.getId()); + warehouseWaybill.setDestinationCode(code); + warehouseWaybill.setDestination(wayBillEntity.getArriveSite()); + warehouseWaybill.setGoodsName(packname); + warehouseWaybill.setTotalCount(number); + warehouseWaybill.setStockCount(1); + warehouseWaybill.setWaybillType(1); + warehouseWaybill.setTotalWeight(wayBillEntity.getWeight()); + warehouseWaybill.setTotalVolume(wayBillEntity.getVolume()); + warehouseWaybill.setDeliveryMethod(wayBillEntity.getSendType()); + warehouseWaybill.setUrgency(wayBillEntity.getUrgency()); + warehouseWaybill.setReceiptCount(wayBillEntity.getReceiptNum()); + warehouseWaybill.setReceiptRequirement(wayBillEntity.getReceiptAsk()); + //--------------2023-07-28------------- + warehouseWaybill.setCollectPay(wayBillEntity.getDPay()); + warehouseWaybill.setReceivedCollectPay(BigDecimal.ZERO); + warehouseWaybill.setReplacePrice(wayBillEntity.getReplacePrice()); + warehouseWaybill.setReceivedReplacePrice(BigDecimal.ZERO); + warehouseWaybill.setReceivedTotalPrice(BigDecimal.ZERO); + warehouseWaybill.setWaybillType(wayBillEntity.getType()); + warehouseWaybill.setReceivedStatus(0); + + warehouseWaybill.setTotalFreight(wayBillEntity.getFreight()); + warehouseWaybill.setDeliveryFee(wayBillEntity.getDeliveryCost()); + warehouseWaybill.setPickupFee(wayBillEntity.getTakeCost()); + warehouseWaybill.setWarehouseManagementFee(wayBillEntity.getWarehouseManagementFee()); + warehouseWaybill.setStorageFee(wayBillEntity.getWarehousingFee()); + warehouseWaybill.setHandlingFee(wayBillEntity.getPretendCost()); + warehouseWaybill.setOtherFee(wayBillEntity.getOtherFee()); + warehouseWaybill.setInsuranceFee(wayBillEntity.getPriceProtectionFee()); + warehouseWaybill.setClaimingValue(wayBillEntity.getValue()); + warehouseWaybill.setPayType(wayBillEntity.getPayType() + ""); + warehouseWaybill.setPayWay(wayBillEntity.getPaymentMethod() + ""); + warehouseWaybill.setXPay(wayBillEntity.getXPay()); + warehouseWaybill.setDPay(wayBillEntity.getDPay()); + warehouseWaybill.setHPay(wayBillEntity.getHPay()); + warehouseWaybill.setYPay(wayBillEntity.getYPay()); + warehouseWaybill.setThirdOperationFee(wayBillEntity.getThreeHandleFee()); + warehouseWaybill.setDeliveryWay(wayBillEntity.getSendType() + ""); + warehouseWaybill.setUrgency(wayBillEntity.getUrgency() + ""); + warehouseWaybill.setReceipt(wayBillEntity.getReceiptAsk()); + warehouseWaybill.setReceiptNum(wayBillEntity.getReceiptNum()); + warehouseWaybill.setTransportType(wayBillEntity.getShippingType() + ""); + warehouseWaybill.setRebate(wayBillEntity.getRebate()); + + BasicdataClientEntity agentClient = basicdataClientClient.findByName(agent); + if (!Objects.isNull(agentClient)) { + Long clientEntityId = agentClient.getId();//基础客户 + warehouseWaybill.setAgentId(clientEntityId); + } + Date date = new Date(); + warehouseWaybill.setAgent(agent); + warehouseWaybill.setDocumentMakingTime(wayBillEntity.getPreparationTime()); + warehouseWaybill.setRemark(wayBillEntity.getMsg()); + warehouseWaybill.setBatchNo(wayBillEntity.getStartCarsNo()); + warehouseWaybill.setFreezeStatus(0); + warehouseWaybill.setStatus(0); + warehouseWaybill.setIsDeleted(0); + warehouseWaybill.setCreateTime(date); + warehouseWaybill.setUpdateTime(date); + aLong = warehouseWaybillClient.addEnntity(warehouseWaybill); + if (aLong != 0) { + redis.setEx("dealwithWaybillNoId:" + waybillNo,aLong, 30L); + List desList = waybillDesClient.getDesList(waybillNo); + List warehouseWayBillDetails = new ArrayList<>(); + for (WaybillDesEntity waybillDesEntity : desList) { + WarehouseWayBillDetail warehouseWayBillDetail = new WarehouseWayBillDetail(); + warehouseWayBillDetail.setCreateUser(1714696768639311873L); + warehouseWayBillDetail.setUpdateUser(1714696768639311873L); + warehouseWayBillDetail.setCreateDept(1649331096241836033L); + warehouseWayBillDetail.setWaybillId(aLong); + warehouseWayBillDetail.setWaybillNo(waybillNo); + String goodsName = waybillDesEntity.getName(); + BasicdataCategoryEntity categoryEntity = categoryClient.findByName(goodsName); + if (Objects.isNull(categoryEntity)) { + categoryEntity = new BasicdataCategoryEntity(); + categoryEntity.setName(goodsName); + categoryEntity.setType(1); + categoryEntity.setTenantId(TenantNum.HUITONGCODE); + categoryEntity.setCreateUser(1714696768639311873L); + categoryEntity.setUpdateUser(1714696768639311873L); + categoryEntity.setCreateDept(1649331096241836033L); + Long categoryId = categoryClient.addReturnId(categoryEntity); + warehouseWayBillDetail.setProductId(categoryId); + } else { + warehouseWayBillDetail.setProductId(categoryEntity.getId()); + } + warehouseWayBillDetail.setProductName(goodsName); + warehouseWayBillDetail.setNum(waybillDesEntity.getNum()); + warehouseWayBillDetail.setPrice(waybillDesEntity.getPrice()); + warehouseWayBillDetail.setVolume(waybillDesEntity.getVolume()); + warehouseWayBillDetail.setWeight(waybillDesEntity.getWeight()); + warehouseWayBillDetail.setSubtotalFreight(waybillDesEntity.getTotalDesPrice()); + warehouseWayBillDetail.setChargeType(waybillDesEntity.getPic()); + warehouseWayBillDetails.add(warehouseWayBillDetail); } - warehouseWayBillDetail.setProductName(goodsName); - warehouseWayBillDetail.setNum(waybillDesEntity.getNum()); - warehouseWayBillDetail.setPrice(waybillDesEntity.getPrice()); - warehouseWayBillDetail.setVolume(waybillDesEntity.getVolume()); - warehouseWayBillDetail.setWeight(waybillDesEntity.getWeight()); - warehouseWayBillDetail.setSubtotalFreight(waybillDesEntity.getTotalDesPrice()); - warehouseWayBillDetail.setChargeType(waybillDesEntity.getPic()); - warehouseWayBillDetails.add(warehouseWayBillDetail); + warehouseWaybillDetailClient.addList(warehouseWayBillDetails); } - warehouseWaybillDetailClient.addList(warehouseWayBillDetails); + + } else { + warehouseWaybill.setStockCount(warehouseWaybill.getStockCount() + 1); + warehouseWaybill.setUpdateTime(new Date()); + warehouseWaybillClient.updateEntity(warehouseWaybill); + aLong = warehouseWaybill.getId(); } + //暂存单与运单的关联 + saveAdvanceData(warehouseWaybill); + // redisLockClient.unLock(lockKey, LockType.FAIR); - } else { - warehouseWaybill.setStockCount(warehouseWaybill.getStockCount() + 1); - warehouseWaybill.setUpdateTime(new Date()); - warehouseWaybillClient.updateEntity(warehouseWaybill); - aLong = warehouseWaybill.getId(); } - //暂存单与运单的关联 - saveAdvanceData(warehouseWaybill); - redisLockClient.unLock(lockKey, LockType.FAIR); + } catch (Exception e) { + throw new RuntimeException(e); + }finally { + lock.unlock(); } return aLong; } From 68a903a5efa7d1821b24edfed315d8ea0cca8242 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Fri, 6 Sep 2024 09:44:48 +0800 Subject: [PATCH 37/73] =?UTF-8?q?1.=E9=9B=B6=E6=8B=85=E6=8C=89=E5=93=81?= =?UTF-8?q?=E7=B1=BB=E9=80=BB=E8=BE=91=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 --- ...ersalesAbnormalRecordZeroDetailEntity.java | 2 +- .../feign/IDistributionParcelListClient.java | 4 + .../IDistributionParcelNumberClient.java | 2 + .../distribution/vo/ZeroPackageSupplyVO.java | 16 + .../logpm/trunkline/dto/ZeroPackageDTO.java | 1 + .../feign/ITrunklineScanZeroDetailClient.java | 26 ++ .../com/logpm/trunkline/vo/SignPackageVO.java | 6 + .../logpm/trunkline/vo/UnloadPackageVO.java | 2 + .../logpm/trunkline/vo/ZeroSuppleListVO.java | 40 +++ .../com/logpm/trunkline/vo/ZeroSuppleVO.java | 4 + .../AftersalesAbnormalRecordController.java | 31 +- .../aftersales/dto/AbnormalRecordDTO.java | 5 + .../IAftersalesAbnormalRecordService.java | 2 + ...rsalesAbnormalRecordZeroDetailService.java | 5 + .../AftersalesAbnormalRecordServiceImpl.java | 339 +++++++++++------- ...esAbnormalRecordZeroDetailServiceImpl.java | 11 +- .../feign/DistributionParcelListClient.java | 6 + .../feign/DistributionParcelNumberClient.java | 7 + .../mapper/DistributionParcelListMapper.java | 3 + .../mapper/DistributionParcelListMapper.xml | 17 +- .../IDistributionParcelListService.java | 7 +- .../DistributionParcelListServiceImpl.java | 5 + .../trunkline/api/CarsLoadApiController.java | 9 +- .../api/TripartiteTransferApiController.java | 10 +- .../controller/CarsLoadController.java | 16 +- .../feign/TrunklineScanZeroDetailClient.java | 32 ++ .../mapper/TrunklineCarsLoadMapper.java | 5 +- .../mapper/TrunklineCarsLoadMapper.xml | 14 +- .../mapper/TrunklineCarsLoadScanMapper.java | 6 + .../mapper/TrunklineCarsLoadScanMapper.xml | 44 +++ .../mapper/TrunklineCarsOrderMapper.java | 4 + .../mapper/TrunklineCarsOrderMapper.xml | 22 ++ .../ITrunklineCarsLoadScanService.java | 6 + .../service/ITrunklineCarsLoadService.java | 4 +- .../service/ITrunklineCarsOrderService.java | 3 + .../TrunklineCarsLoadScanServiceImpl.java | 15 + .../impl/TrunklineCarsLoadServiceImpl.java | 243 +++++++++++-- .../TrunklineCarsOrderEntityServiceImpl.java | 11 + 38 files changed, 799 insertions(+), 186 deletions(-) create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/ZeroPackageSupplyVO.java create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineScanZeroDetailClient.java create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleListVO.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineScanZeroDetailClient.java diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java index 4dcf02a88..8213d3465 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java @@ -30,7 +30,7 @@ public class AftersalesAbnormalRecordZeroDetailEntity extends TenantEntity { private String reserve5 ; @ApiModelProperty(name = "异常记录id",notes = "") - private Long AbnormalRecordId; + private Long abnormalRecordId; @ApiModelProperty(name = "异常记录id",notes = "") private Long packageId; diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java index d8fc7911e..0d31d17d9 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java @@ -21,6 +21,7 @@ import com.logpm.distribution.dto.FindParamterDTO; import com.logpm.distribution.dto.OrderPackageDTO; import com.logpm.distribution.entity.DistributionParcelListEntity; import com.logpm.distribution.vo.DistributionParcelListVO; +import com.logpm.distribution.vo.ZeroPackageSupplyVO; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.mp.support.BladePage; import org.springblade.core.tool.api.R; @@ -223,4 +224,7 @@ public interface IDistributionParcelListClient { @GetMapping(API_PREFIX + "/addZeroQuantity") void addZeroQuantity(@RequestParam Long packageId, @RequestParam int num); + + @PostMapping(API_PREFIX + "/findListByStockArticleIds") + List findListByStockArticleIds(@RequestBody List orderIdList); } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java index 70b64c983..7c2c076e2 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java @@ -60,4 +60,6 @@ public interface IDistributionParcelNumberClient { @PostMapping(API_PREFIX + "/updateList") void updateList(@RequestBody List updateParceNumberList); + @GetMapping(API_PREFIX+"/findListByStockArticleId") + List findListByStockArticleId(@RequestParam Long orderId); } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/ZeroPackageSupplyVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/ZeroPackageSupplyVO.java new file mode 100644 index 000000000..e1a2c3ca8 --- /dev/null +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/ZeroPackageSupplyVO.java @@ -0,0 +1,16 @@ +package com.logpm.distribution.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ZeroPackageSupplyVO implements Serializable { + + private Long stockArticleId; + private Long packageId; + private Long goodsId; + private String goodsName;//品类名称 + private Integer stockNum;//品类在库件数 + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ZeroPackageDTO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ZeroPackageDTO.java index 4acac8b3e..d1c2916bd 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ZeroPackageDTO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ZeroPackageDTO.java @@ -7,6 +7,7 @@ import java.io.Serializable; @Data public class ZeroPackageDTO implements Serializable { + private Long id; private Long packageId; private Long goodsId; private String goodsName;//品类名称 diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineScanZeroDetailClient.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineScanZeroDetailClient.java new file mode 100644 index 000000000..5e04afbc6 --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineScanZeroDetailClient.java @@ -0,0 +1,26 @@ +package com.logpm.trunkline.feign; + +import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; +import org.springblade.common.constant.ModuleNameConstant; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +@FeignClient( + value = ModuleNameConstant.APPLICATION_TRUNKLINE_NAME +) +public interface ITrunklineScanZeroDetailClient { + + String API_PREFIX = "trunklineScanZeroDetail/client"; + + @GetMapping(API_PREFIX+"/findListByCarsLoadScanId") + List findListByCarsLoadScanId(@RequestParam Long carsLoadScanId); + + @PostMapping(API_PREFIX+"/updateBetch") + void updateBetch(@RequestBody List updateScanZeroDetailEntityList); + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/SignPackageVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/SignPackageVO.java index a75bf8f19..eb27db6f5 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/SignPackageVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/SignPackageVO.java @@ -3,6 +3,8 @@ package com.logpm.trunkline.vo; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; @Data public class SignPackageVO implements Serializable { @@ -12,5 +14,9 @@ public class SignPackageVO implements Serializable { private Integer num; private Integer unloadNum; private String scanStatus; + private String orderCode; + private String waybillNo; + + private List scanZeroDetailList = new ArrayList<>(); } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java index 2805c25a6..52e15fb7c 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadPackageVO.java @@ -17,6 +17,8 @@ public class UnloadPackageVO implements Serializable { private String trayCode; private String scanStatus; private String unloadNodeName; + private String orderCode; + private String waybillNo; private List scanZeroDetailList = new ArrayList<>(); diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleListVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleListVO.java new file mode 100644 index 000000000..bce4c47fe --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleListVO.java @@ -0,0 +1,40 @@ +package com.logpm.trunkline.vo; + +import com.alibaba.fastjson.JSONObject; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Data +public class ZeroSuppleListVO implements Serializable { + + + private Long orderId; + private String waybillNo; + private String orderCode; + private Integer stockNum;//在库数量 + private Date createTime;//开单时间 + private String destination;//到站 + private String destinationWarehouseName;//目的仓 + private String shipper;//发货单位 + private String shipperName;//发货人 + private String consignee;//收货单位 + private String consigneeName;//收货人 + private String goodsName;//货物名称 + private Integer totalNum;//运单总件数 + private BigDecimal weight;//运单总重量 + private BigDecimal volume;//运单总体积 + private String customerTrain;//客户车次号 + private String remark;//备注 + private String loadSignCode;//签收单号 + private Long signOrderId;//签收单id + private BigDecimal totalFreight;//总运费 + private BigDecimal price;//总运费 + + private List zeroPackageSupplyVOS = new ArrayList<>(); + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleVO.java index 5302f0a09..03538c686 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroSuppleVO.java @@ -1,8 +1,11 @@ package com.logpm.trunkline.vo; +import com.logpm.trunkline.dto.ZeroPackageDTO; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; @Data public class ZeroSuppleVO implements Serializable { @@ -14,5 +17,6 @@ public class ZeroSuppleVO implements Serializable { private Long finalNodeId;//目的仓id private Long signOrderId;//签收单id + private List zeroPackageList = new ArrayList<>(); } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesAbnormalRecordController.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesAbnormalRecordController.java index 93c42a23d..d8e729bee 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesAbnormalRecordController.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesAbnormalRecordController.java @@ -19,8 +19,6 @@ package com.logpm.aftersales.controller; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.aftersales.dto.AbnormalRecordDTO; import com.logpm.aftersales.service.IAftersalesAbnormalRecordService; -import com.logpm.basicdata.entity.BasicdataWarehouseEntity; -import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -84,9 +82,34 @@ public class AftersalesAbnormalRecordController extends BladeController { return R.fail(405,"异常id为空"); } + return aftersalesAbnormalRecordService.dealAbnormal(abnormalRecordDTO); + }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,"系统异常"); + } + } - return aftersalesAbnormalRecordService.dealAbnormal(abnormalRecordDTO); + @ResponseBody + @PostMapping("/findZeroDetail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "处理异常", notes = "传入loadCarsDTO") + public R findZeroDetail(@RequestBody AbnormalRecordDTO abnormalRecordDTO) { + String method = "############findZeroDetail: "; + log.info(method + "请求参数{}", abnormalRecordDTO); + Long abnormalRecordId = abnormalRecordDTO.getAbnormalRecordId(); + + try{ + + if(Objects.isNull(abnormalRecordId)){ + log.warn(method+"异常id为空 abnormalRecordId={}",abnormalRecordId); + return R.fail(405,"异常id为空"); + } + + return aftersalesAbnormalRecordService.findZeroDetail(abnormalRecordDTO); }catch (CustomerException e){ log.error(e.message,e); return R.fail(e.code,e.message); @@ -95,4 +118,6 @@ public class AftersalesAbnormalRecordController extends BladeController { return R.fail(500,"系统异常"); } } + + } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AbnormalRecordDTO.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AbnormalRecordDTO.java index e16d56068..4e675f06d 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AbnormalRecordDTO.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AbnormalRecordDTO.java @@ -1,9 +1,12 @@ package com.logpm.aftersales.dto; import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity; +import com.logpm.trunkline.dto.ZeroPackageDTO; import lombok.Data; +import java.util.ArrayList; import java.util.Date; +import java.util.List; @Data public class AbnormalRecordDTO extends AftersalesAbnormalRecordEntity { @@ -27,4 +30,6 @@ public class AbnormalRecordDTO extends AftersalesAbnormalRecordEntity { private Date dealDateStart; private Date dealDateEnd; + private List zeroPackageDTOS = new ArrayList<>(); + } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordService.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordService.java index b19900864..334532381 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordService.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordService.java @@ -12,4 +12,6 @@ public interface IAftersalesAbnormalRecordService extends BaseService { + + List findListByAbnormalRecordId(Long abnormalRecordId); + } 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 10b8e70ea..7665d89e4 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 @@ -1,24 +1,30 @@ package com.logpm.aftersales.service.impl; +import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.IAftersalesAbnormalRecordService; +import com.logpm.aftersales.service.IAftersalesAbnormalRecordZeroDetailService; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.distribution.entity.DistributionParcelListEntity; +import com.logpm.distribution.entity.DistributionParcelNumberEntity; import com.logpm.distribution.entity.DistributionStockArticleEntity; import com.logpm.distribution.feign.IDistributionParcelListClient; +import com.logpm.distribution.feign.IDistributionParcelNumberClient; import com.logpm.distribution.feign.IDistributionStockArticleClient; +import com.logpm.distribution.vo.DistributionParcelListVO; import com.logpm.trunkline.dto.AddWaybillTrackDTO; +import com.logpm.trunkline.dto.ZeroPackageDTO; import com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity; -import com.logpm.trunkline.feign.ITrunklineCarsLoadScanClient; -import com.logpm.trunkline.feign.ITrunklineWaybillOrderClient; -import com.logpm.trunkline.feign.ITrunklineWaybillPackageClient; -import com.logpm.trunkline.feign.ITrunklineWaybillTrackClient; +import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; +import com.logpm.trunkline.feign.*; import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.feign.IWarehouseWaybillClient; import lombok.AllArgsConstructor; @@ -30,10 +36,8 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.BeanUtil; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; @Slf4j @@ -49,6 +53,8 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl page = new Page<>(); @@ -145,149 +155,225 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl zeroPackageDTOS = abnormalRecordDTO.getZeroPackageDTOS(); Integer num = abnormalRecordEntity.getNum(); - Long associationId = abnormalRecordEntity.getAssociationId(); - TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanClient.findEntityById(associationId); + Long carsLoadScanId = abnormalRecordEntity.getAssociationId(); + TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanClient.findEntityById(carsLoadScanId); Long fromWarehouseId = carsLoadScanEntity.getFromWarehouseId(); String orderCode = carsLoadScanEntity.getOrderCode(); + List recordZeroDetailEntities = recordZeroDetailService.findListByAbnormalRecordId(abnormalRecordId); + //把zeroPackageDTOS转化成以goodsId作为key的Map + Map recordZeroDetailEntitiesMapByGoodsId = recordZeroDetailEntities.stream().collect(Collectors.toMap(AftersalesAbnormalRecordZeroDetailEntity::getGoodsId, Function.identity())); + List scanZeroDetailEntityList = scanZeroDetailClient.findListByCarsLoadScanId(carsLoadScanId); + DistributionStockArticleEntity stockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, fromWarehouseId); if(!Objects.isNull(stockArticleEntity)){ Long stockId = stockArticleEntity.getId(); if(dealType.equals(5)){ //回退原仓库 + recordZeroDetailEntities.forEach(detailEntity -> { + parcelListClient.addZeroQuantity(detailEntity.getPackageId(),detailEntity.getAbnormalNum()); + detailEntity.setReturnNum(detailEntity.getAbnormalNum()); + }); stockArticleClient.addHandQuantity(stockId,num); + recordZeroDetailService.updateBatchById(recordZeroDetailEntities); abnormalRecordEntity.setRemark("差异件数退回原仓"); }else if(dealType.equals(6)){ //入库本仓 Integer enterNum = abnormalRecordDTO.getNum(); + //把scanZeroDetailEntityList转化成以packageId为key的map + Map scanZeroDetailEntityMap = scanZeroDetailEntityList.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getPackageId, Function.identity())); + if(enterNum > 0){ Date now = new Date(); int diff = num - enterNum; Long warehouseId = abnormalRecordEntity.getWarehouseId(); BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId); + //把zeroPackageDTOS转化成以packageId作为key的Map + Map zeroPackageDTOSMapByPackageId = zeroPackageDTOS.stream().collect(Collectors.toMap(ZeroPackageDTO::getPackageId, Function.identity())); if(diff == 0){ - //全部入库到本仓 - DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId); - if(Objects.isNull(currentStockArticleEntity)){ - currentStockArticleEntity = new DistributionStockArticleEntity(); - Integer totalNumber = stockArticleEntity.getTotalNumber(); - BeanUtil.copy(stockArticleEntity,currentStockArticleEntity); - currentStockArticleEntity.setId(null); - currentStockArticleEntity.setHandQuantity(enterNum); - currentStockArticleEntity.setWarehouseId(warehouseId); - currentStockArticleEntity.setWarehouse(warehouseEntity.getName()); - currentStockArticleEntity.setWarehouseEntryTime(now); - currentStockArticleEntity.setCompleteSet(1); - currentStockArticleEntity.setOrderReceiveStatus("20"); - if(totalNumber.equals(enterNum)){ - currentStockArticleEntity.setCompleteSet(2); - currentStockArticleEntity.setOrderReceiveStatus("30"); - } - currentStockArticleEntity.setStockupStatus("10"); - currentStockArticleEntity.setReservationStatus("10"); - currentStockArticleEntity.setOrderStatus("20"); - currentStockArticleEntity.setGroundingStatus("10"); - currentStockArticleEntity.setFreezeStatus("10"); - currentStockArticleEntity.setWarehouseEntryTimeEnd(now); - currentStockArticleEntity.setSortingQuantity(0); - currentStockArticleEntity.setDeliveryQuantity(0); - currentStockArticleEntity.setTransferQuantity(0); - currentStockArticleEntity.setSigninQuantity(0); - currentStockArticleEntity.setAllocation(null); - currentStockArticleEntity.setTrays(null); - currentStockArticleEntity.setIncomingNum(enterNum); - Long orderId = stockArticleClient.addData(currentStockArticleEntity); - if(!Objects.isNull(orderId)){ - List addParcelListEntityList = new ArrayList<>(); - List parcelListEntityList = parcelListClient.findEntityListByOrderCode(orderCode, warehouseId); - parcelListEntityList.forEach(parcelListEntity -> { - DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity(); - BeanUtil.copy(parcelListEntity,currentParcelListEntity); - Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId(); - currentParcelListEntity.setId(null); - currentParcelListEntity.setGoodsAllocation(null); - currentParcelListEntity.setStockArticleId(orderId); - currentParcelListEntity.setPallet(null); - currentParcelListEntity.setWarehouseId(warehouseId); - currentParcelListEntity.setWarehouse(warehouseEntity.getName()); - currentParcelListEntity.setIsTransfer(1); - if(acceptWarehouseId.equals(warehouseId)){ - currentParcelListEntity.setIsTransfer(0); - } - addParcelListEntityList.add(currentParcelListEntity); - }); - parcelListClient.addZeroParcelList(addParcelListEntityList); - } - }else{ - - stockArticleClient.addHandQuantityAndIncomingNum(currentStockArticleEntity.getId(),enterNum); - - } abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓"); - }else{ //回退原仓库 + recordZeroDetailEntities.forEach(detailEntity -> { + Long packageId = detailEntity.getPackageId(); + Integer abnormalNum = detailEntity.getAbnormalNum(); + ZeroPackageDTO zeroPackageDTO = zeroPackageDTOSMapByPackageId.get(packageId); + Integer enterPackageNum = zeroPackageDTO.getEnterNum(); + parcelListClient.addZeroQuantity(packageId,abnormalNum - enterPackageNum); + detailEntity.setReturnNum(abnormalNum - enterPackageNum); + }); + stockArticleClient.addHandQuantity(stockId,diff); + recordZeroDetailService.updateBatchById(recordZeroDetailEntities); + abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓,原仓返回"+diff+"件"); + } - //全部入库到本仓 - DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId); - if(Objects.isNull(currentStockArticleEntity)){ - currentStockArticleEntity = new DistributionStockArticleEntity(); - Integer totalNumber = stockArticleEntity.getTotalNumber(); - BeanUtil.copy(stockArticleEntity,currentStockArticleEntity); - currentStockArticleEntity.setId(null); - currentStockArticleEntity.setHandQuantity(enterNum); - currentStockArticleEntity.setWarehouseId(warehouseId); - currentStockArticleEntity.setWarehouse(warehouseEntity.getName()); - currentStockArticleEntity.setWarehouseEntryTime(now); - currentStockArticleEntity.setCompleteSet(1); - currentStockArticleEntity.setOrderReceiveStatus("20"); - if(totalNumber.equals(enterNum)){ - currentStockArticleEntity.setCompleteSet(2); - currentStockArticleEntity.setOrderReceiveStatus("30"); + DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId); + if(Objects.isNull(currentStockArticleEntity)){ + currentStockArticleEntity = new DistributionStockArticleEntity(); + Integer totalNumber = stockArticleEntity.getTotalNumber(); + BeanUtil.copy(stockArticleEntity,currentStockArticleEntity); + currentStockArticleEntity.setId(null); + currentStockArticleEntity.setHandQuantity(enterNum); + currentStockArticleEntity.setWarehouseId(warehouseId); + currentStockArticleEntity.setWarehouse(warehouseEntity.getName()); + currentStockArticleEntity.setWarehouseEntryTime(now); + currentStockArticleEntity.setCompleteSet(1); + currentStockArticleEntity.setOrderReceiveStatus("20"); + if(totalNumber.equals(enterNum)){ + currentStockArticleEntity.setCompleteSet(2); + currentStockArticleEntity.setOrderReceiveStatus("30"); + } + currentStockArticleEntity.setStockupStatus("10"); + currentStockArticleEntity.setReservationStatus("10"); + currentStockArticleEntity.setOrderStatus("20"); + currentStockArticleEntity.setGroundingStatus("10"); + currentStockArticleEntity.setFreezeStatus("10"); + currentStockArticleEntity.setWarehouseEntryTimeEnd(now); + currentStockArticleEntity.setSortingQuantity(0); + currentStockArticleEntity.setDeliveryQuantity(0); + currentStockArticleEntity.setTransferQuantity(0); + currentStockArticleEntity.setSigninQuantity(0); + currentStockArticleEntity.setAllocation(null); + currentStockArticleEntity.setTrays(null); + currentStockArticleEntity.setIncomingNum(enterNum); + Long orderId = stockArticleClient.addData(currentStockArticleEntity); + if(!Objects.isNull(orderId)){ + List updateScanZeroDetailEntityList = new ArrayList<>(); + List addParcelNumberEntityList = new ArrayList<>(); + List updateRecordZeroDetailList = new ArrayList<>(); + List parcelListEntityList = parcelListClient.findEntityVOListByOrderCode(orderCode, fromWarehouseId); + parcelListEntityList.forEach(parcelListEntity -> { + Long packageId = parcelListEntity.getId(); + Integer zeroPackageTotalNum = parcelListEntity.getZeroPackageTotalNum(); + ZeroPackageDTO zeroPackageDTO = zeroPackageDTOSMapByPackageId.get(packageId); + Long goodsId = zeroPackageDTO.getGoodsId(); + Integer packageEnterNum = zeroPackageDTO.getEnterNum(); + //保存包件信息 + DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity(); + BeanUtil.copy(parcelListEntity,currentParcelListEntity); + Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId(); + currentParcelListEntity.setId(null); + currentParcelListEntity.setQuantity(packageEnterNum); + currentParcelListEntity.setGoodsAllocation(null); + currentParcelListEntity.setStockArticleId(orderId); + currentParcelListEntity.setPallet(null); + currentParcelListEntity.setWarehouseId(warehouseId); + currentParcelListEntity.setWarehouse(warehouseEntity.getName()); + currentParcelListEntity.setIsTransfer(1); + if(acceptWarehouseId.equals(warehouseId)){ + currentParcelListEntity.setIsTransfer(0); + } + Long parceListId = parcelListClient.addReturnId(currentParcelListEntity); + if(!Objects.isNull(parceListId)){ + //保存零担包件数量信息 + DistributionParcelNumberEntity currentParcelNumberEntity = new DistributionParcelNumberEntity(); + currentParcelNumberEntity.setStockArticleId(orderId); + currentParcelNumberEntity.setParcelListId(parceListId); + currentParcelNumberEntity.setQuantity(zeroPackageTotalNum); + currentParcelNumberEntity.setHandQuantity(packageEnterNum); + currentParcelNumberEntity.setOutboundQuantity(0); + currentParcelNumberEntity.setDeliveryQuantity(0); + currentParcelNumberEntity.setSigninQuantity(0); + addParcelNumberEntityList.add(currentParcelNumberEntity); + } + + //更新异常列表零担品类数量信息 + AftersalesAbnormalRecordZeroDetailEntity aftersalesAbnormalRecordZeroDetailEntity = recordZeroDetailEntitiesMapByGoodsId.get(goodsId); + AftersalesAbnormalRecordZeroDetailEntity updateRecordZeroDetail = new AftersalesAbnormalRecordZeroDetailEntity(); + updateRecordZeroDetail.setId(aftersalesAbnormalRecordZeroDetailEntity.getId()); + updateRecordZeroDetail.setIncomingNum(packageEnterNum); + updateRecordZeroDetailList.add(updateRecordZeroDetail); + + //更新装车明细零担信息 + TrunklineScanZeroDetailEntity scanZeroDetailEntity = scanZeroDetailEntityMap.get(packageId); + TrunklineScanZeroDetailEntity updateScanZeroDetailEntity = new TrunklineScanZeroDetailEntity(); + updateScanZeroDetailEntity.setId(scanZeroDetailEntity.getId()); + updateScanZeroDetailEntity.setUnloadNum(scanZeroDetailEntity.getUnloadNum()+packageEnterNum); + updateScanZeroDetailEntityList.add(updateScanZeroDetailEntity); + }); + if(CollUtil.isNotEmpty(updateRecordZeroDetailList)){ + recordZeroDetailService.updateBatchById(updateRecordZeroDetailList); } - currentStockArticleEntity.setStockupStatus("10"); - currentStockArticleEntity.setReservationStatus("10"); - currentStockArticleEntity.setOrderStatus("20"); - currentStockArticleEntity.setGroundingStatus("10"); - currentStockArticleEntity.setFreezeStatus("10"); - currentStockArticleEntity.setWarehouseEntryTimeEnd(now); - currentStockArticleEntity.setSortingQuantity(0); - currentStockArticleEntity.setDeliveryQuantity(0); - currentStockArticleEntity.setTransferQuantity(0); - currentStockArticleEntity.setSigninQuantity(0); - currentStockArticleEntity.setAllocation(null); - currentStockArticleEntity.setTrays(null); - currentStockArticleEntity.setIncomingNum(enterNum); - Long orderId = stockArticleClient.addData(currentStockArticleEntity); - if(!Objects.isNull(orderId)){ - List addParcelListEntityList = new ArrayList<>(); - List parcelListEntityList = parcelListClient.findEntityListByOrderCode(orderCode, warehouseId); - parcelListEntityList.forEach(parcelListEntity -> { - DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity(); - BeanUtil.copy(parcelListEntity,currentParcelListEntity); - Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId(); - currentParcelListEntity.setId(null); - currentParcelListEntity.setGoodsAllocation(null); - currentParcelListEntity.setStockArticleId(orderId); - currentParcelListEntity.setPallet(null); - currentParcelListEntity.setWarehouseId(warehouseId); - currentParcelListEntity.setWarehouse(warehouseEntity.getName()); - currentParcelListEntity.setIsTransfer(1); - if(acceptWarehouseId.equals(warehouseId)){ - currentParcelListEntity.setIsTransfer(0); - } - addParcelListEntityList.add(currentParcelListEntity); - }); - parcelListClient.addZeroParcelList(addParcelListEntityList); + if(CollUtil.isNotEmpty(updateScanZeroDetailEntityList)){ + scanZeroDetailClient.updateBetch(updateScanZeroDetailEntityList); } - }else{ + if(CollUtil.isNotEmpty(addParcelNumberEntityList)){ + parcelNumberClient.addBatch(addParcelNumberEntityList); + } + } + }else{ + Long orderId = currentStockArticleEntity.getId(); + + List parcelListEntityList = parcelListClient.findListByStockArticleId(orderId); + //把parcelListEntityList转化成以firsts为key的map + Map parcelListEntityMapByFirsts = parcelListEntityList.stream().collect(Collectors.toMap(DistributionParcelListEntity::getFirsts, Function.identity())); + + List parcelNumberEntityList =parcelNumberClient.findListByStockArticleId(orderId); + //把parcelNumberEntityList转化成以parceListId为key的Map + Map parcelNumberEntityMapByParcelListId = parcelNumberEntityList.stream().collect(Collectors.toMap(DistributionParcelNumberEntity::getParcelListId, Function.identity())); + + //把scanZeroDetailEntityList转化成以goodsId为key的Map + Map scanZeroDetailEntityMapByGoodsId = scanZeroDetailEntityList.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getGoodsId, Function.identity())); + + List updateScanZeroDetailEntityList = new ArrayList<>(); + List updateAbnormalRecordZeroDetailEntityList = new ArrayList<>(); + List updateParcelListEntityList = new ArrayList<>(); + List updateParcelNumberEntityList = new ArrayList<>(); + + zeroPackageDTOS.forEach(zeroPackageDTO -> { + Integer packageNum = zeroPackageDTO.getEnterNum(); + String goodsName = zeroPackageDTO.getGoodsName(); + Long goodsId = zeroPackageDTO.getGoodsId(); + //更新装车明细零担信息 + TrunklineScanZeroDetailEntity scanZeroDetailEntity = scanZeroDetailEntityMapByGoodsId.get(goodsId); + TrunklineScanZeroDetailEntity updateScanZeroDetailEntity = new TrunklineScanZeroDetailEntity(); + updateScanZeroDetailEntity.setId(scanZeroDetailEntity.getId()); + updateScanZeroDetailEntity.setUnloadNum(scanZeroDetailEntity.getUnloadNum()+packageNum); + updateScanZeroDetailEntityList.add(updateScanZeroDetailEntity); + + //更新异常列表零担品类数量 + AftersalesAbnormalRecordZeroDetailEntity aftersalesAbnormalRecordZeroDetailEntity = recordZeroDetailEntitiesMapByGoodsId.get(goodsId); + AftersalesAbnormalRecordZeroDetailEntity updateRecordZeroDetail = new AftersalesAbnormalRecordZeroDetailEntity(); + updateRecordZeroDetail.setId(aftersalesAbnormalRecordZeroDetailEntity.getId()); + updateRecordZeroDetail.setIncomingNum(aftersalesAbnormalRecordZeroDetailEntity.getIncomingNum()+packageNum); + updateAbnormalRecordZeroDetailEntityList.add(updateRecordZeroDetail); + + //更新;零担包件信息 + DistributionParcelListEntity parcelList = parcelListEntityMapByFirsts.get(goodsName); + Long parcelListId = parcelList.getId(); + DistributionParcelListEntity updateParceListEntity = new DistributionParcelListEntity(); + updateParceListEntity.setId(parcelListId); + updateParceListEntity.setQuantity(parcelList.getQuantity()+packageNum); + updateParcelListEntityList.add(updateParceListEntity); + + //更新零担品类数量信息 + DistributionParcelNumberEntity parcelNumberEntity = parcelNumberEntityMapByParcelListId.get(parcelListId); + DistributionParcelNumberEntity updateParceNumberEntity = new DistributionParcelNumberEntity(); + updateParceNumberEntity.setId(parcelNumberEntity.getId()); + updateParceNumberEntity.setHandQuantity(parcelNumberEntity.getHandQuantity()+packageNum); + updateParcelNumberEntityList.add(updateParceNumberEntity); + }); + + if(CollUtil.isNotEmpty(updateScanZeroDetailEntityList)){ + scanZeroDetailClient.updateBetch(updateScanZeroDetailEntityList); + } + if(CollUtil.isNotEmpty(updateAbnormalRecordZeroDetailEntityList)){ + recordZeroDetailService.updateBatchById(updateAbnormalRecordZeroDetailEntityList); + } + if(CollUtil.isNotEmpty(updateParcelListEntityList)){ + parcelListClient.updateList(updateParcelListEntityList); + } + if(CollUtil.isNotEmpty(updateParcelNumberEntityList)){ + parcelNumberClient.updateList(updateParcelNumberEntityList); + } - stockArticleClient.addHandQuantityAndIncomingNum(currentStockArticleEntity.getId(),enterNum); + stockArticleClient.addHandQuantityAndIncomingNum(currentStockArticleEntity.getId(),enterNum); - } - abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓,原仓返回"+diff+"件"); } + + carsLoadScanEntity.setScanStatus("2"); carsLoadScanEntity.setUnloadNum(carsLoadScanEntity.getUnloadNum()+enterNum); trunklineCarsLoadScanClient.updateEntity(carsLoadScanEntity); @@ -353,4 +439,13 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("abnormal_record_id",abnormalRecordId); + List list = recordZeroDetailService.list(queryWrapper); + return R.data(list); + } } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordZeroDetailServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordZeroDetailServiceImpl.java index e78854b95..d603b5419 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordZeroDetailServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordZeroDetailServiceImpl.java @@ -1,16 +1,25 @@ package com.logpm.aftersales.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.logpm.aftersales.entity.AftersalesAbnormalRecordZeroDetailEntity; import com.logpm.aftersales.mapper.AftersalesAbnormalRecordZeroDetailMapper; import com.logpm.aftersales.service.IAftersalesAbnormalRecordZeroDetailService; import lombok.AllArgsConstructor; -import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + @Service @AllArgsConstructor @Slf4j public class AftersalesAbnormalRecordZeroDetailServiceImpl extends BaseServiceImpl implements IAftersalesAbnormalRecordZeroDetailService { + @Override + public List findListByAbnormalRecordId(Long abnormalRecordId) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("abnormal_record_id",abnormalRecordId); + return baseMapper.selectList(queryWrapper); + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java index 27bc19be8..5cc5c5a15 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java @@ -34,6 +34,7 @@ import com.logpm.distribution.service.IDistributionParcelListService; import com.logpm.distribution.service.IDistributionParcelNumberService; import com.logpm.distribution.service.IDistributionStockArticleService; import com.logpm.distribution.vo.DistributionParcelListVO; +import com.logpm.distribution.vo.ZeroPackageSupplyVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.support.BladePage; @@ -529,4 +530,9 @@ public class DistributionParcelListClient implements IDistributionParcelListClie //对应的parceNumber也要加上在库数量 distributionParcelNumberService.addZeroQuantity(packageId,num); } + + @Override + public List findListByStockArticleIds(List orderIdList) { + return distributionParcelListService.findListByStockArticleIds(orderIdList); + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java index d46248cc3..f58e8e9ba 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java @@ -70,4 +70,11 @@ public class DistributionParcelNumberClient implements IDistributionParcelNumber distributionParcelNumberService.updateBatchById(updateParceNumberList); } + @Override + public List findListByStockArticleId(Long orderId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("stock_article_id", orderId); + return distributionParcelNumberService.list(queryWrapper); + } + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java index bd019cb23..856639143 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java @@ -303,4 +303,7 @@ public interface DistributionParcelListMapper extends BaseMapper findEntityVOListByOrderCode(@Param("orderCode") String orderCode,@Param("fromWarehouseId") Long fromWarehouseId); void addZeroPackageQuantity(@Param("packageId") Long packageId, @Param("num") int num); + + List findListByStockArticleIds(@Param("orderIdList") List orderIdList); + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml index b9c4ea74c..8afeef52c 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml @@ -1888,7 +1888,7 @@ select ldpl.*, lwwd.num zeroPackageTotalNum from logpm_distribution_parcel_list ldpl - left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advanceId + left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advance_id where ldpl.order_code = #{orderCode} and ldpl.warehouse_id = #{fromWarehouseId} @@ -1900,4 +1900,19 @@ where id = #{packageId} + + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java index b2c9a4afb..e9a2e4a25 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java @@ -21,10 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.distribution.dto.app.StockupDTO; import com.logpm.distribution.entity.DistributionParcelListEntity; import com.logpm.distribution.excel.DistributionParcelListExcel; -import com.logpm.distribution.vo.DistributionParcelListBaseVO; -import com.logpm.distribution.vo.DistributionParcelListVO; -import com.logpm.distribution.vo.DistributionParcelListZeroVO; -import com.logpm.distribution.vo.PackageStockupVO; +import com.logpm.distribution.vo.*; import org.springblade.core.mp.base.BaseService; import org.springblade.core.tool.api.R; @@ -261,4 +258,6 @@ public interface IDistributionParcelListService extends BaseService findEntityVOListByOrderCode(String orderCode, Long fromWarehouseId); void addZeroPackageQuantity(Long packageId, int num); + + List findListByStockArticleIds(List orderIdList); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java index 6e029ddef..053ef44a7 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java @@ -1364,6 +1364,11 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl findListByStockArticleIds(List orderIdList) { + return baseMapper.findListByStockArticleIds(orderIdList); + } + private JSONObject handleLogJSONObject(BasicdataWarehouseEntity warehouse, BladeUser user, String orderPackageCode, String content, Integer node) { JSONObject trunklinePackageTrackLog = new JSONObject(); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java index d0eac3c71..8843461e0 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/CarsLoadApiController.java @@ -931,6 +931,8 @@ public class CarsLoadApiController { Long signOrderId = loadCarsDTO.getSignOrderId(); Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId(); Integer enterNum = loadCarsDTO.getEnterNum(); + List zeroPackageList = loadCarsDTO.getZeroPackageList(); + try{ @@ -951,7 +953,12 @@ public class CarsLoadApiController { return R.fail(405,"签收零担id为空"); } - return carsLoadService.signZeroOrder(signOrderId,carsLoadScanId,enterNum,"PDA录入签收"); + if(CollUtil.isEmpty(zeroPackageList)){ + log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList); + return R.fail(405,"品类信息为空"); + } + + return carsLoadService.signZeroOrder(signOrderId,carsLoadScanId,enterNum,"PDA录入签收",zeroPackageList); }catch (CustomerException e){ log.error(e.message,e); return R.fail(e.code,e.message); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/TripartiteTransferApiController.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/TripartiteTransferApiController.java index 5195eb533..9e9e6b808 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/TripartiteTransferApiController.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/api/TripartiteTransferApiController.java @@ -1,11 +1,13 @@ package com.logpm.trunkline.api; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.trunkline.dto.BatchUnloadDTO; import com.logpm.trunkline.dto.LoadCarsDTO; +import com.logpm.trunkline.dto.ZeroPackageDTO; import com.logpm.trunkline.service.ITrunklineCarsLoadService; import com.logpm.trunkline.vo.TripartiteTransferVO; import io.swagger.annotations.Api; @@ -17,6 +19,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.StringUtil; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Objects; @Slf4j @@ -135,6 +138,7 @@ public class TripartiteTransferApiController { String trayCode = loadCarsDTO.getTrayCode(); String orderCode = loadCarsDTO.getOrderCode(); Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId(); + List zeroPackageList = loadCarsDTO.getZeroPackageList(); try{ @@ -157,8 +161,12 @@ public class TripartiteTransferApiController { log.warn(method+"订单号为空 orderCode={}",orderCode); return R.fail(405,"订单号为空"); } + if(CollUtil.isEmpty(zeroPackageList)){ + log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList); + return R.fail(405,"品类信息为空"); + } - return carsLoadService.transferUnloadZero(carsLoadScanId,loadId,waybillNo,enterNum,myCurrentWarehouse.getId(),1,trayCode,orderCode,"零担正常卸车"); + return carsLoadService.transferUnloadZero(carsLoadScanId,loadId,waybillNo,enterNum,myCurrentWarehouse.getId(),1,trayCode,orderCode,"零担正常卸车",zeroPackageList); }catch (CustomerException e){ log.error(e.message,e); return R.fail(e.code,e.message); 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 aa6ab07af..57158a086 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 @@ -1,5 +1,6 @@ package com.logpm.trunkline.controller; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; @@ -1407,6 +1408,7 @@ public class CarsLoadController { String orderCode = zeroSuppleVO.getOrderCode(); Integer enterNum = zeroSuppleVO.getEnterNum(); Long finalNodeId = zeroSuppleVO.getFinalNodeId(); + List zeroPackageList = zeroSuppleVO.getZeroPackageList(); if(StringUtil.isBlank(waybillNo)){ log.warn(method+"运单号为空 waybillNo={}",waybillNo); @@ -1427,6 +1429,12 @@ public class CarsLoadController { log.warn(method+"目的仓id为空 finalNodeId={}",finalNodeId); return R.fail(405,"目的仓id为空"); } + + if(CollUtil.isNotEmpty(zeroPackageList)){ + log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList); + return R.fail(405,"品类信息为空"); + } + } return carsLoadService.addZeroSupple(loadCarsDTO); @@ -1976,6 +1984,7 @@ public class CarsLoadController { Long signOrderId = loadCarsDTO.getSignOrderId(); Long carsLoadScanId = loadCarsDTO.getCarsLoadScanId(); Integer enterNum = loadCarsDTO.getEnterNum(); + List zeroPackageList = loadCarsDTO.getZeroPackageList(); try{ @@ -1996,7 +2005,12 @@ public class CarsLoadController { return R.fail(405,"签收零担id为空"); } - return carsLoadService.signZeroOrder(signOrderId,carsLoadScanId,enterNum,"PC录入签收"); + if(CollUtil.isEmpty(zeroPackageList)){ + log.warn(method+"品类信息为空 zeroPackageList={}",zeroPackageList); + return R.fail(405,"品类信息为空"); + } + + return carsLoadService.signZeroOrder(signOrderId,carsLoadScanId,enterNum,"PC录入签收",zeroPackageList); }catch (CustomerException e){ log.error(e.message,e); return R.fail(e.code,e.message); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineScanZeroDetailClient.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineScanZeroDetailClient.java new file mode 100644 index 000000000..d1c4da8f8 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineScanZeroDetailClient.java @@ -0,0 +1,32 @@ +package com.logpm.trunkline.feign; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; +import com.logpm.trunkline.service.ITrunklineScanZeroDetailService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; + +@Slf4j +@ApiIgnore() +@RestController +@AllArgsConstructor +public class TrunklineScanZeroDetailClient implements ITrunklineScanZeroDetailClient{ + + private final ITrunklineScanZeroDetailService trunklineScanZeroDetailService; + + @Override + public List findListByCarsLoadScanId(Long carsLoadScanId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("scan_id",carsLoadScanId); + return trunklineScanZeroDetailService.list(queryWrapper); + } + + @Override + public void updateBetch(List updateScanZeroDetailEntityList) { + trunklineScanZeroDetailService.updateBatchById(updateScanZeroDetailEntityList); + } +} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.java index 92a13f4bb..0348ad393 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.java @@ -9,6 +9,7 @@ import com.logpm.trunkline.entity.TrunklineCarsLoadEntity; import com.logpm.trunkline.vo.CarsLoadAllOrderVO; import com.logpm.trunkline.vo.TripartiteTransferVO; import com.logpm.trunkline.vo.TrunklineCarsLoadVO; +import com.logpm.trunkline.vo.ZeroSuppleListVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -38,8 +39,8 @@ public interface TrunklineCarsLoadMapper extends BaseMapper findUseOrderListNoPage(@Param("param") LoadCarsDTO loadCarsDTO); - IPage findZeroListByWarehouseId(IPage page, @Param("param") LoadCarsDTO loadCarsDTO); - IPage findSignOrderZeroListByWarehouseId(IPage page, @Param("param") LoadCarsDTO loadCarsDTO); + IPage findZeroListByWarehouseId(IPage page, @Param("param") LoadCarsDTO loadCarsDTO); + IPage findSignOrderZeroListByWarehouseId(IPage page, @Param("param") LoadCarsDTO loadCarsDTO); IPage useZeroList(IPage page, @Param("param") LoadCarsDTO loadCarsDTO); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml index c2accde79..d8dbcb732 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml @@ -552,10 +552,10 @@ - + select ldsa.id orderId, + ldsa.waybill_number waybillNo, ldsa.order_code orderCode, - ldsa.hand_quantity handQuantity, lww.create_time createTime, lww.destination destination, lww.destination_warehouse_name destinationWarehouseName, @@ -570,7 +570,6 @@ ldsa.hand_quantity stockNum, lww.customer_train customerTrain, IFNULL(lww.total_freight,0) totalFreight, - lww.total_count, lww.remark remark, ROUND(lww.total_freight/lww.total_count,2) price, ltlso.load_sign_code loadSignCode, @@ -694,10 +693,10 @@ - + select ldsa.id orderId, + ldsa.waybill_number waybillNo, ldsa.order_code orderCode, - ldsa.hand_quantity handQuantity, lww.create_time createTime, lww.destination destination, lww.destination_warehouse_name destinationWarehouseName, @@ -712,7 +711,6 @@ ldsa.hand_quantity stockNum, lww.customer_train customerTrain, IFNULL(lww.total_freight,0) totalFreight, - lww.total_count, lww.remark remark, ROUND(lww.total_freight/lww.total_count,2) price, ltlso.load_sign_code loadSignCode, 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 7557ffb12..163aa887b 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 @@ -175,4 +175,10 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper findAllIdListByLoadIdAndNoScanStatus(@Param("loadId") Long loadId, @Param("scanStatus") String scanStatus); List findTransferLoadScanWaybillList(@Param("loadId") Long loadId, @Param("nodeId") Long nodeId); + + List findUnloadPackageListByLoadIdAndFinalNodeId(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId); + + List findUnloadZeroListByLoadIdAndFinalNodeId(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId); + + List findSignPackageListBySignOrderId(@Param("signOrderId") Long signOrderId); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml index 0455bf279..126d13cc3 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 @@ -932,4 +932,48 @@ 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 752d79d9a..7e5ebe138 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 @@ -66,4 +66,8 @@ public interface TrunklineCarsOrderMapper extends BaseMapper findMallOrderList(@Param("carsOrderIdList") List carsOrderIdList); void deleteNoRealNumByLoadIdAndWarehouseId(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId); + + List findSignOrderListBySignOrderId(@Param("signOrderId") Long signOrderId); + + List findSignZeroOrderListBySignOrderId(@Param("signOrderId") Long signOrderId); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml index d6f4ccaff..f2956c837 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml @@ -356,4 +356,26 @@ and real_num = 0 + + + + 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 8f158ce25..db41b721a 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 @@ -171,4 +171,10 @@ public interface ITrunklineCarsLoadScanService extends BaseService findAllIdListByLoadIdAndNoScanStatus(Long loadId, String scanStatus); List findTransferLoadScanWaybillList(Long loadId, Long nodeId); + + List findUnloadPackageListByLoadIdAndFinalNodeId(Long loadId, Long warehouseId); + + List findUnloadZeroListByLoadIdAndFinalNodeId(Long loadId, Long warehouseId); + + List findSignPackageListBySignOrderId(Long signOrderId); } 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 9cf630809..39e196a4d 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 @@ -139,7 +139,7 @@ public interface ITrunklineCarsLoadService extends BaseService zeroPackageList); R transferUnloadTray(Long loadId, String trayCode, Long warehouseId); @@ -159,7 +159,7 @@ public interface ITrunklineCarsLoadService extends BaseService zeroPackageList); R findSignOrderList(LoadCarsDTO loadCarsDTO); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsOrderService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsOrderService.java index 6927abe7e..790f5ff54 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsOrderService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsOrderService.java @@ -64,4 +64,7 @@ public interface ITrunklineCarsOrderService extends BaseService findSignOrderListBySignOrderId(Long signOrderId); + + List findSignZeroOrderListBySignOrderId(Long signOrderId); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java index ce14ec96c..f711e6a1a 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java @@ -439,4 +439,19 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl findUnloadPackageListByLoadIdAndFinalNodeId(Long loadId, Long warehouseId) { + return baseMapper.findUnloadPackageListByLoadIdAndFinalNodeId(loadId,warehouseId); + } + + @Override + public List findUnloadZeroListByLoadIdAndFinalNodeId(Long loadId, Long warehouseId) { + return baseMapper.findUnloadZeroListByLoadIdAndFinalNodeId(loadId,warehouseId); + } + + @Override + public List findSignPackageListBySignOrderId(Long signOrderId) { + return baseMapper.findSignPackageListBySignOrderId(signOrderId); + } + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index 6561afc0b..3fd097816 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -29,6 +29,7 @@ import com.logpm.distribution.feign.IDistributionParcelListClient; import com.logpm.distribution.feign.IDistributionParcelNumberClient; import com.logpm.distribution.feign.IDistributionStockArticleClient; import com.logpm.distribution.vo.DistributionParcelListVO; +import com.logpm.distribution.vo.ZeroPackageSupplyVO; import com.logpm.factorydata.enums.BrandEnums; import com.logpm.factorydata.feign.IFactoryDataClient; import com.logpm.factorydata.util.FactoryDataMessageSender; @@ -1313,8 +1314,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl entity, (entity1, entity2) -> entity1)); // 处理可能的键冲突 - - List updateParceList = new ArrayList<>(); List updateParceNumberList = new ArrayList<>(); @@ -1673,8 +1672,24 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl pageList = distributionStockArticleClient.findZeroListByWarehouseId(warehouseId,pageNum,pageSize); - IPage pageList = baseMapper.findSignOrderZeroListByWarehouseId(page, loadCarsDTO); + IPage pageList = baseMapper.findSignOrderZeroListByWarehouseId(page, loadCarsDTO); + List records = pageList.getRecords(); + //把records中所有元素的orderId放入一个集合 + List orderIdList = records.stream().map(ZeroSuppleListVO::getOrderId).collect(Collectors.toList()); + List packageList = distributionParcelListClient.findListByStockArticleIds(orderIdList); + //把packageList中所有元素通过stockArticleId进行分组 + Map> map = packageList.stream().collect(Collectors.groupingBy(ZeroPackageSupplyVO::getStockArticleId)); + records.forEach(zeroSuppleListVO -> { + Long orderId = zeroSuppleListVO.getOrderId(); + List jsonObjectList = new ArrayList<>(); + List zeroPackageSupplyVOS = map.get(orderId); + zeroPackageSupplyVOS.forEach(zeroPackageSupplyVO -> { + jsonObjectList.add(JSONObject.parseObject(JSONObject.toJSONString(zeroPackageSupplyVO))); + }); + zeroSuppleListVO.setZeroPackageSupplyVOS(jsonObjectList); + }); + + pageList.setRecords(records); return R.data(pageList); } @@ -3768,8 +3783,24 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl pageList = distributionStockArticleClient.findZeroListByWarehouseId(warehouseId,pageNum,pageSize); - IPage pageList = baseMapper.findZeroListByWarehouseId(page, loadCarsDTO); + IPage pageList = baseMapper.findZeroListByWarehouseId(page, loadCarsDTO); + List records = pageList.getRecords(); + //把records中所有元素的orderId放入一个集合 + List orderIdList = records.stream().map(ZeroSuppleListVO::getOrderId).collect(Collectors.toList()); + List packageList = distributionParcelListClient.findListByStockArticleIds(orderIdList); + //把packageList中所有元素通过stockArticleId进行分组 + Map> map = packageList.stream().collect(Collectors.groupingBy(ZeroPackageSupplyVO::getStockArticleId)); + records.forEach(zeroSuppleListVO -> { + Long orderId = zeroSuppleListVO.getOrderId(); + List jsonObjectList = new ArrayList<>(); + List zeroPackageSupplyVOS = map.get(orderId); + zeroPackageSupplyVOS.forEach(zeroPackageSupplyVO -> { + jsonObjectList.add(JSONObject.parseObject(JSONObject.toJSONString(zeroPackageSupplyVO))); + }); + zeroSuppleListVO.setZeroPackageSupplyVOS(jsonObjectList); + }); + + pageList.setRecords(records); return R.data(pageList); } @@ -3821,6 +3852,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroPackageList = zeroSuppleVO.getZeroPackageList(); WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo); if (Objects.isNull(warehouseWaybillEntity)) { @@ -3864,6 +3896,23 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl scanZeroDetailEntityList = new ArrayList<>(); + + zeroPackageList.forEach(zeroPackageDTO -> { + Long packageId = zeroPackageDTO.getPackageId(); + Integer packageNum = zeroPackageDTO.getEnterNum(); + TrunklineScanZeroDetailEntity scanZeroDetailEntity = new TrunklineScanZeroDetailEntity(); + scanZeroDetailEntity.setScanId(scanLoadId); + scanZeroDetailEntity.setPackageId(zeroPackageDTO.getPackageId()); + scanZeroDetailEntity.setGoodsId(zeroPackageDTO.getGoodsId()); + scanZeroDetailEntity.setGoodsName(zeroPackageDTO.getGoodsName()); + scanZeroDetailEntity.setLoadingNum(packageNum); + scanZeroDetailEntity.setUnloadNum(0); + scanZeroDetailEntityList.add(scanZeroDetailEntity); + distributionParcelListClient.addZeroQuantity(packageId,-packageNum); + }); + scanZeroDetailService.saveBatch(scanZeroDetailEntityList); zeroStockArticleEntity.setHandQuantity(zeroStockArticleEntity.getHandQuantity() - enterNum); @@ -3876,14 +3925,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl 0 ){ -// signOrderEntity.setSignStatus("10"); -// } -// trunklineLoadSignOrderService.updateById(signOrderEntity); } } //更新数量 @@ -4130,6 +4171,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroPackageList) { log.info("#############transferUnloadZero: 三方中转卸车零担"); TrunklineCarsLoadEntity carsLoadEntity = baseMapper.selectById(loadId); @@ -4422,6 +4464,15 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl updateScanZeroDetailList = new ArrayList<>(); + zeroPackageList.forEach(zeroPackageDTO -> { + TrunklineScanZeroDetailEntity scanZeroDetailEntity = new TrunklineScanZeroDetailEntity(); + scanZeroDetailEntity.setId(zeroPackageDTO.getId()); + scanZeroDetailEntity.setUnloadNum(zeroPackageDTO.getEnterNum()); + updateScanZeroDetailList.add(scanZeroDetailEntity); + }); + scanZeroDetailService.updateBatchById(updateScanZeroDetailList); + trunklineCarsUnloadLogService.savaUnloadLog(warehouseId, warehouseName, loadId, loadCode, waybillId, waybillNo, orderCode, scanCode, enterNum, 2, 1, isAbnormal, trayId, trayCode, trayName, fromWarehouseId, loadScanId, remark); @@ -4466,7 +4517,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId); + List zeroPackageList = new ArrayList<>(); + zeroDetailVOList.forEach(zeroDetailVO -> { + ZeroPackageDTO zeroPackageDTO = new ZeroPackageDTO(); + zeroPackageDTO.setId(zeroDetailVO.getId()); + zeroPackageDTO.setPackageId(zeroDetailVO.getPackageId()); + zeroPackageDTO.setGoodsId(zeroDetailVO.getGoodsId()); + zeroPackageDTO.setGoodsName(zeroDetailVO.getGoodsName()); + zeroPackageDTO.setEnterNum(zeroDetailVO.getLoadingNum()); + zeroPackageList.add(zeroPackageDTO); + }); + transferUnloadZero(carsLoadScanId,loadId, waybillNo, num, warehouseId, 0, trayCode, orderCode, "三方中装托盘零担正常卸车",zeroPackageList); } } @@ -5031,7 +5093,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId); + List zeroPackageList = new ArrayList<>(); + zeroDetailVOList.forEach(zeroDetailVO -> { + ZeroPackageDTO zeroPackageDTO = new ZeroPackageDTO(); + zeroPackageDTO.setId(zeroDetailVO.getId()); + zeroPackageDTO.setPackageId(zeroDetailVO.getPackageId()); + zeroPackageDTO.setGoodsId(zeroDetailVO.getGoodsId()); + zeroPackageDTO.setGoodsName(zeroDetailVO.getGoodsName()); + zeroPackageDTO.setEnterNum(zeroDetailVO.getLoadingNum()); + zeroPackageList.add(zeroPackageDTO); + }); + transferUnloadZero(carsLoadScanId,loadId, waybillNo, enterNum, warehouseId, 1, trayCode, orderCode, "批量卸车零担正常卸车",zeroPackageList); } @@ -5339,20 +5412,52 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl signScanOrderList = trunklineCarsOrderService.findSignOrderList(loadId, fromWarehouseId,signOrderId); + List signScanOrderList = trunklineCarsOrderService.findSignOrderListBySignOrderId(signOrderId); + List signPackageList = trunklineCarsLoadScanService.findSignPackageListBySignOrderId(signOrderId); + for (SignScanOrderVO signScanOrderVO : signScanOrderList) { - String waybillNo = signScanOrderVO.getWaybillNo(); - String orderCode = signScanOrderVO.getOrderCode(); - List signPackageList = trunklineCarsLoadScanService.findSignPackageList(loadId, fromWarehouseId, orderCode, waybillNo); - signScanOrderVO.setSignPackageList(signPackageList); - } + String waybillNo = StringUtil.isBlank(signScanOrderVO.getWaybillNo())?"null":signScanOrderVO.getWaybillNo(); + String orderCode = StringUtil.isBlank(signScanOrderVO.getOrderCode())?"null":signScanOrderVO.getOrderCode(); + List ls = new ArrayList<>(); + signPackageList.forEach(e -> { + String waybillNo1 = StringUtil.isBlank(e.getWaybillNo())?"null":e.getWaybillNo(); + String orderCode1 = StringUtil.isBlank(e.getOrderCode())?"null":e.getOrderCode(); + if(waybillNo.equals(waybillNo1) && orderCode.equals(orderCode1)){ + ls.add(e); + } + }); + signScanOrderVO.setSignPackageList(ls); + } + + List 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); + }); - List signScanZeroOrderList = trunklineCarsOrderService.findSignZeroOrderList(loadId, fromWarehouseId,signOrderId); for (SignScanOrderVO signScanOrderVO : signScanZeroOrderList) { - String waybillNo = signScanOrderVO.getWaybillNo(); - String orderCode = signScanOrderVO.getOrderCode(); - List signPackageList = trunklineCarsLoadScanService.findSignPackageList(loadId, fromWarehouseId, orderCode, waybillNo); - signScanOrderVO.setSignPackageList(signPackageList); + String waybillNo = StringUtil.isBlank(signScanOrderVO.getWaybillNo())?"null":signScanOrderVO.getWaybillNo(); + String orderCode = StringUtil.isBlank(signScanOrderVO.getOrderCode())?"null":signScanOrderVO.getOrderCode(); + List ls = new ArrayList<>(); + signZeroPackageList.forEach(e -> { + String waybillNo1 = StringUtil.isBlank(e.getWaybillNo())?"null":e.getWaybillNo(); + String orderCode1 = StringUtil.isBlank(e.getOrderCode())?"null":e.getOrderCode(); + if(waybillNo.equals(waybillNo1) && orderCode.equals(orderCode1)){ + ls.add(e); + } + }); + signScanOrderVO.setSignPackageList(ls); } //查询异常列表 @@ -5706,7 +5811,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroPackageList) { Date date = new Date(); TrunklineLoadSignOrderEntity signOrderEntity = trunklineLoadSignOrderService.getById(signOrderId); if (Objects.isNull(signOrderEntity)) { @@ -5768,6 +5873,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl updateScanZeroDetailList = new ArrayList<>(); + zeroPackageList.forEach(zeroPackage -> { + TrunklineScanZeroDetailEntity updateEntity = new TrunklineScanZeroDetailEntity(); + updateEntity.setId(zeroPackage.getId()); + updateEntity.setUnloadNum(zeroPackage.getEnterNum()); + updateScanZeroDetailList.add(updateEntity); + }); + + if(CollUtil.isNotEmpty(updateScanZeroDetailList)){ + scanZeroDetailService.updateBatchById(updateScanZeroDetailList); + } + //生成签收记录 trunklineCarsSignLogService.addEntity(carsLoadScanEntity, remark); @@ -5835,7 +5952,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl signOrderIds = new ArrayList<>(); List updateCarsLoadScanList = new ArrayList<>(); List updateParcelList = new ArrayList<>(); - + List updateZerpPackageList = new ArrayList<>(); Date date = new Date(); if (!list.isEmpty()) { @@ -5864,7 +5981,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl parcelList = parcelListMap.get(scanCode); if (!Objects.isNull(parcelList)) { @@ -5874,6 +5993,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId); + zeroDetailVOList.forEach(p -> { + TrunklineScanZeroDetailEntity scanZeroDetailEntity = new TrunklineScanZeroDetailEntity(); + scanZeroDetailEntity.setId(p.getId()); + scanZeroDetailEntity.setUnloadNum(p.getLoadingNum()); + updateZerpPackageList.add(scanZeroDetailEntity); + }); + } updateCarsLoadScanList.add(entity); loadIds.add(entity.getLoadId()); @@ -5908,6 +6037,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderCodeNumMap = orderCodeNumList.stream().collect(Collectors.toMap(OrderCodeNumVO::getOrderCode, Function.identity())); + List unloadList = trunklineCarsLoadScanService.findUnloadPackageListByLoadIdAndFinalNodeId(loadId,warehouseId); + for (UnloadScanOrderVO unloadScanOrderVO : unloadScanOrderList) { - String waybillNo = unloadScanOrderVO.getWaybillNo(); - String orderCode = unloadScanOrderVO.getOrderCode(); + String waybillNo = StringUtil.isBlank(unloadScanOrderVO.getWaybillNo())?"null":unloadScanOrderVO.getWaybillNo(); + String orderCode = StringUtil.isBlank(unloadScanOrderVO.getOrderCode())?"null":unloadScanOrderVO.getOrderCode(); unloadScanOrderVO.setTotalNumber(orderCodeNumMap.get(orderCode).getTotalNum()); - List unloadPackageList = trunklineCarsLoadScanService.findUnloadPackageList(loadId, warehouseId, waybillNo, orderCode); + List unloadPackageList = new ArrayList<>(); + unloadList.forEach(unloadPackageVO -> { + String orderCode1 = StringUtil.isBlank(unloadPackageVO.getOrderCode())?"null":unloadPackageVO.getOrderCode(); + String waybillNo1 = StringUtil.isBlank(unloadPackageVO.getWaybillNo())?"null":unloadPackageVO.getWaybillNo(); + if(waybillNo.equals(waybillNo1) && orderCode.equals(orderCode1)){ + unloadPackageList.add(unloadPackageVO); + } + }); unloadScanOrderVO.setUnloadPackageList(unloadPackageList); } } @@ -9470,11 +9612,34 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroList = trunklineCarsLoadScanService.findUnloadZeroList(loadId, warehouseId); + + List unloadPackageList = trunklineCarsLoadScanService.findUnloadZeroListByLoadIdAndFinalNodeId(loadId, warehouseId); + List carsLoadScanIds = unloadPackageList.stream() + .map(UnloadPackageVO::getCarsLoadScanId) + .collect(Collectors.toList()); + List scanZeroDetailList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds); + //把scanZeroDetailList中所有元素通过id进行分组 + Map> scanZeroDetailMap = scanZeroDetailList.stream() + .collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); + + unloadPackageList.forEach(unloadPackageVO -> { + Long carsLoadScanId = unloadPackageVO.getCarsLoadScanId(); + List list = scanZeroDetailMap.get(carsLoadScanId); + unloadPackageVO.setScanZeroDetailList(list); + }); + for (UnloadZeroVO unloadZeroVO : zeroList) { - String waybillNo = unloadZeroVO.getWaybillNo(); - String orderCode = unloadZeroVO.getOrderCode(); - List unloadPackageList = trunklineCarsLoadScanService.findUnloadZeroList(loadId, warehouseId, waybillNo, orderCode); - unloadZeroVO.setUnloadPackageList(unloadPackageList); + String waybillNo = StringUtil.isBlank(unloadZeroVO.getWaybillNo())?"null":unloadZeroVO.getWaybillNo(); + String orderCode = StringUtil.isBlank(unloadZeroVO.getOrderCode())?"null":unloadZeroVO.getOrderCode(); + List unloadLs = new ArrayList<>(); + unloadPackageList.forEach(unloadPackageVO -> { + String orderCode1 = StringUtil.isBlank(unloadPackageVO.getOrderCode())?"null":unloadPackageVO.getOrderCode(); + String waybillNo1 = StringUtil.isBlank(unloadPackageVO.getWaybillNo())?"null":unloadPackageVO.getWaybillNo(); + if(waybillNo.equals(waybillNo1) && orderCode.equals(orderCode1)){ + unloadLs.add(unloadPackageVO); + } + }); + unloadZeroVO.setUnloadPackageList(unloadLs); } //查询异常列表 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 e0b3a3e39..53d89f456 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,6 +12,7 @@ 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 @@ -153,4 +154,14 @@ public class TrunklineCarsOrderEntityServiceImpl extends BaseServiceImpl findSignOrderListBySignOrderId(Long signOrderId) { + return baseMapper.findSignOrderListBySignOrderId(signOrderId); + } + + @Override + public List findSignZeroOrderListBySignOrderId(Long signOrderId) { + return baseMapper.findSignZeroOrderListBySignOrderId(signOrderId); + } + } From 7723f33924251eb56728e8966cfde24f5eae836f Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Fri, 6 Sep 2024 11:58:17 +0800 Subject: [PATCH 38/73] =?UTF-8?q?1.=E6=8E=A8=E9=80=81=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=BF=90=E5=8D=95=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PanFactoryDataServiceImpl.java | 401 ++++++++---------- 1 file changed, 182 insertions(+), 219 deletions(-) diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java index cab9914fd..56343ed2c 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java @@ -9,16 +9,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.logpm.basic.entity.BasicMaterialEntity; import com.logpm.basic.feign.IBasicMaterialClient; -import com.logpm.basicdata.entity.BasicdataBrandEntity; -import com.logpm.basicdata.entity.BasicdataCategoryEntity; -import com.logpm.basicdata.entity.BasicdataClientEntity; -import com.logpm.basicdata.entity.BasicdataStoreBusinessEntity; -import com.logpm.basicdata.entity.BasicdataWarehouseEntity; -import com.logpm.basicdata.feign.IBasicdataBrandClient; -import com.logpm.basicdata.feign.IBasicdataCategoryClient; -import com.logpm.basicdata.feign.IBasicdataClientClient; -import com.logpm.basicdata.feign.IBasicdataStoreBusinessClient; -import com.logpm.basicdata.feign.IBasicdataWarehouseClient; +import com.logpm.basicdata.entity.*; +import com.logpm.basicdata.feign.*; import com.logpm.distribution.entity.DistributionParcelListEntity; import com.logpm.distribution.entity.DistributionStockArticleEntity; import com.logpm.distribution.feign.IDistributionParcelListClient; @@ -37,23 +29,8 @@ import com.logpm.factory.snm.bean.Resp; import com.logpm.factory.snm.entity.PanFactoryOrder; import com.logpm.factory.snm.entity.PanPackageInfo; import com.logpm.factory.snm.entity.PanPackageList; -import com.logpm.oldproject.entity.AdvanceDetailEntity; -import com.logpm.oldproject.entity.AdvanceEntity; -import com.logpm.oldproject.entity.DetailProductEntity; -import com.logpm.oldproject.entity.OrderDetailEntity; -import com.logpm.oldproject.entity.TrayScanDesEntity; -import com.logpm.oldproject.entity.TrayScanEntity; -import com.logpm.oldproject.entity.WayBillEntity; -import com.logpm.oldproject.entity.WaybillDesEntity; -import com.logpm.oldproject.feign.IAdvanceClient; -import com.logpm.oldproject.feign.IAdvanceDetailClient; -import com.logpm.oldproject.feign.IDetailProductClient; -import com.logpm.oldproject.feign.IOrderDetailClient; -import com.logpm.oldproject.feign.ITrayScanClient; -import com.logpm.oldproject.feign.ITrayScanDesClient; -import com.logpm.oldproject.feign.IWarehouseClient; -import com.logpm.oldproject.feign.IWayBillClient; -import com.logpm.oldproject.feign.IWaybillDesClient; +import com.logpm.oldproject.entity.*; +import com.logpm.oldproject.feign.*; import com.logpm.oldproject.vo.DistributionParcelListEntityVO; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceEntity; @@ -70,23 +47,13 @@ import com.logpm.warehouse.feign.IWarehouseWaybillClient; import com.logpm.warehouse.feign.IWarehouseWaybillDetailClient; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.redisson.api.RLock; -import org.redisson.api.RedissonClient; import org.springblade.common.constant.TenantNum; -import org.springblade.common.constant.order.OrderFreezeStatusConstant; -import org.springblade.common.constant.order.OrderGroundingStatusConstant; -import org.springblade.common.constant.order.OrderReceiveStatusConstant; -import org.springblade.common.constant.order.OrderReservationStatusConstant; -import org.springblade.common.constant.order.OrderStatusConstant; -import org.springblade.common.constant.order.OrderStockupStatusConstant; -import org.springblade.common.constant.orderpackage.OrderPackageFreezeStatusConstant; -import org.springblade.common.constant.orderpackage.OrderPackageGroundingStatusConstant; -import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant; -import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant; -import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusConstant; +import org.springblade.common.constant.order.*; +import org.springblade.common.constant.orderpackage.*; import org.springblade.common.exception.CustomerException; import org.springblade.common.utils.CommonUtil; import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.redis.lock.LockType; import org.springblade.core.redis.lock.RedisLockClient; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.ObjectUtil; @@ -96,12 +63,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; +import java.util.concurrent.TimeUnit; @Slf4j @AllArgsConstructor @@ -151,7 +114,6 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { private final BladeRedis redis; private final RedisLockClient redisLockClient; - private final RedissonClient redissonClient; private final IRegionFeign regionFeign; private final IBasicdataBrandClient basicdataBrandClient; @@ -536,7 +498,7 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { String takeCompany= ""; if(ObjectUtil.isNotEmpty(supplyData)){ destinationWarehouse = supplyData.get("destinationWarehouse");//目的仓名称 - takeCompany = supplyData.get("takeCompany"); + takeCompany = supplyData.get("takeCompany"); } // OrderDetailEntity orderDetailEntity = orderDetailClient.findByUnitNo(unitNo); @@ -564,7 +526,7 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { if (Objects.isNull(distributionStockArticleEntity)) { Date date = new Date(); if(StringUtil.isNoneBlank(operationTime)){ - date = CommonUtil.StringToDate(operationTime); + date = CommonUtil.StringToDate(operationTime); } log.info("#################handleDataToPlatform.waybillNoNum: {}", waybillNoNum); @@ -596,9 +558,9 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { distributionStockArticleEntity.setCompleteSet(0); } log.info("############basicdataWarehouseEntity {}", basicdataWarehouseEntity); - distributionStockArticleEntity.setCreateDept(basicdataWarehouseEntity.getDepartment()); + distributionStockArticleEntity.setCreateDept(basicdataWarehouseEntity.getDepartment()); - WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNoNum); + WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNoNum); if(Objects.isNull(wayBillEntity)){ @@ -949,187 +911,188 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { // log.info("###########saveWaybillEntity: 已有保存数据 waybillNo={}", waybillNo); // return waybillId; // } - //通过运单号先去查询新系统是否存在这个运单号 - WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo); - String lockKey = "dealwithWaybillNo:lock:" + waybillNo; + + String lockKey = "dealwithWaybillNo:" + waybillNo; Long aLong = null; boolean flag = false; - RLock lock = redissonClient.getLock(lockKey); try { + flag = redisLockClient.tryLock(lockKey, LockType.FAIR, 20000, 30000, TimeUnit.MILLISECONDS); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + log.info("##############我的flag状态 ================================{}",flag); + if(flag){ + log.info("##############我走的新增运单 ================================1"); + //通过运单号先去查询新系统是否存在这个运单号 + WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo); + log.info("#################handleDataToPlatform.warehouseWaybill: {}", warehouseWaybill); + if (Objects.isNull(warehouseWaybill)) { - lock.lock(); - warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo); - log.info("#################handleDataToPlatform.warehouseWaybill: {}", warehouseWaybill); - if (Objects.isNull(warehouseWaybill)) { - redis.setEx("dealwithWaybillNo:" + waybillNo, waybillNo, 30L); - //如果新系统中不存在这个运单,那么就去查询老系统的运单数据 - WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNo); - log.info("#################handleDataToPlatform.wayBillEntity: {}", wayBillEntity); - if (Objects.isNull(wayBillEntity)) { - log.warn("##############saveWaybillEntity: 老系统中未找到对应运单waybillNo={}", waybillNo); - throw new CustomerException("老系统中未找到对应运单"); - } - String startSite = wayBillEntity.getStartSite();//始发仓名称 - BasicdataWarehouseEntity starthouse = basicdataWarehouseClient.findByName(startSite); - String warehouseName = wayBillEntity.getWarehouseName();//目的仓 - BasicdataWarehouseEntity endhouse = basicdataWarehouseClient.findByName(warehouseName); - Integer number = wayBillEntity.getNumber();//运单总数量 - String packname = wayBillEntity.getPackname(); - String agent = wayBillEntity.getAgent(); - - warehouseWaybill = new WarehouseWaybillEntity(); - warehouseWaybill.setTenantId(TenantNum.HUITONGCODE); - warehouseWaybill.setCreateUser(1714696768639311873L); - warehouseWaybill.setUpdateUser(1714696768639311873L); - warehouseWaybill.setCreateDept(1649331096241836033L); - warehouseWaybill.setWaybillNo(waybillNo); - warehouseWaybill.setDestinationWarehouseName(warehouseName); - warehouseWaybill.setDestinationWarehouseId(Objects.isNull(endhouse) ? null : endhouse.getId()); - warehouseWaybill.setDepartureWarehouseName(startSite); - warehouseWaybill.setDepartureWarehouseId(Objects.isNull(starthouse) ? null : starthouse.getId()); - warehouseWaybill.setCustomerTrain(wayBillEntity.getCarNo()); - warehouseWaybill.setBrand(wayBillEntity.getBrand()); - String sendCompany = wayBillEntity.getSendCompany();//发货单位 - String takeCompany = wayBillEntity.getTakeCompany();//收货单位 - BasicdataClientEntity sendClient = basicdataClientClient.findByName(sendCompany); - BasicdataClientEntity takeClient = basicdataClientClient.findByName(takeCompany); - if (!Objects.isNull(sendClient)) { - Long clientEntityId = sendClient.getId();//基础客户 - warehouseWaybill.setShipperId(clientEntityId); - } - if (!Objects.isNull(takeClient)) { - Long clientEntityId = takeClient.getId();//基础客户 - BasicdataStoreBusinessEntity basicdataStoreBusinessEntity = basicdataStoreBusinessClient.findByClientIdAndTypeService(clientEntityId, 3); - if (!Objects.isNull(basicdataStoreBusinessEntity)) { - warehouseWaybill.setServiceType(Integer.parseInt(basicdataStoreBusinessEntity.getMold())); - } - warehouseWaybill.setConsigneeId(clientEntityId); +// redis.setEx("dealwithWaybillNo:" + waybillNo, waybillNo, 30L); + //如果新系统中不存在这个运单,那么就去查询老系统的运单数据 + WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNo); + log.info("#################handleDataToPlatform.wayBillEntity: {}", wayBillEntity); + if (Objects.isNull(wayBillEntity)) { + log.warn("##############saveWaybillEntity: 老系统中未找到对应运单waybillNo={}", waybillNo); + throw new CustomerException("老系统中未找到对应运单"); + } + String startSite = wayBillEntity.getStartSite();//始发仓名称 + BasicdataWarehouseEntity starthouse = basicdataWarehouseClient.findByName(startSite); + String warehouseName = wayBillEntity.getWarehouseName();//目的仓 + BasicdataWarehouseEntity endhouse = basicdataWarehouseClient.findByName(warehouseName); + Integer number = wayBillEntity.getNumber();//运单总数量 + String packname = wayBillEntity.getPackname(); + String agent = wayBillEntity.getAgent(); + + warehouseWaybill = new WarehouseWaybillEntity(); + warehouseWaybill.setTenantId(TenantNum.HUITONGCODE); + warehouseWaybill.setCreateUser(1714696768639311873L); + warehouseWaybill.setUpdateUser(1714696768639311873L); + warehouseWaybill.setCreateDept(1649331096241836033L); + warehouseWaybill.setWaybillNo(waybillNo); + warehouseWaybill.setDestinationWarehouseName(warehouseName); + warehouseWaybill.setDestinationWarehouseId(Objects.isNull(endhouse) ? null : endhouse.getId()); + warehouseWaybill.setDepartureWarehouseName(startSite); + warehouseWaybill.setDepartureWarehouseId(Objects.isNull(starthouse) ? null : starthouse.getId()); + warehouseWaybill.setCustomerTrain(wayBillEntity.getCarNo()); + warehouseWaybill.setBrand(wayBillEntity.getBrand()); + String sendCompany = wayBillEntity.getSendCompany();//发货单位 + String takeCompany = wayBillEntity.getTakeCompany();//收货单位 + BasicdataClientEntity sendClient = basicdataClientClient.findByName(sendCompany); + BasicdataClientEntity takeClient = basicdataClientClient.findByName(takeCompany); + if (!Objects.isNull(sendClient)) { + Long clientEntityId = sendClient.getId();//基础客户 + warehouseWaybill.setShipperId(clientEntityId); + } + if (!Objects.isNull(takeClient)) { + Long clientEntityId = takeClient.getId();//基础客户 + BasicdataStoreBusinessEntity basicdataStoreBusinessEntity = basicdataStoreBusinessClient.findByClientIdAndTypeService(clientEntityId, 3); + if (!Objects.isNull(basicdataStoreBusinessEntity)) { + warehouseWaybill.setServiceType(Integer.parseInt(basicdataStoreBusinessEntity.getMold())); } - warehouseWaybill.setShipper(sendCompany); - warehouseWaybill.setShipperName(wayBillEntity.getSendPerson()); - warehouseWaybill.setShipperMobile(wayBillEntity.getSendMobile()); - warehouseWaybill.setShipperAddress(wayBillEntity.getSendAddress()); - warehouseWaybill.setConsignee(takeCompany); - warehouseWaybill.setConsigneeName(wayBillEntity.getTakePerson()); - warehouseWaybill.setConsigneeMobile(wayBillEntity.getTakeMobile()); - warehouseWaybill.setConsigneeAddress(wayBillEntity.getTakeAddress()); + warehouseWaybill.setConsigneeId(clientEntityId); + } + warehouseWaybill.setShipper(sendCompany); + warehouseWaybill.setShipperName(wayBillEntity.getSendPerson()); + warehouseWaybill.setShipperMobile(wayBillEntity.getSendMobile()); + warehouseWaybill.setShipperAddress(wayBillEntity.getSendAddress()); + warehouseWaybill.setConsignee(takeCompany); + warehouseWaybill.setConsigneeName(wayBillEntity.getTakePerson()); + warehouseWaybill.setConsigneeMobile(wayBillEntity.getTakeMobile()); + warehouseWaybill.setConsigneeAddress(wayBillEntity.getTakeAddress()); // String arriveSite = wayBillEntity.getArriveSite(); - Integer arriveSiteId = wayBillEntity.getArriveSiteId(); - String code = wayBillClient.findAreaCodeByArriveSiteId(arriveSiteId); + Integer arriveSiteId = wayBillEntity.getArriveSiteId(); + String code = wayBillClient.findAreaCodeByArriveSiteId(arriveSiteId); // String code = regionFeign.getCode(arriveSite); - warehouseWaybill.setDestinationCode(code); - warehouseWaybill.setDestination(wayBillEntity.getArriveSite()); - warehouseWaybill.setGoodsName(packname); - warehouseWaybill.setTotalCount(number); - warehouseWaybill.setStockCount(1); - warehouseWaybill.setWaybillType(1); - warehouseWaybill.setTotalWeight(wayBillEntity.getWeight()); - warehouseWaybill.setTotalVolume(wayBillEntity.getVolume()); - warehouseWaybill.setDeliveryMethod(wayBillEntity.getSendType()); - warehouseWaybill.setUrgency(wayBillEntity.getUrgency()); - warehouseWaybill.setReceiptCount(wayBillEntity.getReceiptNum()); - warehouseWaybill.setReceiptRequirement(wayBillEntity.getReceiptAsk()); - //--------------2023-07-28------------- - warehouseWaybill.setCollectPay(wayBillEntity.getDPay()); - warehouseWaybill.setReceivedCollectPay(BigDecimal.ZERO); - warehouseWaybill.setReplacePrice(wayBillEntity.getReplacePrice()); - warehouseWaybill.setReceivedReplacePrice(BigDecimal.ZERO); - warehouseWaybill.setReceivedTotalPrice(BigDecimal.ZERO); - warehouseWaybill.setWaybillType(wayBillEntity.getType()); - warehouseWaybill.setReceivedStatus(0); - - warehouseWaybill.setTotalFreight(wayBillEntity.getFreight()); - warehouseWaybill.setDeliveryFee(wayBillEntity.getDeliveryCost()); - warehouseWaybill.setPickupFee(wayBillEntity.getTakeCost()); - warehouseWaybill.setWarehouseManagementFee(wayBillEntity.getWarehouseManagementFee()); - warehouseWaybill.setStorageFee(wayBillEntity.getWarehousingFee()); - warehouseWaybill.setHandlingFee(wayBillEntity.getPretendCost()); - warehouseWaybill.setOtherFee(wayBillEntity.getOtherFee()); - warehouseWaybill.setInsuranceFee(wayBillEntity.getPriceProtectionFee()); - warehouseWaybill.setClaimingValue(wayBillEntity.getValue()); - warehouseWaybill.setPayType(wayBillEntity.getPayType() + ""); - warehouseWaybill.setPayWay(wayBillEntity.getPaymentMethod() + ""); - warehouseWaybill.setXPay(wayBillEntity.getXPay()); - warehouseWaybill.setDPay(wayBillEntity.getDPay()); - warehouseWaybill.setHPay(wayBillEntity.getHPay()); - warehouseWaybill.setYPay(wayBillEntity.getYPay()); - warehouseWaybill.setThirdOperationFee(wayBillEntity.getThreeHandleFee()); - warehouseWaybill.setDeliveryWay(wayBillEntity.getSendType() + ""); - warehouseWaybill.setUrgency(wayBillEntity.getUrgency() + ""); - warehouseWaybill.setReceipt(wayBillEntity.getReceiptAsk()); - warehouseWaybill.setReceiptNum(wayBillEntity.getReceiptNum()); - warehouseWaybill.setTransportType(wayBillEntity.getShippingType() + ""); - warehouseWaybill.setRebate(wayBillEntity.getRebate()); - - BasicdataClientEntity agentClient = basicdataClientClient.findByName(agent); - if (!Objects.isNull(agentClient)) { - Long clientEntityId = agentClient.getId();//基础客户 - warehouseWaybill.setAgentId(clientEntityId); - } - Date date = new Date(); - warehouseWaybill.setAgent(agent); - warehouseWaybill.setDocumentMakingTime(wayBillEntity.getPreparationTime()); - warehouseWaybill.setRemark(wayBillEntity.getMsg()); - warehouseWaybill.setBatchNo(wayBillEntity.getStartCarsNo()); - warehouseWaybill.setFreezeStatus(0); - warehouseWaybill.setStatus(0); - warehouseWaybill.setIsDeleted(0); - warehouseWaybill.setCreateTime(date); - warehouseWaybill.setUpdateTime(date); - aLong = warehouseWaybillClient.addEnntity(warehouseWaybill); - if (aLong != 0) { - redis.setEx("dealwithWaybillNoId:" + waybillNo,aLong, 30L); - List desList = waybillDesClient.getDesList(waybillNo); - List warehouseWayBillDetails = new ArrayList<>(); - for (WaybillDesEntity waybillDesEntity : desList) { - WarehouseWayBillDetail warehouseWayBillDetail = new WarehouseWayBillDetail(); - warehouseWayBillDetail.setCreateUser(1714696768639311873L); - warehouseWayBillDetail.setUpdateUser(1714696768639311873L); - warehouseWayBillDetail.setCreateDept(1649331096241836033L); - warehouseWayBillDetail.setWaybillId(aLong); - warehouseWayBillDetail.setWaybillNo(waybillNo); - String goodsName = waybillDesEntity.getName(); - BasicdataCategoryEntity categoryEntity = categoryClient.findByName(goodsName); - if (Objects.isNull(categoryEntity)) { - categoryEntity = new BasicdataCategoryEntity(); - categoryEntity.setName(goodsName); - categoryEntity.setType(1); - categoryEntity.setTenantId(TenantNum.HUITONGCODE); - categoryEntity.setCreateUser(1714696768639311873L); - categoryEntity.setUpdateUser(1714696768639311873L); - categoryEntity.setCreateDept(1649331096241836033L); - Long categoryId = categoryClient.addReturnId(categoryEntity); - warehouseWayBillDetail.setProductId(categoryId); - } else { - warehouseWayBillDetail.setProductId(categoryEntity.getId()); - } - warehouseWayBillDetail.setProductName(goodsName); - warehouseWayBillDetail.setNum(waybillDesEntity.getNum()); - warehouseWayBillDetail.setPrice(waybillDesEntity.getPrice()); - warehouseWayBillDetail.setVolume(waybillDesEntity.getVolume()); - warehouseWayBillDetail.setWeight(waybillDesEntity.getWeight()); - warehouseWayBillDetail.setSubtotalFreight(waybillDesEntity.getTotalDesPrice()); - warehouseWayBillDetail.setChargeType(waybillDesEntity.getPic()); - warehouseWayBillDetails.add(warehouseWayBillDetail); + warehouseWaybill.setDestinationCode(code); + warehouseWaybill.setDestination(wayBillEntity.getArriveSite()); + warehouseWaybill.setGoodsName(packname); + warehouseWaybill.setTotalCount(number); + warehouseWaybill.setStockCount(1); + warehouseWaybill.setWaybillType(1); + warehouseWaybill.setTotalWeight(wayBillEntity.getWeight()); + warehouseWaybill.setTotalVolume(wayBillEntity.getVolume()); + warehouseWaybill.setDeliveryMethod(wayBillEntity.getSendType()); + warehouseWaybill.setUrgency(wayBillEntity.getUrgency()); + warehouseWaybill.setReceiptCount(wayBillEntity.getReceiptNum()); + warehouseWaybill.setReceiptRequirement(wayBillEntity.getReceiptAsk()); + //--------------2023-07-28------------- + warehouseWaybill.setCollectPay(wayBillEntity.getDPay()); + warehouseWaybill.setReceivedCollectPay(BigDecimal.ZERO); + warehouseWaybill.setReplacePrice(wayBillEntity.getReplacePrice()); + warehouseWaybill.setReceivedReplacePrice(BigDecimal.ZERO); + warehouseWaybill.setReceivedTotalPrice(BigDecimal.ZERO); + warehouseWaybill.setWaybillType(wayBillEntity.getType()); + warehouseWaybill.setReceivedStatus(0); + + warehouseWaybill.setTotalFreight(wayBillEntity.getFreight()); + warehouseWaybill.setDeliveryFee(wayBillEntity.getDeliveryCost()); + warehouseWaybill.setPickupFee(wayBillEntity.getTakeCost()); + warehouseWaybill.setWarehouseManagementFee(wayBillEntity.getWarehouseManagementFee()); + warehouseWaybill.setStorageFee(wayBillEntity.getWarehousingFee()); + warehouseWaybill.setHandlingFee(wayBillEntity.getPretendCost()); + warehouseWaybill.setOtherFee(wayBillEntity.getOtherFee()); + warehouseWaybill.setInsuranceFee(wayBillEntity.getPriceProtectionFee()); + warehouseWaybill.setClaimingValue(wayBillEntity.getValue()); + warehouseWaybill.setPayType(wayBillEntity.getPayType() + ""); + warehouseWaybill.setPayWay(wayBillEntity.getPaymentMethod() + ""); + warehouseWaybill.setXPay(wayBillEntity.getXPay()); + warehouseWaybill.setDPay(wayBillEntity.getDPay()); + warehouseWaybill.setHPay(wayBillEntity.getHPay()); + warehouseWaybill.setYPay(wayBillEntity.getYPay()); + warehouseWaybill.setThirdOperationFee(wayBillEntity.getThreeHandleFee()); + warehouseWaybill.setDeliveryWay(wayBillEntity.getSendType() + ""); + warehouseWaybill.setUrgency(wayBillEntity.getUrgency() + ""); + warehouseWaybill.setReceipt(wayBillEntity.getReceiptAsk()); + warehouseWaybill.setReceiptNum(wayBillEntity.getReceiptNum()); + warehouseWaybill.setTransportType(wayBillEntity.getShippingType() + ""); + warehouseWaybill.setRebate(wayBillEntity.getRebate()); + + BasicdataClientEntity agentClient = basicdataClientClient.findByName(agent); + if (!Objects.isNull(agentClient)) { + Long clientEntityId = agentClient.getId();//基础客户 + warehouseWaybill.setAgentId(clientEntityId); + } + Date date = new Date(); + warehouseWaybill.setAgent(agent); + warehouseWaybill.setDocumentMakingTime(wayBillEntity.getPreparationTime()); + warehouseWaybill.setRemark(wayBillEntity.getMsg()); + warehouseWaybill.setBatchNo(wayBillEntity.getStartCarsNo()); + warehouseWaybill.setFreezeStatus(0); + warehouseWaybill.setStatus(0); + warehouseWaybill.setIsDeleted(0); + warehouseWaybill.setCreateTime(date); + warehouseWaybill.setUpdateTime(date); + aLong = warehouseWaybillClient.addEnntity(warehouseWaybill); + if (aLong != 0) { + redis.setEx("dealwithWaybillNoId:" + waybillNo,aLong, 30L); + List desList = waybillDesClient.getDesList(waybillNo); + List warehouseWayBillDetails = new ArrayList<>(); + for (WaybillDesEntity waybillDesEntity : desList) { + WarehouseWayBillDetail warehouseWayBillDetail = new WarehouseWayBillDetail(); + warehouseWayBillDetail.setCreateUser(1714696768639311873L); + warehouseWayBillDetail.setUpdateUser(1714696768639311873L); + warehouseWayBillDetail.setCreateDept(1649331096241836033L); + warehouseWayBillDetail.setWaybillId(aLong); + warehouseWayBillDetail.setWaybillNo(waybillNo); + String goodsName = waybillDesEntity.getName(); + BasicdataCategoryEntity categoryEntity = categoryClient.findByName(goodsName); + if (Objects.isNull(categoryEntity)) { + categoryEntity = new BasicdataCategoryEntity(); + categoryEntity.setName(goodsName); + categoryEntity.setType(1); + categoryEntity.setTenantId(TenantNum.HUITONGCODE); + categoryEntity.setCreateUser(1714696768639311873L); + categoryEntity.setUpdateUser(1714696768639311873L); + categoryEntity.setCreateDept(1649331096241836033L); + Long categoryId = categoryClient.addReturnId(categoryEntity); + warehouseWayBillDetail.setProductId(categoryId); + } else { + warehouseWayBillDetail.setProductId(categoryEntity.getId()); } - warehouseWaybillDetailClient.addList(warehouseWayBillDetails); + warehouseWayBillDetail.setProductName(goodsName); + warehouseWayBillDetail.setNum(waybillDesEntity.getNum()); + warehouseWayBillDetail.setPrice(waybillDesEntity.getPrice()); + warehouseWayBillDetail.setVolume(waybillDesEntity.getVolume()); + warehouseWayBillDetail.setWeight(waybillDesEntity.getWeight()); + warehouseWayBillDetail.setSubtotalFreight(waybillDesEntity.getTotalDesPrice()); + warehouseWayBillDetail.setChargeType(waybillDesEntity.getPic()); + warehouseWayBillDetails.add(warehouseWayBillDetail); } - - } else { - warehouseWaybill.setStockCount(warehouseWaybill.getStockCount() + 1); - warehouseWaybill.setUpdateTime(new Date()); - warehouseWaybillClient.updateEntity(warehouseWaybill); - aLong = warehouseWaybill.getId(); + warehouseWaybillDetailClient.addList(warehouseWayBillDetails); } //暂存单与运单的关联 saveAdvanceData(warehouseWaybill); - // redisLockClient.unLock(lockKey, LockType.FAIR); - + } else { + log.info("##############我走的新增运单 ================================2"); + warehouseWaybill.setStockCount(warehouseWaybill.getStockCount() + 1); + warehouseWaybill.setUpdateTime(new Date()); + warehouseWaybillClient.updateEntity(warehouseWaybill); + aLong = warehouseWaybill.getId(); } - } catch (Exception e) { - throw new RuntimeException(e); - }finally { - lock.unlock(); + log.info("##############我走的准备解锁 ================================3"); + redisLockClient.unLock(lockKey, LockType.FAIR); + log.info("##############我走的解锁 ================================4 {}",aLong); } return aLong; } From 834e34f4897f49a2d8784f985411e56977d83bd5 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Fri, 6 Sep 2024 11:58:39 +0800 Subject: [PATCH 39/73] =?UTF-8?q?1.factory=E6=9C=AC=E5=9C=B0=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logpm-factory/src/main/resources/application-dev.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/blade-service/logpm-factory/src/main/resources/application-dev.yml b/blade-service/logpm-factory/src/main/resources/application-dev.yml index a9a180282..ec7b1d9ce 100644 --- a/blade-service/logpm-factory/src/main/resources/application-dev.yml +++ b/blade-service/logpm-factory/src/main/resources/application-dev.yml @@ -60,14 +60,14 @@ spring: url: ${blade.datasource.factory.master.url} username: ${blade.datasource.factory.master.username} password: ${blade.datasource.factory.master.password} - slave: + 627683: druid: #独立校验配置 validation-query: select 1 #oracle校验 #validation-query: select 1 from dual - url: ${blade.datasource.factory.slave.url} - username: ${blade.datasource.factory.slave.username} - password: ${blade.datasource.factory.slave.password} + url: ${blade.datasource.factory.627683.url} + username: ${blade.datasource.factory.627683.username} + password: ${blade.datasource.factory.627683.password} From 0b528bf9f9a686365de30e48f873b28bc12c6a41 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Fri, 6 Sep 2024 16:20:26 +0800 Subject: [PATCH 40/73] =?UTF-8?q?=E5=BE=85=E7=AD=BE=E6=94=B6=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logpm/distribution/mapper/DistributionLoadscanMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml index 325dbd2d4..90b790ca1 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml @@ -96,7 +96,7 @@ + + update logpm_distribution_parcel_list + set waybill_id = #{waybillId} + where waybill_number = #{waybillNo} + + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java index e9a2e4a25..b8832827b 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java @@ -260,4 +260,6 @@ public interface IDistributionParcelListService extends BaseService findListByStockArticleIds(List orderIdList); + + void updateWaybillIdByWaybillNo(Long waybillId, String waybillNo); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java index 053ef44a7..cdc07db12 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java @@ -1369,6 +1369,11 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl syncWaybillInfo(String param) { + log.info("############syncWaybillInfo: 同步运单信息 开始"); + List waybillJSONs = warehouseMappingDataService.findAllWaybillNo(); + + waybillJSONs.forEach(waybillJSON -> { + + Long id = waybillJSON.getLong("id"); + String waybillNo = waybillJSON.getStr("waybillNo"); + + syncOrderInfoService.syncWaybillInfo(waybillNo); + + warehouseMappingDataService.updateStatusById(id,1); + }); + + log.info("############syncWaybillInfo: 同步运单信息 完成"); + + return ReturnT.SUCCESS; + } + } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java index d2a2bb587..65c6f5d66 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java @@ -130,5 +130,9 @@ public interface WarehouseMappingDataMapper { * @param remarks */ void updateClearSignforRemarks(@Param("singnforId")Long id,@Param("remarks") String remarks); + + List findAllWaybillNo(); + + void updateStatusById(@Param("id") Long id, @Param("status") int status); } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml index e9b6b11e4..d0df3b2b6 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml @@ -424,4 +424,18 @@ and ldsl.id is not null + + + + update sync_old_waybill_info + set status = #{status} + where id = #{id} + + + diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java index ab8fdc6b6..2e7f892e0 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java @@ -30,4 +30,6 @@ public interface ISyncOrderInfoService { void dealWithPackageUpdown(String orderPackageCode, Long allocationId,Long warehouseId); void clearOrderPackageDownAndDelTray(String orderPackageCode, Long warehouseId); + + void syncWaybillInfo(String waybillNo); } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java index 390d86299..3e10832c6 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java @@ -112,4 +112,7 @@ public interface IWarehouseMappingDataService { List findStockAllocationInfo(); + List findAllWaybillNo(); + + void updateStatusById(Long id, int status); } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java index 39f291204..f0c1203fc 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java @@ -370,6 +370,23 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService { warehouseUpdownTypeClient.downPackageOrDelTray(orderPackageCode,warehouseId,"系统下架解托"); } + @Override + public void syncWaybillInfo(String waybillNo) { + + saveWaybillEntity(waybillNo); + + WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillNo(waybillNo); + + if(!Objects.isNull(warehouseWaybillEntity)){ + + Long waybillId = warehouseWaybillEntity.getId(); + //把包件上是这个运单号的没有运单id的加上 + distributionParcelListClient.updateWaybillIdByWaybillNo(waybillId,waybillNo); + + } + + } + @Transactional(rollbackFor = Exception.class) @Override diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java index 8fe26b650..bfa136608 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java @@ -265,4 +265,14 @@ public class WarehouseMappingDataServiceImpl implements IWarehouseMappingDataSer public List findStockAllocationInfo() { return warehouseMappingDataMapper.findStockAllocationInfo(); } + + @Override + public List findAllWaybillNo() { + return warehouseMappingDataMapper.findAllWaybillNo(); + } + + @Override + public void updateStatusById(Long id, int status) { + warehouseMappingDataMapper.updateStatusById(id,status); + } } 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 126d13cc3..7f5530a59 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 @@ -964,7 +964,7 @@ and final_node_id = #{warehouseId} - select id carsLoadScanId, scan_code orderPackageCode, num num, diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml index f2956c837..0e8a7f3e2 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsOrderMapper.xml @@ -109,7 +109,7 @@ wb.create_time createTime, wb.destination destination, wb.destination_warehouse_name destinationWarehouseName, - IF(wb.check_user_id = NULL , 0,1) checkStatus, + IF(wb.check_user_id is null , 0,1) checkStatus, wb.shipper shipper, wb.shipper_name shipperName, wb.consignee consignee, @@ -178,11 +178,15 @@ IFNULL(lww.total_freight/lww.total_count*ltco.unload_num,0) unloadIncome, IFNULL(lww.total_freight/lww.total_count*ltco.plan_num,0) orderLineCost, ltwo.total_number orderNum, - sum(IF(ltcls.scan_status = '3',ltcls.num,0)) signNum + sum(IF(ltcls.scan_status = '3',ltcls.num,0)) signNum, + sum(ltcsr.cost_piece) costPiece, + sum(ltcsr.cost_zhang) costZhang, + sum(ltcsr.income) income from logpm_trunkline_cars_order ltco - left join logpm_trunkline_cars_load_scan ltcls on ltcls.waybill_no = ltco.waybill_no and ltcls.order_code = ltco.order_code - left join logpm_trunkline_waybill_order ltwo on ltwo.order_code = ltco.order_code and ltwo.waybill_no = ltco.waybill_no and ltwo.is_deleted = 0 - left join logpm_warehouse_waybill lww on lww.waybill_no = ltwo.waybill_no + left join logpm_trunkline_cars_load_scan ltcls on ltcls.waybill_no = ltco.waybill_no and ltcls.order_code = ltco.order_code + left join logpm_trunkline_waybill_order ltwo on ltwo.order_code = ltco.order_code and ltwo.waybill_no = ltco.waybill_no and ltwo.is_deleted = 0 + left join logpm_warehouse_waybill lww on lww.waybill_no = ltwo.waybill_no + left join logpm_trunkline_cost_share_record ltcsr on ltco.load_id = ltcsr.load_id and ltco.waybill_no = ltcsr.waybill_no and ltco.order_code = ltcsr.order_code and ltcls.scan_code = ltcsr.product_code where ltco.load_id = #{loadId} and ltco.waybill_no = #{waybillNo} group by ltco.order_code diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCostShareRecordMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCostShareRecordMapper.xml index c65016e51..53bcafbd7 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCostShareRecordMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCostShareRecordMapper.xml @@ -12,7 +12,7 @@ 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 b90f50bfb..482e5be83 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 @@ -285,6 +285,11 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService { BigDecimal countTransportCost = carsLoadEntity.getCountTransportCost(); Integer totalUnloadNum = trunklineCostShareRecordService.findTotalUnloadNumByLoad(loadId); + if(totalUnloadNum.equals(0)){ + log.warn("###############costShareZhang: 分摊件数为0"); + throw new CustomerException(405,"分摊件数为0"); + } + //计算单件成本 BigDecimal costPiece = countTransportCost.divide(new BigDecimal(totalUnloadNum),2, RoundingMode.HALF_UP); 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 5dd3b6cc9..53cfac3ab 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 @@ -4626,7 +4626,6 @@ public class OpenOrderServiceImpl implements IOpenOrderService { distributionStockArticleEntity.setIncomingNum(warehouseWaybill.getStockCount()); //零担订单默认齐套 distributionStockArticleEntity.setCompleteSet(2); - distributionStockArticleEntity.setBrand(warehouseWaybill.getBrand()); distributionStockArticleEntity.setResource("零担"); From 8b370709538fbde3724b2e5068ae5e2f80117e12 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Mon, 9 Sep 2024 11:25:57 +0800 Subject: [PATCH 42/73] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9=E7=AD=BE?= =?UTF-8?q?=E6=94=B6=E5=A4=8D=E6=A0=B8=E6=8C=89=E7=85=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=86=E7=BB=84=E7=9A=84=E8=8A=82=E7=82=B9=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DistrilbutionBillLadingServiceImpl.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java index c8a3f3c5d..c4aa40f14 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java @@ -3633,12 +3633,12 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl> collect = listByOrderPackageCode.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getBrandName)); for (Map.Entry> entry : collect.entrySet()) { String brand = entry.getKey(); - List list = entry.getValue(); + List list2 = entry.getValue(); // 按订单分组 - Map> collect1 = list.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getOrderCode)); - for (Map.Entry> stringListEntry : collect1.entrySet()) { - String orderCode = stringListEntry.getKey(); - List list2 = stringListEntry.getValue(); +// Map> collect1 = list.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getOrderCode)); +// for (Map.Entry> stringListEntry : collect1.entrySet()) { +// String orderCode = stringListEntry.getKey(); +// List list2 = stringListEntry.getValue(); JSONObject js = new JSONObject(); js.put("boId", billLadingEntity.getId()); js.put("consignee", distrilbutionBillLadingEntity.getConsignee()); @@ -3662,7 +3662,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl Date: Tue, 10 Sep 2024 10:03:54 +0800 Subject: [PATCH 43/73] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E6=A2=A6?= =?UTF-8?q?=E5=A4=A9=E6=89=B9=E9=87=8F=E5=9B=9E=E6=8E=A8=E5=8F=AA=E5=9B=9E?= =?UTF-8?q?=E6=8E=A8=E4=B8=80=E6=9D=A1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mengtian/service/impl/FactoryNodePushServiceImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/impl/FactoryNodePushServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/impl/FactoryNodePushServiceImpl.java index 977d7e7ec..5d3d001ec 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/impl/FactoryNodePushServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-mengtian/src/main/java/com/logpm/factorydata/mengtian/service/impl/FactoryNodePushServiceImpl.java @@ -97,11 +97,10 @@ public class FactoryNodePushServiceImpl extends BaseServiceImpl Date: Tue, 10 Sep 2024 17:39:04 +0800 Subject: [PATCH 44/73] =?UTF-8?q?1.=E5=B9=B2=E7=BA=BF=E9=9B=B6=E6=8B=85?= =?UTF-8?q?=E6=94=B9=E9=80=A0=E9=80=BB=E8=BE=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ersalesAbnormalRecordZeroDetailEntity.java | 2 +- .../IDistributionParcelNumberClient.java | 3 + .../logpm/trunkline/vo/GoodsLoadingNumVO.java | 13 ++ .../trunkline/vo/LoadingDetailExportVO.java | 9 + .../logpm/trunkline/vo/OrderScanDetailVO.java | 4 + .../trunkline/vo/TrunklineCarsLoadScanVO.java | 2 + .../com/logpm/trunkline/vo/ZeroPackageVO.java | 1 + .../AftersalesAbnormalRecordServiceImpl.java | 4 + .../feign/DistributionParcelNumberClient.java | 5 + .../mapper/DistributionParcelListMapper.xml | 4 +- .../IDistributionParcelNumberService.java | 1 + .../controller/CarsLoadController.java | 40 ++++- .../mapper/TrunklineCarsLoadScanMapper.xml | 3 +- .../mapper/TrunklineScanZeroDetailMapper.java | 6 + .../mapper/TrunklineScanZeroDetailMapper.xml | 21 +++ .../service/ITrunklineCarsLoadService.java | 2 + .../ITrunklineScanZeroDetailService.java | 6 + .../impl/TrunklineCarsLoadServiceImpl.java | 169 +++++++++++++++++- .../TrunklineScanZeroDetailServiceImpl.java | 11 ++ 19 files changed, 290 insertions(+), 16 deletions(-) create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java index 8213d3465..4f1dbb059 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordZeroDetailEntity.java @@ -32,7 +32,7 @@ public class AftersalesAbnormalRecordZeroDetailEntity extends TenantEntity { @ApiModelProperty(name = "异常记录id",notes = "") private Long abnormalRecordId; - @ApiModelProperty(name = "异常记录id",notes = "") + @ApiModelProperty(name = "包件id",notes = "") private Long packageId; @ApiModelProperty(name = "品类id",notes = "") diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java index 7c2c076e2..9994502eb 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java @@ -62,4 +62,7 @@ public interface IDistributionParcelNumberClient { @GetMapping(API_PREFIX+"/findListByStockArticleId") List findListByStockArticleId(@RequestParam Long orderId); + + @GetMapping(API_PREFIX+"/addHandleQuantity") + void addHandleQuantity(@RequestParam Long packageId, @RequestParam int num); } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java new file mode 100644 index 000000000..17aeb99af --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/GoodsLoadingNumVO.java @@ -0,0 +1,13 @@ +package com.logpm.trunkline.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class GoodsLoadingNumVO implements Serializable { + + private Long goodsId; + private Integer loadingNum; + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java index 5aa4353c6..a254cbfa2 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadingDetailExportVO.java @@ -1,5 +1,6 @@ package com.logpm.trunkline.vo; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -10,6 +11,9 @@ import java.util.Date; @Data public class LoadingDetailExportVO implements Serializable { + @ExcelIgnore + private Long id; + @ExcelProperty(value = "运单号") private String waybillNo; @@ -85,4 +89,9 @@ public class LoadingDetailExportVO implements Serializable { @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date signTime; + @ExcelProperty(value = "装车品类数量") + private String loadingGoods; + @ExcelProperty(value = "卸车品类数量") + private String unloadGoods; + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java index d34dbd376..ebcb96c9a 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderScanDetailVO.java @@ -3,6 +3,8 @@ package com.logpm.trunkline.vo; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; @Data public class OrderScanDetailVO implements Serializable { @@ -13,4 +15,6 @@ public class OrderScanDetailVO implements Serializable { private String trayName; private String trayCode; + private List zeroDetailList = new ArrayList<>(); + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java index 70ef81332..6e55b5e9c 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadScanVO.java @@ -11,5 +11,7 @@ public class TrunklineCarsLoadScanVO extends TrunklineCarsLoadScanEntity { private String destinationWarehouseName; + private String loadingGoods; + private String unloadGoods; } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java index 51e9df223..99d0b55dc 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/ZeroPackageVO.java @@ -11,5 +11,6 @@ public class ZeroPackageVO implements Serializable { private Long goodsId; private String goodsName;//品类名称 private Integer stockNum;//品类在库件数 + private Integer loadingNum;//品类装车件数 } 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 7665d89e4..5c6b65a9a 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 @@ -156,6 +156,10 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl zeroPackageDTOS = abnormalRecordDTO.getZeroPackageDTOS(); + if(CollUtil.isEmpty(zeroPackageDTOS)){ + log.warn("################dealAbnormal: 品类信息不存在"); + return R.fail(405,"品类信息不存在"); + } Integer num = abnormalRecordEntity.getNum(); Long carsLoadScanId = abnormalRecordEntity.getAssociationId(); TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanClient.findEntityById(carsLoadScanId); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java index f58e8e9ba..f220f4d0d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java @@ -77,4 +77,9 @@ public class DistributionParcelNumberClient implements IDistributionParcelNumber return distributionParcelNumberService.list(queryWrapper); } + @Override + public void addHandleQuantity(Long packageId, int num) { + distributionParcelNumberService.addZeroQuantity(packageId, num); + } + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml index 49b12682d..033b10e3c 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml @@ -1880,8 +1880,8 @@ lwwd.product_name goodsName, ldpl.quantity stockNum from logpm_distribution_parcel_list ldpl - left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advanceId - where lwwd.order_code = #{waybillNo} + left join logpm_warehouse_waybill_detail lwwd on lwwd.id = ldpl.advance_id + where lwwd.waybill_no = #{waybillNo} - select ltcls.waybill_no waybillNo, + select ltcls.id id, + ltcls.waybill_no waybillNo, ltcls.load_code carsNo, ltcls.order_code orderCode, ltcls.scan_code scanCode, diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java index 0e6baf314..bfedd3cd3 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.java @@ -2,6 +2,7 @@ package com.logpm.trunkline.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.logpm.trunkline.entity.TrunklineScanZeroDetailEntity; +import com.logpm.trunkline.vo.GoodsLoadingNumVO; import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO; import org.apache.ibatis.annotations.Param; import org.mapstruct.Mapper; @@ -14,4 +15,9 @@ public interface TrunklineScanZeroDetailMapper extends BaseMapper findListByCarsLoadScanId(@Param("carsLoadScanId") Long carsLoadScanId); List findListByCarsLoadScanIds(@Param("carsLoadScanIds") List carsLoadScanIds); + + List findGoodsLoadingNum(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId, @Param("waybillNo") String waybillNo, @Param("orderCode") String orderCode); + + void deleteListByCarsLoadScanIds(@Param("carsLoadScanIds") List carsLoadScanIds); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml index 43c476d4b..5a9ce01d6 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineScanZeroDetailMapper.xml @@ -18,4 +18,25 @@ + + + + + delete from logpm_trunkline_scan_zero_detail + where scan_id in + + #{item} + + + 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 39e196a4d..0648c2256 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 @@ -226,4 +226,6 @@ public interface ITrunklineCarsLoadService extends BaseService findListByCarsLoadScanId(Long carsLoadScanId); List findListByCarsLoadScanIds(List carsLoadScanIds); + + List findGoodsLoadingNum(Long loadId, Long warehouseId, String waybillNo, String orderCode); + + void deleteListByCarsLoadScanIds(List carsLoadScanIds); + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index 3fd097816..0119fbae9 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -423,7 +423,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanId(carsLoadScanId); + + return R.data(zeroDetailVOList); + } + @Transactional(rollbackFor = Exception.class) @Override @@ -2390,6 +2398,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl scanIds = trunklineCarsLoadScanEntities1.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); + List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(scanIds); + //把zeroDetailVOList按照packageId进行分组 + Map> zeroDetailVOMap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getPackageId)); + zeroDetailVOMap.keySet().forEach(packageId -> { + List zeroDetailVOS = zeroDetailVOMap.get(packageId); + Integer lNum = zeroDetailVOS.stream().mapToInt(t -> Objects.nonNull(t.getLoadingNum()) ? t.getLoadingNum() : 0).sum(); + Integer uNum = zeroDetailVOS.stream().mapToInt(t -> Objects.nonNull(t.getUnloadNum()) ? t.getUnloadNum() : 0).sum(); + if(uNum != lNum){ + int diff = lNum - uNum; + distributionParcelListClient.addZeroQuantity(packageId, diff); + distributionParcelNumberClient.addHandleQuantity(packageId,diff); + } + }); }); } }); @@ -2654,7 +2678,29 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl pageList = trunklineCarsLoadScanService.loadingDetail(page, loadCarsDTO); - + List records = pageList.getRecords(); + //把records中type等于2的id放入一个集合 + List scanLoadIds = records.stream().filter(item -> item.getType() == 2).map(TrunklineCarsLoadScanVO::getId).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(scanLoadIds)){ + List scanZeroDetailVOS = scanZeroDetailService.findListByCarsLoadScanIds(scanLoadIds); + //把scanZeroDetailVOS通过scanId进行分组 + Map> scanZeroDetailVOMap = scanZeroDetailVOS.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); + records.forEach(item -> { + Long scanId = item.getId(); + List list = scanZeroDetailVOMap.get(scanId); + //把list中所有元素的goodsName用逗号拼起来 + String loadingGoods = list.stream() + .map(t-> t.getGoodsName()+"("+t.getLoadingNum()+")") + .collect(Collectors.joining(",")); + + String unloadGoods = list.stream() + .map(t-> t.getGoodsName()+"("+t.getUnloadNum()+")") + .collect(Collectors.joining(",")); + item.setLoadingGoods(loadingGoods); + item.setUnloadGoods(unloadGoods); + }); + } + pageList.setRecords(records); return R.data(pageList); } @@ -3052,6 +3098,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl parcelListMapById = parcelListEntities.stream().collect(Collectors.toMap(DistributionParcelListEntity::getId, Function.identity())); + List parcelNumberEntityList = distributionParcelNumberClient.findListByParcelListIds(new ArrayList<>(parcelListMapById.keySet())); + //把parcelNumberEntityList转化成以parceListId为key的Map + Map parcelNumberMapByParceListId = parcelNumberEntityList.stream().collect(Collectors.toMap(DistributionParcelNumberEntity::getParcelListId, Function.identity())); //把parcelListEntities转化成以firsts作为key的map Map parcelListMap = parcelListEntities.stream().collect(Collectors.toMap(DistributionParcelListEntity::getFirsts, Function.identity())); @@ -3151,6 +3200,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailList = new ArrayList<>(); List updateParceList = new ArrayList<>(); + List updateParceNumberList = new ArrayList<>(); if(CollUtil.isNotEmpty(zeroPackageList)){ Long finalLoadScanId = loadScanId; zeroPackageList.forEach(zeroPackageDTO -> { @@ -3164,10 +3214,16 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroDetailList = new ArrayList<>(); List updateParceList = new ArrayList<>(); + List updateParceNumberList = new ArrayList<>(); QueryWrapper queryWrapper1 = new QueryWrapper<>(); - queryWrapper1.eq("scanId",loadScanId); + queryWrapper1.eq("scan_id",loadScanId); List scanZeroDetailEntities = scanZeroDetailService.list(queryWrapper1); //把scanZeroDetailEntities中所有元素的scanId作为key转为Map Map map = scanZeroDetailEntities.stream().collect(Collectors.toMap(TrunklineScanZeroDetailEntity::getPackageId, Function.identity())); @@ -3248,11 +3314,20 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderScanDetailList = trunklineCarsLoadScanService.findCarsLoadingOrderDetail(loadId, orderCode, warehouseId); - + if(CollUtil.isNotEmpty(orderScanDetailList)){ + //把orderScanDetailList中所有元素的loadScanId放入一个List + List loadScanIdList = orderScanDetailList.stream().map(OrderScanDetailVO::getLoadScanId).collect(Collectors.toList()); + List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(loadScanIdList); + //把zeroDetailVOList中所有元素通过scanId进行分组 + Map> zeroDetailMap = zeroDetailVOList.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); + orderScanDetailList.forEach(orderScanDetailVO -> { + Long loadScanId = orderScanDetailVO.getLoadScanId(); + List list = zeroDetailMap.get(loadScanId); + orderScanDetailVO.setZeroDetailList(list); + }); + } return R.data(orderScanDetailList); } @@ -3911,6 +4000,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl loadingDetailExport(LoadCarsDTO loadCarsDTO) { - return trunklineCarsLoadScanService.loadingDetailExport(loadCarsDTO); + List loadingDetailExportVOS = trunklineCarsLoadScanService.loadingDetailExport(loadCarsDTO); + + //把records中type等于2的id放入一个集合 + List scanLoadIds = loadingDetailExportVOS.stream().filter(item -> item.getType().equals("零担")).map(LoadingDetailExportVO::getId).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(scanLoadIds)){ + List scanZeroDetailVOS = scanZeroDetailService.findListByCarsLoadScanIds(scanLoadIds); + //把scanZeroDetailVOS通过scanId进行分组 + Map> scanZeroDetailVOMap = scanZeroDetailVOS.stream().collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getScanId)); + loadingDetailExportVOS.forEach(item -> { + Long scanId = item.getId(); + List list = scanZeroDetailVOMap.get(scanId); + //把list中所有元素的goodsName用逗号拼起来 + String loadingGoods = list.stream() + .map(t-> t.getGoodsName()+"("+t.getLoadingNum()+")") + .collect(Collectors.joining(",")); + + String unloadGoods = list.stream() + .map(t-> t.getGoodsName()+"("+t.getUnloadNum()+")") + .collect(Collectors.joining(",")); + item.setLoadingGoods(loadingGoods); + item.setUnloadGoods(unloadGoods); + }); + } + return loadingDetailExportVOS; } @Override @@ -7194,10 +7312,22 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl zeroList = trunklineCarsOrderService.findZeroList(loadId, warehouseId); zeroList.forEach(loadZeroListVO -> { String waybillNo = loadZeroListVO.getWaybillNo(); + String orderCode = loadZeroListVO.getOrderCode(); + List loadingNumVOList = scanZeroDetailService.findGoodsLoadingNum(loadId,warehouseId,waybillNo,orderCode); + //把loadingNumVOList转化成以goodsId作为key的Map + Map map = loadingNumVOList.stream().collect(Collectors.toMap(GoodsLoadingNumVO::getGoodsId, Function.identity())); List zeroPackageList = distributionParcelListClient.findPackageGoodsListByWaybillNo(waybillNo); List ls = new ArrayList<>(); zeroPackageList.forEach(jsonObject -> { - ls.add(jsonObject.toJavaObject(ZeroPackageVO.class)); + ZeroPackageVO javaObject = jsonObject.toJavaObject(ZeroPackageVO.class); + Long goodsId = javaObject.getGoodsId(); + GoodsLoadingNumVO goodsLoadingNumVO = map.get(goodsId); + if(Objects.isNull(goodsLoadingNumVO)){ + javaObject.setLoadingNum(0); + }else{ + javaObject.setLoadingNum(goodsLoadingNumVO.getLoadingNum()); + } + ls.add(javaObject); }); loadZeroListVO.setZeroPackageList(ls); }); @@ -7328,6 +7458,18 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl carsLoadScanIdList = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); + List zeroDetailVOList = scanZeroDetailService.findListByCarsLoadScanIds(carsLoadScanIds); + //把zeroDetailVOList所有元素通过packageId进行分组 + Map> groupedByPackageId = zeroDetailVOList.stream().filter(trunklineScanZeroDetailVO-> !Objects.isNull(trunklineScanZeroDetailVO.getPackageId())) + .collect(Collectors.groupingBy(TrunklineScanZeroDetailVO::getPackageId)); + groupedByPackageId.keySet().forEach(packageId -> { + List scanZeroDetailVOList = groupedByPackageId.get(packageId); + Integer loadingNum = scanZeroDetailVOList.stream().map(TrunklineScanZeroDetailVO::getLoadingNum).reduce(0, Integer::sum); + distributionParcelListClient.addZeroQuantity(packageId, loadingNum); + }); + if(warehouseId.equals(fromWarehouseId)){ Long waybillId = distributionStockArticle.getWaybillId(); String waybillNo = distributionStockArticle.getWaybillNumber(); @@ -7363,8 +7505,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl findListByCarsLoadScanIds(List carsLoadScanIds) { return baseMapper.findListByCarsLoadScanIds(carsLoadScanIds); } + + @Override + public List findGoodsLoadingNum(Long loadId, Long warehouseId, String waybillNo, String orderCode) { + return baseMapper.findGoodsLoadingNum(loadId,warehouseId,waybillNo,orderCode); + } + + @Override + public void deleteListByCarsLoadScanIds(List carsLoadScanIds) { + baseMapper.deleteListByCarsLoadScanIds(carsLoadScanIds); + } } From 3011f3bca58782b8e320c6f17b58742cdeded9a4 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Wed, 11 Sep 2024 11:00:04 +0800 Subject: [PATCH 45/73] =?UTF-8?q?1.=E5=B9=B2=E7=BA=BFbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/logpm/trunkline/dto/LoadCarsDTO.java | 1 + .../trunkline/mapper/TrunklineCarsLoadMapper.xml | 3 +++ .../mapper/TrunklineCarsLoadScanMapper.java | 2 ++ .../mapper/TrunklineCarsLoadScanMapper.xml | 7 +++++++ .../service/ITrunklineCarsLoadScanService.java | 2 ++ .../service/impl/OpenOrderServiceImpl.java | 14 ++++++++++++++ .../impl/TrunklineCarsLoadScanServiceImpl.java | 6 ++++++ .../impl/TrunklineCarsLoadServiceImpl.java | 3 ++- .../logpm/warehouse/mapper/TaskQuestMapper.java | 2 ++ .../logpm/warehouse/mapper/TaskQuestMapper.xml | 15 +++++++++++++++ .../service/impl/TaskQuestServiceImpl.java | 3 ++- 11 files changed, 56 insertions(+), 2 deletions(-) diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java index ba1b057c7..be000cf82 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java @@ -37,6 +37,7 @@ public class LoadCarsDTO implements Serializable { private String deliveryType; private String operator; private String settlementPerson; + private String customerType; private Long warehouseId; private List warehouseIds; diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml index d8dbcb732..8e189d9c2 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml @@ -468,6 +468,9 @@ and Locate(#{param.settlementPerson},ltcl.settlement_person) > 0 + + and Locate(#{param.customerType},ltcl.customer_type) > 0 + and ltcl.create_time >= #{param.createTimeStart} 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 163aa887b..34d117d7d 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 @@ -181,4 +181,6 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper findUnloadZeroListByLoadIdAndFinalNodeId(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId); List findSignPackageListBySignOrderId(@Param("signOrderId") Long signOrderId); + + List findAllIdListByLoadIdAndScanStatus(@Param("loadId") Long loadId, @Param("scanStatus") String scanStatus); } 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 207db21e2..b9b9ed574 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 @@ -977,4 +977,11 @@ where sign_order_id = #{signOrderId} + + 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 db41b721a..0e9c3bf90 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 @@ -177,4 +177,6 @@ public interface ITrunklineCarsLoadScanService extends BaseService findUnloadZeroListByLoadIdAndFinalNodeId(Long loadId, Long warehouseId); List findSignPackageListBySignOrderId(Long signOrderId); + + List findAllIdListByLoadIdAndScanStatus(Long loadId, String scanStatus); } 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 53cfac3ab..c09d65550 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 @@ -155,6 +155,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { } //把list中所有的senderName去重放入一个Set集合 + Set senderFactorySet = list.stream().filter(e -> StringUtil.isNotBlank(e.getSenderFactory())).map(TrunklineAdvanceEntity::getSenderFactory).collect(Collectors.toSet()); Set senderNameSet = list.stream().filter(e -> StringUtil.isNotBlank(e.getSenderName())).map(TrunklineAdvanceEntity::getSenderName).collect(Collectors.toSet()); Set senderPhoneSet = list.stream().filter(e -> StringUtil.isNotBlank(e.getSenderPhone())).map(TrunklineAdvanceEntity::getSenderPhone).collect(Collectors.toSet()); Set senderAddressSet = list.stream().filter(e -> StringUtil.isNotBlank(e.getSenderAddress())).map(TrunklineAdvanceEntity::getSenderAddress).collect(Collectors.toSet()); @@ -202,6 +203,19 @@ public class OpenOrderServiceImpl implements IOpenOrderService { openOrderVO.setDepartureArray(departureArray); } + }else{ + if(CollUtil.isNotEmpty(senderFactorySet) && senderFactorySet.size() == 1){ + openOrderVO.setShipper(senderFactorySet.iterator().next()); + } + if(CollUtil.isNotEmpty(senderNameSet) && senderNameSet.size() == 1){ + openOrderVO.setShipperName(senderNameSet.iterator().next()); + } + if(CollUtil.isNotEmpty(senderPhoneSet) && senderPhoneSet.size() == 1){ + openOrderVO.setShipperMobile(senderPhoneSet.iterator().next()); + } + if(CollUtil.isNotEmpty(senderAddressSet) && senderAddressSet.size() == 1){ + openOrderVO.setShipperAddress(senderAddressSet.iterator().next()); + } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java index f711e6a1a..7546f5d1f 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java @@ -17,6 +17,7 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.stereotype.Service; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; @@ -454,4 +455,9 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl findAllIdListByLoadIdAndScanStatus(Long loadId, String scanStatus) { + return baseMapper.findAllIdListByLoadIdAndScanStatus(loadId,scanStatus); + } + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index 0119fbae9..84c5b44e3 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -2607,7 +2607,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl scanLoadIds = trunklineCarsLoadScanService.findAllIdListByLoadIdAndNoScanStatus(loadId,"3"); +// List scanLoadIds = trunklineCarsLoadScanService.findAllIdListByLoadIdAndNoScanStatus(loadId,"3"); + List scanLoadIds = trunklineCarsLoadScanService.findAllIdListByLoadIdAndScanStatus(loadId,"2"); return signLoadScanByIds(scanLoadIds,warehouseId); diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java index 6edcc1f82..54cf18c65 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java @@ -203,4 +203,6 @@ public interface TaskQuestMapper extends BaseMapper { List exportAllDataWithPackage(@Param("param") QuestDetailDTO questDetailDTO); List exportPanDataWithPackage(@Param("param") QuestDetailDTO questDetailDTO); + + void deleteGroundingPosition(@Param("questNum") String questNum, @Param("list") List questDetailEntities); } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml index d344c263a..c58ffb8b5 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml @@ -788,4 +788,19 @@ AND quest_status = 1 + + update ${questNum} + set grounding_position_code = null, + grounding_allocation_id = null, + is_new = 0, + is_change = 0, + is_change_at = 0, + quest_status = 0 + where id in + + #{item.id} + + + + diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java index 91594a1d3..0884a3a7b 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java @@ -1410,7 +1410,8 @@ public class TaskQuestServiceImpl extends BaseServiceImpl Date: Wed, 11 Sep 2024 15:37:08 +0800 Subject: [PATCH 46/73] =?UTF-8?q?1.=E5=B9=B2=E7=BA=BFbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c09d65550..a5c5d83a0 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 @@ -795,7 +795,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { if (Objects.isNull(basicdataCategoryEntity)) { basicdataCategoryEntity = new BasicdataCategoryEntity(); basicdataCategoryEntity.setName(goodsName); - basicdataCategoryEntity.setType(1); + basicdataCategoryEntity.setType(10); goodsId = basicdataCategoryClient.addReturnId(basicdataCategoryEntity); } else { goodsId = basicdataCategoryEntity.getId(); From 1ec97eb51ba98e05c96e63716f4c28181ee38905 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Fri, 13 Sep 2024 11:32:27 +0800 Subject: [PATCH 47/73] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E5=BC=80?= =?UTF-8?q?=E5=8D=95=E6=97=B6=E5=B8=A6=E4=B8=8D=E5=87=BA=E5=B9=B2=E7=BA=BF?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E4=BB=B7=E6=A0=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BasicdataPriceServiceImpl.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataPriceServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataPriceServiceImpl.java index 59ba9d2a6..eef064488 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataPriceServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataPriceServiceImpl.java @@ -463,6 +463,19 @@ public class BasicdataPriceServiceImpl extends BaseServiceImpl> generalMap = new HashMap<>(); buildDetailMap(priceEntity, fullMap, basicMap, warehouseMap, dispatchMap, generalMap); String serviceType = templateEntity.getServiceType(); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery() + .eq(BasicdataPriceRouteEntity::getPriceId, priceEntity.getId()) + .eq(BasicdataPriceRouteEntity::getSendOrgId, param.getSendOrgId()) + .eq(BasicdataPriceRouteEntity::getStartProvinceId, param.getStartProvinceId()) + .eq(BasicdataPriceRouteEntity::getStartCityId, param.getStartCityId()) + .eq(BasicdataPriceRouteEntity::getEndProvinceId, param.getEndProvinceId()) + .eq(BasicdataPriceRouteEntity::getEndCityId, param.getEndCityId()); + if (ObjectUtil.isNotEmpty(param.getStartCountyId())) { + wrapper.eq(BasicdataPriceRouteEntity::getStartCountyId, param.getStartCountyId()); + } + if (ObjectUtil.isNotEmpty(param.getEndCountyId())) { + wrapper.eq(BasicdataPriceRouteEntity::getEndCountyId, param.getEndCountyId()); + } // 提货费 if (StrUtil.contains(serviceType, ServiceTypeEnums.PICK_UP.getCode().toString())) { // 提货不按区域计费 @@ -471,13 +484,8 @@ public class BasicdataPriceServiceImpl extends BaseServiceImpl routeEntities = basicdataPriceRouteService.list(Wrappers.lambdaQuery() - .eq(BasicdataPriceRouteEntity::getPriceId, priceEntity.getId()) - .eq(BasicdataPriceRouteEntity::getSendOrgId, param.getSendOrgId()) - .eq(BasicdataPriceRouteEntity::getStartCountyId, param.getStartCountyId()) - .eq(BasicdataPriceRouteEntity::getEndCountyId, param.getEndCountyId()) - .eq(BasicdataPriceRouteEntity::getServiceType, ServiceTypeEnums.PICK_UP.getCode()) - ); + wrapper.eq(BasicdataPriceRouteEntity::getServiceType, ServiceTypeEnums.TRUNK_LINE.getCode()); + List routeEntities = basicdataPriceRouteService.list(wrapper); if (CollUtil.isNotEmpty(routeEntities)) { PriceRouteVO detail = basicdataPriceRouteService.detail(routeEntities.get(0).getId()); PricePickupVO pickup = new PricePickupVO(); @@ -500,13 +508,8 @@ public class BasicdataPriceServiceImpl extends BaseServiceImpl routeEntities = basicdataPriceRouteService.list(Wrappers.lambdaQuery() - .eq(BasicdataPriceRouteEntity::getPriceId, priceEntity.getId()) - .eq(BasicdataPriceRouteEntity::getSendOrgId, param.getSendOrgId()) - .eq(BasicdataPriceRouteEntity::getStartCountyId, param.getStartCountyId()) - .eq(BasicdataPriceRouteEntity::getEndCountyId, param.getEndCountyId()) - .eq(BasicdataPriceRouteEntity::getServiceType, ServiceTypeEnums.TRUNK_LINE.getCode()) - ); + wrapper.eq(BasicdataPriceRouteEntity::getServiceType, ServiceTypeEnums.TRUNK_LINE.getCode()); + List routeEntities = basicdataPriceRouteService.list(wrapper); if (CollUtil.isNotEmpty(routeEntities)) { PriceRouteVO detail = basicdataPriceRouteService.detail(routeEntities.get(0).getId()); PriceTrunkLineVO trunkLineVO = new PriceTrunkLineVO(); From 3672f8e373b3b9c0a04110f45993bdaa0619e272 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Fri, 13 Sep 2024 13:34:23 +0800 Subject: [PATCH 48/73] =?UTF-8?q?add:=201.=E4=BF=AE=E6=94=B9=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=8E=AF=E5=A2=83=E7=9A=84=E7=A7=9F=E6=88=B7=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-test.yml | 9 +----- .../src/main/resources/application-test.yml | 14 +-------- .../src/main/resources/application-test.yml | 30 ++----------------- .../src/main/resources/application-test.yml | 9 +----- .../src/main/resources/application-test.yml | 12 -------- .../src/main/resources/application-test.yml | 14 +-------- 6 files changed, 6 insertions(+), 82 deletions(-) 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 7508cbc1c..2ca7983eb 100644 --- a/blade-service/logpm-aftersales/src/main/resources/application-test.yml +++ b/blade-service/logpm-aftersales/src/main/resources/application-test.yml @@ -25,11 +25,4 @@ spring: url: ${blade.datasource.aftersales.master.url} username: ${blade.datasource.aftersales.master.username} password: ${blade.datasource.aftersales.master.password} - 627683: - url: ${blade.datasource.aftersales.627683.url} - username: ${blade.datasource.aftersales.627683.username} - password: ${blade.datasource.aftersales.627683.password} - 695224: - url: ${blade.datasource.aftersales.695224.url} - username: ${blade.datasource.aftersales.695224.username} - password: ${blade.datasource.aftersales.695224.password} + diff --git a/blade-service/logpm-business/src/main/resources/application-test.yml b/blade-service/logpm-business/src/main/resources/application-test.yml index 77e21d981..75004f829 100644 --- a/blade-service/logpm-business/src/main/resources/application-test.yml +++ b/blade-service/logpm-business/src/main/resources/application-test.yml @@ -25,19 +25,7 @@ spring: url: ${blade.datasource.business.master.url} username: ${blade.datasource.business.master.username} password: ${blade.datasource.business.master.password} - 627683: - url: ${blade.datasource.business.627683.url} - username: ${blade.datasource.business.627683.username} - password: ${blade.datasource.business.627683.password} - 645789: - druid: - #独立校验配置 - validation-query: select 1 - #oracle校验 - #validation-query: select 1 from dual - url: ${blade.datasource.business.645789.url} - username: ${blade.datasource.business.645789.username} - password: ${blade.datasource.business.645789.password} + #rabbitmq配置 rabbitmq: host: 192.168.2.110 diff --git a/blade-service/logpm-distribution/src/main/resources/application-test.yml b/blade-service/logpm-distribution/src/main/resources/application-test.yml index cd0503369..b81fd7839 100644 --- a/blade-service/logpm-distribution/src/main/resources/application-test.yml +++ b/blade-service/logpm-distribution/src/main/resources/application-test.yml @@ -39,7 +39,7 @@ spring: #排除DruidDataSourceAutoConfigure autoconfigure: - exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure,com.alibaba.cloud.seata.feign.SeataFeignClientAutoConfiguration + exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure datasource: dynamic: druid: @@ -60,30 +60,4 @@ spring: url: ${blade.datasource.distribution.master.url} username: ${blade.datasource.distribution.master.username} password: ${blade.datasource.distribution.master.password} - 627683: - druid: - #独立校验配置 - validation-query: select 1 - #oracle校验 - #validation-query: select 1 from dual - url: ${blade.datasource.distribution.627683.url} - username: ${blade.datasource.distribution.627683.username} - password: ${blade.datasource.distribution.627683.password} - 695224: - druid: - #独立校验配置 - validation-query: select 1 - #oracle校验 - #validation-query: select 1 from dual - url: ${blade.datasource.distribution.695224.url} - username: ${blade.datasource.distribution.695224.username} - password: ${blade.datasource.distribution.695224.password} - 645789: - druid: - #独立校验配置 - validation-query: select 1 - #oracle校验 - #validation-query: select 1 from dual - url: ${blade.datasource.distribution.645789.url} - username: ${blade.datasource.distribution.645789.username} - password: ${blade.datasource.distribution.645789.password} + diff --git a/blade-service/logpm-statisticsdata/src/main/resources/application-test.yml b/blade-service/logpm-statisticsdata/src/main/resources/application-test.yml index ed72a5140..ea213d24f 100644 --- a/blade-service/logpm-statisticsdata/src/main/resources/application-test.yml +++ b/blade-service/logpm-statisticsdata/src/main/resources/application-test.yml @@ -51,11 +51,4 @@ spring: url: ${blade.datasource.statisticsdata.master.url} username: ${blade.datasource.statisticsdata.master.username} password: ${blade.datasource.statisticsdata.master.password} - 627683: - url: ${blade.datasource.statisticsdata.627683.url} - username: ${blade.datasource.statisticsdata.627683.username} - password: ${blade.datasource.statisticsdata.627683.password} - 695224: - url: ${blade.datasource.statisticsdata.695224.url} - username: ${blade.datasource.statisticsdata.695224.username} - password: ${blade.datasource.statisticsdata.695224.password} + diff --git a/blade-service/logpm-trunkline/src/main/resources/application-test.yml b/blade-service/logpm-trunkline/src/main/resources/application-test.yml index 93370deb3..3e7aa4ed7 100644 --- a/blade-service/logpm-trunkline/src/main/resources/application-test.yml +++ b/blade-service/logpm-trunkline/src/main/resources/application-test.yml @@ -51,15 +51,3 @@ spring: url: ${blade.datasource.trunkline.master.url} username: ${blade.datasource.trunkline.master.username} password: ${blade.datasource.trunkline.master.password} - 627683: - url: ${blade.datasource.trunkline.627683.url} - username: ${blade.datasource.trunkline.627683.username} - password: ${blade.datasource.trunkline.627683.password} - 695224: - url: ${blade.datasource.trunkline.695224.url} - username: ${blade.datasource.trunkline.695224.username} - password: ${blade.datasource.trunkline.695224.password} - 645789: - url: ${blade.datasource.trunkline.645789.url} - username: ${blade.datasource.trunkline.645789.username} - password: ${blade.datasource.trunkline.645789.password} diff --git a/blade-service/logpm-warehouse/src/main/resources/application-test.yml b/blade-service/logpm-warehouse/src/main/resources/application-test.yml index 50b981cdf..7fd069bf6 100644 --- a/blade-service/logpm-warehouse/src/main/resources/application-test.yml +++ b/blade-service/logpm-warehouse/src/main/resources/application-test.yml @@ -12,7 +12,7 @@ server: spring: #排除DruidDataSourceAutoConfigure autoconfigure: - exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure,com.alibaba.cloud.seata.feign.SeataFeignClientAutoConfiguration + exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure datasource: dynamic: druid: @@ -25,18 +25,6 @@ spring: url: ${blade.datasource.warehouse.master.url} username: ${blade.datasource.warehouse.master.username} password: ${blade.datasource.warehouse.master.password} - 627683: - url: ${blade.datasource.warehouse.627683.url} - username: ${blade.datasource.warehouse.627683.username} - password: ${blade.datasource.warehouse.627683.password} - 695224: - url: ${blade.datasource.warehouse.695224.url} - username: ${blade.datasource.warehouse.695224.username} - password: ${blade.datasource.warehouse.695224.password} - 645789: - url: ${blade.datasource.warehouse.645789.url} - username: ${blade.datasource.warehouse.645789.username} - password: ${blade.datasource.warehouse.645789.password} #rabbitmq配置 rabbitmq: host: 192.168.2.110 From 743883c43739d6ba0531e8d41d30563c9a2bdcc5 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Sun, 15 Sep 2024 08:00:03 +0800 Subject: [PATCH 49/73] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E5=B8=82?= =?UTF-8?q?=E9=85=8D=E7=9A=84=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../distribution/mapper/DistributionDeliveryListMapper.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml index bfbe79b16..154dc4b21 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml @@ -211,7 +211,6 @@ FROM logpm_distribution_delivery_list lddl left JOIN logpm_distribution_signfor lds on lddl.id = lds.delivery_id LEFT JOIN logpm_distribution_reservation ldr on ldr.id = lds.reservation_id - LEFT JOIN (SELECT lddl.id,ldsa.order_code FROM logpm_distribution_delivery_list lddl LEFT JOIN logpm_distribution_signfor lds ON lddl.id = lds.delivery_id LEFT JOIN logpm_distribution_reservation_stockarticle AS ldrs ON lds.reservation_id = ldrs.reservation_id AND ldrs.stock_article_status != 2 LEFT JOIN logpm_distribution_stock_article AS ldsa ON ldrs.stock_article_id = ldsa.id ) AS y ON y.id = lddl.id lddl.is_deleted = 0 AND (IF(lddl.delivery_number is null ,0,lddl.delivery_number) + IF(lddl.inventory_nub is null ,0,lddl.inventory_nub)) > 0 @@ -250,7 +249,7 @@ and lddl.loading_team_name like concat('%',#{param.loadingTeamName},'%') - and y.order_code like concat('%',#{param.orderCode},'%') + and ldr.order_code like concat('%',#{param.orderCode},'%') and lddl.kind = #{param.kind} From 687fa9d1ff74920209524440cb22927e5bcb03e8 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Wed, 18 Sep 2024 08:50:38 +0800 Subject: [PATCH 50/73] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E6=AC=A7?= =?UTF-8?q?=E6=B4=BE=E5=9B=9E=E4=BC=A0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OuPaiFactoryServiceImpl.java | 103 +++++++++++------- 1 file changed, 66 insertions(+), 37 deletions(-) diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java index 971df1726..0c8906b76 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java @@ -117,7 +117,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { handleData(code); if (ObjectUtils.isNotNull(code)) { // 暂停推送 - if(ObjectUtil.equal(sendDataProperties.getSend(), "new")){ + if (ObjectUtil.equal(sendDataProperties.getSend(), "new")) { log.info("推送新系统"); asyncDataService.handlerOuPaiDataToHt(code); } @@ -164,7 +164,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(OpOrderStatusLogEntity::getType, 3); - lambdaQueryWrapper.like(OpOrderStatusLogEntity::getArgs, code); + lambdaQueryWrapper.like(OpOrderStatusLogEntity::getArgs, code); lambdaQueryWrapper.orderByAsc(OpOrderStatusLogEntity::getCreateTime); lambdaQueryWrapper.last("limit 1"); return opOrderStatusLogService.getOne(lambdaQueryWrapper); @@ -424,22 +424,22 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { /** * 重推 - * @see #handleStatusData(OrderStatusDTO, boolean) + * * @param orderStatusDTO * @return + * @see #handleStatusData(OrderStatusDTO, boolean) */ @Override - public boolean retryHandleStatusData(OrderStatusDTO orderStatusDTO){ + public boolean retryHandleStatusData(OrderStatusDTO orderStatusDTO) { R res = handleStatusData(orderStatusDTO, true); - return res.getCode() == 200; + return res.getCode() == 200; // 测试功能时使用 // return res.getCode() == 200 || Math.random() < 0.5; - } + } /** - * * @param orderStatusDTO - * @param isRetry 是否是重推调用 + * @param isRetry 是否是重推调用 * @return */ private R handleStatusData(OrderStatusDTO orderStatusDTO, boolean isRetry) { @@ -453,6 +453,33 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { return Resp.fail(400, "当前数据的状态不推送"); } + + // 需要判断当前操作的码 是否是和包码 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(FactoryPackageEntity::getCosourcingCode, unitNo); + List list = factoryPackageService.list(queryWrapper); + if (list.isEmpty()) { + return doPackageInfo(orderStatusDTO, isRetry, unitNo, status); + } else { + try { + for (FactoryPackageEntity factoryPackageEntity : list) { + + R r = doPackageInfo(orderStatusDTO, isRetry, factoryPackageEntity.getCode(), status); + + } + } catch (Exception e) { + log.error("合包码推送出现异常", e); + } + return Resp.success("物流状态传递成功"); + + + } + + + } + + @NotNull + private R doPackageInfo(OrderStatusDTO orderStatusDTO, boolean isRetry, String unitNo, String status) { //继续判断是否到达目的仓 String currentWarehouseId = orderStatusDTO.getCurrentWarehouse();//当前仓Id //查询destinationWarehouse logiBillNo plantId数据 @@ -479,7 +506,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { // 不是重试的时候,记录对应数据 if (!isRetry) { - log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo); + log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}", unitNo); opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); } @@ -547,11 +574,11 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { if (opPackagePushLogEntity == null) { log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate")); } else { - if(opPackagePushLogEntity.getId().equals(-1L)){ + if (opPackagePushLogEntity.getId().equals(-1L)) { // 保存异常 // 不是重试的时候,记录对应数据 if (!isRetry) { - log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo); + log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}", unitNo); opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); } } @@ -635,14 +662,16 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { // return Resp.fail(400, "不是目的仓"); // } + + // 查询这个包件对应到新系统的订单 FactoryOrderEntity factoryOrder = factoryOrderService.selectEntityByOrderPackageCode(unitNo); if (Objects.isNull(factoryOrder)) { // 不是重试的时候,记录对应数据 - log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo); - opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); + log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo); + opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); return Resp.fail(400, "未查询到该单据推送订单信息"); } @@ -705,13 +734,13 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate")); } else { - if(opPackagePushLogEntity.getId().equals(-1L)){ - log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo); + if (opPackagePushLogEntity.getId().equals(-1L)) { + log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo); opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); } // 需要盘点这个对象的 - String resp = opPackagePushLogEntity.getResp(); + String resp = opPackagePushLogEntity.getResp(); log.info(" >>>>>>>>>>>>>>>>>>>>>>> 推送欧派返回数据 {}", resp); // TODO: 2023/10/25 不知道返回成功的状态是多少 @@ -842,20 +871,20 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { private OpPackagePushLogEntity sendPushOuPaiDataNew(Long refId, String url, Integer pushType, JSONObject data) { - OpPackagePushLogEntity opPackagePushLogEntity = new OpPackagePushLogEntity(); - opPackagePushLogEntity.setArgs(data.toJSONString()); - opPackagePushLogEntity.setPushType(pushType); - opPackagePushLogEntity.setUrl(url); - opPackagePushLogEntity.setRefId(refId); - opPackagePushLogEntity.setPushOupaiNode(data.getString("Operate")); + OpPackagePushLogEntity opPackagePushLogEntity = new OpPackagePushLogEntity(); + opPackagePushLogEntity.setArgs(data.toJSONString()); + opPackagePushLogEntity.setPushType(pushType); + opPackagePushLogEntity.setUrl(url); + opPackagePushLogEntity.setRefId(refId); + opPackagePushLogEntity.setPushOupaiNode(data.getString("Operate")); - String token = buildToken(); - HttpResponse httpResponse = HttpRequest.post(url).header("Authorization", token).body(data.toJSONString()).execute(); - String result = httpResponse.body(); - opPackagePushLogEntity.setResp(result); - opPackagePushLogService.save(opPackagePushLogEntity); - return opPackagePushLogEntity; + String token = buildToken(); + HttpResponse httpResponse = HttpRequest.post(url).header("Authorization", token).body(data.toJSONString()).execute(); + String result = httpResponse.body(); + opPackagePushLogEntity.setResp(result); + opPackagePushLogService.save(opPackagePushLogEntity); + return opPackagePushLogEntity; } @@ -877,26 +906,26 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushOupaiNode, "收货"); lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushType, pushType);// 查询包件 List list = opPackagePushLogService.list(lambdaQueryWrapper); - if(list.isEmpty()){ - data.put("Operate","收货"); + if (list.isEmpty()) { + data.put("Operate", "收货"); OpPackagePushLogEntity opPackagePushLogEntity = sendPushOuPaiDataNew(refId, url, 1, data); - log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 由于欧派数据延迟推送作业,作业上没有进行入库作业回传,在出库回传欧派 再次进行补传入库数据, 包条ID:{}",refId); + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 由于欧派数据延迟推送作业,作业上没有进行入库作业回传,在出库回传欧派 再次进行补传入库数据, 包条ID:{}", refId); // 由于现在无法进行异步任务的绑定,所以对于没有入库数据的说发,导致无法进行延迟 再加上欧派现在没有进行发货数据的考核 所以在检查到没有收货数据的发货推送的时间只传收货 // 将当前的发货的原始数据保存在定时任务 晚上再次执行该原始数据 opPackagePushLogEntity.setId(-1L); return opPackagePushLogEntity; - }else{ + } else { return sendOupaiDataAndSaveLogs(refId, url, pushType, data); } - }else { + } else { return sendOupaiDataAndSaveLogs(refId, url, pushType, data); } } @Nullable private OpPackagePushLogEntity sendOupaiDataAndSaveLogs(Long refId, String url, Integer pushType, JSONObject data) { - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(OpPackagePushLogEntity::getRefId, refId); lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushOupaiNode, data.getString("Operate")); lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushType, pushType);// 查询包件 @@ -1288,11 +1317,11 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { String receiveCode = receivingOrderMapper.selectReceivingOrderByOrderId(factoryPackageEntity.getOrderId()); - if(receiveCode.equals(code)){ + if (receiveCode.equals(code)) { log.error("############handleData: 包件码已存在 packageCode={} ,订单 id {} 收货单号 {}", packageCode, factoryPackageEntity.getOrderId(), code); - }else{ - log.error("############handleData: 该包件存在于其它收货单 packageCode={} 订单ID {} 收货单号 {}", packageCode,factoryPackageEntity.getOrderId(), receiveCode); + } else { + log.error("############handleData: 该包件存在于其它收货单 packageCode={} 订单ID {} 收货单号 {}", packageCode, factoryPackageEntity.getOrderId(), receiveCode); } //throw new CustomerException(403, "包件码已存在"); From 580104b772a79ccf2c3d132c1c815972a9c97e9f Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Wed, 18 Sep 2024 15:23:21 +0800 Subject: [PATCH 51/73] =?UTF-8?q?add:=20=E5=A2=9E=E5=8A=A0=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=9A=84=E7=BB=93=E7=AE=97=E5=AF=B9=E8=B1=A1=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/logpm/basicdata/entity/BasicdataClientEntity.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataClientEntity.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataClientEntity.java index c256b7bb8..3f708f90c 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataClientEntity.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataClientEntity.java @@ -80,6 +80,14 @@ public class BasicdataClientEntity extends TenantEntity { */ @ApiModelProperty(value = "客户类型 ") private String clientType; + + + /** + * 结算对象类型:1.工厂 2.商场 3.个人 + */ + @ApiModelProperty(value = "结算对象类型 ") + private String cleanObjType; + /** * 详细地址 */ From 5ebaada5524b4366a64075a98912e550084c855a Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Wed, 18 Sep 2024 20:15:06 +0800 Subject: [PATCH 52/73] =?UTF-8?q?add:=20=E5=A2=9E=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?=E9=A2=84=E7=BA=A6=E5=8D=95=E9=9B=B6=E6=8B=85=E7=9A=84=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/BusinessPreOrderEntity.java | 18 ++++ ...ibutionBusinessPreCarNumerPageQueryVO.java | 3 + .../trunkline/feign/IExtractedDataClient.java | 18 ++++ .../impl/BusinessAsyncServiceImpl.java | 13 ++- .../impl/BusinessPreOrderServiceImpl.java | 6 +- .../src/main/resources/application-dev.yml | 2 +- .../mapper/DistributionLoadscanMapper.xml | 2 +- .../BusinessPreOrderDataQueueHandler.java | 46 +++++++++- .../trunkline/feign/ExtractedDataClient.java | 89 +++++++++++++++++++ .../mq/OpenWaybillToBusinessListener.java | 67 +++----------- 10 files changed, 202 insertions(+), 62 deletions(-) create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/IExtractedDataClient.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/ExtractedDataClient.java diff --git a/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/entity/BusinessPreOrderEntity.java b/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/entity/BusinessPreOrderEntity.java index 05df60ba6..3d0723f49 100644 --- a/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/entity/BusinessPreOrderEntity.java +++ b/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/entity/BusinessPreOrderEntity.java @@ -173,6 +173,24 @@ public class BusinessPreOrderEntity extends TenantEntity { */ @ApiModelProperty(value = "数量") private Integer quantity; + + + /** + * 卸车数量 + */ + @ApiModelProperty(value = "卸车数量") + private Integer unloadNum; + + + /** + * 装车数量 + */ + @ApiModelProperty(value = "装车数量") + private Integer loadNum; + + + + /** * 车次号 */ diff --git a/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarNumerPageQueryVO.java b/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarNumerPageQueryVO.java index a746d5578..a99fda6d8 100644 --- a/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarNumerPageQueryVO.java +++ b/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarNumerPageQueryVO.java @@ -13,4 +13,7 @@ public class DistributionBusinessPreCarNumerPageQueryVO { private String orderCode; @ApiModelProperty(value = "配送车次号") private String distrCarNumber; + + @ApiModelProperty(value = "物品类型 1 定制品 3零担") + private String conditions; } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/IExtractedDataClient.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/IExtractedDataClient.java new file mode 100644 index 000000000..350dfca01 --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/IExtractedDataClient.java @@ -0,0 +1,18 @@ +package com.logpm.trunkline.feign; + +import com.logpm.trunkline.entity.TrunklineCarsLoadEntity; +import org.springblade.common.constant.ModuleNameConstant; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@FeignClient( + value = ModuleNameConstant.APPLICATION_TRUNKLINE_NAME +) +public interface IExtractedDataClient { + + String API_PREFIX = "extractedData/client"; + @GetMapping(API_PREFIX+"/findEntityByCarsNo") + void execute(@RequestParam String tenantId,@RequestParam String wallbillNum); + +} diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessAsyncServiceImpl.java b/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessAsyncServiceImpl.java index 20d00df98..0e1930352 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessAsyncServiceImpl.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessAsyncServiceImpl.java @@ -46,6 +46,10 @@ public class BusinessAsyncServiceImpl implements IBusinessAsyncService { log.info(" saveOtherDataBaseNew dataResult 参数错误"); } + + + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(BusinessPreOrderEntity::getInWarehouse, 0); lambdaQueryWrapper.in(BusinessPreOrderEntity::getOrderCode, orderCodeList); @@ -62,7 +66,7 @@ public class BusinessAsyncServiceImpl implements IBusinessAsyncService { businessPreOrderEntity.setTenantId(tenant.getTenantId()); if (businessPreOrderEntity.getStockArticleId().equals(distributionBusinessPreOrderEntity.getStockArticleId())) { // 找到订单 - if (businessPreOrderEntity.getOrderPackageCode().equals(distributionBusinessPreOrderEntity.getOrderPackageCode())) { + if (distributionBusinessPreOrderEntity.getConditions().equals(1) && businessPreOrderEntity.getOrderPackageCode().equals(distributionBusinessPreOrderEntity.getOrderPackageCode())) { //找到包件 并标记为删除状态 if (distributionBusinessPreOrderEntity.getInWarehouse().equals(1)) { // 需要删除集合中的数据 @@ -70,6 +74,13 @@ public class BusinessAsyncServiceImpl implements IBusinessAsyncService { } else { temsp.add(distributionBusinessPreOrderEntity.getId()); } + }else if(distributionBusinessPreOrderEntity.getConditions().equals(3) &&distributionBusinessPreOrderEntity.getFirsts().equals(businessPreOrderEntity.getFirsts())){ + if (distributionBusinessPreOrderEntity.getInWarehouse().equals(1)) { + // 需要删除集合中的数据 + dataResult.remove(i); + } else { + temsp.add(distributionBusinessPreOrderEntity.getId()); + } } } diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java b/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java index c485bf9b1..145951c1a 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java @@ -466,6 +466,7 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(BusinessPreOrderEntity::getDistrCarNumber, queryVO.getDistrCarNumber()); queryWrapper.eq(BusinessPreOrderEntity::getIsDeleted, 0); + queryWrapper.eq(BusinessPreOrderEntity::getConditions, queryVO.getConditions()); List list = this.list(queryWrapper); if (list != null) { @@ -488,13 +489,16 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl entities, List data) { DistributionBusinessPreCarOrderDetalVO t = new DistributionBusinessPreCarOrderDetalVO(); t.setOrderCode(orderCode); + String wallbillNum = entities.stream().map(BusinessPreOrderEntity::getWaybillNumber).distinct().collect(Collectors.joining(",")); + + // todo 这里的计算存在问题,没有计算零担的数据 + int planNum = entities.size(); int loadNum = (int) entities.stream().filter(e -> "20".equals(e.getOrderPackageLoadingStatus())).count(); int inNum = (int) entities.stream().filter(e -> e.getInWarehouse() == 1).count(); int inExceNum = (int) entities.stream().filter(e -> e.getOperationStatus() == 1).count(); - String wallbillNum = entities.stream().map(BusinessPreOrderEntity::getWaybillNumber).distinct().collect(Collectors.joining(",")); t.setWaybillNumber(wallbillNum); t.setLoadCarCount(loadNum); diff --git a/blade-service/logpm-business/src/main/resources/application-dev.yml b/blade-service/logpm-business/src/main/resources/application-dev.yml index b43dd1d0d..5185d37b5 100644 --- a/blade-service/logpm-business/src/main/resources/application-dev.yml +++ b/blade-service/logpm-business/src/main/resources/application-dev.yml @@ -11,7 +11,7 @@ server: spring: autoconfigure: - exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure,com.alibaba.cloud.seata.feign.SeataFeignClientAutoConfiguration + exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure datasource: dynamic: druid: diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml index 325dbd2d4..6c33bb353 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml @@ -80,7 +80,7 @@ SELECT GROUP_CONCAT(DISTINCT ldl.driver_name SEPARATOR ',' ) FROM logpm_distribution_loadscan ldl where ldl.order_id =#{id} + SELECT + * + FROM + logpm_distribution_loadscan + WHERE + reservation_id = #{reservationId} AND parcel_list_id = #{parcelListId} + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/BusinessPreOrderDataQueueHandler.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/BusinessPreOrderDataQueueHandler.java index c6c82bee0..9bc45782b 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/BusinessPreOrderDataQueueHandler.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/BusinessPreOrderDataQueueHandler.java @@ -41,6 +41,7 @@ public class BusinessPreOrderDataQueueHandler { private final ISysClient sysClient; private final IBusinessPreOrderClient businessPreOrderClient; private final IExtractedDataClient extractedDataClient; + private final IDistributionLoadscanService distributionLoadscanService; private final IDistributionAsyncService distributionAsyncService; @@ -108,6 +109,10 @@ public class BusinessPreOrderDataQueueHandler { DistributionParcelListEntity byId = distributionParcelListService.getById(distributionReservationPackageEntity.getParceListId()); BusinessPreOrderEntity data = BeanUtil.copy(byId, BusinessPreOrderEntity.class); + // 判断包件是否装车 + if ("20".equals(byId.getOrderPackageLoadingStatus())) { + data.setLoadNum(1); + } data.setDriverName(distributionDeliveryListEntity.getDriverName()); data.setVehicleName(distributionDeliveryListEntity.getVehicleName()); data.setDistrCarNumber(distributionDeliveryListEntity.getTrainNumber()); @@ -132,7 +137,16 @@ public class BusinessPreOrderDataQueueHandler { DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(distributionReservationZeroPackageEntity.getParcelListId()); if (parcelListEntity != null) { BusinessPreOrderEntity data = BeanUtil.copy(parcelListEntity, BusinessPreOrderEntity.class); + // 计划数量 data.setQuantity(distributionReservationZeroPackageEntity.getQuantity()); + + // 获取装车数量 + DistributionLoadscanEntity distributionLoadscanEntity = distributionLoadscanService.findLoadDataByRelationIdAndParcelListId(distributionReservationZeroPackageEntity.getReservationId(), distributionReservationZeroPackageEntity.getParcelListId()); + if(distributionLoadscanEntity != null){ + //设置装车数量 + data.setLoadNum(distributionLoadscanEntity.getLoadedNub()); + } + data.setDriverName(distributionDeliveryListEntity.getDriverName()); data.setVehicleName(distributionDeliveryListEntity.getVehicleName()); data.setDistrCarNumber(distributionDeliveryListEntity.getTrainNumber()); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionLoadscanService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionLoadscanService.java index 33f302511..c9a532ee3 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionLoadscanService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionLoadscanService.java @@ -56,4 +56,12 @@ public interface IDistributionLoadscanService extends BaseService queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(FactoryPackageEntity::getCosourcingCode, unitNo); - List list = factoryPackageService.list(queryWrapper); - if (list.isEmpty()) { - return doPackageInfo(orderStatusDTO, isRetry, unitNo, status); - } else { - try { - for (FactoryPackageEntity factoryPackageEntity : list) { - R r = doPackageInfo(orderStatusDTO, isRetry, factoryPackageEntity.getCode(), status); + if(unitNo.startsWith("HB")){ + // 需要判断当前操作的码 是否是和包码 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(FactoryPackageEntity::getCosourcingCode, unitNo); + List list = factoryPackageService.list(queryWrapper); + if (list.isEmpty()) { + return doPackageInfo(orderStatusDTO, isRetry, unitNo, status); + } else { + try { + for (FactoryPackageEntity factoryPackageEntity : list) { - } - } catch (Exception e) { - log.error("合包码推送出现异常", e); - } - return Resp.success("物流状态传递成功"); + R r = doPackageInfo(orderStatusDTO, isRetry, factoryPackageEntity.getCode(), status); + } + } catch (Exception e) { + log.error("合包码推送出现异常", e); + } + return Resp.success("物流状态传递成功"); + } + }else{ + return doPackageInfo(orderStatusDTO, isRetry, unitNo, status); } - } @NotNull diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyOrderStatusHandler.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyOrderStatusHandler.java index 466605527..7c394149b 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyOrderStatusHandler.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/HwyOrderStatusHandler.java @@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.RabbitConstant; import org.springblade.common.exception.CustomerException; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.StringUtil; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; @@ -53,6 +54,10 @@ public class HwyOrderStatusHandler { String orderSelfNum = orderStatusDTO.getOrderNo();//订单自编号 String unitNo = orderStatusDTO.getUnitNo(); //通过订单自编号去查询该条订单是属于哪个工厂 + if(StringUtil.isEmpty(orderSelfNum)){ + log.warn(">>>>>>> 订单号是null hwyOrderStatusHandler {}",orderStatusDTO); + return ; + } TrunklineAdvanceEntity advanceLimitOneByOrderCode = trunklineAdvanceClient.findAdvanceLimitOneByOrderCode(orderSelfNum); if (Objects.isNull(advanceLimitOneByOrderCode)) { log.info("##################hwyOrderStatusHandler: 未找到对应订单 orderNo={}", orderSelfNum); From 59b8ebd5995594a786a1e9c5f1dc453e667c508b Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Fri, 20 Sep 2024 01:03:32 +0800 Subject: [PATCH 55/73] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0=E9=9B=B6=E6=8B=85?= =?UTF-8?q?=E5=8D=B8=E8=BD=A6=E5=85=A5=E5=BA=93=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logpm/business/dto/BusinessSanDTO.java | 2 + .../entity/DistributionParcelListEntity.java | 4 +- .../feign/IDistributionParcelListClient.java | 21 ++- .../IDistributionStockArticleClient.java | 3 + .../business/api/BusinessPreOrderApi.java | 19 +-- .../impl/BusinessPreOrderServiceImpl.java | 160 +++++++++++++++--- .../feign/DistributionParcelListClient.java | 16 +- .../feign/DistributionStockArticleClient.java | 7 + 8 files changed, 188 insertions(+), 44 deletions(-) diff --git a/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/dto/BusinessSanDTO.java b/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/dto/BusinessSanDTO.java index 1ff73d10b..04ad1d1a0 100644 --- a/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/dto/BusinessSanDTO.java +++ b/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/dto/BusinessSanDTO.java @@ -38,6 +38,8 @@ public class BusinessSanDTO { @ApiModelProperty(value = "卸车数量") private Integer unloadNum; + @ApiModelProperty(value = "状态 1 定制品 2 库存品 3零担") + private String conditions; } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java index 673a3e634..b9abba72c 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java @@ -332,11 +332,11 @@ public class DistributionParcelListEntity extends TenantEntity { @ApiModelProperty(value = "包件冻结状态") private String orderPackageFreezeStatus; - @ApiModelProperty(value = "包件冻结状态") + @ApiModelProperty(value = "预约状态") private String orderPackageReservationStatus; - @ApiModelProperty(value = "包件冻结状态") + @ApiModelProperty(value = "预约数量") @TableField(exist = false) private Integer reservationNum; diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java index 6fa85f923..33a3d1447 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java @@ -102,9 +102,26 @@ public interface IDistributionParcelListClient { @PostMapping(API_PREFIX + "/update") void update(@RequestBody DistributionParcelListEntity distributionParcelListEntity); + /** + * 根据 订单号合开单品类查询指定仓库下的零担的品类信息 + * @param orderCode + * @param first + * @param warehouseId + * @return + */ + @GetMapping(API_PREFIX + "/findDistributionParcelListEntityByOrderCodeAndFirstName") + DistributionParcelListEntity findDistributionParcelListEntityByOrderCodeAndFirstName(@RequestParam String orderCode, @RequestParam String first,@RequestParam Long warehouseId); - @GetMapping(API_PREFIX + "/SumEntityZkByOrderId") - Integer SumEntityByOrderId(@RequestParam Long orderId, @RequestParam Long warehouseId); + /** + * 根据 订单号合开单品类查询指定租户下的仓库的零担的品类信息 + * @param tenantId + * @param orderCode + * @param first + * @param warehouseId + * @return + */ + @GetMapping(API_PREFIX + "/findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId") + DistributionParcelListEntity findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId(@RequestParam String tenantId,@RequestParam String orderCode, @RequestParam String first,@RequestParam Long warehouseId); /** diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java index 926d966f9..8bd19b831 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionStockArticleClient.java @@ -75,6 +75,9 @@ public interface IDistributionStockArticleClient { @GetMapping(API_PREFIX + "/findByOrderSelfNum") DistributionStockArticleEntity findByOrderSelfNum(@RequestParam String orderCode, @RequestParam Long warehouseId); + @GetMapping(API_PREFIX + "/findByOrderSelfNumAndTenantId") + DistributionStockArticleEntity findByOrderSelfNumAndTenantId(@RequestParam String tenantId,@RequestParam String orderCode, @RequestParam Long warehouseId); + @GetMapping(API_PREFIX + "/deleteById") void deleteById(@RequestParam Long orderId); diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/api/BusinessPreOrderApi.java b/blade-service/logpm-business/src/main/java/com/logpm/business/api/BusinessPreOrderApi.java index 1cdca442d..74a238b9c 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/api/BusinessPreOrderApi.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/api/BusinessPreOrderApi.java @@ -46,6 +46,12 @@ public class BusinessPreOrderApi { } + /** + * 商家入库接口 + * 零担入库也走这个接口 + * @param businessSanDTO + * @return + */ @PostMapping("/scanOrderPackageCode") @ApiOperationSupport(order = 1) public R scanOrderPackageCode(@RequestBody BusinessSanDTO businessSanDTO) { @@ -60,22 +66,9 @@ public class BusinessPreOrderApi { return resp; } - @PostMapping("/inputZeroOrderData") - @ApiOperationSupport(order = 1) - public R inputZeroOrderData(@RequestBody List businessSanDTOincentices) { - - log.info(" >> 请求参数 {}", businessSanDTOincentices); - - // 传入的集合对象 中获取 - - - return R.success("操作成功"); - } - - @GetMapping("/listCarNum") @ApiOperationSupport(order = 1) @ApiOperation(value = "条件查询", notes = "传入trayTypeDTO") diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java b/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java index ae1224b73..6f5ad4efb 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/service/impl/BusinessPreOrderServiceImpl.java @@ -17,8 +17,10 @@ import com.logpm.business.service.IBusinessAsyncService; import com.logpm.business.service.IBusinessPreOrderService; import com.logpm.business.vo.*; import com.logpm.distribution.entity.DistributionParcelListEntity; +import com.logpm.distribution.entity.DistributionStockArticleEntity; import com.logpm.distribution.feign.IDistributionDeliveryListClient; import com.logpm.distribution.feign.IDistributionParcelListClient; +import com.logpm.distribution.feign.IDistributionStockArticleClient; import com.logpm.trunkline.dto.InComingDTO; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.feign.IInComingClient; @@ -56,6 +58,8 @@ public class BusinessPreOrderServiceImpl extends BaseServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BusinessPreOrderEntity::getDistrCarNumber, distrCarNumber); + queryWrapper.eq(BusinessPreOrderEntity::getIsDeleted, 0); + List list = baseMapper.selectList(queryWrapper); + if (list.isEmpty()) { + return Resp.scanFail("扫描失败", "车次信息不存在"); + } - if (Func.isAllEmpty(orderPackageCode, distrCarNumber, businessSanDTO.getInWarehouseException())) { - return Resp.scanFail("扫描失败", "没有包件或者车次"); - } - // 查询配送车次下面所有的包件 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(BusinessPreOrderEntity::getDistrCarNumber, distrCarNumber); - queryWrapper.eq(BusinessPreOrderEntity::getIsDeleted, 0); - List list = baseMapper.selectList(queryWrapper); - if (list.isEmpty()) { - return Resp.scanFail("扫描失败", "车次信息不存在"); - } + // 异常入库 + if (1 == businessSanDTO.getInWarehouseException()) { + Resp a = handleExceptionalWarehourse(businessSanDTO, list, orderPackageCode, distrCarNumber); + if (a != null) return a; + } else { + //正常入口 + Resp scanFail = handleNormalWarehourse(businessSanDTO, orderPackageCode, list, distrCarNumber); + if (scanFail != null) return scanFail; + + } + } else if ("3".equals(businessSanDTO.getConditions())) { + // 零担 + LambdaQueryWrapper queryWrapper3 = new LambdaQueryWrapper<>(); + queryWrapper3.eq(BusinessPreOrderEntity::getDistrCarNumber, businessSanDTO.getDistrCarNumber()); + queryWrapper3.eq(BusinessPreOrderEntity::getReservationCode, businessSanDTO.getReservationCode()); + queryWrapper3.eq(BusinessPreOrderEntity::getOrderCode, businessSanDTO.getOrderCode()); + queryWrapper3.eq(BusinessPreOrderEntity::getFirsts, businessSanDTO.getFirsts()); + List list3 = baseMapper.selectList(queryWrapper3); + if (list3.isEmpty()) { + throw new CustomerException("入库数据错误,请联系管理员"); + } + BusinessPreOrderEntity businessPreOrderEntity = list3.get(0); + if (1 == businessPreOrderEntity.getInWarehouse()) { + return Resp.scanFail("操作失败", businessSanDTO.getFirsts() + "已入库"); + } + + // 构建 订单 + DistributionStockArticleEntity distributionStockArticleEntity = checkStockArticle(businessPreOrderEntity, myCurrentWarehouse); + // 构建 订单下级【包件】 + DistributionParcelListEntity distributionParcelListEntityByOrderCodeAndFirstName = distributionParcelListClient.findDistributionParcelListEntityByOrderCodeAndFirstName(businessPreOrderEntity.getOrderCode(), businessSanDTO.getFirsts(), myCurrentWarehouse.getId()); + + int temp = 0; + if (distributionParcelListEntityByOrderCodeAndFirstName == null) { + // 执行新增功能 + DistributionParcelListEntity distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId = distributionParcelListClient.findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId(businessPreOrderEntity.getFromTenantId(), businessPreOrderEntity.getOrderCode(), businessSanDTO.getFirsts(), businessPreOrderEntity.getWarehouseId()); + if (distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId != null) { + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setId(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setTenantId(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setCreateUser(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setUpdateUser(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setCreateTime(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setUpdateTime(null); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setOrderPackageReservationStatus("10"); + // 卸车数量作为入库数量 + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setQuantity(businessSanDTO.getUnloadNum()); + distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId.setStockArticleId(distributionStockArticleEntity.getId()); + distributionParcelListClient.add(distributionParcelListEntityByOrderCodeAndFirstNameAndTenantId); + temp = businessSanDTO.getUnloadNum(); + } + + } else { + // 修改其入库数量 + if(distributionParcelListEntityByOrderCodeAndFirstName.getQuantity() lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(DistributionParcelListEntity::getOrderCode, orderCode); + lambdaQueryWrapper.eq(DistributionParcelListEntity::getFirsts, first); + lambdaQueryWrapper.eq(DistributionParcelListEntity::getWarehouseId, warehouseId); + return distributionParcelListService.getOne(lambdaQueryWrapper); + } + @ChangeAsync @Override - public Integer SumEntityByOrderId(Long orderId, Long warehouseId) { - Integer i = distributionParcelListService.selectSumByOrderId(orderId, warehouseId); - return i; + public DistributionParcelListEntity findDistributionParcelListEntityByOrderCodeAndFirstNameAndTenantId(String tenantId, String orderCode, String first, Long warehouseId) { + return findDistributionParcelListEntityByOrderCodeAndFirstName(orderCode, first, warehouseId); } @Override diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java index 76c45f506..8c905bf82 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionStockArticleClient.java @@ -32,6 +32,7 @@ import com.logpm.distribution.service.IDistributionStockArticleService; import com.logpm.distribution.vo.UpDownStockupAreaVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springblade.common.annotations.ChangeAsync; import org.springblade.common.exception.CustomerException; import org.springblade.core.mp.support.BladePage; import org.springblade.core.mp.support.Condition; @@ -108,6 +109,12 @@ public class DistributionStockArticleClient implements IDistributionStockArticle return distributionStockArticleService.getOne(queryWrapper); } + @ChangeAsync + @Override + public DistributionStockArticleEntity findByOrderSelfNumAndTenantId(String tenantId, String orderCode, Long warehouseId) { + return findByOrderSelfNum(orderCode,warehouseId); + } + @Override public void deleteById(Long orderId) { QueryWrapper queryWrapper = new QueryWrapper<>(); From 6d1939e9e029dd2adfff153772bdc2fa04fb6a7b Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Fri, 20 Sep 2024 11:27:19 +0800 Subject: [PATCH 56/73] =?UTF-8?q?fix:=E4=BC=98=E5=8C=96=E6=AC=A7=E6=B4=BE?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=9B=9E=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OuPaiFactoryServiceImpl.java | 191 ++++++++++-------- 1 file changed, 112 insertions(+), 79 deletions(-) diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java index f212d5c64..0d46ae308 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java @@ -461,7 +461,10 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { queryWrapper.eq(FactoryPackageEntity::getCosourcingCode, unitNo); List list = factoryPackageService.list(queryWrapper); if (list.isEmpty()) { - return doPackageInfo(orderStatusDTO, isRetry, unitNo, status); + // 查询不到和包码 直接进行异常记录 + //return doPackageInfo(orderStatusDTO, isRetry, unitNo, status); + opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); + return Resp.fail(400, "未查询到该单据推送订单信息"); } else { try { for (FactoryPackageEntity factoryPackageEntity : list) { @@ -667,92 +670,122 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { - // 查询这个包件对应到新系统的订单 - FactoryOrderEntity factoryOrder = factoryOrderService.selectEntityByOrderPackageCode(unitNo); - - if (Objects.isNull(factoryOrder)) { - - // 不是重试的时候,记录对应数据 - log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo); - opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); - - return Resp.fail(400, "未查询到该单据推送订单信息"); - } - // 如何判断这个包间是非干仓配的数据 - - if (!"经销商".equals(factoryOrder.getBusinessModel())) { - log.info("oupai- 该包条为干仓配的数据类型 不进行推送 >>> unitNo={} businessModel:{}", unitNo, factoryOrder.getBusinessModel()); - return Resp.fail(400, "包条为干仓配的数据类型"); - } - - boolean isPushHtNomal = checkOpfactoryOrderBusinessModel(factoryOrder); - if (isPushHtNomal) { - log.info("oupai- 该包条为汇通使用欧派系统进行作业类型型 不进行推送 >>> unitNo={} businessModel:{}", unitNo, factoryOrder.getBusinessModel()); - return Resp.fail(400, "该包条为汇通使用欧派系统进行作业类型"); - } - - // 通过仓库编码查询 - ReceivingOrderEntity receivingOrderEntity = receivingOrderMapper.selectById(factoryOrder.getReceivingId()); - - if (Objects.isNull(receivingOrderEntity)) { - log.info(" 该订单为没有收货单 不进行推送 >>> receivingId={} ", factoryOrder.getReceivingId()); - return Resp.fail(400, "未查询到该单据推送收货单信息"); - } + if(unitNo.startsWith("HB")){ + // 需要判断当前操作的码 是否是和包码 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(FactoryPackageEntity::getCosourcingCode, unitNo); + List list = factoryPackageService.list(queryWrapper); + if (list.isEmpty()) { + // 查询不到和包码 直接进行异常记录 + //return doPackageInfo(orderStatusDTO, isRetry, unitNo, status); + opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); + return Resp.fail(400, "未查询到该单据推送订单信息"); + } else { + try { + for (FactoryPackageEntity factoryPackageEntity : list) { - if (StringUtil.isBlank(receivingOrderEntity.getCurrentWarehouseOid())) { - log.info(" 该订单为没有收货仓 不进行推送 >>> getCurrentWarehouseOid={} ", receivingOrderEntity.getCurrentWarehouseOid()); - return Resp.fail(400, "收货仓信息不能为null"); - } - if (!receivingOrderEntity.getCurrentWarehouseName().contains("仓")) { - log.info(" 该订单为没有收货仓信息不正确 getCurrentWarehouseName={} ", receivingOrderEntity.getCurrentWarehouseName()); - return Resp.fail(400, "该订单为没有收货仓信息不正确"); - } + R r = doPackageInfo(orderStatusDTO, false, factoryPackageEntity.getCode(), status); + } + } catch (Exception e) { + log.error("合包码推送出现异常", e); + } + return Resp.success("物流状态传递成功"); - JSONObject detailObject = new JSONObject(); - detailObject.put("WarehouseOid", receivingOrderEntity.getCurrentWarehouseOid()); - detailObject.put("WarehouseBelong", "oppein"); - detailObject.put("Creator", orderStatusDTO.getUsername()); - detailObject.put("PackageCode", unitNo); - // 增加当仓直接入库的 就没有卸车收货的状态 直接 进行入库 入库就表示货物进入当前仓库 - if ("4".equals(status) || "1".equals(status)) { - detailObject.put("Operate", "收货"); - } else if ("7".equals(status)) { - detailObject.put("Operate", "发货"); - } else { - log.info(" 该包件的状态不正确 status={} ", status); - return Resp.fail(400, "该包件的状态不正确"); + } + }else{ + return doPackageInfo(orderStatusDTO, false, unitNo, status); } - // 查询系统的包件对象 - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(FactoryPackageEntity::getCode, unitNo); - FactoryPackageEntity factoryPackageEntity = factoryPackageService.getOne(lambdaQueryWrapper); - if (ObjectUtils.isNotNull(factoryPackageEntity)) { - // 推送数据 - String url = ouPaiProperties.getUri() + "tims_odata_api/api/odata/PackageFeedbackRecord"; - OpPackagePushLogEntity opPackagePushLogEntity = sendPushOuPaiData(factoryPackageEntity.getId(), url, 1, detailObject); - - if (opPackagePushLogEntity == null) { - log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate")); - } else { - if (opPackagePushLogEntity.getId().equals(-1L)) { - log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo); - opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); - } - // 需要盘点这个对象的 - String resp = opPackagePushLogEntity.getResp(); - log.info(" >>>>>>>>>>>>>>>>>>>>>>> 推送欧派返回数据 {}", resp); - // TODO: 2023/10/25 不知道返回成功的状态是多少 - // 需要修改包件对应的状态 - checkOpFactoryPackagePushStatus(factoryPackageEntity); - } - } - log.info(" >>>>>>>>>>>>>>>>>>>>>>> 物流状态传递成功"); - return Resp.success("物流状态传递成功"); + // 查询这个包件对应到新系统的订单 +// FactoryOrderEntity factoryOrder = factoryOrderService.selectEntityByOrderPackageCode(unitNo); +// +// if (Objects.isNull(factoryOrder)) { +// +// // 不是重试的时候,记录对应数据 +// log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo); +// opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); +// +// return Resp.fail(400, "未查询到该单据推送订单信息"); +// } +// // 如何判断这个包间是非干仓配的数据 +// +// if (!"经销商".equals(factoryOrder.getBusinessModel())) { +// log.info("oupai- 该包条为干仓配的数据类型 不进行推送 >>> unitNo={} businessModel:{}", unitNo, factoryOrder.getBusinessModel()); +// return Resp.fail(400, "包条为干仓配的数据类型"); +// } +// +// boolean isPushHtNomal = checkOpfactoryOrderBusinessModel(factoryOrder); +// if (isPushHtNomal) { +// log.info("oupai- 该包条为汇通使用欧派系统进行作业类型型 不进行推送 >>> unitNo={} businessModel:{}", unitNo, factoryOrder.getBusinessModel()); +// return Resp.fail(400, "该包条为汇通使用欧派系统进行作业类型"); +// } +// +// // 通过仓库编码查询 +// ReceivingOrderEntity receivingOrderEntity = receivingOrderMapper.selectById(factoryOrder.getReceivingId()); +// +// if (Objects.isNull(receivingOrderEntity)) { +// log.info(" 该订单为没有收货单 不进行推送 >>> receivingId={} ", factoryOrder.getReceivingId()); +// return Resp.fail(400, "未查询到该单据推送收货单信息"); +// } +// +// if (StringUtil.isBlank(receivingOrderEntity.getCurrentWarehouseOid())) { +// log.info(" 该订单为没有收货仓 不进行推送 >>> getCurrentWarehouseOid={} ", receivingOrderEntity.getCurrentWarehouseOid()); +// return Resp.fail(400, "收货仓信息不能为null"); +// } +// if (!receivingOrderEntity.getCurrentWarehouseName().contains("仓")) { +// log.info(" 该订单为没有收货仓信息不正确 getCurrentWarehouseName={} ", receivingOrderEntity.getCurrentWarehouseName()); +// return Resp.fail(400, "该订单为没有收货仓信息不正确"); +// } +// +// +// JSONObject detailObject = new JSONObject(); +// detailObject.put("WarehouseOid", receivingOrderEntity.getCurrentWarehouseOid()); +// detailObject.put("WarehouseBelong", "oppein"); +// detailObject.put("Creator", orderStatusDTO.getUsername()); +// detailObject.put("PackageCode", unitNo); +// // 增加当仓直接入库的 就没有卸车收货的状态 直接 进行入库 入库就表示货物进入当前仓库 +// if ("4".equals(status) || "1".equals(status)) { +// detailObject.put("Operate", "收货"); +// } else if ("7".equals(status)) { +// detailObject.put("Operate", "发货"); +// } else { +// log.info(" 该包件的状态不正确 status={} ", status); +// return Resp.fail(400, "该包件的状态不正确"); +// } +// +// // 查询系统的包件对象 +// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); +// lambdaQueryWrapper.eq(FactoryPackageEntity::getCode, unitNo); +// FactoryPackageEntity factoryPackageEntity = factoryPackageService.getOne(lambdaQueryWrapper); +// if (ObjectUtils.isNotNull(factoryPackageEntity)) { +// // 推送数据 +// String url = ouPaiProperties.getUri() + "tims_odata_api/api/odata/PackageFeedbackRecord"; +// OpPackagePushLogEntity opPackagePushLogEntity = sendPushOuPaiData(factoryPackageEntity.getId(), url, 1, detailObject); +// +// if (opPackagePushLogEntity == null) { +// log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate")); +// } else { +// +// if (opPackagePushLogEntity.getId().equals(-1L)) { +// log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo); +// opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); +// } +// +// // 需要盘点这个对象的 +// String resp = opPackagePushLogEntity.getResp(); +// +// log.info(" >>>>>>>>>>>>>>>>>>>>>>> 推送欧派返回数据 {}", resp); +// // TODO: 2023/10/25 不知道返回成功的状态是多少 +// // 需要修改包件对应的状态 +// checkOpFactoryPackagePushStatus(factoryPackageEntity); +// } +// } +// log.info(" >>>>>>>>>>>>>>>>>>>>>>> 物流状态传递成功"); +// return Resp.success("物流状态传递成功"); } /** From c8de296e439889a2f1a2562e4396b65096723d34 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Fri, 20 Sep 2024 15:36:05 +0800 Subject: [PATCH 57/73] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0=E4=B8=89=E6=96=B9?= =?UTF-8?q?=E7=89=A9=E6=B5=81=E9=99=90=E5=88=B6=E7=89=A9=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/BasicdataFactoryCategoryImporter.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java index d4413e643..d1961a497 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java @@ -94,7 +94,7 @@ public class BasicdataFactoryCategoryImporter implements ExcelImporter Date: Fri, 20 Sep 2024 18:28:21 +0800 Subject: [PATCH 58/73] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=95=86=E5=AE=B6?= =?UTF-8?q?=E9=A2=84=E5=85=A5=E5=BA=93=E6=95=B0=E9=87=8F=E7=9A=84=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/IBasicdataDriverArteryClient.java | 2 +- .../logpm/business/mapper/BusinessPreOrderMapper.xml | 12 ++++++------ .../mapper/DistributionLoadscanMapper.xml | 2 +- .../receiver/BusinessPreOrderDataQueueHandler.java | 2 +- .../logpm/trunkline/service/IInComingService.java | 1 - 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataDriverArteryClient.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataDriverArteryClient.java index afb93c778..4b4bd3fde 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataDriverArteryClient.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataDriverArteryClient.java @@ -62,7 +62,7 @@ public interface IBasicdataDriverArteryClient { List findDriverListByName(@RequestParam String driverName,@RequestParam String jobType); @GetMapping(API_PREFIX+"/getDriverArteryById") - BasicdataDriverArteryEntity getDriverArteryById(Long id); + BasicdataDriverArteryEntity getDriverArteryById(@RequestParam Long id); @GetMapping(API_PREFIX+"/findDriverListByNameAndWarehouseId") List findDriverListByNameAndWarehouseId(@RequestParam String driverName, @RequestParam String jobType, @RequestParam Long warehouseId); diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/mapper/BusinessPreOrderMapper.xml b/blade-service/logpm-business/src/main/java/com/logpm/business/mapper/BusinessPreOrderMapper.xml index ebb5382f5..22742a6e4 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/mapper/BusinessPreOrderMapper.xml +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/mapper/BusinessPreOrderMapper.xml @@ -190,9 +190,9 @@ driver_name, task_time, COUNT(DISTINCT order_code) as orderCount, - COUNT(DISTINCT order_package_code) as orderPackageCodeCount, - sum(case when order_package_loading_status =20 then 1 else 0 end ) as loadCarCount, - sum(case when in_warehouse =1 then 1 else 0 end ) as inWarehouseCount + sum( quantity ) as orderPackageCodeCount, + sum( load_num ) as loadCarCount, + sum( unload_num ) as inWarehouseCount from logpm_business_pre_order @@ -218,9 +218,9 @@ driver_name, task_time, COUNT(DISTINCT order_code) as orderCount, - COUNT(DISTINCT order_package_code) as orderPackageCodeCount, - sum(case when order_package_loading_status =20 then 1 else 0 end ) as loadCarCount, - sum(case when in_warehouse =1 then 1 else 0 end ) as inWarehouseCount + sum(quantity) as orderPackageCodeCount, + sum(load_num ) as loadCarCount, + sum(unload_num ) as inWarehouseCount from logpm_business_pre_order is_deleted=0 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml index 052dedb44..624af3045 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.xml @@ -154,6 +154,6 @@ FROM logpm_distribution_loadscan WHERE - reservation_id = #{reservationId} AND parcel_list_id = #{parcelListId} + reservation_id = #{reservationId} AND package_id = #{parcelListId} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/BusinessPreOrderDataQueueHandler.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/BusinessPreOrderDataQueueHandler.java index 9bc45782b..308d9d459 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/BusinessPreOrderDataQueueHandler.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/BusinessPreOrderDataQueueHandler.java @@ -146,7 +146,7 @@ public class BusinessPreOrderDataQueueHandler { //设置装车数量 data.setLoadNum(distributionLoadscanEntity.getLoadedNub()); } - + data.setConditions(3); data.setDriverName(distributionDeliveryListEntity.getDriverName()); data.setVehicleName(distributionDeliveryListEntity.getVehicleName()); data.setDistrCarNumber(distributionDeliveryListEntity.getTrainNumber()); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IInComingService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IInComingService.java index 1af3368d7..671c48edd 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IInComingService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IInComingService.java @@ -11,7 +11,6 @@ public interface IInComingService { R incomingPackages(InComingDTO inComingDTO); - @Transactional(rollbackFor = Exception.class) R incomingPackageByTaryCode(InComingDTO inComingDTO); R findIncomingOrderList(InComingDTO inComingDTO); From 90cdf99a515ffe9baa6b7a0a654ad8ad9c723918 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Sat, 21 Sep 2024 10:19:42 +0800 Subject: [PATCH 59/73] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E7=9A=84=E5=88=A4=E6=96=AD=E8=A7=84=E5=88=99=20=E6=88=90?= =?UTF-8?q?=E6=9C=AC=E6=88=96=E8=80=85=E6=94=B6=E5=85=A5=E7=9A=84=E9=99=90?= =?UTF-8?q?=E5=88=B6=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/BasicdataFactoryCategoryImporter.java | 5 +++++ .../business/mapper/BusinessPreOrderMapper.xml | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java index d1961a497..0bad06bc2 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/excel/BasicdataFactoryCategoryImporter.java @@ -110,6 +110,9 @@ public class BasicdataFactoryCategoryImporter implements ExcelImporter @@ -177,6 +178,18 @@ and order_code LIKE CONCAT(#{distributionBusinessPreOrderDTO.orderCode},'%') + + AND task_time > #{distributionBusinessPreOrderDTO.taskTimeStart} + + + AND task_time < #{distributionBusinessPreOrderDTO.taskTimeEnd} + + + + AND driver_name =#{distributionBusinessPreOrderDTO.driverName} + + + GROUP BY distr_car_number, From 9b3701787634323d1cd1c3a4a10666d1a4f4c7b6 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Sat, 21 Sep 2024 14:47:14 +0800 Subject: [PATCH 60/73] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0=E5=95=86=E5=AE=B6?= =?UTF-8?q?=E7=AB=AF=E7=9A=84PC=E5=85=A5=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DistributionBusinessPreCarNumberVO.java | 4 ++ ...istributionBusinessPreOrderController.java | 20 ++++-- .../mapper/BusinessPreOrderMapper.xml | 21 +++--- .../service/IBusinessPreOrderService.java | 6 ++ .../impl/BusinessPreOrderServiceImpl.java | 69 +++++++++++++++++++ 5 files changed, 108 insertions(+), 12 deletions(-) diff --git a/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarNumberVO.java b/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarNumberVO.java index 3b03f44c0..be5420183 100644 --- a/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarNumberVO.java +++ b/blade-service-api/logpm-business-api/src/main/java/com/logpm/business/vo/DistributionBusinessPreCarNumberVO.java @@ -24,5 +24,9 @@ public class DistributionBusinessPreCarNumberVO { @ApiModelProperty(value = "待入库件数") private Integer restNum; + @ApiModelProperty(value = "配送司机") + private String driverName; + @ApiModelProperty(value = "配送时间") + private String taskTime; } diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/controller/DistributionBusinessPreOrderController.java b/blade-service/logpm-business/src/main/java/com/logpm/business/controller/DistributionBusinessPreOrderController.java index 141c3ed59..a56ccf6f0 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/controller/DistributionBusinessPreOrderController.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/controller/DistributionBusinessPreOrderController.java @@ -14,12 +14,10 @@ import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import java.util.List; import java.util.Map; @RestController @@ -72,6 +70,20 @@ public class DistributionBusinessPreOrderController extends BladeController { } + @PostMapping("/inOrderByZero") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "页面ID", notes = "传入distributionDeliveryList") + public R inOrderByZero(@ApiParam(value = "主键集合", required = true) @RequestBody List businessPreOrderList) { + try { + Boolean isSuccess = distributionIBusinessPreOrderService.inOrderByZero(businessPreOrderList); + return R.data(isSuccess); + }catch (Exception e){ + log.error("预入库信息入库失败",e); + return R.fail(500,e.getMessage()); + } + + } + diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/mapper/BusinessPreOrderMapper.xml b/blade-service/logpm-business/src/main/java/com/logpm/business/mapper/BusinessPreOrderMapper.xml index 6baea708a..f4c61e240 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/mapper/BusinessPreOrderMapper.xml +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/mapper/BusinessPreOrderMapper.xml @@ -109,6 +109,10 @@ AND in_warehouse = #{param.inWarehouse} + + AND conditions = #{param.conditions} + + @@ -159,11 +163,13 @@ + select order_code + from logpm_distribution_parcel_list + where waybill_id = #{waybillId} + group by order_code + + + + update logpm_distribution_parcel_list + set waybill_id = null, + waybill_number = null, + send_warehouse_id = null, + send_warehouse_id = null, + accept_warehouse_id = null, + accept_warehouse_name = null + where id in + + #{item} + + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationStockarticleMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationStockarticleMapper.java index 2d725a81f..3ab48df59 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationStockarticleMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationStockarticleMapper.java @@ -16,7 +16,6 @@ */ package com.logpm.distribution.mapper; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.distribution.dto.DistributionReservationStockarticleDTO; @@ -83,4 +82,6 @@ public interface DistributionReservationStockarticleMapper extends BaseMapper findReservationIdsByOrderCodes(@Param("orderCodes") List orderCodes); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationStockarticleMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationStockarticleMapper.xml index 6b52e664a..c9b5a2eeb 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationStockarticleMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationStockarticleMapper.xml @@ -187,4 +187,16 @@ + + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java index b8832827b..2cc5760fd 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java @@ -262,4 +262,9 @@ public interface IDistributionParcelListService extends BaseService findListByStockArticleIds(List orderIdList); void updateWaybillIdByWaybillNo(Long waybillId, String waybillNo); + + List findOrderCodeByWaybillId(Long waybillId); + + void clearWaybillInfoByParceListIds(List parceListIds); + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationStockarticleService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationStockarticleService.java index f8b1b5083..e9c9dc843 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationStockarticleService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionReservationStockarticleService.java @@ -16,7 +16,6 @@ */ package com.logpm.distribution.service; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.distribution.entity.DistributionReservationStockarticleEntity; import com.logpm.distribution.excel.DistributionReservationStockarticleExcel; @@ -71,4 +70,6 @@ public interface IDistributionReservationStockarticleService extends BaseService * @param id */ void maintenanceReservationStockArticleNum(Long reservationId,Long orderId, Long warehouseId); + + List findReservationIdsByOrderCodes(List orderCodes); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java index cdc07db12..e5d550d7d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java @@ -1374,6 +1374,16 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl findOrderCodeByWaybillId(Long waybillId) { + return baseMapper.findOrderCodeByWaybillId(waybillId); + } + + @Override + public void clearWaybillInfoByParceListIds(List parceListIds) { + baseMapper.clearWaybillInfoByParceListIds(parceListIds); + } + private JSONObject handleLogJSONObject(BasicdataWarehouseEntity warehouse, BladeUser user, String orderPackageCode, String content, Integer node) { JSONObject trunklinePackageTrackLog = new JSONObject(); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationStockarticleServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationStockarticleServiceImpl.java index 5d2ff5086..9cd452cd8 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationStockarticleServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationStockarticleServiceImpl.java @@ -17,8 +17,6 @@ package com.logpm.distribution.service.impl; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.distribution.dto.DistributionReservationStockarticleDTO; @@ -35,8 +33,6 @@ import org.springblade.common.constant.DictBizConstant; import org.springblade.common.constant.common.IsOrNoConstant; import org.springblade.common.constant.reservation.ReservationOrderStatusConstant; import org.springblade.core.mp.base.BaseServiceImpl; -import org.springblade.core.mp.support.Condition; -import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.DictBizCache; import org.springframework.stereotype.Service; @@ -147,4 +143,9 @@ public class DistributionReservationStockarticleServiceImpl extends BaseServiceI } } + @Override + public List findReservationIdsByOrderCodes(List orderCodes) { + return baseMapper.findReservationIdsByOrderCodes(orderCodes); + } + } 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 988a38b99..0fd2b79b1 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 @@ -47,10 +47,12 @@ import com.logpm.distribution.vo.app.queryOrderVO; import com.logpm.distribution.wrapper.DistributionParcelListWrapper; import com.logpm.distribution.wrapper.DistributionStockArticleNewWrapper; import com.logpm.distribution.wrapper.DistributionStockArticleWrapper; +import com.logpm.warehouse.entity.WarehouseWayBillDetail; import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.feign.IWarehouseTrayGoodsClient; import com.logpm.warehouse.feign.IWarehouseUpdownGoodsClient; import com.logpm.warehouse.feign.IWarehouseWaybillClient; +import com.logpm.warehouse.feign.IWarehouseWaybillDetailClient; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.DictBizConstant; @@ -114,6 +116,7 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl selectDistributionStockArticlePage(IPage page, DistributionStockArticleVO distributionStockArticle) { @@ -2605,7 +2609,13 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl wayBillDetailList = warehouseWaybillDetailClient.findByWaybillId(warehouseWaybill.getId()); + List productsNumList = new ArrayList<>(); + wayBillDetailList.forEach(wayBillDetail -> { + productsNumList.add(wayBillDetail.getProductName() + "(" + wayBillDetail.getNum() + ")"); + }); + map.put("product", String.join(",",productsNumList)); map.put("remark", StringUtil.isBlank(remark) ? "" : remark); } diff --git a/blade-service/logpm-statisticsdata/pom.xml b/blade-service/logpm-statisticsdata/pom.xml index 85b99c3d2..2ad6ff796 100644 --- a/blade-service/logpm-statisticsdata/pom.xml +++ b/blade-service/logpm-statisticsdata/pom.xml @@ -69,6 +69,18 @@ logpm-distribution-api 3.2.0.RELEASE + + org.springblade + logpm-warehouse-api + 3.2.0.RELEASE + compile + + + org.springblade + logpm-trunkline-api + 3.2.0.RELEASE + compile + diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/controller/MerchantBalanceController.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/controller/MerchantBalanceController.java index 1126c8020..f358baf15 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/controller/MerchantBalanceController.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/controller/MerchantBalanceController.java @@ -108,7 +108,7 @@ public class MerchantBalanceController { @ResponseBody @PostMapping("/addBalanceRecord") @ApiOperationSupport(order = 1) - @ApiOperation(value = "添加结算揭露", notes = "传入balanceRecordDTO") + @ApiOperation(value = "添加结算记录", notes = "传入balanceRecordDTO") public R addBalanceRecord(@RequestBody StatisticsBalanceRecordDTO balanceRecordDTO) { String method = "############addBalanceRecord: "; log.info(method+"请求参数{}",balanceRecordDTO); diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/controller/MerchantStatisticsController.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/controller/MerchantStatisticsController.java index 882a270b2..60100695c 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/controller/MerchantStatisticsController.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/controller/MerchantStatisticsController.java @@ -1,26 +1,26 @@ package com.logpm.statistics.controller; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.statistics.dto.ChangesRecordDTO; import com.logpm.statistics.dto.MerchantStatisticsDTO; +import com.logpm.statistics.entity.StatisticsReconciliationOrderInfoEntity; import com.logpm.statistics.service.IStatisticsOrderInfoService; +import com.logpm.statistics.service.IStatisticsReconciliationOrderInfoService; import com.logpm.statistics.vo.StatisticsChangesRecordVO; +import com.logpm.statistics.vo.StatisticsOrderInfoExportVO; import com.logpm.statistics.vo.StatisticsOrderInfoVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.exception.CustomerException; +import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.tool.api.R; -import org.springframework.web.bind.annotation.PatchMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Objects; @@ -32,11 +32,12 @@ import java.util.Objects; public class MerchantStatisticsController { private final IStatisticsOrderInfoService statisticsOrderInfoService; + private final IStatisticsReconciliationOrderInfoService reconciliationOrderInfoService; @ResponseBody @PostMapping("/pageList") @ApiOperationSupport(order = 1) - @ApiOperation(value = "运单维度对账单", notes = "传入merchantStatisticsDTO") + @ApiOperation(value = "预对账单列表", notes = "传入merchantStatisticsDTO") public R pageList(@RequestBody MerchantStatisticsDTO merchantStatisticsDTO) { String method = "############pageList: "; log.info(method + "请求参数{}", merchantStatisticsDTO); @@ -60,21 +61,94 @@ public class MerchantStatisticsController { } } + + @ResponseBody + @PostMapping("/orderInfoListExport") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "预对账单列表导出", notes = "传入merchantStatisticsDTO") + public void orderInfoListExport(@RequestBody MerchantStatisticsDTO merchantStatisticsDTO, HttpServletResponse response) { + String method = "############orderInfoListExport: "; + log.info(method + "请求参数{}", merchantStatisticsDTO); + + List ls = statisticsOrderInfoService.orderInfoListExport(merchantStatisticsDTO); + //导出ls + ExcelUtil.export(response, "预对账单数据", "预对账单数据", ls, StatisticsOrderInfoExportVO.class); + } + + @ResponseBody + @PostMapping("/createReconciliationOrder") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "创建对账单", notes = "传入merchantStatisticsDTO") + public R createReconciliationOrder(@RequestBody MerchantStatisticsDTO merchantStatisticsDTO) { + String method = "############createReconciliationOrder: "; + log.info(method + "请求参数{}", merchantStatisticsDTO); + try { + List orderInfoIds = merchantStatisticsDTO.getOrderInfoIds(); + if (CollUtil.isEmpty(orderInfoIds)) { + log.warn(method + "请选择正确的订单 merchantStatisticsDTO={}", merchantStatisticsDTO); + return R.fail(405, "请选择正确的订单"); + } + + return statisticsOrderInfoService.createReconciliationOrder(orderInfoIds); + } 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("/pageReconciliationList") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "对账单列表", notes = "传入merchantStatisticsDTO") + public R pageReconciliationList(@RequestBody MerchantStatisticsDTO merchantStatisticsDTO) { + String method = "############pageReconciliationList: "; + log.info(method + "请求参数{}", merchantStatisticsDTO); + try { + + IPage pages = reconciliationOrderInfoService.pageReconciliationList(merchantStatisticsDTO); + + return R.data(pages); + } 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("/reconciliationListExport") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "对账单列表导出", notes = "传入merchantStatisticsDTO") + public void reconciliationListExport(@RequestBody MerchantStatisticsDTO merchantStatisticsDTO, HttpServletResponse response) { + String method = "############orderInfoListExport: "; + log.info(method + "请求参数{}", merchantStatisticsDTO); + //TODO 做到这个了 +// List ls = reconciliationOrderInfoService.reconciliationListExport(merchantStatisticsDTO); +// //导出ls +// ExcelUtil.export(response, "对账单数据", "对账单数据", ls, StatisticsReconciliationOrderInfoExportVO.class); + } + + @ResponseBody @PostMapping("/findOrderDetail") @ApiOperationSupport(order = 1) - @ApiOperation(value = "查询订单详情", notes = "传入merchantStatisticsDTO") + @ApiOperation(value = "查询对账单订单详情", notes = "传入merchantStatisticsDTO") public R findOrderDetail(@RequestBody MerchantStatisticsDTO merchantStatisticsDTO) { String method = "############findOrderDetail: "; log.info(method + "请求参数{}", merchantStatisticsDTO); try { - Long orderInfoId = merchantStatisticsDTO.getOrderInfoId(); - if (Objects.isNull(orderInfoId)) { - log.warn(method + "请选择正确的订单 orderInfoId={}", orderInfoId); - return R.fail(405, "请选择正确的订单"); + Long reconciliationOrderId = merchantStatisticsDTO.getReconciliationOrderId(); + if (Objects.isNull(reconciliationOrderId)) { + log.warn(method + "请选择正确的对账单 reconciliationOrderId={}", reconciliationOrderId); + return R.fail(405, "请选择正确的对账单"); } - StatisticsOrderInfoVO statisticsOrderInfoVO = statisticsOrderInfoService.findOrderDetail(orderInfoId); + List statisticsOrderInfoVO = statisticsOrderInfoService.findOrderDetail(reconciliationOrderId); return R.data(statisticsOrderInfoVO); } catch (CustomerException e) { @@ -86,6 +160,36 @@ public class MerchantStatisticsController { } } + @ResponseBody + @PostMapping("/cancleOrderInfoBindReconcilitionOrder") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "取消订单和对账单的绑定", notes = "传入merchantStatisticsDTO") + public R cancleOrderInfoBindReconcilitionOrder(@RequestBody MerchantStatisticsDTO merchantStatisticsDTO) { + String method = "############cancleOrderInfoBindReconcilitionOrder: "; + log.info(method + "请求参数{}", merchantStatisticsDTO); + try { + List orderInfoIds = merchantStatisticsDTO.getOrderInfoIds(); + Long reconciliationOrderId = merchantStatisticsDTO.getReconciliationOrderId(); + + if(Objects.isNull(reconciliationOrderId)){ + log.warn(method + "请选择正确的对账单 reconciliationOrderId={}", reconciliationOrderId); + return R.fail(405, "请选择正确的对账单"); + } + + if (CollUtil.isEmpty(orderInfoIds)) { + log.warn(method + "请选择正确的订单 merchantStatisticsDTO={}", merchantStatisticsDTO); + return R.fail(405, "请选择正确的订单"); + } + + return statisticsOrderInfoService.cancleOrderInfoBindReconcilitionOrder(reconciliationOrderId,orderInfoIds); + } 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("/findChangesRecordList") @@ -96,10 +200,10 @@ public class MerchantStatisticsController { log.info(method + "请求参数{}", merchantStatisticsDTO); try { - Long orderInfoId = merchantStatisticsDTO.getOrderInfoId(); - if (Objects.isNull(orderInfoId)) { - log.warn(method + "订单id为空 orderInfoId={}", orderInfoId); - return R.fail(405, "订单id为空"); + Long reconciliationOrderId = merchantStatisticsDTO.getReconciliationOrderId(); + if (Objects.isNull(reconciliationOrderId)) { + log.warn(method + "对账单id为空 reconciliationOrderId={}", reconciliationOrderId); + return R.fail(405, "对账单id为空"); } List list = statisticsOrderInfoService.findChangesRecordList(merchantStatisticsDTO); @@ -123,11 +227,10 @@ public class MerchantStatisticsController { String method = "############addChangesRecord: "; log.info(method + "请求参数{}", changesRecordDTO); try { - - Long orderInfoId = changesRecordDTO.getOrderInfoId(); - if (Objects.isNull(orderInfoId)) { - log.warn(method + "订单id为空 orderInfoId={}", orderInfoId); - return R.fail(405, "订单id为空"); + Long reconciliationOrderId = changesRecordDTO.getReconciliationOrderId(); + if (Objects.isNull(reconciliationOrderId)) { + log.warn(method + "对账单id为空 reconciliationOrderId={}", reconciliationOrderId); + return R.fail(405, "对账单id为空"); } Long statisticsWarehouseId = changesRecordDTO.getStatisticsWarehouseId(); @@ -147,6 +250,77 @@ public class MerchantStatisticsController { } } + @ResponseBody + @PostMapping("/findAftersalesOrderList") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查询售后单列表", notes = "传入MerchantStatisticsDTO merchantStatisticsDTO") + public R findAftersalesOrderList(@RequestBody MerchantStatisticsDTO merchantStatisticsDTO) { + String method = "############findAftersalesOrderList: "; + log.info(method + "请求参数{}", merchantStatisticsDTO); + try { + Long consigneeId = merchantStatisticsDTO.getConsigneeId(); + if (Objects.isNull(consigneeId)) { + log.warn(method + "商家id为空 consigneeId={}", consigneeId); + return R.fail(405, "商家id为空"); + } + return statisticsOrderInfoService.findAftersalesOrderList(consigneeId); + } 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("/addAftersalesToReconciliationOrder") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查询售后单列表", notes = "传入MerchantStatisticsDTO merchantStatisticsDTO") + public R addAftersalesToReconciliationOrder(@RequestBody MerchantStatisticsDTO merchantStatisticsDTO) { + String method = "############addAftersalesToReconciliationOrder: "; + log.info(method + "请求参数{}", merchantStatisticsDTO); + try { + Long reconciliationOrderId = merchantStatisticsDTO.getReconciliationOrderId(); + + if (Objects.isNull(reconciliationOrderId)) { + log.warn(method + "对账单id为空 reconciliationOrderId={}", reconciliationOrderId); + return R.fail(405, "对账单id为空"); + } + return statisticsOrderInfoService.addAftersalesToReconciliationOrder(merchantStatisticsDTO); + } 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("/findReconciliationOrderAftersalesOrder") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查询对账单的售后单列表", notes = "传入MerchantStatisticsDTO merchantStatisticsDTO") + public R findReconciliationOrderAftersalesOrder(@RequestBody MerchantStatisticsDTO merchantStatisticsDTO) { + String method = "############addAftersalesToReconciliationOrder: "; + log.info(method + "请求参数{}", merchantStatisticsDTO); + try { + Long reconciliationOrderId = merchantStatisticsDTO.getReconciliationOrderId(); + if (Objects.isNull(reconciliationOrderId)) { + log.warn(method + "对账单id为空 reconciliationOrderId={}", reconciliationOrderId); + return R.fail(405, "对账单id为空"); + } + return statisticsOrderInfoService.findReconciliationOrderAftersalesOrder(merchantStatisticsDTO); + } 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("/checkBalance") @@ -157,9 +331,9 @@ public class MerchantStatisticsController { log.info(method + "请求参数{}", merchantStatisticsDTO); try { - List orderInfoIds = merchantStatisticsDTO.getOrderInfoIds(); - if (orderInfoIds.isEmpty()) { - log.warn(method + "订单集合为空 orderInfoIds={}", orderInfoIds); + List reconciliationOrderIds = merchantStatisticsDTO.getReconciliationOrderIds(); + if (CollUtil.isEmpty(reconciliationOrderIds)) { + log.warn(method + "对账单集合为空 reconciliationOrderIds={}", reconciliationOrderIds); return R.fail(405, "订单集合为空"); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/feign/OrderInfoClient.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/feign/OrderInfoClient.java new file mode 100644 index 000000000..590b9204c --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/feign/OrderInfoClient.java @@ -0,0 +1,26 @@ +package com.logpm.statistics.feign; + +import com.logpm.statistics.service.IStatisticsOrderInfoService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + +@Slf4j +@ApiIgnore() +@RestController +@AllArgsConstructor +public class OrderInfoClient implements IOrderInfoClient{ + + private final IStatisticsOrderInfoService orderInfoService; + + + @Override + public Integer findCreateRencilitionOrderStatus(Long waybillId) { + + Integer rencilitionStatus = orderInfoService.findCreateRencilitionOrderStatus(waybillId); + + + return rencilitionStatus; + } +} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/PackageFanoutListener.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/PackageFanoutListener.java index 5c5eccb20..69637ae97 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/PackageFanoutListener.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/PackageFanoutListener.java @@ -92,16 +92,17 @@ public class PackageFanoutListener { } statisticsDistributionPackageEntity.setIsSign(1); statisticsDistributionPackageEntity.setSignTime(new Date()); - String typeService = statisticsDistributionPackageEntity.getTypeService(); - if ("3".equals(typeService)) { - statisticsDistributionPackageEntity.setRealDeliveryFee(BigDecimal.ZERO); - statisticsDistributionPackageEntity.setRealDeliveryDistance(BigDecimal.ZERO); - statisticsDistributionPackageEntity.setRealDeliveryCrossingFee(BigDecimal.ZERO); - statisticsDistributionPackageEntity.setRealDeliveryLoadingFee(BigDecimal.ZERO); - statisticsDistributionPackageEntity.setRealDeliveryMoveFee(BigDecimal.ZERO); - statisticsDistributionPackageEntity.setRealDeliveryServiceFee(BigDecimal.ZERO); - statisticsDistributionPackageEntity.setRealDeliverySortingFee(BigDecimal.ZERO); - statisticsDistributionPackageEntity.setRealDeliveryUpfloorFee(BigDecimal.ZERO); + Long orderInfoId = statisticsDistributionPackageEntity.getOrderInfoId(); + StatisticsOrderInfoEntity orderInfoEntity = statisticsOrderInfoService.getById(orderInfoId); + Integer typeService = orderInfoEntity.getTypeService(); + if (typeService == 3) { + statisticsDistributionPackageEntity.setDeliveryFee(BigDecimal.ZERO); + statisticsDistributionPackageEntity.setDeliveryCrossingFee(BigDecimal.ZERO); + statisticsDistributionPackageEntity.setDeliveryLoadingFee(BigDecimal.ZERO); + statisticsDistributionPackageEntity.setDeliveryMoveFee(BigDecimal.ZERO); + statisticsDistributionPackageEntity.setDeliveryServiceFee(BigDecimal.ZERO); + statisticsDistributionPackageEntity.setDeliverySortingFee(BigDecimal.ZERO); + statisticsDistributionPackageEntity.setDeliveryUpfloorFee(BigDecimal.ZERO); } orderInfoSet.add(statisticsDistributionPackageEntity.getOrderInfoId()); }); @@ -134,6 +135,7 @@ public class PackageFanoutListener { if (unSignSize == 0) { if (signStatus != 2) { statisticsOrderInfoEntity.setSignStatus(2); + } } else { if (unSignSize != allSize) { @@ -142,6 +144,7 @@ public class PackageFanoutListener { } } } + statisticsOrderInfoEntity.setSignDate(new Date()); updateOrderInfoList.add(statisticsOrderInfoEntity); }); diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCancleCheckListener.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCancleCheckListener.java new file mode 100644 index 000000000..e10fd4560 --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCancleCheckListener.java @@ -0,0 +1,60 @@ +package com.logpm.statistics.listener.mq; + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.logpm.statistics.entity.StatisticsOrderInfoEntity; +import com.logpm.statistics.service.IStatisticsDistributionPackageService; +import com.logpm.statistics.service.IStatisticsOrderInfoService; +import com.logpm.statistics.service.IStatisticsTrunklinePackageService; +import com.logpm.statistics.service.IStatisticsWarehousePackageService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.broadcast.FanoutConstants; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.stream.Collectors; + +@Slf4j +@Component +@AllArgsConstructor +public class WaybillCancleCheckListener { + + private final IStatisticsOrderInfoService statisticsOrderInfoService; + private final IStatisticsTrunklinePackageService trunklinePackageService; + private final IStatisticsWarehousePackageService warehousePackageService; + private final IStatisticsDistributionPackageService distributionPackageService; + + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = FanoutConstants.trunkline.CANCLECHECKWAYBILL.QUEUE.CANCLECHECKWAYBILL_INCOMINGDATA), + exchange = @Exchange(name = FanoutConstants.trunkline.CANCLECHECKWAYBILL.EXCHANGE, type = ExchangeTypes.FANOUT) + )) + @Transactional(rollbackFor = Exception.class) + public void cancleCheckWaybillIncomingData(String msg) { + log.info("#########cancleCheckWaybillIncomingData: 运单取消审核处理收入结算数据 开始 msg={}",msg); + JSONObject jsonObject = JSONUtil.parseObj(msg); + Long waybillId = jsonObject.getLong("waybillId"); + + //删除对应运单id的订单信息和包件信息 + List orderInfoEntityList = statisticsOrderInfoService.findListByWaybillId(waybillId); + //把orderInfoEntityList中所有元素的id放入一个集合 + List orderInfoIdsList = orderInfoEntityList.stream().map(StatisticsOrderInfoEntity::getId).collect(Collectors.toList()); + + //删除订单 + statisticsOrderInfoService.deleteListByOrderInfoIds(orderInfoIdsList); + //删除包件 + trunklinePackageService.deleteListByOrderInfoIds(orderInfoIdsList); + warehousePackageService.deleteListByOrderInfoIds(orderInfoIdsList); + distributionPackageService.deleteListByOrderInfoIds(orderInfoIdsList); + + log.info("#########cancleCheckWaybillIncomingData: 运单取消审核处理收入结算数据 结束 waybillId={}",waybillId); + } + + +} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java new file mode 100644 index 000000000..fd6ba3e19 --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java @@ -0,0 +1,763 @@ +package com.logpm.statistics.listener.mq; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.logpm.basicdata.feign.IBasicdataWarehouseClient; +import com.logpm.statistics.entity.*; +import com.logpm.statistics.service.*; +import com.logpm.statistics.vo.StatisticsPackageFeeInfoVO; +import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; +import com.logpm.trunkline.entity.TrunklineAdvanceEntity; +import com.logpm.trunkline.feign.ITrunklineAdvanceClient; +import com.logpm.trunkline.feign.ITrunklineAdvanceDetailClient; +import com.logpm.trunkline.feign.ITrunklineWaybillOrderClient; +import com.logpm.warehouse.entity.WarehouseWayBillDetail; +import com.logpm.warehouse.entity.WarehouseWaybillEntity; +import com.logpm.warehouse.feign.IWarehouseWaybillClient; +import com.logpm.warehouse.feign.IWarehouseWaybillDetailClient; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.broadcast.FanoutConstants; +import org.springblade.common.exception.CustomerException; +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; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +@Slf4j +@Component +@AllArgsConstructor +public class WaybillCheckListener { + + private final IBasicdataWarehouseClient basicdataWarehouseClient; + private final IWarehouseWaybillClient warehouseWaybillClient; + private final ITrunklineWaybillOrderClient trunklineWaybillOrderClient; + private final ITrunklineAdvanceClient trunklineAdvanceClient; + private final ITrunklineAdvanceDetailClient trunklineAdvanceDetailClient; + private final IStatisticsOrderInfoService statisticsOrderInfoService; + private final IWarehouseWaybillDetailClient warehouseWaybillDetailClient; + private final IStatisticsTrunklinePackageService trunklinePackageService; + private final IStatisticsWarehousePackageService warehousePackageService; + private final IStatisticsDistributionPackageService distributionPackageService; + private final IStatisticsBalanceOrderInfoService balanceOrderInfoService; + + @RabbitListener(bindings = @QueueBinding( + value = @Queue(name = FanoutConstants.trunkline.CHECKWAYBILL.QUEUE.CHECKWAYBILL_INCOMINGDATA), + exchange = @Exchange(name = FanoutConstants.trunkline.CHECKWAYBILL.EXCHANGE, type = ExchangeTypes.FANOUT) + )) + @Transactional(rollbackFor = Exception.class) + public void checkWaybillIncomingData(String msg) { + log.info("#########checkWaybillIncomingData: 运单审核处理收入结算数据 msg={}",msg); + JSONObject jsonObject = JSONUtil.parseObj(msg); + Long waybillId = jsonObject.getLong("waybillId"); + + WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId); + if(Objects.isNull(waybillEntity)){ + log.warn("###########checkWaybillIncomingData: 运单信息不存在 waybillId={}",waybillId); + throw new CustomerException(405, "运单信息不存在"); + } + + Integer waybillType = waybillEntity.getWaybillType(); + String payWay = waybillEntity.getPayWay(); + if(waybillType.equals(1)){ + //订制品(包含有数据库存品) + dealwithPackageOrder(waybillEntity); + + }else if(waybillType.equals(2)){ + //零担 + dealwithZeroOrder(waybillEntity); + + }else{ + log.warn("###############checkWaybillIncomingData: 运单类型不正确 waybillId={} waybillType={}",waybillId,waybillType); + } + + if(payWay.equals("1")||payWay.equals("2")){ + //如果是现付和到付需要直接生成结算单 + createBalanceOrder(waybillEntity); + } + log.info("#########checkWaybillIncomingData: 运单审核处理收入结算数据 结束 waybillId={}",waybillId); + } + + private void createBalanceOrder(WarehouseWaybillEntity waybillEntity) { + String waybillNo = waybillEntity.getWaybillNo(); + log.info("####################createBalanceOrder: 创建现付到付的结算单 waybillNo={}",waybillNo); + Long waybillId = waybillEntity.getId(); + +// List wayBillDetailList = warehouseWaybillDetailClient.findByWaybillId(waybillId); + //把wayBillDetailList中所有productName用逗号拼起来 +// String productTypeNum = wayBillDetailList.stream().map(t->t.getProductName()+"("+t.getNum()+")").collect(Collectors.joining(",")); +// String productTypePrice = wayBillDetailList.stream().map(t->t.getProductName()+"("+t.getPrice()+")").collect(Collectors.joining(",")); + + List orderInfoEntityList = statisticsOrderInfoService.findListByWaybillId(waybillId); + //把orderInfoEntityList中所有id放入一个list,以便查询所有包件信息 + List orderInfoIdsList = orderInfoEntityList.stream().map(StatisticsOrderInfoEntity::getId).collect(Collectors.toList()); + + StatisticsPackageFeeInfoVO trunklinePackageFeeVO = statisticsOrderInfoService.findPackageListByOrderIds(orderInfoIdsList); + + String balanceOrderCode = "JSD"+new Date().getTime(); + + BigDecimal freightPrice = trunklinePackageFeeVO.getFreightPrice(); + BigDecimal pickupPrice = trunklinePackageFeeVO.getPickupPrice(); + BigDecimal warehouseServiceFee = trunklinePackageFeeVO.getWarehouseServiceFee(); + BigDecimal deliveryServiceFee = trunklinePackageFeeVO.getDeliveryServiceFee(); + BigDecimal totalFee = freightPrice.add(pickupPrice).add(warehouseServiceFee).add(deliveryServiceFee); + + StatisticsBalanceOrderInfoEntity balanceOrderInfoEntity = new StatisticsBalanceOrderInfoEntity(); + balanceOrderInfoEntity.setBalanceOrderNo(balanceOrderCode); + balanceOrderInfoEntity.setBrand(waybillEntity.getBrand()); + balanceOrderInfoEntity.setWaybillNo(waybillNo); + //把orderInfoEntityList中所有orderCode用逗号拼起来 + balanceOrderInfoEntity.setOrderCode(orderInfoEntityList.stream().map(StatisticsOrderInfoEntity::getOrderCode).collect(Collectors.joining(","))); + balanceOrderInfoEntity.setTypeService(waybillEntity.getServiceType()); + + balanceOrderInfoEntity.setTotalBalanceFee(totalFee); + balanceOrderInfoEntity.setRealTotalFee(totalFee); + balanceOrderInfoEntity.setTotalCount(trunklinePackageFeeVO.getTotalNum()); + balanceOrderInfoEntity.setTotalWeight(trunklinePackageFeeVO.getTotalWeight()); + balanceOrderInfoEntity.setTotalVolume(trunklinePackageFeeVO.getTotalVolume()); + balanceOrderInfoEntity.setConsigneeId(waybillEntity.getConsigneeId()); + balanceOrderInfoEntity.setConsignee(waybillEntity.getConsignee()); + balanceOrderInfoEntity.setPickupFee(pickupPrice); + balanceOrderInfoEntity.setFreightFee(freightPrice); + balanceOrderInfoEntity.setWarehouseServiceFee(warehouseServiceFee); + balanceOrderInfoEntity.setWarehouseFee(trunklinePackageFeeVO.getWarehouseFee()); + balanceOrderInfoEntity.setWarehouseManageFee(trunklinePackageFeeVO.getWarehouseManageFee()); + balanceOrderInfoEntity.setWarehouseSortingFee(trunklinePackageFeeVO.getWarehouseSortingFee()); + balanceOrderInfoEntity.setWarehouseOperatingFee(trunklinePackageFeeVO.getWarehouseOperatingFee()); + balanceOrderInfoEntity.setDeliveryFee(trunklinePackageFeeVO.getDeliveryFee()); + balanceOrderInfoEntity.setDeliveryServiceFee(deliveryServiceFee); + balanceOrderInfoEntity.setDeliveryLoadingFee(trunklinePackageFeeVO.getDeliveryLoadingFee()); + balanceOrderInfoEntity.setDeliverySortingFee(trunklinePackageFeeVO.getDeliverySortingFee()); + balanceOrderInfoEntity.setDeliveryUpfloorFee(trunklinePackageFeeVO.getDeliveryUpfloorFee()); + balanceOrderInfoEntity.setDeliveryMoveFee(trunklinePackageFeeVO.getDeliveryMoveFee()); + balanceOrderInfoEntity.setDeliveryCrossingFee(trunklinePackageFeeVO.getDeliveryCrossingFee()); + balanceOrderInfoEntity.setDeliveryOtherFee(trunklinePackageFeeVO.getDeliveryOtherFee()); + balanceOrderInfoEntity.setOtherFee(BigDecimal.ZERO); + balanceOrderInfoEntity.setInstallFee(BigDecimal.ZERO); + + balanceOrderInfoEntity.setIsAftersale(0); + balanceOrderInfoEntity.setAftersalesFee(BigDecimal.ZERO); + + balanceOrderInfoEntity.setBalanceStatus(0); + + balanceOrderInfoEntity.setHasBalanceFee(BigDecimal.ZERO); + balanceOrderInfoEntity.setNoBalanceFee(totalFee); + balanceOrderInfoEntity.setAbnormalBalanceStatus(0); + balanceOrderInfoEntity.setAbnormalBalanceFee(BigDecimal.ZERO); + + boolean saveFlag = balanceOrderInfoService.save(balanceOrderInfoEntity); + if(saveFlag){ + Long balanceOrderId = balanceOrderInfoEntity.getId(); + List updateOrderInfoList = new ArrayList<>(); + orderInfoEntityList.forEach(orderInfoEntity -> { + StatisticsOrderInfoEntity updateEntity = new StatisticsOrderInfoEntity(); + updateEntity.setId(orderInfoEntity.getId()); + updateEntity.setBalanceOrderId(balanceOrderId); + updateEntity.setBalanceOrderNo(balanceOrderCode); + updateEntity.setCreateReconciliationOrderStatus(1); + updateEntity.setCreateReconciliationUserName(AuthUtil.getNickName()); + updateEntity.setCreateReconciliationDate(new Date()); + updateEntity.setConfirmBalanceOrderStatus(1); + updateEntity.setConfirmBalanceDate(new Date()); + updateEntity.setConfirmBalanceUserName(AuthUtil.getNickName()); + updateOrderInfoList.add(updateEntity); + }); + if(CollUtil.isNotEmpty(updateOrderInfoList)){ + statisticsOrderInfoService.updateBatchById(updateOrderInfoList); + } + } + } + + private void dealwithZeroOrder(WarehouseWaybillEntity waybillEntity) { + String waybillNo = waybillEntity.getWaybillNo(); + log.info("############dealwithZeroOrder: 处理零担信息 waybillNo={}",waybillNo); + Long waybillId = waybillEntity.getId(); + String brand = waybillEntity.getBrand(); + Long brandId = waybillEntity.getBrandId(); + Long consigneeId = waybillEntity.getConsigneeId(); + String consignee = waybillEntity.getConsignee(); + Integer serviceType = waybillEntity.getServiceType(); + String payWay = waybillEntity.getPayWay(); + Long departureWarehouseId = waybillEntity.getDepartureWarehouseId(); + String departureWarehouseName = waybillEntity.getDepartureWarehouseName(); + Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId(); + String destinationWarehouseName = waybillEntity.getDestinationWarehouseName(); + + // BigDecimal pickupFee = Objects.isNull(waybillEntity.getPickupFee())?BigDecimal.ZERO:waybillEntity.getPickupFee(); + BigDecimal warehouseManagementFee = Objects.isNull(waybillEntity.getWarehouseManagementFee())?BigDecimal.ZERO:waybillEntity.getWarehouseManagementFee(); + BigDecimal warehouseFee = Objects.isNull(waybillEntity.getStorageFee())?BigDecimal.ZERO:waybillEntity.getStorageFee(); + BigDecimal handlingFee = Objects.isNull(waybillEntity.getHandlingFee())?BigDecimal.ZERO:waybillEntity.getHandlingFee(); + BigDecimal insuranceFee = Objects.isNull(waybillEntity.getInsuranceFee())?BigDecimal.ZERO:waybillEntity.getInsuranceFee(); + BigDecimal otherFee = Objects.isNull(waybillEntity.getOtherFee())?BigDecimal.ZERO:waybillEntity.getOtherFee(); + BigDecimal thirdOperationFee = Objects.isNull(waybillEntity.getThirdOperationFee())?BigDecimal.ZERO:waybillEntity.getThirdOperationFee(); + Integer totalCount = waybillEntity.getTotalCount(); + +// BigDecimal pickupPrice = pickupFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal warehouseManagementPrice = warehouseManagementFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal warehousePrice = warehouseFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal handlingPrice = handlingFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal insurancePrice = insuranceFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal otherPrice = otherFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal thirdOperationPrice = thirdOperationFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + + //查询运单明细 + List wayBillDetailList = warehouseWaybillDetailClient.findByWaybillId(waybillId); + + //保存订单信息 + List orderInfoEntities = new ArrayList<>(); + + StatisticsOrderInfoEntity orderInfoEntity = new StatisticsOrderInfoEntity(); + orderInfoEntity.setOrderCode(waybillNo); + orderInfoEntity.setWaybillId(waybillId); + orderInfoEntity.setWaybillNo(waybillNo); + orderInfoEntity.setBrandId(brandId); + orderInfoEntity.setBrand(brand); + orderInfoEntity.setConsigneeId(consigneeId); + orderInfoEntity.setConsignee(consignee); + orderInfoEntity.setTypeService(serviceType); + orderInfoEntity.setSignStatus(0); + orderInfoEntity.setSyncFeeStatus(0); + orderInfoEntity.setCreateReconciliationOrderStatus(0); + orderInfoEntity.setConfirmBalanceOrderStatus(0); + orderInfoEntity.setDepartureWarehouseId(departureWarehouseId); + orderInfoEntity.setDepartureWarehouseName(departureWarehouseName); + orderInfoEntity.setDestinationWarehouseId(destinationWarehouseId); + orderInfoEntity.setDestinationWarehouseName(destinationWarehouseName); + orderInfoEntities.add(orderInfoEntity); + + boolean b = statisticsOrderInfoService.saveBatch(orderInfoEntities); + if(b){ + + Long orderId = orderInfoEntity.getId(); + + List trunklinePackageEntities = new ArrayList<>(); + List warehousePackageEntities = new ArrayList<>(); + List distributionPackageEntities = new ArrayList<>(); + + + wayBillDetailList.forEach(wayBillDetail->{ + Long productId = wayBillDetail.getProductId(); + String productName = wayBillDetail.getProductName(); + Integer num = wayBillDetail.getNum(); + BigDecimal weight = wayBillDetail.getWeight(); + BigDecimal volume = wayBillDetail.getVolume(); + + + //干线信息 + StatisticsTrunklinePackageEntity trunklinePackageEntity = new StatisticsTrunklinePackageEntity(); + trunklinePackageEntity.setWaybillId(waybillId); + trunklinePackageEntity.setWaybillNo(waybillNo); + trunklinePackageEntity.setOrderCode(waybillNo); + trunklinePackageEntity.setNum(num); + trunklinePackageEntity.setWeight(Objects.isNull(weight)?BigDecimal.ZERO:weight); + trunklinePackageEntity.setVolume(Objects.isNull(volume)?BigDecimal.ZERO:volume); + trunklinePackageEntity.setGoodsType(2); + trunklinePackageEntity.setOrderInfoId(orderId); + trunklinePackageEntity.setProductId(productId); + trunklinePackageEntity.setProductName(productName); + trunklinePackageEntity.setInsurancePrice(insurancePrice.multiply(new BigDecimal(num))); + trunklinePackageEntity.setOtherPrice(otherPrice.multiply(new BigDecimal(num))); + trunklinePackageEntity.setThirdOperationPrice(thirdOperationPrice.multiply(new BigDecimal(num))); + + + BigDecimal systemFreightPrice = wayBillDetail.getFreightPrice(); + BigDecimal price = wayBillDetail.getPrice(); + BigDecimal systemPickupPrice = wayBillDetail.getPickupPrice(); + + Integer chargeType = wayBillDetail.getChargeType(); + Integer systemChargeType = wayBillDetail.getSystemChargeType(); + Integer systemPickupChargeType = wayBillDetail.getSystemPickupChargeType(); + Integer systemWarehouseChargeType = wayBillDetail.getSystemWarehouseChargeType(); + Integer systemDeliveryChargeType = wayBillDetail.getSystemDeliveryChargeType(); + + if(systemChargeType == 1){ + trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(new BigDecimal(num))); + }else if(systemChargeType == 2){ + trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(trunklinePackageEntity.getWeight())); + }else if (systemChargeType == 3){ + trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(trunklinePackageEntity.getVolume())); + } + + if(chargeType == 1){ + trunklinePackageEntity.setFreightPrice(price.multiply(new BigDecimal(num))); + }else if(chargeType == 2){ + trunklinePackageEntity.setFreightPrice(price.multiply(trunklinePackageEntity.getWeight())); + }else if (chargeType == 3){ + trunklinePackageEntity.setFreightPrice(price.multiply(trunklinePackageEntity.getVolume())); + } + + if(systemPickupChargeType == 1){ + trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(new BigDecimal(num))); + trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(new BigDecimal(num))); + }else if(systemPickupChargeType == 2){ + trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getWeight())); + trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getWeight())); + }else if (systemPickupChargeType == 3){ + trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getVolume())); + trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getVolume())); + } + + trunklinePackageEntity.setInsurancePrice(insurancePrice.multiply(new BigDecimal(num))); + + BigDecimal systemFreightPriceTotal = trunklinePackageEntity.getSystemFreightPrice(); + BigDecimal freightPriceTotal = trunklinePackageEntity.getFreightPrice(); + BigDecimal systemPickupPriceTotal = trunklinePackageEntity.getSystemPickupPrice(); + BigDecimal pickupPriceTotal = trunklinePackageEntity.getPickupPrice(); + BigDecimal insurancePriceTotal = trunklinePackageEntity.getInsurancePrice(); + BigDecimal otherPriceTotal = trunklinePackageEntity.getOtherPrice(); + BigDecimal thirdOperationPriceTotal = trunklinePackageEntity.getThirdOperationPrice(); + + + BigDecimal totalSystemFee = systemFreightPriceTotal.add(systemPickupPriceTotal).add(insurancePriceTotal).add(otherPriceTotal).add(thirdOperationPriceTotal); + trunklinePackageEntity.setTotalSystemFee(totalSystemFee); + BigDecimal totalRealFee = freightPriceTotal.add(pickupPriceTotal).add(insurancePriceTotal).add(otherPriceTotal).add(thirdOperationPriceTotal); + trunklinePackageEntity.setTotalRealFee(totalRealFee); + trunklinePackageEntity.setBrandId(brandId); + trunklinePackageEntity.setConsigneeId(consigneeId); + trunklinePackageEntities.add(trunklinePackageEntity); + + //仓库收入 + StatisticsWarehousePackageEntity warehousePackageEntity = new StatisticsWarehousePackageEntity(); + warehousePackageEntity.setWaybillId(waybillId); + warehousePackageEntity.setWaybillNo(waybillNo); + warehousePackageEntity.setOrderCode(waybillNo); + warehousePackageEntity.setProductName(productName); + warehousePackageEntity.setProductId(productId); + warehousePackageEntity.setNum(num); + warehousePackageEntity.setWeight(weight); + warehousePackageEntity.setVolume(volume); + warehousePackageEntity.setWarehouseFee(warehousePrice.multiply(new BigDecimal(num))); + warehousePackageEntity.setWarehouseManageFee(warehouseManagementPrice.multiply(new BigDecimal(num))); + warehousePackageEntity.setWarehouseSortingFee(BigDecimal.ZERO); + warehousePackageEntity.setWarehouseOperatingFee(BigDecimal.ZERO); + warehousePackageEntity.setGoodsType(2); + warehousePackageEntity.setOrderInfoId(orderId); + warehousePackageEntity.setBrandId(brandId); + warehousePackageEntity.setConsigneeId(consigneeId); + +// if(systemWarehouseChargeType == 1){ +// warehousePackageEntity.setWarehouseManageFee(warehouseManagementPrice.multiply(new BigDecimal(num))); +// }else if(systemWarehouseChargeType == 2){ +// warehousePackageEntity.setWarehouseManageFee(warehouseManagementPrice.multiply(weight)); +// }else if (systemWarehouseChargeType == 3){ +// warehousePackageEntity.setWarehouseManageFee(warehouseManagementPrice.multiply(volume)); +// } + + BigDecimal warehouseManageFeeTotal = warehousePackageEntity.getWarehouseManageFee(); + BigDecimal warehouseFeeTotal = warehousePackageEntity.getWarehouseFee(); + BigDecimal warehouseSortingFeeTotal = warehousePackageEntity.getWarehouseSortingFee(); + BigDecimal warehouseOperatingFeeTotal = warehousePackageEntity.getWarehouseOperatingFee(); + + BigDecimal warehouseServiceFeeTotal = warehouseManageFeeTotal.add(warehouseFeeTotal).add(warehouseSortingFeeTotal).add(warehouseOperatingFeeTotal); + warehousePackageEntity.setWarehouseServiceFee(warehouseServiceFeeTotal); + warehousePackageEntities.add(warehousePackageEntity); + + //配送包件信息 + StatisticsDistributionPackageEntity distributionPackageEntity = new StatisticsDistributionPackageEntity(); + distributionPackageEntity.setWaybillId(waybillId); + distributionPackageEntity.setWaybillNo(waybillNo); + distributionPackageEntity.setOrderCode(waybillNo); + distributionPackageEntity.setNum(num); + distributionPackageEntity.setWeight(Objects.isNull(weight)?BigDecimal.ZERO:weight); + distributionPackageEntity.setVolume(Objects.isNull(volume)?BigDecimal.ZERO:volume); + distributionPackageEntity.setGoodsType(2); + distributionPackageEntity.setOrderInfoId(orderId); + distributionPackageEntity.setDeliveryLoadingFee(handlingPrice.multiply(new BigDecimal(num))); + distributionPackageEntity.setDeliverySortingFee(BigDecimal.ZERO); + distributionPackageEntity.setDeliveryUpfloorFee(BigDecimal.ZERO); + distributionPackageEntity.setDeliveryMoveFee(BigDecimal.ZERO); + distributionPackageEntity.setDeliveryOtherFee(BigDecimal.ZERO); + distributionPackageEntity.setDeliveryCrossingFee(BigDecimal.ZERO); + distributionPackageEntity.setSignNum(0); + distributionPackageEntity.setIsSign(0); + distributionPackageEntity.setBrandId(brandId); + distributionPackageEntity.setConsigneeId(consigneeId); + BigDecimal systemDeliveryPrice = wayBillDetail.getDeliveryPrice(); + distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice); + + if(systemDeliveryChargeType == 1){ + distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(new BigDecimal(num))); + }else if(systemDeliveryChargeType == 2){ + distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(weight)); + }else if (systemDeliveryChargeType == 3){ + distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(volume)); + } + distributionPackageEntity.setDeliveryFee(BigDecimal.ZERO); + + BigDecimal systemDeliveryFeeTotal = distributionPackageEntity.getSystemDeliveryFee(); + + + if(payWay.equals("1") || payWay.equals("2")){ + distributionPackageEntity.setDeliveryFee(systemDeliveryFeeTotal); + } + BigDecimal deliveryFeeTotal = distributionPackageEntity.getDeliveryFee(); + BigDecimal deliveryLoadingFeeTotal = distributionPackageEntity.getDeliveryLoadingFee(); + BigDecimal deliverySortingFeeTotal = distributionPackageEntity.getDeliverySortingFee(); + BigDecimal deliveryUpfloorFeeTotal = distributionPackageEntity.getDeliveryUpfloorFee(); + BigDecimal deliveryMoveFeeTotal = distributionPackageEntity.getDeliveryMoveFee(); + BigDecimal deliveryOtherFeeTotal = distributionPackageEntity.getDeliveryOtherFee(); + BigDecimal deliveryCrossingFeeTotal = distributionPackageEntity.getDeliveryCrossingFee(); + + BigDecimal deliveryServiceFeeTotal = deliveryLoadingFeeTotal.add(deliveryFeeTotal).add(deliverySortingFeeTotal).add(deliveryUpfloorFeeTotal).add(deliveryMoveFeeTotal).add(deliveryOtherFeeTotal).add(deliveryCrossingFeeTotal); + distributionPackageEntity.setDeliveryServiceFee(deliveryServiceFeeTotal); + distributionPackageEntities.add(distributionPackageEntity); + + }); + if(CollUtil.isNotEmpty(trunklinePackageEntities)){ + trunklinePackageService.saveBatch(trunklinePackageEntities); + } + if(CollUtil.isNotEmpty(warehousePackageEntities)){ + warehousePackageService.saveBatch(warehousePackageEntities); + } + if(CollUtil.isNotEmpty(distributionPackageEntities)){ + distributionPackageService.saveBatch(distributionPackageEntities); + } + + }else{ + log.warn("#############dealwithPackageOrder: 保存订单数据失败 waybillNo={}",waybillNo); + } + } + + private void dealwithPackageOrder(WarehouseWaybillEntity waybillEntity) { + String waybillNo = waybillEntity.getWaybillNo(); + log.info("############dealwithPackageOrder: 处理订制品包件信息 waybillNo={}",waybillNo); + Long waybillId = waybillEntity.getId(); + String brand = waybillEntity.getBrand(); + Long brandId = waybillEntity.getBrandId(); + Long consigneeId = waybillEntity.getConsigneeId(); + String consignee = waybillEntity.getConsignee(); + Integer serviceType = waybillEntity.getServiceType(); + String payWay = waybillEntity.getPayWay(); + Long departureWarehouseId = waybillEntity.getDepartureWarehouseId(); + String departureWarehouseName = waybillEntity.getDepartureWarehouseName(); + Long destinationWarehouseId = waybillEntity.getDestinationWarehouseId(); + String destinationWarehouseName = waybillEntity.getDestinationWarehouseName(); + + //单价计算 +// BigDecimal pickupFee = Objects.isNull(waybillEntity.getPickupFee())?BigDecimal.ZERO:waybillEntity.getPickupFee(); + BigDecimal warehouseManagementFee = Objects.isNull(waybillEntity.getWarehouseManagementFee())?BigDecimal.ZERO:waybillEntity.getWarehouseManagementFee(); + BigDecimal warehouseFee = Objects.isNull(waybillEntity.getStorageFee())?BigDecimal.ZERO:waybillEntity.getStorageFee(); + BigDecimal handlingFee = Objects.isNull(waybillEntity.getHandlingFee())?BigDecimal.ZERO:waybillEntity.getHandlingFee(); + BigDecimal insuranceFee = Objects.isNull(waybillEntity.getInsuranceFee())?BigDecimal.ZERO:waybillEntity.getInsuranceFee(); + BigDecimal otherFee = Objects.isNull(waybillEntity.getOtherFee())?BigDecimal.ZERO:waybillEntity.getOtherFee(); + BigDecimal thirdOperationFee = Objects.isNull(waybillEntity.getThirdOperationFee())?BigDecimal.ZERO:waybillEntity.getThirdOperationFee(); + Integer totalCount = waybillEntity.getTotalCount(); + +// BigDecimal pickupPrice = pickupFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal warehouseManagementPrice = warehouseManagementFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal warehousePrice = warehouseFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal handlingPrice = handlingFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal insurancePrice = insuranceFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal otherPrice = otherFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal thirdOperationPrice = thirdOperationFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); + + + + //查询运单下所有的订单 + List advanceEntities =trunklineAdvanceClient.findListByWaybillNo(waybillNo); + //查询包件信息 + List advanceDetailEntities = trunklineAdvanceDetailClient.findListByWaybillId(waybillId); + //查询运单明细 + List wayBillDetailList = warehouseWaybillDetailClient.findByWaybillId(waybillId); + //把wayBillDetailList转为productId为key的Map + Map wayBillDetailMapByProductId = wayBillDetailList.stream() + .collect(Collectors.toMap(WarehouseWayBillDetail::getProductId, wayBillDetail -> wayBillDetail)); + + + //保存订单信息 + List orderInfoEntities = new ArrayList<>(); + + advanceEntities.forEach(advanceEntity->{ + StatisticsOrderInfoEntity orderInfoEntity = new StatisticsOrderInfoEntity(); + orderInfoEntity.setOrderCode(advanceEntity.getOrderCode()); + orderInfoEntity.setWaybillId(waybillId); + orderInfoEntity.setWaybillNo(waybillNo); + orderInfoEntity.setBrandId(brandId); + orderInfoEntity.setBrand(brand); + orderInfoEntity.setConsigneeId(consigneeId); + orderInfoEntity.setConsignee(consignee); + orderInfoEntity.setTypeService(serviceType); + orderInfoEntity.setSignStatus(0); + orderInfoEntity.setSyncFeeStatus(0); + orderInfoEntity.setCreateReconciliationOrderStatus(0); + orderInfoEntity.setConfirmBalanceOrderStatus(0); + orderInfoEntity.setDepartureWarehouseId(departureWarehouseId); + orderInfoEntity.setDepartureWarehouseName(departureWarehouseName); + orderInfoEntity.setDestinationWarehouseId(destinationWarehouseId); + orderInfoEntity.setDestinationWarehouseName(destinationWarehouseName); + orderInfoEntities.add(orderInfoEntity); + }); + + boolean b = statisticsOrderInfoService.saveBatch(orderInfoEntities); + if(b){ + Map> advanceDetailGroupByOrderCode = + advanceDetailEntities.stream() + .collect(Collectors.groupingBy(TrunklineAdvanceDetailEntity::getOrderCode)); + + List trunklinePackageEntities = new ArrayList<>(); + List warehousePackageEntities = new ArrayList<>(); + List distributionPackageEntities = new ArrayList<>(); + orderInfoEntities.forEach(orderInfoEntity->{ + Long orderId = orderInfoEntity.getId(); + String orderCode = orderInfoEntity.getOrderCode(); + List advanceDetailList = advanceDetailGroupByOrderCode.get(orderCode); + advanceDetailList.forEach(advanceDetailEntity->{ + Long incomeCategoryId = advanceDetailEntity.getIncomeCategoryId(); + String orderPackageCode = advanceDetailEntity.getOrderPackageCode(); + Integer quantity = advanceDetailEntity.getQuantity(); + BigDecimal weight = advanceDetailEntity.getWeight(); + BigDecimal volume = advanceDetailEntity.getVolume(); + Long productId = advanceDetailEntity.getIncomeCategoryId(); + String productName = advanceDetailEntity.getIncomeCategoryName(); + + WarehouseWayBillDetail warehouseWayBillDetail = wayBillDetailMapByProductId.get(incomeCategoryId); + + //干线信息 + StatisticsTrunklinePackageEntity trunklinePackageEntity = new StatisticsTrunklinePackageEntity(); + trunklinePackageEntity.setWaybillId(waybillId); + trunklinePackageEntity.setWaybillNo(waybillNo); + trunklinePackageEntity.setOrderCode(orderCode); + trunklinePackageEntity.setOrderPackageCode(orderPackageCode); + trunklinePackageEntity.setNum(1); + trunklinePackageEntity.setGoodsType(1); + trunklinePackageEntity.setBrandId(brandId); + trunklinePackageEntity.setConsigneeId(consigneeId); + trunklinePackageEntity.setOrderInfoId(orderId); + trunklinePackageEntity.setInsurancePrice(insurancePrice.multiply(BigDecimal.ONE)); + trunklinePackageEntity.setOtherPrice(otherPrice.multiply(BigDecimal.ONE)); + trunklinePackageEntity.setThirdOperationPrice(thirdOperationPrice.multiply(BigDecimal.ONE)); + + if(!Objects.isNull(warehouseWayBillDetail)){ + trunklinePackageEntity.setProductId(incomeCategoryId); + trunklinePackageEntity.setProductName(warehouseWayBillDetail.getProductName()); + + Integer chargeType = warehouseWayBillDetail.getChargeType();//运费实际计算方式 + Integer systemChargeType = warehouseWayBillDetail.getSystemChargeType();//系统运费计算方式 + Integer systemPickupChargeType = warehouseWayBillDetail.getSystemPickupChargeType();//系统提货计算方式 默认案件数分摊 + + BigDecimal productTotalWeight = warehouseWayBillDetail.getWeight();//运单品类的总重量 + Integer num = warehouseWayBillDetail.getNum();//运单品类的总数量 + BigDecimal productTotalVolume = warehouseWayBillDetail.getVolume();//运单品类总体积 + + trunklinePackageEntity.setFreightChargeType(chargeType); + trunklinePackageEntity.setSystemFreightChargeType(systemChargeType); + trunklinePackageEntity.setPickupChargeType(systemPickupChargeType); + trunklinePackageEntity.setSystemPickupChargeType(systemPickupChargeType); + + BigDecimal packageWeight = productTotalWeight.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP);//平摊到包件的质量 + BigDecimal packageVolume = productTotalVolume.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP);//平摊到包件的体积 + + trunklinePackageEntity.setWeight(Objects.isNull(packageWeight)?BigDecimal.ZERO:packageWeight); + trunklinePackageEntity.setVolume(Objects.isNull(packageVolume)?BigDecimal.ZERO:packageVolume); + + BigDecimal systemFreightPrice = warehouseWayBillDetail.getFreightPrice();//系统运费单价 + BigDecimal price = warehouseWayBillDetail.getPrice();//实际运费单价 + BigDecimal systemPickupPrice = warehouseWayBillDetail.getPickupPrice();//系统提货单价 + + //如果系统运费计算方式是按件,则用系统的运费单价乘以包件数量 + //如果系统运费计算方式是按方,则用系统的运费单价乘以包件体积 + //如果系统运费计算方式是按重量,则用系统的运费单价乘以包件重量 + if(systemChargeType == 1){ + trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(BigDecimal.ONE)); + }else if(systemChargeType == 2){ + trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(packageVolume)); + }else if (systemChargeType == 3){ + trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(packageWeight)); + } + + //实际包件的运费 + if(chargeType == 1){ + trunklinePackageEntity.setFreightPrice(price.multiply(BigDecimal.ONE)); + }else if(chargeType == 2){ + trunklinePackageEntity.setFreightPrice(price.multiply(packageVolume)); + }else if (chargeType == 3){ + trunklinePackageEntity.setFreightPrice(price.multiply(packageWeight)); + } + + //提货包件单价 + if(systemPickupChargeType == 1){ + trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(BigDecimal.ONE)); + trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(BigDecimal.ONE)); + }else if(systemPickupChargeType == 2){ + trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(packageVolume)); + trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(packageVolume)); + }else if (systemPickupChargeType == 3){ + trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(packageWeight)); + trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(packageWeight)); + } + + }else{ + + + trunklinePackageEntity.setFreightChargeType(1); + trunklinePackageEntity.setSystemFreightChargeType(1); + trunklinePackageEntity.setPickupChargeType(1); + trunklinePackageEntity.setSystemPickupChargeType(1); + trunklinePackageEntity.setWeight(BigDecimal.ZERO); + trunklinePackageEntity.setVolume(BigDecimal.ZERO); + trunklinePackageEntity.setSystemFreightPrice(BigDecimal.ZERO); + trunklinePackageEntity.setFreightPrice(BigDecimal.ZERO); + trunklinePackageEntity.setSystemPickupPrice(BigDecimal.ZERO); + trunklinePackageEntity.setPickupPrice(BigDecimal.ZERO); + } + + BigDecimal systemFreightPriceTotal = trunklinePackageEntity.getSystemFreightPrice(); + BigDecimal systemPickupPriceTotal = trunklinePackageEntity.getSystemPickupPrice(); + BigDecimal freightPriceTotal = trunklinePackageEntity.getFreightPrice(); + BigDecimal pickupPriceTotal = trunklinePackageEntity.getPickupPrice(); + BigDecimal insurancePriceTotal = trunklinePackageEntity.getInsurancePrice(); + BigDecimal otherPriceTotal = trunklinePackageEntity.getOtherPrice(); + BigDecimal thirdOperationPriceTotal = trunklinePackageEntity.getThirdOperationPrice(); + + BigDecimal totalSystemFee = systemFreightPriceTotal.add(systemPickupPriceTotal).add(insurancePriceTotal).add(otherPriceTotal).add(thirdOperationPriceTotal); + trunklinePackageEntity.setTotalSystemFee(totalSystemFee); + BigDecimal totalRealFee = freightPriceTotal.add(pickupPriceTotal).add(insurancePriceTotal).add(otherPriceTotal).add(thirdOperationPriceTotal); + trunklinePackageEntity.setTotalRealFee(totalRealFee); + + trunklinePackageEntities.add(trunklinePackageEntity); + + //仓库收入 + StatisticsWarehousePackageEntity warehousePackageEntity = new StatisticsWarehousePackageEntity(); + warehousePackageEntity.setWaybillId(waybillId); + warehousePackageEntity.setWaybillNo(waybillNo); + warehousePackageEntity.setOrderCode(orderCode); + warehousePackageEntity.setOrderPackageCode(orderPackageCode); + warehousePackageEntity.setProductName(productName); + warehousePackageEntity.setProductId(productId); + warehousePackageEntity.setNum(1); + warehousePackageEntity.setWarehouseFee(warehousePrice.multiply(BigDecimal.ONE)); + warehousePackageEntity.setWarehouseManageFee(warehouseManagementPrice.multiply(BigDecimal.ONE)); + warehousePackageEntity.setWarehouseSortingFee(BigDecimal.ZERO); + warehousePackageEntity.setWarehouseOperatingFee(BigDecimal.ZERO); + warehousePackageEntity.setGoodsType(1); + warehousePackageEntity.setOrderInfoId(orderId); + warehousePackageEntity.setBrandId(brandId); + warehousePackageEntity.setConsigneeId(consigneeId); + warehousePackageEntity.setChargeType(1); + if(!Objects.isNull(warehouseWayBillDetail)){ + Integer systemWarehouseChargeType = warehouseWayBillDetail.getSystemWarehouseChargeType(); + warehousePackageEntity.setChargeType(systemWarehouseChargeType); + + warehousePackageEntity.setProductId(incomeCategoryId); + warehousePackageEntity.setProductName(warehouseWayBillDetail.getProductName()); + + BigDecimal productTotalWeight = warehouseWayBillDetail.getWeight();//运单品类的总重量 + Integer num = warehouseWayBillDetail.getNum();//运单品类的总数量 + BigDecimal productTotalVolume = warehouseWayBillDetail.getVolume();//运单品类总体积 + + BigDecimal packageWeight = productTotalWeight.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP);//平摊到包件的质量 + BigDecimal packageVolume = productTotalVolume.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP);//平摊到包件的体积 + + warehousePackageEntity.setWeight(packageWeight); + warehousePackageEntity.setVolume(packageVolume); + + } + BigDecimal warehouseFeeTotal = warehousePackageEntity.getWarehouseFee(); + BigDecimal warehouseManageFeeTotal = warehousePackageEntity.getWarehouseManageFee(); + BigDecimal warehouseSortingFeeTotal = warehousePackageEntity.getWarehouseSortingFee(); + BigDecimal warehouseOperatingFeeTotal = warehousePackageEntity.getWarehouseOperatingFee(); + + BigDecimal warehouseSerivceFeeTotal = warehouseFeeTotal.add(warehouseManageFeeTotal).add(warehouseSortingFeeTotal).add(warehouseOperatingFeeTotal); + warehousePackageEntity.setWarehouseServiceFee(warehouseSerivceFeeTotal); + + warehousePackageEntities.add(warehousePackageEntity); + + //配送包件信息 + StatisticsDistributionPackageEntity distributionPackageEntity = new StatisticsDistributionPackageEntity(); + distributionPackageEntity.setWaybillId(waybillId); + distributionPackageEntity.setWaybillNo(waybillNo); + distributionPackageEntity.setOrderCode(orderCode); + distributionPackageEntity.setOrderPackageCode(orderPackageCode); + distributionPackageEntity.setNum(quantity); + distributionPackageEntity.setWeight(Objects.isNull(weight)?BigDecimal.ZERO:weight); + distributionPackageEntity.setVolume(Objects.isNull(volume)?BigDecimal.ZERO:volume); + distributionPackageEntity.setGoodsType(1); + distributionPackageEntity.setOrderInfoId(orderId); + distributionPackageEntity.setDeliveryLoadingFee(handlingPrice.multiply(BigDecimal.ONE)); + distributionPackageEntity.setDeliverySortingFee(BigDecimal.ZERO); + distributionPackageEntity.setDeliveryUpfloorFee(BigDecimal.ZERO); + distributionPackageEntity.setDeliveryMoveFee(BigDecimal.ZERO); + distributionPackageEntity.setDeliveryOtherFee(BigDecimal.ZERO); + distributionPackageEntity.setDeliveryCrossingFee(BigDecimal.ZERO); + distributionPackageEntity.setSignNum(0); + distributionPackageEntity.setIsSign(0); + distributionPackageEntity.setBrandId(brandId); + distributionPackageEntity.setConsigneeId(consigneeId); + distributionPackageEntity.setDeliveryLoadingFee(handlingPrice.multiply(BigDecimal.ONE)); + + if(!Objects.isNull(warehouseWayBillDetail)){ + + Integer systemDeliveryChargeType = warehouseWayBillDetail.getSystemDeliveryChargeType(); + BigDecimal productTotalWeight = warehouseWayBillDetail.getWeight(); + Integer num = warehouseWayBillDetail.getNum(); + BigDecimal productTotalVolume = warehouseWayBillDetail.getVolume(); + + BigDecimal packageWeight = productTotalWeight.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP); + BigDecimal packageVolume = productTotalVolume.divide(new BigDecimal(num), 2, BigDecimal.ROUND_HALF_UP); + + distributionPackageEntity.setWeight(packageWeight); + distributionPackageEntity.setVolume(packageVolume); + + distributionPackageEntity.setSystemDeliveryChargeType(systemDeliveryChargeType); + distributionPackageEntity.setDeliveryChargeType(systemDeliveryChargeType); + + BigDecimal systemDeliveryPrice = warehouseWayBillDetail.getDeliveryPrice(); + + if(systemDeliveryChargeType == 1){ + distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(BigDecimal.ONE)); + }else if(systemDeliveryChargeType == 2){ + distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(packageVolume)); + }else if(systemDeliveryChargeType == 3){ + distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(packageWeight)); + } + distributionPackageEntity.setDeliveryFee(BigDecimal.ZERO); + + }else{ + distributionPackageEntity.setSystemDeliveryChargeType(1); + distributionPackageEntity.setDeliveryChargeType(1); + distributionPackageEntity.setSystemDeliveryFee(BigDecimal.ZERO); + distributionPackageEntity.setDeliveryFee(BigDecimal.ZERO); + } + + if(payWay.equals("1") || payWay.equals("2")){ + distributionPackageEntity.setDeliveryFee(distributionPackageEntity.getSystemDeliveryFee()); + } + BigDecimal deliveryFeeTotal = distributionPackageEntity.getDeliveryFee(); + BigDecimal deliveryLoadingFeeTotal = distributionPackageEntity.getDeliveryLoadingFee(); + BigDecimal deliverySortingFeeTotal = distributionPackageEntity.getDeliverySortingFee(); + BigDecimal deliveryUpfloorFeeTotal = distributionPackageEntity.getDeliveryUpfloorFee(); + BigDecimal deliveryMoveFeeTotal = distributionPackageEntity.getDeliveryMoveFee(); + BigDecimal deliveryOtherFeeTotal = distributionPackageEntity.getDeliveryOtherFee(); + BigDecimal deliveryCrossingFeeTotal = distributionPackageEntity.getDeliveryCrossingFee(); + + BigDecimal deliveryServiceFeeTotal = deliveryFeeTotal.add(deliveryLoadingFeeTotal).add(deliverySortingFeeTotal).add(deliveryUpfloorFeeTotal).add(deliveryMoveFeeTotal).add(deliveryCrossingFeeTotal).add(deliveryOtherFeeTotal); + + distributionPackageEntity.setDeliveryServiceFee(deliveryServiceFeeTotal); + + distributionPackageEntities.add(distributionPackageEntity); + }); + }); + if(CollUtil.isNotEmpty(trunklinePackageEntities)){ + trunklinePackageService.saveBatch(trunklinePackageEntities); + } + if(CollUtil.isNotEmpty(warehousePackageEntities)){ + warehousePackageService.saveBatch(warehousePackageEntities); + } + if(CollUtil.isNotEmpty(distributionPackageEntities)){ + distributionPackageService.saveBatch(distributionPackageEntities); + } + + }else{ + log.warn("#############dealwithPackageOrder: 保存订单数据失败 waybillNo={}",waybillNo); + } + } +} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillFanoutListener.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillFanoutListener.java index b557a40a1..9533fa1cb 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillFanoutListener.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillFanoutListener.java @@ -1,383 +1,361 @@ package com.logpm.statistics.listener.mq; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import com.logpm.statistics.entity.StatisticsDistributionPackageEntity; -import com.logpm.statistics.entity.StatisticsOrderInfoEntity; -import com.logpm.statistics.entity.StatisticsTrunklinePackageEntity; -import com.logpm.statistics.entity.StatisticsWarehousePackageEntity; -import com.logpm.statistics.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springblade.common.constant.broadcast.FanoutConstants; -import org.springframework.amqp.core.ExchangeTypes; -import org.springframework.amqp.rabbit.annotation.Exchange; -import org.springframework.amqp.rabbit.annotation.Queue; -import org.springframework.amqp.rabbit.annotation.QueueBinding; -import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; @Slf4j @Component @AllArgsConstructor public class WaybillFanoutListener { - private final IStatisticsTrunklinePackageService statisticsTrunklinePackageService; - private final IStatisticsWarehousePackageService statisticsWarehousePackageService; - private final IStatisticsDistributionPackageService statisticsDistributionPackageService; - private final IStatisticsOrderInfoService statisticsOrderInfoService; - private final IStatisticsWaybillInfoService statisticsWaybillInfoService; - - @RabbitListener(bindings = @QueueBinding( - value = @Queue(name = FanoutConstants.trunkline.OPENWAYBILL.QUEUE.STATISTICSDATA_CREATEPACKAGEINFO), - exchange = @Exchange(name = FanoutConstants.trunkline.OPENWAYBILL.EXCHANGE, type = ExchangeTypes.FANOUT) - )) - @Transactional(rollbackFor = Exception.class) - public void createPackageInfo(String msg) { - - JSONObject jsonObject = JSONUtil.parseObj(msg); - Long warehouseId = jsonObject.getLong("warehouseId"); - String warehouseName = jsonObject.getStr("warehouseName"); - Long waybillId = jsonObject.getLong("waybillId"); - String waybillNo = jsonObject.getStr("waybillNo"); - String typeService = jsonObject.getStr("typeService");//服务类型 - Integer waybillType = jsonObject.getInt("waybillType"); - Long brandId = jsonObject.getLong("brandId"); - Long consigneeId = jsonObject.getLong("consigneeId"); - - List statisticsTrunklinePackageEntities = new ArrayList<>(); - List statisticsWarehousePackageEntities = new ArrayList<>(); - List statisticsDistributionPackageEntities = new ArrayList<>(); - - JSONArray orderPackageCodes = jsonObject.getJSONArray("orderPackageCodes"); - for (int i = 0; i < orderPackageCodes.size(); i++) { - JSONObject json = orderPackageCodes.getJSONObject(i); - BigDecimal totalWeight = json.getBigDecimal("totalWeight"); - if(Objects.isNull(totalWeight)){ - totalWeight = BigDecimal.ZERO; - } - BigDecimal totalVolume = json.getBigDecimal("totalVolume"); - if(Objects.isNull(totalVolume)){ - totalVolume = BigDecimal.ZERO; - } - - //干线 - StatisticsTrunklinePackageEntity statisticsTrunklinePackageEntity = new StatisticsTrunklinePackageEntity(); - statisticsTrunklinePackageEntity.setWarehouseId(warehouseId); - statisticsTrunklinePackageEntity.setWarehouseName(warehouseName); - statisticsTrunklinePackageEntity.setTypeService(typeService); - statisticsTrunklinePackageEntity.setWaybillId(waybillId); - statisticsTrunklinePackageEntity.setWaybillNo(waybillNo); - if(waybillType.equals(1)){ - statisticsTrunklinePackageEntity.setGoodsType(1); - }else if (waybillType.equals(2)){ - statisticsTrunklinePackageEntity.setGoodsType(2); - }else{ - statisticsTrunklinePackageEntity.setGoodsType(3); - } - statisticsTrunklinePackageEntity.setOrderCode(json.getStr("orderCode")); - statisticsTrunklinePackageEntity.setOrderPackageCode(json.getStr("orderPackageCode")); - statisticsTrunklinePackageEntity.setProductName(json.getStr("productName")); - statisticsTrunklinePackageEntity.setProductId(json.getStr("productId")); - statisticsTrunklinePackageEntity.setTotalNum(json.getInt("totalNum")); - statisticsTrunklinePackageEntity.setTotalWeight(totalWeight); - statisticsTrunklinePackageEntity.setTotalVolume(totalVolume); - statisticsTrunklinePackageEntity.setOpenPrice(json.getBigDecimal("openPrice")); - statisticsTrunklinePackageEntity.setTotalPrice(json.getBigDecimal("openPrice")); - statisticsTrunklinePackageEntity.setPickupFee(json.getBigDecimal("pickupFee")); - statisticsTrunklinePackageEntity.setRealPickupFee(json.getBigDecimal("pickupFee")); - statisticsTrunklinePackageEntity.setFreightFee(json.getBigDecimal("freightFee")); - statisticsTrunklinePackageEntity.setRealFreightFee(json.getBigDecimal("freightFee")); - statisticsTrunklinePackageEntity.setInstallFee(json.getBigDecimal("installFee")); - statisticsTrunklinePackageEntity.setRealInstallFee(json.getBigDecimal("installFee")); - statisticsTrunklinePackageEntity.setQuotationFee(json.getBigDecimal("quotationFee")); - statisticsTrunklinePackageEntity.setRealQuotationFee(json.getBigDecimal("quotationFee")); - statisticsTrunklinePackageEntity.setClaimingValue(json.getBigDecimal("claimingValue")); - statisticsTrunklinePackageEntity.setRealClaimingValue(json.getBigDecimal("claimingValue")); - statisticsTrunklinePackageEntity.setOtherFee(json.getBigDecimal("otherFee")); - statisticsTrunklinePackageEntity.setRealOtherFee(json.getBigDecimal("otherFee")); - statisticsTrunklinePackageEntity.setReturnFee(json.getBigDecimal("returnFee")); - statisticsTrunklinePackageEntity.setRealReturnFee(json.getBigDecimal("returnFee")); - statisticsTrunklinePackageEntity.setThirdOprationFee(json.getBigDecimal("thirdOprationFee")); - statisticsTrunklinePackageEntity.setRealThirdOprationFee(json.getBigDecimal("thirdOprationFee")); - statisticsTrunklinePackageEntity.setXPay(json.getBigDecimal("xPay")); - statisticsTrunklinePackageEntity.setRealXPay(json.getBigDecimal("xPay")); - statisticsTrunklinePackageEntity.setDPay(json.getBigDecimal("dPay")); - statisticsTrunklinePackageEntity.setRealDPay(json.getBigDecimal("dPay")); - statisticsTrunklinePackageEntity.setHPay(json.getBigDecimal("hPay")); - statisticsTrunklinePackageEntity.setRealHPay(json.getBigDecimal("hPay")); - statisticsTrunklinePackageEntity.setYPay(json.getBigDecimal("yPay")); - statisticsTrunklinePackageEntity.setRealYPay(json.getBigDecimal("yPay")); - statisticsTrunklinePackageEntities.add(statisticsTrunklinePackageEntity); - - //仓库 - StatisticsWarehousePackageEntity statisticsWarehousePackageEntity = new StatisticsWarehousePackageEntity(); - statisticsWarehousePackageEntity.setWarehouseId(warehouseId); - statisticsWarehousePackageEntity.setWarehouseName(warehouseName); - statisticsWarehousePackageEntity.setTypeService(typeService); - statisticsWarehousePackageEntity.setWaybillId(waybillId); - statisticsWarehousePackageEntity.setWaybillNo(waybillNo); - if(waybillType.equals(1)){ - statisticsWarehousePackageEntity.setGoodsType(1); - }else if (waybillType.equals(2)){ - statisticsWarehousePackageEntity.setGoodsType(2); - }else{ - statisticsWarehousePackageEntity.setGoodsType(3); - } - statisticsWarehousePackageEntity.setOrderCode(json.getStr("orderCode")); - statisticsWarehousePackageEntity.setOrderPackageCode(json.getStr("orderPackageCode")); - statisticsWarehousePackageEntity.setProductName(json.getStr("productName")); - statisticsWarehousePackageEntity.setProductId(json.getStr("productId")); - statisticsWarehousePackageEntity.setTotalNum(json.getInt("totalNum")); - statisticsWarehousePackageEntity.setTotalWeight(totalWeight); - statisticsWarehousePackageEntity.setTotalVolume(totalVolume); - statisticsWarehousePackageEntity.setOpenPrice(json.getBigDecimal("warehouseServiceFee")); - statisticsWarehousePackageEntity.setTotalPrice(json.getBigDecimal("warehouseServiceFee")); - statisticsWarehousePackageEntity.setWarehouseServiceFee(json.getBigDecimal("warehouseServiceFee")); - statisticsWarehousePackageEntity.setRealWarehouseServiceFee(json.getBigDecimal("warehouseServiceFee")); - statisticsWarehousePackageEntity.setWarehouseFee(json.getBigDecimal("warehouseFee")); - statisticsWarehousePackageEntity.setRealWarehouseFee(json.getBigDecimal("warehouseFee")); - statisticsWarehousePackageEntity.setWarehouseManageFee(json.getBigDecimal("warehouseManageFee")); - statisticsWarehousePackageEntity.setRealWarehouseManageFee(json.getBigDecimal("warehouseManageFee")); - statisticsWarehousePackageEntity.setWarehouseSortingFee(json.getBigDecimal("warehouseSortingFee")); - statisticsWarehousePackageEntity.setRealWarehouseSortingFee(json.getBigDecimal("warehouseSortingFee")); - statisticsWarehousePackageEntity.setWarehouseOperatingFee(json.getBigDecimal("warehouseOperatingFee")); - statisticsWarehousePackageEntity.setRealWarehouseOperatingFee(json.getBigDecimal("warehouseOperatingFee")); - statisticsWarehousePackageEntities.add(statisticsWarehousePackageEntity); - - - //配送 - StatisticsDistributionPackageEntity statisticsDistributionPackageEntity = new StatisticsDistributionPackageEntity(); - statisticsDistributionPackageEntity.setWarehouseId(warehouseId); - statisticsDistributionPackageEntity.setWarehouseName(warehouseName); - statisticsDistributionPackageEntity.setBrandId(brandId); - statisticsDistributionPackageEntity.setConsigneeId(consigneeId); - statisticsDistributionPackageEntity.setTypeService(typeService); - statisticsDistributionPackageEntity.setWaybillId(waybillId); - statisticsDistributionPackageEntity.setWaybillNo(waybillNo); - if(waybillType.equals(1)){ - statisticsDistributionPackageEntity.setGoodsType(1); - }else if (waybillType.equals(2)){ - statisticsDistributionPackageEntity.setGoodsType(2); - }else{ - statisticsDistributionPackageEntity.setGoodsType(3); - } - statisticsDistributionPackageEntity.setOrderCode(json.getStr("orderCode")); - statisticsDistributionPackageEntity.setOrderPackageCode(json.getStr("orderPackageCode")); - statisticsDistributionPackageEntity.setProductName(json.getStr("productName")); - statisticsDistributionPackageEntity.setProductId(json.getStr("productId")); - statisticsDistributionPackageEntity.setTotalNum(json.getInt("totalNum")); - statisticsDistributionPackageEntity.setTotalWeight(totalWeight); - statisticsDistributionPackageEntity.setTotalVolume(totalVolume); - statisticsDistributionPackageEntity.setOpenPrice(json.getBigDecimal("deliveryServiceFee")); - statisticsDistributionPackageEntity.setTotalPrice(json.getBigDecimal("deliveryServiceFee")); - statisticsDistributionPackageEntity.setDeliveryServiceFee(json.getBigDecimal("deliveryServiceFee")); - statisticsDistributionPackageEntity.setRealDeliveryServiceFee(json.getBigDecimal("deliveryServiceFee")); - statisticsDistributionPackageEntity.setDeliveryFee(json.getBigDecimal("deliveryFee")); - statisticsDistributionPackageEntity.setRealDeliveryFee(json.getBigDecimal("deliveryFee")); - statisticsDistributionPackageEntity.setDeliveryLoadingFee(json.getBigDecimal("deliveryLoadingFee")); - statisticsDistributionPackageEntity.setRealDeliveryLoadingFee(json.getBigDecimal("deliveryLoadingFee")); - statisticsDistributionPackageEntity.setDeliverySortingFee(json.getBigDecimal("deliverySortingFee")); - statisticsDistributionPackageEntity.setRealDeliverySortingFee(json.getBigDecimal("deliverySortingFee")); - statisticsDistributionPackageEntity.setDeliveryUpfloorFee(json.getBigDecimal("deliveryUpfloorFee")); - statisticsDistributionPackageEntity.setRealDeliveryUpfloorFee(json.getBigDecimal("deliveryUpfloorFee")); - statisticsDistributionPackageEntity.setDeliveryMoveFee(json.getBigDecimal("deliveryMoveFee")); - statisticsDistributionPackageEntity.setRealDeliveryMoveFee(json.getBigDecimal("deliveryMoveFee")); - statisticsDistributionPackageEntity.setDeliveryDistance(json.getBigDecimal("deliveryDistance")); - statisticsDistributionPackageEntity.setRealDeliveryDistance(json.getBigDecimal("deliveryDistance")); - statisticsDistributionPackageEntity.setDeliveryCrossingFee(json.getBigDecimal("deliveryCrossingFee")); - statisticsDistributionPackageEntity.setRealDeliveryCrossingFee(json.getBigDecimal("deliveryCrossingFee")); - statisticsDistributionPackageEntities.add(statisticsDistributionPackageEntity); - - } - - -// //生成运单维度 -// if(!"2".equals(typeService)){ -// StatisticsWaybillInfoEntity statisticsWaybillInfoEntity = new StatisticsWaybillInfoEntity(); -// statisticsWaybillInfoEntity.setWaybillNo(waybillNo); -// statisticsWaybillInfoEntity.setWaybillId(waybillId); -// statisticsWaybillInfoEntity.setTypeService(typeService); -// statisticsWaybillInfoEntity.setConfirmStatisticsOrder(0); -// statisticsWaybillInfoService.save(statisticsWaybillInfoEntity); -// waybillInfoId = statisticsWaybillInfoEntity.getId(); +// private final IStatisticsTrunklinePackageService statisticsTrunklinePackageService; +// private final IStatisticsWarehousePackageService statisticsWarehousePackageService; +// private final IStatisticsDistributionPackageService statisticsDistributionPackageService; +// private final IStatisticsOrderInfoService statisticsOrderInfoService; +// private final IStatisticsWaybillInfoService statisticsWaybillInfoService; +// +// @RabbitListener(bindings = @QueueBinding( +// value = @Queue(name = FanoutConstants.trunkline.OPENWAYBILL.QUEUE.STATISTICSDATA_CREATEPACKAGEINFO), +// exchange = @Exchange(name = FanoutConstants.trunkline.OPENWAYBILL.EXCHANGE, type = ExchangeTypes.FANOUT) +// )) +// @Transactional(rollbackFor = Exception.class) +// public void createPackageInfo(String msg) { +// +// JSONObject jsonObject = JSONUtil.parseObj(msg); +// Long warehouseId = jsonObject.getLong("warehouseId"); +// String warehouseName = jsonObject.getStr("warehouseName"); +// Long waybillId = jsonObject.getLong("waybillId"); +// String waybillNo = jsonObject.getStr("waybillNo"); +// String typeService = jsonObject.getStr("typeService");//服务类型 +// Integer waybillType = jsonObject.getInt("waybillType"); +// Long brandId = jsonObject.getLong("brandId"); +// Long consigneeId = jsonObject.getLong("consigneeId"); +// +// List statisticsTrunklinePackageEntities = new ArrayList<>(); +// List statisticsWarehousePackageEntities = new ArrayList<>(); +// List statisticsDistributionPackageEntities = new ArrayList<>(); +// +// JSONArray orderPackageCodes = jsonObject.getJSONArray("orderPackageCodes"); +// for (int i = 0; i < orderPackageCodes.size(); i++) { +// JSONObject json = orderPackageCodes.getJSONObject(i); +// BigDecimal totalWeight = json.getBigDecimal("totalWeight"); +// if(Objects.isNull(totalWeight)){ +// totalWeight = BigDecimal.ZERO; +// } +// BigDecimal totalVolume = json.getBigDecimal("totalVolume"); +// if(Objects.isNull(totalVolume)){ +// totalVolume = BigDecimal.ZERO; +// } +// +//// //干线 +//// StatisticsTrunklinePackageEntity statisticsTrunklinePackageEntity = new StatisticsTrunklinePackageEntity(); +//// statisticsTrunklinePackageEntity.setWarehouseId(warehouseId); +//// statisticsTrunklinePackageEntity.setWarehouseName(warehouseName); +//// statisticsTrunklinePackageEntity.setTypeService(typeService); +//// statisticsTrunklinePackageEntity.setWaybillId(waybillId); +//// statisticsTrunklinePackageEntity.setWaybillNo(waybillNo); +//// if(waybillType.equals(1)){ +//// statisticsTrunklinePackageEntity.setGoodsType(1); +//// }else if (waybillType.equals(2)){ +//// statisticsTrunklinePackageEntity.setGoodsType(2); +//// }else{ +//// statisticsTrunklinePackageEntity.setGoodsType(3); +//// } +//// statisticsTrunklinePackageEntity.setOrderCode(json.getStr("orderCode")); +//// statisticsTrunklinePackageEntity.setOrderPackageCode(json.getStr("orderPackageCode")); +//// statisticsTrunklinePackageEntity.setProductName(json.getStr("productName")); +//// statisticsTrunklinePackageEntity.setProductId(json.getLong("productId")); +//// statisticsTrunklinePackageEntity.setTotalNum(json.getInt("totalNum")); +//// statisticsTrunklinePackageEntity.setTotalWeight(totalWeight); +//// statisticsTrunklinePackageEntity.setTotalVolume(totalVolume); +//// statisticsTrunklinePackageEntity.setOpenPrice(json.getBigDecimal("openPrice")); +//// statisticsTrunklinePackageEntity.setTotalPrice(json.getBigDecimal("openPrice")); +//// statisticsTrunklinePackageEntity.setPickupFee(json.getBigDecimal("pickupFee")); +//// statisticsTrunklinePackageEntity.setRealPickupFee(json.getBigDecimal("pickupFee")); +//// statisticsTrunklinePackageEntity.setFreightFee(json.getBigDecimal("freightFee")); +//// statisticsTrunklinePackageEntity.setRealFreightFee(json.getBigDecimal("freightFee")); +//// statisticsTrunklinePackageEntity.setInstallFee(json.getBigDecimal("installFee")); +//// statisticsTrunklinePackageEntity.setRealInstallFee(json.getBigDecimal("installFee")); +//// statisticsTrunklinePackageEntity.setQuotationFee(json.getBigDecimal("quotationFee")); +//// statisticsTrunklinePackageEntity.setRealQuotationFee(json.getBigDecimal("quotationFee")); +//// statisticsTrunklinePackageEntity.setClaimingValue(json.getBigDecimal("claimingValue")); +//// statisticsTrunklinePackageEntity.setRealClaimingValue(json.getBigDecimal("claimingValue")); +//// statisticsTrunklinePackageEntity.setOtherFee(json.getBigDecimal("otherFee")); +//// statisticsTrunklinePackageEntity.setRealOtherFee(json.getBigDecimal("otherFee")); +//// statisticsTrunklinePackageEntity.setReturnFee(json.getBigDecimal("returnFee")); +//// statisticsTrunklinePackageEntity.setRealReturnFee(json.getBigDecimal("returnFee")); +//// statisticsTrunklinePackageEntity.setThirdOprationFee(json.getBigDecimal("thirdOprationFee")); +//// statisticsTrunklinePackageEntity.setRealThirdOprationFee(json.getBigDecimal("thirdOprationFee")); +//// statisticsTrunklinePackageEntity.setXPay(json.getBigDecimal("xPay")); +//// statisticsTrunklinePackageEntity.setRealXPay(json.getBigDecimal("xPay")); +//// statisticsTrunklinePackageEntity.setDPay(json.getBigDecimal("dPay")); +//// statisticsTrunklinePackageEntity.setRealDPay(json.getBigDecimal("dPay")); +//// statisticsTrunklinePackageEntity.setHPay(json.getBigDecimal("hPay")); +//// statisticsTrunklinePackageEntity.setRealHPay(json.getBigDecimal("hPay")); +//// statisticsTrunklinePackageEntity.setYPay(json.getBigDecimal("yPay")); +//// statisticsTrunklinePackageEntity.setRealYPay(json.getBigDecimal("yPay")); +//// statisticsTrunklinePackageEntities.add(statisticsTrunklinePackageEntity); +// +// //仓库 +// StatisticsWarehousePackageEntity statisticsWarehousePackageEntity = new StatisticsWarehousePackageEntity(); +// statisticsWarehousePackageEntity.setWarehouseId(warehouseId); +// statisticsWarehousePackageEntity.setWarehouseName(warehouseName); +// statisticsWarehousePackageEntity.setTypeService(typeService); +// statisticsWarehousePackageEntity.setWaybillId(waybillId); +// statisticsWarehousePackageEntity.setWaybillNo(waybillNo); +// if(waybillType.equals(1)){ +// statisticsWarehousePackageEntity.setGoodsType(1); +// }else if (waybillType.equals(2)){ +// statisticsWarehousePackageEntity.setGoodsType(2); +// }else{ +// statisticsWarehousePackageEntity.setGoodsType(3); +// } +// statisticsWarehousePackageEntity.setOrderCode(json.getStr("orderCode")); +// statisticsWarehousePackageEntity.setOrderPackageCode(json.getStr("orderPackageCode")); +// statisticsWarehousePackageEntity.setProductName(json.getStr("productName")); +// statisticsWarehousePackageEntity.setProductId(json.getStr("productId")); +// statisticsWarehousePackageEntity.setTotalNum(json.getInt("totalNum")); +// statisticsWarehousePackageEntity.setTotalWeight(totalWeight); +// statisticsWarehousePackageEntity.setTotalVolume(totalVolume); +// statisticsWarehousePackageEntity.setOpenPrice(json.getBigDecimal("warehouseServiceFee")); +// statisticsWarehousePackageEntity.setTotalPrice(json.getBigDecimal("warehouseServiceFee")); +// statisticsWarehousePackageEntity.setWarehouseServiceFee(json.getBigDecimal("warehouseServiceFee")); +// statisticsWarehousePackageEntity.setRealWarehouseServiceFee(json.getBigDecimal("warehouseServiceFee")); +// statisticsWarehousePackageEntity.setWarehouseFee(json.getBigDecimal("warehouseFee")); +// statisticsWarehousePackageEntity.setRealWarehouseFee(json.getBigDecimal("warehouseFee")); +// statisticsWarehousePackageEntity.setWarehouseManageFee(json.getBigDecimal("warehouseManageFee")); +// statisticsWarehousePackageEntity.setRealWarehouseManageFee(json.getBigDecimal("warehouseManageFee")); +// statisticsWarehousePackageEntity.setWarehouseSortingFee(json.getBigDecimal("warehouseSortingFee")); +// statisticsWarehousePackageEntity.setRealWarehouseSortingFee(json.getBigDecimal("warehouseSortingFee")); +// statisticsWarehousePackageEntity.setWarehouseOperatingFee(json.getBigDecimal("warehouseOperatingFee")); +// statisticsWarehousePackageEntity.setRealWarehouseOperatingFee(json.getBigDecimal("warehouseOperatingFee")); +// statisticsWarehousePackageEntities.add(statisticsWarehousePackageEntity); +// +// +// //配送 +// StatisticsDistributionPackageEntity statisticsDistributionPackageEntity = new StatisticsDistributionPackageEntity(); +// statisticsDistributionPackageEntity.setWarehouseId(warehouseId); +// statisticsDistributionPackageEntity.setWarehouseName(warehouseName); +// statisticsDistributionPackageEntity.setBrandId(brandId); +// statisticsDistributionPackageEntity.setConsigneeId(consigneeId); +// statisticsDistributionPackageEntity.setTypeService(typeService); +// statisticsDistributionPackageEntity.setWaybillId(waybillId); +// statisticsDistributionPackageEntity.setWaybillNo(waybillNo); +// if(waybillType.equals(1)){ +// statisticsDistributionPackageEntity.setGoodsType(1); +// }else if (waybillType.equals(2)){ +// statisticsDistributionPackageEntity.setGoodsType(2); +// }else{ +// statisticsDistributionPackageEntity.setGoodsType(3); +// } +// statisticsDistributionPackageEntity.setOrderCode(json.getStr("orderCode")); +// statisticsDistributionPackageEntity.setOrderPackageCode(json.getStr("orderPackageCode")); +// statisticsDistributionPackageEntity.setProductName(json.getStr("productName")); +// statisticsDistributionPackageEntity.setProductId(json.getStr("productId")); +// statisticsDistributionPackageEntity.setTotalNum(json.getInt("totalNum")); +// statisticsDistributionPackageEntity.setTotalWeight(totalWeight); +// statisticsDistributionPackageEntity.setTotalVolume(totalVolume); +// statisticsDistributionPackageEntity.setOpenPrice(json.getBigDecimal("deliveryServiceFee")); +// statisticsDistributionPackageEntity.setTotalPrice(json.getBigDecimal("deliveryServiceFee")); +// statisticsDistributionPackageEntity.setDeliveryServiceFee(json.getBigDecimal("deliveryServiceFee")); +// statisticsDistributionPackageEntity.setRealDeliveryServiceFee(json.getBigDecimal("deliveryServiceFee")); +// statisticsDistributionPackageEntity.setDeliveryFee(json.getBigDecimal("deliveryFee")); +// statisticsDistributionPackageEntity.setRealDeliveryFee(json.getBigDecimal("deliveryFee")); +// statisticsDistributionPackageEntity.setDeliveryLoadingFee(json.getBigDecimal("deliveryLoadingFee")); +// statisticsDistributionPackageEntity.setRealDeliveryLoadingFee(json.getBigDecimal("deliveryLoadingFee")); +// statisticsDistributionPackageEntity.setDeliverySortingFee(json.getBigDecimal("deliverySortingFee")); +// statisticsDistributionPackageEntity.setRealDeliverySortingFee(json.getBigDecimal("deliverySortingFee")); +// statisticsDistributionPackageEntity.setDeliveryUpfloorFee(json.getBigDecimal("deliveryUpfloorFee")); +// statisticsDistributionPackageEntity.setRealDeliveryUpfloorFee(json.getBigDecimal("deliveryUpfloorFee")); +// statisticsDistributionPackageEntity.setDeliveryMoveFee(json.getBigDecimal("deliveryMoveFee")); +// statisticsDistributionPackageEntity.setRealDeliveryMoveFee(json.getBigDecimal("deliveryMoveFee")); +// statisticsDistributionPackageEntity.setDeliveryDistance(json.getBigDecimal("deliveryDistance")); +// statisticsDistributionPackageEntity.setRealDeliveryDistance(json.getBigDecimal("deliveryDistance")); +// statisticsDistributionPackageEntity.setDeliveryCrossingFee(json.getBigDecimal("deliveryCrossingFee")); +// statisticsDistributionPackageEntity.setRealDeliveryCrossingFee(json.getBigDecimal("deliveryCrossingFee")); +// statisticsDistributionPackageEntities.add(statisticsDistributionPackageEntity); +// // } - - - //把statisticsPackageInfoEntities的orderCode作为key进行分组 - Map> trunklineMap = statisticsTrunklinePackageEntities.stream().collect(Collectors.groupingBy(StatisticsTrunklinePackageEntity::getOrderCode)); - Map> warehouseMap = statisticsWarehousePackageEntities.stream().collect(Collectors.groupingBy(StatisticsWarehousePackageEntity::getOrderCode)); - Map> distributionMap = statisticsDistributionPackageEntities.stream().collect(Collectors.groupingBy(StatisticsDistributionPackageEntity::getOrderCode)); - List orderInfoEntities = new ArrayList<>(); - trunklineMap.keySet().forEach(key -> { - - StatisticsOrderInfoEntity statisticsOrderInfoEntity = new StatisticsOrderInfoEntity(); - statisticsOrderInfoEntity.setBrandId(brandId); - statisticsOrderInfoEntity.setConsigneeId(consigneeId); - statisticsOrderInfoEntity.setWaybillId(waybillId); - statisticsOrderInfoEntity.setWaybillNo(waybillNo); - statisticsOrderInfoEntity.setOrderCode(key); - statisticsOrderInfoEntity.setTypeService(typeService); - statisticsOrderInfoEntity.setSignStatus(0); - statisticsOrderInfoEntity.setConfirmStatisticsOrder(0); - statisticsOrderInfoEntity.setChangesFee(BigDecimal.ZERO); - orderInfoEntities.add(statisticsOrderInfoEntity); - }); - - statisticsOrderInfoService.saveBatch(orderInfoEntities); - - List statisticsTrunklinePackageSaveList = new ArrayList<>(); - List statisticsWarehousePackageSaveList = new ArrayList<>(); - List statisticsDistributionPackageSaveList = new ArrayList<>(); - orderInfoEntities.forEach(statisticsOrderInfoEntity -> { - String orderCode = statisticsOrderInfoEntity.getOrderCode(); - Long orderInfoId = statisticsOrderInfoEntity.getId(); - List statisticsTrunklinePackageEntityList= trunklineMap.get(orderCode); - statisticsTrunklinePackageEntityList.forEach(statisticsTrunklinePackageEntity -> { - statisticsTrunklinePackageEntity.setOrderInfoId(orderInfoId); - }); - statisticsTrunklinePackageSaveList.addAll(statisticsTrunklinePackageEntityList); - List statisticsWarehousePackageEntityList= warehouseMap.get(orderCode); - statisticsWarehousePackageEntityList.forEach(statisticsWarehousePackageEntity -> { - statisticsWarehousePackageEntity.setOrderInfoId(orderInfoId); - }); - statisticsWarehousePackageSaveList.addAll(statisticsWarehousePackageEntityList); - List statisticsDistributionPackageEntityList= distributionMap.get(orderCode); - statisticsDistributionPackageEntityList.forEach(statisticsDistributionPackageEntity -> { - statisticsDistributionPackageEntity.setOrderInfoId(orderInfoId); - }); - statisticsDistributionPackageSaveList.addAll(statisticsDistributionPackageEntityList); - - }); - statisticsTrunklinePackageService.saveBatch(statisticsTrunklinePackageSaveList); - statisticsWarehousePackageService.saveBatch(statisticsWarehousePackageSaveList); - statisticsDistributionPackageService.saveBatch(statisticsDistributionPackageSaveList); - +// +// +//// //生成运单维度 +//// if(!"2".equals(typeService)){ +//// StatisticsWaybillInfoEntity statisticsWaybillInfoEntity = new StatisticsWaybillInfoEntity(); +//// statisticsWaybillInfoEntity.setWaybillNo(waybillNo); +//// statisticsWaybillInfoEntity.setWaybillId(waybillId); +//// statisticsWaybillInfoEntity.setTypeService(typeService); +//// statisticsWaybillInfoEntity.setConfirmStatisticsOrder(0); +//// statisticsWaybillInfoService.save(statisticsWaybillInfoEntity); +//// waybillInfoId = statisticsWaybillInfoEntity.getId(); +//// } +// +// +// //把statisticsPackageInfoEntities的orderCode作为key进行分组 +// Map> trunklineMap = statisticsTrunklinePackageEntities.stream().collect(Collectors.groupingBy(StatisticsTrunklinePackageEntity::getOrderCode)); +// Map> warehouseMap = statisticsWarehousePackageEntities.stream().collect(Collectors.groupingBy(StatisticsWarehousePackageEntity::getOrderCode)); +// Map> distributionMap = statisticsDistributionPackageEntities.stream().collect(Collectors.groupingBy(StatisticsDistributionPackageEntity::getOrderCode)); +// List orderInfoEntities = new ArrayList<>(); +// trunklineMap.keySet().forEach(key -> { +// +// StatisticsOrderInfoEntity statisticsOrderInfoEntity = new StatisticsOrderInfoEntity(); +// statisticsOrderInfoEntity.setBrandId(brandId); +// statisticsOrderInfoEntity.setConsigneeId(consigneeId); +// statisticsOrderInfoEntity.setWaybillId(waybillId); +// statisticsOrderInfoEntity.setWaybillNo(waybillNo); +// statisticsOrderInfoEntity.setOrderCode(key); +// statisticsOrderInfoEntity.setTypeService(typeService); +// statisticsOrderInfoEntity.setSignStatus(0); +// statisticsOrderInfoEntity.setConfirmStatisticsOrder(0); +// statisticsOrderInfoEntity.setChangesFee(BigDecimal.ZERO); +// orderInfoEntities.add(statisticsOrderInfoEntity); +// }); +// +// statisticsOrderInfoService.saveBatch(orderInfoEntities); +// +// List statisticsTrunklinePackageSaveList = new ArrayList<>(); +// List statisticsWarehousePackageSaveList = new ArrayList<>(); +// List statisticsDistributionPackageSaveList = new ArrayList<>(); // orderInfoEntities.forEach(statisticsOrderInfoEntity -> { // String orderCode = statisticsOrderInfoEntity.getOrderCode(); // Long orderInfoId = statisticsOrderInfoEntity.getId(); +// List statisticsTrunklinePackageEntityList= trunklineMap.get(orderCode); +// statisticsTrunklinePackageEntityList.forEach(statisticsTrunklinePackageEntity -> { +// statisticsTrunklinePackageEntity.setOrderInfoId(orderInfoId); +// }); +// statisticsTrunklinePackageSaveList.addAll(statisticsTrunklinePackageEntityList); // List statisticsWarehousePackageEntityList= warehouseMap.get(orderCode); // statisticsWarehousePackageEntityList.forEach(statisticsWarehousePackageEntity -> { // statisticsWarehousePackageEntity.setOrderInfoId(orderInfoId); // }); // statisticsWarehousePackageSaveList.addAll(statisticsWarehousePackageEntityList); -// }); -// -// statisticsWarehousePackageService.saveBatch(statisticsWarehousePackageSaveList); -// -// orderInfoEntities.forEach(statisticsOrderInfoEntity -> { -// String orderCode = statisticsOrderInfoEntity.getOrderCode(); -// Long orderInfoId = statisticsOrderInfoEntity.getId(); // List statisticsDistributionPackageEntityList= distributionMap.get(orderCode); // statisticsDistributionPackageEntityList.forEach(statisticsDistributionPackageEntity -> { // statisticsDistributionPackageEntity.setOrderInfoId(orderInfoId); // }); // statisticsDistributionPackageSaveList.addAll(statisticsDistributionPackageEntityList); -// }); // +// }); +// statisticsTrunklinePackageService.saveBatch(statisticsTrunklinePackageSaveList); +// statisticsWarehousePackageService.saveBatch(statisticsWarehousePackageSaveList); // statisticsDistributionPackageService.saveBatch(statisticsDistributionPackageSaveList); - - - log.info("处理完成:{}", msg); - } - - - - @RabbitListener(bindings = @QueueBinding( - value = @Queue(name = FanoutConstants.trunkline.UPDATEWAYBILL.QUEUE.STATISTICSDATA_UPDATEPACKAGEINFO), - exchange = @Exchange(name = FanoutConstants.trunkline.UPDATEWAYBILL.EXCHANGE, type = ExchangeTypes.FANOUT) - )) - @Transactional(rollbackFor = Exception.class) - public void updateWaybillData(String msg) { - log.info("接收到消息:{}", msg); - - JSONObject jsonObject = JSONUtil.parseObj(msg); - Long warehouseId = jsonObject.getLong("warehouseId"); - String warehouseName = jsonObject.getStr("warehouseName"); - Long waybillId = jsonObject.getLong("waybillId"); - String waybillNo = jsonObject.getStr("waybillNo"); - String typeService = jsonObject.getStr("typeService");//服务类型 - - statisticsTrunklinePackageService.deleteListByWaybillId(waybillId); - - List orderInfoEntities = statisticsOrderInfoService.findListByWaybillId(waybillId); - //把orderInfoEntities以orderCode未key,元素本身为value转成Map - Map orderInfoMap = orderInfoEntities.stream() - .collect(Collectors.toMap( - StatisticsOrderInfoEntity::getOrderCode, - entity -> entity - )); - List statisticsTrunklinePackageEntities = new ArrayList<>(); - - JSONArray orderPackageCodes = jsonObject.getJSONArray("orderPackageCodes"); - for (int i = 0; i < orderPackageCodes.size(); i++) { - JSONObject json = orderPackageCodes.getJSONObject(i); - - //干线 - StatisticsTrunklinePackageEntity statisticsTrunklinePackageEntity = new StatisticsTrunklinePackageEntity(); - statisticsTrunklinePackageEntity.setWarehouseId(warehouseId); - statisticsTrunklinePackageEntity.setWarehouseName(warehouseName); - statisticsTrunklinePackageEntity.setTypeService(typeService); - statisticsTrunklinePackageEntity.setWaybillId(waybillId); - statisticsTrunklinePackageEntity.setWaybillNo(waybillNo); - Integer waybillType = json.getInt("waybillType"); - if(waybillType.equals(1)){ - statisticsTrunklinePackageEntity.setGoodsType(1); - }else if (waybillType.equals(2)){ - statisticsTrunklinePackageEntity.setGoodsType(2); - }else{ - statisticsTrunklinePackageEntity.setGoodsType(3); - } - String orderCode = json.getStr("orderCode"); - StatisticsOrderInfoEntity statisticsOrderInfoEntity = orderInfoMap.get(orderCode); - statisticsTrunklinePackageEntity.setOrderInfoId(statisticsOrderInfoEntity.getId()); - statisticsTrunklinePackageEntity.setOrderCode(orderCode); - statisticsTrunklinePackageEntity.setOrderPackageCode(json.getStr("orderPackageCode")); - statisticsTrunklinePackageEntity.setProductName(json.getStr("productName")); - statisticsTrunklinePackageEntity.setTotalNum(json.getInt("totalNum")); - statisticsTrunklinePackageEntity.setTotalWeight(json.getBigDecimal("totalWeight")); - statisticsTrunklinePackageEntity.setTotalVolume(json.getBigDecimal("totalVolume")); - statisticsTrunklinePackageEntity.setOpenPrice(json.getBigDecimal("openPrice")); - statisticsTrunklinePackageEntity.setTotalPrice(json.getBigDecimal("openPrice")); - statisticsTrunklinePackageEntity.setPickupFee(json.getBigDecimal("pickupFee")); - statisticsTrunklinePackageEntity.setRealPickupFee(json.getBigDecimal("pickupFee")); - statisticsTrunklinePackageEntity.setFreightFee(json.getBigDecimal("freightFee")); - statisticsTrunklinePackageEntity.setRealFreightFee(json.getBigDecimal("freightFee")); - statisticsTrunklinePackageEntity.setInstallFee(json.getBigDecimal("installFee")); - statisticsTrunklinePackageEntity.setRealInstallFee(json.getBigDecimal("installFee")); - statisticsTrunklinePackageEntity.setQuotationFee(json.getBigDecimal("quotationFee")); - statisticsTrunklinePackageEntity.setRealQuotationFee(json.getBigDecimal("quotationFee")); - statisticsTrunklinePackageEntity.setClaimingValue(json.getBigDecimal("claimingValue")); - statisticsTrunklinePackageEntity.setRealClaimingValue(json.getBigDecimal("claimingValue")); - statisticsTrunklinePackageEntity.setOtherFee(json.getBigDecimal("otherFee")); - statisticsTrunklinePackageEntity.setRealOtherFee(json.getBigDecimal("otherFee")); - statisticsTrunklinePackageEntity.setReturnFee(json.getBigDecimal("returnFee")); - statisticsTrunklinePackageEntity.setRealReturnFee(json.getBigDecimal("returnFee")); - statisticsTrunklinePackageEntity.setThirdOprationFee(json.getBigDecimal("thirdOprationFee")); - statisticsTrunklinePackageEntity.setRealThirdOprationFee(json.getBigDecimal("thirdOprationFee")); - statisticsTrunklinePackageEntity.setXPay(json.getBigDecimal("xPay")); - statisticsTrunklinePackageEntity.setRealXPay(json.getBigDecimal("xPay")); - statisticsTrunklinePackageEntity.setDPay(json.getBigDecimal("dPay")); - statisticsTrunklinePackageEntity.setRealDPay(json.getBigDecimal("dPay")); - statisticsTrunklinePackageEntity.setHPay(json.getBigDecimal("hPay")); - statisticsTrunklinePackageEntity.setRealHPay(json.getBigDecimal("hPay")); - statisticsTrunklinePackageEntity.setYPay(json.getBigDecimal("yPay")); - statisticsTrunklinePackageEntity.setRealYPay(json.getBigDecimal("yPay")); - statisticsTrunklinePackageEntities.add(statisticsTrunklinePackageEntity); - - } - statisticsTrunklinePackageService.saveBatch(statisticsTrunklinePackageEntities); - - } +// +//// orderInfoEntities.forEach(statisticsOrderInfoEntity -> { +//// String orderCode = statisticsOrderInfoEntity.getOrderCode(); +//// Long orderInfoId = statisticsOrderInfoEntity.getId(); +//// List statisticsWarehousePackageEntityList= warehouseMap.get(orderCode); +//// statisticsWarehousePackageEntityList.forEach(statisticsWarehousePackageEntity -> { +//// statisticsWarehousePackageEntity.setOrderInfoId(orderInfoId); +//// }); +//// statisticsWarehousePackageSaveList.addAll(statisticsWarehousePackageEntityList); +//// }); +//// +//// statisticsWarehousePackageService.saveBatch(statisticsWarehousePackageSaveList); +//// +//// orderInfoEntities.forEach(statisticsOrderInfoEntity -> { +//// String orderCode = statisticsOrderInfoEntity.getOrderCode(); +//// Long orderInfoId = statisticsOrderInfoEntity.getId(); +//// List statisticsDistributionPackageEntityList= distributionMap.get(orderCode); +//// statisticsDistributionPackageEntityList.forEach(statisticsDistributionPackageEntity -> { +//// statisticsDistributionPackageEntity.setOrderInfoId(orderInfoId); +//// }); +//// statisticsDistributionPackageSaveList.addAll(statisticsDistributionPackageEntityList); +//// }); +//// +//// statisticsDistributionPackageService.saveBatch(statisticsDistributionPackageSaveList); +// +// +// log.info("处理完成:{}", msg); +// } +// +// +// +// @RabbitListener(bindings = @QueueBinding( +// value = @Queue(name = FanoutConstants.trunkline.UPDATEWAYBILL.QUEUE.STATISTICSDATA_UPDATEPACKAGEINFO), +// exchange = @Exchange(name = FanoutConstants.trunkline.UPDATEWAYBILL.EXCHANGE, type = ExchangeTypes.FANOUT) +// )) +// @Transactional(rollbackFor = Exception.class) +// public void updateWaybillData(String msg) { +// log.info("接收到消息:{}", msg); +// +// JSONObject jsonObject = JSONUtil.parseObj(msg); +// Long warehouseId = jsonObject.getLong("warehouseId"); +// String warehouseName = jsonObject.getStr("warehouseName"); +// Long waybillId = jsonObject.getLong("waybillId"); +// String waybillNo = jsonObject.getStr("waybillNo"); +// String typeService = jsonObject.getStr("typeService");//服务类型 +// +// statisticsTrunklinePackageService.deleteListByWaybillId(waybillId); +// +// List orderInfoEntities = statisticsOrderInfoService.findListByWaybillId(waybillId); +// //把orderInfoEntities以orderCode未key,元素本身为value转成Map +// Map orderInfoMap = orderInfoEntities.stream() +// .collect(Collectors.toMap( +// StatisticsOrderInfoEntity::getOrderCode, +// entity -> entity +// )); +// List statisticsTrunklinePackageEntities = new ArrayList<>(); +// +// JSONArray orderPackageCodes = jsonObject.getJSONArray("orderPackageCodes"); +// for (int i = 0; i < orderPackageCodes.size(); i++) { +// JSONObject json = orderPackageCodes.getJSONObject(i); +// +// //干线 +// StatisticsTrunklinePackageEntity statisticsTrunklinePackageEntity = new StatisticsTrunklinePackageEntity(); +// statisticsTrunklinePackageEntity.setWarehouseId(warehouseId); +// statisticsTrunklinePackageEntity.setWarehouseName(warehouseName); +// statisticsTrunklinePackageEntity.setTypeService(typeService); +// statisticsTrunklinePackageEntity.setWaybillId(waybillId); +// statisticsTrunklinePackageEntity.setWaybillNo(waybillNo); +// Integer waybillType = json.getInt("waybillType"); +// if(waybillType.equals(1)){ +// statisticsTrunklinePackageEntity.setGoodsType(1); +// }else if (waybillType.equals(2)){ +// statisticsTrunklinePackageEntity.setGoodsType(2); +// }else{ +// statisticsTrunklinePackageEntity.setGoodsType(3); +// } +// String orderCode = json.getStr("orderCode"); +// StatisticsOrderInfoEntity statisticsOrderInfoEntity = orderInfoMap.get(orderCode); +// statisticsTrunklinePackageEntity.setOrderInfoId(statisticsOrderInfoEntity.getId()); +// statisticsTrunklinePackageEntity.setOrderCode(orderCode); +// statisticsTrunklinePackageEntity.setOrderPackageCode(json.getStr("orderPackageCode")); +// statisticsTrunklinePackageEntity.setProductName(json.getStr("productName")); +// statisticsTrunklinePackageEntity.setTotalNum(json.getInt("totalNum")); +// statisticsTrunklinePackageEntity.setTotalWeight(json.getBigDecimal("totalWeight")); +// statisticsTrunklinePackageEntity.setTotalVolume(json.getBigDecimal("totalVolume")); +// statisticsTrunklinePackageEntity.setOpenPrice(json.getBigDecimal("openPrice")); +// statisticsTrunklinePackageEntity.setTotalPrice(json.getBigDecimal("openPrice")); +// statisticsTrunklinePackageEntity.setPickupFee(json.getBigDecimal("pickupFee")); +// statisticsTrunklinePackageEntity.setRealPickupFee(json.getBigDecimal("pickupFee")); +// statisticsTrunklinePackageEntity.setFreightFee(json.getBigDecimal("freightFee")); +// statisticsTrunklinePackageEntity.setRealFreightFee(json.getBigDecimal("freightFee")); +// statisticsTrunklinePackageEntity.setInstallFee(json.getBigDecimal("installFee")); +// statisticsTrunklinePackageEntity.setRealInstallFee(json.getBigDecimal("installFee")); +// statisticsTrunklinePackageEntity.setQuotationFee(json.getBigDecimal("quotationFee")); +// statisticsTrunklinePackageEntity.setRealQuotationFee(json.getBigDecimal("quotationFee")); +// statisticsTrunklinePackageEntity.setClaimingValue(json.getBigDecimal("claimingValue")); +// statisticsTrunklinePackageEntity.setRealClaimingValue(json.getBigDecimal("claimingValue")); +// statisticsTrunklinePackageEntity.setOtherFee(json.getBigDecimal("otherFee")); +// statisticsTrunklinePackageEntity.setRealOtherFee(json.getBigDecimal("otherFee")); +// statisticsTrunklinePackageEntity.setReturnFee(json.getBigDecimal("returnFee")); +// statisticsTrunklinePackageEntity.setRealReturnFee(json.getBigDecimal("returnFee")); +// statisticsTrunklinePackageEntity.setThirdOprationFee(json.getBigDecimal("thirdOprationFee")); +// statisticsTrunklinePackageEntity.setRealThirdOprationFee(json.getBigDecimal("thirdOprationFee")); +// statisticsTrunklinePackageEntity.setXPay(json.getBigDecimal("xPay")); +// statisticsTrunklinePackageEntity.setRealXPay(json.getBigDecimal("xPay")); +// statisticsTrunklinePackageEntity.setDPay(json.getBigDecimal("dPay")); +// statisticsTrunklinePackageEntity.setRealDPay(json.getBigDecimal("dPay")); +// statisticsTrunklinePackageEntity.setHPay(json.getBigDecimal("hPay")); +// statisticsTrunklinePackageEntity.setRealHPay(json.getBigDecimal("hPay")); +// statisticsTrunklinePackageEntity.setYPay(json.getBigDecimal("yPay")); +// statisticsTrunklinePackageEntity.setRealYPay(json.getBigDecimal("yPay")); +// statisticsTrunklinePackageEntities.add(statisticsTrunklinePackageEntity); +// +// } +// statisticsTrunklinePackageService.saveBatch(statisticsTrunklinePackageEntities); +// +// } } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsAftersalesOrderRecordMapper.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsAftersalesOrderRecordMapper.java new file mode 100644 index 000000000..4ee025842 --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsAftersalesOrderRecordMapper.java @@ -0,0 +1,9 @@ +package com.logpm.statistics.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.logpm.statistics.entity.StatisticsAftersalesOrderRecordEntity; +import org.mapstruct.Mapper; + +@Mapper +public interface StatisticsAftersalesOrderRecordMapper extends BaseMapper { +} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsChangesRecordMapper.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsChangesRecordMapper.java index 7ee92cc01..cae1f984f 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsChangesRecordMapper.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsChangesRecordMapper.java @@ -9,5 +9,5 @@ import java.math.BigDecimal; @Mapper public interface StatisticsChangesRecordMapper extends BaseMapper { - BigDecimal findChangesFeeByOrderInfoId(@Param("orderInfoId") Long orderInfoId); + BigDecimal findChangesFeeByReconciliationOrderId(@Param("reconciliationOrderId") Long reconciliationOrderId); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsChangesRecordMapper.xml b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsChangesRecordMapper.xml index a013a59d4..75a866aef 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsChangesRecordMapper.xml +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsChangesRecordMapper.xml @@ -2,11 +2,11 @@ - select sum(total_fee) from logpm_statistics_changes_record - where order_info_id = #{orderInfoId} + where reconciliation_order_id = #{reconciliationOrderId} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsDistributionPackageMapper.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsDistributionPackageMapper.java index d77df8e77..2f437dbb4 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsDistributionPackageMapper.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsDistributionPackageMapper.java @@ -3,7 +3,11 @@ package com.logpm.statistics.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.logpm.statistics.entity.StatisticsDistributionPackageEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; @Mapper public interface StatisticsDistributionPackageMapper extends BaseMapper { + void deleteListByOrderInfoIds(@Param("orderInfoIdsList") List orderInfoIdsList); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsDistributionPackageMapper.xml b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsDistributionPackageMapper.xml new file mode 100644 index 000000000..d59101c32 --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsDistributionPackageMapper.xml @@ -0,0 +1,13 @@ + + + + + + delete from logpm_statistics_distribution_package + where order_info_id in + + #{orderInfoId} + + + + diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.java index 4cdc33d8c..f5fab987a 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.java @@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.statistics.dto.MerchantStatisticsDTO; import com.logpm.statistics.entity.StatisticsOrderInfoEntity; +import com.logpm.statistics.vo.StatisticsOrderInfoExportVO; import com.logpm.statistics.vo.StatisticsOrderInfoVO; +import com.logpm.statistics.vo.StatisticsPackageFeeInfoVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; @Mapper @@ -17,5 +20,19 @@ public interface StatisticsOrderInfoMapper extends BaseMapper findStatementListByOrderInfoIds(@Param("orderInfoIds") List orderInfoIds); - StatisticsOrderInfoVO findOrderDetail(@Param("orderInfoId") Long orderInfoId); + List findOrderDetail(@Param("reconciliationOrderId") Long reconciliationOrderId); + + StatisticsPackageFeeInfoVO findPackageListByOrderIds(@Param("orderInfoIds") List orderInfoIdsList); + + List findPackageListByOrderIdsGroupById(@Param("orderInfoIds") List orderInfoIdList); + + List findOrderInfoIdListByReconciliationOrderIds(@Param("reconciliationOrderIds") List reconciliationOrderIds); + + Integer findCreateRencilitionOrderStatus(@Param("waybillId") Long waybillId); + + void deleteListByOrderInfoIds(@Param("orderInfoIdsList") List orderInfoIdsList); + + void clearReconcilitionOrderInfoByOrderInfoIds(@Param("orderInfoIds") List orderInfoIds, @Param("nickName") String nickName, @Param("date") Date date); + + List orderInfoListExport(@Param("param") MerchantStatisticsDTO merchantStatisticsDTO); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml index e0663c77c..018fd8233 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsOrderInfoMapper.xml @@ -4,9 +4,12 @@ + + + + + + + + + + + + + + + + + + + + delete from logpm_statistics_order_info + where id in + + #{item} + + + + + update logpm_statistics_order_info + set + reconciliation_order_id = null, + reconciliation_order_no = null, + create_reconciliation_order_status = 0, + create_reconciliation_user_name = null, + create_reconciliation_date = null, + cancle_reconciliation_user_name = #{nickName}, + cancle_reconciliation_date = #{date} + where id in + + #{item} + + + + diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsReconciliationOrderInfoMapper.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsReconciliationOrderInfoMapper.java new file mode 100644 index 000000000..df4379184 --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsReconciliationOrderInfoMapper.java @@ -0,0 +1,19 @@ +package com.logpm.statistics.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.logpm.statistics.dto.MerchantStatisticsDTO; +import com.logpm.statistics.entity.StatisticsReconciliationOrderInfoEntity; +import org.apache.ibatis.annotations.Param; +import org.mapstruct.Mapper; + +import java.math.BigDecimal; + +@Mapper +public interface StatisticsReconciliationOrderInfoMapper extends BaseMapper { + + + IPage pageReconciliationList(IPage page, @Param("param")MerchantStatisticsDTO merchantStatisticsDTO); + + void addAftersalesFeeById(@Param("reconciliationOrderId") Long reconciliationOrderId, @Param("aftersalesFee") BigDecimal aftersalesFee); +} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsReconciliationOrderInfoMapper.xml b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsReconciliationOrderInfoMapper.xml new file mode 100644 index 000000000..5fe4aeea7 --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsReconciliationOrderInfoMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + update logpm_statistics_reconciliation_order_info + set aftersales_fee = aftersales_fee + #{aftersalesFee} + where id = #{reconciliationOrderId} + + + + diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsTrunklinePackageMapper.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsTrunklinePackageMapper.java index bcfb01986..76add8c28 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsTrunklinePackageMapper.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsTrunklinePackageMapper.java @@ -5,7 +5,10 @@ import com.logpm.statistics.entity.StatisticsTrunklinePackageEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + @Mapper public interface StatisticsTrunklinePackageMapper extends BaseMapper { - void deleteListByWaybillId(@Param("waybillId") Long waybillId); + + void deleteListByOrderInfoIds(@Param("orderInfoIdsList") List orderInfoIdsList); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsTrunklinePackageMapper.xml b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsTrunklinePackageMapper.xml index 608fa792e..d616f604c 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsTrunklinePackageMapper.xml +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsTrunklinePackageMapper.xml @@ -2,9 +2,12 @@ - + delete from logpm_statistics_trunkline_package - where waybill_id = #{waybillId} + where order_info_id in + + #{orderInfoId} + diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsWarehousePackageMapper.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsWarehousePackageMapper.java index ea64a49fd..9685a7f83 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsWarehousePackageMapper.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsWarehousePackageMapper.java @@ -3,7 +3,11 @@ package com.logpm.statistics.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.logpm.statistics.entity.StatisticsWarehousePackageEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; @Mapper public interface StatisticsWarehousePackageMapper extends BaseMapper { + void deleteListByOrderInfoIds(@Param("orderInfoIdsList") List orderInfoIdsList); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsWarehousePackageMapper.xml b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsWarehousePackageMapper.xml new file mode 100644 index 000000000..fd557daf4 --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsWarehousePackageMapper.xml @@ -0,0 +1,13 @@ + + + + + + delete from logpm_statistics_warehouse_package + where order_info_id in + + #{orderInfoId} + + + + diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsAftersalesOrderRecordService.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsAftersalesOrderRecordService.java new file mode 100644 index 000000000..728cbde86 --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsAftersalesOrderRecordService.java @@ -0,0 +1,10 @@ +package com.logpm.statistics.service; + +import com.logpm.statistics.entity.StatisticsAftersalesOrderRecordEntity; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; + +public interface IStatisticsAftersalesOrderRecordService extends BaseService { + List findListByReconciliationOrderId(Long reconciliationOrderId); +} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsChangesRecordService.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsChangesRecordService.java index f06118813..931a22518 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsChangesRecordService.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsChangesRecordService.java @@ -6,5 +6,5 @@ import org.springblade.core.mp.base.BaseService; import java.math.BigDecimal; public interface IStatisticsChangesRecordService extends BaseService { - BigDecimal findChangesFeeByOrderInfoId(Long orderInfoId); + BigDecimal findChangesFeeByReconciliationOrderId(Long reconciliationOrderId); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsDistributionPackageService.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsDistributionPackageService.java index bd1091536..212960be6 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsDistributionPackageService.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsDistributionPackageService.java @@ -10,4 +10,6 @@ public interface IStatisticsDistributionPackageService extends BaseService findListByOrderPackageCodes(List orderPackageCodeList); List findListByOrderInfoSet(Set orderInfoSet); + + void deleteListByOrderInfoIds(List orderInfoIdsList); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsOrderInfoService.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsOrderInfoService.java index 17c142cf6..4402e4a9d 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsOrderInfoService.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsOrderInfoService.java @@ -5,7 +5,9 @@ import com.logpm.statistics.dto.ChangesRecordDTO; import com.logpm.statistics.dto.MerchantStatisticsDTO; import com.logpm.statistics.entity.StatisticsOrderInfoEntity; import com.logpm.statistics.vo.StatisticsChangesRecordVO; +import com.logpm.statistics.vo.StatisticsOrderInfoExportVO; import com.logpm.statistics.vo.StatisticsOrderInfoVO; +import com.logpm.statistics.vo.StatisticsPackageFeeInfoVO; import org.springblade.core.mp.base.BaseService; import org.springblade.core.tool.api.R; @@ -25,7 +27,7 @@ public interface IStatisticsOrderInfoService extends BaseService findOrderDetail(Long reconciliationOrderId); /** * 计算实际费用 @@ -34,4 +36,22 @@ public interface IStatisticsOrderInfoService extends BaseService orderInfoIdsList); + + R createReconciliationOrder(List orderInfoIds); + + R findAftersalesOrderList(Long consigneeId); + + R addAftersalesToReconciliationOrder(MerchantStatisticsDTO merchantStatisticsDTO); + + R findReconciliationOrderAftersalesOrder(MerchantStatisticsDTO merchantStatisticsDTO); + + Integer findCreateRencilitionOrderStatus(Long waybillId); + + void deleteListByOrderInfoIds(List orderInfoIdsList); + + R cancleOrderInfoBindReconcilitionOrder(Long reconciliationOrderId, List orderInfoIds); + + List orderInfoListExport(MerchantStatisticsDTO merchantStatisticsDTO); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsReconciliationOrderInfoService.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsReconciliationOrderInfoService.java new file mode 100644 index 000000000..3a12dff5e --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsReconciliationOrderInfoService.java @@ -0,0 +1,14 @@ +package com.logpm.statistics.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.logpm.statistics.dto.MerchantStatisticsDTO; +import com.logpm.statistics.entity.StatisticsReconciliationOrderInfoEntity; +import org.springblade.core.mp.base.BaseService; + +import java.math.BigDecimal; + +public interface IStatisticsReconciliationOrderInfoService extends BaseService { + IPage pageReconciliationList(MerchantStatisticsDTO merchantStatisticsDTO); + + void addAftersalesFeeById(Long reconciliationOrderId, BigDecimal aftersalesFee); +} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsTrunklinePackageService.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsTrunklinePackageService.java index 48e4c63d1..4995816d0 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsTrunklinePackageService.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsTrunklinePackageService.java @@ -1,8 +1,12 @@ package com.logpm.statistics.service; import com.logpm.statistics.entity.StatisticsTrunklinePackageEntity; +import org.apache.ibatis.annotations.Param; import org.springblade.core.mp.base.BaseService; +import java.util.List; + public interface IStatisticsTrunklinePackageService extends BaseService { - void deleteListByWaybillId(Long waybillId); + + void deleteListByOrderInfoIds(List orderInfoIdsList); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsWarehousePackageService.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsWarehousePackageService.java index 548822224..db10e9f75 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsWarehousePackageService.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/IStatisticsWarehousePackageService.java @@ -3,5 +3,8 @@ package com.logpm.statistics.service; import com.logpm.statistics.entity.StatisticsWarehousePackageEntity; import org.springblade.core.mp.base.BaseService; +import java.util.List; + public interface IStatisticsWarehousePackageService extends BaseService { + void deleteListByOrderInfoIds(List orderInfoIdsList); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsAftersalesOrderRecordServiceImpl.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsAftersalesOrderRecordServiceImpl.java new file mode 100644 index 000000000..2a19c42a8 --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsAftersalesOrderRecordServiceImpl.java @@ -0,0 +1,26 @@ +package com.logpm.statistics.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.logpm.statistics.entity.StatisticsAftersalesOrderRecordEntity; +import com.logpm.statistics.mapper.StatisticsAftersalesOrderRecordMapper; +import com.logpm.statistics.service.IStatisticsAftersalesOrderRecordService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@Slf4j +@AllArgsConstructor +public class StatisticsAftersalesOrderRecordServiceImpl extends BaseServiceImpl implements IStatisticsAftersalesOrderRecordService { + @Override + public List findListByReconciliationOrderId(Long reconciliationOrderId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("reconciliation_order_id", reconciliationOrderId) + .eq("is_deleted",0); + + return baseMapper.selectList(queryWrapper); + } +} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsBalanceOrderInfoServiceImpl.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsBalanceOrderInfoServiceImpl.java index d742108ac..eb2201bd1 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsBalanceOrderInfoServiceImpl.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsBalanceOrderInfoServiceImpl.java @@ -15,6 +15,7 @@ import com.logpm.statistics.vo.StatisticsBalanceOrderInfoVO; import com.logpm.statistics.vo.StatisticsBalanceRecordVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springblade.common.exception.CustomerException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; @@ -57,12 +58,12 @@ public class StatisticsBalanceOrderInfoServiceImpl extends BaseServiceImpl abnormalPhotoEntityList = balanceAbnormalDTO.getAbnormalPhotoEntityList(); abnormalPhotoEntityList.forEach(abnormalPhotoEntity -> { - abnormalPhotoEntity.setAbnormalId(balanceAbnormalEntity.getId()); + abnormalPhotoEntity.setAbnormalId(balanceAbnormalId); }); balanceAbnormalPhotoService.saveBatch(abnormalPhotoEntityList); @@ -72,7 +73,7 @@ public class StatisticsBalanceOrderInfoServiceImpl extends BaseServiceImpl implements IStatisticsChangesRecordService { @Override - public BigDecimal findChangesFeeByOrderInfoId(Long orderInfoId) { - return baseMapper.findChangesFeeByOrderInfoId(orderInfoId); + public BigDecimal findChangesFeeByReconciliationOrderId(Long reconciliationOrderId) { + return baseMapper.findChangesFeeByReconciliationOrderId(reconciliationOrderId); } } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsDistributionPackageServiceImpl.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsDistributionPackageServiceImpl.java index fad19ef2b..615dd065a 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsDistributionPackageServiceImpl.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsDistributionPackageServiceImpl.java @@ -31,4 +31,9 @@ public class StatisticsDistributionPackageServiceImpl extends BaseServiceImpl orderInfoIdsList) { + baseMapper.deleteListByOrderInfoIds(orderInfoIdsList); + } } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java index ed0658f2e..b47d7e15a 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsOrderInfoServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; 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.Wrappers; @@ -11,34 +12,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.logpm.basicdata.entity.BasicdataPriceTemplateEntity; import com.logpm.basicdata.feign.IBasicdataCodeClient; import com.logpm.basicdata.feign.IBasicdataPriceClient; -import com.logpm.basicdata.vo.BasicdatPriceApiVO; -import com.logpm.basicdata.vo.PriceClientVO; -import com.logpm.basicdata.vo.PriceDispatchBasicVO; -import com.logpm.basicdata.vo.PriceDispatchVO; -import com.logpm.basicdata.vo.PriceWarehouseAdditionalVO; -import com.logpm.basicdata.vo.PriceWarehouseBasicVO; -import com.logpm.basicdata.vo.PriceWarehouseVO; +import com.logpm.basicdata.vo.*; +import com.logpm.statistics.dto.AftersalesOrderDTO; import com.logpm.statistics.dto.ChangesRecordDTO; import com.logpm.statistics.dto.MerchantStatisticsDTO; -import com.logpm.statistics.entity.StatisticsBalanceOrderInfoEntity; -import com.logpm.statistics.entity.StatisticsChangesPhotoEntity; -import com.logpm.statistics.entity.StatisticsChangesRecordEntity; -import com.logpm.statistics.entity.StatisticsDistributionPackageEntity; -import com.logpm.statistics.entity.StatisticsOrderInfoEntity; -import com.logpm.statistics.entity.StatisticsWarehousePackageEntity; +import com.logpm.statistics.entity.*; import com.logpm.statistics.mapper.StatisticsOrderInfoMapper; -import com.logpm.statistics.service.IStatisticsBalanceOrderInfoService; -import com.logpm.statistics.service.IStatisticsChangesPhotoService; -import com.logpm.statistics.service.IStatisticsChangesRecordService; -import com.logpm.statistics.service.IStatisticsDistributionPackageService; -import com.logpm.statistics.service.IStatisticsOrderInfoService; -import com.logpm.statistics.service.IStatisticsWarehousePackageService; +import com.logpm.statistics.service.*; import com.logpm.statistics.vo.StatisticsChangesRecordVO; +import com.logpm.statistics.vo.StatisticsOrderInfoExportVO; import com.logpm.statistics.vo.StatisticsOrderInfoVO; +import com.logpm.statistics.vo.StatisticsPackageFeeInfoVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springblade.common.constant.CodeNumConstant; -import org.springblade.common.constant.DictBizConstant; import org.springblade.common.enums.BooleanZeroOneEnums; import org.springblade.common.exception.CustomerException; import org.springblade.common.utils.CommonUtil; @@ -47,22 +33,12 @@ import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.DateUtil; -import org.springblade.system.cache.DictBizCache; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @Slf4j @@ -77,6 +53,8 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl findListByWaybillId(Long waybillId) { @@ -100,15 +78,32 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl statisticsOrderInfoVOIPage = baseMapper.pageList(page, merchantStatisticsDTO); + List records = statisticsOrderInfoVOIPage.getRecords(); + //把records中所有的orderInfoId放入一个集合 + List orderInfoIdList = records.stream().map(StatisticsOrderInfoVO::getOrderInfoId).collect(Collectors.toList()); + + List orderPackageInfoList = baseMapper.findPackageListByOrderIdsGroupById(orderInfoIdList); + //把orderPackageInfoList转化成以orderInfoId为key的Map + Map orderPackageInfoMap = orderPackageInfoList.stream() + .collect(Collectors.toMap(StatisticsPackageFeeInfoVO::getOrderInfoId, statisticsPackageFeeInfoVO -> statisticsPackageFeeInfoVO)); + + records.forEach(statisticsOrderInfoVO -> { + Long orderInfoId = statisticsOrderInfoVO.getOrderInfoId(); + StatisticsPackageFeeInfoVO statisticsPackageFeeInfoVO = orderPackageInfoMap.get(orderInfoId); + BeanUtil.copy(statisticsPackageFeeInfoVO, statisticsOrderInfoVO); + }); + + statisticsOrderInfoVOIPage.setRecords(records); + return statisticsOrderInfoVOIPage; } @Override public List findChangesRecordList(MerchantStatisticsDTO merchantStatisticsDTO) { - Long orderInfoId = merchantStatisticsDTO.getOrderInfoId(); + Long reconciliationOrderId = merchantStatisticsDTO.getReconciliationOrderId(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_info_id", orderInfoId); + queryWrapper.eq("reconciliation_order_id", reconciliationOrderId); List list = changesRecordService.list(queryWrapper); @@ -163,10 +158,10 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl orderInfoIds = merchantStatisticsDTO.getOrderInfoIds(); - - // 查询对应订单的数据 - List list = baseMapper.findStatementListByOrderInfoIds(orderInfoIds); - - Set brands = new HashSet<>(); - Set waybillNos = new HashSet<>(); - Set orderCodes = new HashSet<>(); - Set typeServices = new HashSet<>(); - Set productGoods = new HashSet<>(); - Set shippers = new HashSet<>(); - Set shipperPersons = new HashSet<>(); - Set shipperMobiles = new HashSet<>(); - Set shipperAddresses = new HashSet<>(); - Set consignees = new HashSet<>(); - Set consigneePersons = new HashSet<>(); - Set consigneeMobiles = new HashSet<>(); - Set consigneeAddresses = new HashSet<>(); - Set departures = new HashSet<>(); - Set destinations = new HashSet<>(); - Set departureWarehouseNames = new HashSet<>(); - Set destinationWarehouseNames = new HashSet<>(); - Set payTypes = new HashSet<>(); - Set payWays = new HashSet<>(); - AtomicReference totalCount = new AtomicReference<>(0);// 总数量 - - List totalWeights = new ArrayList<>();// 总重量 - List totalVolumes = new ArrayList();// 总体积 - List totalFees = new ArrayList(); - List openFees = new ArrayList(); - List pickupFees = new ArrayList();// 提货费 - List freightFees = new ArrayList();// 运费 - List warehouseServiceFees = new ArrayList();// 仓库服务费 - List warehouseFees = new ArrayList();// 仓储费 - List warehouseManageFees = new ArrayList();// 仓储管理费 - List warehouseSortingFees = new ArrayList();// 仓储分拣费 - List warehouseOperatingFees = new ArrayList();// 仓储操作费 - - List deliveryServiceFees = new ArrayList();// 配送服务费 - List deliveryFees = new ArrayList();// 配送费 - List deliveryLoadingFees = new ArrayList();// 配送装卸费 - List deliverySortingFees = new ArrayList();// 配送分拣费 - List deliveryUpfloorFees = new ArrayList();// 配送上楼费 - List deliveryMoveFees = new ArrayList();// 配送平移费 - List deliveryCrossingFees = new ArrayList();// 超区费 - - List installFees = new ArrayList();// 安装费 - List quotationFees = new ArrayList();// 保价费 - List claimingValues = new ArrayList();// 申明价值 - List otherFees = new ArrayList();// 其他费 - List returnFees = new ArrayList();// 回扣 - List thirdOprationFees = new ArrayList();// 三方操作费 - List xPays = new ArrayList();// 现付 - List dPays = new ArrayList();// 到付 - List hPays = new ArrayList();// 回付 - List yPays = new ArrayList();// 月结 - - - list.forEach(statisticsOrderInfoVO -> { - Long orderInfoId = statisticsOrderInfoVO.getOrderInfoId(); - Integer confirmStatisticsOrder = statisticsOrderInfoVO.getConfirmStatisticsOrder(); - if (confirmStatisticsOrder.equals(1)) { - log.warn("############checkBalance: 订单id={} 已经确认对账", orderInfoId); - throw new CustomerException(405, "存在已经确认对账的订单"); - } + List reconciliationOrderIds = merchantStatisticsDTO.getReconciliationOrderIds(); - brands.add(statisticsOrderInfoVO.getBrand()); - waybillNos.add(statisticsOrderInfoVO.getWaybillNo()); - orderCodes.add(statisticsOrderInfoVO.getOrderNo()); - typeServices.add(DictBizCache.getValue(DictBizConstant.BASIC_FREIGHT_TYPE, statisticsOrderInfoVO.getTypeService())); - String goodsName = statisticsOrderInfoVO.getGoodsName(); - if (goodsName.contains(",")) { - String[] split = goodsName.split(","); - for (int i = 0; i < split.length; i++) { - productGoods.add(split[i]); - } - } else { - productGoods.add(goodsName); + // 查询对应对账单的数据 + List statisticsReconciliationOrderInfoEntities = reconciliationOrderInfoService.listByIds(reconciliationOrderIds); + + for (StatisticsReconciliationOrderInfoEntity statisticsReconciliationOrderInfoEntity : statisticsReconciliationOrderInfoEntities) { + Integer checkStatus = statisticsReconciliationOrderInfoEntity.getCheckStatus(); + String reconciliationOrderNo = statisticsReconciliationOrderInfoEntity.getReconciliationOrderNo(); + if(checkStatus == 1){ + log.warn("############checkBalance: 对账单已经确认对账 reconciliationOrderNo={}",reconciliationOrderNo); + return R.fail(405,"对账单["+reconciliationOrderNo+"]已经确认对账"); } - shippers.add(statisticsOrderInfoVO.getShipper()); - shipperPersons.add(statisticsOrderInfoVO.getShipperPerson()); - shipperMobiles.add(statisticsOrderInfoVO.getShipperMobile()); - shipperAddresses.add(statisticsOrderInfoVO.getShipperAddress()); - consignees.add(statisticsOrderInfoVO.getConsignee()); - consigneePersons.add(statisticsOrderInfoVO.getConsigneePerson()); - consigneeMobiles.add(statisticsOrderInfoVO.getConsigneeMobile()); - consigneeAddresses.add(statisticsOrderInfoVO.getConsigneeAddress()); - departures.add(statisticsOrderInfoVO.getDeparture()); - destinations.add(statisticsOrderInfoVO.getDestination()); - departureWarehouseNames.add(statisticsOrderInfoVO.getDepartureWarehouseName()); - destinationWarehouseNames.add(statisticsOrderInfoVO.getDestinationWarehouseName()); - payTypes.add(DictBizCache.getValue(DictBizConstant.OPEN_ORDER_PAY_TYPE, statisticsOrderInfoVO.getPayType())); - payWays.add(DictBizCache.getValue(DictBizConstant.OPEN_ORDER_PAY_WAY, statisticsOrderInfoVO.getPayWay())); - - totalCount.set(totalCount.get() + statisticsOrderInfoVO.getTotalcount()); - - totalWeights.add(statisticsOrderInfoVO.getTotalWeight()); - totalVolumes.add(statisticsOrderInfoVO.getTotalVolume()); - totalFees.add(statisticsOrderInfoVO.getTotalFee()); - openFees.add(statisticsOrderInfoVO.getOpenFee()); - pickupFees.add(statisticsOrderInfoVO.getPickupFee()); - freightFees.add(statisticsOrderInfoVO.getFreightFee()); - warehouseServiceFees.add(statisticsOrderInfoVO.getWarehouseServiceFee()); - warehouseFees.add(statisticsOrderInfoVO.getWarehouseFee()); - warehouseManageFees.add(statisticsOrderInfoVO.getWarehouseManageFee()); - warehouseSortingFees.add(statisticsOrderInfoVO.getWarehouseSortingFee()); - warehouseOperatingFees.add(statisticsOrderInfoVO.getWarehouseOperatingFee()); - deliveryServiceFees.add(statisticsOrderInfoVO.getDeliveryServiceFee()); - deliveryFees.add(statisticsOrderInfoVO.getDeliveryFee()); - deliveryLoadingFees.add(statisticsOrderInfoVO.getDeliveryLoadingFee()); - deliverySortingFees.add(statisticsOrderInfoVO.getDeliverySortingFee()); - deliveryUpfloorFees.add(statisticsOrderInfoVO.getDeliveryUpfloorFee()); - deliveryMoveFees.add(statisticsOrderInfoVO.getDeliveryMoveFee()); - deliveryCrossingFees.add(statisticsOrderInfoVO.getDeliveryCrossingFee()); - installFees.add(statisticsOrderInfoVO.getInstallFee()); - quotationFees.add(statisticsOrderInfoVO.getQuotationFee()); - claimingValues.add(statisticsOrderInfoVO.getClaimingValue()); - otherFees.add(statisticsOrderInfoVO.getOtherFee()); - returnFees.add(statisticsOrderInfoVO.getReturnFee()); - thirdOprationFees.add(statisticsOrderInfoVO.getThirdOprationFee()); - xPays.add(statisticsOrderInfoVO.getXPay()); - dPays.add(statisticsOrderInfoVO.getDPay()); - hPays.add(statisticsOrderInfoVO.getHPay()); - yPays.add(statisticsOrderInfoVO.getYPay()); + } + Set consigneeIdSet = new HashSet<>(); + Set destinationWarehouseIdSet = new HashSet<>(); + Set orderCodeSet = new HashSet<>(); + Set waybillNoSet = new HashSet<>(); + Set brandSet = new HashSet<>(); + Integer isAftersales = 0; + + BigDecimal changesFee = statisticsReconciliationOrderInfoEntities.stream().map(StatisticsReconciliationOrderInfoEntity::getChangesFee).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal aftersalesFee = statisticsReconciliationOrderInfoEntities.stream().map(StatisticsReconciliationOrderInfoEntity::getAftersalesFee).reduce(BigDecimal.ZERO, BigDecimal::add); + + statisticsReconciliationOrderInfoEntities.forEach(statisticsReconciliationOrderInfoEntity -> { + Long consigneeId = statisticsReconciliationOrderInfoEntity.getConsigneeId(); + Long destinationWarehouseId = statisticsReconciliationOrderInfoEntity.getDestinationWarehouseId(); + consigneeIdSet.add(consigneeId); + destinationWarehouseIdSet.add(destinationWarehouseId); + + Integer isAftersale = statisticsReconciliationOrderInfoEntity.getIsAftersale(); + if(isAftersale != 1){ + isAftersale = 1; + } + String orderCode = statisticsReconciliationOrderInfoEntity.getOrderCode(); + String waybillNo = statisticsReconciliationOrderInfoEntity.getWaybillNo(); + String brand = statisticsReconciliationOrderInfoEntity.getBrand(); + + String[] splitOrderCode = orderCode.split(","); + orderCodeSet.addAll(Arrays.asList(splitOrderCode)); + String[] splitWaybillNo = waybillNo.split(","); + waybillNoSet.addAll(Arrays.asList(splitWaybillNo)); + String[] splitBrand = brand.split(","); + brandSet.addAll(Arrays.asList(splitBrand)); }); - // 对totalWeights进行求和 - BigDecimal totalWeight = totalWeights.stream().reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal totalVolume = totalVolumes.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 总体积 - BigDecimal totalBalanceFee = totalFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 结算总金额 TODO 这里还需要加上售后的单子金额 - BigDecimal totalFee = totalFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal openFee = openFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal pickupFee = pickupFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 提货费 - BigDecimal freightFee = freightFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 运费 - BigDecimal warehouseServiceFee = warehouseServiceFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 仓库服务费 - BigDecimal warehouseFee = warehouseFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 仓储费 - BigDecimal warehouseManageFee = warehouseManageFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 仓储管理费 - BigDecimal warehouseSortingFee = warehouseSortingFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 仓储分拣费 - BigDecimal warehouseOperatingFee = warehouseOperatingFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 仓储操作费 - - BigDecimal deliveryServiceFee = deliveryServiceFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 配送服务费 - BigDecimal deliveryFee = deliveryFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 配送费 - BigDecimal deliveryLoadingFee = deliveryLoadingFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 配送装卸费 - BigDecimal deliverySortingFee = deliverySortingFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 配送分拣费 - BigDecimal deliveryUpfloorFee = deliveryUpfloorFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 配送上楼费 - BigDecimal deliveryMoveFee = deliveryMoveFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 配送平移费 - BigDecimal deliveryCrossingFee = deliveryCrossingFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 超区费 - - BigDecimal installFee = installFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 安装费 - BigDecimal quotationFee = quotationFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 保价费 - BigDecimal claimingValue = claimingValues.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 申明价值 - BigDecimal otherFee = otherFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 其他费 - BigDecimal returnFee = returnFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 回扣 - BigDecimal thirdOprationFee = thirdOprationFees.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 三方操作费 - BigDecimal xPay = xPays.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 现付 - BigDecimal dPay = dPays.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 到付 - BigDecimal hPay = hPays.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 回付 - BigDecimal yPay = yPays.stream().reduce(BigDecimal.ZERO, BigDecimal::add);// 月结 + if(consigneeIdSet.size() > 1){ + log.warn("############checkBalance: 对账单商家不相同={} ", consigneeIdSet); + throw new CustomerException(405, "对账单商家不相同"); + } + + if(destinationWarehouseIdSet.size() > 1){ + log.warn("############checkBalance: destinationWarehouseIdSet={} ", destinationWarehouseIdSet); + throw new CustomerException(405, "对账单目的仓不相同"); + } + + StatisticsReconciliationOrderInfoEntity reconciliationOrderInfo = statisticsReconciliationOrderInfoEntities.get(0); + + List orderInfoIds = baseMapper.findOrderInfoIdListByReconciliationOrderIds(reconciliationOrderIds); + + StatisticsPackageFeeInfoVO packageFeeInfoVO = baseMapper.findPackageListByOrderIds(orderInfoIds); + BigDecimal freightPrice = packageFeeInfoVO.getFreightPrice(); + BigDecimal pickupPrice = packageFeeInfoVO.getPickupPrice(); + BigDecimal deliveryServiceFee = packageFeeInfoVO.getDeliveryServiceFee(); + BigDecimal warehouseServiceFee = packageFeeInfoVO.getWarehouseServiceFee(); + BigDecimal totalFee = freightPrice.add(pickupPrice).add(deliveryServiceFee).add(warehouseServiceFee); + BigDecimal totalFeeAddAfter = freightPrice.add(pickupPrice).add(deliveryServiceFee).add(warehouseServiceFee).add(changesFee).add(aftersalesFee); + + + String balanceOrderNo = "JSD"+new Date().getTime(); StatisticsBalanceOrderInfoEntity statisticsBalanceOrderInfoEntity = new StatisticsBalanceOrderInfoEntity(); + statisticsBalanceOrderInfoEntity.setBalanceOrderNo(balanceOrderNo); + statisticsBalanceOrderInfoEntity.setBrand(brandSet.stream().collect(Collectors.joining(","))); + statisticsBalanceOrderInfoEntity.setOrderCode(orderCodeSet.stream().collect(Collectors.joining(","))); + statisticsBalanceOrderInfoEntity.setWaybillNo(waybillNoSet.stream().collect(Collectors.joining(","))); - String balanceOrder = basicdataCodeClient.getCodeByType(CodeNumConstant.BALANCE_ORDER, "BALANCE_ORDER", ""); - - statisticsBalanceOrderInfoEntity.setBalanceOrderNo(balanceOrder); - statisticsBalanceOrderInfoEntity.setBrand(String.join(",", brands)); - statisticsBalanceOrderInfoEntity.setWaybillNo(String.join(",", waybillNos)); - statisticsBalanceOrderInfoEntity.setOrderCode(String.join(",", orderCodes)); - statisticsBalanceOrderInfoEntity.setTypeService(String.join(",", typeServices)); - statisticsBalanceOrderInfoEntity.setProductGoods(String.join(",", productGoods)); - statisticsBalanceOrderInfoEntity.setTotalCount(totalCount.get()); - statisticsBalanceOrderInfoEntity.setTotalWeight(totalWeight); - statisticsBalanceOrderInfoEntity.setTotalVolume(totalVolume); - statisticsBalanceOrderInfoEntity.setShipper(String.join(",", shippers)); - statisticsBalanceOrderInfoEntity.setShipperPerson(String.join(",", shipperPersons)); - statisticsBalanceOrderInfoEntity.setShipperMobile(String.join(",", shipperMobiles)); - statisticsBalanceOrderInfoEntity.setShipperAddress(String.join(",", shipperAddresses)); - statisticsBalanceOrderInfoEntity.setConsignee(String.join(",", consignees)); - statisticsBalanceOrderInfoEntity.setConsigneePerson(String.join(",", consigneePersons)); - statisticsBalanceOrderInfoEntity.setConsigneeMobile(String.join(",", consigneeMobiles)); - statisticsBalanceOrderInfoEntity.setConsigneeAddress(String.join(",", consigneeAddresses)); - statisticsBalanceOrderInfoEntity.setDeparture(String.join(",", departures)); - statisticsBalanceOrderInfoEntity.setDestination(String.join(",", destinations)); - statisticsBalanceOrderInfoEntity.setDepartureWarehouseName(String.join(",", departureWarehouseNames)); - statisticsBalanceOrderInfoEntity.setDestinationWarehouseName(String.join(",", destinationWarehouseNames)); - statisticsBalanceOrderInfoEntity.setPayType(String.join(",", payTypes)); - statisticsBalanceOrderInfoEntity.setPayWay(String.join(",", payWays)); - - statisticsBalanceOrderInfoEntity.setIsAftersale(0); - statisticsBalanceOrderInfoEntity.setAftersalesFee(BigDecimal.ZERO); - statisticsBalanceOrderInfoEntity.setTotalBalanceFee(totalBalanceFee); - statisticsBalanceOrderInfoEntity.setTotalFee(totalFee); - statisticsBalanceOrderInfoEntity.setOpenFee(openFee); - statisticsBalanceOrderInfoEntity.setPickupFee(pickupFee); - statisticsBalanceOrderInfoEntity.setFreightFee(freightFee); + + statisticsBalanceOrderInfoEntity.setConsigneeId(reconciliationOrderInfo.getConsigneeId()); + statisticsBalanceOrderInfoEntity.setConsignee(reconciliationOrderInfo.getConsignee()); + statisticsBalanceOrderInfoEntity.setDestinationWarehouseId(reconciliationOrderInfo.getDestinationWarehouseId()); + statisticsBalanceOrderInfoEntity.setDestinationWarehouseName(reconciliationOrderInfo.getDestinationWarehouseName()); + + + statisticsBalanceOrderInfoEntity.setTotalBalanceFee(totalFeeAddAfter); + statisticsBalanceOrderInfoEntity.setTotalCount(packageFeeInfoVO.getTotalNum()); + statisticsBalanceOrderInfoEntity.setTotalWeight(packageFeeInfoVO.getTotalWeight()); + statisticsBalanceOrderInfoEntity.setTotalVolume(packageFeeInfoVO.getTotalVolume()); + statisticsBalanceOrderInfoEntity.setRealTotalFee(totalFee); + statisticsBalanceOrderInfoEntity.setPickupFee(pickupPrice); + statisticsBalanceOrderInfoEntity.setFreightFee(freightPrice); statisticsBalanceOrderInfoEntity.setWarehouseServiceFee(warehouseServiceFee); - statisticsBalanceOrderInfoEntity.setWarehouseFee(warehouseFee); - statisticsBalanceOrderInfoEntity.setWarehouseManageFee(warehouseManageFee); - statisticsBalanceOrderInfoEntity.setWarehouseSortingFee(warehouseSortingFee); - statisticsBalanceOrderInfoEntity.setWarehouseOperatingFee(warehouseOperatingFee); + statisticsBalanceOrderInfoEntity.setWarehouseFee(packageFeeInfoVO.getWarehouseFee()); + statisticsBalanceOrderInfoEntity.setWarehouseManageFee(packageFeeInfoVO.getWarehouseManageFee()); + statisticsBalanceOrderInfoEntity.setWarehouseSortingFee(packageFeeInfoVO.getWarehouseSortingFee()); + statisticsBalanceOrderInfoEntity.setWarehouseOperatingFee(packageFeeInfoVO.getWarehouseOperatingFee()); + statisticsBalanceOrderInfoEntity.setDeliveryFee(packageFeeInfoVO.getDeliveryFee()); statisticsBalanceOrderInfoEntity.setDeliveryServiceFee(deliveryServiceFee); - statisticsBalanceOrderInfoEntity.setDeliveryFee(deliveryFee); - statisticsBalanceOrderInfoEntity.setDeliveryLoadingFee(deliveryLoadingFee); - statisticsBalanceOrderInfoEntity.setDeliverySortingFee(deliverySortingFee); - statisticsBalanceOrderInfoEntity.setDeliveryUpfloorFee(deliveryUpfloorFee); - statisticsBalanceOrderInfoEntity.setDeliveryMoveFee(deliveryMoveFee); - statisticsBalanceOrderInfoEntity.setDeliveryCrossingFee(deliveryCrossingFee); - statisticsBalanceOrderInfoEntity.setInstallFee(installFee); - statisticsBalanceOrderInfoEntity.setQuotationFee(quotationFee); - statisticsBalanceOrderInfoEntity.setClaimingValue(claimingValue); - statisticsBalanceOrderInfoEntity.setOtherFee(otherFee); - statisticsBalanceOrderInfoEntity.setReturnFee(returnFee); - statisticsBalanceOrderInfoEntity.setThirdOprationFee(thirdOprationFee); - statisticsBalanceOrderInfoEntity.setXPay(xPay); - statisticsBalanceOrderInfoEntity.setDPay(dPay); - statisticsBalanceOrderInfoEntity.setHPay(hPay); - statisticsBalanceOrderInfoEntity.setYPay(yPay); - - statisticsBalanceOrderInfoEntity.setBalanceStatus(0); - statisticsBalanceOrderInfoEntity.setHasBalanceFee(BigDecimal.ZERO); - statisticsBalanceOrderInfoEntity.setNoBalanceFee(BigDecimal.ZERO); - statisticsBalanceOrderInfoEntity.setAbnormalBalanceStatus(0); - statisticsBalanceOrderInfoEntity.setAbnormalBalanceFee(BigDecimal.ZERO); - + statisticsBalanceOrderInfoEntity.setDeliveryLoadingFee(packageFeeInfoVO.getDeliveryLoadingFee()); + statisticsBalanceOrderInfoEntity.setDeliverySortingFee(packageFeeInfoVO.getDeliverySortingFee()); + statisticsBalanceOrderInfoEntity.setDeliveryUpfloorFee(packageFeeInfoVO.getDeliveryUpfloorFee()); + statisticsBalanceOrderInfoEntity.setDeliveryMoveFee(packageFeeInfoVO.getDeliveryMoveFee()); + statisticsBalanceOrderInfoEntity.setDeliveryOtherFee(packageFeeInfoVO.getDeliveryOtherFee()); + statisticsBalanceOrderInfoEntity.setDeliveryCrossingFee(packageFeeInfoVO.getDeliveryCrossingFee()); + statisticsBalanceOrderInfoEntity.setOtherFee(BigDecimal.ZERO); + statisticsBalanceOrderInfoEntity.setInstallFee(BigDecimal.ZERO); + statisticsBalanceOrderInfoEntity.setIsAftersale(isAftersales); + statisticsBalanceOrderInfoEntity.setAftersalesFee(aftersalesFee); balanceOrderInfoService.save(statisticsBalanceOrderInfoEntity); + Long balanceOrderId = statisticsBalanceOrderInfoEntity.getId(); + // 订单的结算单号生成 List statisticsOrderInfoEntities = baseMapper.selectList(new QueryWrapper().lambda().in(StatisticsOrderInfoEntity::getId, orderInfoIds)); + List updateOrderInfoList = new ArrayList<>(); statisticsOrderInfoEntities.forEach(statisticsOrderInfoEntity -> { - statisticsOrderInfoEntity.setBalanceOrderNo(statisticsBalanceOrderInfoEntity.getBalanceOrderNo()); - statisticsOrderInfoEntity.setBalanceOrderId(statisticsBalanceOrderInfoEntity.getId()); - statisticsOrderInfoEntity.setConfirmStatisticsTime(new Date()); - statisticsOrderInfoEntity.setConfirmStatisticsOrder(1); - statisticsOrderInfoEntity.setConfirmStatisticsUserName(AuthUtil.getNickName()); + StatisticsOrderInfoEntity updateEntity = new StatisticsOrderInfoEntity(); + updateEntity.setId(statisticsOrderInfoEntity.getId()); + updateEntity.setBalanceOrderNo(balanceOrderNo); + updateEntity.setBalanceOrderId(balanceOrderId); + updateEntity.setConfirmBalanceUserName(AuthUtil.getNickName()); + updateEntity.setConfirmBalanceOrderStatus(1); + updateEntity.setConfirmBalanceDate(new Date()); + updateOrderInfoList.add(updateEntity); }); + if(CollUtil.isNotEmpty(updateOrderInfoList)){ + updateBatchById(updateOrderInfoList); + } - updateBatchById(statisticsOrderInfoEntities); + List updateReconciliationInfoList = new ArrayList<>(); + statisticsReconciliationOrderInfoEntities.forEach(statisticsReconciliationOrderInfoEntity -> { + StatisticsReconciliationOrderInfoEntity updateEntity = new StatisticsReconciliationOrderInfoEntity(); + updateEntity.setId(statisticsReconciliationOrderInfoEntity.getId()); + updateEntity.setBalanceOrderNo(balanceOrderNo); + updateEntity.setBalanceOrderId(balanceOrderId); + updateEntity.setCheckStatus(1); + updateEntity.setCheckUserName(AuthUtil.getNickName()); + updateEntity.setCheckTime(new Date()); + updateReconciliationInfoList.add(updateEntity); + }); + if(CollUtil.isNotEmpty(updateReconciliationInfoList)){ + reconciliationOrderInfoService.updateBatchById(updateReconciliationInfoList); + } return R.success("确认成功"); } @Override - public StatisticsOrderInfoVO findOrderDetail(Long orderInfoId) { - List orderInfoIds = new ArrayList<>(); - orderInfoIds.add(orderInfoId); - List statementListByOrderInfoIds = baseMapper.findStatementListByOrderInfoIds(orderInfoIds); - return statementListByOrderInfoIds.get(0); + public List findOrderDetail(Long reconciliationOrderId) { + List records = baseMapper.findOrderDetail(reconciliationOrderId); + //把records中所有的orderInfoId放入一个集合 + List orderInfoIdList = records.stream().map(StatisticsOrderInfoVO::getOrderInfoId).collect(Collectors.toList()); + + List orderPackageInfoList = baseMapper.findPackageListByOrderIdsGroupById(orderInfoIdList); + //把orderPackageInfoList转化成以orderInfoId为key的Map + Map orderPackageInfoMap = orderPackageInfoList.stream() + .collect(Collectors.toMap(StatisticsPackageFeeInfoVO::getOrderInfoId, statisticsPackageFeeInfoVO -> statisticsPackageFeeInfoVO)); + + records.forEach(statisticsOrderInfoVO -> { + Long orderInfoId = statisticsOrderInfoVO.getOrderInfoId(); + StatisticsPackageFeeInfoVO statisticsPackageFeeInfoVO = orderPackageInfoMap.get(orderInfoId); + BeanUtil.copy(statisticsPackageFeeInfoVO, statisticsOrderInfoVO); + }); + return records; } @Override @@ -467,7 +379,7 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl orderInfoIdsList) { + return baseMapper.findPackageListByOrderIds(orderInfoIdsList); + } + + @Override + public R createReconciliationOrder(List orderInfoIds) { + +// StatisticsReconciliationOrderInfoEntity reconciliationOrder = baseMapper.findReconciliationOrderInfoByOrderIds(orderInfoIds); + + List orderInfoEntities = baseMapper.selectBatchIds(orderInfoIds); + if(CollUtil.isEmpty(orderInfoEntities)){ + log.warn("############createReconciliationOrder: 未找到对应订单信息"); + return R.fail(405,"未找到对应订单信息"); + } + + + for (StatisticsOrderInfoEntity orderInfoEntity : orderInfoEntities) { + Integer syncFeeStatus = orderInfoEntity.getSyncFeeStatus(); + Long orderId = orderInfoEntity.getId(); + String orderCode = orderInfoEntity.getOrderCode(); + if(syncFeeStatus == 0){ + log.warn("############createReconciliationOrder: 订单还未同步数据 orderId={}",orderId); + return R.fail(405,"订单["+orderCode+"]还未同步数据"); + } + } + + //判断orderInfoEntities中所有元素通过consigneeId进行分组 + Map> groupByConsigneeId = orderInfoEntities.stream().collect(Collectors.groupingBy(StatisticsOrderInfoEntity::getConsigneeId)); + int consigneeSize = groupByConsigneeId.keySet().size(); + if(consigneeSize > 1){ + log.warn("############createReconciliationOrder: 订单不属于同一个商家"); + return R.fail(405,"订单不属于同一个商家"); + } + Map> groupByDestinationWarehouseId = orderInfoEntities.stream().collect(Collectors.groupingBy(StatisticsOrderInfoEntity::getDestinationWarehouseId)); + int destinationWarehouseIdSize = groupByDestinationWarehouseId.keySet().size(); + if(destinationWarehouseIdSize > 1){ + log.warn("############createReconciliationOrder: 订单不属于同一个目的仓"); + return R.fail(405,"订单不属于同一个目的仓"); + } + StatisticsPackageFeeInfoVO orderPackageTotalVO = baseMapper.findPackageListByOrderIds(orderInfoIds); + BigDecimal freightPrice = orderPackageTotalVO.getFreightPrice(); + BigDecimal pickupPrice = orderPackageTotalVO.getPickupPrice(); + BigDecimal warehouseServiceFee = orderPackageTotalVO.getWarehouseServiceFee(); + BigDecimal deliveryServiceFee = orderPackageTotalVO.getDeliveryServiceFee(); + BigDecimal totalFee = freightPrice.add(pickupPrice).add(warehouseServiceFee).add(deliveryServiceFee); + + StatisticsOrderInfoEntity statisticsOrderInfoEntity = orderInfoEntities.get(0); + Long consigneeId = statisticsOrderInfoEntity.getConsigneeId(); + String consignee = statisticsOrderInfoEntity.getConsignee(); + Long destinationWarehouseId = statisticsOrderInfoEntity.getDestinationWarehouseId(); + String destinationWarehouseName = statisticsOrderInfoEntity.getDestinationWarehouseName(); + + String reconciliationOrdeCode = "DZD"+new Date().getTime(); + + StatisticsReconciliationOrderInfoEntity reconciliationOrder = new StatisticsReconciliationOrderInfoEntity(); + reconciliationOrder.setReconciliationOrderNo(reconciliationOrdeCode); + //把orderInfoEntities中所有waybillNo去重拼接起来 + reconciliationOrder.setWaybillNo(orderInfoEntities.stream().map(StatisticsOrderInfoEntity::getWaybillNo).distinct().collect(Collectors.joining(","))); + reconciliationOrder.setOrderCode(orderInfoEntities.stream().map(StatisticsOrderInfoEntity::getOrderCode).distinct().collect(Collectors.joining(","))); + reconciliationOrder.setBrand(orderInfoEntities.stream().map(StatisticsOrderInfoEntity::getBrand).distinct().collect(Collectors.joining(","))); + reconciliationOrder.setConsigneeId(consigneeId); + reconciliationOrder.setConsignee(consignee); + reconciliationOrder.setDestinationWarehouseName(destinationWarehouseName); + reconciliationOrder.setDestinationWarehouseId(destinationWarehouseId); + reconciliationOrder.setTotalNum(orderPackageTotalVO.getTotalNum()); + reconciliationOrder.setTotalWeight(orderPackageTotalVO.getTotalWeight()); + reconciliationOrder.setTotalVolume(orderPackageTotalVO.getTotalVolume()); + + reconciliationOrder.setRealTotalFee(totalFee); + reconciliationOrder.setPickupFee(pickupPrice); + reconciliationOrder.setFreightFee(freightPrice); + reconciliationOrder.setWarehouseServiceFee(warehouseServiceFee); + reconciliationOrder.setWarehouseFee(orderPackageTotalVO.getWarehouseFee()); + reconciliationOrder.setWarehouseManageFee(orderPackageTotalVO.getWarehouseManageFee()); + reconciliationOrder.setWarehouseSortingFee(orderPackageTotalVO.getWarehouseSortingFee()); + reconciliationOrder.setWarehouseOperatingFee(orderPackageTotalVO.getWarehouseOperatingFee()); + reconciliationOrder.setDeliveryFee(orderPackageTotalVO.getDeliveryFee()); + reconciliationOrder.setDeliveryServiceFee(deliveryServiceFee); + reconciliationOrder.setDeliveryLoadingFee(orderPackageTotalVO.getDeliveryLoadingFee()); + reconciliationOrder.setDeliverySortingFee(orderPackageTotalVO.getDeliverySortingFee()); + reconciliationOrder.setDeliveryUpfloorFee(orderPackageTotalVO.getDeliveryUpfloorFee()); + reconciliationOrder.setDeliveryMoveFee(orderPackageTotalVO.getDeliveryMoveFee()); + reconciliationOrder.setDeliveryOtherFee(orderPackageTotalVO.getDeliveryOtherFee()); + reconciliationOrder.setDeliveryCrossingFee(orderPackageTotalVO.getDeliveryCrossingFee()); + reconciliationOrder.setInstallFee(BigDecimal.ZERO); + reconciliationOrder.setOtherFee(BigDecimal.ZERO); + + reconciliationOrder.setIsAftersale(0); + reconciliationOrder.setAftersalesFee(BigDecimal.ZERO); + + reconciliationOrder.setCreateUserName(AuthUtil.getNickName()); + + reconciliationOrder.setIsChanges(0); + reconciliationOrder.setChangesFee(BigDecimal.ZERO); + + boolean saveFlag = reconciliationOrderInfoService.save(reconciliationOrder); + if(saveFlag){ + Long reconciliationOrderId = reconciliationOrder.getId(); + List updateList = new ArrayList<>(); + orderInfoEntities.forEach(orderInfoEntity -> { + StatisticsOrderInfoEntity updateEntity = new StatisticsOrderInfoEntity(); + updateEntity.setId(orderInfoEntity.getId()); + updateEntity.setCreateReconciliationOrderStatus(1); + updateEntity.setCreateReconciliationUserName(AuthUtil.getNickName()); + updateEntity.setCreateReconciliationDate(new Date()); + updateEntity.setReconciliationOrderId(reconciliationOrderId); + updateEntity.setReconciliationOrderNo(reconciliationOrdeCode); + updateList.add(updateEntity); + }); + updateBatchById(updateList); + } + + return R.success("生成成功"); + } + + @Override + public R findAftersalesOrderList(Long consigneeId) { + + List list = new ArrayList<>(); + + + return R.data(list); + } + + @Override + public R addAftersalesToReconciliationOrder(MerchantStatisticsDTO merchantStatisticsDTO) { + Long reconciliationOrderId = merchantStatisticsDTO.getReconciliationOrderId(); + + StatisticsReconciliationOrderInfoEntity reconciliationOrderInfo = reconciliationOrderInfoService.getById(reconciliationOrderId); + if(Objects.isNull(reconciliationOrderInfo)){ + log.warn("#########addAftersalesToReconciliationOrder: 对账单信息不存在 reconciliationOrderId={}",reconciliationOrderId); + return R.fail(405,"对账单信息不存在"); + } + + Integer checkStatus = reconciliationOrderInfo.getCheckStatus(); + if(checkStatus == 1){ + log.warn("#########addAftersalesToReconciliationOrder: 对账单已经确认对账 reconciliationOrderId={}",reconciliationOrderId); + return R.fail(405,"对账单已经确认对账"); + } + + List aftersalesOrderDTOS = merchantStatisticsDTO.getAftersalesOrderDTOS(); + if(CollUtil.isEmpty(aftersalesOrderDTOS)){ + log.warn("#########addAftersalesToReconciliationOrder: 请选择售后单 aftersalesOrderDTOS={}",aftersalesOrderDTOS); + return R.fail(405,"请选择售后单"); + } + + //把aftersalesOrderDTOS中所有元素的aftersalesFee 求和 + BigDecimal aftersalesFee = aftersalesOrderDTOS.stream().map(AftersalesOrderDTO::getAftersalesFee).reduce(BigDecimal.ZERO, BigDecimal::add); + + List aftersalesOrderRecordEntities = new ArrayList<>(); + aftersalesOrderDTOS.forEach(aftersalesOrderDTO -> { + StatisticsAftersalesOrderRecordEntity aftersalesOrderRecordEntity = new StatisticsAftersalesOrderRecordEntity(); + aftersalesOrderRecordEntity.setReconciliationOrderId(reconciliationOrderId); + aftersalesOrderRecordEntity.setAftersaleOrderCode(aftersalesOrderDTO.getAftersaleOrder()); + aftersalesOrderRecordEntity.setAftersalesFee(aftersalesOrderDTO.getAftersalesFee()); + aftersalesOrderRecordEntities.add(aftersalesOrderRecordEntity); + }); + + aftersalesOrderRecordService.saveBatch(aftersalesOrderRecordEntities); + + //对账单加上售后金额 + reconciliationOrderInfoService.addAftersalesFeeById(reconciliationOrderId,aftersalesFee); + + + return R.success("添加成功"); + } + + @Override + public R findReconciliationOrderAftersalesOrder(MerchantStatisticsDTO merchantStatisticsDTO) { + Long reconciliationOrderId = merchantStatisticsDTO.getReconciliationOrderId(); + List aftersalesOrderRecordList = aftersalesOrderRecordService.findListByReconciliationOrderId(reconciliationOrderId); + + return R.data(aftersalesOrderRecordList); + } + + @Override + public Integer findCreateRencilitionOrderStatus(Long waybillId) { + return baseMapper.findCreateRencilitionOrderStatus(waybillId); + } + + @Override + public void deleteListByOrderInfoIds(List orderInfoIdsList) { + baseMapper.deleteListByOrderInfoIds(orderInfoIdsList); + } + + @Override + public R cancleOrderInfoBindReconcilitionOrder(Long reconciliationOrderId, List orderInfoIds) { + StatisticsReconciliationOrderInfoEntity reconciliationOrderInfo = reconciliationOrderInfoService.getById(reconciliationOrderId); + if(Objects.isNull(reconciliationOrderInfo)){ + log.warn("#########cancleOrderInfoBindReconcilitionOrder: 对账单信息不存在 reconciliationOrderId={}",reconciliationOrderId); + return R.fail(405,"对账单信息不存在"); + } + Integer checkStatus = reconciliationOrderInfo.getCheckStatus(); + if(checkStatus == 1){ + log.warn("#########cancleOrderInfoBindReconcilitionOrder: 对账单已确认对账 reconciliationOrderId={}",reconciliationOrderId); + return R.fail(405,"对账单已确认对账"); + } + + baseMapper.clearReconcilitionOrderInfoByOrderInfoIds(orderInfoIds,AuthUtil.getNickName(),new Date()); + + //重新计算对账单的数据 + calculateReconcilitionOrder(reconciliationOrderInfo); + + + return R.success("取消成功"); + } + + @Override + public List orderInfoListExport(MerchantStatisticsDTO merchantStatisticsDTO) { + + List records = baseMapper.orderInfoListExport(merchantStatisticsDTO); + //把records中所有的orderInfoId放入一个集合 + List orderInfoIdList = records.stream().map(StatisticsOrderInfoExportVO::getOrderInfoId).collect(Collectors.toList()); + + List orderPackageInfoList = baseMapper.findPackageListByOrderIdsGroupById(orderInfoIdList); + //把orderPackageInfoList转化成以orderInfoId为key的Map + Map orderPackageInfoMap = orderPackageInfoList.stream() + .collect(Collectors.toMap(StatisticsPackageFeeInfoVO::getOrderInfoId, statisticsPackageFeeInfoVO -> statisticsPackageFeeInfoVO)); + + records.forEach(statisticsOrderInfoVO -> { + Long orderInfoId = statisticsOrderInfoVO.getOrderInfoId(); + StatisticsPackageFeeInfoVO statisticsPackageFeeInfoVO = orderPackageInfoMap.get(orderInfoId); + BeanUtil.copy(statisticsPackageFeeInfoVO, statisticsOrderInfoVO); + }); + + + + return Collections.emptyList(); + } + + private void calculateReconcilitionOrder(StatisticsReconciliationOrderInfoEntity reconciliationOrderInfo) { + Long reconciliationOrderId = reconciliationOrderInfo.getId(); + BigDecimal aftersalesFee = reconciliationOrderInfo.getAftersalesFee(); + BigDecimal changesFee = reconciliationOrderInfo.getChangesFee(); + + + List reconciliationOrderIdList = new ArrayList<>(); + reconciliationOrderIdList.add(reconciliationOrderId); + + List orderInfoIds = baseMapper.findOrderInfoIdListByReconciliationOrderIds(reconciliationOrderIdList); + + + List orderInfoEntities = baseMapper.selectBatchIds(orderInfoIds); + if(CollUtil.isEmpty(orderInfoEntities)){ + log.warn("############calculateReconcilitionOrder: 未找到对应订单信息"); + throw new CustomerException(405,"未找到对应订单信息"); + } + + + for (StatisticsOrderInfoEntity orderInfoEntity : orderInfoEntities) { + Integer syncFeeStatus = orderInfoEntity.getSyncFeeStatus(); + Long orderId = orderInfoEntity.getId(); + String orderCode = orderInfoEntity.getOrderCode(); + if(syncFeeStatus == 0){ + log.warn("############calculateReconcilitionOrder: 订单还未同步数据 orderId={}",orderId); + throw new CustomerException(405,"订单["+orderCode+"]还未同步数据"); + } + } + + //判断orderInfoEntities中所有元素通过consigneeId进行分组 + Map> groupByConsigneeId = orderInfoEntities.stream().collect(Collectors.groupingBy(StatisticsOrderInfoEntity::getConsigneeId)); + int consigneeSize = groupByConsigneeId.keySet().size(); + if(consigneeSize > 1){ + log.warn("############calculateReconcilitionOrder: 订单不属于同一个商家"); + throw new CustomerException(405,"订单不属于同一个商家"); + } + Map> groupByDestinationWarehouseId = orderInfoEntities.stream().collect(Collectors.groupingBy(StatisticsOrderInfoEntity::getDestinationWarehouseId)); + int destinationWarehouseIdSize = groupByDestinationWarehouseId.keySet().size(); + if(destinationWarehouseIdSize > 1){ + log.warn("############calculateReconcilitionOrder: 订单不属于同一个目的仓"); + throw new CustomerException(405,"订单不属于同一个目的仓"); + } + StatisticsPackageFeeInfoVO orderPackageTotalVO = baseMapper.findPackageListByOrderIds(orderInfoIds); + BigDecimal freightPrice = orderPackageTotalVO.getFreightPrice(); + BigDecimal pickupPrice = orderPackageTotalVO.getPickupPrice(); + BigDecimal warehouseServiceFee = orderPackageTotalVO.getWarehouseServiceFee(); + BigDecimal deliveryServiceFee = orderPackageTotalVO.getDeliveryServiceFee(); + BigDecimal totalFee = freightPrice.add(pickupPrice).add(warehouseServiceFee).add(deliveryServiceFee).add(changesFee).add(aftersalesFee); + + StatisticsOrderInfoEntity statisticsOrderInfoEntity = orderInfoEntities.get(0); + Long consigneeId = statisticsOrderInfoEntity.getConsigneeId(); + String consignee = statisticsOrderInfoEntity.getConsignee(); + Long destinationWarehouseId = statisticsOrderInfoEntity.getDestinationWarehouseId(); + String destinationWarehouseName = statisticsOrderInfoEntity.getDestinationWarehouseName(); + + //把orderInfoEntities中所有waybillNo去重拼接起来 + reconciliationOrderInfo.setWaybillNo(orderInfoEntities.stream().map(StatisticsOrderInfoEntity::getWaybillNo).distinct().collect(Collectors.joining(","))); + reconciliationOrderInfo.setOrderCode(orderInfoEntities.stream().map(StatisticsOrderInfoEntity::getOrderCode).distinct().collect(Collectors.joining(","))); + reconciliationOrderInfo.setBrand(orderInfoEntities.stream().map(StatisticsOrderInfoEntity::getBrand).distinct().collect(Collectors.joining(","))); + reconciliationOrderInfo.setConsigneeId(consigneeId); + reconciliationOrderInfo.setConsignee(consignee); + reconciliationOrderInfo.setDestinationWarehouseName(destinationWarehouseName); + reconciliationOrderInfo.setDestinationWarehouseId(destinationWarehouseId); + reconciliationOrderInfo.setTotalNum(orderPackageTotalVO.getTotalNum()); + reconciliationOrderInfo.setTotalWeight(orderPackageTotalVO.getTotalWeight()); + reconciliationOrderInfo.setTotalVolume(orderPackageTotalVO.getTotalVolume()); + + reconciliationOrderInfo.setRealTotalFee(totalFee); + reconciliationOrderInfo.setPickupFee(pickupPrice); + reconciliationOrderInfo.setFreightFee(freightPrice); + reconciliationOrderInfo.setWarehouseServiceFee(warehouseServiceFee); + reconciliationOrderInfo.setWarehouseFee(orderPackageTotalVO.getWarehouseFee()); + reconciliationOrderInfo.setWarehouseManageFee(orderPackageTotalVO.getWarehouseManageFee()); + reconciliationOrderInfo.setWarehouseSortingFee(orderPackageTotalVO.getWarehouseSortingFee()); + reconciliationOrderInfo.setWarehouseOperatingFee(orderPackageTotalVO.getWarehouseOperatingFee()); + reconciliationOrderInfo.setDeliveryFee(orderPackageTotalVO.getDeliveryFee()); + reconciliationOrderInfo.setDeliveryServiceFee(deliveryServiceFee); + reconciliationOrderInfo.setDeliveryLoadingFee(orderPackageTotalVO.getDeliveryLoadingFee()); + reconciliationOrderInfo.setDeliverySortingFee(orderPackageTotalVO.getDeliverySortingFee()); + reconciliationOrderInfo.setDeliveryUpfloorFee(orderPackageTotalVO.getDeliveryUpfloorFee()); + reconciliationOrderInfo.setDeliveryMoveFee(orderPackageTotalVO.getDeliveryMoveFee()); + reconciliationOrderInfo.setDeliveryOtherFee(orderPackageTotalVO.getDeliveryOtherFee()); + reconciliationOrderInfo.setDeliveryCrossingFee(orderPackageTotalVO.getDeliveryCrossingFee()); + reconciliationOrderInfo.setInstallFee(BigDecimal.ZERO); + reconciliationOrderInfo.setOtherFee(BigDecimal.ZERO); + + reconciliationOrderInfo.setAftersalesFee(aftersalesFee); + reconciliationOrderInfo.setChangesFee(changesFee); + + reconciliationOrderInfoService.updateById(reconciliationOrderInfo); + + } + private void calculateWarehouseCost(PriceWarehouseVO warehouse, List warehousePackageEntities, BasicdataPriceTemplateEntity template) { if (ObjectUtil.isNotEmpty(warehouse)) { // 取出 warehousePackageEntities 中的最小的入库时间 warehouseEntryTimeEnd 和最大的签收时间 signTime。两个时间相差的天数为在库周期 @@ -508,10 +744,10 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl { - entity.setRealWarehouseServiceFee(entity.getRealWarehouseFee() - .add(entity.getRealWarehouseManageFee()) - .add(entity.getRealWarehouseSortingFee()) - .add(entity.getRealWarehouseOperatingFee()) + entity.setWarehouseServiceFee(entity.getWarehouseFee() + .add(entity.getWarehouseManageFee()) + .add(entity.getWarehouseSortingFee()) + .add(entity.getWarehouseOperatingFee()) ); }); warehousePackageService.updateBatchById(warehousePackageEntities); @@ -573,13 +809,12 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl { - entity.setRealDeliveryServiceFee(entity.getRealDeliveryFee() - .add(entity.getRealDeliveryLoadingFee()) - .add(entity.getRealDeliveryMoveFee()) - .add(entity.getRealDeliveryCrossingFee()) - .add(entity.getRealDeliverySortingFee()) - .add(entity.getRealDeliveryUpfloorFee()) - .add(entity.getRealDeliveryDistance())); + entity.setDeliveryServiceFee(entity.getDeliveryFee() + .add(entity.getDeliveryLoadingFee()) + .add(entity.getDeliveryMoveFee()) + .add(entity.getDeliveryCrossingFee()) + .add(entity.getDeliverySortingFee()) + .add(entity.getDeliveryUpfloorFee())); }); distributionPackageService.saveOrUpdateBatch(distributionPackageEntities); } @@ -601,7 +836,7 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl pieceList = catergory; if (1 == warehouseIsByCategory) { pieceList = catergory.stream().filter(priceDispatchBasicVO -> { - return StrUtil.equals(String.valueOf(priceDispatchBasicVO.getCategoryId()), statisticsDistributionPackageEntity.getProductId()); + return StrUtil.equals(String.valueOf(priceDispatchBasicVO.getCategoryId()), String.valueOf(statisticsDistributionPackageEntity.getProductId())); }).collect(Collectors.toList()); } if (CollUtil.isNotEmpty(pieceList)) { - BigDecimal totalVolume = statisticsDistributionPackageEntity.getTotalVolume(); - BigDecimal totalWeight = statisticsDistributionPackageEntity.getTotalWeight(); + BigDecimal totalVolume = statisticsDistributionPackageEntity.getVolume(); + BigDecimal totalWeight = statisticsDistributionPackageEntity.getWeight(); PriceWarehouseBasicVO priceDispatchBasicVO = pieceList.get(0); Double withinThirtyPrice = priceDispatchBasicVO.getWithinThirtyPrice(); Double betweenThirtySixtyPrice = priceDispatchBasicVO.getBetweenThirtySixtyPrice(); @@ -710,7 +945,7 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl additionalList = additionalCategory; if (ObjectUtil.equals(BooleanZeroOneEnums.YES.getCode(), warehouseIsCategorySubjoin)) { additionalList = additionalCategory.stream().filter(additionalVO -> { - return StrUtil.equals(String.valueOf(additionalVO.getCategoryId()), statisticsDistributionPackageEntity.getProductId()); + return StrUtil.equals(String.valueOf(additionalVO.getCategoryId()), String.valueOf(statisticsDistributionPackageEntity.getProductId())); }).collect(Collectors.toList()); } if (CollUtil.isNotEmpty(additionalList)) { @@ -719,13 +954,13 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl 90) { realWarehouseFee = NumberUtil.mul(beyondNinetyPrice, diff, number); - statisticsDistributionPackageEntity.setRealWarehouseFeeInterval("91天以上"); + statisticsDistributionPackageEntity.setWarehouseFeeInterval("91天以上"); } - statisticsDistributionPackageEntity.setRealWarehouseFee(realWarehouseFee); + statisticsDistributionPackageEntity.setWarehouseFee(realWarehouseFee); } else if (ObjectUtil.equals(2, warehouseCalculationBasis)) { // 方 最高 月 BigDecimal realWarehouseFee = BigDecimal.ZERO; if (diff <= 30) { realWarehouseFee = NumberUtil.mul(withinThirtyPrice, 1, number); - statisticsDistributionPackageEntity.setRealWarehouseFeeInterval("30天内"); + statisticsDistributionPackageEntity.setWarehouseFeeInterval("30天内"); } else if (diff <= 60) { realWarehouseFee = NumberUtil.mul(betweenThirtySixtyPrice, 2, number); - statisticsDistributionPackageEntity.setRealWarehouseFeeInterval("31-60天"); + statisticsDistributionPackageEntity.setWarehouseFeeInterval("31-60天"); } else if (diff <= 90) { realWarehouseFee = NumberUtil.mul(beyondSixtyPrice, 3, number); - statisticsDistributionPackageEntity.setRealWarehouseFeeInterval("61-90天"); + statisticsDistributionPackageEntity.setWarehouseFeeInterval("61-90天"); } else if (diff > 90) { long time = diff - 90; // time 以 30 天为维度 计算 ,向上取整 Double ceil = Math.ceil(time / 30); realWarehouseFee = NumberUtil.mul(beyondNinetyPrice, NumberUtil.add(ceil, 3, BigDecimal.ZERO), number); - statisticsDistributionPackageEntity.setRealWarehouseFeeInterval("91天以上"); + statisticsDistributionPackageEntity.setWarehouseFeeInterval("91天以上"); } - statisticsDistributionPackageEntity.setRealWarehouseFee(realWarehouseFee); + statisticsDistributionPackageEntity.setWarehouseFee(realWarehouseFee); } } @@ -781,20 +1016,20 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl 90) { realWarehouseFee = NumberUtil.add( NumberUtil.mul(withinThirtyPrice, 30, number), @@ -802,36 +1037,36 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl 90) { long time = diff - 90; // time 以 30 天为维度 计算 ,向上取整 Double ceil = Math.ceil(time / 30); realWarehouseFee = NumberUtil.mul(number, NumberUtil.add(withinThirtyPrice, betweenThirtySixtyPrice, beyondSixtyPrice, NumberUtil.mul(ceil, beyondNinetyPrice))); - statisticsDistributionPackageEntity.setRealWarehouseFeeInterval("91天以上"); + statisticsDistributionPackageEntity.setWarehouseFeeInterval("91天以上"); } - statisticsDistributionPackageEntity.setRealWarehouseFee(realWarehouseFee); + statisticsDistributionPackageEntity.setWarehouseFee(realWarehouseFee); } } private void buildDispatchCostToPackage(Integer dispatchMinCostType, List distributionPackageEntities, Double minCost, Double additionalCost) { if (ObjectUtil.equals(1, dispatchMinCostType)) { // 计算总价 - BigDecimal sumDeliveryFee = distributionPackageEntities.stream().map(StatisticsDistributionPackageEntity::getRealDeliveryFee).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sumDeliveryFee = distributionPackageEntities.stream().map(StatisticsDistributionPackageEntity::getDeliveryFee).reduce(BigDecimal.ZERO, BigDecimal::add); // 总价和最低价 取大的值 BigDecimal max = NumberUtil.max(sumDeliveryFee, NumberUtil.toBigDecimal(minCost)); // 分摊价格个到包件上 @@ -840,7 +1075,7 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl { - statisticsDistributionPackageEntity.setRealDeliveryFee(statisticsDistributionPackageEntity.getRealDeliveryFee().add(divide)); + statisticsDistributionPackageEntity.setDeliveryFee(statisticsDistributionPackageEntity.getDeliveryFee().add(divide)); }); } } else if (ObjectUtil.equals(2, dispatchMinCostType)) { @@ -851,47 +1086,47 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl { - statisticsDistributionPackageEntity.setRealDeliveryFee(statisticsDistributionPackageEntity.getRealDeliveryFee().add(divide)); + statisticsDistributionPackageEntity.setDeliveryFee(statisticsDistributionPackageEntity.getDeliveryFee().add(divide)); }); } } else if (ObjectUtil.equals(3, dispatchMinCostType)) { // 总体积 - BigDecimal totalVolume = distributionPackageEntities.stream().map(StatisticsDistributionPackageEntity::getTotalVolume).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal totalVolume = distributionPackageEntities.stream().map(StatisticsDistributionPackageEntity::getVolume).reduce(BigDecimal.ZERO, BigDecimal::add); // 总件数 < 最低价 则计算保底价 if (NumberUtil.compare(NumberUtil.toDouble(totalVolume), minCost) < 0) { // 分摊到包件上 原单价 + 加算价格/件数 BigDecimal divide = NumberUtil.toBigDecimal(additionalCost).divide(NumberUtil.toBigDecimal(distributionPackageEntities.size()), 2, BigDecimal.ROUND_HALF_UP); distributionPackageEntities.forEach(statisticsDistributionPackageEntity -> { - statisticsDistributionPackageEntity.setRealDeliveryFee(statisticsDistributionPackageEntity.getRealDeliveryFee().add(divide)); + statisticsDistributionPackageEntity.setDeliveryFee(statisticsDistributionPackageEntity.getDeliveryFee().add(divide)); }); } } else if (ObjectUtil.equals(4, dispatchMinCostType)) { // 总重量 - BigDecimal totalWeight = distributionPackageEntities.stream().map(StatisticsDistributionPackageEntity::getTotalWeight).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal totalWeight = distributionPackageEntities.stream().map(StatisticsDistributionPackageEntity::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); // 总件数 < 最低价 则计算保底价 if (NumberUtil.compare(NumberUtil.toDouble(totalWeight), minCost) < 0) { // 分摊到包件上 原单价 + 加算价格/件数 BigDecimal divide = NumberUtil.toBigDecimal(additionalCost).divide(NumberUtil.toBigDecimal(distributionPackageEntities.size()), 2, BigDecimal.ROUND_HALF_UP); distributionPackageEntities.forEach(statisticsDistributionPackageEntity -> { - statisticsDistributionPackageEntity.setRealDeliveryFee(statisticsDistributionPackageEntity.getRealDeliveryFee().add(divide)); + statisticsDistributionPackageEntity.setDeliveryFee(statisticsDistributionPackageEntity.getDeliveryFee().add(divide)); }); } } } - private void updateOrderChangesFee(Long orderInfoId) { + private void updateOrderChangesFee(Long reconciliationOrderId) { - StatisticsOrderInfoEntity statisticsOrderInfoEntity = baseMapper.selectById(orderInfoId); - if (Objects.isNull(statisticsOrderInfoEntity)) { - log.warn("#############updateOrderChangesFee: 订单信息不存在 statisticsOrderInfoEntity={}", statisticsOrderInfoEntity); + StatisticsReconciliationOrderInfoEntity reconciliationOrderInfo = reconciliationOrderInfoService.getById(reconciliationOrderId); + if (Objects.isNull(reconciliationOrderInfo)) { + log.warn("#############updateOrderChangesFee: 对账单信息不存在 reconciliationOrderInfo={}", reconciliationOrderInfo); throw new CustomerException(405, "订单信息不存在"); } - BigDecimal changesFee = changesRecordService.findChangesFeeByOrderInfoId(orderInfoId); + BigDecimal changesFee = changesRecordService.findChangesFeeByReconciliationOrderId(reconciliationOrderId); - statisticsOrderInfoEntity.setChangesFee(changesFee); + reconciliationOrderInfo.setChangesFee(changesFee); - baseMapper.updateById(statisticsOrderInfoEntity); + reconciliationOrderInfoService.updateById(reconciliationOrderInfo); } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsReconciliationOrderInfoServiceImpl.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsReconciliationOrderInfoServiceImpl.java new file mode 100644 index 000000000..205a5cbff --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsReconciliationOrderInfoServiceImpl.java @@ -0,0 +1,38 @@ +package com.logpm.statistics.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.logpm.statistics.dto.MerchantStatisticsDTO; +import com.logpm.statistics.entity.StatisticsReconciliationOrderInfoEntity; +import com.logpm.statistics.mapper.StatisticsReconciliationOrderInfoMapper; +import com.logpm.statistics.service.IStatisticsReconciliationOrderInfoService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; + +@Service +@Slf4j +@AllArgsConstructor +public class StatisticsReconciliationOrderInfoServiceImpl extends BaseServiceImpl implements IStatisticsReconciliationOrderInfoService { + @Override + public IPage pageReconciliationList(MerchantStatisticsDTO merchantStatisticsDTO) { + + IPage page = new Page<>(); + page.setCurrent(merchantStatisticsDTO.getPageNum()); + page.setSize(merchantStatisticsDTO.getPageSize()); + + merchantStatisticsDTO.setOpenTimeStart(CommonUtil.getStartByDateStr(merchantStatisticsDTO.getOpenTimeStartStr())); + merchantStatisticsDTO.setOpenTimeEnd(CommonUtil.getEndByDateStr(merchantStatisticsDTO.getOpenTimeEndStr())); + + return baseMapper.pageReconciliationList(page, merchantStatisticsDTO); + } + + @Override + public void addAftersalesFeeById(Long reconciliationOrderId, BigDecimal aftersalesFee) { + baseMapper.addAftersalesFeeById(reconciliationOrderId,aftersalesFee); + } +} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsTrunklinePackageServiceImpl.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsTrunklinePackageServiceImpl.java index 35fad7f45..a55b1fde7 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsTrunklinePackageServiceImpl.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsTrunklinePackageServiceImpl.java @@ -8,12 +8,15 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + @Service @AllArgsConstructor @Slf4j public class StatisticsTrunklinePackageServiceImpl extends BaseServiceImpl implements IStatisticsTrunklinePackageService { + @Override - public void deleteListByWaybillId(Long waybillId) { - baseMapper.deleteListByWaybillId(waybillId); + public void deleteListByOrderInfoIds(List orderInfoIdsList) { + baseMapper.deleteListByOrderInfoIds(orderInfoIdsList); } } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsWarehousePackageServiceImpl.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsWarehousePackageServiceImpl.java index 47d6198f0..dd6cf641f 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsWarehousePackageServiceImpl.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/service/impl/StatisticsWarehousePackageServiceImpl.java @@ -8,8 +8,14 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + @Slf4j @Service @AllArgsConstructor public class StatisticsWarehousePackageServiceImpl extends BaseServiceImpl implements IStatisticsWarehousePackageService { + @Override + public void deleteListByOrderInfoIds(List orderInfoIdsList) { + baseMapper.deleteListByOrderInfoIds(orderInfoIdsList); + } } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/StatisticsOrderInfoExportVO.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/StatisticsOrderInfoExportVO.java new file mode 100644 index 000000000..0174a7bb7 --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/StatisticsOrderInfoExportVO.java @@ -0,0 +1,183 @@ +package com.logpm.statistics.vo; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class StatisticsOrderInfoExportVO implements Serializable { + + @ExcelIgnore + private Long orderInfoId; + @ExcelProperty(value = "品牌") + private String brand; // 品牌 + + @ExcelProperty(value = "运单号") + private String waybillNo; // 运单号 + + @ExcelProperty(value = "订单号") + private String orderCode;//订单号 + + @ExcelProperty(value = "商家服务类型") + private String typeService; // 商家服务类型 + + @ExcelProperty(value = "发货单位") + private String shipper; // 发货单位 + + @ExcelProperty(value = "发货人") + private String shipperPerson; // 发货人 + + @ExcelProperty(value = "发货电话") + private String shipperMobile; // 发货电话 + + @ExcelProperty(value = "发货地址") + private String shipperAddress; // 发货地址 + + @ExcelProperty(value = "收货单位") + private String consignee; // 收货单位 + + @ExcelProperty(value = "收货人") + private String consigneePerson; // 收货人 + + @ExcelProperty(value = "收货电话") + private String consigneeMobile; // 收货电话 + + @ExcelProperty(value = "收货地址") + private String consigneeAddress; // 收货地址 + + @ExcelProperty(value = "订单签收状态") + private String signStatus; // 订单签收状态 + + @ExcelProperty(value = "签收时间") + private Date signDate; // 签收时间 + + @ExcelProperty(value = "开单时间") + private Date openTime; // 开单时间 + + @ExcelProperty(value = "发站仓") + private String departureWarehouseName; // 发站仓 + + @ExcelProperty(value = "目的仓") + private String destinationWarehouseName; // 目的仓 + + @ExcelProperty(value = "发站") + private String departure; // 发站 + + @ExcelProperty(value = "到站") + private String destination; // 到站 + + @ExcelProperty(value = "客户车次号") + private String customerTrain; // 客户车次号 + + @ExcelProperty(value = "支付类型") + private String payType; // 支付类型 + + @ExcelProperty(value = "支付方式") + private String payWay; // 支付方式 + + @ExcelProperty(value = "物料品类") + private String goodsName; // 物料品类 + + @ExcelProperty(value = "订单数量") + private Integer totalNum; // 订单数量 + + @ExcelProperty(value = "订单重量") + private BigDecimal totalWeight; // 订单重量 + + @ExcelProperty(value = "订单体积") + private BigDecimal totalVolume; // 订单体积 + + @ExcelProperty(value = "系统运费") + private BigDecimal systemFreightPrice; + + @ExcelProperty(value = "运费") + private BigDecimal freightPrice; + + @ExcelProperty(value = "系统提货费") + private BigDecimal systemPickupPrice; + + @ExcelProperty(value = "提货费") + private BigDecimal pickupPrice; + + @ExcelProperty(value = "仓储服务费") + private BigDecimal warehouseServiceFee; + + @ExcelProperty(value = "仓储费") + private BigDecimal warehouseFee; + + @ExcelProperty(value = "仓储管理费") + private BigDecimal warehouseManageFee; + + @ExcelProperty(value = "仓储分拣费") + private BigDecimal warehouseSortingFee; + + @ExcelProperty(value = "仓储操作费") + private BigDecimal warehouseOperatingFee; + + @ExcelProperty(value = "系统配送费") + private BigDecimal systemDeliveryFee; + + @ExcelProperty(value = "配送费") + private BigDecimal deliveryFee; + + @ExcelProperty(value = "配送服务费") + private BigDecimal deliveryServiceFee; + + @ExcelProperty(value = "配送装车费") + private BigDecimal deliveryLoadingFee; + + @ExcelProperty(value = "配送分拣费") + private BigDecimal deliverySortingFee; + + @ExcelProperty(value = "配送上楼费") + private BigDecimal deliveryUpfloorFee; + + @ExcelProperty(value = "配送搬运费") + private BigDecimal deliveryMoveFee; + + @ExcelProperty(value = "配送其他费") + private BigDecimal deliveryOtherFee; + + @ExcelProperty(value = "配送过路费") + private BigDecimal deliveryCrossingFee; + + @ExcelProperty(value = "在库周期") + private Integer cycle; // 在库周期 + + @ExcelProperty(value = "结算方类型") + private String cleanObjType; // 结算方 + + @ExcelProperty(value = "费用区间") + private String warehouseFeeInterval; // 费用区间 + + @ExcelProperty(value = "安装费") + private BigDecimal installFee = BigDecimal.ZERO; // 安装费 + + @ExcelProperty(value = "其他费") + private BigDecimal otherFee = BigDecimal.ZERO; // 其他费 + + @ExcelProperty(value = "签收次数") + private Integer signNum; + + @ExcelProperty(value = "最后签收时间") + private Date signTime; // 最晚一条 + + @ExcelProperty(value = "同步费用状态") + private Integer syncFeeStatus; + + @ExcelProperty(value = "同步费用时间") + private Date syncFeeDate; + + @ExcelProperty(value = "生成对账单状态") + private Integer createReconciliationOrderStatus; // 0未生成 1已生成 + + @ExcelProperty(value = "生成对账单确认人") + private String createReconciliationUserName; // 生成对账单确认人 + + @ExcelProperty(value = "生成对账单时间") + private Date createReconciliationDate; // 生成对账单时间 +} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/StatisticsPackageFeeInfoVO.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/StatisticsPackageFeeInfoVO.java new file mode 100644 index 000000000..4a3aa1d4a --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/StatisticsPackageFeeInfoVO.java @@ -0,0 +1,45 @@ +package com.logpm.statistics.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class StatisticsPackageFeeInfoVO implements Serializable { + + private Long orderInfoId; + + private String goodsName;//物料品类 + + private Integer totalNum; + private BigDecimal totalWeight; + private BigDecimal totalVolume; + + + private BigDecimal systemFreightPrice; + private BigDecimal freightPrice; + private BigDecimal systemPickupPrice; + private BigDecimal pickupPrice; + + private BigDecimal warehouseServiceFee; + private BigDecimal warehouseFee; + private BigDecimal warehouseManageFee; + private BigDecimal warehouseSortingFee; + private BigDecimal warehouseOperatingFee; + + private BigDecimal systemDeliveryFee; + private BigDecimal deliveryFee; + private BigDecimal deliveryServiceFee; + private BigDecimal deliveryLoadingFee; + private BigDecimal deliverySortingFee; + private BigDecimal deliveryUpfloorFee; + private BigDecimal deliveryMoveFee; + private BigDecimal deliveryOtherFee; + private BigDecimal deliveryCrossingFee; + + private Integer signNum; + private Date signTime;//最晚一条 + +} diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/StatisticsReconciliationOrderInfoExportVO.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/StatisticsReconciliationOrderInfoExportVO.java new file mode 100644 index 000000000..d07d38b43 --- /dev/null +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/StatisticsReconciliationOrderInfoExportVO.java @@ -0,0 +1,129 @@ +package com.logpm.statistics.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class StatisticsReconciliationOrderInfoExportVO implements Serializable { + + @ExcelProperty(value = "对账单号") + private String reconciliationOrderNo; // 对账单号 + + @ExcelProperty(value = "运单号") + private String waybillNo; // 运单号 + + @ExcelProperty(value = "订单号") + private String orderCode; // 订单号 + + @ExcelProperty(value = "品牌") + private String brand; // 品牌 + + @ExcelProperty(value = "收货单位") + private String consignee; // 收货单位 + + @ExcelProperty(value = "目的仓名称") + private String destinationWarehouseName; // 目的仓名称 + + @ExcelProperty(value = "总数量") + private Integer totalNum; // 总数量 + + @ExcelProperty(value = "总重量") + private BigDecimal totalWeight; // 总重量 + + @ExcelProperty(value = "总体积") + private BigDecimal totalVolume; // 总体积 + + @ExcelProperty(value = "实际费用") + private BigDecimal realTotalFee; // 实际费用 + + @ExcelProperty(value = "提货费") + private BigDecimal pickupFee; // 提货费 + + @ExcelProperty(value = "运费") + private BigDecimal freightFee; // 运费 + + @ExcelProperty(value = "仓库服务费") + private BigDecimal warehouseServiceFee; // 仓库服务费 + + @ExcelProperty(value = "仓储费") + private BigDecimal warehouseFee; // 仓储费 + + @ExcelProperty(value = "仓储管理费") + private BigDecimal warehouseManageFee; // 仓储管理费 + + @ExcelProperty(value = "仓储分拣费") + private BigDecimal warehouseSortingFee; // 仓储分拣费 + + @ExcelProperty(value = "仓储操作费") + private BigDecimal warehouseOperatingFee; // 仓储操作费 + + @ExcelProperty(value = "配送费") + private BigDecimal deliveryFee; // 配送费 + + @ExcelProperty(value = "配送服务费") + private BigDecimal deliveryServiceFee; // 配送服务费 + + @ExcelProperty(value = "配送装卸费") + private BigDecimal deliveryLoadingFee; // 配送装卸费 + + @ExcelProperty(value = "配送分拣费") + private BigDecimal deliverySortingFee; // 配送分拣费 + + @ExcelProperty(value = "配送上楼费") + private BigDecimal deliveryUpfloorFee; // 配送上楼费 + + @ExcelProperty(value = "配送平移费") + private BigDecimal deliveryMoveFee; // 配送平移费 + + @ExcelProperty(value = "配送其他费") + private BigDecimal deliveryOtherFee; // 配送其他费 + + @ExcelProperty(value = "超区费") + private BigDecimal deliveryCrossingFee; // 超区费 + + @ExcelProperty(value = "安装费") + private BigDecimal installFee; // 安装费 + + @ExcelProperty(value = "其他费") + private BigDecimal otherFee; // 其他费 + + @ExcelProperty(value = "是否有售后") + private String isAftersale; // 是否有售后 + + @ExcelProperty(value = "售后单号") + private String aftersaleOrder; // 售后单号 + + @ExcelProperty(value = "售后金额") + private BigDecimal aftersalesFee; // 售后金额 + + @ExcelProperty(value = "创建人") + private String createUserName; // 创建人 + + @ExcelProperty(value = "是否有异动") + private String isChanges; // 是否有异动 0 否 1 是 + + @ExcelProperty(value = "异动金额") + private BigDecimal changesFee; // 异动金额 + + @ExcelProperty(value = "异动栏目") + private String changesItems; // 异动栏目 + + @ExcelProperty(value = "异动备注") + private String changesRemark; // 异动备注 + + @ExcelProperty(value = "异动时间") + private Date changesTime; // 异动时间 + + @ExcelProperty(value = "确认结算状态") + private String checkStatus; // 确认结算状态 0为确认 1已确认 + + @ExcelProperty(value = "确认人") + private String checkUserName; // 确认人 + + @ExcelProperty(value = "确认时间") + private Date checkTime; // 确认时间 +} diff --git a/blade-service/logpm-trunkline/pom.xml b/blade-service/logpm-trunkline/pom.xml index b637c5515..49fedc3b4 100644 --- a/blade-service/logpm-trunkline/pom.xml +++ b/blade-service/logpm-trunkline/pom.xml @@ -75,6 +75,12 @@ org.springframework.boot spring-boot-starter-amqp + + org.springblade + logpm-statisticsdata-api + 3.2.0.RELEASE + compile + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java index 9058c76e9..80841d122 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java @@ -1433,6 +1433,43 @@ public class OpenOrderController { } } + @ResponseBody + @PostMapping("/cancleCheckWaybill") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "审核运单", notes = "传入openOrderDTO") + public R cancleCheckWaybill(@RequestBody OpenOrderDTO openOrderDTO) { + String method = "############cancleCheckWaybill: "; + log.info(method + "请求参数{}", openOrderDTO); + + Long waybillId = openOrderDTO.getWaybillId(); + + try{ + + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(403,"多仓权限无法操作,请选择仓库"); + } + openOrderDTO.setWarehouseId(myCurrentWarehouse.getId()); + openOrderDTO.setWarehouseName(myCurrentWarehouse.getName()); + + if(Objects.isNull(waybillId)){ + log.warn(method+"运单id为空 waybillId={}",waybillId); + return R.fail(403,"运单id为空"); + } + return openOrderService.cancleCheckWaybill(openOrderDTO); + }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("/openNoPackageWaybill") @ApiOperationSupport(order = 1) diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceClient.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceClient.java index 8b8e6ba8c..d11bf2b4b 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceClient.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceClient.java @@ -49,4 +49,12 @@ public class TrunklineAdvanceClient implements ITrunklineAdvanceClient{ public Boolean cancelOrder(CancelOrderParamVO orderCode) { return advanceService.cancelOrder(orderCode.getOrderCode()); } + + @Override + public List findListByWaybillNo(String waybillNo) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("waybill_no",waybillNo) + .eq("is_deleted",0); + return advanceService.list(queryWrapper); + } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceDetailClient.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceDetailClient.java index ff564343c..95f0ff045 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceDetailClient.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineAdvanceDetailClient.java @@ -1,5 +1,6 @@ package com.logpm.trunkline.feign; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.service.ITrunklineAdvanceDetailService; import com.logpm.trunkline.vo.TrunklineAdvanceDetailVO; @@ -32,4 +33,12 @@ public class TrunklineAdvanceDetailClient implements ITrunklineAdvanceDetailClie public TrunklineAdvanceDetailEntity findEntityByOrderPackageCode(String orderPackageCode) { return advanceDetailService.findEntityByOrderPackageCode(orderPackageCode); } + + @Override + public List findListByWaybillId(Long waybillId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("waybill_id",waybillId) + .eq("is_deleted",0); + return advanceDetailService.list(queryWrapper); + } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java index 4a79bf7fe..1a52258b3 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java @@ -79,4 +79,6 @@ public interface TrunklineAdvanceDetailMapper extends BaseMapper findAdvanceDetailListByWaybillId(@Param("param") AdvanceDTO advanceDTO); List findTotalNumByOrderCodes(@Param("orderCodeSet") Set orderCodeSet); + + void clearWaybillInfoByWaybillId(@Param("waybillId") Long waybillId); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml index 2e340dd73..f9b4e53bf 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml @@ -492,5 +492,12 @@ group by order_code + + update logpm_trunkline_advance_detail + set waybill_id = null, + waybill_no = null + where waybill_id = #{waybillId} + and is_deleted = 0 + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.java index 26e5c5633..e58e6fa33 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.java @@ -45,4 +45,6 @@ public interface TrunklineAdvanceMapper extends BaseMapper + + update logpm_trunkline_advance + set waybill_id = null, + waybill_no = null, + waybill_status = '0' + where waybill_id = #{waybillId} + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml index 8e189d9c2..0dfa07ba1 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml @@ -424,7 +424,7 @@ ltcl.settlement_value settlementValue, ltcl.settlement_person settlementPerson, ltcl.sign_time signTime, - IFNULL(sum(ltcls.num),0) signNum + IFNULL(sum(ltcls.unload_num),0) signNum from logpm_trunkline_cars_load ltcl left join logpm_trunkline_cars_load_scan ltcls on ltcls.load_id = ltcl.id and ltcls.scan_status = '3' where ltcl.is_deleted = 0 diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderService.java index c04085ce5..3863dcb02 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderService.java @@ -95,7 +95,7 @@ public interface IOpenOrderService { R findAdvanceDetailListByWaybillId(AdvanceDTO advanceDTO); - + R cancleCheckWaybill(OpenOrderDTO openOrderDTO); // R findWaybillInfo(String waybillNo); } 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 a9e43b726..4d003eab1 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 @@ -90,4 +90,5 @@ public interface ITrunklineAdvanceDetailService extends BaseService findTotalNumByOrderCodes(Set orderCodeSet); + void clearWaybillInfoByWaybillId(Long waybillId); } 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 a826cd256..e240361fe 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 @@ -46,4 +46,6 @@ public interface ITrunklineAdvanceService extends BaseService map = new HashMap<>(); @@ -811,6 +824,12 @@ public class OpenOrderServiceImpl implements IOpenOrderService { warehouseWayBillDetail.setChargeType(waybillDetailDTO.getChargeType()); warehouseWayBillDetail.setDeliveryPrice(waybillDetailDTO.getDeliveryPrice()); warehouseWayBillDetail.setSubtotalDeliveryFee(waybillDetailDTO.getSubtotalDeliveryFee()); + warehouseWayBillDetail.setPickupPrice(waybillDetailDTO.getPickupPrice()); + warehouseWayBillDetail.setFreightPrice(waybillDetailDTO.getFreightPrice()); + warehouseWayBillDetail.setSystemChargeType(waybillDetailDTO.getSystemChargeType()); + warehouseWayBillDetail.setSystemDeliveryChargeType(waybillDetailDTO.getSystemDeliveryChargeType()); + warehouseWayBillDetail.setSystemPickupChargeType(waybillDetailDTO.getSystemPickupChargeType()); + warehouseWayBillDetail.setSystemWarehouseChargeType(waybillDetailDTO.getSystemWarehouseChargeType()); details.add(warehouseWayBillDetail); } warehouseWaybillDetailClient.addList(details); @@ -2213,6 +2232,18 @@ public class OpenOrderServiceImpl implements IOpenOrderService { log.warn("#############updateWaybill: 运单已作废 waybillId={}", waybillId); return R.fail(405, "运单已作废"); } + + //验证运单是否有配送任务 + //查询运单下所有订单号 + List orderCodes = distributionParcelListClient.findOrderCodeByWaybillId(waybillId); + //判断运单下所有订单是否在预约关联订单表上是否有数据 + List reservationIds = reservationStockarticleClient.findReservationIdsByOrderCodes(orderCodes); + if(CollUtil.isNotEmpty(reservationIds)){ + log.warn("#############updateWaybill: 已创建配送任务无法改单 waybillId={}", waybillId); + return R.fail(405, "已创建配送任务无法改单"); + } + + // 得到改单之前的收货单位 oldConsignee = waybillEntity.getConsignee(); @@ -2793,6 +2824,8 @@ public class OpenOrderServiceImpl implements IOpenOrderService { Long waybillId = openOrderDTO.getWaybillId(); Long warehouseId = openOrderDTO.getWarehouseId(); String warehouseName = openOrderDTO.getWarehouseName(); + String checkReson = openOrderDTO.getCheckReson(); + String checkRemark = openOrderDTO.getCheckRemark(); WarehouseWaybillEntity warehouseWaybillEntity = warehouseWaybillClient.findByWaybillId(waybillId); if (Objects.isNull(warehouseWaybillEntity)) { @@ -2811,18 +2844,33 @@ public class OpenOrderServiceImpl implements IOpenOrderService { return R.fail(405, "运单已经审核"); } - warehouseWaybillEntity.setCheckUserId(AuthUtil.getUserId()); - warehouseWaybillEntity.setCheckUserName(AuthUtil.getNickName()); + Date now = new Date(); - warehouseWaybillClient.updateEntity(warehouseWaybillEntity); + WarehouseWaybillEntity updateEntity = new WarehouseWaybillEntity(); + updateEntity.setId(waybillId); + updateEntity.setCheckUserId(AuthUtil.getUserId()); + updateEntity.setCheckUserName(AuthUtil.getNickName()); + updateEntity.setCheckTime(now); + updateEntity.setCheckStatus(1); + updateEntity.setCheckReson(checkReson); + updateEntity.setCheckRemark(checkRemark); + warehouseWaybillClient.updateEntity(updateEntity); //异步存入日志 String nickName = AuthUtil.getNickName(); Long userId = AuthUtil.getUserId(); String waybillNo = warehouseWaybillEntity.getWaybillNo(); - String createOperationRemark = "审核运单" + waybillNo + ",时间:" + CommonUtil.dateToStringGeneral(new Date()) + ", 审核人:" + AuthUtil.getNickName(); + String createOperationRemark = "审核运单" + waybillNo + ",时间:" + CommonUtil.dateToStringGeneral(now) + ", 审核人:" + AuthUtil.getNickName(); openOrderAsyncService.saveLog(waybillId, waybillNo, "999", "审核运单", createOperationRemark, nickName, userId, warehouseId, warehouseName); + + //发送运单审核的广播 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("waybillId",waybillId); + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.CHECKWAYBILL.EXCHANGE) + .msg(jsonObject.toJSONString()).build(); + sendFanoutService.sendFanoutMsg(fanoutMsg); + return R.success("审核成功"); } @@ -3268,13 +3316,26 @@ public class OpenOrderServiceImpl implements IOpenOrderService { @Override public R saveWaybillReturn(Long waybillId, String url) { + WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId); + if(Objects.isNull(waybillEntity)){ + log.info("#################openWaybill: 运单信息不存在 waybillId={}", waybillId); + return R.fail(405,"运单信息不存在"); + } + TrunklineWaybillReturnEntity trunklineWaybillReturnEntity = new TrunklineWaybillReturnEntity(); trunklineWaybillReturnEntity.setWaybillId(waybillId); trunklineWaybillReturnEntity.setUrl(url); trunklineWaybillReturnEntity.setCreateUserName(AuthUtil.getNickName()); trunklineWaybillReturnService.save(trunklineWaybillReturnEntity); - return R.success("上床成功"); + Integer receiptNum = waybillEntity.getReceiptNum(); + WarehouseWaybillEntity updateWaybillEntity = new WarehouseWaybillEntity(); + updateWaybillEntity.setId(waybillId); + updateWaybillEntity.setReceiptNum(receiptNum+1); + updateWaybillEntity.setReturnStatus(1); + warehouseWaybillClient.updateEntity(updateWaybillEntity); + + return R.success("上传成功"); } @Override @@ -3382,8 +3443,13 @@ public class OpenOrderServiceImpl implements IOpenOrderService { @Transactional(rollbackFor = Exception.class) @Override public R abolishWaybill(List waybillIds, Long warehouseId, String warehouseName, String abolishReson) { + + List clearWaybillInfoParceListIds = new ArrayList<>(); + List deleteZeroWaybillNoList = new ArrayList<>(); + List waybillList = warehouseWaybillClient.findListByWaybillIds(waybillIds); waybillList.forEach(waybillEntity -> { + Long waybillId = waybillEntity.getId(); String waybillNo = waybillEntity.getWaybillNo(); String waybillStatus = waybillEntity.getWaybillStatus(); if(StringUtil.isBlank(waybillStatus)){ @@ -3400,40 +3466,69 @@ public class OpenOrderServiceImpl implements IOpenOrderService { log.warn("##############abolishWaybill: {}运单已经作废",waybillNo); throw new CustomerException(405,waybillNo+"运单已经作废,不能重复作废"); } + + //判断是否做了配送 + List orderCodes = distributionParcelListClient.findOrderCodeByWaybillId(waybillId); + List reservationIds = reservationStockarticleClient.findReservationIdsByOrderCodes(orderCodes); + if(CollUtil.isNotEmpty(reservationIds)){ + log.warn("##############abolishWaybill: {}运单已经做了配送计划",waybillNo); + throw new CustomerException(405,waybillNo+"运单已经做了配送计划"); + } + + //TODO 还需要加上生成了预存单的无法进行作废 + Integer status = orderInfoClient.findCreateRencilitionOrderStatus(waybillId); + if(status == 1){ + log.warn("##########abolishWaybill: 运单已有预存单确认 waybillId={}",waybillId); + throw new CustomerException(405,"运单已有预存单确认"); + } + waybillEntity.setAbolishStatus(1); waybillEntity.setAbolishUserName(AuthUtil.getNickName()); waybillEntity.setAbolishTime(new Date()); - }); - warehouseWaybillClient.updateList(waybillList); - //把装了车的包件取消装车 - List carsLoadScanIds = trunklineCarsLoadScanService.findCarsLoadScanIdsByWaybillIds(waybillIds); + Integer waybillType = waybillEntity.getWaybillType(); + if(waybillType.equals(1)){ + //订制品 + advanceService.clearWaybillInfoByWaybillId(waybillId); + advanceDetailService.clearWaybillInfoByWaybillId(waybillId); - if(!CollUtil.isEmpty(carsLoadScanIds)){ - carsLoadService.removeCarsLoadScan(carsLoadScanIds,warehouseId); - } + trunklineWaybillOrderService.deleteByWaybillNo(waybillNo); + trunklineWaybillPackageService.deleteByWaybillNo(waybillNo); - List advanceIds = trunklineWaybillOrderService.findAdvanceIdsByWaybillIds(waybillIds); + List parcelListEntityList = distributionParcelListClient.findByWaybillNumber(waybillNo); + parcelListEntityList.forEach(parcelListEntity -> { + clearWaybillInfoParceListIds.add(parcelListEntity.getId()); + }); - trunklineWaybillOrderService.remove(new QueryWrapper().in("waybill_id",waybillIds)); + }else if(waybillType.equals(2)){ + //零担 + trunklineWaybillOrderService.deleteByWaybillNo(waybillNo); + deleteZeroWaybillNoList.add(waybillNo); + + } + }); - if(!advanceIds.isEmpty()){ - List advanceEntities = advanceService.findListByIds(advanceIds); - advanceEntities.forEach(advanceEntity -> { - advanceEntity.setWaybillStatus("0"); - advanceEntity.setWaybillNo(null); - }); - advanceService.updateBatchById(advanceEntities); - advanceDetailService.updateWaybillNoIsNullByAdvanceIds(advanceIds); + //把装了车的包件取消装车 + List carsLoadScanIds = trunklineCarsLoadScanService.findCarsLoadScanIdsByWaybillIds(waybillIds); - distributionParcelListClient.clearParceListWaybillByAdvanceIds(advanceIds); + if(!CollUtil.isEmpty(carsLoadScanIds)){ + carsLoadService.removeCarsLoadScan(carsLoadScanIds,warehouseId); } waybillList.forEach(waybillEntity -> { String createOperationRemark = "作废运单" + waybillEntity.getWaybillNo() + ",时间:" + CommonUtil.dateToStringGeneral(new Date()); openOrderAsyncService.saveLog(waybillEntity.getId(), waybillEntity.getWaybillNo(), "1000", "作废运单", createOperationRemark+" 原因:"+abolishReson, AuthUtil.getNickName(), AuthUtil.getUserId(), warehouseId, warehouseName); }); + + warehouseWaybillClient.updateList(waybillList); + if(CollUtil.isNotEmpty(clearWaybillInfoParceListIds)){ + distributionParcelListClient.clearWaybillInfoByParceListIds(clearWaybillInfoParceListIds); + } + if(CollUtil.isNotEmpty(deleteZeroWaybillNoList)){ + distributionStockArticleClient.deleteZeroOrderByWaybillNoList(deleteZeroWaybillNoList); + } + return R.success("作废成功"); } @@ -3521,7 +3616,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceDetailModel.setPackageStatus("0"); List advanceDetailEntities = new ArrayList<>(); - List orderPackageCodes = basicdataCodeClient.getBatchPackageCodeByType(warehouseCode, advanceEntity.getOrderCode(), totalNum); + List orderPackageCodes = basicdataCodeClient.getBatchPackageCodeByType(warehouseCode, advanceEntity.getOrderCode(), enterNum); orderPackageCodes.forEach(orderPackageCode -> { TrunklineAdvanceDetailEntity advanceDetailEntity = new TrunklineAdvanceDetailEntity(); BeanUtil.copy(advanceDetailModel, advanceDetailEntity); @@ -3553,6 +3648,66 @@ public class OpenOrderServiceImpl implements IOpenOrderService { return R.data(advanceDetailVOList); } + @Override + public R cancleCheckWaybill(OpenOrderDTO openOrderDTO) { + Long waybillId = openOrderDTO.getWaybillId(); + String checkRemark = openOrderDTO.getCheckRemark(); + Long warehouseId = openOrderDTO.getWarehouseId(); + String warehouseName = openOrderDTO.getWarehouseName(); + + WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId); + if(Objects.isNull(waybillEntity)){ + log.warn("##########cancleCheckWaybill: 运单信息不存在 waybillId={}",waybillId); + return R.fail(405,"运单信息不存在"); + } + Integer checkStatus = waybillEntity.getCheckStatus(); + if(checkStatus.equals(0)){ + log.warn("##########cancleCheckWaybill: 运单还未审核 waybillId={} checkStatus={}",waybillId,checkStatus); + return R.fail(405,"运单还未审核"); + } + + List orderCodes = distributionParcelListClient.findOrderCodeByWaybillId(waybillId); + List reservationIds = reservationStockarticleClient.findReservationIdsByOrderCodes(orderCodes); + if(CollUtil.isNotEmpty(reservationIds)){ + log.warn("##########cancleCheckWaybill: 运单已有配送计划 waybillId={}",waybillId); + return R.fail(405,"运单已有配送计划"); + } + + Integer status = orderInfoClient.findCreateRencilitionOrderStatus(waybillId); + if(status == 1){ + log.warn("##########cancleCheckWaybill: 运单已有预存单确认 waybillId={}",waybillId); + return R.fail(405,"运单已有预存单确认"); + } + + + WarehouseWaybillEntity updateWaybillEntity = new WarehouseWaybillEntity(); + updateWaybillEntity.setId(waybillId); + updateWaybillEntity.setCheckStatus(0); + updateWaybillEntity.setCancleCheckRemark(checkRemark); + updateWaybillEntity.setCancleCheckUserId(AuthUtil.getUserId()); + updateWaybillEntity.setCancleCheckUserName(AuthUtil.getNickName()); + updateWaybillEntity.setCancleCheckTime(new Date()); + warehouseWaybillClient.updateEntity(updateWaybillEntity); + + + //异步存入日志 + String nickName = AuthUtil.getNickName(); + Long userId = AuthUtil.getUserId(); + String waybillNo = waybillEntity.getWaybillNo(); + String createOperationRemark = "取消审核运单" + waybillNo + ",时间:" + CommonUtil.dateToStringGeneral(new Date()) + ", 取消审核人:" + AuthUtil.getNickName(); + openOrderAsyncService.saveLog(waybillId, waybillNo, "999", "取消审核运单", createOperationRemark, nickName, userId, warehouseId, warehouseName); + + + //发送运单取消审核的广播 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("waybillId",waybillId); + FanoutMsg fanoutMsg = FanoutMsg.builder().exchange(FanoutConstants.trunkline.CANCLECHECKWAYBILL.EXCHANGE) + .msg(jsonObject.toJSONString()).build(); + sendFanoutService.sendFanoutMsg(fanoutMsg); + + return R.success("取消成功"); + } + private List verifyData(OpenOrderDTO openOrderDTO, WarehouseWaybillEntity waybillEntity) { log.info("###################verifyData: 验证改单数据"); // StringBuilder stringBuilder = new StringBuilder(); @@ -4362,6 +4517,12 @@ public class OpenOrderServiceImpl implements IOpenOrderService { warehouseWayBillDetail.setWeight(waybillDetailDTO.getWeight()); warehouseWayBillDetail.setPrice(waybillDetailDTO.getPrice()); warehouseWayBillDetail.setSubtotalFreight(waybillDetailDTO.getSubtotalFreight()); + warehouseWayBillDetail.setPickupPrice(waybillDetailDTO.getPickupPrice()); + warehouseWayBillDetail.setFreightPrice(waybillDetailDTO.getFreightPrice()); + warehouseWayBillDetail.setSystemChargeType(waybillDetailDTO.getSystemChargeType()); + warehouseWayBillDetail.setSystemDeliveryChargeType(waybillDetailDTO.getSystemDeliveryChargeType()); + warehouseWayBillDetail.setSystemPickupChargeType(waybillDetailDTO.getSystemPickupChargeType()); + warehouseWayBillDetail.setSystemWarehouseChargeType(waybillDetailDTO.getSystemWarehouseChargeType()); warehouseWaybillDetailClient.addEntity(warehouseWayBillDetail); stringBuilder.append("明细新增:").append(warehouseWayBillDetail.getProductName()).append(" 数量 ").append(waybillDetailDTO.getNum()).append(" 单价 ").append(waybillDetailDTO.getPrice()).append(";"); @@ -4429,6 +4590,12 @@ public class OpenOrderServiceImpl implements IOpenOrderService { warehouseWayBillDetail.setDeliveryPrice(waybillDetailDTO.getDeliveryPrice()); warehouseWayBillDetail.setSubtotalDeliveryFee(waybillDetailDTO.getSubtotalDeliveryFee()); + warehouseWayBillDetail.setPickupPrice(waybillDetailDTO.getPickupPrice()); + warehouseWayBillDetail.setFreightPrice(waybillDetailDTO.getFreightPrice()); + warehouseWayBillDetail.setSystemChargeType(waybillDetailDTO.getSystemChargeType()); + warehouseWayBillDetail.setSystemDeliveryChargeType(waybillDetailDTO.getSystemDeliveryChargeType()); + warehouseWayBillDetail.setSystemPickupChargeType(waybillDetailDTO.getSystemPickupChargeType()); + warehouseWayBillDetail.setSystemWarehouseChargeType(waybillDetailDTO.getSystemWarehouseChargeType()); warehouseWaybillDetailClient.updateEntityById(warehouseWayBillDetail); } 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 83977da86..e0c24cfc7 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 @@ -362,4 +362,9 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl findTotalNumByOrderCodes(Set orderCodeSet) { return baseMapper.findTotalNumByOrderCodes(orderCodeSet); } + + @Override + public void clearWaybillInfoByWaybillId(Long waybillId) { + baseMapper.clearWaybillInfoByWaybillId(waybillId); + } } 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 b59213ea3..8a90d0695 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 @@ -1321,4 +1321,9 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl loadingZeroFlag = new AtomicReference<>(0); + //查询有哪些在当前仓做计划的订单 List carsOrderEntityList = trunklineCarsOrderService.findListByLoadIdAndNodeId(loadId, warehouseId); //把carsOrderEntityList通过type分组成两个新的集合 @@ -6252,6 +6255,8 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl pages = warehouseWaybillService.pageFinanceWaybillList(waybillDTO); + IPage pages = warehouseWaybillService.pageFinanceWaybillList(waybillDTO); return R.data(pages); }catch (CustomerException e){ @@ -327,6 +329,34 @@ public class WarehouseWaybillController extends BladeController { } } + @ResponseBody + @PostMapping("/financeWaybillListExport") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "运单审核列表导出", notes = "传入waybillDTO") + public void financeWaybillListExport(@RequestBody WarehouseWaybillDTO waybillDTO, HttpServletResponse response) { + String method = "############financeWaybillListExport: "; + log.info(method+"请求参数{}",waybillDTO); + List destinationWarehouseIds = new ArrayList<>(); + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + List myWatchWarehouse = warehouseClient.getMyWatchWarehouse(); + if(!myWatchWarehouse.isEmpty()){ + myWatchWarehouse.forEach(warehouseEntity -> { + destinationWarehouseIds.add(warehouseEntity.getId()); + }); + } + }else{ + destinationWarehouseIds.add(myCurrentWarehouse.getId()); + } + waybillDTO.setDestinationWarehouseIds(destinationWarehouseIds); + + List ls = warehouseWaybillService.financeWaybillListExport(waybillDTO); + //导出ls + ExcelUtil.export(response, "运单审核数据", "运单审核数据", ls, FinanceWaybillExportVO.class); + } + + @ResponseBody @PostMapping("/findWaybillInfo") diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java index 859a96646..38cc0311d 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java @@ -22,6 +22,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.warehouse.dto.WarehouseWaybillDTO; import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.vo.ExportWarehouseWaybillVO; +import com.logpm.warehouse.vo.FinanceWaybillExportVO; +import com.logpm.warehouse.vo.FinanceWaybillVO; import com.logpm.warehouse.vo.WarehouseWaybillVO; import org.apache.ibatis.annotations.Param; @@ -62,7 +64,7 @@ public interface WarehouseWaybillMapper extends BaseMapper pageFinanceWaybillList(IPage page, @Param("param") WarehouseWaybillDTO waybillDTO); + IPage pageFinanceWaybillList(IPage page, @Param("param") WarehouseWaybillDTO waybillDTO); List findWaybillBilllByWaybillNos(@Param("waybillNos") List waybillNos); @@ -70,4 +72,6 @@ public interface WarehouseWaybillMapper extends BaseMapper exportWaybillList(@Param("param") WarehouseWaybillDTO waybillDTO); void deleteByWaybillNo(@Param("waybillNo") String waybillNo); + + List financeWaybillListExport(@Param("param") WarehouseWaybillDTO waybillDTO); } 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 2915965be..a0a02983b 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 @@ -327,9 +327,82 @@ - + select lww.id id, + lww.brand brand, + lww.waybill_no waybillNo, + lww.order_no orderNo, + lww.consignee consignee, + lww.consignee_name consigneeName, + lww.consignee_mobile consigneeMobile, + lww.consignee_address consigneeAddress, + lww.shipper shipper, + lww.shipper_name shipperName, + lww.shipper_mobile shipperMobile, + lww.shipper_address shipperAddress, + lww.destination destination, + lww.departure departure, + lww.departure_warehouse_name departureWarehouseName, + lww.destination_warehouse_name destinationWarehouseName, + lww.delivery_way deliveryWay, + lww.customer_train customerTrain, + IFNULL(lww.return_status,0) returnStatus, + lww.remark remark, + lbc.clean_obj_type cleanObjType, + lww.pay_type payType, + lww.pay_way payWay, + lww.x_pay xPay, + lww.d_pay dPay, + lww.h_pay hPay, + lww.y_pay yPay, + lww.service_type serviceType, + IFNULL(lww.update_status,0) updateStatus, + IFNULL(lww.check_status,0) checkStatus, + lww.check_reson checkReson, + lww.check_remark checkRemark, + lww.check_user_name checkUserName, + lww.check_time checkTime, + lww.cancle_check_remark cancleCheckRemark, + lww.cancle_check_user_name cancleCheckUserName, + lww.cancle_check_time cancleCheckTime, + lww.waybill_status waybillStatus, + lww.document_making_time openTime, + lww.goods_name goodsName, + lww.total_count totalCount, + lww.total_weight totalWeight, + lww.total_volume totalVolume, + lww.x_pay+lww.d_pay+lww.h_pay+lww.y_pay totalFee, + sum(IFNULL(lwwd.freight_price,0)*lwwd.num+IFNULL(lwwd.pickup_price,0)*lwwd.num+IFNULL(lwwd.delivery_price,0)*lwwd.num) systemTotalFee, + lww.pickup_fee pickupFee, + lww.total_freight freightFee, + lww.storage_fee+lww.warehouse_management_fee warehouseServiceFee, + lww.storage_fee warehouseFee, + lww.warehouse_management_fee warehouseManagementFee, + 0.00 warehouseSortingFee, + 0.00 warehouseOprationFee, + lww.delivery_fee+lww.handling_fee deliveryServiceFee, + lww.delivery_fee deliveryFee, + lww.handling_fee deliveryHandlingFee, + 0.00 deliverySortingFee, + 0.00 deliveryUpfloorFee, + 0.00 deliveryMoveFee, + 0.00 deliveryLine, + 0.00 deliveryLineFee, + lww.other_fee otherFee, + lww.install_fee installFee, + lww.insurance_fee insuranceFee, + lww.claiming_value claimingValue, + lww.third_operation_fee thirdOperationFee, + lww.rebate rebate, + GROUP_CONCAT(concat(lwwd.product_name,'(',lwwd.num,')')) goodsTypeNum, + GROUP_CONCAT(concat(lwwd.product_name,'(',lwwd.price,')')) goodsTypePrice, + GROUP_CONCAT(concat(lwwd.product_name,'(',IFNULL(lwwd.delivery_price,0),')')) goodsTypeDeliveryPrice, + GROUP_CONCAT(concat(lwwd.product_name,'(',IFNULL(lwwd.pickup_price,0),')')) goodsTypePickupPrice, + GROUP_CONCAT(concat(lwwd.product_name,'(',IFNULL(lwwd.freight_price,0),')')) goodsTypeFreightPrice, + count(lwwd.id) goodsTypeCount from logpm_warehouse_waybill lww + left join logpm_basicdata_client lbc on lbc.id = lww.consignee_id + left join logpm_warehouse_waybill_detail lwwd on lwwd.waybill_id = lww.id where lww.is_deleted = 0 and lww.waybill_no not in @@ -466,6 +539,263 @@ order by lww.create_time desc + + + + select waybill_no waybillNo, - sum(unload_num) num + sum(num) num from logpm_trunkline_cars_load_scan where load_id = #{loadId} and warehouse_id = #{nodeId} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index e336c9879..2a771a1dd 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -7424,6 +7424,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl loadIdSet = groupedByLoadId.keySet(); + List trunklineCarsLoadEntities = baseMapper.selectBatchIds(loadIdSet); + //把trunklineCarsLoadEntities转化成以id为key的Map + Map map = trunklineCarsLoadEntities.stream().collect(Collectors.toMap(TrunklineCarsLoadEntity::getId, Function.identity())); + List updateParceListList = new ArrayList<>(); List updateStockArticleList = new ArrayList<>(); @@ -7454,6 +7458,10 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl loadScanEntityList2 = groupedByOrderCode.get(orderCode); if(CollUtil.isNotEmpty(loadScanEntityList2)){ + + TrunklineCarsLoadScanEntity carsLoadScanEntity = loadScanEntityList2.get(0); + Long loadId1 = carsLoadScanEntity.getLoadId(); + //把loadScanEntityList2的num进行累加 Integer num = loadScanEntityList2.stream().map(TrunklineCarsLoadScanEntity::getNum).reduce(0, Integer::sum); //把loadScanEntityList2中所有元素的scanCode放入一个List @@ -7483,9 +7491,17 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl