Explorar o código

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

donglang hai 2 meses
pai
achega
c53b169603
Modificáronse 32 ficheiros con 1361 adicións e 15 borrados
  1. 4 4
      pom.xml
  2. 29 0
      sckw-auth/src/main/resources/bootstrap-cxf.yml
  3. 29 0
      sckw-gateway/src/main/resources/bootstrap-cxf.yml
  4. 10 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/ContractDetailResp.java
  5. 3 1
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractLogisticsRepository.java
  6. 2 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractTradeService.java
  7. 29 0
      sckw-modules/sckw-contract/src/main/resources/bootstrap-cxf.yml
  8. 29 0
      sckw-modules/sckw-file/src/main/resources/bootstrap-cxf.yml
  9. 29 0
      sckw-modules/sckw-fleet/src/main/resources/bootstrap-cxf.yml
  10. 29 0
      sckw-modules/sckw-manage/src/main/resources/bootstrap-cxf.yml
  11. 29 0
      sckw-modules/sckw-message/src/main/resources/bootstrap-cxf.yml
  12. 29 0
      sckw-modules/sckw-operation/src/main/resources/bootstrap-cxf.yml
  13. 29 0
      sckw-modules/sckw-order/src/main/resources/bootstrap-cxf.yml
  14. 29 0
      sckw-modules/sckw-payment/src/main/resources/bootstrap-cxf.yml
  15. 29 0
      sckw-modules/sckw-product/src/main/resources/bootstrap-cxf.yml
  16. 29 0
      sckw-modules/sckw-report/src/main/resources/bootstrap-cxf.yml
  17. 29 0
      sckw-modules/sckw-system/src/main/resources/bootstrap-cxf.yml
  18. 21 6
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtLogisticsOrderController.java
  19. 4 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderAddress.java
  20. 3 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderUnit.java
  21. 142 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsOrderResp.java
  22. 67 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/QueryLogisticsOrderReq.java
  23. 194 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/LogisticsOrderDetailResp.java
  24. 26 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/LogisticsOrderReq.java
  25. 31 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderAddressRepository.java
  26. 7 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderContractRepository.java
  27. 40 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderGoodsRepository.java
  28. 25 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderRepository.java
  29. 12 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderUnitRepository.java
  30. 6 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderSubtaskRepository.java
  31. 358 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsConsignmentService.java
  32. 29 0
      sckw-modules/sckw-transport/src/main/resources/bootstrap-cxf.yml

+ 4 - 4
pom.xml

@@ -373,11 +373,11 @@
 
     <profiles>
         <profile>
-            <id>lfdc</id>
+            <id>cxf</id>
             <properties>
-                <profiles.active>lfdc</profiles.active>
-                <nacos.server>10.10.10.230:8848</nacos.server>
-                <nacos.namespace>sckw_mg_lfdc</nacos.namespace>
+                <profiles.active>cxf</profiles.active>
+                <nacos.server>10.10.10.224:8848</nacos.server>
+                <nacos.namespace>sckw-ng-service-platform-cxf</nacos.namespace>
             </properties>
         </profile>
         <profile>

+ 29 - 0
sckw-auth/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 29 - 0
sckw-gateway/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 10 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/ContractDetailResp.java

@@ -115,6 +115,16 @@ public class ContractDetailResp implements Serializable {
          */
         @Schema(description = "合同名称")
         private String contractName;
+        /**
+         * 合同状态
+         */
+        @Schema(description = "合同状态")
+        private String contractStatus;
+        /**
+         * 合同状态描述
+         */
+        @Schema(description = "合同状态描述")
+        private String contractStatusDesc;
 
         /**
          * 终止时间

+ 3 - 1
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/repository/KwcContractLogisticsRepository.java

@@ -28,7 +28,9 @@ public class KwcContractLogisticsRepository extends ServiceImpl<KwcContractLogis
                 .eq(KwcContractLogistics::getDelFlag, 0)
                 .in(CollectionUtils.isNotEmpty(entIdList), KwcContractLogistics::getEntId, entIdList)
                 .like(StringUtils.isNotBlank(contractNo), KwcContractLogistics::getContractNo, contractNo)
-                .like(StringUtils.isNotBlank(contractName), KwcContractLogistics::getName, contractName));
+                .like(StringUtils.isNotBlank(contractName), KwcContractLogistics::getName, contractName)
+                .orderByDesc(KwcContractLogistics::getCreateTime)
+                .orderByDesc(KwcContractLogistics::getId));
     }
 
     public KwcContractLogistics queryByContractCode( String contractCode) {

+ 2 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractTradeService.java

@@ -1544,6 +1544,8 @@ public class KwcContractTradeService {
         tradeBaseInfo.setProvidePhone(provideUnit.getPhone());
         tradeBaseInfo.setContractCode(kwcContractTrade.getContractNo());
         tradeBaseInfo.setContractName(kwcContractTrade.getName());
+        tradeBaseInfo.setContractStatus(String.valueOf(kwcContractTrade.getStatus()));
+        tradeBaseInfo.setContractStatusDesc(ContractStatusEnum.getNameByCode(kwcContractTrade.getStatus()));
         tradeBaseInfo.setEndTime(kwcContractTrade.getEndTime());
         tradeBaseInfo.setSigningWay(kwcContractTrade.getSigningWay());
         tradeBaseInfo.setSigningWayDesc(DictEnum.getLabel(DictTypeEnum.SIGNING_WAY.getType(), String.valueOf(kwcContractTrade.getSigningWay())));

+ 29 - 0
sckw-modules/sckw-contract/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 29 - 0
sckw-modules/sckw-file/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 29 - 0
sckw-modules/sckw-fleet/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 29 - 0
sckw-modules/sckw-manage/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 29 - 0
sckw-modules/sckw-message/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 29 - 0
sckw-modules/sckw-operation/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 29 - 0
sckw-modules/sckw-order/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 29 - 0
sckw-modules/sckw-payment/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 29 - 0
sckw-modules/sckw-product/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 29 - 0
sckw-modules/sckw-report/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 29 - 0
sckw-modules/sckw-system/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true

+ 21 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtLogisticsOrderController.java

@@ -3,11 +3,17 @@ package com.sckw.transport.controller;
 import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.annotation.RepeatSubmit;
 import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.response.BaseResult;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.transport.model.dto.LogisticsConsignmentDto;
 import com.sckw.transport.model.dto.LogisticsOrderFinishDto;
 import com.sckw.transport.model.dto.LogisticsOrderSubcontractDto;
 import com.sckw.transport.model.param.AddLogisticsOrderParam;
+import com.sckw.transport.model.param.LogisticsOrderResp;
+import com.sckw.transport.model.param.QueryLogisticsOrderReq;
+import com.sckw.transport.model.vo.LogisticsOrderDetailResp;
+import com.sckw.transport.model.vo.LogisticsOrderReq;
 import com.sckw.transport.service.KwtLogisticsConsignmentService;
 import com.sckw.transport.service.KwtTransportCommonService;
 import jakarta.validation.Valid;
@@ -15,10 +21,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author lfdc
@@ -117,8 +120,20 @@ public class KwtLogisticsOrderController {
         }
     }
 
+    /**
+     * 分页查询物流订单
+     */
+    @PostMapping(value = "/queryLogisticsOrderByPage")
+    public BaseResult<PageDataResult<LogisticsOrderResp>> queryLogisticsOrderByPage(@RequestBody QueryLogisticsOrderReq req) {
+        return BaseResult.success(logisticsConsignmentService.queryLogisticsOrderByPage( req));
+    }
 
-
-
+    /**
+    * 获取物流订单详情
+    */
+    @PostMapping(value = "/getLogisticsOrderDetail")
+    public BaseResult<LogisticsOrderDetailResp> getLogisticsOrderDetail(@RequestBody @Valid LogisticsOrderReq req) {
+        return BaseResult.success(logisticsConsignmentService.getLogisticsOrderDetail(req));
+    }
 
 }

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

