Просмотр исходного кода

Merge remote-tracking branch 'origin/dev' into dev

czh 2 лет назад
Родитель
Сommit
ebb9e240f1
49 измененных файлов с 683 добавлено и 264 удалено
  1. 9 0
      sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/dubbo/GoodsInfoService.java
  2. 1 1
      sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/ExcelExportController.java
  3. 1 1
      sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/FileApiController.java
  4. 2 2
      sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/MessageApiController.java
  5. 1 1
      sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/TestController.java
  6. 9 4
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java
  7. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java
  8. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfFleetService.java
  9. 3 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckReportService.java
  10. 1 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java
  11. 2 2
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml
  12. 1 1
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckMapper.xml
  13. 1 1
      sckw-modules/sckw-message/src/main/java/com/sckw/message/dubbo/SmsInfoServiceImpl.java
  14. 1 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/dubbo/TradeOrderInfoServiceImpl.java
  15. 5 5
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  16. 1 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTransportDemandService.java
  17. 1 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwpWantBuyService.java
  18. 2 2
      sckw-modules/sckw-order/src/main/resources/bootstrap-dev.yml
  19. 15 3
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpSettlementTradeController.java
  20. 2 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/LedgerShipperDto.java
  21. 10 8
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/SettlementLogisticsDto.java
  22. 10 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/SettlementPurchaseDto.java
  23. 11 59
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/SettlementSellDto.java
  24. 21 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/SettlementTradeDto.java
  25. 18 0
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/req/SettlementTradeReq.java
  26. 2 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/res/SettlementLogisticsVo.java
  27. 37 10
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java
  28. 2 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java
  29. 10 10
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementLogisticsService.java
  30. 2 2
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementOfflineService.java
  31. 6 1
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementTradeService.java
  32. 3 3
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementWalletService.java
  33. 1 1
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/dubbo/PayCenterServiceImpl.java
  34. 2 11
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/utils/CommonValidator.java
  35. 5 5
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementLogisticsMapper.xml
  36. 82 7
      sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementTradeMapper.xml
  37. 7 1
      sckw-modules/sckw-product/src/main/java/com/sckw/product/dubbo/GoodsInfoServiceImpl.java
  38. 18 3
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  39. 1 1
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java
  40. 46 31
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java
  41. 44 36
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java
  42. 5 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarWaybillVO.java
  43. 4 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/DriverListVo.java
  44. 8 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillBoardListVO.java
  45. 5 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDriverVo.java
  46. 7 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderVO.java
  47. 240 34
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  48. 15 5
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  49. 1 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

+ 9 - 0
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/dubbo/GoodsInfoService.java

@@ -51,4 +51,13 @@ public interface GoodsInfoService {
      * @return: com.sckw.core.web.response.HttpResult
      */
     HttpResult updateGoodsAmount(Long id, BigDecimal amount);
+
+    /**
+     * @desc: 是否有关联客服经理
+     * @author: yzc
+     * @date: 2023-08-15 10:06
+     * @Param userId:  用户id
+     * @return: java.lang.Boolean
+     */
+    Boolean associateManager(Long userId);
 }

+ 1 - 1
sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/ExcelExportController.java

