From 4ddad81272451a9bf3c35d4443ed3fa5e431609f Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 28 Oct 2024 18:39:55 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E8=BD=A6=E8=BD=BD=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E3=80=81=E5=88=B0=E8=BD=A6=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E3=80=81=E8=BF=90=E5=8D=95=E5=8B=BE=E9=80=89?= =?UTF-8?q?=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/logpm/trunkline/dto/LoadCarsDTO.java | 8 +++ .../mapper/TrunklineCarsLoadMapper.xml | 66 +++++++++++++++++++ .../WarehouseWaybillController.java | 7 +- .../warehouse/dto/WarehouseWaybillDTO.java | 1 + .../mapper/WarehouseWaybillMapper.java | 2 +- .../mapper/WarehouseWaybillMapper.xml | 6 ++ .../service/IWarehouseWaybillService.java | 2 +- .../impl/WarehouseWaybillServiceImpl.java | 4 +- 8 files changed, 91 insertions(+), 5 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 5755525d6..95c66d924 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 @@ -206,4 +206,12 @@ public class LoadCarsDTO implements Serializable { private Long endWarehouseId; + private String driverName; + private String driverMobile; + private String carNumber; + private String endWarehouseNames; + private String arriveTime; + private String createUserName; + private String createTime; + } 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 585bd2db6..f0a22db02 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 @@ -82,6 +82,42 @@ and ltcl.arrive_time <= #{param.arriveTimeEnd} + + and ltcl.driver_name like CONCAT('%',#{param.driverName},'%') + + + and ltcl.driver_mobile like CONCAT('%',#{param.driverMobile},'%') + + + and ltcl.driver_mobile like CONCAT('%',#{param.driverMobile},'%') + + + and ltcl.driver_mobile like CONCAT('%',#{param.driverMobile},'%') + + + and ltcl.driver_mobile like CONCAT('%',#{param.driverMobile},'%') + + + and ltcl.car_number like CONCAT('%',#{param.carNumber},'%') + + + and ltcl.start_warehouse_name like CONCAT('%',#{param.startWarehouseName},'%') + + + and ltcl.end_warehouse_names like CONCAT('%',#{param.endWarehouseNames},'%') + + + and ltcl.create_user_name like CONCAT('%',#{param.createUserName},'%') + + + and DATE_FORMAT(ltcl.arrive_time,'%y%d%m') = DATE_FORMAT(#{param.arriveTime},'%y%d%m') + + + and DATE_FORMAT(ltcl.start_time,'%y%d%m') = DATE_FORMAT(#{param.startTime},'%y%d%m') + + + and DATE_FORMAT(ltcl.create_time,'%y%d%m') = DATE_FORMAT(#{param.createTime},'%y%d%m') + group by ltcl.id,ltcl.cars_no, ltcl.plan_loading_number, ltcl.real_loading_number, @@ -170,6 +206,36 @@ and ltcl.arrive_time <= #{param.arriveTimeEnd} + + and ltcl.driver_name like CONCAT('%',#{param.driverName},'%') + + + and ltcl.driver_mobile like CONCAT('%',#{param.driverMobile},'%') + + + and ltcl.driver_mobile like CONCAT('%',#{param.carNumber},'%') + + + and ltcl.start_warehouse_name like CONCAT('%',#{param.startWarehouseName},'%') + + + and ltcl.end_warehouse_names like CONCAT('%',#{param.endWarehouseNames},'%') + + + and ltcl.create_user_name like CONCAT('%',#{param.createUserName},'%') + + + and ltcl.operator like CONCAT('%',#{param.operator},'%') + + + AND DATE_FORMAT(ltcl.arrive_time,'%y%d%m') = DATE_FORMAT(#{param.arriveTime},'%y%d%m') + + + AND DATE_FORMAT(ltcl.start_time,'%y%d%m') = DATE_FORMAT(#{param.startTime},'%y%d%m') + + + AND DATE_FORMAT(ltcl.create_time,'%y%d%m') = DATE_FORMAT(#{param.createTime},'%y%d%m') + group by ltcl.id,ltcl.cars_no, ltcl.plan_loading_number, ltcl.real_loading_number, diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java index bc2667475..4b6bf7a4e 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java @@ -290,8 +290,13 @@ public class WarehouseWaybillController extends BladeController { myWatchWarehouse.forEach(warehouseEntity -> warehouseIds.add(warehouseEntity.getId())); } waybillDTO.setWarehouseIds(warehouseIds); + List idslist = new ArrayList<>(); + if (!Objects.isNull(waybillDTO.getIds())){ + List ids = Func.toLongList(",", waybillDTO.getIds()); + idslist .addAll(ids) ; + } - List list = warehouseWaybillService.exportWaybillList(waybillDTO); + List list = warehouseWaybillService.exportWaybillList(waybillDTO,idslist); fileNameStringBuffer.append(DateUtil.format(DateUtil.now(), DateUtil.PATTERN_DATE)); //导出ls diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java index 23cbcf63e..eac25f05b 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/WarehouseWaybillDTO.java @@ -73,5 +73,6 @@ public class WarehouseWaybillDTO extends WarehouseWaybillEntity { private String checkTimeEndStr; private Date checkTimeStartDate; private Date checkTimeEndDate; + private String ids; } 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 f9e2dc6ed..e0f0dabd6 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 @@ -69,7 +69,7 @@ public interface WarehouseWaybillMapper extends BaseMapper findWaybillBilllByWaybillNos(@Param("waybillNos") List waybillNos); - List exportWaybillList(@Param("param") WarehouseWaybillDTO waybillDTO); + List exportWaybillList(@Param("param") WarehouseWaybillDTO waybillDTO,@Param("idsList") List idsList); void deleteByWaybillNo(@Param("waybillNo") String waybillNo); 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 04b414089..3b1f3d51a 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 @@ -1013,6 +1013,12 @@ #{item} + + and lww.id in + + #{id} + + and ( lww.departure_warehouse_id in diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java index 8708a3d9d..cb9005bee 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java @@ -81,7 +81,7 @@ public interface IWarehouseWaybillService extends BaseService findWaybillBilllByWaybillNos(List waybillNos); - List exportWaybillList(WarehouseWaybillDTO waybillDTO); + List exportWaybillList(WarehouseWaybillDTO waybillDTO,List list); void deleteByWaybillNo(String waybillNo); diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java index 57d989c4c..8027e8c2e 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java @@ -888,7 +888,7 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl exportWaybillList(WarehouseWaybillDTO waybillDTO) { + public List exportWaybillList(WarehouseWaybillDTO waybillDTO,List idsList) { waybillDTO.setDocumentMakingTimeStartDate(CommonUtil.getStartByDateStr(waybillDTO.getDocumentMakingTimeStartStr())); waybillDTO.setDocumentMakingTimeEndDate(CommonUtil.getEndByDateStr(waybillDTO.getDocumentMakingTimeEndStr())); @@ -899,7 +899,7 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl list = baseMapper.exportWaybillList(waybillDTO); + List list = baseMapper.exportWaybillList(waybillDTO,idsList); list.forEach(item -> { item.setPayType(DictBizCache.getValue(DictBizConstant.OPEN_ORDER_PAY_TYPE, item.getPayType())); From 1ac0188d8c5bc55d57a1f6c368cb41da8cb5cbb0 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 28 Oct 2024 19:24:44 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E8=BF=90=E5=8D=95=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E3=80=81=E5=88=B0=E8=BD=A6=E8=AE=A1=E5=88=92=E6=90=9C=E7=B4=A2?= =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml | 2 +- .../logpm/warehouse/controller/WarehouseWaybillController.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) 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 f0a22db02..c9809b7e1 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 @@ -213,7 +213,7 @@ and ltcl.driver_mobile like CONCAT('%',#{param.driverMobile},'%') - and ltcl.driver_mobile like CONCAT('%',#{param.carNumber},'%') + and ltcl.car_number like CONCAT('%',#{param.carNumber},'%') and ltcl.start_warehouse_name like CONCAT('%',#{param.startWarehouseName},'%') diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java index 4b6bf7a4e..b3b5e8cd2 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java @@ -290,8 +290,9 @@ public class WarehouseWaybillController extends BladeController { myWatchWarehouse.forEach(warehouseEntity -> warehouseIds.add(warehouseEntity.getId())); } waybillDTO.setWarehouseIds(warehouseIds); - List idslist = new ArrayList<>(); + List idslist = null; if (!Objects.isNull(waybillDTO.getIds())){ + idslist= new ArrayList<>(); List ids = Func.toLongList(",", waybillDTO.getIds()); idslist .addAll(ids) ; } From ad9292c72498395ce806e4749ac69b7890c22fdd Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 28 Oct 2024 20:01:24 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=8D=E5=8A=A1=E4=BB=93=E3=80=81=E9=85=8D?= =?UTF-8?q?=E9=80=81=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BasicdataClientServiceImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java index a44cace25..c50f72669 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java @@ -590,7 +590,7 @@ public class BasicdataClientServiceImpl extends BaseServiceImpl Date: Mon, 28 Oct 2024 23:18:04 +0800 Subject: [PATCH 4/8] =?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/IBasicdataClientClient.java | 2 + .../feign/IDistributionParcelListClient.java | 3 + .../trunkline/vo/CarsLoadPackagePlanVO.java | 16 ++ .../logpm/trunkline/vo/LoadScanOrderVO.java | 1 + .../logpm/trunkline/vo/OrderScanDetailVO.java | 6 + .../logpm/trunkline/vo/UnloadPackageVO.java | 6 + .../logpm/trunkline/vo/UnloadScanOrderVO.java | 2 +- .../feign/BasicdataClientClient.java | 6 +- .../feign/DistributionParcelListClient.java | 5 + .../IDistributionParcelListService.java | 1 + .../DistributionParcelListServiceImpl.java | 12 ++ .../trunkline/api/CarsLoadApiController.java | 83 +++++++- .../mapper/TrunklineCarsLoadScanMapper.java | 2 +- .../mapper/TrunklineCarsLoadScanMapper.xml | 46 +++-- .../mapper/TrunklineCarsOrderMapper.java | 2 + .../mapper/TrunklineCarsOrderMapper.xml | 48 +++-- .../ITrunklineCarsLoadScanService.java | 2 +- .../service/ITrunklineCarsLoadService.java | 8 +- .../service/ITrunklineCarsOrderService.java | 2 + .../service/impl/OpenOrderServiceImpl.java | 37 +++- .../TrunklineCarsLoadScanServiceImpl.java | 4 +- .../impl/TrunklineCarsLoadServiceImpl.java | 183 ++++++++++++------ .../TrunklineCarsOrderEntityServiceImpl.java | 6 +- 23 files changed, 376 insertions(+), 107 deletions(-) create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadPackagePlanVO.java diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataClientClient.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataClientClient.java index 64e4e22d1..95691b71a 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataClientClient.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataClientClient.java @@ -127,4 +127,6 @@ public interface IBasicdataClientClient { @PostMapping(API_PREFIX+"/saveEntity") Long saveEntity(@RequestBody BasicdataClientEntity clientEntity) ; + @GetMapping(API_PREFIX+"/getFinallyClientCode") + String getFinallyClientCode(); } 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 d6b266310..f9a13b99e 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 @@ -306,5 +306,8 @@ public interface IDistributionParcelListClient { @PostMapping(API_PREFIX + "/deleteListByOrderPackageCodes") R deleteListByOrderPackageCodes(@RequestBody FindParamterDTO findParamterDTO); + + @GetMapping(API_PREFIX + "/findOrderPackageCodeAndStatus") + DistributionParcelListEntity findOrderPackageCodeAndStatus(@RequestParam String orderPackageCode, @RequestParam String orderPackageStatus); } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadPackagePlanVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadPackagePlanVO.java new file mode 100644 index 000000000..504488b00 --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadPackagePlanVO.java @@ -0,0 +1,16 @@ +package com.logpm.trunkline.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class CarsLoadPackagePlanVO implements Serializable { + + private String orderCode; + private String waybillNo; + private String orderPackageCode; + private String thirds; + private String materialName; + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadScanOrderVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadScanOrderVO.java index 98e573dd4..5f936610a 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadScanOrderVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/LoadScanOrderVO.java @@ -12,5 +12,6 @@ public class LoadScanOrderVO implements Serializable { private Integer totalNum; private Integer planNum; private Integer realNum; + private Integer isAbnormal; } 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 ebcb96c9a..07907260f 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 @@ -14,6 +14,12 @@ public class OrderScanDetailVO implements Serializable { private Integer num; private String trayName; private String trayCode; + private String firsts; + private String senconds; + private String thirds; + private String materialCode; + private String materialName; + private Integer isAbnormal; private List zeroDetailList = 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 d640d8839..f3cf76591 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 @@ -21,6 +21,12 @@ public class UnloadPackageVO implements Serializable { private String unloadNodeName; private String orderCode; private String waybillNo; + private String firsts; + private String senconds; + private String thirds; + private String materialCode; + private String materialName; + private Integer isAbnormal; private List scanZeroDetailList = new ArrayList<>(); diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadScanOrderVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadScanOrderVO.java index e16c096e1..a8bb3abe0 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadScanOrderVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/UnloadScanOrderVO.java @@ -13,7 +13,7 @@ public class UnloadScanOrderVO implements Serializable { private String orderCode; private Integer loadingNum; private Integer unloadNum; - private Integer unloadAbnormal; + private Integer isAbnormal; private Integer totalNumber; private List unloadPackageList = new ArrayList<>(); diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataClientClient.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataClientClient.java index ec15703b7..3014927e0 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataClientClient.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/feign/BasicdataClientClient.java @@ -28,7 +28,6 @@ import com.logpm.basicdata.entity.BasicdataClientUserEntity; import com.logpm.basicdata.service.IBasicdataClientService; import com.logpm.basicdata.service.IBasicdataClientUserService; import com.logpm.basicdata.vo.BasicdataClientVO; -import com.logpm.distribution.entity.DistributionParcelListEntity; import lombok.AllArgsConstructor; import org.springblade.common.annotations.ChangeAsync; import org.springblade.core.mp.support.BladePage; @@ -164,4 +163,9 @@ public class BasicdataClientClient implements IBasicdataClientClient { throw new RuntimeException(e); } } + + @Override + public String getFinallyClientCode() { + return basicdataClientService.getFinallyClientCode(); + } } 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 b126f0614..cc47d81bf 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 @@ -654,4 +654,9 @@ public class DistributionParcelListClient implements IDistributionParcelListClie return R.success("删除成功"); } + @Override + public DistributionParcelListEntity findOrderPackageCodeAndStatus(String orderPackageCode, String orderPackageStatus) { + return distributionParcelListService.findOrderPackageCodeAndStatus(orderPackageCode,orderPackageStatus); + } + } 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 d6280132f..9063312ad 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 @@ -313,4 +313,5 @@ public interface IDistributionParcelListService extends BaseService orderPackageCodeList,Long warehouseId); + DistributionParcelListEntity findOrderPackageCodeAndStatus(String orderPackageCode, String orderPackageStatus); } 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 ac96df667..fb23daaa5 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 @@ -1583,4 +1583,16 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl orderPackageCodeList, Long warehouseId) { baseMapper.deleteListByOrderPackageCodes(orderPackageCodeList,warehouseId); } + + @Override + public DistributionParcelListEntity findOrderPackageCodeAndStatus(String orderPackageCode, String orderPackageStatus) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_package_code",orderPackageCode).eq("order_package_status",orderPackageStatus); + List distributionParcelListEntities = baseMapper.selectList(queryWrapper); + if(CollUtil.isNotEmpty(distributionParcelListEntities)){ + return distributionParcelListEntities.get(0); + }else{ + return null; + } + } } 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 8843461e0..2e357b5d9 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 @@ -167,6 +167,41 @@ public class CarsLoadApiController { } } + @ResponseBody + @PostMapping("/findCarsLoadingOrderPlan") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查询装车订单假话", notes = "传入loadCarsDTO") + public R findCarsLoadingOrderPlan(@RequestBody LoadCarsDTO loadCarsDTO) { + String method = "############findCarsLoadingOrderDetail: "; + 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(405,"仓库信息为空"); + } + loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); + + if(Objects.isNull(loadId)){ + log.warn(method+"配载id为空 loadId={}",loadId); + return R.fail(405,"配载id为空"); + } + + return carsLoadService.findCarsLoadingOrderPlan(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("/findCarsLoadingOrderDetail") @ApiOperationSupport(order = 1) @@ -176,7 +211,7 @@ public class CarsLoadApiController { log.info(method + "请求参数{}", loadCarsDTO); Long loadId = loadCarsDTO.getLoadId(); String orderCode = loadCarsDTO.getOrderCode(); - + String waybillNo = loadCarsDTO.getWaybillNo(); try{ //当前登录人选择的仓库 @@ -196,7 +231,7 @@ public class CarsLoadApiController { return R.fail(405,"订单号为空"); } - return carsLoadService.findCarsLoadingOrderDetail(loadId,orderCode,myCurrentWarehouse.getId()); + return carsLoadService.findCarsLoadingOrderDetail(loadId,orderCode,myCurrentWarehouse.getId(),waybillNo); }catch (CustomerException e){ log.error(e.message,e); return R.fail(e.code,e.message); @@ -573,6 +608,50 @@ public class CarsLoadApiController { } + @ResponseBody + @PostMapping("/unloadPackageNoXz") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "包件卸车", notes = "传入loadCarsDTO") + public R unloadPackageNoXz(@RequestBody LoadCarsDTO loadCarsDTO) { + String method = "############unloadPackageNoXz: "; + log.info(method + "请求参数{}", loadCarsDTO); + Long loadId = loadCarsDTO.getLoadId(); + String orderPackageCode = loadCarsDTO.getOrderPackageCode(); + Integer incomingType = loadCarsDTO.getIncomingType(); + try{ + + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(405,"仓库信息为空"); + } + loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); + if(Objects.isNull(loadId)){ + log.warn(method+"配载计划id为空 loadId={}",loadId); + return R.fail(405,"配载计划id为空"); + } + if(StringUtil.isBlank(orderPackageCode)){ + log.warn(method+"包件码为空 orderPackageCode={}",orderPackageCode); + return R.fail(405,"包件码为空"); + } + if(Objects.isNull(incomingType)){ + log.warn(method+"入库类型为空 orderPackageCode={}",orderPackageCode); + return R.fail(405,"入库类型为空"); + } + + return carsLoadService.unloadPackageNoXz(loadId,orderPackageCode,myCurrentWarehouse.getId(),1,"补录卸车",incomingType,null,null); + }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("/unloadZero") @ApiOperationSupport(order = 1) 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 9b5673a24..4ca2815ba 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 @@ -42,7 +42,7 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper loadingDetail(IPage page, @Param("param") LoadCarsDTO loadCarsDTO); - List findCarsLoadingOrderDetail(@Param("loadId") Long loadId, @Param("orderCode") String orderCode, @Param("warehouseId") Long warehouseId); + List findCarsLoadingOrderDetail(@Param("loadId") Long loadId, @Param("orderCode") String orderCode, @Param("warehouseId") Long warehouseId, @Param("waybillNo") String waybillNo); boolean deleteEntityByCarsLoadScanId(@Param("carsLoadScanId") Long carsLoadScanId); 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 53c061573..eda62cc95 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 @@ -180,7 +180,13 @@ scan_code scanCode, num num, tray_name trayName, - tray_code trayCode + tray_code trayCode, + firsts firsts, + senconds senconds, + thirds thirds, + material_code materialCode, + material_name materialName, + IFNULL(loading_abnormal,0)+IFNULL(unload_abnormal,0) isAbnormal from logpm_trunkline_cars_load_scan where load_id = #{loadId} and order_code = #{orderCode} @@ -220,17 +226,23 @@ @@ -392,4 +400,22 @@ where ltco.load_id = #{loadId} + + + 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 59f0a4a03..f001e1865 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 @@ -37,7 +37,7 @@ public interface ITrunklineCarsLoadScanService extends BaseService loadingDetail(IPage page, LoadCarsDTO loadCarsDTO); - List findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId); + List findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId,String waybillNo); boolean deleteEntityByCarsLoadScanId(Long carsLoadScanId); 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 8e44ba85d..027d3308a 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 @@ -115,7 +115,7 @@ public interface ITrunklineCarsLoadService extends BaseService findListByLoadId(Long loadId); + List findLoadingOrderPlan(Long loadId, Long warehouseId); + } 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 054184a35..e1e891f61 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 @@ -556,6 +556,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { if (Objects.isNull(consigneeId)) { //如果收货单位没有id值,则把收货单位信息自动添加到client中 consigneeId = saveNewClient(openOrderDTO.getConsignee(), openOrderDTO.getConsigneeName(), openOrderDTO.getConsigneeMobile(), openOrderDTO.getConsigneeAddress(), "2"); + } waybillEntity.setConsigneeId(consigneeId); waybillEntity.setConsignee(openOrderDTO.getConsignee()); @@ -563,6 +564,14 @@ public class OpenOrderServiceImpl implements IOpenOrderService { waybillEntity.setConsigneeMobile(openOrderDTO.getConsigneeMobile()); waybillEntity.setConsigneeAddress(openOrderDTO.getConsigneeAddress()); + BasicdataClientEntity basicdataClient = basicdataClientClient.findEntityById(consigneeId); + if(!Objects.isNull(basicdataClient)){ + waybillEntity.setServiceType(basicdataClient.getTypeService()); + }else{ + waybillEntity.setServiceType(1); + } + + waybillEntity.setDestination(openOrderDTO.getDestination()); waybillEntity.setDestinationCode(openOrderDTO.getDestinationCode()); waybillEntity.setDeparture(openOrderDTO.getDeparture()); @@ -894,6 +903,14 @@ public class OpenOrderServiceImpl implements IOpenOrderService { waybillEntity.setConsigneeMobile(openOrderDTO.getConsigneeMobile()); waybillEntity.setConsigneeAddress(openOrderDTO.getConsigneeAddress()); + BasicdataClientEntity basicdataClient = basicdataClientClient.findEntityById(consigneeId); + if(!Objects.isNull(basicdataClient)){ + waybillEntity.setServiceType(basicdataClient.getTypeService()); + }else{ + waybillEntity.setServiceType(1); + } + + waybillEntity.setDestination(openOrderDTO.getDestination()); waybillEntity.setDestinationCode(openOrderDTO.getDestinationCode()); waybillEntity.setGoodsName(openOrderDTO.getGoodsName()); @@ -2673,15 +2690,15 @@ public class OpenOrderServiceImpl implements IOpenOrderService { } - //验证运单是否有配送任务 - //查询运单下所有订单号 - List orderCodes = distributionParcelListClient.findOrderCodeByWaybillId(waybillId); - //判断运单下所有订单是否在预约关联订单表上是否有数据 - List reservationIds = reservationStockarticleClient.findReservationIdsByOrderCodes(orderCodes); - if(CollUtil.isNotEmpty(reservationIds)){ - 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, "已创建配送任务无法改单"); +// } // 得到改单之前的收货单位 @@ -5569,7 +5586,9 @@ public class OpenOrderServiceImpl implements IOpenOrderService { BasicdataClientEntity basicdataClientEntity = basicdataClientClient.findByName(unit); if(Objects.isNull(basicdataClientEntity)){ basicdataClientEntity = new BasicdataClientEntity(); + String finallyClientCode = basicdataClientClient.getFinallyClientCode(); basicdataClientEntity.setClientName(unit); + basicdataClientEntity.setClientCode(finallyClientCode); basicdataClientEntity.setTypeService(2); basicdataClientEntity.setCargoControl(false); basicdataClientEntity.setClientType(type);//1 工厂 2 商场 3装饰 4个人 5门店 6发货单位 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 7414f48d0..15f12e23c 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 @@ -81,8 +81,8 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId) { - return baseMapper.findCarsLoadingOrderDetail(loadId,orderCode,warehouseId); + public List findCarsLoadingOrderDetail(Long loadId, String orderCode, Long warehouseId,String waybillNo) { + return baseMapper.findCarsLoadingOrderDetail(loadId,orderCode,warehouseId,waybillNo); } @Override 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 71a2bb734..448849d43 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 @@ -264,6 +264,13 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl list = trunklineCarsOrderService.findLoadingOrderPlan(loadId, warehouseId); + + return R.data(list); + } + @Transactional(rollbackFor = Exception.class) @Override @@ -4488,9 +4503,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderScanDetailList = trunklineCarsLoadScanService.findCarsLoadingOrderDetail(loadId, orderCode, warehouseId); + List orderScanDetailList = trunklineCarsLoadScanService.findCarsLoadingOrderDetail(loadId, orderCode, warehouseId,waybillNo); if(CollUtil.isNotEmpty(orderScanDetailList)){ //把orderScanDetailList中所有元素的loadScanId放入一个List List loadScanIdList = orderScanDetailList.stream().map(OrderScanDetailVO::getLoadScanId).collect(Collectors.toList()); @@ -8293,7 +8308,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("load_id", loadId) .eq("warehouse_id", warehouseId) - .eq("loading_abnormal", 1); + .eq("loading_abnormal", 1) + .eq("is_data", 0) + .orderByDesc("update_time"); List exceptionList = trunklineCarsLoadScanService.list(queryWrapper); TrunklineCarsLoadVO trunklineCarsLoadVO = new TrunklineCarsLoadVO(); @@ -8861,6 +8878,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl neloadScanQueryWrapper = new QueryWrapper<>(); neloadScanQueryWrapper.eq("load_id", loadId) .eq("scan_code", orderPackageCode) @@ -8869,6 +8894,11 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderPackageCodeList = new ArrayList<>(); orderPackageCodeList.add(orderPackageCode); @@ -9557,26 +9587,28 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl loadScanQueryWrapper = new QueryWrapper<>(); loadScanQueryWrapper.eq("load_id", loadId) - .eq("scan_code", orderPackageCode); + .eq("scan_code", orderPackageCode) + .eq("scan_status","1"); TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getOne(loadScanQueryWrapper); //判断是否有装车扫描记录 if (Objects.isNull(carsLoadScanEntity)) { @@ -9646,10 +9679,11 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl brands = this.baseMapper.fingPackageCodeByLoadId(loadId, warehouseId); + sendFactoryData(brands, node, warehouseId, 2); + } } catch (Exception e) { log.error("入库推送失败:{}", e); @@ -10222,15 +10277,14 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl orderPackageCodeList = new ArrayList<>(); @@ -10760,27 +10814,28 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl unloadScanOrderList = trunklineCarsLoadScanService.findPackageWithOrderList(loadId, warehouseId); + + List unloadList = trunklineCarsLoadScanService.findUnloadPackageListByLoadIdAndFinalNodeId(loadId,warehouseId); + if(CollUtil.isNotEmpty(unloadScanOrderList)){ //把unloadScanOrderList中所有元素转化成以orderCode为key的map // Map> unloadScanOrderMap = unloadScanOrderList.stream().collect(Collectors.toMap(UnloadScanOrderVO::getOrderCode, Function.identity())); - Set orderCodeSet = unloadScanOrderList.stream().map(UnloadScanOrderVO::getOrderCode).collect(Collectors.toSet()); +// Set orderCodeSet = unloadScanOrderList.stream().map(UnloadScanOrderVO::getOrderCode).collect(Collectors.toSet()); // Map> unloadScanOrderMap =unloadScanOrderList.stream().map(UnloadScanOrderVO::getOrderCode).collect(Collectors.toList()) // Set orderCodeSet = unloadScanOrderMap.keySet(); - List orderCodeNumList = trunklineAdvanceDetailService.findTotalNumByOrderCodes(orderCodeSet); +// List orderCodeNumList = trunklineAdvanceDetailService.findTotalNumByOrderCodes(orderCodeSet); //把orderCodeNumList中所有元素转化成以orderCode为key的map - Map orderCodeNumMap = orderCodeNumList.stream().collect(Collectors.toMap(OrderCodeNumVO::getOrderCode, Function.identity())); - - List unloadList = trunklineCarsLoadScanService.findUnloadPackageListByLoadIdAndFinalNodeId(loadId,warehouseId); +// Map orderCodeNumMap = orderCodeNumList.stream().collect(Collectors.toMap(OrderCodeNumVO::getOrderCode, Function.identity())); for (UnloadScanOrderVO unloadScanOrderVO : unloadScanOrderList) { String waybillNo = StringUtil.isBlank(unloadScanOrderVO.getWaybillNo())?"null":unloadScanOrderVO.getWaybillNo(); String orderCode = StringUtil.isBlank(unloadScanOrderVO.getOrderCode())?"null":unloadScanOrderVO.getOrderCode(); - OrderCodeNumVO orderCodeNumVO = orderCodeNumMap.get(orderCode); - if(!Objects.isNull(orderCodeNumVO)){ - unloadScanOrderVO.setTotalNumber(orderCodeNumVO.getTotalNum()); - }else{ - unloadScanOrderVO.setTotalNumber(0); - } +// OrderCodeNumVO orderCodeNumVO = orderCodeNumMap.get(orderCode); +// if(!Objects.isNull(orderCodeNumVO)){ +// unloadScanOrderVO.setTotalNumber(orderCodeNumVO.getTotalNum()); +// }else{ +// unloadScanOrderVO.setTotalNumber(0); +// } List unloadPackageList = new ArrayList<>(); unloadList.forEach(unloadPackageVO -> { @@ -10833,7 +10888,9 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("load_id", loadId) .eq("unload_node_id", warehouseId) - .eq("unload_abnormal", 1); + .eq("unload_abnormal", 1) + .eq("is_data", 0) + .orderByDesc("update_time"); List exceptionList = trunklineCarsLoadScanService.list(queryWrapper); TrunklineCarsLoadVO trunklineCarsLoadVO = new TrunklineCarsLoadVO(); 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 cbf3cb2bb..fed869e00 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsOrderEntityServiceImpl.java @@ -12,7 +12,6 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.stereotype.Service; -import java.util.Collections; import java.util.List; @Slf4j @@ -169,4 +168,9 @@ public class TrunklineCarsOrderEntityServiceImpl extends BaseServiceImpl findLoadingOrderPlan(Long loadId, Long warehouseId) { + return baseMapper.findLoadingOrderPlan(loadId,warehouseId); + } + } From 3e7af65f43b869ccc52f2b84fed8c3fcae1c775a Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Tue, 29 Oct 2024 00:08:26 +0800 Subject: [PATCH 5/8] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E6=88=91?= =?UTF-8?q?=E4=B9=90=E5=9B=9E=E4=BC=A0=E8=8A=82=E7=82=B9=E6=80=BB=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 按照最新的回传逻辑调整我乐的节点回传 --- .../olo/entity/FactoryNodePushEntity.java | 117 +++++++++++++ .../olo/enums/FactoryNodeEnums.java | 51 ++++-- .../olo/enums/NodeMappingEnums.java | 17 +- .../factorydata/olo/enums/NodeNeedEnums.java | 10 +- .../factorydata/olo/enums/SiteLevelEnums.java | 25 +++ .../olo/mapper/FactoryNodePushMapper.java | 16 ++ .../olo/mapper/FactoryNodePushMapper.xml | 5 + .../olo/mq/FactoryOrderListener.java | 30 ++-- .../olo/mq/NodeDataPushListener.java | 154 ++++++++++++++---- .../olo/service/FactoryNodePushService.java | 14 ++ .../service/impl/DeliveryNoteServiceImpl.java | 99 ++++++----- .../impl/FactoryNodePushServiceImpl.java | 22 +++ 12 files changed, 437 insertions(+), 123 deletions(-) create mode 100644 blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/entity/FactoryNodePushEntity.java create mode 100644 blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/SiteLevelEnums.java create mode 100644 blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodePushMapper.java create mode 100644 blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodePushMapper.xml create mode 100644 blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodePushService.java create mode 100644 blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodePushServiceImpl.java diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/entity/FactoryNodePushEntity.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/entity/FactoryNodePushEntity.java new file mode 100644 index 000000000..a71463c4a --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/entity/FactoryNodePushEntity.java @@ -0,0 +1,117 @@ +package com.logpm.factorydata.olo.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.mp.base.BaseEntity; + +/** + * 节点数据推送成功数据 + * + * @Author zqb + * @Date 2024/3/26 + **/ +@Builder +@Data +@TableName("olo_factory_node_push") +@ApiModel(value = "节点数据推送成功数据", description = "节点数据推送成功数据") +@EqualsAndHashCode(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +public class FactoryNodePushEntity extends BaseEntity { + + /** + * 预留1 + */ + @ApiModelProperty(value = "预留1") + private String reserve1; + /** + * 预留2 + */ + @ApiModelProperty(value = "预留2") + private String reserve2; + /** + * 预留3 + */ + @ApiModelProperty(value = "预留3") + private String reserve3; + /** + * 预留4 + */ + @ApiModelProperty(value = "预留4") + private String reserve4; + /** + * 预留5 + */ + @ApiModelProperty(value = "预留5") + private String reserve5; + + /** + * 作业仓库 + */ + @ApiModelProperty(value = "作业仓库") + private String warehouse; + /** + * 订单号 + */ + @ApiModelProperty(value = "订单号") + private String orderCode; + /** + * 运单号 + */ + @ApiModelProperty(value = "运单号") + private String waybillCode; + /** + * 发货分单号 + */ + @ApiModelProperty(value = "发货分单号") + private String shipmentSpitCode; + /** + * 发货单号 + */ + @ApiModelProperty(value = "发货单号") + private String shipmentCode; + /** + * 包条码 + */ + @ApiModelProperty(value = "包条码") + private String packageCode; + /** + * 类型 + */ + @ApiModelProperty(value = "类型(包件到达,包件到货,包件发运,包件配送, 包件签收)") + private String type; + /** + * 类型码 + */ + @ApiModelProperty(value = "类型码(包件到达 1,包件到货 2,包件发运 3,包件配送 4, 包件签收 5)") + private Integer typeCode; + /** + * 发送状态 + */ + @ApiModelProperty(value = "发送状态(0:成功,-1:失败,1:取消)") + private String sendStatus; + /** + * url + */ + @ApiModelProperty(value = "url") + private String sendUrl; + /** + * 内容 + */ + @ApiModelProperty(value = "内容") + private String content; + /** + * 返回值 + */ + @ApiModelProperty(value = "返回值") + private String resultContent; + + + +} diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/FactoryNodeEnums.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/FactoryNodeEnums.java index e77ba3ca2..72d7b0a77 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/FactoryNodeEnums.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/FactoryNodeEnums.java @@ -1,7 +1,8 @@ package com.logpm.factorydata.olo.enums; import lombok.Getter; -import org.springblade.common.model.IDict; + +import java.io.Serializable; /** * 工厂节点枚举 @@ -10,22 +11,42 @@ import org.springblade.common.model.IDict; * @create 2024-03-20 15:19 */ @Getter -public enum FactoryNodeEnums implements IDict { - - /** 已入库 */ - ALREADY_IN_STOCK(101020, "已入库"), - /** 已出库 */ - SHIPPED(103020, "已出库"), - /** 已发车 */ - DISPATCHED(103040, "已发车"), - /** 配送 */ - DISTRIBUTION(302010, "配送"), - /** 已签收 */ - SIGNED_FOR(303010, "已签收"), +public enum FactoryNodeEnums implements Serializable { + + ARRIVAL(1, "包件到达分拨中心", "已到达", 0), + DELIVERY(2, "包件到货", "已入库", 0), + SHIPMENT(3, "包件发运", "已发运", 1), + DISTRIBUTION(4, "包件配送", "配送中", 1), + SIGN_FOR(5, "包件签收", "已签收", 1), + ; + private Integer code; + private String value; + private String status; + /** + * 0:收货 1:发货 + */ + private Integer receiveOrSend; + + FactoryNodeEnums(Integer code, String value, String status, Integer receiveOrSend) { + this.code = code; + this.value = value; + this.status = status; + this.receiveOrSend = receiveOrSend; + } + + public Integer getSiteLecel(Boolean isArrival){ + if(isArrival){ + return SiteLevelEnums.DISTRIBUTION_CENTER.getCode(); + } + if(this.getCode() == 2 || this.getCode() == 3){ + return SiteLevelEnums.OUTLET.getCode(); + } + if(this.getCode() == 5){ + return SiteLevelEnums.SIGN_FOR.getCode(); - FactoryNodeEnums(Integer code, String text) { - init(code, text); + } + return SiteLevelEnums.OTHER.getCode(); } } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeMappingEnums.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeMappingEnums.java index ae1c519f9..f672c333f 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeMappingEnums.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeMappingEnums.java @@ -13,20 +13,17 @@ import org.springblade.common.constant.WorkNodeEnums; @Getter public enum NodeMappingEnums { - INITIAL_WAREHOUSE_ENTRY(FactoryNodeEnums.ALREADY_IN_STOCK, WorkNodeEnums.INITIAL_WAREHOUSE_ENTRY, 1), - UNLOAD_INCOMING_WAREHOUSE(FactoryNodeEnums.ALREADY_IN_STOCK, WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE, 1), + ARRIVAL(FactoryNodeEnums.DELIVERY, WorkNodeEnums.UNLOAD_INCOMING_WAREHOUSE, 1), + DELIVERY(FactoryNodeEnums.ARRIVAL, WorkNodeEnums.TRANSFER_WAREHOUSE_UNLOADING, 1), + END_WAREHOUSE_UNLOADING(FactoryNodeEnums.ARRIVAL, WorkNodeEnums.END_WAREHOUSE_UNLOADING, 1), - INITIAL_WAREHOUSE_LOADING(FactoryNodeEnums.SHIPPED, WorkNodeEnums.INITIAL_WAREHOUSE_LOADING, 1), - - INITIAL_WAREHOUSE_DEPART(FactoryNodeEnums.DISPATCHED, WorkNodeEnums.INITIAL_WAREHOUSE_DEPART, 1), - TRANSFER_WAREHOUSE_DEPART(FactoryNodeEnums.DISPATCHED, WorkNodeEnums.TRANSFER_WAREHOUSE_DEPART, 1), - TRIPARTITE_TRANSFER_DEPART(FactoryNodeEnums.DISPATCHED, WorkNodeEnums.TRIPARTITE_TRANSFER_DEPART, 1), + TRANSFER_WAREHOUSE_DEPART(FactoryNodeEnums.SHIPMENT, WorkNodeEnums.TRANSFER_WAREHOUSE_DEPART, 1), DISTRIBUTION_LOADING(FactoryNodeEnums.DISTRIBUTION, WorkNodeEnums.DISTRIBUTION_LOADING, 1), - SIGN_DIRECT_SHIPPER(FactoryNodeEnums.SIGNED_FOR, WorkNodeEnums.SIGN_DIRECT_SHIPPER, 1), - SIGN_TRIPARTITE_TRANSFER_DEPART(FactoryNodeEnums.SIGNED_FOR, WorkNodeEnums.SIGN_TRIPARTITE_TRANSFER_DEPART, 1), - CLERK_REVIEW(FactoryNodeEnums.SIGNED_FOR, WorkNodeEnums.CLERK_REVIEW, 1), + SIGN_DIRECT_SHIPPER(FactoryNodeEnums.SIGN_FOR, WorkNodeEnums.SIGN_DIRECT_SHIPPER, 1), + SIGN_TRIPARTITE_TRANSFER_DEPART(FactoryNodeEnums.SIGN_FOR, WorkNodeEnums.SIGN_TRIPARTITE_TRANSFER_DEPART, 1), + CLERK_REVIEW(FactoryNodeEnums.SIGN_FOR, WorkNodeEnums.CLERK_REVIEW, 1), ; /** diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeNeedEnums.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeNeedEnums.java index ad0f0ae85..d75b8bbe0 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeNeedEnums.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/NodeNeedEnums.java @@ -13,14 +13,16 @@ import java.io.Serializable; @Getter public enum NodeNeedEnums implements Serializable { - INITIAL_WAREHOUSE_ENTRY(101020, "始发仓入库"), + // INITIAL_WAREHOUSE_ENTRY(101020, "始发仓入库"), UNLOAD_INCOMING_WAREHOUSE(105010,"卸车入库"), + TRANSFER_WAREHOUSE_UNLOADING(105020, "卸车确认"), + END_WAREHOUSE_UNLOADING(105040, "末端仓卸车确认"), - INITIAL_WAREHOUSE_LOADING(103020, "装车"), + // INITIAL_WAREHOUSE_LOADING(103020, "装车"), - INITIAL_WAREHOUSE_DEPART(103040, "始发仓发车"), + // INITIAL_WAREHOUSE_DEPART(103040, "始发仓发车"), TRANSFER_WAREHOUSE_DEPART(103080, "网点发车"), - TRIPARTITE_TRANSFER_DEPART(104010, "三方中转发车"), + // TRIPARTITE_TRANSFER_DEPART(104010, "三方中转发车"), /** * 配送装车 */ diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/SiteLevelEnums.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/SiteLevelEnums.java new file mode 100644 index 000000000..6baf4a970 --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/enums/SiteLevelEnums.java @@ -0,0 +1,25 @@ +package com.logpm.factorydata.olo.enums; + +import lombok.Getter; +import org.springblade.common.model.IDict; + +/** + * 网点级别 + * + * @author zhaoqiaobo + * @create 2024-03-20 15:19 + */ +@Getter +public enum SiteLevelEnums implements IDict { + + DISTRIBUTION_CENTER(1, "分拨中心"), + OUTLET(2, "网点"), + OTHER(3, "其他"), + SIGN_FOR(4, "客户签收"), + ; + + SiteLevelEnums(Integer code, String text) { + init(code, text); + } + +} diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodePushMapper.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodePushMapper.java new file mode 100644 index 000000000..fdceb54fa --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodePushMapper.java @@ -0,0 +1,16 @@ +package com.logpm.factorydata.olo.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.logpm.factorydata.olo.entity.FactoryNodePushEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 工厂订单日志 mapper + * + * @author zqb + * @since 2024-03-26 + */ +@Mapper +public interface FactoryNodePushMapper extends BaseMapper { + +} diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodePushMapper.xml b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodePushMapper.xml new file mode 100644 index 000000000..53f952f5c --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodePushMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/FactoryOrderListener.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/FactoryOrderListener.java index 6563cb5d5..6261c84cd 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/FactoryOrderListener.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/FactoryOrderListener.java @@ -1,39 +1,24 @@ package com.logpm.factorydata.olo.mq; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.convert.Convert; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.CharsetUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.URLUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONConfig; -import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.logpm.factorydata.base.feign.IFactoryDataBaseClient; -import com.logpm.factorydata.base.vo.FactoryWarehouseBindVO; -import com.logpm.factorydata.enums.BrandEnums; import com.logpm.factorydata.enums.SaxStatusEnums; -import com.logpm.factorydata.feign.IFactoryDataClient; import com.logpm.factorydata.olo.entity.DeliveryNoteEntity; import com.logpm.factorydata.olo.entity.FactoryOrderLogEntity; import com.logpm.factorydata.olo.service.DeliveryNoteService; import com.logpm.factorydata.olo.service.FactoryOrderLogService; import com.logpm.factorydata.olo.vo.DeliveryNoteVO; -import com.logpm.factorydata.vo.SendMsg; -import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; -import com.logpm.trunkline.entity.TrunklineAdvanceEntity; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springblade.common.annotations.LogpmAsync; -import org.springblade.common.constant.HttpConstants; import org.springblade.common.constant.factorydata.FactoryDataConstants; -import org.springblade.core.redis.cache.BladeRedis; -import org.springblade.core.tool.api.R; import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Queue; @@ -42,8 +27,6 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.math.BigDecimal; -import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -109,6 +92,7 @@ public class FactoryOrderListener { Map entityMap = new HashMap<>(); if (CollUtil.isNotEmpty(crmSos) && CollUtil.isNotEmpty(sns)) { List existingEntities = deliveryNoteService.list(Wrappers.lambdaQuery() + .select(DeliveryNoteEntity::getId,DeliveryNoteEntity::getCrmSo,DeliveryNoteEntity::getSn) .in(DeliveryNoteEntity::getCrmSo, crmSos) .in(DeliveryNoteEntity::getSn, sns)); if (CollUtil.isNotEmpty(existingEntities)) { @@ -134,10 +118,20 @@ public class FactoryOrderListener { entity.setEndingCustomerTel(vo.getENDING_CUSTOMER_TEL()); entity.setCrmSo(vo.getCRM_SO()); entity.setSpace(vo.getSPACE()); - entity.setSn(vo.getSN()); + // 原始单号- 老系统处理完之后推的暂存单的包条码 + // if(sn.startsWith("OLO")){ + // String[] split = sn.split("-"); + // if(ArrayUtils.isNotEmpty(split)){ + // entity.setReserve1(split[0].substring(3)); + // } + // } else { + // entity.setReserve1(sn); + // } + entity.setSn(sn); entity.setMaterialCategory(vo.getMATERIAL_CATEGORY()); entity.setSnVolume(vo.getSN_VOLUME()); entity.setSnWeight(vo.getSN_WEIGHT()); + // entity.setQty("1"); entity.setQty(vo.getQTY()); entity.setMaterialDesc(vo.getMATERIAL_DESC()); entity.setSumPrice(vo.getSUM_PRICE()); diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java index d316174b4..00f2ee197 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java @@ -1,7 +1,6 @@ package com.logpm.factorydata.olo.mq; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.EnumUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -9,11 +8,15 @@ import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; -import com.logpm.factorydata.feign.IFactoryDataClient; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.logpm.factorydata.olo.entity.DeliveryNoteEntity; +import com.logpm.factorydata.olo.entity.FactoryNodePushEntity; import com.logpm.factorydata.olo.enums.FactoryNodeEnums; import com.logpm.factorydata.olo.enums.NodeMappingEnums; import com.logpm.factorydata.olo.enums.NodeNeedEnums; import com.logpm.factorydata.olo.pros.OldProperties; +import com.logpm.factorydata.olo.service.DeliveryNoteService; +import com.logpm.factorydata.olo.service.FactoryNodePushService; import com.logpm.factorydata.vo.PushData; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -27,8 +30,11 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; /** @@ -42,8 +48,9 @@ import java.util.stream.Collectors; @AllArgsConstructor public class NodeDataPushListener { - private final IFactoryDataClient factoryDataClient; private final OldProperties oldProperties; + private final FactoryNodePushService factoryNodePushService; + private final DeliveryNoteService deliveryNoteService; @RabbitListener(bindings = @QueueBinding( value = @Queue(name = FactoryDataConstants.Mq.Queues.OLO_NODE_DATA_PUSH, durable = "true"), @@ -59,40 +66,120 @@ public class NodeDataPushListener { JSONObject entries = JSONUtil.parseObj(msg); // 节点 String node = entries.getStr("node"); - WorkNodeEnums workNodeEnums = EnumUtil.fromString(WorkNodeEnums.class, node); - FactoryNodeEnums factoryNode = NodeMappingEnums.getFactoryByNodeAndStatus(workNodeEnums); // 2 获取业务数据 List content = entries.getBeanList("content", PushData.class); + WorkNodeEnums workNodeEnums = EnumUtil.fromString(WorkNodeEnums.class, node); // 按订单号和运单号进行分组 if (CollUtil.isNotEmpty(content)) { - Map> sendMap = content.stream() - .collect(Collectors.groupingBy(data -> data.getOrderCode() + data.getWaybillNumber())); - JSONArray jsons = new JSONArray(sendMap.size()); - for (Map.Entry> entry : sendMap.entrySet()) { - List pushDatas = entry.getValue(); - PushData pushData = pushDatas.get(0); - JSONObject js = new JSONObject(); - js.set("status", factoryNode.getText()); - js.set("opTime", DateUtil.now()); - js.set("content", factoryNode.getText()); - js.set("orderNo", pushData.getOrderCode()); - js.set("deliveryNo", pushData.getWaybillNumber()); - js.set("siteLevel", 3); - js.set("nodeName", pushData.getWarehouseName()); - js.set("receiveOrSend", 1); - js.set("shipmentSplitNo", ""); - js.set("receivable", 0); - js.set("receipts", 0); - js.set("shipmentNo", ""); - JSONArray snArray = new JSONArray(pushDatas.size()); - for (PushData data : pushDatas) { - JSONObject jsonObject = new JSONObject(); - jsonObject.set("sn", data.getPackageCode()); - jsonObject.set("qty", 1); - snArray.add(jsonObject); + FactoryNodeEnums factoryNode = NodeMappingEnums.getFactoryByNodeAndStatus(workNodeEnums, 1); + // 1 先处理 批次件 OLO开头的包件 OLO2312064418-20231226010129-1-001 原始包件 2312064418 回传按原始包件回传 + content.stream().map(i -> { + String packageCode = i.getPackageCode(); + if (StrUtil.startWith(packageCode, "OLO")) { + if (StrUtil.isNotEmpty(packageCode)) { + String[] split = packageCode.split("-"); + i.setPackageCode(split[0].substring(3)); + } + } + return i; + }); + // 2 先查出 包件+订单 的所有发运分单号和发运单号 + Set packageSet = content.stream().map(PushData::getPackageCode).collect(Collectors.toSet()); + Set orderSet = content.stream().map(PushData::getOrderCode).collect(Collectors.toSet()); + List factoryList = deliveryNoteService.list(Wrappers.lambdaQuery() + .select(DeliveryNoteEntity::getSn, DeliveryNoteEntity::getCrmSo, DeliveryNoteEntity::getShipmentSplitNo, DeliveryNoteEntity::getShipmentNo, DeliveryNoteEntity::getReserve1) + .in(DeliveryNoteEntity::getSn, packageSet) + .in(DeliveryNoteEntity::getCrmSo, orderSet) + ); + // 查询出已推的到达 + JSONArray jsons = new JSONArray(); + List pushEntities = new ArrayList<>(); + if (CollUtil.isNotEmpty(factoryList)) { + // 按 包件+订单 分组 + Map> collect = factoryList.stream().collect(Collectors.groupingBy(data -> data.getSn() + data.getCrmSo())); + // 按 订单+运单+发货分单号 分组 作为发送的 key + Map> collect1 = content.stream() + .filter(data -> StrUtil.isNotEmpty(data.getWaybillNumber())) + .collect(Collectors.groupingBy(data -> data.getOrderCode() + data.getWaybillNumber() + collect.get(data.getPackageCode() + data.getOrderCode()).get(0).getShipmentSplitNo())); + for (Map.Entry> entry : collect1.entrySet()) { + List value = entry.getValue(); + PushData sendData = value.get(0); + String orderCode = sendData.getOrderCode(); + String waybillNumber = sendData.getWaybillNumber(); + String shipmentSplitNo = collect.get(sendData.getPackageCode() + sendData.getOrderCode()).get(0).getShipmentSplitNo(); + List list = factoryNodePushService.list(Wrappers.lambdaQuery() + .eq(FactoryNodePushEntity::getOrderCode, orderCode) + .eq(FactoryNodePushEntity::getWaybillCode, waybillNumber) + .eq(FactoryNodePushEntity::getShipmentSpitCode, shipmentSplitNo) + .eq(FactoryNodePushEntity::getTypeCode, FactoryNodeEnums.ARRIVAL.getCode()) + ); + FactoryNodeEnums needSendNode = factoryNode; + // 是否是分拨中心 + Boolean isArrival = Boolean.FALSE; + switch (workNodeEnums) { + // 卸车扫描的时候 如果没有推到达,则不处理 推了到达则推入库 + case UNLOAD_INCOMING_WAREHOUSE: + if (CollUtil.isEmpty(list)) { + continue; + } + break; + // 中转 卸车确认 时,如果推了达到,则不处理 + case TRANSFER_WAREHOUSE_UNLOADING: + if (CollUtil.isNotEmpty(list)) { + continue; + } + isArrival = Boolean.TRUE; + break; + // 末端仓卸车确认 时,如果推了到达,则不处理 + case END_WAREHOUSE_UNLOADING: + if (CollUtil.isNotEmpty(list)) { + continue; + } + isArrival = Boolean.TRUE; + break; + } + if(isArrival){ + FactoryNodePushEntity entity = new FactoryNodePushEntity(); + entity.setOrderCode(orderCode); + entity.setWaybillCode(waybillNumber); + entity.setShipmentSpitCode(shipmentSplitNo); + entity.setType(needSendNode.getValue()); + entity.setTypeCode(needSendNode.getCode()); + pushEntities.add(entity); + } + needSendNode = NodeMappingEnums.getFactoryByNodeAndStatus(workNodeEnums); + JSONObject js = new JSONObject(); + js.set("status", needSendNode.getStatus()); + js.set("opTime", entries.getStr("operatorTime")); + js.set("content", needSendNode.getValue()); + js.set("orderNo", orderCode); + js.set("deliveryNo", waybillNumber); + js.set("siteLevel", needSendNode.getSiteLecel(isArrival)); + js.set("nodeName", sendData.getWarehouseName()); + js.set("receiveOrSend", needSendNode.getReceiveOrSend()); + js.set("shipmentSplitNo", shipmentSplitNo); + js.set("receivable", 0); + js.set("receipts", 0); + js.set("shipmentNo", collect.get(sendData.getPackageCode() + sendData.getOrderCode()).get(0).getShipmentNo()); + JSONArray snArray = new JSONArray(); + Map snMap = new HashMap<>(); + // value 按包件分组 包含则数量+1 + for (PushData data : value) { + if (snMap.containsKey(data.getPackageCode())) { + snMap.put(data.getPackageCode(), snMap.get(data.getPackageCode()) + 1); + } else { + snMap.put(data.getPackageCode(), 1); + } + } + for (Map.Entry stringIntegerEntry : snMap.entrySet()) { + JSONObject jsonObject = new JSONObject(); + jsonObject.set("sn", stringIntegerEntry.getKey()); + jsonObject.set("qty", stringIntegerEntry.getValue()); + snArray.add(jsonObject); + } + js.set("snList", snArray); + jsons.add(js); } - js.set("snList", snArray); - jsons.add(js); } if (oldProperties.getEnable()) { try { @@ -100,6 +187,9 @@ public class NodeDataPushListener { log.info("推送节点数据:{}", JSONUtil.toJsonStr(jsons)); String post = HttpUtil.post(oldProperties.getPushNodeUrl(), JSONUtil.toJsonStr(jsons)); log.info("推送结果:{}", post); + if (CollUtil.isNotEmpty(pushEntities)) { + factoryNodePushService.saveBatch(pushEntities); + } } } catch (Exception e) { e.printStackTrace(); diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodePushService.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodePushService.java new file mode 100644 index 000000000..1e422c229 --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodePushService.java @@ -0,0 +1,14 @@ +package com.logpm.factorydata.olo.service; + +import com.logpm.factorydata.olo.entity.FactoryNodePushEntity; +import org.springblade.core.mp.base.BaseService; + +/** + * 回推记录 服务类 + * + * @Author zqb + * @Date 2024/4/26 + **/ +public interface FactoryNodePushService extends BaseService { + +} diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java index 00327a75a..1d253d31f 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java @@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; @@ -116,7 +115,7 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl advances = new ArrayList<>(); for (Map.Entry> stringListEntry : advanceMap.entrySet()) { List value = stringListEntry.getValue(); + // 计算数量 + BigDecimal totalQty = value.stream().map(i -> Convert.toBigDecimal(i.getQty())).reduce(BigDecimal.ZERO, BigDecimal::add); TrunklineAdvanceEntity advanceEntity = new TrunklineAdvanceEntity(); advanceEntity.setTenantId(tenantId); advanceEntity.setStatus(0); @@ -143,7 +144,7 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl 1) { + advanceDetailEntity.setOrderPackageCode("OLO" + orderPackageDTO.getSn() + "-" + (i + 1) + "-" + StrUtil.padPre(String.valueOf(i + 1), 3, "0")); + } else { + advanceDetailEntity.setOrderPackageCode(orderPackageDTO.getSn()); + } + advanceDetailEntity.setReserve4(orderPackageDTO.getSn()); + advanceDetailEntity.setTrainNumber(orderPackageDTO.getShipmentNo()); + advanceDetailEntity.setServiceNum(orderPackageDTO.getShipmentSplitNo()); + advanceDetailEntity.setWaybillNo(""); + advanceDetailEntity.setPackageStatus("0"); + advanceDetailEntity.setWeight(StrUtil.isNotBlank(orderPackageDTO.getSnWeight()) ? new BigDecimal(orderPackageDTO.getSnWeight()) : BigDecimal.ZERO); + advanceDetailEntity.setVolume(StrUtil.isNotBlank(orderPackageDTO.getSnVolume()) ? new BigDecimal(orderPackageDTO.getSnVolume()) : BigDecimal.ZERO); // advanceDetailEntity.setChargeType(0); - advanceDetailEntity.setSupple(""); - advanceDetailEntity.setManifest(""); - advanceDetailEntity.setReturnNum(""); - advanceDetailEntity.setSendDateStr(DateUtil.formatLocalDateTime(LocalDateTime.now())); - advanceDetailEntity.setCarNumber(""); - advanceDetailEntity.setGoodsMan(""); - advanceDetailEntity.setTenantId(tenantId); - advanceDetailEntity.setStatus(0); - advanceDetailEntity.setIsDeleted(0); - JSONObject entries = JSONUtil.parseObj(advanceDetailEntity); - packageList.add(entries); + advanceDetailEntity.setSupple(""); + advanceDetailEntity.setManifest(""); + advanceDetailEntity.setReturnNum(""); + advanceDetailEntity.setSendDateStr(DateUtil.formatLocalDateTime(LocalDateTime.now())); + advanceDetailEntity.setCarNumber(""); + advanceDetailEntity.setGoodsMan(""); + advanceDetailEntity.setTenantId(tenantId); + advanceDetailEntity.setStatus(0); + advanceDetailEntity.setIsDeleted(0); + JSONObject entries = JSONUtil.parseObj(advanceDetailEntity); + packageList.add(entries); + } + } // 转成json对象,然后将包件明细放到detail中 JSONObject entries = JSONUtil.parseObj(advanceEntity); diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodePushServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodePushServiceImpl.java new file mode 100644 index 000000000..f4e0032e5 --- /dev/null +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodePushServiceImpl.java @@ -0,0 +1,22 @@ +package com.logpm.factorydata.olo.service.impl; + +import com.logpm.factorydata.olo.entity.FactoryNodePushEntity; +import com.logpm.factorydata.olo.mapper.FactoryNodePushMapper; +import com.logpm.factorydata.olo.service.FactoryNodePushService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +/** + * 工厂订单日志 业务实现类 + * + * @Author zqb + * @Date 2024/4/26 + **/ +@Slf4j +@Service +@AllArgsConstructor +public class FactoryNodePushServiceImpl extends BaseServiceImpl implements FactoryNodePushService { + +} From 964b176bf13ce4dc94a4a7950750adab4adeb594 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Tue, 29 Oct 2024 00:33:06 +0800 Subject: [PATCH 6/8] =?UTF-8?q?feat(all):=20=E4=BF=AE=E6=94=B9=E5=B9=B2?= =?UTF-8?q?=E7=BA=BF=E5=8D=B8=E8=BD=A6=E5=8D=B8=E8=BD=A6=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=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 1 卸车和卸车确认回传增加运单号 --- .../trunkline/service/impl/TrunklineCarsLoadServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 448849d43..35829b177 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 @@ -522,6 +522,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl{ return PushData.builder() .packageCode(data.getPackageCode()) + .waybillNumber(data.getWaybillNumber()) .warehouseName(warehouseEntity.getName()) .orderCode(data.getOrderCode()) .build(); @@ -9552,6 +9553,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl Date: Tue, 29 Oct 2024 00:33:23 +0800 Subject: [PATCH 7/8] =?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 --- .../mapper/TrunklineCarsOrderMapper.xml | 9 ++++--- .../impl/TrunklineCarsLoadServiceImpl.java | 25 +++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) 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 c20c8ab2c..38d2cfc9e 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 @@ -409,13 +409,14 @@ ltad.material_name materialName from logpm_trunkline_cars_order ltco left join logpm_trunkline_advance_detail ltad on ltad.order_code = ltco.order_code and ltad.waybill_no = ltco.waybill_no - left join logpm_trunkline_cars_load_scan ltcls on ltcls.order_code = ltad.order_code and ltcls.waybill_no = ltad.waybill_no and ltcls.order_package_code = ltad.order_package_code + LEFT JOIN (SELECT scan_code FROM logpm_trunkline_cars_load_scan ltcls + WHERE ltcls.load_id = #{loadId} + AND ltcls.warehouse_id = #{warehouseId} + AND ltcls.type = 1 ) t on t.scan_code = ltad.order_package_code where ltco.load_id = #{loadId} and ltco.node_id = #{warehouseId} and ltco.type = 1 - and ltcls.load_id = #{loadId} - and ltcls.warehouse_id = #{warehouseId} - and ltcls.type = 1 + and t.scan_code is null 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 448849d43..ed6583820 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 @@ -9635,6 +9635,31 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl neloadScanQueryWrapper = new QueryWrapper<>(); + neloadScanQueryWrapper.eq("load_id", loadId) + .eq("scan_code", orderPackageCode) + .eq("unload_node_id", warehouseId) + .ne("scan_status", "1"); + TrunklineCarsLoadScanEntity scanEntity = trunklineCarsLoadScanService.getOne(neloadScanQueryWrapper); + + if (!Objects.isNull(scanEntity)) { + Integer isData1 = scanEntity.getIsData(); + if (isData1.equals(0)) { + log.warn("##############unloadPackage: 系统无编码 orderPackageCode={} warehouseId={}", orderPackageCode, warehouseId); + return R.fail(405, "系统无编码"); + } + log.warn("##############unloadPackage: 包件已卸车 orderPackageCode={} warehouseId={}", orderPackageCode, warehouseId); + return R.fail(405, "包件已卸车"); + } + + //先判断包件是否在配载计划的装车扫描中 QueryWrapper loadScanQueryWrapper = new QueryWrapper<>(); loadScanQueryWrapper.eq("load_id", loadId) From 0207193f6a1ae2afa468b1f490300a90c18f4b13 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Tue, 29 Oct 2024 00:54:38 +0800 Subject: [PATCH 8/8] =?UTF-8?q?fix:=201.=E5=AE=8C=E5=96=84=E9=A2=84?= =?UTF-8?q?=E5=AD=98=E5=8D=95=20=E5=AF=B9=E8=B4=A6=E5=8D=95=20=E5=95=86?= =?UTF-8?q?=E5=AE=B6=E5=AF=B9=E8=B4=A6=E5=8D=95=20=E7=9A=84=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=8A=9F=E8=83=BD=202.=E5=A2=9E=E5=8A=A0=E8=BF=90?= =?UTF-8?q?=E5=8D=95=E5=AE=A1=E6=A0=B8=E3=80=81=E9=A2=84=E5=AD=98=E5=8D=95?= =?UTF-8?q?=E3=80=81=E5=AF=B9=E8=B4=A6=E5=8D=95=E3=80=81=E7=BB=93=E7=AE=97?= =?UTF-8?q?=E5=8D=95=E7=9A=84=E4=BB=93=E5=BA=93=E6=9D=83=E9=99=90=E9=99=90?= =?UTF-8?q?=E5=88=B6=203.=E4=BF=AE=E5=A4=8D=E5=88=B0=E4=BB=98=E8=BF=90?= =?UTF-8?q?=E5=8D=95=E5=AE=A1=E5=8D=95=E5=90=8E=E7=BC=BA=E5=B0=91=E7=9B=AE?= =?UTF-8?q?=E7=9A=84=E4=BB=93=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/IBasicdataWarehouseClient.java | 8 +- .../statistics/dto/MerchantStatisticsDTO.java | 105 +++++- .../vo/WaybillDetailByWaybillNoVo.java | 19 ++ .../feign/BasicdataWarehouseClient.java | 18 ++ .../mapper/BasicdataClientMapper.xml | 7 +- .../impl/BasicdataClientServiceImpl.java | 4 +- .../listener/mq/WaybillCheckListener.java | 175 +++++----- .../StatisticsBalanceOrderInfoMapper.xml | 31 ++ .../mapper/StatisticsOrderInfoMapper.java | 4 + .../mapper/StatisticsOrderInfoMapper.xml | 48 ++- ...tatisticsReconciliationOrderInfoMapper.xml | 13 +- ...StatisticsBalanceOrderInfoServiceImpl.java | 301 +++++++++--------- .../impl/StatisticsOrderInfoServiceImpl.java | 53 ++- ...icsReconciliationOrderInfoServiceImpl.java | 13 + .../mapper/WarehouseWaybillMapper.xml | 2 +- 15 files changed, 543 insertions(+), 258 deletions(-) create mode 100644 blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/vo/WaybillDetailByWaybillNoVo.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 efb42184a..26a727b98 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 @@ -113,8 +113,12 @@ public interface IBasicdataWarehouseClient { BasicdataWarehouseVO getMyCurrentWarehouseAndConfig(); - - + /** + * 获取房前登录人能看的仓库ID集合 + * @return + */ + @GetMapping(API_PREFIX + "/getWarehouseIds") + List getWarehouseIds(); /** * 获取当前登录人的能查看的仓库 diff --git a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/MerchantStatisticsDTO.java b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/MerchantStatisticsDTO.java index 9b009bd14..70a0a2e50 100644 --- a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/MerchantStatisticsDTO.java +++ b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/dto/MerchantStatisticsDTO.java @@ -18,7 +18,6 @@ public class MerchantStatisticsDTO implements Serializable { private Integer listType; - private String consignee; private String shipper; private Long consigneeId; @@ -33,17 +32,32 @@ public class MerchantStatisticsDTO implements Serializable { private List aftersalesOrderDTOS; - private Integer syncFeeSstatus; - private Integer signStatus; + + + private Integer isAftersales; - private Integer balanceStatus; + private Integer abnormalBalanceStatus; private String balanceOrderNo; + /** + * 运单号 + */ private String waybillNo; + /** + * 订单号 + */ private String orderCode; + private String departureWarehouseName; + /** + * 目的仓 + */ private String destinationWarehouseName; + + /** + * 服务类型 + */ private String typeService; private String shipperPerson; private String shipperMoblie; @@ -57,8 +71,91 @@ public class MerchantStatisticsDTO implements Serializable { private String openTimeStartStr; private String openTimeEndStr; + /** + * 收货单位 + */ + private String consignee; + + /** + * 计算金额状态 0否 1是 + */ + private Integer syncFeeSstatus; + /** + * + * 签收状态:0-未签收,1-部分签收,2-已签收 + */ + private Integer signStatus; + /** + * 计算价格开始时间 + */ + private Date syncFeeDateStart; + + /** + * 计算价格结束时间 + */ + private Date syncFeeDateEnd; + + + /** + * 签收开始时间 + */ + private Date signTimeStart; + + /** + * 签收开始时间 + */ + private Date signTimeEnd; + /** + * 开单时间 开始 + */ private Date openTimeStart; + + /** + * 开单时间 结束 + */ + private Date openTimeEnd; + /** + * 结算状态0未结算 1部分结算 2已结算 + */ + private Integer balanceStatus; + + /** + * 结算开始时间 + */ + private Date balanceTimeStart; + + /** + * 结算结束时间 + */ + private Date balanceTimeEnd; + + /** + * 异常开始时间 + */ + private Date abnormalTimeStart; + + /** + * 异常结束时间 + */ + private Date abnormalTimeEnd; + + + /** + * 单据创建开始时间 + */ + private Date createTimeStart; + + /** + * 单据单据创建结束时间 + */ + private Date createTimeEnd; + + /** + * 能查看的仓库列表 + */ + private List warehouseIds; + } diff --git a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/vo/WaybillDetailByWaybillNoVo.java b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/vo/WaybillDetailByWaybillNoVo.java new file mode 100644 index 000000000..cbf3eec2f --- /dev/null +++ b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/vo/WaybillDetailByWaybillNoVo.java @@ -0,0 +1,19 @@ +package com.logpm.statistics.vo; + +import lombok.Data; + +@Data +public class WaybillDetailByWaybillNoVo { + + /** + * 运单ID + */ + private Long waybillId; + + /** + * 凭借的产品数量 + * @Detail 木门(3),木门配件(17) + */ + private String goodsName; + +} 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 c34d86f6c..ffeb0a645 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 @@ -166,6 +166,24 @@ public class BasicdataWarehouseClient implements IBasicdataWarehouseClient { return warehouseWarehouseService.getMyCurrentWarehouseAndConfig(); } + @Override + public List getWarehouseIds() { + + + // 仓库ID集合 + List watermarkIds = new ArrayList<>(); + // 增加仓库权限的限制 + BasicdataWarehouseEntity myCurrentWarehouse = this.getMyCurrentWarehouse(); + if (Objects.isNull(myCurrentWarehouse)) { + List myWarehouseList = this.getMyWarehouseList(); + myWarehouseList.forEach(warehouse -> { + watermarkIds.add(warehouse.getId()); + }); + } else { + watermarkIds.add(myCurrentWarehouse.getId()); + } + return watermarkIds; + } @Override @GetMapping(API_PREFIX+"/getMyWatchWarehouse") diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml index 98a9cb5f4..38124ac04 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml @@ -111,6 +111,7 @@ lbc. linkman, lbc. phone, lbc. type_service, + lbc.clean_obj_type, lbc. blade_region_province_id, lbc. blade_region_city_id, lbc. blade_region_area_id, @@ -159,8 +160,12 @@ AND lbc.client_type = #{param.clientType} + + AND lbc.clean_obj_type = #{param.cleanObjType} + + - AND lbc.type_ervice = #{param.typeServiceName} + AND lbc.type_service = #{param.typeServiceName} AND t.aaa LIKE CONCAT('%', #{param.brandName}, '%') diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java index c50f72669..e4eae1a39 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java @@ -421,7 +421,9 @@ public class BasicdataClientServiceImpl extends BaseServiceImpl wayBillDetailList = warehouseWaybillDetailClient.findByWaybillId(waybillId); //把wayBillDetailList中所有productName用逗号拼起来 // String productTypeNum = wayBillDetailList.stream().map(t->t.getProductName()+"("+t.getNum()+")").collect(Collectors.joining(",")); @@ -103,7 +108,7 @@ public class WaybillCheckListener { StatisticsPackageFeeInfoVO trunklinePackageFeeVO = statisticsOrderInfoService.findPackageListByOrderIds(orderInfoIdsList); - String balanceOrderCode = "JSD"+System.currentTimeMillis(); + String balanceOrderCode = "JSD" + System.currentTimeMillis(); BigDecimal freightPrice = trunklinePackageFeeVO.getFreightPrice(); BigDecimal pickupPrice = trunklinePackageFeeVO.getPickupPrice(); @@ -154,8 +159,11 @@ public class WaybillCheckListener { balanceOrderInfoEntity.setAbnormalBalanceStatus(0); balanceOrderInfoEntity.setAbnormalBalanceFee(BigDecimal.ZERO); + balanceOrderInfoEntity.setDestinationWarehouseId(byWaybill.getDestinationWarehouseId()); + balanceOrderInfoEntity.setDestinationWarehouseName(byWaybill.getDestinationWarehouseName()); + boolean saveFlag = balanceOrderInfoService.save(balanceOrderInfoEntity); - if(saveFlag){ + if (saveFlag) { Long balanceOrderId = balanceOrderInfoEntity.getId(); List updateOrderInfoList = new ArrayList<>(); orderInfoEntityList.forEach(orderInfoEntity -> { @@ -171,7 +179,7 @@ public class WaybillCheckListener { updateEntity.setConfirmBalanceUserName(AuthUtil.getNickName()); updateOrderInfoList.add(updateEntity); }); - if(CollUtil.isNotEmpty(updateOrderInfoList)){ + if (CollUtil.isNotEmpty(updateOrderInfoList)) { statisticsOrderInfoService.updateBatchById(updateOrderInfoList); } } @@ -179,7 +187,7 @@ public class WaybillCheckListener { private void dealwithZeroOrder(WarehouseWaybillEntity waybillEntity) { String waybillNo = waybillEntity.getWaybillNo(); - log.info("############dealwithZeroOrder: 处理零担信息 waybillNo={}",waybillNo); + log.info("############dealwithZeroOrder: 处理零担信息 waybillNo={}", waybillNo); Long waybillId = waybillEntity.getId(); String brand = waybillEntity.getBrand(); Long brandId = waybillEntity.getBrandId(); @@ -193,12 +201,12 @@ public class WaybillCheckListener { 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(); + 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); @@ -235,7 +243,7 @@ public class WaybillCheckListener { orderInfoEntities.add(orderInfoEntity); boolean b = statisticsOrderInfoService.saveBatch(orderInfoEntities); - if(b){ + if (b) { Long orderId = orderInfoEntity.getId(); @@ -244,7 +252,7 @@ public class WaybillCheckListener { List distributionPackageEntities = new ArrayList<>(); - wayBillDetailList.forEach(wayBillDetail->{ + wayBillDetailList.forEach(wayBillDetail -> { Long productId = wayBillDetail.getProductId(); String productName = wayBillDetail.getProductName(); Integer num = wayBillDetail.getNum(); @@ -258,8 +266,8 @@ public class WaybillCheckListener { 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.setWeight(Objects.isNull(weight) ? BigDecimal.ZERO : weight); + trunklinePackageEntity.setVolume(Objects.isNull(volume) ? BigDecimal.ZERO : volume); trunklinePackageEntity.setGoodsType(2); trunklinePackageEntity.setOrderInfoId(orderId); trunklinePackageEntity.setProductId(productId); @@ -279,29 +287,29 @@ public class WaybillCheckListener { Integer systemWarehouseChargeType = wayBillDetail.getSystemWarehouseChargeType(); Integer systemDeliveryChargeType = wayBillDetail.getSystemDeliveryChargeType(); - if(systemChargeType == 1){ + if (systemChargeType == 1) { trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(new BigDecimal(num))); - }else if(systemChargeType == 2){ + } else if (systemChargeType == 2) { trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(trunklinePackageEntity.getWeight())); - }else if (systemChargeType == 3){ + } else if (systemChargeType == 3) { trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(trunklinePackageEntity.getVolume())); } - if(chargeType == 1){ + if (chargeType == 1) { trunklinePackageEntity.setFreightPrice(price.multiply(new BigDecimal(num))); - }else if(chargeType == 2){ + } else if (chargeType == 2) { trunklinePackageEntity.setFreightPrice(price.multiply(trunklinePackageEntity.getWeight())); - }else if (chargeType == 3){ + } else if (chargeType == 3) { trunklinePackageEntity.setFreightPrice(price.multiply(trunklinePackageEntity.getVolume())); } - if(systemPickupChargeType == 1){ + if (systemPickupChargeType == 1) { trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(new BigDecimal(num))); trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(new BigDecimal(num))); - }else if(systemPickupChargeType == 2){ + } else if (systemPickupChargeType == 2) { trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getWeight())); trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getWeight())); - }else if (systemPickupChargeType == 3){ + } else if (systemPickupChargeType == 3) { trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getVolume())); trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(trunklinePackageEntity.getVolume())); } @@ -367,8 +375,8 @@ public class WaybillCheckListener { 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.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))); @@ -384,11 +392,11 @@ public class WaybillCheckListener { BigDecimal systemDeliveryPrice = wayBillDetail.getDeliveryPrice(); distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice); - if(systemDeliveryChargeType == 1){ + if (systemDeliveryChargeType == 1) { distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(new BigDecimal(num))); - }else if(systemDeliveryChargeType == 2){ + } else if (systemDeliveryChargeType == 2) { distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(weight)); - }else if (systemDeliveryChargeType == 3){ + } else if (systemDeliveryChargeType == 3) { distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(volume)); } distributionPackageEntity.setDeliveryFee(BigDecimal.ZERO); @@ -396,7 +404,7 @@ public class WaybillCheckListener { BigDecimal systemDeliveryFeeTotal = distributionPackageEntity.getSystemDeliveryFee(); - if(payWay.equals("1") || payWay.equals("2")){ + if (payWay.equals("1") || payWay.equals("2")) { distributionPackageEntity.setDeliveryFee(systemDeliveryFeeTotal); } BigDecimal deliveryFeeTotal = distributionPackageEntity.getDeliveryFee(); @@ -412,24 +420,24 @@ public class WaybillCheckListener { distributionPackageEntities.add(distributionPackageEntity); }); - if(CollUtil.isNotEmpty(trunklinePackageEntities)){ + if (CollUtil.isNotEmpty(trunklinePackageEntities)) { trunklinePackageService.saveBatch(trunklinePackageEntities); } - if(CollUtil.isNotEmpty(warehousePackageEntities)){ + if (CollUtil.isNotEmpty(warehousePackageEntities)) { warehousePackageService.saveBatch(warehousePackageEntities); } - if(CollUtil.isNotEmpty(distributionPackageEntities)){ + if (CollUtil.isNotEmpty(distributionPackageEntities)) { distributionPackageService.saveBatch(distributionPackageEntities); } - }else{ - log.warn("#############dealwithPackageOrder: 保存订单数据失败 waybillNo={}",waybillNo); + } else { + log.warn("#############dealwithPackageOrder: 保存订单数据失败 waybillNo={}", waybillNo); } } private void dealwithPackageOrder(WarehouseWaybillEntity waybillEntity) { String waybillNo = waybillEntity.getWaybillNo(); - log.info("############dealwithPackageOrder: 处理订制品包件信息 waybillNo={}",waybillNo); + log.info("############dealwithPackageOrder: 处理订制品包件信息 waybillNo={}", waybillNo); Long waybillId = waybillEntity.getId(); String brand = waybillEntity.getBrand(); Long brandId = waybillEntity.getBrandId(); @@ -444,12 +452,12 @@ public class WaybillCheckListener { //单价计算 // 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(); + 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); @@ -461,9 +469,8 @@ public class WaybillCheckListener { BigDecimal thirdOperationPrice = thirdOperationFee.divide(new BigDecimal(totalCount), 2, BigDecimal.ROUND_HALF_UP); - //查询运单下所有的订单 - List advanceEntities =trunklineAdvanceClient.findListByWaybillNo(waybillNo); + List advanceEntities = trunklineAdvanceClient.findListByWaybillNo(waybillNo); //查询包件信息 List advanceDetailEntities = trunklineAdvanceDetailClient.findListByWaybillId(waybillId); //查询运单明细 @@ -476,7 +483,7 @@ public class WaybillCheckListener { //保存订单信息 List orderInfoEntities = new ArrayList<>(); - advanceEntities.forEach(advanceEntity->{ + advanceEntities.forEach(advanceEntity -> { StatisticsOrderInfoEntity orderInfoEntity = new StatisticsOrderInfoEntity(); orderInfoEntity.setOrderCode(advanceEntity.getOrderCode()); orderInfoEntity.setWaybillId(waybillId); @@ -498,7 +505,7 @@ public class WaybillCheckListener { }); boolean b = statisticsOrderInfoService.saveBatch(orderInfoEntities); - if(b){ + if (b) { Map> advanceDetailGroupByOrderCode = advanceDetailEntities.stream() .collect(Collectors.groupingBy(TrunklineAdvanceDetailEntity::getOrderCode)); @@ -506,11 +513,11 @@ public class WaybillCheckListener { List trunklinePackageEntities = new ArrayList<>(); List warehousePackageEntities = new ArrayList<>(); List distributionPackageEntities = new ArrayList<>(); - orderInfoEntities.forEach(orderInfoEntity->{ + orderInfoEntities.forEach(orderInfoEntity -> { Long orderId = orderInfoEntity.getId(); String orderCode = orderInfoEntity.getOrderCode(); List advanceDetailList = advanceDetailGroupByOrderCode.get(orderCode); - advanceDetailList.forEach(advanceDetailEntity->{ + advanceDetailList.forEach(advanceDetailEntity -> { Long incomeCategoryId = advanceDetailEntity.getIncomeCategoryId(); String orderPackageCode = advanceDetailEntity.getOrderPackageCode(); Integer quantity = advanceDetailEntity.getQuantity(); @@ -536,7 +543,7 @@ public class WaybillCheckListener { trunklinePackageEntity.setOtherPrice(otherPrice.multiply(BigDecimal.ONE)); trunklinePackageEntity.setThirdOperationPrice(thirdOperationPrice.multiply(BigDecimal.ONE)); - if(!Objects.isNull(warehouseWayBillDetail)){ + if (!Objects.isNull(warehouseWayBillDetail)) { trunklinePackageEntity.setProductId(incomeCategoryId); trunklinePackageEntity.setProductName(warehouseWayBillDetail.getProductName()); @@ -556,8 +563,8 @@ public class WaybillCheckListener { 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); + trunklinePackageEntity.setWeight(Objects.isNull(packageWeight) ? BigDecimal.ZERO : packageWeight); + trunklinePackageEntity.setVolume(Objects.isNull(packageVolume) ? BigDecimal.ZERO : packageVolume); BigDecimal systemFreightPrice = warehouseWayBillDetail.getFreightPrice();//系统运费单价 BigDecimal price = warehouseWayBillDetail.getPrice();//实际运费单价 @@ -566,36 +573,36 @@ public class WaybillCheckListener { //如果系统运费计算方式是按件,则用系统的运费单价乘以包件数量 //如果系统运费计算方式是按方,则用系统的运费单价乘以包件体积 //如果系统运费计算方式是按重量,则用系统的运费单价乘以包件重量 - if(systemChargeType == 1){ + if (systemChargeType == 1) { trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(BigDecimal.ONE)); - }else if(systemChargeType == 2){ + } else if (systemChargeType == 2) { trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(packageVolume)); - }else if (systemChargeType == 3){ + } else if (systemChargeType == 3) { trunklinePackageEntity.setSystemFreightPrice(systemFreightPrice.multiply(packageWeight)); } //实际包件的运费 - if(chargeType == 1){ + if (chargeType == 1) { trunklinePackageEntity.setFreightPrice(price.multiply(BigDecimal.ONE)); - }else if(chargeType == 2){ + } else if (chargeType == 2) { trunklinePackageEntity.setFreightPrice(price.multiply(packageVolume)); - }else if (chargeType == 3){ + } else if (chargeType == 3) { trunklinePackageEntity.setFreightPrice(price.multiply(packageWeight)); } //提货包件单价 - if(systemPickupChargeType == 1){ + if (systemPickupChargeType == 1) { trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(BigDecimal.ONE)); trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(BigDecimal.ONE)); - }else if(systemPickupChargeType == 2){ + } else if (systemPickupChargeType == 2) { trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(packageVolume)); trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(packageVolume)); - }else if (systemPickupChargeType == 3){ + } else if (systemPickupChargeType == 3) { trunklinePackageEntity.setSystemPickupPrice(systemPickupPrice.multiply(packageWeight)); trunklinePackageEntity.setPickupPrice(systemPickupPrice.multiply(packageWeight)); } - }else{ + } else { trunklinePackageEntity.setFreightChargeType(1); @@ -643,7 +650,7 @@ public class WaybillCheckListener { warehousePackageEntity.setBrandId(brandId); warehousePackageEntity.setConsigneeId(consigneeId); warehousePackageEntity.setChargeType(1); - if(!Objects.isNull(warehouseWayBillDetail)){ + if (!Objects.isNull(warehouseWayBillDetail)) { Integer systemWarehouseChargeType = warehouseWayBillDetail.getSystemWarehouseChargeType(); warehousePackageEntity.setChargeType(systemWarehouseChargeType); @@ -678,8 +685,8 @@ public class WaybillCheckListener { 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.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)); @@ -694,7 +701,7 @@ public class WaybillCheckListener { distributionPackageEntity.setConsigneeId(consigneeId); distributionPackageEntity.setDeliveryLoadingFee(handlingPrice.multiply(BigDecimal.ONE)); - if(!Objects.isNull(warehouseWayBillDetail)){ + if (!Objects.isNull(warehouseWayBillDetail)) { Integer systemDeliveryChargeType = warehouseWayBillDetail.getSystemDeliveryChargeType(); BigDecimal productTotalWeight = warehouseWayBillDetail.getWeight(); @@ -712,23 +719,23 @@ public class WaybillCheckListener { BigDecimal systemDeliveryPrice = warehouseWayBillDetail.getDeliveryPrice(); - if(systemDeliveryChargeType == 1){ + if (systemDeliveryChargeType == 1) { distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(BigDecimal.ONE)); - }else if(systemDeliveryChargeType == 2){ + } else if (systemDeliveryChargeType == 2) { distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(packageVolume)); - }else if(systemDeliveryChargeType == 3){ + } else if (systemDeliveryChargeType == 3) { distributionPackageEntity.setSystemDeliveryFee(systemDeliveryPrice.multiply(packageWeight)); } distributionPackageEntity.setDeliveryFee(BigDecimal.ZERO); - }else{ + } else { distributionPackageEntity.setSystemDeliveryChargeType(1); distributionPackageEntity.setDeliveryChargeType(1); distributionPackageEntity.setSystemDeliveryFee(BigDecimal.ZERO); distributionPackageEntity.setDeliveryFee(BigDecimal.ZERO); } - if(payWay.equals("1") || payWay.equals("2")){ + if (payWay.equals("1") || payWay.equals("2")) { distributionPackageEntity.setDeliveryFee(distributionPackageEntity.getSystemDeliveryFee()); } BigDecimal deliveryFeeTotal = distributionPackageEntity.getDeliveryFee(); @@ -746,18 +753,18 @@ public class WaybillCheckListener { distributionPackageEntities.add(distributionPackageEntity); }); }); - if(CollUtil.isNotEmpty(trunklinePackageEntities)){ + if (CollUtil.isNotEmpty(trunklinePackageEntities)) { trunklinePackageService.saveBatch(trunklinePackageEntities); } - if(CollUtil.isNotEmpty(warehousePackageEntities)){ + if (CollUtil.isNotEmpty(warehousePackageEntities)) { warehousePackageService.saveBatch(warehousePackageEntities); } - if(CollUtil.isNotEmpty(distributionPackageEntities)){ + if (CollUtil.isNotEmpty(distributionPackageEntities)) { distributionPackageService.saveBatch(distributionPackageEntities); } - }else{ - log.warn("#############dealwithPackageOrder: 保存订单数据失败 waybillNo={}",waybillNo); + } else { + log.warn("#############dealwithPackageOrder: 保存订单数据失败 waybillNo={}", waybillNo); } } } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsBalanceOrderInfoMapper.xml b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsBalanceOrderInfoMapper.xml index a447a6ce3..18a9b30ad 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsBalanceOrderInfoMapper.xml +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/StatisticsBalanceOrderInfoMapper.xml @@ -21,6 +21,37 @@ and abnormal_balance_status = #{param.abnormalBalanceStatus} + + and consignee = #{param.consignee} + + + and consignee = #{param.consignee} + + + and create_time >= #{param.createTimeStart} + + + and create_time <= #{param.createTimeEnd} + + + and abnormal_time >= #{param.abnormalTimeStart} + + + and abnormal_time <= #{param.abnormalTimeEnd} + + + and balance_time >= #{param.balanceTimeStart} + + + and balance_time <= #{param.balanceTimeEnd} + + + and destination_warehouse_name = #{param.destinationWarehouseName} + + and destination_warehouse_id in + + #{item} + 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 f5fab987a..33cd84b94 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 @@ -7,11 +7,13 @@ 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 com.logpm.statistics.vo.WaybillDetailByWaybillNoVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; +import java.util.Set; @Mapper public interface StatisticsOrderInfoMapper extends BaseMapper { @@ -35,4 +37,6 @@ public interface StatisticsOrderInfoMapper extends BaseMapper orderInfoIds, @Param("nickName") String nickName, @Param("date") Date date); List orderInfoListExport(@Param("param") MerchantStatisticsDTO merchantStatisticsDTO); + + List findWaybillDetailByWaybillId(@Param("warehouseIdSet") Set warehouseIdSet); } 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 15ee38b14..7c1d9a242 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 @@ -18,6 +18,7 @@ lww.consignee_name consigneePerson, lww.consignee_mobile consigneeMobile, lww.consignee_address consigneeAddress, + concat(GROUP_CONCAT(lwwd.product_name)) as goodsName, lsoi.sign_status signStatus, lsoi.sign_date signDate, lww.create_time openTime, @@ -42,6 +43,7 @@ from logpm_statistics_order_info lsoi left join logpm_basicdata_client lbc on lbc.id = lsoi.consignee_id left join logpm_warehouse_waybill lww on lww.id = lsoi.waybill_id + LEFT JOIN logpm_warehouse_waybill_detail lwwd on lwwd.waybill_id=lww.id where 1=1 and lsoi.create_reconciliation_order_status = 0 @@ -66,7 +68,7 @@ and Locate(#{param.waybillNo},lww.waybill_no) > 0 - and Locate(#{param.orderCode},lww.order_code) > 0 + and Locate(#{param.orderCode},lww.order_no) > 0 and Locate(#{param.shipper},lww.shipper) > 0 @@ -86,6 +88,18 @@ and lww.create_time <= #{param.openTimeEnd} + + and lsoi.sign_date >= #{param.signTimeStart} + + + and lsoi.sign_date <= #{param.signTimeEnd} + + + and lsoi.sync_fee_date >= #{param.syncFeeDateStart} + + + and lsoi.sync_fee_date <= #{param.syncFeeDateEnd} + and Locate(#{param.shipperPerson},lww.shipper_person) > 0 @@ -102,12 +116,15 @@ and lbc.clean_obj_type = #{param.cleanObjType} - and lbc.pay_type = #{param.payType} + and lww.pay_type = #{param.payType} - and lbc.pay_way = #{param.payWay} + and lww.pay_way = #{param.payWay} - + and lsoi.destination_warehouse_id in + + #{item} + group by lsoi.id @@ -487,6 +504,29 @@ where 1=1 and lsoi.waybill_id = #{waybillId} + delete from logpm_statistics_order_info 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 index a28e7653b..b4589bb58 100644 --- 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 @@ -26,14 +26,13 @@ and create_time <= #{param.openTimeEnd} - - and consignee <= #{param.consignee} + + and destination_warehouse_name = #{param.destinationWarehouseName} - - - and is_aftersale <= #{param.isAftersales} - - + and destination_warehouse_id in + + #{item} + 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 eb2201bd1..d240ae87a 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 @@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil; 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.basicdata.entity.BasicdataWarehouseEntity; +import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.statistics.dto.MerchantStatisticsDTO; import com.logpm.statistics.dto.StatisticsBalanceAbnormalDTO; import com.logpm.statistics.dto.StatisticsBalanceRecordDTO; @@ -39,6 +41,7 @@ public class StatisticsBalanceOrderInfoServiceImpl extends BaseServiceImpl pageList(MerchantStatisticsDTO merchantStatisticsDTO) { @@ -47,196 +50,202 @@ public class StatisticsBalanceOrderInfoServiceImpl extends BaseServiceImpl warehouseIds = warehouseClient.getWarehouseIds(); + if(!warehouseIds.isEmpty()){ + merchantStatisticsDTO.setWarehouseIds(warehouseIds); + } + + return baseMapper.pageList(page,merchantStatisticsDTO); - } +} - @Transactional(rollbackFor = Exception.class) - @Override - public R addAbnormal(StatisticsBalanceAbnormalDTO balanceAbnormalDTO) { - StatisticsBalanceAbnormalEntity balanceAbnormalEntity = new StatisticsBalanceAbnormalEntity(); - BeanUtil.copy(balanceAbnormalDTO,balanceAbnormalEntity); - balanceAbnormalEntity.setAbnormalUserName(AuthUtil.getNickName()); +@Transactional(rollbackFor = Exception.class) +@Override +public R addAbnormal(StatisticsBalanceAbnormalDTO balanceAbnormalDTO) { + StatisticsBalanceAbnormalEntity balanceAbnormalEntity = new StatisticsBalanceAbnormalEntity(); + BeanUtil.copy(balanceAbnormalDTO, balanceAbnormalEntity); + balanceAbnormalEntity.setAbnormalUserName(AuthUtil.getNickName()); - balanceAbnormalService.save(balanceAbnormalEntity); - Long balanceAbnormalId = balanceAbnormalEntity.getId(); + balanceAbnormalService.save(balanceAbnormalEntity); + Long balanceAbnormalId = balanceAbnormalEntity.getId(); - List abnormalPhotoEntityList = balanceAbnormalDTO.getAbnormalPhotoEntityList(); + List abnormalPhotoEntityList = balanceAbnormalDTO.getAbnormalPhotoEntityList(); - abnormalPhotoEntityList.forEach(abnormalPhotoEntity -> { - abnormalPhotoEntity.setAbnormalId(balanceAbnormalId); - }); + abnormalPhotoEntityList.forEach(abnormalPhotoEntity -> { + abnormalPhotoEntity.setAbnormalId(balanceAbnormalId); + }); - balanceAbnormalPhotoService.saveBatch(abnormalPhotoEntityList); + balanceAbnormalPhotoService.saveBatch(abnormalPhotoEntityList); - Long balanceOrderInfoId = balanceAbnormalEntity.getBalanceOrderInfoId(); + Long balanceOrderInfoId = balanceAbnormalEntity.getBalanceOrderInfoId(); - StatisticsBalanceOrderInfoEntity balanceOrderInfoEntity = baseMapper.selectById(balanceOrderInfoId); - if(Objects.isNull(balanceOrderInfoEntity)){ - log.warn("###########addAbnormal: 结算单信息不存在 balanceOrderInfoEntity={}",balanceOrderInfoEntity); - throw new CustomerException(405,"结算单信息不存在"); - } - BigDecimal totalBalanceFee = balanceOrderInfoEntity.getTotalBalanceFee(); - BigDecimal hasBalanceFee = balanceOrderInfoEntity.getHasBalanceFee(); - BigDecimal abnormalFee = balanceAbnormalEntity.getAbnormalFee(); - - BigDecimal total = totalBalanceFee.add(abnormalFee); - - balanceOrderInfoEntity.setAbnormalBalanceStatus(1); - balanceOrderInfoEntity.setAbnormalBalanceFee(balanceOrderInfoEntity.getAbnormalBalanceFee().add(abnormalFee)); - balanceOrderInfoEntity.setAbnormalTime(balanceAbnormalEntity.getCreateTime()); - balanceOrderInfoEntity.setAbnormalUserName(balanceAbnormalEntity.getAbnormalUserName()); - balanceOrderInfoEntity.setAbnormalRemark(balanceAbnormalEntity.getAbnormalRemark()); - if(hasBalanceFee.compareTo(total) >= 0){ - balanceOrderInfoEntity.setBalanceStatus(2); - }else{ - if(hasBalanceFee.compareTo(BigDecimal.ZERO) == 0){ - balanceOrderInfoEntity.setBalanceStatus(0); - }else{ - balanceOrderInfoEntity.setBalanceStatus(1); - } + StatisticsBalanceOrderInfoEntity balanceOrderInfoEntity = baseMapper.selectById(balanceOrderInfoId); + if (Objects.isNull(balanceOrderInfoEntity)) { + log.warn("###########addAbnormal: 结算单信息不存在 balanceOrderInfoEntity={}", balanceOrderInfoEntity); + throw new CustomerException(405, "结算单信息不存在"); + } + BigDecimal totalBalanceFee = balanceOrderInfoEntity.getTotalBalanceFee(); + BigDecimal hasBalanceFee = balanceOrderInfoEntity.getHasBalanceFee(); + BigDecimal abnormalFee = balanceAbnormalEntity.getAbnormalFee(); + + BigDecimal total = totalBalanceFee.add(abnormalFee); + + balanceOrderInfoEntity.setAbnormalBalanceStatus(1); + balanceOrderInfoEntity.setAbnormalBalanceFee(balanceOrderInfoEntity.getAbnormalBalanceFee().add(abnormalFee)); + balanceOrderInfoEntity.setAbnormalTime(balanceAbnormalEntity.getCreateTime()); + balanceOrderInfoEntity.setAbnormalUserName(balanceAbnormalEntity.getAbnormalUserName()); + balanceOrderInfoEntity.setAbnormalRemark(balanceAbnormalEntity.getAbnormalRemark()); + if (hasBalanceFee.compareTo(total) >= 0) { + balanceOrderInfoEntity.setBalanceStatus(2); + } else { + if (hasBalanceFee.compareTo(BigDecimal.ZERO) == 0) { + balanceOrderInfoEntity.setBalanceStatus(0); + } else { + balanceOrderInfoEntity.setBalanceStatus(1); } - updateById(balanceOrderInfoEntity); - - return R.success("添加成功"); } + updateById(balanceOrderInfoEntity); - @Override - public R findAbnormalList(StatisticsBalanceAbnormalDTO balanceAbnormalDTO) { - Long balanceOrderInfoId = balanceAbnormalDTO.getBalanceOrderInfoId(); + return R.success("添加成功"); +} - QueryWrapper balanceAbnormalEntityQueryWrapper = new QueryWrapper<>(); - balanceAbnormalEntityQueryWrapper.eq("balance_order_info_id",balanceOrderInfoId); +@Override +public R findAbnormalList(StatisticsBalanceAbnormalDTO balanceAbnormalDTO) { + Long balanceOrderInfoId = balanceAbnormalDTO.getBalanceOrderInfoId(); - List list = balanceAbnormalService.list(balanceAbnormalEntityQueryWrapper); + QueryWrapper balanceAbnormalEntityQueryWrapper = new QueryWrapper<>(); + balanceAbnormalEntityQueryWrapper.eq("balance_order_info_id", balanceOrderInfoId); - if(list.isEmpty()){ - return R.data(CollUtil.newArrayList()); - } + List list = balanceAbnormalService.list(balanceAbnormalEntityQueryWrapper); - //把list中所有元素的id放到一个List集合中 - List idList= list.stream() - .map(StatisticsBalanceAbnormalEntity::getId) - .collect(Collectors.toList()); + if (list.isEmpty()) { + return R.data(CollUtil.newArrayList()); + } - QueryWrapper balanceAbnormalPhotoEntityQueryWrapper = new QueryWrapper<>(); - balanceAbnormalPhotoEntityQueryWrapper.in("abnormal_id",idList); + //把list中所有元素的id放到一个List集合中 + List idList = list.stream() + .map(StatisticsBalanceAbnormalEntity::getId) + .collect(Collectors.toList()); - List abnormalPhotoEntityList = balanceAbnormalPhotoService.list(balanceAbnormalPhotoEntityQueryWrapper); - //把abnormalPhotoEntityList中所有元素按照abnormalId进行分组 - Map> groupedPhotos = abnormalPhotoEntityList.stream() - .collect(Collectors.groupingBy(StatisticsBalanceAbnormalPhotoEntity::getAbnormalId)); + QueryWrapper balanceAbnormalPhotoEntityQueryWrapper = new QueryWrapper<>(); + balanceAbnormalPhotoEntityQueryWrapper.in("abnormal_id", idList); - List abnormalVOList = new ArrayList<>(); - list.forEach(balanceAbnormalEntity -> { - StatisticsBalanceAbnormalVO balanceAbnormalVO = new StatisticsBalanceAbnormalVO(); - BeanUtil.copy(balanceAbnormalEntity,balanceAbnormalVO); - balanceAbnormalVO.setAbnormalPhotoEntityList(groupedPhotos.get(balanceAbnormalEntity.getId())); - abnormalVOList.add(balanceAbnormalVO); - }); + List abnormalPhotoEntityList = balanceAbnormalPhotoService.list(balanceAbnormalPhotoEntityQueryWrapper); + //把abnormalPhotoEntityList中所有元素按照abnormalId进行分组 + Map> groupedPhotos = abnormalPhotoEntityList.stream() + .collect(Collectors.groupingBy(StatisticsBalanceAbnormalPhotoEntity::getAbnormalId)); - return R.data(abnormalVOList); - } + List abnormalVOList = new ArrayList<>(); + list.forEach(balanceAbnormalEntity -> { + StatisticsBalanceAbnormalVO balanceAbnormalVO = new StatisticsBalanceAbnormalVO(); + BeanUtil.copy(balanceAbnormalEntity, balanceAbnormalVO); + balanceAbnormalVO.setAbnormalPhotoEntityList(groupedPhotos.get(balanceAbnormalEntity.getId())); + abnormalVOList.add(balanceAbnormalVO); + }); - @Transactional(rollbackFor = Exception.class) - @Override - public R addBalanceRecord(StatisticsBalanceRecordDTO balanceRecordDTO) { - StatisticsBalanceRecordEntity balanceRecordEntity = new StatisticsBalanceRecordEntity(); - BeanUtil.copy(balanceRecordDTO,balanceRecordEntity); - balanceRecordEntity.setBalanceUserName(AuthUtil.getNickName()); + return R.data(abnormalVOList); +} - balanceRecordService.save(balanceRecordEntity); +@Transactional(rollbackFor = Exception.class) +@Override +public R addBalanceRecord(StatisticsBalanceRecordDTO balanceRecordDTO) { + StatisticsBalanceRecordEntity balanceRecordEntity = new StatisticsBalanceRecordEntity(); + BeanUtil.copy(balanceRecordDTO, balanceRecordEntity); + balanceRecordEntity.setBalanceUserName(AuthUtil.getNickName()); - List recordPhotoEntityList = balanceRecordDTO.getRecordPhotoEntityList(); + balanceRecordService.save(balanceRecordEntity); - recordPhotoEntityList.forEach(recordPhotoEntity -> { - recordPhotoEntity.setRecordId(balanceRecordEntity.getId()); - }); + List recordPhotoEntityList = balanceRecordDTO.getRecordPhotoEntityList(); - balanceRecordPhotoService.saveBatch(recordPhotoEntityList); + recordPhotoEntityList.forEach(recordPhotoEntity -> { + recordPhotoEntity.setRecordId(balanceRecordEntity.getId()); + }); - Long balanceOrderInfoId = balanceRecordDTO.getBalanceOrderInfoId(); + balanceRecordPhotoService.saveBatch(recordPhotoEntityList); - StatisticsBalanceOrderInfoEntity balanceOrderInfoEntity = baseMapper.selectById(balanceOrderInfoId); - if(Objects.isNull(balanceOrderInfoEntity)){ - log.warn("###########addBalanceRecord: 结算单信息不存在 balanceOrderInfoEntity={}",balanceOrderInfoEntity); - return R.fail(405,"结算单信息不存在"); - } + Long balanceOrderInfoId = balanceRecordDTO.getBalanceOrderInfoId(); - BigDecimal balanceFee = balanceRecordEntity.getBalanceFee(); + StatisticsBalanceOrderInfoEntity balanceOrderInfoEntity = baseMapper.selectById(balanceOrderInfoId); + if (Objects.isNull(balanceOrderInfoEntity)) { + log.warn("###########addBalanceRecord: 结算单信息不存在 balanceOrderInfoEntity={}", balanceOrderInfoEntity); + return R.fail(405, "结算单信息不存在"); + } - BigDecimal totalBalanceFee = balanceOrderInfoEntity.getTotalBalanceFee(); - BigDecimal abnormalBalanceFee = balanceOrderInfoEntity.getAbnormalBalanceFee(); + BigDecimal balanceFee = balanceRecordEntity.getBalanceFee(); - BigDecimal total = totalBalanceFee.add(abnormalBalanceFee); - BigDecimal hasBalanceFee = balanceOrderInfoEntity.getHasBalanceFee(); + BigDecimal totalBalanceFee = balanceOrderInfoEntity.getTotalBalanceFee(); + BigDecimal abnormalBalanceFee = balanceOrderInfoEntity.getAbnormalBalanceFee(); - BigDecimal newHasBalanceFee = hasBalanceFee.add(balanceFee); + BigDecimal total = totalBalanceFee.add(abnormalBalanceFee); + BigDecimal hasBalanceFee = balanceOrderInfoEntity.getHasBalanceFee(); - if(newHasBalanceFee.compareTo(total) >= 0){ - balanceOrderInfoEntity.setBalanceStatus(2); - balanceOrderInfoEntity.setNoBalanceFee(BigDecimal.ZERO); - }else{ - balanceOrderInfoEntity.setBalanceStatus(1); - balanceOrderInfoEntity.setNoBalanceFee(total.subtract(newHasBalanceFee)); - } + BigDecimal newHasBalanceFee = hasBalanceFee.add(balanceFee); - balanceOrderInfoEntity.setHasBalanceFee(newHasBalanceFee); - balanceOrderInfoEntity.setBalanceTime(balanceRecordEntity.getCreateTime()); - balanceOrderInfoEntity.setBalanceUserName(balanceRecordEntity.getBalanceUserName()); - balanceOrderInfoEntity.setBalanceRemark(balanceRecordEntity.getBalanceRemark()); + if (newHasBalanceFee.compareTo(total) >= 0) { + balanceOrderInfoEntity.setBalanceStatus(2); + balanceOrderInfoEntity.setNoBalanceFee(BigDecimal.ZERO); + } else { + balanceOrderInfoEntity.setBalanceStatus(1); + balanceOrderInfoEntity.setNoBalanceFee(total.subtract(newHasBalanceFee)); + } - updateById(balanceOrderInfoEntity); + balanceOrderInfoEntity.setHasBalanceFee(newHasBalanceFee); + balanceOrderInfoEntity.setBalanceTime(balanceRecordEntity.getCreateTime()); + balanceOrderInfoEntity.setBalanceUserName(balanceRecordEntity.getBalanceUserName()); + balanceOrderInfoEntity.setBalanceRemark(balanceRecordEntity.getBalanceRemark()); - return R.success("添加成功"); - } + updateById(balanceOrderInfoEntity); - @Override - public R findRecordList(StatisticsBalanceRecordDTO balanceRecordDTO) { + return R.success("添加成功"); +} - Long balanceOrderInfoId = balanceRecordDTO.getBalanceOrderInfoId(); +@Override +public R findRecordList(StatisticsBalanceRecordDTO balanceRecordDTO) { - QueryWrapper balanceAbnormalEntityQueryWrapper = new QueryWrapper<>(); - balanceAbnormalEntityQueryWrapper.eq("balance_order_info_id",balanceOrderInfoId); + Long balanceOrderInfoId = balanceRecordDTO.getBalanceOrderInfoId(); - List list = balanceRecordService.list(balanceAbnormalEntityQueryWrapper); + QueryWrapper balanceAbnormalEntityQueryWrapper = new QueryWrapper<>(); + balanceAbnormalEntityQueryWrapper.eq("balance_order_info_id", balanceOrderInfoId); - if(list.isEmpty()){ - return R.data(CollUtil.newArrayList()); - } + List list = balanceRecordService.list(balanceAbnormalEntityQueryWrapper); - //把list中所有元素的id放到一个List集合中 - List idList= list.stream() - .map(StatisticsBalanceRecordEntity::getId) - .collect(Collectors.toList()); - - QueryWrapper balanceRecordPhotoEntityQueryWrapper = new QueryWrapper<>(); - balanceRecordPhotoEntityQueryWrapper.in("record_id",idList); - - List recordPhotoEntityList = balanceRecordPhotoService.list(balanceRecordPhotoEntityQueryWrapper); - //把abnormalPhotoEntityList中所有元素按照abnormalId进行分组 - Map> groupedPhotos = recordPhotoEntityList.stream() - .collect(Collectors.groupingBy(StatisticsBalanceRecordPhotoEntity::getRecordId)); - - List balanceRecordVOS = new ArrayList<>(); - list.forEach(balanceRecordEntity -> { - StatisticsBalanceRecordVO balanceRecordVO = new StatisticsBalanceRecordVO(); - BeanUtil.copy(balanceRecordEntity,balanceRecordVO); - balanceRecordVO.setRecordPhotoEntityList(groupedPhotos.get(balanceRecordEntity.getId())); - balanceRecordVO.setBalanceUserName(balanceRecordEntity.getBalanceUserName()); - balanceRecordVO.setBalanceRemark(balanceRecordEntity.getBalanceRemark()); - balanceRecordVOS.add(balanceRecordVO); - }); - - return R.data(balanceRecordVOS); + if (list.isEmpty()) { + return R.data(CollUtil.newArrayList()); } - @Override - public R findBalanceDetail(Long balanceOrderId) { + //把list中所有元素的id放到一个List集合中 + List idList = list.stream() + .map(StatisticsBalanceRecordEntity::getId) + .collect(Collectors.toList()); + + QueryWrapper balanceRecordPhotoEntityQueryWrapper = new QueryWrapper<>(); + balanceRecordPhotoEntityQueryWrapper.in("record_id", idList); + + List recordPhotoEntityList = balanceRecordPhotoService.list(balanceRecordPhotoEntityQueryWrapper); + //把abnormalPhotoEntityList中所有元素按照abnormalId进行分组 + Map> groupedPhotos = recordPhotoEntityList.stream() + .collect(Collectors.groupingBy(StatisticsBalanceRecordPhotoEntity::getRecordId)); + + List balanceRecordVOS = new ArrayList<>(); + list.forEach(balanceRecordEntity -> { + StatisticsBalanceRecordVO balanceRecordVO = new StatisticsBalanceRecordVO(); + BeanUtil.copy(balanceRecordEntity, balanceRecordVO); + balanceRecordVO.setRecordPhotoEntityList(groupedPhotos.get(balanceRecordEntity.getId())); + balanceRecordVO.setBalanceUserName(balanceRecordEntity.getBalanceUserName()); + balanceRecordVO.setBalanceRemark(balanceRecordEntity.getBalanceRemark()); + balanceRecordVOS.add(balanceRecordVO); + }); + + return R.data(balanceRecordVOS); +} - StatisticsBalanceOrderInfoEntity statisticsBalanceOrderInfoEntity = baseMapper.selectById(balanceOrderId); +@Override +public R findBalanceDetail(Long balanceOrderId) { - return R.data(statisticsBalanceOrderInfoEntity); - } + StatisticsBalanceOrderInfoEntity statisticsBalanceOrderInfoEntity = baseMapper.selectById(balanceOrderId); + + return R.data(statisticsBalanceOrderInfoEntity); +} } 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 32f056d1e..307202291 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 @@ -12,6 +12,7 @@ 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.feign.IBasicdataWarehouseClient; import com.logpm.basicdata.vo.*; import com.logpm.statistics.dto.AftersalesOrderDTO; import com.logpm.statistics.dto.ChangesRecordDTO; @@ -45,13 +46,13 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl findListByWaybillId(Long waybillId) { @@ -75,22 +76,58 @@ public class StatisticsOrderInfoServiceImpl extends BaseServiceImpl warehouseIds = warehouseClient.getWarehouseIds(); + if(!warehouseIds.isEmpty()){ + merchantStatisticsDTO.setWarehouseIds(warehouseIds); + } + + IPage statisticsOrderInfoVOIPage = baseMapper.pageList(page, merchantStatisticsDTO); List records = statisticsOrderInfoVOIPage.getRecords(); //把records中所有的orderInfoId放入一个集合 List orderInfoIdList = records.stream().map(StatisticsOrderInfoVO::getOrderInfoId).collect(Collectors.toList()); + // 运单ID集合 + Set warehouseIdSet = records.stream().map(StatisticsOrderInfoVO::getWaybillId).collect(Collectors.toSet()); + List waybillDetailByWaybillNoVoList; + Map orderPackageInfoMap; if(CollUtil.isNotEmpty(orderInfoIdList)){ List orderPackageInfoList = baseMapper.findPackageListByOrderIdsGroupById(orderInfoIdList); //把orderPackageInfoList转化成以orderInfoId为key的Map - Map orderPackageInfoMap = orderPackageInfoList.stream() - .collect(Collectors.toMap(StatisticsPackageFeeInfoVO::getOrderInfoId, statisticsPackageFeeInfoVO -> statisticsPackageFeeInfoVO)); + if(CollUtil.isNotEmpty(orderPackageInfoList)){ + orderPackageInfoMap = orderPackageInfoList.stream() + .collect(Collectors.toMap(StatisticsPackageFeeInfoVO::getOrderInfoId, statisticsPackageFeeInfoVO -> statisticsPackageFeeInfoVO)); + } else { + orderPackageInfoMap = null; + } + } else { + orderPackageInfoMap = null; + } + if(CollUtil.isNotEmpty(warehouseIdSet)){ + waybillDetailByWaybillNoVoList = baseMapper.findWaybillDetailByWaybillId(warehouseIdSet); + } else { + waybillDetailByWaybillNoVoList = null; + } + + records.forEach(statisticsOrderInfoVO -> { + Long waybillId = statisticsOrderInfoVO.getWaybillId(); + WaybillDetailByWaybillNoVo waybillDetailByWaybillNoVo1 = null; - records.forEach(statisticsOrderInfoVO -> { - Long orderInfoId = statisticsOrderInfoVO.getOrderInfoId(); + Long orderInfoId = statisticsOrderInfoVO.getOrderInfoId(); + if(orderPackageInfoMap!=null){ StatisticsPackageFeeInfoVO statisticsPackageFeeInfoVO = orderPackageInfoMap.get(orderInfoId); - BeanUtil.copy(statisticsPackageFeeInfoVO, statisticsOrderInfoVO); - }); - } + if(statisticsPackageFeeInfoVO!=null){ + BeanUtil.copy(statisticsPackageFeeInfoVO, statisticsOrderInfoVO); + } + } + + if(waybillDetailByWaybillNoVoList!=null){ + waybillDetailByWaybillNoVo1 = waybillDetailByWaybillNoVoList.stream().filter(waybillDetailByWaybillNoVo -> Objects.equals(waybillDetailByWaybillNoVo.getWaybillId(), waybillId)).findFirst().orElse(null); + } + if(waybillDetailByWaybillNoVo1!=null){ + statisticsOrderInfoVO.setGoodsName(waybillDetailByWaybillNoVo1.getGoodsName()); + } + }); statisticsOrderInfoVOIPage.setRecords(records); return statisticsOrderInfoVOIPage; 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 index 7d8bfb9f8..76fe2f7df 100644 --- 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 @@ -2,11 +2,13 @@ package com.logpm.statistics.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.logpm.basicdata.feign.IBasicdataWarehouseClient; 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 com.logpm.statistics.vo.StatisticsReconciliationInfoExportVO; +import com.logpm.warehouse.feign.IWarehouseWaybillClient; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.utils.CommonUtil; @@ -21,6 +23,10 @@ import java.util.List; @Slf4j @AllArgsConstructor public class StatisticsReconciliationOrderInfoServiceImpl extends BaseServiceImpl implements IStatisticsReconciliationOrderInfoService { + + + private IBasicdataWarehouseClient warehouseClient; + @Override public IPage pageReconciliationList(MerchantStatisticsDTO merchantStatisticsDTO) { @@ -31,6 +37,13 @@ public class StatisticsReconciliationOrderInfoServiceImpl extends BaseServiceImp merchantStatisticsDTO.setOpenTimeStart(CommonUtil.getStartByDateStr(merchantStatisticsDTO.getOpenTimeStartStr())); merchantStatisticsDTO.setOpenTimeEnd(CommonUtil.getEndByDateStr(merchantStatisticsDTO.getOpenTimeEndStr())); + + List warehouseIds = warehouseClient.getWarehouseIds(); + if(!warehouseIds.isEmpty()){ + merchantStatisticsDTO.setWarehouseIds(warehouseIds); + } + + return baseMapper.pageReconciliationList(page, merchantStatisticsDTO); } 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 3b1f3d51a..6c5934277 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 @@ -505,7 +505,7 @@ #{item} - + and lww.destination_warehouse_id in #{item}