@@ -1,5 +1,6 @@
 package com.sckw.transport.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -128,4 +129,7 @@ public class KwtLogisticsOrderAddress implements Serializable {
     private Integer delFlag;
 
     private static final long serialVersionUID = 1L;
+    @TableField(exist = false)
+    private String logisticsOrderIdAndUnitTypeKey;
+
 }

+ 3 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderUnit.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -91,4 +92,6 @@ public class KwtLogisticsOrderUnit implements Serializable {
     private Integer delFlag;
 
     private static final long serialVersionUID = 1L;
+    @TableField(exist = false)
+    private String logisticsOrderIdAndUnitTypeKey;
 }

+ 142 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsOrderResp.java

@@ -0,0 +1,142 @@
+package com.sckw.transport.model.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author :chenXiaoFei
+ * @version :1.0
+ * @description : 分页查询订单响应参数
+ * @create :2025-11-11 09:15:00
+ */
+@Data
+public class LogisticsOrderResp implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 7872786124086521416L;
+    /**
+     * 物流订单id
+     */
+    @Schema(description = "物流订单id")
+    private String logisticsOrderId;
+    /**
+     * 物流订单编号
+     */
+    @Schema(description = "物流订单编号")
+    private String logisticsOrderNo;
+    /**
+     * 托运单位id
+     */
+    @Schema(description = "托运单位id")
+    private String consignCompanyId;
+    /**
+     * 托运单位名称
+     */
+    @Schema(description = "托运单位名称")
+    private String consignCompanyName;
+    /**
+     * 承运单位id
+     */
+    @Schema(description = "承运单位id")
+    private String carriageCompanyId;
+    /**
+     * 承运单位名称
+     */
+    @Schema(description = "承运单位名称")
+    private String carriageCompanyName;
+    /**
+     * 商品id
+     */
+    @Schema(description = "商品id")
+    private String goodsId;
+    /**
+     * 商品名称
+     */
+    @Schema(description = "商品名称")
+    private String goodsName;
+    /**
+     * 运输单价
+     */
+    @Schema(description = "运输单价")
+    private String transportPrice;
+    /**
+     * 计费方式
+     */
+    @Schema(description = "计费方式")
+    private String chargeType;
+    /**
+     * 计费方式描述
+     */
+    @Schema(description = "计费方式描述")
+    private String chargeTypeDesc;
+    /**
+     * 订单总量
+     */
+    @Schema(description = "订单总量")
+    private String amount;
+    /**
+     * 预计运费
+     */
+    @Schema(description = "预计运费")
+    private String expectedTransportPrice;
+    /**
+     * 实际运费
+     */
+    @Schema(description = "实际运费")
+    private String actualTransportPrice;
+    /**
+     * 累计装货量
+     */
+    @Schema(description = "累计装货量")
+    private String loadAmount;
+    /**
+     * 累计卸货量
+     */
+    @Schema(description = "累计卸货量")
+    private String unloadAmount;
+    /**
+     * 装货地址
+     */
+    @Schema(description = "装货地址")
+    private String loadAddress;
+    /**
+     * 卸货地址
+     */
+
+    @Schema(description = "卸货地址")
+    private String unloadAddress;
+    /**
+     * 卸货联系人
+     */
+    @Schema(description = "卸货联系人")
+    private String unloadContacts;
+    /**
+     * 卸货联系电话
+     */
+
+    @Schema(description = "卸货联系电话")
+    private String unloadPhone;
+    /**
+     * 开始时间
+     */
+    @Schema(description = "开始时间")
+    private String startTime;
+    /**
+     * 结束时间
+     */
+    @Schema(description = "结束时间")
+    private String endTime;
+    /**
+     * 关联合同编号
+     */
+    @Schema(description = "关联合同编号")
+    private String contractNo;
+    /**
+     * 创建时间
+     */
+    @Schema(description = "创建时间")
+    private String createTime;
+
+}

+ 67 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/QueryLogisticsOrderReq.java

@@ -0,0 +1,67 @@
+package com.sckw.transport.model.param;
+
+import com.sckw.core.web.request.PageReq;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author :chenXiaoFei
+ * @version :1.0
+ * @description : 分页查询物流订单请求参数
+ * @create :2025-11-11 09:11:00
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class QueryLogisticsOrderReq extends PageReq implements Serializable {
+    @Serial
+    private static final long serialVersionUID = -1959135761190054856L;
+    /**
+     * 订单编号
+     */
+    @Schema(description = "订单编号")
+    private String orderNo;
+    /**
+     * 商品名称
+     */
+    @Schema(description = "商品名称")
+    private String goodsName;
+    /**
+     * 托运单位id
+     */
+    @Schema(description = "托运单位id")
+    private String consignCompanyId;
+    /**
+     * 承运单位id
+     */
+    @Schema(description = "承运单位id")
+    private String carriageCompanyId;
+    /**
+     * 订单开始时间
+     */
+    @Schema(description = "订单开始时间")
+    private String startTime;
+    /**
+     * 订单结束时间
+     */
+    @Schema(description = "订单结束时间")
+    private String endTime;
+    /**
+     * 企业id
+     */
+    @Schema(description = "企业id")
+    private String entId;
+    /**
+     * 企业类型
+     */
+    @Schema(description = "企业类型")
+    private String entType;
+    /**
+     * 订单状态
+     */
+    @Schema(description = "订单状态")
+    private String orderStatus;
+}

+ 194 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/LogisticsOrderDetailResp.java