@@ -47,7 +47,7 @@ public class ExcelExportController {
     @Autowired
     ExcelExportService excelExportService;
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     FileApiDubboService fileApiDubboService;
 
     @Autowired

+ 1 - 1
sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/FileApiController.java

@@ -31,7 +31,7 @@
 //    @Autowired
 //    private FileApiFeignService fileApiFeignService;
 //
-//    @DubboReference(version = "2.0.0", group = "design", check = false)
+//    @DubboReference(version = "1.0.0", group = "design", check = false)
 //    private FileApiDubboService fileApiDubboService;
 //
 //    @Autowired

+ 2 - 2
sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/MessageApiController.java

@@ -20,10 +20,10 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping(value = "/messageApi")
 @RequiredArgsConstructor
 public class MessageApiController {
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private SmsInfoService smsInfoService;
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private TradeOrderInfoService tradeOrderInfoService;
 
     @GetMapping("/getVerifyCode")

+ 1 - 1
sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/TestController.java

@@ -18,7 +18,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/test")
 public class TestController {
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private PayCenterDubboService payCenterDubboService;
 
     @GetMapping("/detail")

+ 9 - 4
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java

@@ -1,6 +1,5 @@
 package com.sckw.fleet.controller;
 
-import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -18,8 +17,14 @@ import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.easyexcel.RequestHolder;
 import com.sckw.excel.utils.ExcelUtil;
-import com.sckw.fleet.model.*;
-import com.sckw.fleet.model.dto.*;
+import com.sckw.fleet.model.KwfFleet;
+import com.sckw.fleet.model.KwfTransportLicense;
+import com.sckw.fleet.model.KwfTruck;
+import com.sckw.fleet.model.KwfTruckLicense;
+import com.sckw.fleet.model.dto.GpsByTruckNoDto;
+import com.sckw.fleet.model.dto.KwfTransportLicenseDto;
+import com.sckw.fleet.model.dto.KwfTruckDto;
+import com.sckw.fleet.model.dto.KwfTruckLicenseDto;
 import com.sckw.fleet.model.vo.KwfDriverVo;
 import com.sckw.fleet.model.vo.KwfTruckVo;
 import com.sckw.fleet.service.KwfTruckService;
@@ -49,7 +54,7 @@ public class KwfTruckController {
 
     @Autowired
     KwfTruckService truckService;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
     /**

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java

@@ -51,7 +51,7 @@ public class KwfDriverService {
     KwfDriverQualificationMapper KwfDriverQualificationDao;
     @Autowired
     KwfFleetDriverMapper fleetDriverDao;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
     /**

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfFleetService.java

@@ -34,7 +34,7 @@ public class KwfFleetService {
 
     @Autowired
     KwfFleetMapper fleetDao;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
     /**

+ 3 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckReportService.java

@@ -53,7 +53,7 @@ public class KwfTruckReportService {
     KwfDriverService driverService;
     @Autowired
     KwfTruckService truckService;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
     /**
@@ -503,8 +503,8 @@ public class KwfTruckReportService {
         }
         //字符截取-英文逗号/中文逗号
         String[] strArray = str.split(Global.COMMA1);
-        strArray = (strArray == null || strArray.length == 0) ? str.split(Global.COMMA) : strArray;
-        if (strArray == null || strArray.length == 0 || strArray.length != 5 ) {
+        strArray = (strArray == null || strArray.length <= 1) ? str.split(Global.COMMA) : strArray;
+        if (strArray == null || strArray.length <= 1 || strArray.length != 5 ) {
             return null;
         }
 

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java

@@ -46,7 +46,7 @@ public class KwfTruckService {
     KwfTransportLicenseMapper transportLicenseDao;
     @Autowired
     KwfFleetTruckMapper fleetTruckDao;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
     /**

+ 2 - 2
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml

@@ -102,7 +102,7 @@
             and DATE( dr.create_time ) <![CDATA[ <= ]]> #{endTime,jdbcType=TIMESTAMP}
         </if>
         <choose>
-            <when test="ids != null">
+            <when test="ids != null and ids != '' ">
                 and dr.id in
                 <foreach collection="ids" item="id" open="(" close=")" separator=",">
                     #{id,jdbcType=BIGINT}
@@ -152,7 +152,7 @@
             )
         </if>
         <choose>
-            <when test="ids != null">
+            <when test="ids != null and ids != '' ">
                 and dr.id in
                 <foreach collection="ids" item="id" open="(" close=")" separator=",">
                     #{id,jdbcType=BIGINT}

+ 1 - 1
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckMapper.xml

@@ -157,7 +157,7 @@
             and DATE( tr.create_time ) <![CDATA[ <= ]]> #{endTime,jdbcType=TIMESTAMP}
         </if>
         <choose>
-            <when test="truckNos != null">
+            <when test="truckNos != null and truckNos != ''">
                 and tr.truck_no in
                 <foreach collection="truckNos" item="truckNo" open="(" close=")" separator=",">
                     #{truckNo,jdbcType=VARCHAR}

+ 1 - 1
sckw-modules/sckw-message/src/main/java/com/sckw/message/dubbo/SmsInfoServiceImpl.java

@@ -10,7 +10,7 @@ import org.apache.dubbo.config.annotation.DubboService;
  * @author: yzc
  * @date: 2023-06-13 14:10
  */
-@DubboService(group = "design", version = "2.0.0")
+@DubboService(group = "design", version = "1.0.0")
 public class SmsInfoServiceImpl implements SmsInfoService {
     @Override
     public String getVerifyCode(String type, String phone) {

+ 1 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/dubbo/TradeOrderInfoServiceImpl.java

@@ -36,7 +36,7 @@ import java.util.Objects;
  * @author: yzc
  * @date: 2023-07-18 18:26
  */
-@DubboService(group = "design", version = "2.0.0")
+@DubboService(group = "design", version = "1.0.0")
 @Slf4j
 public class TradeOrderInfoServiceImpl implements TradeOrderInfoService {
 

+ 5 - 5
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -58,19 +58,19 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public class KwoTradeOrderService {
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private GoodsInfoService goodsInfoService;
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteContractService remoteContractService;
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private PayCenterDubboService payCenterDubboService;
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private TransportDubboService transportDubboService;
 
     private final KwoTradeOrderMapper kwoTradeOrderMapper;

+ 1 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTransportDemandService.java

@@ -48,7 +48,7 @@ public class KwoTransportDemandService {
 
     private final KwoTransportDemandMapper kwoTransportDemandMapper;
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
 

+ 1 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwpWantBuyService.java

@@ -44,7 +44,7 @@ import java.util.stream.Collectors;
 @Slf4j
 @RequiredArgsConstructor
 public class KwpWantBuyService {
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
     private final KwpWantBuyMapper kwpWantBuyMapper;
     private final KwpWantBuyTradingMapper kwpWantBuyTradingMapper;

+ 2 - 2
sckw-modules/sckw-order/src/main/resources/bootstrap-dev.yml

@@ -5,7 +5,7 @@ spring:
         # 服务注册地址
         server-addr: 10.10.10.230:8848
         # 命名空间
-        namespace: sckw_zk
+        namespace: sckw-service-platform-dev
         # 共享配置
         group: sckw-service-platform
       config:
@@ -14,7 +14,7 @@ spring:
         # 配置文件格式
         file-extension: yaml
         # 命名空间
-        namespace: sckw_zk
+        namespace: sckw-service-platform-dev
         # 共享配置
         group: sckw-service-platform
         #可以读多个配置文件  需要在同一个命名空间下面可以是不同的组

+ 15 - 3
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpSettlementTradeController.java

@@ -1,6 +1,7 @@
 package com.sckw.payment.controller;
 
 import com.sckw.core.model.page.PageRes;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.payment.model.constant.TradeUnitType;
@@ -41,6 +42,7 @@ public class KwpSettlementTradeController {
     @PostMapping(name = "收款-销售结算单列表", path = "pageSellList")
     public HttpResult pageListCollection(@RequestBody @Valid SettlementTradeReq settlementReq) {
         settlementReq.setUnitType(TradeUnitType.PURCHASE);
+        settlementReq.setUnitTypeTwo(TradeUnitType.SELL);
         settlementReq.check();
         return HttpResult.ok(kwpSettlementTradeService.pageListCollection(settlementReq));
     }
@@ -54,6 +56,8 @@ public class KwpSettlementTradeController {
     @PostMapping(name = "收款-表头统计数量", path = "getSellCount")
     public HttpResult getCount(@RequestBody @Valid SettlementTradeReq settlementReq) {
         settlementReq.setUnitType(TradeUnitType.PURCHASE);
+        settlementReq.setUnitTypeTwo(TradeUnitType.SELL);
+        settlementReq.setEntId(LoginUserHolder.getEntId());
         settlementReq.check();
         return HttpResult.ok(kwpSettlementTradeService.getCount(settlementReq));
     }
@@ -68,6 +72,8 @@ public class KwpSettlementTradeController {
     public HttpResult getSellSum(@RequestBody @Valid SettlementTradeReq settlementReq) {
         settlementReq.check();
         settlementReq.setUnitType(TradeUnitType.PURCHASE);
+        settlementReq.setUnitTypeTwo(TradeUnitType.SELL);
+        settlementReq.setEntId(LoginUserHolder.getEntId());
         return HttpResult.ok(kwpSettlementTradeService.getCountListCollection(settlementReq));
     }
 
@@ -76,17 +82,17 @@ public class KwpSettlementTradeController {
         settlementReq.check();
         List<ISettlement> list;
         settlementReq.setUnitType(TradeUnitType.PURCHASE);
+        settlementReq.setUnitTypeTwo(TradeUnitType.SELL);
         if (CollectionUtils.isEmpty(settlementReq.getIdList())) {
             PageRes<ISettlement> pageResult = kwpSettlementTradeService.pageListCollection(settlementReq);
             list = pageResult.getList();
         } else {
-            list = kwpSettlementTradeService.selectList(settlementReq.getIdList(),TradeUnitType.PURCHASE);
+            list = kwpSettlementTradeService.selectList(settlementReq.getIdList(), TradeUnitType.PURCHASE);
         }
         return this.export(response, list);
     }
 
 
-
     //   ========= 付款 采购 =========
 
     /**
@@ -99,6 +105,7 @@ public class KwpSettlementTradeController {
     public HttpResult pageListPayment(@RequestBody @Valid SettlementTradeReq settlementReq) {
         settlementReq.check();
         settlementReq.setUnitType(TradeUnitType.SELL);
+        settlementReq.setUnitTypeTwo(TradeUnitType.PURCHASE);
         return HttpResult.ok(kwpSettlementTradeService.pageListCollection(settlementReq));
     }
 
@@ -112,6 +119,8 @@ public class KwpSettlementTradeController {
     public HttpResult getPurchaseCount(@RequestBody @Valid SettlementTradeReq settlementReq) {
         settlementReq.check();
         settlementReq.setUnitType(TradeUnitType.SELL);
+        settlementReq.setUnitTypeTwo(TradeUnitType.PURCHASE);
+        settlementReq.setEntId(LoginUserHolder.getEntId());
         return HttpResult.ok(kwpSettlementTradeService.getCount(settlementReq));
     }
 
@@ -125,6 +134,8 @@ public class KwpSettlementTradeController {
     public HttpResult getCountListPayment(@RequestBody @Valid SettlementTradeReq settlementReq) {
         settlementReq.check();
         settlementReq.setUnitType(TradeUnitType.SELL);
+        settlementReq.setUnitTypeTwo(TradeUnitType.PURCHASE);
+        settlementReq.setEntId(LoginUserHolder.getEntId());
         return HttpResult.ok(kwpSettlementTradeService.getCountListCollection(settlementReq));
     }
 
@@ -133,11 +144,12 @@ public class KwpSettlementTradeController {
         settlementReq.check();
         List<ISettlement> list;
         settlementReq.setUnitType(TradeUnitType.SELL);
+        settlementReq.setUnitTypeTwo(TradeUnitType.PURCHASE);
         if (CollectionUtils.isEmpty(settlementReq.getIdList())) {
             PageRes<ISettlement> pageResult = kwpSettlementTradeService.pageListCollection(settlementReq);
             list = pageResult.getList();
         } else {
-            list = kwpSettlementTradeService.selectList(settlementReq.getIdList(),TradeUnitType.SELL);
+            list = kwpSettlementTradeService.selectList(settlementReq.getIdList(), TradeUnitType.SELL);
         }
         return this.export(response, list);
     }

+ 2 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/LedgerShipperDto.java

@@ -1,6 +1,7 @@
 package com.sckw.payment.model.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -23,6 +24,7 @@ public class LedgerShipperDto implements ILedger {
     /**
      * 物流对账单编号
      */
+    @JsonProperty("lLedgerNo")
     private String lLedgerNo;
 
     /**

+ 10 - 8
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/SettlementLogisticsDto.java

@@ -1,7 +1,7 @@
 package com.sckw.payment.model.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.sckw.payment.model.KwpSettlementLogistics;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
@@ -32,6 +32,7 @@ public class SettlementLogisticsDto {
     /**
      * 物流订单对账id
      */
+    @JsonProperty("lLedgerId")
     private Long lLedgerId;
 
     /**
@@ -91,7 +92,7 @@ public class SettlementLogisticsDto {
      */
     private Integer status;
 
-    private String statusText;
+    private String statusLabel;
 
     /**
      * 创建人
@@ -101,7 +102,7 @@ public class SettlementLogisticsDto {
     /**
      * 创建人名称
      */
-    private String createByText;
+    private String createByLabel;
 
     /**
      * 创建时间
@@ -118,7 +119,7 @@ public class SettlementLogisticsDto {
     /**
      * 更新人名称
      */
-    private String updateByText;
+    private String updateByLabel;
 
     /**
      * 更新时间
@@ -143,11 +144,12 @@ public class SettlementLogisticsDto {
     /**
      * 交易方式
      */
-    private String ledgerTrading;
+    private String trading;
 
     /**
      * 对账单编号
      */
+    @JsonProperty("lLedgerNo")
     private String lLedgerNo;
 
     /**
@@ -158,18 +160,18 @@ public class SettlementLogisticsDto {
     /**
      * 客户名称
      */
-    private String customerName;
+    private String firmName;
 
 
     /**
      * 实际应收还款
      */
-    private BigDecimal ledgerSettlePrice;
+    private BigDecimal settlePrice;
 
     /**
      * 剩余待还款
      */
-    private BigDecimal residuePrice;
+    private BigDecimal waitPrice;
 
     /**
      * 附件

+ 10 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/SettlementPurchaseDto.java

@@ -1,6 +1,7 @@
 package com.sckw.payment.model.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -25,6 +26,11 @@ public class SettlementPurchaseDto implements ISettlement {
      * 结算单编号
      */
     private String stOrderNo;
+    /**
+     * 对账单编号
+     */
+    @JsonProperty("tLedgerNo")
+    private String tLedgerNo;
 
     /**
      * 结算单名称
@@ -77,4 +83,8 @@ public class SettlementPurchaseDto implements ISettlement {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
+    private String firmName;
+    private Long updateBy;
+    private String updateByLabel;
+
 }

+ 11 - 59
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/SettlementSellDto.java

@@ -1,8 +1,9 @@
 package com.sckw.payment.model.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Getter;
 import lombok.Setter;
-import lombok.ToString;
 
 import java.util.Date;
 
@@ -12,8 +13,8 @@ import java.util.Date;
  * @author Aick Spt
  * @date 2023-07-20 12:26
  */
+@Getter
 @Setter
-@ToString
 public class SettlementSellDto implements ISettlement {
 
     /**
@@ -25,6 +26,11 @@ public class SettlementSellDto implements ISettlement {
      * 结算单编号
      */
     private String stOrderNo;
+    /**
+     * 对账单编号
+     */
+    @JsonProperty("tLedgerNo")
+    private String tLedgerNo;
 
     /**
      * 结算单名称
@@ -77,62 +83,8 @@ public class SettlementSellDto implements ISettlement {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
-    public Long getId() {
-        return id;
-    }
-
-    public String getStOrderNo() {
-        return stOrderNo;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public String getTotalPrice() {
-        return totalPrice;
-    }
-
-    public String getActualPrice() {
-        return actualPrice;
-    }
-
-    public String getWaitPrice() {
-        return waitPrice;
-    }
-
-    public Date getReceiptTime() {
-        return receiptTime;
-    }
-
-    public String getAuditUser() {
-        return auditUser;
-    }
-
-    public String getAuditPhone() {
-        return auditPhone;
-    }
-
-
-    public String getTradingLabel() {
-        return tradingLabel;
-    }
-
-    @Override
-    public String getTrading() {
-        return trading;
-    }
-
-    @Override
-    public Integer getStatus() {
-        return status;
-    }
-
-    public String getStatusLabel() {
-        return statusLabel;
-    }
+    private String firmName;
+    private Long updateBy;
+    private String updateByLabel;
 
-    public Date getCreateTime() {
-        return createTime;
-    }
 }

+ 21 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/SettlementTradeDto.java

@@ -1,6 +1,7 @@
 package com.sckw.payment.model.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -36,6 +37,8 @@ public class SettlementTradeDto implements ISettlement {
      * 结算单编号
      */
     private String stOrderNo;
+    @JsonProperty("tLedgerNo")
+    private String tLedgerNo;
 
     /**
      * 结算单名称
@@ -94,6 +97,8 @@ public class SettlementTradeDto implements ISettlement {
      */
     private Integer status;
     private String statusLabel;
+    //客户企业名称
+    private String firmName;
 
     /**
      * 创建人
@@ -122,6 +127,22 @@ public class SettlementTradeDto implements ISettlement {
      */
     private Integer delFlag;
 
+    public String gettLedgerNo() {
+        return tLedgerNo;
+    }
+
+    public void settLedgerNo(String tLedgerNo) {
+        this.tLedgerNo = tLedgerNo;
+    }
+
+    public String getFirmName() {
+        return firmName;
+    }
+
+    public void setFirmName(String firmName) {
+        this.firmName = firmName;
+    }
+
     public Long getLedgerId() {
         return ledgerId;
     }

+ 18 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/req/SettlementTradeReq.java

@@ -26,7 +26,25 @@ public class SettlementTradeReq extends BasePara implements TimeBase {
      * @see SettlementEnum
      */
     private Integer status;
+    private String trading;
     private Integer unitType;
+    private Integer unitTypeTwo;
+
+    public String getTrading() {
+        return trading;
+    }
+
+    public void setTrading(String trading) {
+        this.trading = trading;
+    }
+
+    public Integer getUnitTypeTwo() {
+        return unitTypeTwo;
+    }
+
+    public void setUnitTypeTwo(Integer unitTypeTwo) {
+        this.unitTypeTwo = unitTypeTwo;
+    }
 
     private String ids;
     private Long entId;

+ 2 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/res/SettlementLogisticsVo.java

@@ -128,7 +128,7 @@ public class SettlementLogisticsVo {
      * 交易方式
      */
     @ExcelProperty(value = "交易方式")
-    private Integer ledgerTrading;
+    private String trading;
 
     /**
      * 对账单编号
@@ -141,7 +141,7 @@ public class SettlementLogisticsVo {
      * 客户名称
      */
     @ExcelProperty(value = "客户名称")
-    private String customerName;
+    private String firmName;
 
 
     /**

+ 37 - 10
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerLogisticsService.java

@@ -13,6 +13,7 @@ import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.OrderGenerateUtils;
 import com.sckw.core.utils.StringTimeUtil;
 import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.core.web.response.HttpResult;
 import com.sckw.payment.dao.KwpLedgerLogisticsMapper;
 import com.sckw.payment.model.*;
 import com.sckw.payment.model.constant.LedgerEnum;
@@ -29,8 +30,9 @@ import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.transport.api.dubbo.TransportDubboService;
+import com.sckw.transport.api.model.dto.AccountCheckingBindDTO;
 import com.sckw.transport.api.model.dto.LogisticsOrderDTO;
-import com.sckw.transport.api.model.vo.KwtLogisticsOrderVO;
+import io.seata.spring.annotation.GlobalTransactional;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -61,9 +63,9 @@ public class KwpLedgerLogisticsService extends AbsLedger {
     private KwpLedgerLogisticsOrderService logisticsOrderService;
     @Resource
     private KwpLedgerLogisticsMapper logisticsMapper;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private TransportDubboService transportDubboService;
 
     private void changeDict(List<ILedger> list) {
@@ -134,7 +136,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      * @param logisticsReq
      * @return
      */
-    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional(name = "default_tx_group", rollbackFor = Exception.class)
     public String sendLedger(LogisticsSendReq logisticsReq) {
         String id = logisticsReq.getId();
         if (StringUtils.isBlank(id)) {
@@ -159,7 +161,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      *
      * @param id 物流对账单id
      */
-    private void removeDraft(Long id) {
+    public void removeDraft(Long id) {
         //删除 kwp_ledger_logistics_order
         logisticsOrderService.remove(id);
         //删除 kwp_ledger_logistics_track
@@ -174,7 +176,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      * @param logisticsSendReq 物流对账单新增参数
      * @return
      */
-    private Long saveDraft(LogisticsSendReq logisticsSendReq) {
+    public Long saveDraft(LogisticsSendReq logisticsSendReq) {
         KwpLedgerLogistics kwpLedgerLogistics = new KwpLedgerLogistics();
         kwpLedgerLogistics.setId(Objects.isNull(logisticsSendReq.getIdLong()) ? new IdWorker(1).nextId() : logisticsSendReq.getIdLong());
         kwpLedgerLogistics.setEntId(LoginUserHolder.getEntId());
@@ -222,16 +224,27 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         List<Long> ids = logisticsSendReq.getIdList();
         //验当前订单是否已存在绑定的对账单
         logisticsOrderService.check(ids);
-        List<KwtLogisticsOrderVO> acceptCarriageOrderDetail = transportDubboService.getAcceptCarriageOrderDetail(logisticsSendReq.getIdsList());
+        List<LogisticsOrderDTO> acceptCarriageOrderDetail = transportDubboService.getAcceptCarriageOrderList(logisticsSendReq.getIdsList());
         if (CollectionUtils.isEmpty(acceptCarriageOrderDetail) || acceptCarriageOrderDetail.size() < ids.size()) {
             throw new BusinessException("未找到物流订单!");
         }
+        //更新物流订单状态为已绑定
+        AccountCheckingBindDTO accountCheckingBindDTO = new AccountCheckingBindDTO();
+        accountCheckingBindDTO.setLOrderList(ids);
+        accountCheckingBindDTO.setStatus("1");
+        accountCheckingBindDTO.setUpdateBy(LoginUserHolder.getUserId());
+        accountCheckingBindDTO.setUpdateName(LoginUserHolder.getUserName());
+        HttpResult httpResult = transportDubboService.logisticsOrderAccountCheckingBind(accountCheckingBindDTO);
+        if (httpResult.getCode() != 60200) {
+            throw new BusinessException(httpResult.getMsg());
+        }
+
         List<KwpLedgerLogisticsOrder> collect = acceptCarriageOrderDetail.stream().map(a -> {
             KwpLedgerLogisticsOrder logisticsOrder = new KwpLedgerLogisticsOrder();
             logisticsOrder.setId(new IdWorker(NumberConstant.ONE).nextId());
             logisticsOrder.setLLedgerId(kwpLedgerLogistics.getId());
-            logisticsOrder.setLOrderId(a.getId());
-            logisticsOrder.setLOrderNo(a.getLOrderNo());
+            logisticsOrder.setLOrderId(Long.parseLong(a.getLOrderId()));
+            logisticsOrder.setLOrderNo(a.getLOrderNO());
             logisticsOrder.setRemark(Global.EMPTY_STRING);
             logisticsOrder.setStatus(NumberConstant.ZERO);
             logisticsOrder.setCreateBy(LoginUserHolder.getUserId());
@@ -307,7 +320,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      * @param logisticsReq 物流对账单保存的参数
      * @return
      */
-    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional(name = "default_tx_group", rollbackFor = Exception.class)
     public String sendLedgerDraft(LogisticsSendReq logisticsReq) {
         logisticsReq.setGenerateTime(null);
         logisticsReq.setStatus(LedgerEnum.SAVE.getStatus());
@@ -322,6 +335,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      * @param id 物流对账单id
      * @return
      */
+    @GlobalTransactional(rollbackFor = Exception.class)
     public String remove(Long id) {
         KwpLedgerLogistics kwpLedgerLogistics = logisticsMapper.selectById(id);
         if (Objects.isNull(kwpLedgerLogistics)) {
@@ -331,6 +345,17 @@ public class KwpLedgerLogisticsService extends AbsLedger {
         kwpLedgerLogistics.setDelFlag(Global.DELETED);
         logisticsMapper.updateById(kwpLedgerLogistics);
         logisticsTrackService.saveTrack(id, Global.EMPTY_STRING, LedgerTrackEnum.DELETE);
+        List<KwpLedgerLogisticsOrder> kwpLedgerLogisticsOrders = logisticsOrderService.queryList(id);
+        //更新物流订单状态为已解绑
+        AccountCheckingBindDTO accountCheckingBindDTO = new AccountCheckingBindDTO();
+        accountCheckingBindDTO.setLOrderList(kwpLedgerLogisticsOrders.stream().map(KwpLedgerLogisticsOrder::getLOrderId).collect(Collectors.toList()));
+        accountCheckingBindDTO.setStatus("0");
+        accountCheckingBindDTO.setUpdateBy(LoginUserHolder.getUserId());
+        accountCheckingBindDTO.setUpdateName(LoginUserHolder.getUserName());
+        HttpResult httpResult = transportDubboService.logisticsOrderAccountCheckingBind(accountCheckingBindDTO);
+        if (httpResult.getCode() != 60200) {
+            throw new BusinessException(httpResult.getMsg());
+        }
         return "删除成功";
     }
 
@@ -340,6 +365,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      * @param id 物流对账单id
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public String backOrder(Long id) {
         KwpLedgerLogistics kwpLedgerLogistics = logisticsMapper.selectById(id);
         if (Objects.isNull(kwpLedgerLogistics)) {
@@ -374,6 +400,7 @@ public class KwpLedgerLogisticsService extends AbsLedger {
      * @param ledgerReq 驳回参数
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public String doBack(LedgerReq ledgerReq) {
         KwpLedgerLogistics kwpLedgerLogistics = logisticsMapper.selectById(ledgerReq.getIdLong());
         if (Objects.isNull(kwpLedgerLogistics)) {

+ 2 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpLedgerTradeService.java

@@ -58,9 +58,9 @@ public class KwpLedgerTradeService extends AbsLedger {
     private KwpSettlementTradeService settlementTradeService;
     @Resource
     private KwpLedgerTradeUnitService tradeUnitService;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private TradeOrderInfoService tradeOrderInfoService;
 
     /**

+ 10 - 10
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementLogisticsService.java

@@ -35,7 +35,7 @@ import java.util.*;
 @Service
 @Slf4j
 public class KwpSettlementLogisticsService {
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
     private final KwpSettlementLogisticsMapper settlementLogisticsMapper;
 
@@ -245,18 +245,18 @@ public class KwpSettlementLogisticsService {
      * @date 2023-08-07 10:14
      */
     private void setDetailDesc(SettlementLogisticsDto settlementLogisticsDto) {
-        settlementLogisticsDto.setStatusText(SettlementEnum.getStatusDesc(settlementLogisticsDto.getStatus()));
-        if (settlementLogisticsDto.getLedgerSettlePrice() != null) {
+        settlementLogisticsDto.setStatusLabel(SettlementEnum.getStatusDesc(settlementLogisticsDto.getStatus()));
+        if (settlementLogisticsDto.getSettlePrice() != null) {
             if (settlementLogisticsDto.getActualPrice() != null) {
-                settlementLogisticsDto.setResiduePrice(settlementLogisticsDto.getLedgerSettlePrice().subtract(settlementLogisticsDto.getActualPrice()));
+                settlementLogisticsDto.setWaitPrice(settlementLogisticsDto.getSettlePrice().subtract(settlementLogisticsDto.getActualPrice()));
             } else {
-                settlementLogisticsDto.setResiduePrice(settlementLogisticsDto.getLedgerSettlePrice());
+                settlementLogisticsDto.setWaitPrice(settlementLogisticsDto.getSettlePrice());
             }
         } else {
-            settlementLogisticsDto.setResiduePrice(new BigDecimal(0));
+            settlementLogisticsDto.setWaitPrice(new BigDecimal(0));
         }
-        settlementLogisticsDto.setCreateByText("创建人名称");//"创建人名称"
-        settlementLogisticsDto.setUpdateByText("更新人名称");//"更新人名称"
+        settlementLogisticsDto.setCreateByLabel("创建人名称");//"创建人名称"
+        settlementLogisticsDto.setUpdateByLabel("更新人名称");//"更新人名称"
 
         Map<Long, UserCacheResDto> map = new HashMap<>();
         Long createBy = settlementLogisticsDto.getCreateBy();
@@ -269,7 +269,7 @@ public class KwpSettlementLogisticsService {
         }
         if (Objects.nonNull(userCacheResDto)) {
             //写入对应数据
-            settlementLogisticsDto.setCreateByText(userCacheResDto.getName());
+            settlementLogisticsDto.setCreateByLabel(userCacheResDto.getName());
         }
         userCacheResDto = map.get(updateBy);
         if (Objects.isNull(userCacheResDto)) {
@@ -279,7 +279,7 @@ public class KwpSettlementLogisticsService {
         }
         if (Objects.nonNull(userCacheResDto)) {
             //写入对应数据
-            settlementLogisticsDto.setUpdateByText(userCacheResDto.getName());
+            settlementLogisticsDto.setUpdateByLabel(userCacheResDto.getName());
         }
     }
 

+ 2 - 2
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementOfflineService.java

@@ -55,9 +55,9 @@ public class KwpSettlementOfflineService {
     private final KwpSettlementTradeService settlementTradeService;
     private final KwpLedgerTradeOrderService tradeOrderService;
     private final KwpSettlementTradeTrackService settlementTradeTrackService;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private TradeOrderInfoService tradeOrderInfoService;
     private final RedisLockUtil redisLockUtil;
     private final KwpSettlementLogisticsService kwpSettlementLogisticsService;

+ 6 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementTradeService.java

@@ -19,6 +19,7 @@ import com.sckw.payment.model.vo.res.SettlementLogisticsStatusCountVo;
 import com.sckw.payment.model.vo.res.SettlementSumVo;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import jakarta.annotation.Resource;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.stereotype.Service;
@@ -36,7 +37,7 @@ import java.util.Objects;
 public class KwpSettlementTradeService {
     @Resource
     private KwpSettlementTradeMapper settlementTradeMapper;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
     /**
@@ -109,6 +110,8 @@ public class KwpSettlementTradeService {
                     settlementSellDto.setActualPrice(settlementSellDto.changePrice(settlementTradeDto.getActualPrice()));
                     settlementSellDto.setTotalPrice(settlementSellDto.changePrice(settlementTradeDto.getTotalPrice()));
                     settlementSellDto.setWaitPrice(settlementSellDto.changePrice(settlementTradeDto.getWaitPrice()));
+                    UserCacheResDto userCacheResDto = remoteSystemService.queryUserCacheById(settlementTradeDto.getUpdateBy());
+                    settlementSellDto.setUpdateByLabel(Objects.nonNull(userCacheResDto)?userCacheResDto.getName():"");
                     res.add(settlementSellDto);
                 }
                 changeDict(res);
@@ -124,6 +127,8 @@ public class KwpSettlementTradeService {
                     settlementSellDto.setActualPrice(settlementSellDto.changePrice(settlementTradeDto.getActualPrice()));
                     settlementSellDto.setTotalPrice(settlementSellDto.changePrice(settlementTradeDto.getTotalPrice()));
                     settlementSellDto.setWaitPrice(settlementSellDto.changePrice(settlementTradeDto.getWaitPrice()));
+                    UserCacheResDto userCacheResDto = remoteSystemService.queryUserCacheById(settlementTradeDto.getUpdateBy());
+                    settlementSellDto.setUpdateByLabel(Objects.nonNull(userCacheResDto)?userCacheResDto.getName():"");
                     res.add(settlementSellDto);
                 }
                 changeDict(res);

+ 3 - 3
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/KwpSettlementWalletService.java

@@ -65,9 +65,9 @@ public class KwpSettlementWalletService {
     private final KwpWalletRelationService walletRelationService;
     private final RedisLockUtil redisLockUtil;
     private final KwpSettlementTradeTrackService settlementTradeTrackService;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private TradeOrderInfoService tradeOrderInfoService;
     private final KwpSettlementLogisticsTrackMapper kwpSettlementLogisticsTrackMapper;
 
@@ -207,7 +207,7 @@ public class KwpSettlementWalletService {
             kwpSettlementWallet.setEntId(settlementLogisticsDto.getEntId());
             kwpSettlementWallet.setSettlementId(settlementLogisticsDto.getId());
             kwpSettlementWallet.setOrderType(SettlementOrderTypeEnum.LOGISTICS.getStatus());
-            kwpSettlementWallet.setChannel(WalletChannelEnum.getValue(settlementLogisticsDto.getLedgerTrading()));//先用数字默认定义为1
+            kwpSettlementWallet.setChannel(WalletChannelEnum.getValue(settlementLogisticsDto.getTrading()));//先用数字默认定义为1
             kwpSettlementWallet.setPayTime(LocalDateTime.now());
             kwpSettlementWallet.setPayPrice(price);
             kwpSettlementWallet.setTopayPrice(remainingReceivables);

+ 1 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/dubbo/PayCenterServiceImpl.java

@@ -17,7 +17,7 @@ import org.springframework.stereotype.Service;
 import java.util.List;
 
 @Service
-@DubboService(group = "design", version = "2.0.0")
+@DubboService(group = "design", version = "1.0.0")
 @Slf4j
 public class PayCenterServiceImpl implements PayCenterDubboService {
     @Resource

+ 2 - 11
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/utils/CommonValidator.java

@@ -1,21 +1,12 @@
 package com.sckw.payment.utils;
 
 import com.sckw.core.exception.BusinessException;
-import com.sckw.payment.model.constant.SettlementEnum;
-import com.sckw.payment.model.dto.SettlementLogisticsDto;
 import com.sckw.system.api.RemoteSystemService;
-import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.dubbo.config.annotation.DubboReference;
-import org.apache.poi.ss.formula.functions.T;
 
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.regex.Pattern;
 import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author Aick Spt
@@ -25,7 +16,7 @@ public class CommonValidator {
 
     // 时间格式的正则表达式
     private static final String TIME_PATTERN = "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}";
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
     /**

+ 5 - 5
sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementLogisticsMapper.xml

@@ -73,12 +73,12 @@
     <sql id="settlementLogisticsSelect">
         select l.name         as ledgerName,
                l.l_ledger_no  as lLedgerNo,
-               l.trading      as ledgerTrading,
+               l.trading      as trading,
                l.settle_price as ledgerSettlePrice,
                l.url          as attachmentUrl,
 
                lu.unit_type   as unitType,
-               lu.firm_name   as CustomerName,
+               lu.firm_name   as firmName,
 
         <include refid="Join_Column_List"/>
         from kwp_settlement_logistics s
@@ -170,12 +170,12 @@
             resultType="com.sckw.payment.model.dto.SettlementLogisticsDto">
         select l.name         as ledgerName,
                l.l_ledger_no  as lLedgerNo,
-               l.trading      as ledgerTrading,
-               l.settle_price as ledgerSettlePrice,
+               l.trading      as trading,
+               l.settle_price as settlePrice,
                l.url          as attachmentUrl,
 
                lu.unit_type   as unitType,
-               lu.firm_name   as CustomerName,
+               lu.firm_name   as firmName,
         <include refid="Join_Column_List"/>
         from kwp_settlement_logistics s
                  left join kwp_ledger_logistics l on s.l_ledger_id = l.id

+ 82 - 7
sckw-modules/sckw-payment/src/main/resources/mapper/KwpSettlementTradeMapper.xml

@@ -71,6 +71,7 @@
         select kst.id,
                kst.status,
                kst.st_order_no,
+               klt.t_ledger_no                                    tLedgerNo,
                kst.create_time,
                kst.receipt_time,
                cast(kst.actual_price as char)                     actualPrice,
@@ -83,11 +84,37 @@
                kst.create_time,
                klt.name,
                klt.trading,
-               kltu.firm_name
+               kltu.firm_name                                     firmName,
+               kst.update_by
         from kwp_settlement_trade kst
                  inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
-                 inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
-        <include refid="query"/>
+                 inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
+                                                          kltu.unit_type = #{settlementReq.unitType,jdbcType=INTEGER}
+                 inner join kwp_ledger_trade_unit kltu2 on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
+                                                           kltu2.unit_type =
+                                                           #{settlementReq.unitTypeTwo,jdbcType=INTEGER}
+        <where>
+            kst.del_flag = 0
+              and kltu2.top_ent_id = #{settlementReq.entId,jdbcType=INTEGER}
+            <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
+                and (
+                            klt.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kltu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                    )
+            </if>
+            <if test="settlementReq.trading != null and settlementReq.trading != ''">
+                and klt.trading = #{settlementReq.trading,jdbcType=VARCHAR}
+            </if>
+            <if test="settlementReq.status != null">
+                and kst.status = #{settlementReq.status,jdbcType=INTEGER}
+            </if>
+            <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != '' and settlementReq.endCreateTime != null and settlementReq.endCreateTime != ''">
+                and kst.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="settlementReq.startReceiptTime != null and settlementReq.startReceiptTime != '' and settlementReq.endReceiptTime != null and settlementReq.endReceiptTime != ''">
+                and kst.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
+            </if>
+        </where>
         order by kst.create_time desc
     </select>
 
@@ -98,8 +125,32 @@
                IFNULL(sum(kst.total_price) - sum(kst.actual_price), 0) waitReceive
         from kwp_settlement_trade kst
                  inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
-                 inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
-        <include refid="query"/>
+                 inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
+                                                          kltu.unit_type = #{settlementReq.unitType,jdbcType=INTEGER}
+                 inner join kwp_ledger_trade_unit kltu2 on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
+                                                           kltu2.unit_type = #{settlementReq.unitTypeTwo,jdbcType=INTEGER}
+        <where>
+            kst.del_flag = 0
+              and kltu2.top_ent_id = #{settlementReq.entId,jdbcType=INTEGER}
+            <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
+                and (
+                            klt.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kltu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                    )
+            </if>
+            <if test="settlementReq.status != null">
+                and kst.status = #{settlementReq.status,jdbcType=INTEGER}
+            </if>
+            <if test="settlementReq.trading != null and settlementReq.trading != ''">
+                and klt.trading = #{settlementReq.trading,jdbcType=VARCHAR}
+            </if>
+            <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != '' and settlementReq.endCreateTime != null and settlementReq.endCreateTime != ''">
+                and kst.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="settlementReq.startReceiptTime != null and settlementReq.startReceiptTime != '' and settlementReq.endReceiptTime != null and settlementReq.endReceiptTime != ''">
+                and kst.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
+            </if>
+        </where>
     </select>
     <select id="countOrder" resultType="java.util.Map">
         select count(1)                           "0",
@@ -108,8 +159,32 @@
                count(if(kst.status = 1, 1, null)) "1"
         from kwp_settlement_trade kst
                  inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
-                 inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
-        <include refid="query"/>
+                 inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
+                                                          kltu.unit_type = #{settlementReq.unitType,jdbcType=INTEGER}
+                 inner join kwp_ledger_trade_unit kltu2 on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
+                                                           kltu2.unit_type = #{settlementReq.unitTypeTwo,jdbcType=INTEGER}
+        <where>
+            kst.del_flag = 0
+              and kltu2.top_ent_id = #{settlementReq.entId,jdbcType=INTEGER}
+            <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
+                and (
+                            klt.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                        or kltu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
+                    )
+            </if>
+            <if test="settlementReq.trading != null and settlementReq.trading != ''">
+                and klt.trading = #{settlementReq.trading,jdbcType=VARCHAR}
+            </if>
+            <if test="settlementReq.status != null">
+                and kst.status = #{settlementReq.status,jdbcType=INTEGER}
+            </if>
+            <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != '' and settlementReq.endCreateTime != null and settlementReq.endCreateTime != ''">
+                and kst.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="settlementReq.startReceiptTime != null and settlementReq.startReceiptTime != '' and settlementReq.endReceiptTime != null and settlementReq.endReceiptTime != ''">
+                and kst.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
+            </if>
+        </where>
     </select>
 
     <select id="selectByIds" resultType="com.sckw.payment.model.dto.SettlementTradeDto">

+ 7 - 1
sckw-modules/sckw-product/src/main/java/com/sckw/product/dubbo/GoodsInfoServiceImpl.java

@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
  * @author: yzc
  * @date: 2023-07-13 14:17
  */
-@DubboService(group = "design", version = "2.0.0")
+@DubboService(group = "design", version = "1.0.0")
 @Slf4j
 public class GoodsInfoServiceImpl implements GoodsInfoService {
 
@@ -78,4 +78,10 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
         }
         return HttpResult.ok();
     }
+
+    @Override
+    public Boolean associateManager(Long userId) {
+        Long count = kwpGoodsService.getCountByManager(userId);
+        return Objects.nonNull(count) && count > 0L;
+    }
 }

+ 18 - 3
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -57,13 +57,13 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public class KwpGoodsService {
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteSystemService remoteSystemService;
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private RemoteUserService remoteUserService;
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false)
     private PayCenterDubboService payCenterDubboService;
 
     private final KwpGoodsMapper kwpGoodsMapper;
@@ -921,4 +921,19 @@ public class KwpGoodsService {
             RedissonUtils.unlock(lockKey);
         }
     }
+
+    /**
+     * @desc: 根据客服经理id获取未删除非草稿的商品数量
+     * @author: yzc
+     * @date: 2023-08-15 10:47
+     * @Param managerId:
+     * @return: java.lang.Long
+     */
+
+    public Long getCountByManager(Long managerId) {
+        LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwpGoods::getManager, managerId).eq(KwpGoods::getDelFlag, Global.NO).
+                ne(KwpGoods::getStatus, GoodsStatusEnum.SAVED.getCode());
+        return kwpGoodsMapper.selectCount(wrapper);
+    }
 }

+ 1 - 1
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java

@@ -74,7 +74,7 @@ public class KwTransportController {
         try {
             return acceptCarriageService.statisticsAcceptCarriage(query,"2");
         } catch (Exception e) {
-            log.error("运订单top统计失败:{}", e.getMessage(), e);
+            log.error("运订单top统计失败:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }

+ 46 - 31
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwAcceptCarriageService.java

@@ -26,10 +26,7 @@ import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
@@ -96,12 +93,12 @@ public class KwAcceptCarriageService {
             criteria.and("unloadDetailAddress").is(query.getUnloadAddress());
         }
         if (StringUtils.isNotBlank(query.getStatus())) {
-            if (String.valueOf(NumberConstant.EIGHT).equals(query.getStatus())){
-                List<String> status=new ArrayList<>();
+            if (String.valueOf(NumberConstant.EIGHT).equals(query.getStatus())) {
+                List<String> status = new ArrayList<>();
                 status.add(LogisticsOrderEnum.REJECT_ORDER.getStatus());
                 status.add(LogisticsOrderEnum.CANCEL_ORDER.getStatus());
                 criteria.and("status").in(status);
-            }else {
+            } else {
                 criteria.and("status").is(query.getStatus());
             }
         }
@@ -116,16 +113,16 @@ public class KwAcceptCarriageService {
 //            criteria.and("createTime").lte(query.getStartDateTime());
 //        }
         if (StringUtils.isNotEmpty(query.getStartDateTime())) {
-            criteria.andOperator(Criteria.where("startTime").gte(query.getStartDateTime()), Criteria.where("startTime")
-                    .lte(query.getStartDateTime()));
+//            criteria.andOperator(Criteria.where("startTime").gte(query.getStartDateTime()).lte(query.getStartDateTime()));
+            criteria.and("startTime").gte(query.getStartDateTime()).lte(query.getStartDateTime());
         }
         if (StringUtils.isNotEmpty(query.getEndDateTime())) {
-            criteria.andOperator(Criteria.where("endTime").gte(query.getEndDateTime()), Criteria.where("endTime")
-                    .lte(query.getEndDateTime()));
+//            criteria.andOperator(Criteria.where("endTime").gte(query.getEndDateTime()).lte(query.getEndDateTime()));
+            criteria.and("endTime").gte(query.getEndDateTime()).lte(query.getEndDateTime());
         }
         if (StringUtils.isNotEmpty(query.getCreateTime())) {
-            criteria.andOperator(Criteria.where("createTime").gte(query.getCreateTime()), Criteria.where("createTime")
-                    .lte(query.getCreateTime()));
+//            criteria.andOperator(Criteria.where("createTime").gte(query.getCreateTime()).lte(query.getCreateTime()));
+            criteria.and("createTime").gte(query.getCreateTime()).lte(query.getCreateTime());
         }
         //多条件模糊查询
         Criteria c1 = new Criteria();
@@ -154,7 +151,7 @@ public class KwAcceptCarriageService {
         // 10. 分页
         query1.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
                 // 11. 排序list = {ArrayList@27436}  size = 3returnList = {ArrayList@27393}  size = 3
-                Sort.by(Sort.Direction.DESC,"lOrderId","createTime")));
+                Sort.by(Sort.Direction.DESC, "lOrderId", "createTime")));
         // 执行查询
         List<SckwLogisticsOrder> list = mongoTemplate.find(query1, SckwLogisticsOrder.class);
         List<AcceptCarriageOrderVo> returnList = new ArrayList<>();
@@ -210,25 +207,17 @@ public class KwAcceptCarriageService {
         }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         // 4. 日期范围
-//        if (StringUtils.isNotEmpty(param.getStartDateTime()) && StringUtils.isNotEmpty(param.getEndDateTime())) {
-//            criteria.andOperator(Criteria.where("createTime").gte(param.getStartDateTime()), Criteria.where("createTime")
-//                    .lte(param.getEndDateTime()));
-//        } else if (StringUtils.isNotEmpty(param.getStartDateTime())) {
-//            criteria.and("createTime").gte(param.getStartDateTime());
-//        } else if (StringUtils.isNotEmpty(param.getEndDateTime())) {
-//            criteria.and("createTime").lte(param.getStartDateTime());
-//        }
         if (StringUtils.isNotEmpty(param.getStartDateTime())) {
-            criteria.andOperator(Criteria.where("startTime").gte(param.getStartDateTime()), Criteria.where("startTime")
-                    .lte(param.getStartDateTime()));
+//            criteria.andOperator(Criteria.where("startTime").gte(query.getStartDateTime()).lte(query.getStartDateTime()));
+            criteria.and("startTime").gte(param.getStartDateTime()).lte(param.getStartDateTime());
         }
         if (StringUtils.isNotEmpty(param.getEndDateTime())) {
-            criteria.andOperator(Criteria.where("endTime").gte(param.getEndDateTime()), Criteria.where("endTime")
-                    .lte(param.getEndDateTime()));
+//            criteria.andOperator(Criteria.where("endTime").gte(query.getEndDateTime()).lte(query.getEndDateTime()));
+            criteria.and("endTime").gte(param.getEndDateTime()).lte(param.getEndDateTime());
         }
         if (StringUtils.isNotEmpty(param.getCreateTime())) {
-            criteria.andOperator(Criteria.where("createTime").gte(param.getCreateTime()), Criteria.where("createTime")
-                    .lte(param.getCreateTime()));
+//            criteria.andOperator(Criteria.where("createTime").gte(query.getCreateTime()).lte(query.getCreateTime()));
+            criteria.and("createTime").gte(param.getCreateTime()).lte(param.getCreateTime());
         }
         List<String> stringList = StringUtils.splitStrToList(param.getIds(), StringConstant.COMMA, String.class);
         if (CollectionUtils.isNotEmpty(stringList)) {
@@ -259,7 +248,7 @@ public class KwAcceptCarriageService {
         List<TableTops> arrayList = new ArrayList<>();
         arrayList.addAll(mappedResults);
         /**补全数据状态不齐的情况*/
-        packageReturnStatistics(mappedResults, arrayList);
+        arrayList = packageReturnStatistics(mappedResults, arrayList);
         // 查询结果
         Map<String, Object> map = new HashMap<>(NumberConstant.SIXTEEN);
         map.put("tableTop", arrayList);
@@ -337,7 +326,7 @@ public class KwAcceptCarriageService {
      * @param mappedResults
      * @param arrayList
      */
-    private void packageReturnStatistics(List<com.sckw.mongo.model.TableTops> mappedResults, List<TableTops> arrayList) {
+    private List<TableTops> packageReturnStatistics(List<com.sckw.mongo.model.TableTops> mappedResults, List<TableTops> arrayList) {
         List<String> codeList = LogisticsOrderEnum.getCodeStringList();
         List<String> collect = mappedResults.stream().map(e -> e.getValue()).collect(Collectors.toList());
         List<String> diffrentList = transportService.getDiffrentList(collect, codeList);
@@ -362,15 +351,41 @@ public class KwAcceptCarriageService {
                 arrayList.add(top);
             }
         }
+        arrayList = arrayList.stream().sorted(Comparator.comparing(TableTops::getValue)).collect(Collectors.toList());
         if (CollectionUtils.isNotEmpty(arrayList)) {
+            int total = 0;
+            for (TableTops tops : arrayList) {
+                if (LogisticsOrderEnum.REJECT_ORDER.getStatus().equals(tops.getValue())) {
+                    total = total + tops.getTotal();
+                }
+                if (LogisticsOrderEnum.CANCEL_ORDER.getStatus().equals(tops.getValue())) {
+                    total = total + tops.getTotal();
+                }
+            }
+            for (TableTops tops : arrayList) {
+                if (LogisticsOrderEnum.SEND_BACK.getStatus().equals(tops.getValue())) {
+                    tops.setTotal(tops.getTotal() + total);
+                }
+            }
+            Iterator iterator = arrayList.iterator();
+            while (iterator.hasNext()) {
+                TableTops tableTops = (TableTops) iterator.next();
+                if (tableTops.getValue().equals(LogisticsOrderEnum.REJECT_ORDER.getStatus())) {
+                    iterator.remove();
+                }
+                if (tableTops.getValue().equals(LogisticsOrderEnum.CANCEL_ORDER.getStatus())) {
+                    iterator.remove();
+                }
+            }
             /**补全统计【全部字段】*/
             Integer sum = Math.toIntExact(arrayList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getTotal())).collect(Collectors.summarizingInt(item -> item.getTotal())).getSum());
             TableTops top = new TableTops();
             top.setName("全部");
             top.setValue("all");
             top.setTotal(sum);
-            arrayList.add(top);
+            arrayList.add(0, top);
         }
+        return arrayList;
     }
 
     /**

+ 44 - 36
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java

@@ -27,10 +27,7 @@ import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
 import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
@@ -101,25 +98,17 @@ public class KwConsignService {
         }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         // 4. 日期范围
-//        if (StringUtils.isNotEmpty(query.getStartDateTime()) && StringUtils.isNotEmpty(query.getEndDateTime())) {
-//            criteria.andOperator(Criteria.where("createTime").gte(query.getStartDateTime()), Criteria.where("createTime")
-//                    .lte(query.getEndDateTime()));
-//        } else if (StringUtils.isNotEmpty(query.getStartDateTime())) {
-//            criteria.and("createTime").gte(query.getStartDateTime());
-//        } else if (StringUtils.isNotEmpty(query.getEndDateTime())) {
-//            criteria.and("createTime").lte(query.getStartDateTime());
-//        }
         if (StringUtils.isNotEmpty(query.getStartDateTime())) {
-            criteria.andOperator(Criteria.where("startTime").gte(query.getStartDateTime()), Criteria.where("startTime")
-                    .lte(query.getStartDateTime()));
+//            criteria.andOperator(Criteria.where("startTime").gte(query.getStartDateTime()).lte(query.getStartDateTime()));
+            criteria.and("startTime").gte(query.getStartDateTime()).lte(query.getStartDateTime());
         }
         if (StringUtils.isNotEmpty(query.getEndDateTime())) {
-            criteria.andOperator(Criteria.where("endTime").gte(query.getEndDateTime()), Criteria.where("endTime")
-                    .lte(query.getEndDateTime()));
+//            criteria.andOperator(Criteria.where("endTime").gte(query.getEndDateTime()).lte(query.getEndDateTime()));
+            criteria.and("endTime").gte(query.getEndDateTime()).lte(query.getEndDateTime());
         }
         if (StringUtils.isNotEmpty(query.getCreateTime())) {
-            criteria.andOperator(Criteria.where("createTime").gte(query.getCreateTime()), Criteria.where("createTime")
-                    .lte(query.getCreateTime()));
+//            criteria.andOperator(Criteria.where("createTime").gte(query.getCreateTime()).lte(query.getCreateTime()));
+            criteria.and("createTime").gte(query.getCreateTime()).lte(query.getCreateTime());
         }
         //多条件模糊查询
         Criteria c1 = new Criteria();
@@ -148,7 +137,7 @@ public class KwConsignService {
         // 10. 分页
         query1.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
                 // 11. 排序list = {ArrayList@27436}  size = 3returnList = {ArrayList@27393}  size = 3
-                Sort.by(Sort.Direction.DESC,"lOrderId","createTime")));
+                Sort.by(Sort.Direction.DESC, "lOrderId", "createTime")));
         // 执行查询
         List<SckwLogisticsOrder> list = mongoTemplate.find(query1, SckwLogisticsOrder.class);
         List<ConsignOrderVo> returnList = new ArrayList<>();
@@ -381,25 +370,17 @@ public class KwConsignService {
         }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
         // 4. 日期范围
-//        if (StringUtils.isNotEmpty(param.getStartDateTime()) && StringUtils.isNotEmpty(param.getEndDateTime())) {
-//            criteria.andOperator(Criteria.where("createTime").gte(param.getStartDateTime()), Criteria.where("createTime")
-//                    .lte(param.getEndDateTime()));
-//        } else if (StringUtils.isNotEmpty(param.getStartDateTime())) {
-//            criteria.and("createTime").gte(param.getStartDateTime());
-//        } else if (StringUtils.isNotEmpty(param.getEndDateTime())) {
-//            criteria.and("createTime").lte(param.getStartDateTime());
-//        }
         if (StringUtils.isNotEmpty(param.getStartDateTime())) {
-            criteria.andOperator(Criteria.where("startTime").gte(param.getStartDateTime()), Criteria.where("startTime")
-                    .lte(param.getStartDateTime()));
+//            criteria.andOperator(Criteria.where("startTime").gte(query.getStartDateTime()).lte(query.getStartDateTime()));
+            criteria.and("startTime").gte(param.getStartDateTime()).lte(param.getStartDateTime());
         }
         if (StringUtils.isNotEmpty(param.getEndDateTime())) {
-            criteria.andOperator(Criteria.where("endTime").gte(param.getEndDateTime()), Criteria.where("endTime")
-                    .lte(param.getEndDateTime()));
+//            criteria.andOperator(Criteria.where("endTime").gte(query.getEndDateTime()).lte(query.getEndDateTime()));
+            criteria.and("endTime").gte(param.getEndDateTime()).lte(param.getEndDateTime());
         }
         if (StringUtils.isNotEmpty(param.getCreateTime())) {
-            criteria.andOperator(Criteria.where("createTime").gte(param.getCreateTime()), Criteria.where("createTime")
-                    .lte(param.getCreateTime()));
+//            criteria.andOperator(Criteria.where("createTime").gte(query.getCreateTime()).lte(query.getCreateTime()));
+            criteria.and("createTime").gte(param.getCreateTime()).lte(param.getCreateTime());
         }
         List<String> stringList = StringUtils.splitStrToList(param.getIds(), StringConstant.COMMA, String.class);
         if (CollectionUtils.isNotEmpty(stringList)) {
@@ -430,7 +411,7 @@ public class KwConsignService {
         List<TableTops> arrayList = new ArrayList<>();
         arrayList.addAll(mappedResults);
         /**补全数据状态不齐的情况*/
-        packageReturnStatistics(mappedResults, arrayList);
+        arrayList = packageReturnStatistics(mappedResults, arrayList);
         // 查询结果
         Map<String, Object> map = new HashMap<>(NumberConstant.SIXTEEN);
         map.put("tableTop", arrayList);
@@ -444,7 +425,7 @@ public class KwConsignService {
      * @param mappedResults
      * @param arrayList
      */
-    private void packageReturnStatistics(List<TableTops> mappedResults, List<TableTops> arrayList) {
+    private List<TableTops> packageReturnStatistics(List<TableTops> mappedResults, List<TableTops> arrayList) {
         List<String> codeList = LogisticsOrderEnum.getCodeStringList();
         List<String> collect = mappedResults.stream().map(e -> e.getValue()).collect(Collectors.toList());
         List<String> diffrentList = transportService.getDiffrentList(collect, codeList);
@@ -469,15 +450,42 @@ public class KwConsignService {
                 arrayList.add(top);
             }
         }
+        arrayList = arrayList.stream().sorted(Comparator.comparing(TableTops::getValue)).collect(Collectors.toList());
         if (CollectionUtils.isNotEmpty(arrayList)) {
+            /**已退回数据补充*/
+            int total = 0;
+            for (TableTops tops : arrayList) {
+                if (LogisticsOrderEnum.REJECT_ORDER.getStatus().equals(tops.getValue())) {
+                    total = total + tops.getTotal();
+                }
+                if (LogisticsOrderEnum.CANCEL_ORDER.getStatus().equals(tops.getValue())) {
+                    total = total + tops.getTotal();
+                }
+            }
+            for (TableTops tops : arrayList) {
+                if (LogisticsOrderEnum.SEND_BACK.getStatus().equals(tops.getValue())) {
+                    tops.setTotal(tops.getTotal() + total);
+                }
+            }
+            Iterator iterator = arrayList.iterator();
+            while (iterator.hasNext()) {
+                TableTops tableTops = (TableTops) iterator.next();
+                if (tableTops.getValue().equals(LogisticsOrderEnum.REJECT_ORDER.getStatus())) {
+                    iterator.remove();
+                }
+                if (tableTops.getValue().equals(LogisticsOrderEnum.CANCEL_ORDER.getStatus())) {
+                    iterator.remove();
+                }
+            }
             /**补全统计【全部字段】*/
             Integer sum = Math.toIntExact(arrayList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getTotal())).collect(Collectors.summarizingInt(item -> item.getTotal())).getSum());
             TableTops top = new TableTops();
             top.setName("全部");
             top.setValue("all");
             top.setTotal(sum);
-            arrayList.add(top);
+            arrayList.add(0, top);
         }
+        return arrayList;
     }
 
 }

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarWaybillVO.java

@@ -1,6 +1,7 @@
 package com.sckw.transport.model.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -20,21 +21,25 @@ public class CarWaybillVO {
     /**
      * 物流订单id
      */
+    @JsonProperty("lOrderId")
     private String lOrderId;
 
     /**
      *物流订单编号
      */
+    @JsonProperty("lOrderNo")
     private String lOrderNo;
 
     /**
      * 车辆运单id
      */
+    @JsonProperty("wOrderId")
     private String wOrderId;
 
     /**
      * 运单编号
      */
+    @JsonProperty("wOrderNo")
     private String wOrderNo;
     /**
      * 车牌号

+ 4 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/DriverListVo.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -55,15 +56,18 @@ public class DriverListVo {
     /**
      * 物流订单id
      */
+    @JsonProperty("lOrderId")
     private String lOrderId;
 
     /**
      * 车辆运单id
      */
+    @JsonProperty("wOrderId")
     private String wOrderId;
 
     /**
      * 车辆运单编号
      */
+    @JsonProperty("wOrderNo")
     private String wOrderNo;
 }

+ 8 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillBoardListVO.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
@@ -17,10 +18,12 @@ public class WaybillBoardListVO {
     /**
      * 运单Id
      */
+    @JsonProperty("wOrderId")
     private String wOrderId;
     /**
      * 运单号
      */
+    @JsonProperty("wOrderNo")
     private String wOrderNo;
 
     /**
@@ -98,6 +101,11 @@ public class WaybillBoardListVO {
      */
     private String truckNo;
 
+    /**
+     * 循环/趟次
+     */
+    private String type;
+
     /**
      * 装载重量
      */

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDriverVo.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import java.math.BigDecimal;
 import java.util.Date;
@@ -15,21 +16,25 @@ public class WaybillOrderDriverVo {
     /**
      * 主键
      */
+    @JsonProperty("wOrderId")
     private Long wOrderId;
 
     /**
      * 编号
      */
+    @JsonProperty("wOrderNo")
     private String wOrderNo;
 
     /**
      * 主键
      */
+    @JsonProperty("lOrderId")
     private Long lOrderId;
 
     /**
      * 物流订单编号
      */
+    @JsonProperty("lOrderNo")
     private String lOrderNo;
 
     /**

+ 7 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderVO.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -16,31 +17,37 @@ public class WaybillOrderVO {
     /**
      * 主键
      */
+    @JsonProperty("wOrderId")
     private Long wOrderId;
 
     /**
      * 编号
      */
+    @JsonProperty("wOrderNo")
     private String wOrderNo;
 
     /**
      * 主键
      */
+    @JsonProperty("lOrderId")
     private Long lOrderId;
 
     /**
      * 物流订单编号
      */
+    @JsonProperty("lOrderNo")
     private String lOrderNo;
 
     /**
      * 交易订单id(kwo_trade_order)
      */
+    @JsonProperty("tOrderId")
     private Long tOrderId;
 
     /**
      * 交易订单编号(kwo_trade_order)
      */
+    @JsonProperty("tOrderNo")
     private String tOrderNo;
 
     /**

+ 240 - 34
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -1,11 +1,12 @@
 package com.sckw.transport.service;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.sckw.contract.api.RemoteContractService;
 import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
 import com.sckw.core.common.enums.NumberConstant;
-import com.sckw.core.common.enums.StringConstant;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
@@ -22,6 +23,8 @@ import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
+import com.sckw.order.api.dubbo.TradeOrderInfoService;
+import com.sckw.order.api.model.CompleteLogisticsOrderParam;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
@@ -38,6 +41,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.stream.function.StreamBridge;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
@@ -54,6 +58,9 @@ import java.util.stream.Collectors;
 @Service
 public class ConsignOrderService {
 
+    @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
+    TradeOrderInfoService tradeOrderInfoService;
+
     @DubboReference(version = "1.0.0", group = "design", check = false)
     RemoteSystemService remoteSystemService;
     @DubboReference(version = "1.0.0", group = "design", check = false)
@@ -520,7 +527,7 @@ public class ConsignOrderService {
         List<Integer> statusList = new ArrayList<>();
         statusList.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
         statusList.add(CarWaybillEnum.APPROVAL_PASS.getCode());
-        List<OrderCarDTO> list = kwtWaybillOrderMapper.selectWaybillOrderCarListGroupByTruckNo(stringList, statusList,orderDto.getPage() - 1, orderDto.getPageSize());
+        List<OrderCarDTO> list = kwtWaybillOrderMapper.selectWaybillOrderCarListGroupByTruckNo(stringList, statusList, orderDto.getPage() - 1, orderDto.getPageSize());
         if (CollectionUtils.isNotEmpty(list)) {
             List<String> stringLists = list.stream().map(OrderCarDTO::getTruckNo).collect(Collectors.toList());
             Map<String, RTruckVo> truck = remoteFleetService.findTruck(stringLists);
@@ -548,9 +555,10 @@ public class ConsignOrderService {
     /**
      * 托运订单-完结订单
      *
-     * @param orderFinishDTO 页面传递数据dto
+     * @param orderFinishDTO
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public HttpResult commitConsignOrderFinish(OrderFinishDTO orderFinishDTO) {
         /** 订单完结 物流运单状态为【待派车】、【运输中】可操作*/
         /**完结拦截 必须车辆运单无正在运输中的单据才能完结 状态有 待接单之后已核弹之前的状态 都不能完结*/
@@ -561,7 +569,7 @@ public class ConsignOrderService {
         KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
                 .eq(KwtLogisticsOrder::getId, id));
         if (logisticsOrder == null) {
-            throw new RuntimeException("托运订单-完结订单-物流单据不存在!");
+            throw new BusinessException("采购订单-完结订单-物流单据不存在!");
         }
         if (logisticsOrder.getLoadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
             throw new BusinessException("完结订单,实装量不能大于分配量");
@@ -569,49 +577,247 @@ public class ConsignOrderService {
         /**订单状态验证*/
         if (!LogisticsOrderEnum.WAIT_DELIVERY.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))
                 && !LogisticsOrderEnum.IN_TRANSIT.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))) {
-            throw new RuntimeException("当前运单并不属于【待派车】,【运输中】状态");
+            throw new BusinessException("当前运单并不属于【待派车】,【运输中】状态");
+        }
+        //验证当前物流订单是否还存在进行的车辆运单
+        boolean flag = judgmentWaybillOrderIsFinish(id);
+        if (flag) {
+            throw new BusinessException("您现在有车辆运单正在执行中,该订单目前不可完结,请先将运单执行完毕");
+        }
+        //修改单据本身数据
+        BigDecimal ignoreAmount = logisticsOrder.getAmount().subtract(logisticsOrder.getTotalLoadAmount());
+        logisticsOrder.setTotalLoadAmount(orderFinishDTO.getLoadAmount());
+        logisticsOrder.setTotalUnloadAmount(orderFinishDTO.getUnloadAmount());
+        logisticsOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
+        logisticsOrder.setUpdateTime(new Date());
+        logisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
+        logisticsOrder.setIgnoreAmount(ignoreAmount);
+        kwtLogisticsOrderMapper.updateById(logisticsOrder);
+        //获取物流订单下的子单
+        /**完结订单-对应物流订单下子订单都要进行完结*/
+        List<KwtLogisticsOrder> kwtLogisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                .eq(KwtLogisticsOrder::getDelFlag, NumberConstant.ZERO)
+                .apply(id != null, "FIND_IN_SET ('" + id + "', pids)").ne(KwtLogisticsOrder::getId, id));
+        /**找到该订单下所有的物流订单**/
+        //需要修改的mongodb数据
+        List<Map<String, Object>> list = new ArrayList<>();
+        if (!org.springframework.util.CollectionUtils.isEmpty(kwtLogisticsOrders)) {
+            //修改单据状态
+//            List<Long> ids = kwtLogisticsOrders.stream().map(KwtLogisticsOrder::getId).collect(Collectors.toList());
+            //修改单据剩余运输量
+            kwtLogisticsOrders.forEach(kwtLogisticsOrder -> {
+                BigDecimal subtract = kwtLogisticsOrder.getAmount().subtract(kwtLogisticsOrder.getTotalLoadAmount());
+                updateLogisticOrderAndTrack(kwtLogisticsOrder.getId(), orderFinishDTO, subtract);
+                //新增mongodb要修改的数据
+                Map<String, Object> map = new HashMap<>();
+                map.put("id", kwtLogisticsOrder.getId());
+                map.put("ignoreAmount", subtract);
+                list.add(map);
+//                updateMongoDbByLogisticsOrder(kwtLogisticsOrder.getId(), orderFinishDTO, subtract);
+            });
         }
-        /**完结拦截*/
+        /**是否是一级订单,是->推送至贸易,否,数据推送至物流订单上级*/
+        if (logisticsOrder.getPid() == null) {
+            //数据推送至贸易订单
+            CompleteLogisticsOrderParam tradeOrder = new CompleteLogisticsOrderParam();
+            //获取实际装货量-实际卸货量
+            Map<String, BigDecimal> map = kwtLogisticsOrderMapper.countAmountByTradeOrderId(logisticsOrder.getTOrderId());
+            //获取是否订单已经全部处理完成
+            List<Integer> statusList = new ArrayList<>();
+            statusList.add(LogisticsOrderEnum.TO_BE_PLANNED.getCode());
+            statusList.add(LogisticsOrderEnum.PENDING_ORDER.getCode());
+            statusList.add(LogisticsOrderEnum.WAIT_DELIVERY.getCode());
+            statusList.add(LogisticsOrderEnum.IN_TRANSIT.getCode());
+            List<KwtLogisticsOrder> logisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                    .eq(KwtLogisticsOrder::getTOrderId, logisticsOrder.getTOrderId())
+                    .in(KwtLogisticsOrder::getStatus, statusList));
+            if (org.springframework.util.CollectionUtils.isEmpty(logisticsOrders)) {
+                tradeOrder.setIsAllComplete(true);
+            }
+            tradeOrder.setTOrderId(logisticsOrder.getTOrderId());
+            tradeOrder.setActualLoadAmount(map.get("totalLoadAmount"));
+            tradeOrder.setActualUnloadAmount(map.get("totalUnloadAmount"));
+            tradeOrder.setUpdateBy(LoginUserHolder.getUserId());
+            tradeOrder.setUpdateByName(LoginUserHolder.getUserName());
+            HttpResult httpResult = tradeOrderInfoService.completeLogisticsOrder(tradeOrder);
+            if (httpResult.getCode() != HttpStatus.SUCCESS_CODE) {
+                log.info("贸易订单手动完结订单异常,传递信息:{},返回信息:{}", JSONObject.toJSONString(tradeOrder), JSONObject.toJSONString(httpResult));
+                throw new BusinessException("单据完结出现错误!");
+            }
+        }
+        //修改mongodb的数据
+        updateMongoDbByLogisticsOrder(logisticsOrder.getId(), orderFinishDTO, ignoreAmount);
+        if (!CollectionUtils.isEmpty(list) && list.size() > 0) {
+            for (Map<String, Object> map : list) {
+                updateMongoDbByLogisticsOrder(Long.parseLong(map.get("id").toString()), orderFinishDTO, new BigDecimal(map.get("ignoreAmount").toString()));
+            }
+        }
+        return HttpResult.ok("托运订单-完结订单成功");
+    }
+
+    /**
+     * 物流订单完结订单-修改物流表+新增物流状态记录
+     *
+     * @param lOrderId
+     * @param orderFinishDTO
+     * @param ignoreAmount
+     */
+    private void updateLogisticOrderAndTrack(Long lOrderId, OrderFinishDTO orderFinishDTO, BigDecimal ignoreAmount) {
+        Integer code = LogisticsOrderEnum.HAVE_FINISHED.getCode();
+        kwtLogisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
+                .set(KwtLogisticsOrder::getStatus, code)
+                .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId())
+                .set(KwtLogisticsOrder::getIgnoreAmount, ignoreAmount)
+                .set(KwtLogisticsOrder::getUpdateTime, new Date())
+                .eq(KwtLogisticsOrder::getId, lOrderId)
+        );
+        KwtLogisticsOrderTrack track = kwtLogisticsOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderTrack>()
+                .eq(KwtLogisticsOrderTrack::getLOrderId, lOrderId).eq(KwtLogisticsOrderTrack::getStatus, code)
+        );
+        if (track != null) {
+            kwtLogisticsOrderTrackMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderTrack>()
+                    .set(KwtLogisticsOrderTrack::getUpdateBy, LoginUserHolder.getUserId())
+                    .set(KwtLogisticsOrderTrack::getUpdateTime, new Date())
+                    .set(KwtLogisticsOrderTrack::getRemark, orderFinishDTO.getRemark())
+                    .eq(KwtLogisticsOrderTrack::getId, track.getId())
+            );
+        } else {
+            KwtLogisticsOrderTrack orderTrack = new KwtLogisticsOrderTrack();
+            orderTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
+            orderTrack.setLOrderId(lOrderId);
+            orderTrack.setRemark(orderFinishDTO.getRemark());
+            orderTrack.setStatus(code);
+            orderTrack.setCreateBy(LoginUserHolder.getUserId());
+            orderTrack.setCreateTime(new Date());
+            orderTrack.setUpdateBy(LoginUserHolder.getUserId());
+            orderTrack.setUpdateTime(new Date());
+            orderTrack.setDelFlag(NumberConstant.ZERO);
+            kwtLogisticsOrderTrackMapper.insert(orderTrack);
+        }
+    }
+
+    /**
+     * 验证当前物流订单是否存在未完结的车辆运单
+     *
+     * @param id 对应物流订单id
+     */
+    private boolean judgmentWaybillOrderIsFinish(String id) {
+        boolean flag = false;
         List<Integer> statusList = new ArrayList<>();
+        statusList.add(CarWaybillEnum.PENDING_ORDER.getCode());
         statusList.add(CarWaybillEnum.PENDING_VEHICLE.getCode());
         statusList.add(CarWaybillEnum.EXIT_COMPLETED.getCode());
         statusList.add(CarWaybillEnum.WAIT_LOADING.getCode());
         statusList.add(CarWaybillEnum.COMPLETION_LOADING.getCode());
         statusList.add(CarWaybillEnum.WAIT_UNLOADING.getCode());
         statusList.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
+        statusList.add(CarWaybillEnum.APPROVAL_PASS.getCode());
         int count = kwtWaybillOrderMapper.selectDataByLorderId(id, statusList);
         if (count > NumberConstant.ZERO) {
-            throw new RuntimeException("检测您现在有运单正在执行中,该订单目前不可完结,请先将运单执行完毕");
+            flag = true;
         }
-        /**完结订单-对应物流订单下子订单都要进行完结*/
-        List<KwtLogisticsOrder> kwtLogisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                .in(KwtLogisticsOrder::getPids, Long.parseLong(orderFinishDTO.getId())));
-        if (CollectionUtils.isNotEmpty(kwtLogisticsOrders)) {
-            for (KwtLogisticsOrder kwtLogisticsOrder : kwtLogisticsOrders) {
-                String[] split = kwtLogisticsOrder.getPids().split(StringConstant.COMMA);
-                if (split.length > NumberConstant.ONE) {
-                    for (String s : split) {
-                        if (String.valueOf(kwtLogisticsOrder.getId()).equals(s)) {
-                            //本身订单
-                            //只存在当前订单无分包订单
-                            /**单据完结修改状态以及数据*/
-                            updateDataByItself(logisticsOrder, orderFinishDTO);
-                        } else {
-                            //修改分包后的订单-代表存在分包订单
-                            /**单据完结修改状态以及数据*/
-                            updateDataBySubset(orderFinishDTO, s);
-                        }
-                    }
-                } else {
-                    //只存在当前订单无分包订单
-                    /**单据完结修改状态以及数据*/
-                    updateDataByItself(logisticsOrder, orderFinishDTO);
-                }
-            }
-        }
-        return HttpResult.ok("承运订单-分包托运完结订单成功");
+        return flag;
+    }
+
+    /**
+     * 根据物流订单修改mongodb数据
+     *
+     * @param id             物流订单id
+     * @param orderFinishDTO
+     * @param ignoreAmount   剩余量
+     */
+    private void updateMongoDbByLogisticsOrder(Long id, OrderFinishDTO orderFinishDTO, BigDecimal ignoreAmount) {
+        //更新mongodb
+        SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
+        lOrder.set_id(id);
+        lOrder.setLOrderId(id);
+        lOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getStatus());
+        lOrder.setUpdateTime(new Date());
+        lOrder.setUpdateBy(LoginUserHolder.getUserId());
+        lOrder.setUpdateByName(LoginUserHolder.getUserName());
+        lOrder.setTotalLoadAmount(orderFinishDTO.getLoadAmount());
+        lOrder.setTotalUnloadAmount(orderFinishDTO.getUnloadAmount());
+        lOrder.setIgnoreAmount(ignoreAmount);
+        //rabbitMq业务汇总数据发送/消费对象
+        SckwBusSum busSum = new SckwBusSum();
+        //业务汇总类型
+        busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+        //操作对象(1新增/2修改/3替换数据)
+        busSum.setMethod(2);
+        //业务汇总数据对象
+        busSum.setObject(lOrder);
+        busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+        busSum.setMethod(NumberConstant.TWO);
+        streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
     }
 
+//    /**
+//     * 托运订单-完结订单
+//     *
+//     * @param orderFinishDTO 页面传递数据dto
+//     * @return
+//     */
+//    public HttpResult commitConsignOrderFinish(OrderFinishDTO orderFinishDTO) {
+//        /** 订单完结 物流运单状态为【待派车】、【运输中】可操作*/
+//        /**完结拦截 必须车辆运单无正在运输中的单据才能完结 状态有 待接单之后已核弹之前的状态 都不能完结*/
+//        /**完结订单-对应物流订单下子订单都要进行完结*/
+//        /**完结订单 不做页面填写数量与数据库数量进行计算验证-直接获取页面填写数据进行保存处理*/
+//        //物流订单id
+//        String id = orderFinishDTO.getId();
+//        KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+//                .eq(KwtLogisticsOrder::getId, id));
+//        if (logisticsOrder == null) {
+//            throw new RuntimeException("托运订单-完结订单-物流单据不存在!");
+//        }
+//        if (logisticsOrder.getLoadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
+//            throw new BusinessException("完结订单,实装量不能大于分配量");
+//        }
+//        /**订单状态验证*/
+//        if (!LogisticsOrderEnum.WAIT_DELIVERY.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))
+//                && !LogisticsOrderEnum.IN_TRANSIT.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))) {
+//            throw new RuntimeException("当前运单并不属于【待派车】,【运输中】状态");
+//        }
+//        /**完结拦截*/
+//        List<Integer> statusList = new ArrayList<>();
+//        statusList.add(CarWaybillEnum.PENDING_VEHICLE.getCode());
+//        statusList.add(CarWaybillEnum.EXIT_COMPLETED.getCode());
+//        statusList.add(CarWaybillEnum.WAIT_LOADING.getCode());
+//        statusList.add(CarWaybillEnum.COMPLETION_LOADING.getCode());
+//        statusList.add(CarWaybillEnum.WAIT_UNLOADING.getCode());
+//        statusList.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
+//        int count = kwtWaybillOrderMapper.selectDataByLorderId(id, statusList);
+//        if (count > NumberConstant.ZERO) {
+//            throw new RuntimeException("检测您现在有运单正在执行中,该订单目前不可完结,请先将运单执行完毕");
+//        }
+//        /**完结订单-对应物流订单下子订单都要进行完结*/
+//        List<KwtLogisticsOrder> kwtLogisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
+//                .in(KwtLogisticsOrder::getPids, Long.parseLong(orderFinishDTO.getId())));
+//        if (CollectionUtils.isNotEmpty(kwtLogisticsOrders)) {
+//            for (KwtLogisticsOrder kwtLogisticsOrder : kwtLogisticsOrders) {
+//                String[] split = kwtLogisticsOrder.getPids().split(StringConstant.COMMA);
+//                if (split.length > NumberConstant.ONE) {
+//                    for (String s : split) {
+//                        if (String.valueOf(kwtLogisticsOrder.getId()).equals(s)) {
+//                            //本身订单
+//                            //只存在当前订单无分包订单
+//                            /**单据完结修改状态以及数据*/
+//                            updateDataByItself(logisticsOrder, orderFinishDTO);
+//                        } else {
+//                            //修改分包后的订单-代表存在分包订单
+//                            /**单据完结修改状态以及数据*/
+//                            updateDataBySubset(orderFinishDTO, s);
+//                        }
+//                    }
+//                } else {
+//                    //只存在当前订单无分包订单
+//                    /**单据完结修改状态以及数据*/
+//                    updateDataByItself(logisticsOrder, orderFinishDTO);
+//                }
+//            }
+//        }
+//        return HttpResult.ok("承运订单-分包托运完结订单成功");
+//    }
+
 
     /**
      * 托运订单-完结订单-修改本身数据

+ 15 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -830,15 +830,17 @@ public class LogisticsConsignmentService {
         for (String id : stringList) {
             List<OrderCarDTO> list = waybillOrderMapper.selectWaybillOrderCarListNotPage(id);
             List<String> collect = list.stream().map(OrderCarDTO::getTruckNo).collect(Collectors.toList());
-            Map<String, RTruckVo> truck = remoteFleetService.findTruck(collect);
-            for (OrderCarDTO orderCarDTO : list) {
+            if (CollectionUtils.isNotEmpty(collect)) {
+                Map<String, RTruckVo> truck = remoteFleetService.findTruck(collect);
+                for (OrderCarDTO orderCarDTO : list) {
 //            orderCarDTO.setDriverId(String.valueOf(orderCarDTO.getDriverId()));
 //            orderCarDTO.setDriverName(orderCarDTO.getDriverName());
 //            orderCarDTO.setDriverPhone(orderCarDTO.getDriverPhone());
 //            orderCarDTO.setDriverCard(orderCarDTO.getDriverCard());
-                orderCarDTO.setLoadAmount(truck.get(orderCarDTO.getTruckNo()) == null ?
-                        null : (truck.get(orderCarDTO.getTruckNo()).getActualWeight() == null ?
-                        null : (String.valueOf(truck.get(orderCarDTO.getTruckNo()).getActualWeight()))));
+                    orderCarDTO.setLoadAmount(truck.get(orderCarDTO.getTruckNo()) == null ?
+                            null : (truck.get(orderCarDTO.getTruckNo()).getActualWeight() == null ?
+                            null : (String.valueOf(truck.get(orderCarDTO.getTruckNo()).getActualWeight()))));
+                }
             }
             if (CollectionUtils.isNotEmpty(list)) {
                 returnList.addAll(list);
@@ -1062,6 +1064,7 @@ public class LogisticsConsignmentService {
         //修改单据本身数据
         logisticsOrder.setTotalLoadAmount(orderFinishDTO.getLoadAmount());
         logisticsOrder.setTotalUnloadAmount(orderFinishDTO.getUnloadAmount());
+        logisticsOrder.setIgnoreAmount(logisticsOrder.getAmount());
         logisticsOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
         logisticsOrder.setUpdateTime(new Date());
         logisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
@@ -1407,6 +1410,13 @@ public class LogisticsConsignmentService {
     }
 
 
+    /**
+     * 修改物流订单状态,以及状态表新增记录
+     *
+     * @param lOrderId       物流订单id
+     * @param orderFinishDTO 页面请求参数
+     * @param ignoreAmount   剩余量
+     */
     private void updateLogisticOrderAndTrack(Long lOrderId, OrderFinishDTO orderFinishDTO, BigDecimal ignoreAmount) {
         Integer code = LogisticsOrderEnum.HAVE_FINISHED.getCode();
         kwtLogisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()

+ 1 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java

@@ -237,6 +237,7 @@ public class WaybillManagementService {
             waybillBoardListVO.setWOrderId(String.valueOf(sckwWaybillOrder.getWOrderId()));
             waybillBoardListVO.setWOrderNo(String.valueOf(sckwWaybillOrder.getWOrderNo()));
             waybillBoardListVO.setStatus(String.valueOf(sckwWaybillOrder.getStatus()));
+            waybillBoardListVO.setType(String.valueOf(sckwWaybillOrder.getType()));
             waybillBoardListVO.setStatusLabel(CarWaybillEnum.getName(sckwWaybillOrder.getStatus()));
             waybillBoardListVO.setGoodsName(String.valueOf(sckwWaybillOrder.getGoodsName()));
             waybillBoardListVO.setLoadName(sckwWaybillOrder.getLoadName());