@@ -0,0 +1,194 @@
+package com.sckw.transport.model.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author :chenXiaoFei
+ * @version :1.0
+ * @description : 物流订单详情返回参数
+ * @create :2025-11-11 14:33:00
+ */
+@Data
+public class LogisticsOrderDetailResp implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 4964311980474791569L;
+    /**
+     * 合同信息
+     */
+    @Schema(description = "合同信息")
+    private ContractInfoVO contractInfoVO;
+
+    /**
+     * 单位信息
+     */
+    @Schema(description = "单位信息")
+    private UnitInfoVO unitInfoVO;
+    /**
+     * 货物信息
+     */
+    @Schema(description = "货物信息")
+    private GoodsInfoVO goodsInfoVO;
+
+    /**
+     * 装卸货信息
+     */
+    @Schema(description = "装卸货信息")
+    private LoadingInfoVO loadingInfoVO;
+
+    /**
+     * 履约信息
+     */
+    @Schema(description = "履约信息")
+    private PerformanceInfoVO performanceInfoVO;
+
+
+    @Data
+    public static class ContractInfoVO implements Serializable{
+        @Serial
+        private static final long serialVersionUID = 572103438745722443L;
+        /**
+         * 物流合同编号
+         */
+        @Schema(description = "物流合同编号")
+        private String contractNo;
+        /**
+         * 物流合同名称
+         */
+        @Schema(description = "物流合同名称")
+        private String contractName;
+    }
+    @Data
+    public static class UnitInfoVO implements Serializable{
+        @Serial
+        private static final long serialVersionUID = 4016114207957759200L;
+        /**
+         * 托运单位id
+         */
+        @Schema(description = "托运单位id")
+        private String consignUnitId;
+        /**
+         * 托运单位名称
+         */
+        @Schema(description = "托运单位名称")
+        private String consignUnitName;
+        /**
+         * 托运联系电话
+         */
+        @Schema(description = "托运联系电话")
+        private String consignUnitPhone;
+        /**
+         * 承运单位id
+         */
+        @Schema(description = "承运单位id")
+        private String carriageUnitId;
+        /**
+         * 承运单位名称
+         */
+        @Schema(description = "承运单位名称")
+        private String carriageUnitName;
+        /**
+         * 承运联系电话
+         */
+        @Schema(description = "承运联系电话")
+        private String carriageUnitPhone;
+    }
+    @Data
+    public static class GoodsInfoVO implements Serializable{
+        @Serial
+        private static final long serialVersionUID = -7221514366256142223L;
+        /**
+         * 商品名称
+         */
+        @Schema(description = "商品名称")
+        private String goodsName;
+        /**
+         * 运输单价
+         */
+        @Schema(description = "运输单价")
+        private String unitPrice;
+        /**
+         * 订单总量
+         */
+        @Schema(description = "订单总量")
+        private String orderAmount;
+        /**
+         * 运输费用 (运输单价*下单量)
+         */
+        @Schema(description = "运输费用")
+        private String carriageCost;
+    }
+    @Data
+    public static class LoadingInfoVO implements Serializable{
+        @Serial
+        private static final long serialVersionUID = 2756355297144901998L;
+        /**
+         * 装货地址
+         */
+        @Schema(description = "装货地址")
+        private String loadAddress;
+        /**
+         * 卸货地址
+         */
+        @Schema(description = "卸货地址")
+        private String unloadAddress;
+        /**
+         * 卸货联系人
+         */
+        @Schema(description = "卸货联系人")
+        private String unloadContacts;
+        /**
+         * 卸货联系电话
+         */
+        @Schema(description = "卸货联系电话")
+        private String unloadPhone;
+    }
+    @Data
+    public static class PerformanceInfoVO implements Serializable{
+        @Serial
+        private static final long serialVersionUID = 910241778405169469L;
+        /**
+         * 计费方式
+         */
+        @Schema(description = "计费方式")
+        private String billingMode;
+        /**
+         * 计费方式描述
+         */
+        @Schema(description = "计费方式描述")
+        private String billingModeDesc;
+        /**
+         * 累计完成车次
+         */
+        @Schema(description = "累计完成车次")
+        private String completedCarNum;
+        /**
+         * 已接单量
+         */
+        @Schema(description = "已接单量")
+        private String orderAmount;
+        /**
+         * 累计装货量
+         */
+        @Schema(description = "累计装货量")
+        private String loadAmount;
+        /**
+         * 累计卸货量
+         */
+        @Schema(description = "累计卸货量")
+        private String unloadAmount;
+        /**
+         * 累计运费
+         */
+        @Schema(description = "累计运费")
+        private String totalCarriageCost;
+        /**
+         * 订单余量
+         */
+        @Schema(description = "订单余量")
+        private String surplusAmount;
+    }
+}

+ 26 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/LogisticsOrderReq.java

@@ -0,0 +1,26 @@
+package com.sckw.transport.model.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author :chenXiaoFei
+ * @version :1.0
+ * @description : 物流订单分页查询请求参数
+ * @create :2025-11-11 14:33:00
+ */
+@Data
+public class LogisticsOrderReq implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1501220305275964969L;
+    /**
+     * 物流订单id
+     */
+    @Schema(description = "物流订单id")
+    @NotBlank(message = "物流订单id不能为空")
+    private String logisticsOrderId;
+}

+ 31 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderAddressRepository.java

@@ -0,0 +1,31 @@
+package com.sckw.transport.repository;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sckw.transport.dao.KwtLogisticsOrderAddressMapper;
+import com.sckw.transport.model.KwtLogisticsOrderAddress;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author :chenXiaoFei
+ * @version :1.0
+ * @description : 订单地址相关接口
+ * @create :2025-11-11 13:33:00
+ */
+@Repository
+public class KwtLogisticsOrderAddressRepository extends ServiceImpl<KwtLogisticsOrderAddressMapper, KwtLogisticsOrderAddress> {
+    public List<KwtLogisticsOrderAddress> queryByLogOrderIds(List<Long> logOrderIdList) {
+
+        return list(Wrappers.<KwtLogisticsOrderAddress>lambdaQuery()
+                .eq(KwtLogisticsOrderAddress::getDelFlag,0)
+                .in(KwtLogisticsOrderAddress::getLOrderId,logOrderIdList));
+    }
+
+    public List<KwtLogisticsOrderAddress> queryByLogOrderId(Long logOrderId) {
+        return list(Wrappers.<KwtLogisticsOrderAddress>lambdaQuery()
+                .eq(KwtLogisticsOrderAddress::getDelFlag,0)
+                .eq(KwtLogisticsOrderAddress::getLOrderId,logOrderId));
+    }
+}

+ 7 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderContractRepository.java

@@ -23,4 +23,11 @@ public class KwtLogisticsOrderContractRepository extends ServiceImpl<KwtLogistic
                 .eq(KwtLogisticsOrderContract::getDelFlag,0)
                 .in(KwtLogisticsOrderContract::getLOrderId,logOrderIds));
     }
+    public KwtLogisticsOrderContract queryByLogOrderId(Long logOrderId) {
+        return getOne(Wrappers.<KwtLogisticsOrderContract>lambdaQuery()
+                .eq(KwtLogisticsOrderContract::getDelFlag,0)
+                .eq(KwtLogisticsOrderContract::getLOrderId,logOrderId)
+                .orderByDesc(KwtLogisticsOrderContract::getId)
+                .last("limit 1"));
+    }
 }

+ 40 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderGoodsRepository.java

@@ -0,0 +1,40 @@
+package com.sckw.transport.repository;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sckw.transport.dao.KwtLogisticsOrderGoodsMapper;
+import com.sckw.transport.model.KwtLogisticsOrderGoods;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author :chenXiaoFei
+ * @version :1.0
+ * @description : 物流商品相关接口
+ * @create :2025-11-11 09:42:00
+ */
+@Repository
+public class KwtLogisticsOrderGoodsRepository extends ServiceImpl<KwtLogisticsOrderGoodsMapper, KwtLogisticsOrderGoods> {
+    public List<KwtLogisticsOrderGoods> queryByGoodsName(String goodsName) {
+        return list(Wrappers.<KwtLogisticsOrderGoods>lambdaQuery()
+                .eq(KwtLogisticsOrderGoods::getDelFlag,0)
+                .like(KwtLogisticsOrderGoods::getGoodsName,goodsName));
+    }
+
+    public List<KwtLogisticsOrderGoods> queryByLogOrderIds(List<Long> logOrderIdList) {
+        return list(Wrappers.<KwtLogisticsOrderGoods>lambdaQuery()
+                .eq(KwtLogisticsOrderGoods::getDelFlag,0)
+                .in(KwtLogisticsOrderGoods::getLOrderId,logOrderIdList)
+        );
+    }
+
+    public KwtLogisticsOrderGoods queryByLogOrderId(Long id) {
+        return getOne(Wrappers.<KwtLogisticsOrderGoods>lambdaQuery()
+                .eq(KwtLogisticsOrderGoods::getId,id)
+                .eq(KwtLogisticsOrderGoods::getDelFlag,0)
+                .orderByDesc(KwtLogisticsOrderGoods::getId)
+                .last("limit 1")
+        );
+    }
+}

+ 25 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderRepository.java

@@ -1,9 +1,13 @@
 package com.sckw.transport.repository;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sckw.transport.dao.KwtLogisticsOrderMapper;
 import com.sckw.transport.model.KwtLogisticsOrder;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Repository;
 
 import java.time.LocalDateTime;
@@ -32,4 +36,25 @@ public class KwtLogisticsOrderRepository extends ServiceImpl<KwtLogisticsOrderMa
                 .eq(KwtLogisticsOrder::getDelFlag, 0)
                 .eq(KwtLogisticsOrder::getTOrderId, tradeId));
     }
+
+        public IPage<KwtLogisticsOrder> queryByPage(Set<Long> logisticsOrderIds,String orderNo,String status,
+                                                 String startTime, String endTime,  int pageNum, int pageSize) {
+        return page(new Page<>(pageNum, pageSize),
+                Wrappers.<KwtLogisticsOrder>lambdaQuery()
+                        .eq(KwtLogisticsOrder::getDelFlag, 0)
+                        .in(CollectionUtils.isNotEmpty(logisticsOrderIds), KwtLogisticsOrder::getId, logisticsOrderIds)
+                        .eq(StringUtils.isNotBlank(status),KwtLogisticsOrder::getStatus, status)
+                        .like(StringUtils.isNotBlank(orderNo),KwtLogisticsOrder::getLOrderNo, orderNo)
+                        .ge(StringUtils.isNotBlank(startTime),KwtLogisticsOrder::getLoadTime, startTime)
+                        .le(StringUtils.isNotBlank(startTime),KwtLogisticsOrder::getUnloadTime, endTime)
+                        .orderByDesc(KwtLogisticsOrder::getCreateTime)
+                        .orderByDesc(KwtLogisticsOrder::getId)
+        );
+    }
+
+    public KwtLogisticsOrder queryByLogisticsOrderId(Long logOrderId) {
+        return getOne(Wrappers.<KwtLogisticsOrder>lambdaQuery()
+                .eq(KwtLogisticsOrder::getDelFlag,0)
+                .eq(KwtLogisticsOrder::getId, logOrderId));
+    }
 }

+ 12 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtLogisticsOrderUnitRepository.java

@@ -35,4 +35,16 @@ public class KwtLogisticsOrderUnitRepository extends ServiceImpl<KwtLogisticsOrd
                 .eq(KwtLogisticsOrderUnit::getDelFlag,0)
                 .in(KwtLogisticsOrderUnit::getLOrderId,logIds));
     }
+
+    public List<KwtLogisticsOrderUnit> queryByEntIds(Set<Long> entIds) {
+        return list(Wrappers.<KwtLogisticsOrderUnit>lambdaQuery()
+                .eq(KwtLogisticsOrderUnit::getDelFlag,0)
+                .in(KwtLogisticsOrderUnit::getEntId,entIds));
+    }
+
+    public List<KwtLogisticsOrderUnit> queryByLOrderId(Long logOrderId) {
+        return list(Wrappers.<KwtLogisticsOrderUnit>lambdaQuery()
+                .eq(KwtLogisticsOrderUnit::getDelFlag,0)
+                .eq(KwtLogisticsOrderUnit::getLOrderId,logOrderId));
+    }
 }

+ 6 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderSubtaskRepository.java

@@ -47,4 +47,10 @@ public class KwtWaybillOrderSubtaskRepository extends ServiceImpl<KwtWaybillOrde
                 .eq(BaseModel::getDelFlag,0)
                 .in(KwtWaybillOrderSubtask::getLOrderId,logIds));
     }
+
+    public List<KwtWaybillOrderSubtask> queryByLogId(Long logOrderId) {
+        return list(Wrappers.<KwtWaybillOrderSubtask>lambdaQuery()
+                .eq(BaseModel::getDelFlag,0)
+                .eq(KwtWaybillOrderSubtask::getLOrderId,logOrderId));
+    }
 }

+ 358 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsConsignmentService.java

@@ -6,18 +6,20 @@ 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.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
 import com.sckw.contract.api.RemoteContractService;
 import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
+import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.constant.NumberConstant;
-import com.sckw.core.model.enums.CarWaybillEnum;
-import com.sckw.core.model.enums.LogisticsOrderEnum;
-import com.sckw.core.model.enums.OrderRuleEnum;
-import com.sckw.core.model.enums.RedisOrderGenerateEnum;
+import com.sckw.core.model.enums.*;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageRes;
 import com.sckw.core.model.page.PageResult;
@@ -25,6 +27,7 @@ import com.sckw.core.utils.*;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.excel.utils.DateUtil;
 import com.sckw.excel.utils.ValidUtil;
 import com.sckw.fleet.api.RemoteFleetService;
@@ -48,11 +51,17 @@ import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
 import com.sckw.transport.model.param.AddLogisticsOrderParam;
 import com.sckw.transport.model.param.LogisticsConsignmentParam;
+import com.sckw.transport.model.param.LogisticsOrderResp;
+import com.sckw.transport.model.param.QueryLogisticsOrderReq;
 import com.sckw.transport.model.vo.*;
+import com.sckw.transport.repository.*;
 import io.seata.spring.annotation.GlobalTransactional;
 import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.stream.function.StreamBridge;
 import org.springframework.stereotype.Service;
@@ -60,8 +69,10 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -71,6 +82,7 @@ import java.util.stream.Collectors;
  */
 @Slf4j
 @Service
+@RequiredArgsConstructor
 @SuppressWarnings("all")
 public class KwtLogisticsConsignmentService {
 
@@ -143,6 +155,12 @@ public class KwtLogisticsConsignmentService {
     @Autowired
     public KwtWaybillOrderV1Mapper waybillOrderV1Mapper;
 
+    private final KwtLogisticsOrderRepository logisticsOrderRepository;
+    private final KwtLogisticsOrderGoodsRepository logisticsOrderGoodsRepository;
+    private final KwtLogisticsOrderUnitRepository logisticsOrderUnitRepository;
+    private final KwtLogisticsOrderAddressRepository logisticsOrderAddressRepository;
+    private final KwtLogisticsOrderContractRepository logisticsOrderContractRepository;
+    private final KwtWaybillOrderSubtaskRepository logisticsOrderSubtaskRepository;
     /**
      * 采购订单-物流托运生成托运订单
      *
@@ -2196,4 +2214,340 @@ public class KwtLogisticsConsignmentService {
     public HttpResult logisticsOrderSubcontract(LogisticsOrderSubcontractDto logisticsOrderSubcontractDto) {
         return logisticsOrderConsignmentService.logisticsOrderSubcontract(logisticsOrderSubcontractDto);
     }
+
+    public PageDataResult<LogisticsOrderResp> queryLogisticsOrderByPage(QueryLogisticsOrderReq req) {
+        log.info("分页查询物流订单传递参数信息:{}", JSONObject.toJSONString(req));
+        Set<Long> logOrderIds = Sets.newHashSet();
+        Set<Long> allEnt = Sets.newHashSet();
+        //根据企业类型查询企业
+        if(StringUtils.isNotBlank(req.getEntId())){
+            allEnt.add(Long.parseLong(req.getEntId()));
+            EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(Long.parseLong(req.getEntId()));
+            if (Objects.nonNull(entCacheResDto)) {
+                EntCacheResDto entCacheResDto1 = remoteSystemService.queryEntTreeById(entCacheResDto.getId());
+                List<EntCacheResDto> child = entCacheResDto1.getChild();
+                if (CollectionUtils.isNotEmpty(child)) {
+                    allEnt.addAll(child.stream().filter(x->x.getEntTypes().contains(req.getEntType())).map(EntCacheResDto::getId).toList());
+                }
+            }
+        }
+        //根据托运单位或者承运单位查询企业
+
+        if (StringUtils.isNotBlank(req.getConsignCompanyId())){
+            allEnt.add(Long.parseLong(req.getConsignCompanyId()));
+        }
+        if (StringUtils.isNotBlank(req.getCarriageCompanyId())){
+            allEnt.add(Long.parseLong(req.getCarriageCompanyId()));
+        }
+
+        //根据商品名称查询物流订单
+        List<KwtLogisticsOrderGoods>  logisticsOrderGoodsList=
+                logisticsOrderGoodsRepository.queryByGoodsName(req.getGoodsName());
+        if(org.springframework.util.CollectionUtils.isEmpty(logisticsOrderGoodsList)){
+            //获取物流订单
+            Set<Long> logOrderFormGoodsIds =
+                    logisticsOrderGoodsList.stream().map(KwtLogisticsOrderGoods::getLOrderId).collect(Collectors.toSet());
+            logOrderIds.addAll(logOrderFormGoodsIds);
+        }
+
+        List<KwtLogisticsOrderUnit> logOrderUnits =logisticsOrderUnitRepository.queryByEntIds(allEnt);
+        if(org.springframework.util.CollectionUtils.isEmpty(logOrderUnits)){
+            //获取物流订单
+            Set<Long> logOrderFormUnitIds =
+                    logOrderUnits.stream().map(KwtLogisticsOrderUnit::getLOrderId).collect(Collectors.toSet());
+            logOrderIds.addAll(logOrderFormUnitIds);
+        }
+
+
+
+        //分页查询物流订单
+       IPage<KwtLogisticsOrder> page = logisticsOrderRepository.queryByPage(logOrderIds,req.getOrderStatus(),
+               req.getOrderNo(),
+               req.getStartTime(), req.getEndTime(), req.getPageNum(), req.getPageSize());
+        List<KwtLogisticsOrder> records = page.getRecords();
+        if(org.springframework.util.CollectionUtils.isEmpty(records)){
+            return PageDataResult.empty(req.getPageNum(), req.getPageSize());
+        }
+        //查获取物流订单号
+        List<Long> logOrderIdList =
+                records.stream().map(KwtLogisticsOrder::getId).distinct().collect(Collectors.toList());
+        //通过物流订单号查询运输的单位
+        List<KwtLogisticsOrderUnit> unitList =logisticsOrderUnitRepository.queryByLogOrderIds(logOrderIdList);
+        Map<String, KwtLogisticsOrderUnit> logOrderIdAndUnitTypeKeyAndUnitMap = Maps.newHashMap();
+        if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
+            logOrderIdAndUnitTypeKeyAndUnitMap = unitList.stream()
+                    .peek(x -> x.setLogisticsOrderIdAndUnitTypeKey(x.getLOrderId() + "-" + x.getUnitType()))
+                    .collect(Collectors.toMap(KwtLogisticsOrderUnit::getLogisticsOrderIdAndUnitTypeKey,
+                            Function.identity(), (x, y) -> x));
+        }
+        //查询商品信息
+        List<KwtLogisticsOrderGoods> logOrderGoodsList =logisticsOrderGoodsRepository.queryByLogOrderIds(logOrderIdList);
+
+        List<Long> goodsIds = Lists.newArrayList();
+        Map<Long, KwtLogisticsOrderGoods> logIdAndGoodsMap = Maps.newHashMap();
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(logOrderGoodsList)){
+            goodsIds =
+                    logOrderGoodsList.stream().map(KwtLogisticsOrderGoods::getGoodsId).distinct().collect(Collectors.toList());
+            logIdAndGoodsMap =
+                    logOrderGoodsList.stream().collect(Collectors.toMap(KwtLogisticsOrderGoods::getLOrderId, Function.identity(),
+                            (x, y) -> x));
+        }
+        Map<Long, KwpGoods> goodsIdAndGoodsMap  = Maps.newHashMap();
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(goodsIds)){
+            goodsIdAndGoodsMap = goodsInfoService.getGoodsByIds(goodsIds);
+        }
+
+        //查询地址信息
+        List<KwtLogisticsOrderAddress> logOrderAddressList =logisticsOrderAddressRepository.queryByLogOrderIds(logOrderIdList);
+        Map<String, KwtLogisticsOrderAddress> logisticsOrderIdAndUnitTypeKeyAndAddressMap = Maps.newHashMap();
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(logOrderAddressList)){
+           logisticsOrderIdAndUnitTypeKeyAndAddressMap =
+                    logOrderAddressList.stream().peek(x -> x.setLogisticsOrderIdAndUnitTypeKey(x.getLOrderId() + "-" + x.getAddressType()))
+                    .collect(Collectors.toMap(KwtLogisticsOrderAddress::getLogisticsOrderIdAndUnitTypeKey,
+                            Function.identity(), (x, y) -> x));
+        }
+        //查询物流订单合同信息
+        List<KwtLogisticsOrderContract> logOrderContractList =logisticsOrderContractRepository.queryByLogOrderIds( new HashSet<>(logOrderIdList));
+        Map<Long, KwtLogisticsOrderContract> logOrderIdAndContractMap = Maps.newHashMap();
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(logOrderContractList)){
+            logOrderIdAndContractMap =
+                    logOrderContractList.stream().collect(Collectors.toMap(KwtLogisticsOrderContract::getLOrderId,
+                    Function.identity(), (x, y) -> x));
+        }
+
+        Map<String, KwtLogisticsOrderUnit> finalLogOrderIdAndUnitTypeKeyAndUnitMap = logOrderIdAndUnitTypeKeyAndUnitMap;
+        Map<Long, KwtLogisticsOrderGoods> finalLogIdAndGoodsMap = logIdAndGoodsMap;
+        Map<Long, KwpGoods> finalGoodsIdAndGoodsMap = goodsIdAndGoodsMap;
+        Map<String, KwtLogisticsOrderAddress> finalLogisticsOrderIdAndUnitTypeKeyAndAddressMap = logisticsOrderIdAndUnitTypeKeyAndAddressMap;
+        Map<Long, KwtLogisticsOrderContract> finalLogOrderIdAndContractMap = logOrderIdAndContractMap;
+
+        List<LogisticsOrderResp> resps = records.stream()
+                .map(x ->getLogisticsOrderResp(x,
+                finalLogOrderIdAndUnitTypeKeyAndUnitMap, finalLogIdAndGoodsMap, finalGoodsIdAndGoodsMap, finalLogisticsOrderIdAndUnitTypeKeyAndAddressMap, finalLogOrderIdAndContractMap))
+                .collect(Collectors.toList());
+
+        return PageDataResult.of(page,resps);
+    }
+
+    @NotNull
+    private static LogisticsOrderResp getLogisticsOrderResp(KwtLogisticsOrder kwtLogisticsOrder, Map<String, KwtLogisticsOrderUnit> finalLogOrderIdAndUnitTypeKeyAndUnitMap, Map<Long, KwtLogisticsOrderGoods> finalLogIdAndGoodsMap, Map<Long, KwpGoods> finalGoodsIdAndGoodsMap, Map<String, KwtLogisticsOrderAddress> finalLogisticsOrderIdAndUnitTypeKeyAndAddressMap, Map<Long, KwtLogisticsOrderContract> finalLogOrderIdAndContractMap) {
+        LogisticsOrderResp logisticsOrderResp = new LogisticsOrderResp();
+        logisticsOrderResp.setLogisticsOrderId(String.valueOf(kwtLogisticsOrder.getId()));
+        logisticsOrderResp.setLogisticsOrderNo(kwtLogisticsOrder.getLOrderNo());
+        KwtLogisticsOrderUnit consignCompany = finalLogOrderIdAndUnitTypeKeyAndUnitMap.getOrDefault(kwtLogisticsOrder.getId() + "-" + NumberConstant.ONE,
+                new KwtLogisticsOrderUnit());
+        logisticsOrderResp.setConsignCompanyId(String.valueOf(consignCompany.getId()));
+        logisticsOrderResp.setConsignCompanyName(consignCompany.getFirmName());
+        KwtLogisticsOrderUnit carriageCompany = finalLogOrderIdAndUnitTypeKeyAndUnitMap.getOrDefault(kwtLogisticsOrder.getId() +
+                        "-" + NumberConstant.TWO,
+                new KwtLogisticsOrderUnit());
+        logisticsOrderResp.setCarriageCompanyId(String.valueOf(carriageCompany.getId()));
+        logisticsOrderResp.setCarriageCompanyName(carriageCompany.getFirmName());
+
+        KwtLogisticsOrderGoods goods = finalLogIdAndGoodsMap.getOrDefault(kwtLogisticsOrder.getId(), new KwtLogisticsOrderGoods());
+        KwpGoods kwpGoods = finalGoodsIdAndGoodsMap.getOrDefault(goods.getId(), new KwpGoods());
+        logisticsOrderResp.setGoodsId(String.valueOf(goods.getId()));
+        logisticsOrderResp.setGoodsName(kwpGoods.getName());
+        logisticsOrderResp.setTransportPrice(Objects.nonNull(kwtLogisticsOrder.getPrice()) ? kwtLogisticsOrder.getPrice().setScale(2,
+                RoundingMode.HALF_UP).toPlainString() : "0.00");
+        logisticsOrderResp.setChargeType(kwtLogisticsOrder.getBillingMode());
+        logisticsOrderResp.setChargeTypeDesc(DictEnum.getLabel(DictTypeEnum.CHARGING_TYPE.getType(),
+                String.valueOf(kwtLogisticsOrder.getBillingMode())));
+        logisticsOrderResp.setAmount(Objects.nonNull(kwtLogisticsOrder.getAmount()) ?
+                kwtLogisticsOrder.getAmount().setScale(2, RoundingMode.HALF_UP).toPlainString() : "0.00");
+        BigDecimal expectedTransportPrice = BigDecimal.ZERO;
+        BigDecimal actualTransportPrice = BigDecimal.ZERO;
+        if (org.apache.commons.lang3.StringUtils.equals(kwtLogisticsOrder.getBillingMode(),DictEnum.CHARGING_TYPE_1.getValue())){
+            expectedTransportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getLoadAmount()) ?
+                    kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getLoadAmount()) : BigDecimal.ZERO;
+            actualTransportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getTotalLoadAmount()) ?
+                    kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getTotalLoadAmount()) : BigDecimal.ZERO;
+
+        }else if (org.apache.commons.lang3.StringUtils.equals(kwtLogisticsOrder.getBillingMode(),DictEnum.CHARGING_TYPE_2.getValue())){
+            expectedTransportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getUnloadAmount()) ?
+                    kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getUnloadAmount()) : BigDecimal.ZERO;
+            actualTransportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) && Objects.nonNull(kwtLogisticsOrder.getTotalUnloadAmount()) ?
+                    kwtLogisticsOrder.getPrice().multiply(kwtLogisticsOrder.getTotalUnloadAmount()) : BigDecimal.ZERO;
+        }
+
+
+        logisticsOrderResp.setExpectedTransportPrice(expectedTransportPrice.setScale(2,RoundingMode.HALF_UP).toPlainString());
+        logisticsOrderResp.setActualTransportPrice(actualTransportPrice.setScale(2,RoundingMode.HALF_UP).toPlainString());
+        logisticsOrderResp.setLoadAmount(Objects.nonNull(kwtLogisticsOrder.getTotalLoadAmount()) ?
+                kwtLogisticsOrder.getTotalLoadAmount().setScale(2,RoundingMode.HALF_UP).toPlainString() : "0.00");
+        logisticsOrderResp.setUnloadAmount(Objects.nonNull(kwtLogisticsOrder.getTotalUnloadAmount()) ?
+                kwtLogisticsOrder.getTotalUnloadAmount().setScale(2,RoundingMode.HALF_UP).toPlainString() : "0.00");
+
+        KwtLogisticsOrderAddress loadAdd = finalLogisticsOrderIdAndUnitTypeKeyAndAddressMap.getOrDefault(kwtLogisticsOrder.getId() + "-" + AddressTypeEnum.SHIPMENT.getCode(), new KwtLogisticsOrderAddress());
+        logisticsOrderResp.setLoadAddress(loadAdd.getDetailAddress());
+        KwtLogisticsOrderAddress unloadAdd =
+                finalLogisticsOrderIdAndUnitTypeKeyAndAddressMap.getOrDefault(kwtLogisticsOrder.getId() + "-" + AddressTypeEnum.TAKE.getCode(), new KwtLogisticsOrderAddress());
+        logisticsOrderResp.setUnloadAddress(unloadAdd.getDetailAddress());
+        logisticsOrderResp.setUnloadContacts(unloadAdd.getContacts());
+        logisticsOrderResp.setUnloadPhone(unloadAdd.getPhone());
+        logisticsOrderResp.setStartTime(DateUtils.format(kwtLogisticsOrder.getStartTime(), DateUtils.DATE_PATTERN));
+        logisticsOrderResp.setEndTime(DateUtils.format(kwtLogisticsOrder.getEndTime(), DateUtils.DATE_PATTERN));
+
+        KwtLogisticsOrderContract orderContract= finalLogOrderIdAndContractMap.getOrDefault(kwtLogisticsOrder.getId(),
+                new KwtLogisticsOrderContract());
+        logisticsOrderResp.setContractNo(orderContract.getContractNo());
+        logisticsOrderResp.setCreateTime(DateUtils.format(kwtLogisticsOrder.getCreateTime(), DateUtils.DATE_TIME_PATTERN));
+
+        return logisticsOrderResp;
+    }
+
+    public LogisticsOrderDetailResp getLogisticsOrderDetail(@Valid LogisticsOrderReq req) {
+        KwtLogisticsOrder logisticsOrder =
+                logisticsOrderRepository.queryByLogisticsOrderId(Long.valueOf(req.getLogisticsOrderId()));
+        if (Objects.nonNull(logisticsOrder)){
+            throw new BusinessException("物流订单不存在");
+        }
+        //根据物流订单号查询物流合同
+        KwtLogisticsOrderContract orderContract = logisticsOrderContractRepository.queryByLogOrderId(logisticsOrder.getId());
+        //根据订单号查询物流公司信息
+        List<KwtLogisticsOrderUnit> unitList = logisticsOrderUnitRepository.queryByLOrderId(logisticsOrder.getId());
+        Map<String, KwtLogisticsOrderUnit> logOrderIdUnitTypeKeyAndUnitMap = Maps.newHashMap();
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(unitList)){
+            logOrderIdUnitTypeKeyAndUnitMap = unitList.stream()
+                    .peek(x -> x.setLogisticsOrderIdAndUnitTypeKey(x.getLOrderId() + "-" + x.getUnitType()))
+                    .collect(Collectors.toMap(KwtLogisticsOrderUnit::getLogisticsOrderIdAndUnitTypeKey, Function.identity(), (v1, v2) -> v1));
+
+        }
+
+        //根据物流订单号查询商品信息
+        KwtLogisticsOrderGoods goods = logisticsOrderGoodsRepository.queryByLogOrderId(logisticsOrder.getId());
+        KwpGoods kwpGoods = null;
+        if (Objects.nonNull(goods)){
+             kwpGoods = goodsInfoService.getGoodsById(goods.getGoodsId());
+        }
+
+        //根据订单号查询装卸货地址
+        List<KwtLogisticsOrderAddress> addressList = logisticsOrderAddressRepository.queryByLogOrderId(logisticsOrder.getId());
+        Map<String, KwtLogisticsOrderAddress> logOrderIdAndUnitTypeKeyAndAddressMap = Maps.newHashMap();
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(addressList)){
+            logOrderIdAndUnitTypeKeyAndAddressMap = addressList.stream()
+                    .peek(x -> x.setLogisticsOrderIdAndUnitTypeKey(x.getLOrderId() + "-" + x.getAddressType()))
+                    .collect(Collectors.toMap(KwtLogisticsOrderAddress::getLogisticsOrderIdAndUnitTypeKey, Function.identity(), (v1, v2) -> v1));
+        }
+
+        //根据物流订单号查询运单信息
+        List<KwtWaybillOrderSubtask> waybillOrderSubtasks = logisticsOrderSubtaskRepository.queryByLogId(logisticsOrder.getId());
+
+        //获取返回信息
+        return getLogisticsOrderDetailResp(orderContract, logOrderIdUnitTypeKeyAndUnitMap, logisticsOrder, kwpGoods,
+                logOrderIdAndUnitTypeKeyAndAddressMap, waybillOrderSubtasks);
+
+    }
+
+    @NotNull
+    private static LogisticsOrderDetailResp getLogisticsOrderDetailResp(KwtLogisticsOrderContract orderContract, Map<String, KwtLogisticsOrderUnit> logOrderIdUnitTypeKeyAndUnitMap, KwtLogisticsOrder logisticsOrder, KwpGoods kwpGoods, Map<String, KwtLogisticsOrderAddress> logOrderIdAndUnitTypeKeyAndAddressMap, List<KwtWaybillOrderSubtask> waybillOrderSubtasks) {
+        LogisticsOrderDetailResp logisticsOrderDetailResp = new LogisticsOrderDetailResp();
+        //设置合同信息
+        setContractInfo(orderContract, logisticsOrderDetailResp);
+        //设置单位信息
+        setUnitInfo(logOrderIdUnitTypeKeyAndUnitMap, logisticsOrder, logisticsOrderDetailResp);
+
+        //设置贸易信息
+        setGoodsInfo(kwpGoods, logisticsOrder, logisticsOrderDetailResp);
+
+        //设置装卸货地址信息
+        setAddressInfo(logOrderIdAndUnitTypeKeyAndAddressMap, logisticsOrder, logisticsOrderDetailResp);
+
+        //设置履约信息
+        setPerformInfo(logisticsOrder, waybillOrderSubtasks, logisticsOrderDetailResp);
+        return logisticsOrderDetailResp;
+    }
+
+    private static void setPerformInfo(KwtLogisticsOrder logisticsOrder, List<KwtWaybillOrderSubtask> waybillOrderSubtasks, LogisticsOrderDetailResp logisticsOrderDetailResp) {
+        LogisticsOrderDetailResp.PerformanceInfoVO performanceInfoVO = new LogisticsOrderDetailResp.PerformanceInfoVO();
+        performanceInfoVO.setBillingMode(logisticsOrder.getBillingMode());
+        performanceInfoVO.setBillingModeDesc(DictEnum.getLabel(DictTypeEnum.CHARGING_TYPE.getType(),
+                logisticsOrder.getBillingMode()));
+        performanceInfoVO.setCompletedCarNum(String.valueOf(logisticsOrder.getTotalTake()));
+        performanceInfoVO.setOrderAmount(String.valueOf(waybillOrderSubtasks.size()));
+        BigDecimal loadAmount = BigDecimal.ZERO;
+        BigDecimal unloadAmount = BigDecimal.ZERO;
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(waybillOrderSubtasks)){
+            loadAmount = waybillOrderSubtasks.stream()
+                    .filter(x -> Objects.nonNull(x.getLoadAmount()))
+                    .map(KwtWaybillOrderSubtask::getLoadAmount)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+            unloadAmount = waybillOrderSubtasks.stream()
+                    .filter(x -> Objects.nonNull(x.getUnloadAmount()))
+                    .map(KwtWaybillOrderSubtask::getUnloadAmount)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+        }
+        performanceInfoVO.setLoadAmount(loadAmount.setScale(2,RoundingMode.HALF_UP).toPlainString());
+        performanceInfoVO.setUnloadAmount(unloadAmount.setScale(2,RoundingMode.HALF_UP).toPlainString());
+        BigDecimal totalCarriageCost = BigDecimal.ZERO;
+        if (org.apache.commons.lang3.StringUtils.equals(logisticsOrder.getBillingMode(),
+                DictEnum.CHARGING_TYPE_1.getValue())){
+            totalCarriageCost = Objects.nonNull(logisticsOrder.getPrice()) ? loadAmount.multiply(logisticsOrder.getPrice()) :
+                    BigDecimal.ZERO;
+        }else if (org.apache.commons.lang3.StringUtils.equals(logisticsOrder.getBillingMode(),
+                DictEnum.CHARGING_TYPE_2.getValue())){
+            totalCarriageCost = Objects.nonNull(logisticsOrder.getPrice()) ? unloadAmount.multiply(logisticsOrder.getPrice()) :
+                    BigDecimal.ZERO;
+        }
+        performanceInfoVO.setTotalCarriageCost(totalCarriageCost.setScale(2,RoundingMode.HALF_UP).toPlainString());
+        performanceInfoVO.setSurplusAmount(Objects.nonNull(logisticsOrder.getAmount())  ?
+                logisticsOrder.getAmount().subtract(loadAmount).setScale(2,RoundingMode.HALF_UP).toPlainString() : "0.00");
+
+        logisticsOrderDetailResp.setPerformanceInfoVO(performanceInfoVO);
+    }
+
+    private static void setAddressInfo(Map<String, KwtLogisticsOrderAddress> logOrderIdAndUnitTypeKeyAndAddressMap, KwtLogisticsOrder logisticsOrder, LogisticsOrderDetailResp logisticsOrderDetailResp) {
+        LogisticsOrderDetailResp.LoadingInfoVO loadingInfoVO = new LogisticsOrderDetailResp.LoadingInfoVO();
+        KwtLogisticsOrderAddress loadAdd = logOrderIdAndUnitTypeKeyAndAddressMap.getOrDefault(logisticsOrder.getId() + "-" + AddressTypeEnum.SHIPMENT.getCode(),
+                new KwtLogisticsOrderAddress());
+        loadingInfoVO.setLoadAddress(loadAdd.getDetailAddress());
+        KwtLogisticsOrderAddress unloadAdd =
+                logOrderIdAndUnitTypeKeyAndAddressMap.getOrDefault(logisticsOrder.getId() + "-" + AddressTypeEnum.TAKE.getCode(),
+                new KwtLogisticsOrderAddress());
+        loadingInfoVO.setUnloadAddress(unloadAdd.getDetailAddress());
+        loadingInfoVO.setUnloadContacts(unloadAdd.getContacts());
+        loadingInfoVO.setUnloadPhone(unloadAdd.getPhone());
+        logisticsOrderDetailResp.setLoadingInfoVO(loadingInfoVO);
+    }
+
+    private static void setGoodsInfo(KwpGoods kwpGoods, KwtLogisticsOrder logisticsOrder, LogisticsOrderDetailResp logisticsOrderDetailResp) {
+        LogisticsOrderDetailResp.GoodsInfoVO goodsInfoVO = new LogisticsOrderDetailResp.GoodsInfoVO();
+        if (Objects.nonNull(kwpGoods)){
+            goodsInfoVO.setGoodsName(kwpGoods.getName());
+
+        }
+        goodsInfoVO.setUnitPrice(Objects.nonNull(logisticsOrder.getPrice())? logisticsOrder.getPrice().setScale(2,RoundingMode.HALF_UP).toPlainString() : "0.00");
+        goodsInfoVO.setOrderAmount(Objects.nonNull(logisticsOrder.getAmount()) ? logisticsOrder.getAmount().setScale(2,RoundingMode.HALF_UP).toPlainString() : "0.00");
+        BigDecimal carriageCost = Objects.nonNull(logisticsOrder.getAmount()) && Objects.nonNull(logisticsOrder.getPrice()) ?
+                logisticsOrder.getAmount().multiply(logisticsOrder.getPrice()) : BigDecimal.ZERO;
+        goodsInfoVO.setCarriageCost(carriageCost.setScale(2,RoundingMode.HALF_UP).toPlainString());
+        logisticsOrderDetailResp.setGoodsInfoVO(goodsInfoVO);
+    }
+
+    private static void setUnitInfo(Map<String, KwtLogisticsOrderUnit> logOrderIdUnitTypeKeyAndUnitMap, KwtLogisticsOrder logisticsOrder, LogisticsOrderDetailResp logisticsOrderDetailResp) {
+        LogisticsOrderDetailResp.UnitInfoVO unitInfoVO = new LogisticsOrderDetailResp.UnitInfoVO();
+        KwtLogisticsOrderUnit consignUnit =
+                logOrderIdUnitTypeKeyAndUnitMap.getOrDefault(logisticsOrder.getId() + "-" + NumberConstant.ONE,
+                new KwtLogisticsOrderUnit());
+        unitInfoVO.setConsignUnitId(String.valueOf(consignUnit.getEntId()));
+        unitInfoVO.setConsignUnitName(consignUnit.getFirmName());
+        unitInfoVO.setConsignUnitPhone(consignUnit.getPhone());
+        KwtLogisticsOrderUnit carriageUnit =
+                logOrderIdUnitTypeKeyAndUnitMap.getOrDefault(logisticsOrder.getId() + "-" + NumberConstant.TWO,
+                        new KwtLogisticsOrderUnit());
+        unitInfoVO.setCarriageUnitId(String.valueOf(carriageUnit.getEntId()));
+        unitInfoVO.setCarriageUnitName(carriageUnit.getFirmName());
+        unitInfoVO.setCarriageUnitPhone(carriageUnit.getPhone());
+        logisticsOrderDetailResp.setUnitInfoVO(unitInfoVO);
+    }
+
+    private static void setContractInfo(KwtLogisticsOrderContract orderContract, LogisticsOrderDetailResp logisticsOrderDetailResp) {
+        LogisticsOrderDetailResp.ContractInfoVO contractInfoVO = new LogisticsOrderDetailResp.ContractInfoVO();
+        if (Objects.nonNull(orderContract)){
+            contractInfoVO.setContractNo(orderContract.getContractNo());
+            contractInfoVO.setContractName(orderContract.getContractName());
+        }
+        logisticsOrderDetailResp.setContractInfoVO(contractInfoVO);
+    }
 }

+ 29 - 0
sckw-modules/sckw-transport/src/main/resources/bootstrap-cxf.yml

@@ -0,0 +1,29 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-ng-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-ng-common
+            refresh: true
+
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-ng-service-platform
+            refresh: true