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

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

czh 2 лет назад
Родитель
Сommit
a2aca5e1e3
66 измененных файлов с 2212 добавлено и 931 удалено
  1. 7 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java
  2. 3 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictTypeEnum.java
  3. 1 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CarWaybillEnum.java
  4. 3 3
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/LogisticsOrderEnum.java
  5. 2 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/PasswordUtils.java
  6. 50 69
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java
  7. 8 2
      sckw-modules-api/sckw-modules-bom/pom.xml
  8. 2 2
      sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/KwpGoods.java
  9. 2 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTruckDto.java
  10. 53 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java
  11. 0 13
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerLogisticsOrderController.java
  12. 0 13
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerLogisticsTrackController.java
  13. 0 13
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerTradeOrderController.java
  14. 0 13
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerTradeTrackController.java
  15. 2 2
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/KwpGoods.java
  16. 7 2
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/BuildingMaterialsMarketListParam.java
  17. 13 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/BuildingMaterialsMarketList.java
  18. 11 9
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  19. 37 1
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java
  20. 26 23
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  21. 142 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  22. 61 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/WaybillOrderQuery.java
  23. 54 29
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/CarWaybillVo.java
  24. 4 2
      sckw-modules/sckw-report/src/main/resources/bootstrap-dev.yml
  25. 5 0
      sckw-modules/sckw-transport/pom.xml
  26. 42 19
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  27. 15 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java
  28. 1 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java
  29. 23 8
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java
  30. 37 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/WaybillManagementController.java
  31. 10 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderAddressMapper.java
  32. 10 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderCirculateMapper.java
  33. 9 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderGoodsMapper.java
  34. 13 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java
  35. 8 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderUnitMapper.java
  36. 11 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderAddressMapper.java
  37. 9 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java
  38. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrder.java
  39. 23 38
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrder.java
  40. 85 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderAddress.java
  41. 0 85
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/CarListDTO.java
  42. 0 114
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SendCarDTO.java
  43. 55 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SendCarDto1.java
  44. 181 19
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java
  45. 31 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WayBillDetailDTO.java
  46. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java
  47. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/CarWaybillVO.java
  48. 170 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/SubcontractConsignmentVO.java
  49. 33 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillDataVO.java
  50. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillDetailVO.java
  51. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderVO.java
  52. 333 318
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  53. 13 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  54. 4 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/DriverService.java
  55. 267 11
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  56. 35 21
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  57. 2 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java
  58. 89 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/WaybillManagementService.java
  59. 2 2
      sckw-modules/sckw-transport/src/main/resources/bootstrap-dev.yml
  60. 11 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderAddressMapper.xml
  61. 12 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderCirculateMapper.xml
  62. 9 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderGoodsMapper.xml
  63. 104 75
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml
  64. 11 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderUnitMapper.xml
  65. 34 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderAddressMapper.xml
  66. 22 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

+ 7 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java

@@ -19,6 +19,8 @@ public enum DictEnum {
     PRICE_TYPE_1("price_type", "1", "元/车"),
     WEIGHT_CAR_0("weight_car", "0", "吨/车"),
     WEIGHT_CAR_1("weight_car", "1", "公斤/车"),
+    TRANSPORT_TYPE_0("transport_type", "0", "公斤/车"),
+    TRANSPORT_TYPE_1("transport_type", "1", "吨/车"),
     UNIT_TYPE_0("unit_type","0", "吨"),
     UNIT_TYPE_1("unit_type","1", "方"),
     UNIT_TYPE_2("unit_type","2", "箱"),
@@ -47,6 +49,11 @@ public enum DictEnum {
     TORDER_STATUS_7("tOrder_status", "7", "已结算"),
     CONTRACT_STATUS_0("contract_status", "0", "待签约"),
     CONTRACT_STATUS_1("contract_status", "1", "已签约"),
+    SETTLEMENT_CYCLE_0("settlement_cycle", "0", "周结"),
+    SETTLEMENT_CYCLE_1("settlement_cycle", "1", "月结"),
+    SETTLEMENT_CYCLE_2("settlement_cycle", "2", "季结"),
+    SIGNING_TYPE_0("signing_type", "0", "线上签约"),
+    SIGNING_TYPE_1("signing_type", "1", "线下签约"),
     TORDER_ADDRESS_TYPE_1("tOrder_address_type", "1", "装货地址"),
     TORDER_ADDRESS_TYPE_2("tOrder_address_type", "2", "卸货地址"),
     TORDER_UNIT_TYPE_1("tOrder_unit_type", "1", "采购单位"),

+ 3 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictTypeEnum.java

@@ -19,12 +19,15 @@ public enum DictTypeEnum {
     PICKUP_TYPE("pickup_type", "提货方式"),
     DELIVERY_TYPE("delivery_type", "交付类型"),
     TORDER_SOURCE("tOrder_source", "交易订单来源"),
+    TRANSPORT_TYPE("transport_type", "运输方式"),
     TORDER_STATUS("tOrder_status", "交易订单状态"),
     CONTRACT_STATUS("contract_status", "合同状态"),
     TORDER_ADDRESS_TYPE("tOrder_address_type", "交易订单地址类型"),
     TORDER_UNIT_TYPE("tOrder_unit_type", "交易订单单位类型"),
     ADDRESS_TYPE("address_type", "地址类型"),
     INDUSTRY_TYPE("industry_type", "行业类型"),
+    SETTLEMENT_CYCLE("settlement_cycle", "结算周期"),
+    SIGNING_TYPE("signing_type", "签约方式"),
     CLASSIFICATION_TYPE("classification_type", "分类类型"),
     CATEGORY_TYPE("category_type", "类别类型"),
     PRODUCT_NAME_TYPE("product_name_type", "品名类型"),

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/common/enums/CarWaybillEnum.java → sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CarWaybillEnum.java

@@ -1,4 +1,4 @@
-package com.sckw.transport.common.enums;
+package com.sckw.core.model.enums;
 
 /**
  * @author lfdc

+ 3 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/common/enums/LogisticsOrderEnum.java → sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/LogisticsOrderEnum.java

@@ -1,4 +1,4 @@
-package com.sckw.transport.common.enums;
+package com.sckw.core.model.enums;
 
 /**
  * @author lfdc
@@ -14,8 +14,8 @@ public enum LogisticsOrderEnum {
 //    WAIT_UNLOADING(5, "waitUnLoading", "5", "待卸货"),
     HAVE_FINISHED(4, "haveFinished", "4", "已完成"),
     HAVE_RECONCILED(5, "haveReconciled", "5", "已对账"),
-    HAVE_ALREADY_SETTLED(6, "haveAlreadySettled", "5", "已结算"),
-    SEND_BACK(7, "sendBack", "5", "已退回");
+    HAVE_ALREADY_SETTLED(6, "haveAlreadySettled", "6", "已结算"),
+    SEND_BACK(7, "sendBack", "7", "已退回");
 
     private final Integer code;
     private final String value;

+ 2 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/PasswordUtils.java

@@ -122,8 +122,8 @@ public class PasswordUtils {
 
     public static void main(String[] args) {
 
-        String password = PasswordUtils.entryptPassword(PasswordUtils.md5("17358629958"));
-        String md5 = PasswordUtils.md5("123456");
+        String password = PasswordUtils.entryptPassword(PasswordUtils.md5("13868885042"));
+        String md5 = PasswordUtils.md5("13868885042");
         System.out.println(password);
         System.out.println(md5);
         System.out.println(validatePassword(md5, password));

+ 50 - 69
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java

@@ -68,10 +68,11 @@ public class SckwWaybillOrder{
      */
     private String firmName;
 
+
     /**
      * 车辆id
      */
-    private String truckId;
+    private Long truckId;
 
     /**
      * 车牌号
@@ -81,32 +82,28 @@ public class SckwWaybillOrder{
     /**
      * 车辆类型(牵引车、自卸、高栏、平板、厢式、集装箱车、罐车、封闭式、专项作业车、其他)
      */
-    private Integer truckType;
+    private String truckType;
 
     /**
      * 车能源类型(柴油、汽油、电动、氢能、天然气、液化石油气、甲醇、油电混动、油气混动、其他)
      */
-    private Integer truckEnergyType;
+    private String truckEnergyType;
 
     /**
      * 车使用性质(营运车、租赁车辆、货运车、危化品运输车、非营运车、其他)
      */
-    private Integer truckUseType;
+    private String truckUseType;
 
     /**
      * 车辆颜色
      */
-    private Integer truckColor;
+    private String truckColor;
 
     /**
      * 车挂车号
      */
     private String truckTrailerNo;
 
-    /**
-     * 车队班组
-     */
-    private String truckFleetName;
 
     /**
      * 司机主键ID
@@ -139,6 +136,21 @@ public class SckwWaybillOrder{
      */
     private Date unloadTime;
 
+    /**
+     * 循环/趟次
+     */
+    private Integer type;
+
+    /**
+     * 启送时间
+     */
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+
     /**
      * 已委托量
      */
@@ -189,10 +201,31 @@ public class SckwWaybillOrder{
      */
     private BigDecimal deficitAmount;
 
+    /**
+     * 合理损耗
+     */
+    private BigDecimal loss;
+
+    /**
+     * 合理损耗-单位
+     */
+    private String lossUnit;
+
+    /**
+     * 扣亏损值(合理损耗-(实装-实卸))
+     */
+    private BigDecimal goodsPrice;
+
+    /**
+     * 扣亏损值(合理损耗-(实装-实卸))-单位
+     */
+    private String goodsPriceUnit;
+
+
     /**
      * 商品主键
      */
-    private Integer goodsId;
+    private Long goodsId;
 
     /**
      * 商品编号
@@ -219,6 +252,7 @@ public class SckwWaybillOrder{
      */
     private String goodsSpec;
 
+
     /**
      * 托运企业主键ID
      */
@@ -259,6 +293,7 @@ public class SckwWaybillOrder{
      */
     private String carrierPhone;
 
+
     /**
      * 装货地址类型
      */
@@ -339,6 +374,11 @@ public class SckwWaybillOrder{
      */
     private String unloadLng;
 
+
+    /**
+     * 单据状态
+     */
+    private Integer status;
     /**
      * 创建人主键id
      */
@@ -374,63 +414,4 @@ public class SckwWaybillOrder{
      */
     private Integer delFlag;
 
-    /**
-     * 单据状态
-     */
-    private String status;
-
-    /**
-     * 循环/趟次
-     */
-    private String type;
-
-    /**
-     * 车队id
-     */
-    private String fleetId;
-    /**
-     * 车队姓名
-     */
-    private String fleetName;
-
-    /**
-     * 派车时间-创建时间
-     */
-    private Date sendCarTime;
-    /**
-     * 启送时间
-     */
-    private Date startTime;
-    /**
-     * 结束时间
-     */
-    private Date endTime;
-
-    /**
-     * 装货区域
-     */
-    private String loadingCity;
-    /**
-     * 装货详细地址
-     */
-    private String loadingAddress;
-
-    /**
-     * 卸货区域
-     */
-    private String unloadingCity;
-    /**
-     * 卸货详细地址
-     */
-    private String unloadingAddress;
-    /**
-     * 合理损耗
-     */
-    private BigDecimal loss;
-    /**
-     * 扣亏损值(合理损耗-(实装-实卸))
-     */
-    private BigDecimal goodsPrice;
-
-
 }

+ 8 - 2
sckw-modules-api/sckw-modules-bom/pom.xml

@@ -43,12 +43,18 @@
             <dependency>
                 <groupId>com.sckw</groupId>
                 <artifactId>sckw-transport-api</artifactId>
-                <version>1.0.0</version>
+                <version>${project.version}</version>
             </dependency>
+
             <dependency>
                 <groupId>com.sckw</groupId>
                 <artifactId>sckw-order-api</artifactId>
-                <version>1.0.0</version>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-payment-api</artifactId>
+                <version>${project.version}</version>
             </dependency>
         </dependencies>
     </dependencyManagement>

+ 2 - 2
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/KwpGoods.java

@@ -54,9 +54,9 @@ public class KwpGoods extends BaseModel implements Serializable {
     private String goodsType;
 
     /**
-     * 省份code
+     * 区域ode
      */
-    private Integer provinceCode;
+    private Integer areaCode;
 
     /**
      * 库存数量

+ 2 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/KwfTruckDto.java

@@ -22,7 +22,7 @@ public class KwfTruckDto {
      * 车牌号
      */
     @NotBlank(message = "车牌号不能为空!")
-    @Size(max=7, message = "车牌号长度不能大于7个字符!")
+    @Size(max=8, message = "车牌号长度不能大于8个字符!")
     private String truckNo;
 
     /**
@@ -53,6 +53,7 @@ public class KwfTruckDto {
      * 标准荷载(净重)
      */
     //@Pattern(regexp = "^1[3456789]\\d{9}$", message = "标准荷载格式不正确!")
+    @NotNull(message = "标准荷载不能为空!")
     private Double actualWeight;
 
     /**

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

@@ -79,18 +79,41 @@ public class KwfDriverService {
         }
 
         /**全部数据-处理**/
+        List<KwfTableTopCount> countList = new ArrayList();
         KwfTableTopCount allCount = new KwfTableTopCount();
         allCount.setValue(String.valueOf(Global.NUMERICAL_ZERO));
         allCount.setTotal(tatol);
-        counts.add(allCount);
+        allCount.setName("全部");
+        countList.add(allCount);
+
+        /**数据处理**/
+        Map<String, Integer> statusMap = new HashMap(){{put("正常", 1); put("临时", 2); put("异常", 3);}};
+        for(Map.Entry<String, Integer> entry:statusMap.entrySet()){
+            System.out.println(entry.getKey()+"--->"+entry.getValue());
+            KwfTableTopCount count = new KwfTableTopCount();
+            for (KwfTableTopCount topCount:counts) {
+                if (Integer.parseInt(topCount.getValue()) == entry.getValue()) {
+                    BeanUtils.copyProperties(topCount, count);
+                }
+            }
+            count.setName(entry.getKey());
+            count.setValue(String.valueOf(entry.getValue()));
+            countList.add(count);
+        }
 
         /**数据组装**/
         Map tableCount = new HashMap();
-        tableCount.put("tableTop", counts);
+        tableCount.put("tableTop", countList);
         tableCount.put("tableBottom", tatol);
         return tableCount;
     }
 
+    class KwfTableTopStatus {
+        Map<String, Object> statusMap = new HashMap(){{put("1","正常"); put("2","临时"); put("3","异常");}};
+
+
+    }
+
     /**
      * @param params 分页参数
      * @desc 分页查询
@@ -280,7 +303,7 @@ public class KwfDriverService {
                     throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.DELETE_FAIL);
                 }
             } else {
-                HttpResult.error("选择删除的数据已不存在!");
+                return HttpResult.error("选择删除的数据已不存在!");
             }
         }
         return HttpResult.ok("删除成功!");
@@ -331,6 +354,15 @@ public class KwfDriverService {
      * @date 2023/7/7
      **/
     public HttpResult driverCardEdit(KwfDriverCardDto params) {
+        /**数据校验**/
+        if (StringUtils.isBlank(params.getDriverId())) {
+            return HttpResult.error(HttpStatus.PARAMETERS_PATTERN_ERROR_CODE,"司机信息ID不能为空!");
+        }
+        KwfDriver driver = driverDao.selectById(params.getDriverId());
+        if (driver == null) {
+            return HttpResult.error("司机信息不存在!");
+        }
+
         /**数据copy**/
         KwfDriverCard driverCard = new KwfDriverCard();
         BeanUtils.copyProperties(params, driverCard);
@@ -367,6 +399,15 @@ public class KwfDriverService {
      * @date 2023/7/7
      **/
     public HttpResult driverLicenseEdit(KwfDriverLicenseDto params) {
+        /**数据校验**/
+        if (StringUtils.isBlank(params.getDriverId())) {
+            return HttpResult.error(HttpStatus.PARAMETERS_PATTERN_ERROR_CODE,"司机信息ID不能为空!");
+        }
+        KwfDriver driver = driverDao.selectById(params.getDriverId());
+        if (driver == null) {
+            return HttpResult.error("司机信息不存在!");
+        }
+
         /**数据copy**/
         KwfDriverLicense driverLicense = new KwfDriverLicense();
         BeanUtils.copyProperties(params, driverLicense);
@@ -404,6 +445,15 @@ public class KwfDriverService {
      * @date 2023/7/7
      **/
     public HttpResult driverQualificationEdit(KwfDriverQualificationDto params) {
+        /**数据校验**/
+        if (StringUtils.isBlank(params.getDriverId())) {
+            return HttpResult.error(HttpStatus.PARAMETERS_PATTERN_ERROR_CODE,"司机信息ID不能为空!");
+        }
+        KwfDriver driver = driverDao.selectById(params.getDriverId());
+        if (driver == null) {
+            return HttpResult.error("司机信息不存在!");
+        }
+
         /**数据copy**/
         KwfDriverQualification driverQual = new KwfDriverQualification();
         BeanUtils.copyProperties(params, driverQual);

+ 0 - 13
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerLogisticsOrderController.java

@@ -1,13 +0,0 @@
-package com.sckw.payment.controller;
-import org.springframework.web.bind.annotation.*;
-
-/**
-* 对账-物流订单-对账关联交易订单
-*
-* @author xucaiqin
-*/
-@RestController
-@RequestMapping("/kwp_ledger_logistics_order")
-public class KwpLedgerLogisticsOrderController {
-    
-}

+ 0 - 13
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerLogisticsTrackController.java

@@ -1,13 +0,0 @@
-package com.sckw.payment.controller;
-import org.springframework.web.bind.annotation.*;
-
-/**
-* 对账-物流订单-状态信息
-*
-* @author xucaiqin
-*/
-@RestController
-@RequestMapping("/kwp_ledger_logistics_track")
-public class KwpLedgerLogisticsTrackController {
-    
-}

+ 0 - 13
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerTradeOrderController.java

@@ -1,13 +0,0 @@
-package com.sckw.payment.controller;
-import org.springframework.web.bind.annotation.*;
-
-/**
-* 对账-交易订单-对账关联交易订单
-*
-* @author xucaiqin
-*/
-@RestController
-@RequestMapping("/kwp_ledger_trade_order")
-public class KwpLedgerTradeOrderController {
-    
-}

+ 0 - 13
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerTradeTrackController.java

@@ -1,13 +0,0 @@
-package com.sckw.payment.controller;
-import org.springframework.web.bind.annotation.*;
-
-/**
-* 对账-交易订单-状态信息
-*
-* @author xucaiqin
-*/
-@RestController
-@RequestMapping("/kwp_ledger_trade_track")
-public class KwpLedgerTradeTrackController {
-    
-}

+ 2 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/KwpGoods.java

@@ -49,9 +49,9 @@ public class KwpGoods extends BaseModel {
     private String goodsType;
 
     /**
-     * 省份code
+     * 区域code
      */
-    private Integer provinceCode;
+    private Integer areaCode;
 
     /**
      * 库存数量

+ 7 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/BuildingMaterialsMarketListParam.java

@@ -28,9 +28,14 @@ public class BuildingMaterialsMarketListParam extends PageRequest {
     private List<String> goodsTypes;
 
     /**
-     * 省份code
+     * 区域code
      */
-    private Integer provinceCode;
+    private Integer areaCode;
+
+    /**
+     * 区域等级
+     */
+    private Integer areaLevel;
 
     /**
      * 交易方式(预付款、货到付款、线下付款)

+ 13 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/BuildingMaterialsMarketList.java

@@ -1,11 +1,13 @@
 package com.sckw.product.model.vo.res;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 import lombok.experimental.Accessors;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 
 /**
  * @desc: 建材市场列表响应
@@ -43,11 +45,22 @@ public class BuildingMaterialsMarketList {
      */
     private String spec;
 
+    /**
+     * 库存
+     */
+    private BigDecimal amount;
+
     /**
      * 价格
      */
     private BigDecimal price;
 
+    /**
+     * 上架时间
+     */
+    @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate addedTime;
+
     /**
      * 单位(吨、方、件、箱、其他)
      */

+ 11 - 9
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -25,7 +25,6 @@ import com.sckw.product.model.vo.req.*;
 import com.sckw.product.model.vo.res.*;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
-import com.sckw.system.api.model.dto.res.SysAreaCacheResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -72,8 +71,7 @@ public class KwpGoodsService {
         KwpGoods goods = BeanUtils.copyProperties(addGoodsParam, KwpGoods.class);
         if (Objects.nonNull(addGoodsParam.getAddressInfo())) {
             Integer cityCode = addGoodsParam.getAddressInfo().getCityCode();
-            SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
-            goods.setProvinceCode(area.getProvinceCode());
+            goods.setAreaCode(cityCode);
         }
         goods.setEntId(entId).setStatus(GoodsStatusEnum.SAVED.getCode());
         kwpGoodsMapper.insert(goods);
@@ -96,8 +94,7 @@ public class KwpGoodsService {
         //添加商品信息
         KwpGoods goods = BeanUtils.copyProperties(addGoodsParam, KwpGoods.class);
         Integer cityCode = addGoodsParam.getAddressInfo().getCityCode();
-        SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
-        goods.setCode(NumberUtils.createRandomVcode()).setProvinceCode(area.getProvinceCode()).setEntId(entId)
+        goods.setCode(NumberUtils.createRandomVcode()).setAreaCode(cityCode).setEntId(entId)
                 .setAddedTime(new Date()).setStatus(GoodsStatusEnum.PUT_ON_SHELVES.getCode());
         kwpGoodsMapper.insert(goods);
         addGoodsOtherInfo(goods.getId(), addGoodsParam);
@@ -225,8 +222,7 @@ public class KwpGoodsService {
         BeanUtils.copyProperties(param, goods);
         if (Objects.nonNull(param.getAddressInfo())) {
             Integer cityCode = param.getAddressInfo().getCityCode();
-            SysAreaCacheResDto area = remoteSystemService.queryAreaCacheById(cityCode);
-            goods.setProvinceCode(area.getProvinceCode());
+            goods.setAreaCode(cityCode);
         }
         kwpGoodsMapper.updateById(goods);
         updateGoodsOtherInfo(param);
@@ -309,7 +305,7 @@ public class KwpGoodsService {
         if (Objects.isNull(param.getAmount()) || param.getAmount().compareTo(BigDecimal.ZERO) < 0) {
             throw new BusinessException("库存数量不能为空且最小为零!");
         }
-        if (Objects.isNull(param.getTaxRate())|| param.getTaxRate().compareTo(BigDecimal.ZERO) < 0) {
+        if (Objects.isNull(param.getTaxRate()) || param.getTaxRate().compareTo(BigDecimal.ZERO) < 0) {
             throw new BusinessException("发票税率不能为空最小为零!");
         }
         if (StringUtils.isBlank(param.getTrading())) {
@@ -639,8 +635,14 @@ public class KwpGoodsService {
         LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
         wrapper.in(CollectionUtils.isNotEmpty(params.getGoodsTypes()), KwpGoods::getGoodsType, params.getGoodsTypes())
                 .in(CollectionUtils.isNotEmpty(params.getTradings()), KwpGoods::getTrading, params.getTradings())
-                .eq(Objects.nonNull(params.getProvinceCode()), KwpGoods::getProvinceCode, params.getProvinceCode())
                 .eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).eq(KwpGoods::getDelFlag, Global.NO);
+        if (Objects.nonNull(params.getAreaCode()) && Objects.nonNull(params.getAreaLevel())) {
+            switch (params.getAreaLevel()) {
+                case 1 -> wrapper.likeRight(KwpGoods::getAreaCode, String.valueOf(params.getAreaCode()).substring(0, 2));
+                case 2 -> wrapper.likeRight(KwpGoods::getAreaCode, String.valueOf(params.getAreaCode()).substring(0, 4));
+                case 3 -> wrapper.eq(KwpGoods::getAreaCode, params.getAreaCode());
+            }
+        }
         if (StringUtils.isNotBlank(params.getKeywords())) {
             List<EntCacheResDto> entList = remoteSystemService.queryEntCacheByName(params.getKeywords());
             List<Long> entIds = entList.stream().map(EntCacheResDto::getId).toList();

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

@@ -6,8 +6,10 @@ import com.sckw.excel.config.easyexcel.RequestHolder;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.report.service.KwTransportService;
 import com.sckw.report.service.param.ConsignOrderQuery;
+import com.sckw.report.service.param.WaybillOrderQuery;
 import com.sckw.report.service.vo.ConsignOrderVo;
 import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.NotBlank;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -96,6 +98,40 @@ public class KwTransportController {
         }
     }
 
-
+    /**
+     * 运单管理-运单列表
+     * @param query
+     * @return
+     */
+    @RequestMapping(value = "/getWaybillOrders", method = RequestMethod.POST)
+    public HttpResult getWayBillOrders(@Validated @RequestBody WaybillOrderQuery query){
+        HttpResult httpResult = new HttpResult();
+        try {
+            httpResult = transportService.getWaybillOrders(query);
+        } catch (Exception e) {
+            log.error("[WAYBILL]运单管理-运单列表失败:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+        return httpResult;
+    }
+    /**
+     * 承运订单-获取分包托运列表
+     *
+     * @param lOrderId 单据id
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    @RequestMapping(value = "/getSubcontractConsignment", method = RequestMethod.GET)
+    public HttpResult getSubcontractConsignment(@RequestParam("lOrderId") @NotBlank(message = "单据id不能为空") String lOrderId,
+                                                @RequestParam("page") @NotBlank(message = "分页不能为空") int page,
+                                                @RequestParam("pageSize") @NotBlank(message = "分页条数不能为空") int pageSize) {
+        try {
+            return transportService.getSubcontractConsignment(lOrderId, page, pageSize);
+        } catch (Exception e) {
+            log.error("承运订单-获取分包托运列表 error:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
 
 }

+ 26 - 23
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -92,7 +92,7 @@ public class KwOrderService {
                     .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
                     .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
                     .setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
-                    .setConsignmentStatus(e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
+                    .setConsignmentStatus(Objects.isNull(e.getEntrustAmount()) || e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
                     .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
             result.add(order);
         });
@@ -110,69 +110,72 @@ public class KwOrderService {
     private Query getQuery(TradeOrderListStatisticParam params, Boolean isStatistic) {
         Long entId = LoginUserHolder.getEntId();
         Query query = new Query();
-        Criteria criteria = new Criteria();
-        criteria.and("delFlag").is(0);
+        Criteria andCriteria = new Criteria();
+        andCriteria.and("delFlag").is(0);
         if (Objects.equals(params.getOrderType(), 1)) {
             //采购订单
-            criteria.and("procureTopEntId").is(entId);
+            andCriteria.and("procureTopEntId").is(entId);
         } else {
             //销售订单
-            criteria.and("supplyTopEntId").is(entId);
+            andCriteria.and("supplyTopEntId").is(entId);
         }
         //日期范围
         if (Objects.nonNull(params.getStartCreateTime())) {
-            criteria.and("createTime").gte(params.getStartCreateTime());
+            andCriteria.and("createTime").gte(params.getStartCreateTime());
         }
         if (Objects.nonNull(params.getEndCreateTime())) {
-            criteria.and("createTime").lte(params.getEndCreateTime());
+            andCriteria.and("createTime").lte(params.getEndCreateTime());
         }
         //装卸货地址
         if (StringUtils.isNotBlank(params.getShippingAddressCode())) {
             Pattern pattern = Pattern.compile("^" + params.getShippingAddressCode().substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
-            criteria.and("loadCityCode").regex(pattern);
+            andCriteria.and("loadCityCode").regex(pattern);
         }
         if (StringUtils.isNotBlank(params.getUnloadingAddressCode())) {
             Pattern pattern = Pattern.compile("^" + params.getUnloadingAddressCode().substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
-            criteria.and("unloadCityCode").regex(pattern);
+            andCriteria.and("unloadCityCode").regex(pattern);
         }
         //提货方式
         if (StringUtils.isNotBlank(params.getPickupType())) {
-            criteria.and("pickupType").is(params.getPickupType());
+            andCriteria.and("pickupType").is(params.getPickupType());
         }
         //交易方式
         if (StringUtils.isNotBlank(params.getTrading())) {
-            criteria.and("trading").is(params.getTrading());
+            andCriteria.and("trading").is(params.getTrading());
         }
         //交付类型
         if (StringUtils.isNotBlank(params.getDeliveryType())) {
-            criteria.and("deliveryType").is(params.getDeliveryType());
+            andCriteria.and("deliveryType").is(params.getDeliveryType());
         }
         //下单方式
         if (StringUtils.isNotBlank(params.getSource())) {
-            criteria.and("source").is(params.getSource());
+            andCriteria.and("source").is(params.getSource());
         }
         List<Criteria> orCriteriaList = new ArrayList<>();
         //订单状态
         if (Objects.nonNull(params.getStatus()) && !isStatistic) {
-            criteria.and("status").is(params.getStatus());
+            andCriteria.and("status").is(params.getStatus());
             if (Objects.equals(params.getStatus(), Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()))) {
                 //草稿状态只能创建订单的企业能看
-                criteria.and("entId").is(entId);
+                andCriteria.and("entId").is(entId);
             }
         } else {
             //非草稿状态
-            criteria.and("status").ne(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()));
+            andCriteria.and("status").ne(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()));
             //or草稿状态且是当前企业
-            orCriteriaList.add(Criteria.where("status").is(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue())).and("entId").is(entId));
+            orCriteriaList.add(Criteria.where("entId").is(entId).and("status")
+                    .is(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue())).and("delFlag").is(0));
         }
+        orCriteriaList.add(andCriteria);
         //关键字模糊匹配
         if (StringUtils.isNotBlank(params.getKeywords())) {
             Pattern pattern = Pattern.compile("^.*" + params.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
-            orCriteriaList.add(Criteria.where("tOrderNo").regex(pattern));
-            orCriteriaList.add(Criteria.where("procureFirmName").regex(pattern));
-            orCriteriaList.add(Criteria.where("supplyFirmName").regex(pattern));
-            orCriteriaList.add(Criteria.where("goodsName").regex(pattern));
+            orCriteriaList.add(Criteria.where("tOrderNo").regex(pattern).and("delFlag").is(0));
+            orCriteriaList.add(Criteria.where("procureFirmName").regex(pattern).and("delFlag").is(0));
+            orCriteriaList.add(Criteria.where("supplyFirmName").regex(pattern).and("delFlag").is(0));
+            orCriteriaList.add(Criteria.where("goodsName").regex(pattern).and("delFlag").is(0));
         }
+        Criteria criteria = new Criteria();
         if (CollectionUtils.isNotEmpty(orCriteriaList)) {
             criteria.orOperator(orCriteriaList);
         }
@@ -230,7 +233,7 @@ public class KwOrderService {
             }
             query.addCriteria(criteria);
         } else {
-            query = getQuery(params,false);
+            query = getQuery(params, false);
         }
         List<SckwTradeOrder> orders = mongoTemplate.find(query, SckwTradeOrder.class);
         if (CollectionUtils.isEmpty(orders)) {
@@ -265,7 +268,7 @@ public class KwOrderService {
         Query query = new Query();
         Long entId = LoginUserHolder.getEntId();
         Criteria criteria = new Criteria();
-        criteria.and("status").is(DictEnum.TORDER_STATUS_5.getValue()).and("delFlag").is(0);
+        criteria.and("status").is(Integer.valueOf(DictEnum.TORDER_STATUS_5.getValue())).and("delFlag").is(0);
         if (Objects.equals(params.getOrderType(), 1)) {
             //采购订单
             criteria.and("procureTopEntId").is(entId);

+ 142 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -14,6 +14,8 @@ import com.sckw.mongo.model.TobleTop;
 import com.sckw.report.dao.SckwLogisticsOrderRepository;
 import com.sckw.report.enums.CarWaybillEnum;
 import com.sckw.report.service.param.ConsignOrderQuery;
+import com.sckw.report.service.param.WaybillOrderQuery;
+import com.sckw.report.service.vo.CarWaybillVo;
 import com.sckw.report.service.vo.ConsignOrderVo;
 import com.sckw.transport.api.dubbo.TransportDubboService;
 import com.sckw.transport.api.model.dto.vo.KwtLogisticsOrderVO;
@@ -323,4 +325,144 @@ public class KwTransportService {
         List<KwtLogisticsOrderVO> acceptCarriageOrderDetail = transportDubboService.getAcceptCarriageOrderDetail(ids);
         return acceptCarriageOrderDetail;
     }
+
+    /**
+     * 获取运单列表
+     * @param query
+     * @return
+     * @throws ParseException
+     */
+    public HttpResult getWaybillOrders(WaybillOrderQuery query) throws ParseException {
+        // 模糊匹配
+        // 根据条件查询所有并排序,且分页
+        // 设置模糊查询匹配规则  忽略大小写
+        // 创建条件对象
+        Criteria criteria = new Criteria();
+        criteria.and("entId").is(LoginUserHolder.getEntId());
+        // 装载时间
+        if (StringUtils.isNotBlank(query.getStartLoadTime()) && StringUtils.isNotEmpty(query.getEndLoadTime())) {
+            criteria.andOperator(Criteria.where("loadTime").gte(query.getStartLoadTime()), Criteria.where("loadTime")
+                    .lte(query.getEndLoadTime()));
+        }
+        // 派车时间
+        if (StringUtils.isNotBlank(query.getStartSendCarTime()) && StringUtils.isNotEmpty(query.getEndSendCarTime())) {
+            criteria.andOperator(Criteria.where("sendCarTime").gte(query.getStartSendCarTime()), Criteria.where("sendCarTime")
+                    .lte(query.getEndSendCarTime()));
+        }
+        // 卸货时间
+        if (StringUtils.isNotBlank(query.getStartUnloadTime()) && StringUtils.isNotEmpty(query.getEndUnloadTime())) {
+            criteria.andOperator(Criteria.where("unloadTime").gte(query.getStartUnloadTime()), Criteria.where("unloadTime")
+                    .lte(query.getEndUnloadTime()));
+        }
+        criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
+        // 多条件模糊查询
+        Criteria c1 = new Criteria();
+        Criteria c2 = new Criteria();
+        Criteria c3 = new Criteria();
+        Criteria c4 = new Criteria();
+        Criteria c5 = new Criteria();
+        Criteria c6 = new Criteria();
+        if (StringUtils.isNotBlank(query.getKeywords())) {
+            Pattern pattern = Pattern.compile("^.*" + query.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
+            c1 = Criteria.where("wOrderNo").regex(pattern);
+            c2 = Criteria.where("truckNo").regex(pattern);
+            c3 = Criteria.where("driverName").regex(pattern);
+            c4 = Criteria.where("firmName").regex(pattern);
+            c5 = Criteria.where("loadAddress").regex(pattern);
+            c6 = Criteria.where("unloadAddress").regex(pattern);
+            criteria.orOperator(c1, c2, c3, c4, c5, c6);
+        }
+        Query queryFormat = new Query(criteria);
+        // in查询
+        if (CollectionUtils.isNotEmpty(query.getIds())) {
+            queryFormat.addCriteria(Criteria.where("wOrderId").in(query.getIds()));
+        }
+        // 总记录数
+        long total = mongoTemplate.count(queryFormat, SckwWaybillOrder.class);
+        queryFormat.with(PageRequest.of(query.getPage() - 1, query.getPageSize(),
+                Sort.by(Sort.Order.desc("createTime"))));
+        // 执行查询
+        List<SckwWaybillOrder> list = mongoTemplate.find(queryFormat, SckwWaybillOrder.class);
+        List<CarWaybillVo> returnList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(list)) {
+            packageWayBillReturnList(list, returnList);
+        }
+        PageResult build = PageResult.build(query.getPage(), query.getPageSize(), total, returnList);
+        return HttpResult.ok(build);
+    }
+
+    /**
+     * 处理运单查询结果
+     * @param list
+     * @param returnList
+     */
+    private void packageWayBillReturnList(List<SckwWaybillOrder> list, List<CarWaybillVo> returnList) {
+        for (SckwWaybillOrder waybillOrder : list) {
+            CarWaybillVo vo = new CarWaybillVo();
+            vo.setWOrderNo(waybillOrder.getWOrderNo() == null ?
+                    null : String.valueOf(waybillOrder.getWOrderNo()));
+            vo.setFirmName(waybillOrder.getFirmName() == null ?
+                    null : String.valueOf(waybillOrder.getFirmName()));
+            vo.setTruckNo(waybillOrder.getTruckNo());
+            vo.setDriverName(waybillOrder.getDriverName() == null ?
+                    null : String.valueOf(waybillOrder.getDriverName()));
+            vo.setType(String.valueOf(waybillOrder.getType()));
+            vo.setSendCarTime(String.valueOf(waybillOrder.getCreateTime()));
+            vo.setStartTime(String.valueOf(waybillOrder.getStartTime()));
+            vo.setEndTime(String.valueOf(waybillOrder.getEndTime()));
+            vo.setEntrustAmount(String.valueOf(waybillOrder.getEntrustAmount()));
+            vo.setLoadingAddress(waybillOrder.getLoadDetailAddress());
+            vo.setUnloadingAddress(waybillOrder.getUnloadDetailAddress());
+            vo.setLoadAmount(waybillOrder.getLoadAmount() == null ?
+                    null : String.valueOf(waybillOrder.getLoadAmount()));
+            vo.setUnloadAmount(waybillOrder.getUnloadAmount() == null ?
+                    null : String.valueOf(waybillOrder.getUnloadAmount()));
+            vo.setLoadTime(waybillOrder.getLoadTime() == null ?
+                    null : String.valueOf(waybillOrder.getLoadTime()));
+            vo.setUnloadTime(waybillOrder.getUnloadTime() == null ?
+                    null :String.valueOf(waybillOrder.getUnloadTime()));
+            returnList.add(vo);
+        }
+    }
+
+    /**
+     * 承运订单-分包托运列表数据展示
+     * @param lOrderId
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    public HttpResult getSubcontractConsignment(String lOrderId, int page, int pageSize) {
+        //模糊匹配
+        //根据条件查询所有并排序,且分页
+        //设置模糊查询匹配规则  忽略大小写
+        // 创建条件对象
+        Criteria criteria = new Criteria();
+        // 1. 全等于
+        criteria.and("entId").is(LoginUserHolder.getEntId());
+        criteria.and("_id").is(lOrderId);
+        criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
+        Query query1 = new Query(criteria);
+        //多条件模糊查询
+        Criteria c1 = new Criteria().and("entId").is(LoginUserHolder.getEntId());
+        Criteria c2 = new Criteria().and("_id").is(lOrderId);
+        Criteria c3 = new Criteria().and("delFlag").is(String.valueOf(NumberConstant.ZERO));
+        criteria.orOperator(c1, c2, c3);
+        Aggregation aggregation = Aggregation.newAggregation(
+                Aggregation.match(criteria),
+//                Aggregation.group("_id").sum().as("sum")
+                Aggregation.project("total").and("value").previousOperation()
+        );
+        query1.addCriteria(Criteria.where("pid").in(lOrderId));
+        AggregationResults<TobleTop> outputTypeCount = mongoTemplate.aggregate(aggregation, SckwLogisticsOrder.class, TobleTop.class);
+        List<TobleTop> results = (List<TobleTop>) outputTypeCount.getRawResults().get("results");
+        // 执行查询
+//        List<SckwLogisticsOrder> list = mongoTemplate.findAll(query1, SckwLogisticsOrder.class);
+////        PageResult build = PageResult.build(query.getPage(), query.getPageSize(), total, list);
+//        List<ConsignOrderVo> returnList = new ArrayList<>();
+//        if (CollectionUtils.isNotEmpty(list)) {
+//            packageReturnList(list, returnList);
+//        }
+        return null;
+    }
 }

+ 61 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/WaybillOrderQuery.java

@@ -0,0 +1,61 @@
+package com.sckw.report.service.param;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sckw.core.model.page.PageRequest;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author JC
+ * @version 1.0
+ * @desc TODO
+ * @date 2023/{07}/19 10:20:44
+ **/
+@Data
+@Accessors(chain = true)
+public class WaybillOrderQuery extends PageRequest implements Serializable {
+    private List<Long> ids;
+    /**
+     * 派车开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String startSendCarTime;
+
+    /**
+     * 派车结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String endSendCarTime;
+
+    /**
+     * 装载开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String startLoadTime;
+
+    /**
+     * 装载结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String endLoadTime;
+
+    /**
+     * 卸载开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String startUnloadTime;
+
+    /**
+     * 卸载结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String endUnloadTime;
+
+    /**
+     * 关键字搜索
+     */
+    private String keywords;
+}

+ 54 - 29
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/CarWaybillVo.java

@@ -1,8 +1,11 @@
 package com.sckw.report.service.vo;
 
+import com.sckw.core.model.page.PageResult;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+
 /**
  * @author lfdc
  * @description 车辆运单
@@ -10,67 +13,89 @@ import lombok.experimental.Accessors;
  */
 @Data
 @Accessors(chain = true)
-public class CarWaybillVo {
+public class CarWaybillVo extends PageResult implements Serializable {
 
     /**
-     * 运单编号
+     * 物流订单id
      */
-    private String waybillNumber;
+    private String wOrderId;
+
     /**
-     * 车牌
+     * 物流订单
      */
-    private String truckNo;
+    private String wOrderNo;
+
     /**
-     * 状态
+     * 承运车队
      */
-    private String status;
+    private String firmName;
+
     /**
-     * 运单类型
+     * 车辆牌照
      */
-    private String waybillType;
+    private String truckNo;
+
     /**
      * 司机
      */
     private String driverName;
+
     /**
-     * 承运车队
+     * 运单类型
      */
-    private String consignMotorcade;
+    private String type;
+
     /**
-     * 派车量/吨
+     * 派车时间
      */
-    private String sendCarWeigh;
+    private String sendCarTime;
+
     /**
-     * 派车时间
+     * 计划开始时间
      */
-    private String sendCarDate;
+    private String startTime;
+
     /**
-     * 实装量/吨
+     * 计划结束时间
      */
-    private String stowageWeigh;
+    private String endTime;
+
     /**
-     * 装货时间
+     * 派单量/吨
      */
-    private String stowageDate;
+    private String entrustAmount;
+
     /**
-     * 实卸量/吨
+     * 装货地点
      */
-    private String unloadWeigh;
+    private String loadingAddress;
+
     /**
-     * 卸货时间
+     * 卸货地点
      */
-    private String unloadDate;
+    private String unloadingAddress;
+
     /**
-     * 亏吨量/吨
+     * 实装量/吨
      */
-    private String defectiveWeigh;
+    private String loadAmount;
+
     /**
-     * 扣亏量/吨
+     * 实卸量/吨
+     */
+    private String unloadAmount;
+
+    /**
+     * 装货时间
      */
-    private String deduct;
+    private String loadTime;
+
     /**
-     * 派车人
+     * 卸货时间
      */
-    private String appointor;
+    private String unloadTime;
+
+    private String createTime;
+    private String updateTime;
 
 }

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

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

+ 5 - 0
sckw-modules/sckw-transport/pom.xml

@@ -54,6 +54,11 @@
             <artifactId>sckw-system-api</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-fleet-api</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>com.sckw</groupId>
             <artifactId>sckw-product-api</artifactId>

+ 42 - 19
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

@@ -6,20 +6,17 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.DocumentParamDTO;
 import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.model.dto.OrderTakingDTO;
-import com.sckw.transport.model.dto.SendCarDTO;
-import com.sckw.transport.model.param.LogisticsConsignmentParam;
+import com.sckw.transport.model.dto.SubcontractConsignmentDTO;
 import com.sckw.transport.model.param.LogisticsOrderParam;
 import com.sckw.transport.service.AcceptCarriageOrderService;
 import com.sckw.transport.service.TransportCommonService;
+import jakarta.validation.constraints.NotBlank;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.annotations.Param;
 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
@@ -73,6 +70,7 @@ public class AcceptCarriageOrderController {
 
     /**
      * 对账管理-运费收款对账界面查询接口
+     *
      * @param logisticsOrderParam
      * @return
      */
@@ -89,6 +87,7 @@ public class AcceptCarriageOrderController {
 
     /**
      * 承运订单-接单
+     *
      * @param orderDTO
      * @return
      */
@@ -99,11 +98,12 @@ public class AcceptCarriageOrderController {
 
     /**
      * 承运订单-分包托运
+     *
      * @param query 请求参数
      * @return
      */
     @RequestMapping(value = "/subcontractConsignment", method = RequestMethod.POST)
-    public HttpResult subcontractConsignment(LogisticsConsignmentParam query) {
+    public HttpResult subcontractConsignment(SubcontractConsignmentDTO query) {
         try {
             return acceptCarriageOrderService.subcontractConsignment(query);
         } catch (Exception e) {
@@ -112,32 +112,55 @@ public class AcceptCarriageOrderController {
         }
     }
 
+//    /**
+//     * 承运订单-提交派车
+//     *
+//     * @param sendCarDTO 请求参数
+//     * @return
+//     */
+//    @RequestMapping(value = "/commitSendCar", method = RequestMethod.POST)
+//    public HttpResult commitSendCar(@Validated @RequestBody SendCarDTO sendCarDTO) {
+//        try {
+//            return acceptCarriageOrderService.commitSendCar(sendCarDTO);
+//        } catch (Exception e) {
+//            log.error("派车 error:{}", e.getMessage(), e);
+//            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+//        }
+//    }
+
     /**
-     * 承运订单-提交派车
-     * @param sendCarDTO 请求参数
+     * 承运订单-获取运单详情
+     *
+     * @param wOrderId 运单id
      * @return
      */
-    @RequestMapping(value = "/commitSendCar", method = RequestMethod.POST)
-    public HttpResult commitSendCar(@Validated @RequestBody SendCarDTO sendCarDTO) {
+    @RequestMapping(value = "/getWaybillData", method = RequestMethod.GET)
+    public HttpResult getWaybillData(@Param("wOrderId") String wOrderId) {
         try {
-            return acceptCarriageOrderService.commitSendCar(sendCarDTO);
+            return acceptCarriageOrderService.getWaybillData(wOrderId);
         } catch (Exception e) {
-            log.error("派车 error:{}", e.getMessage(), e);
+            log.error("承运订单-获取运单详情 error:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
 
+
     /**
-     * 承运订单-获取运单详情
-     * @param wOrderId 运单id
+     * 承运订单-获取分包托运列表
+     *
+     * @param lOrderId 单据id
+     * @param page
+     * @param pageSize
      * @return
      */
-    @RequestMapping(value = "/getWaybillData", method = RequestMethod.GET)
-    public HttpResult getWaybillData(@Param("wOrderId") String wOrderId) {
+    @RequestMapping(value = "/getSubcontractConsignment", method = RequestMethod.GET)
+    public HttpResult getSubcontractConsignment(@RequestParam("lOrderId") @NotBlank(message = "单据id不能为空") String lOrderId,
+                                                @RequestParam("page") @NotBlank(message = "分页不能为空") int page,
+                                                @RequestParam("pageSize") @NotBlank(message = "分页条数不能为空") int pageSize) {
         try {
-            return acceptCarriageOrderService.getWaybillData(wOrderId);
+            return acceptCarriageOrderService.getSubcontractConsignment(lOrderId, page, pageSize);
         } catch (Exception e) {
-            log.error("承运订单-获取运单详情 error:{}", e.getMessage(), e);
+            log.error("承运订单-获取分包托运列表 error:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }

+ 15 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java

@@ -4,14 +4,12 @@ import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.service.ConsignOrderService;
+import jakarta.validation.constraints.NotNull;
 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
@@ -26,6 +24,8 @@ public class ConsignOrderController {
 
     @Autowired
     ConsignOrderService consignOrderService;
+
+
     /**
      * 托运订单/承运订单-获取车辆运单
      *
@@ -42,6 +42,17 @@ public class ConsignOrderController {
         }
     }
 
+    /**
+     * 托运订单查看驳回原因
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/getRejectReason", method = RequestMethod.GET)
+    public HttpResult getRejectReasonById(@Validated @NotNull @RequestParam("id") String id) {
+        return consignOrderService.getRejectReasonById(id);
+    }
+
     /**
      * 托运订单获取车辆信息
      *

+ 1 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java

@@ -32,7 +32,6 @@ public class KwtWaybillOrderController {
 
     /**
      * 司机端 根据当前登录 id获取派给当前id的车辆运单
-     *
      * @return
      */
     @RequestMapping(value = "/getWaybillDriverDetail", method = RequestMethod.GET)
@@ -47,7 +46,6 @@ public class KwtWaybillOrderController {
 
     /**
      * 司机app top统计
-     *
      * @param id 司机id
      * @return
      */
@@ -91,7 +89,6 @@ public class KwtWaybillOrderController {
         }
     }
 
-    //
     /**
      * @param params {}
      * @description 派车-趟次/循环
@@ -99,7 +96,7 @@ public class KwtWaybillOrderController {
      * @date 2023/5/30
      **/
     @PostMapping("/sendCar")
-    public HttpResult commitSendCar(@RequestBody @Valid ValiList<SendCarDto1> params){
+    public HttpResult sendCar(@RequestBody @Valid ValiList<SendCarDto1> params){
         if (CollectionUtils.isEmpty(params)) {
             return HttpResult.error("请选择委派车辆信息!");
         }

+ 23 - 8
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java

@@ -6,6 +6,7 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.param.LogisticsConsignmentParam;
 import com.sckw.transport.service.LogisticsConsignmentService;
 import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,6 +29,7 @@ public class LogisticsConsignmentController {
 
     /**
      * 采购订单-物流托运生成托运订单
+     *
      * @param logisticsConsignmentParam
      * @return
      */
@@ -45,15 +47,18 @@ public class LogisticsConsignmentController {
 
     /**
      * 采购订单-托运订单详情-销售订单id
+     *
      * @param id
      * @return
      */
     @Validated
     @RequestMapping(value = "/purchaseLogisticsOrder", method = RequestMethod.GET)
-    public HttpResult purchaseLogisticsOrder(@RequestParam("id") String id,@RequestParam("page") int page,@RequestParam("pageSize") int pageSize) {
+    public HttpResult purchaseLogisticsOrder(@RequestParam("id") @NotBlank(message = "单据id不能为空") String id,
+                                             @RequestParam("page") @NotBlank(message = "当前页不能为空") int page,
+                                             @RequestParam("pageSize") @NotBlank(message = "每页条数不能为空") int pageSize) {
         log.info("采购订单-托运订单详情 传递参数信息:{}", id);
         try {
-            return logisticsConsignmentService.purchaseLogisticsOrder(id,page,pageSize);
+            return logisticsConsignmentService.purchaseLogisticsOrder(id, page, pageSize);
         } catch (Exception e) {
             log.error("采购订单-托运订单详情 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
@@ -62,15 +67,18 @@ public class LogisticsConsignmentController {
 
     /**
      * 采购订单-车辆详情-销售订单id
+     *
      * @param id
      * @return
      */
     @Validated
     @RequestMapping(value = "/purchaseLogisticsCar", method = RequestMethod.GET)
-    public HttpResult purchaseLogisticsCar(@RequestParam("id") String id,@RequestParam("page") int page,@RequestParam("pageSize") int pageSize) {
+    public HttpResult purchaseLogisticsCar(@RequestParam("id") @NotBlank(message = "单据id不能为空") String id,
+                                           @RequestParam("page") @NotBlank(message = "当前页不能为空") int page,
+                                           @RequestParam("pageSize") @NotBlank(message = "每页条数不能为空") int pageSize) {
         log.info("采购订单-托运订单详情 传递参数信息:{}", id);
         try {
-            return logisticsConsignmentService.purchaseLogisticsCar(id,page,pageSize);
+            return logisticsConsignmentService.purchaseLogisticsCar(id, page, pageSize);
         } catch (Exception e) {
             log.error("采购订单-托运订单详情 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
@@ -79,6 +87,7 @@ public class LogisticsConsignmentController {
 
     /**
      * 销售订单-物流托运生成托运订单
+     *
      * @param logisticsConsignmentParam
      * @return
      */
@@ -95,14 +104,17 @@ public class LogisticsConsignmentController {
 
     /**
      * 销售订单-托运订单详情-销售订单id
+     *
      * @param id
      * @return
      */
     @RequestMapping(value = "/sellLogisticsOrder", method = RequestMethod.GET)
-    public HttpResult sellLogisticsOrder(@RequestParam("id") String id,@RequestParam("page") int page,@RequestParam("pageSize") int pageSize) {
+    public HttpResult sellLogisticsOrder(@RequestParam("id") @NotBlank(message = "单据id不能为空") String id,
+                                         @RequestParam("page") @NotBlank(message = "当前页不能为空") int page,
+                                         @RequestParam("pageSize") @NotBlank(message = "每页条数不能为空") int pageSize) {
         log.info("销售订单-托运订单详情 传递参数信息:{}", id);
         try {
-            return logisticsConsignmentService.sellLogisticsOrder(id,page,pageSize);
+            return logisticsConsignmentService.sellLogisticsOrder(id, page, pageSize);
         } catch (Exception e) {
             log.error("销售订单-托运订单详情 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
@@ -111,14 +123,17 @@ public class LogisticsConsignmentController {
 
     /**
      * 销售订单-车辆详情-销售订单id
+     *
      * @param id
      * @return
      */
     @RequestMapping(value = "/sellLogisticsCar", method = RequestMethod.GET)
-    public HttpResult sellLogisticsCar(@RequestParam("id") String id,@RequestParam("page") int page,@RequestParam("pageSize") int pageSize) {
+    public HttpResult sellLogisticsCar(@RequestParam("id") @NotBlank(message = "单据id不能为空") String id,
+                                       @RequestParam("page") @NotBlank(message = "当前页不能为空") int page,
+                                       @RequestParam("pageSize") @NotBlank(message = "每页条数不能为空") int pageSize) {
         log.info("销售订单-托运订单详情 传递参数信息:{}", id);
         try {
-            return logisticsConsignmentService.sellLogisticsCar(id,page,pageSize);
+            return logisticsConsignmentService.sellLogisticsCar(id, page, pageSize);
         } catch (Exception e) {
             log.error("销售订单-托运订单详情 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());

+ 37 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/WaybillManagementController.java

@@ -0,0 +1,37 @@
+package com.sckw.transport.controller;
+
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.transport.service.WaybillManagementService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author lfdc
+ * @description 运单管理controller
+ * @date 2023-07-05 10:07:50
+ */
+
+@Slf4j
+@RestController
+@RequiredArgsConstructor
+@RequestMapping(value = "/kwtWaybillManagement")
+public class WaybillManagementController {
+    @Autowired
+    WaybillManagementService waybillManagementService;
+
+    @RequestMapping(value = "/waybillData", method = RequestMethod.GET)
+    public HttpResult waybillData(@Param("id") Long id) {
+        try {
+            return waybillManagementService.waybillData(id);
+        } catch (Exception e) {
+            log.error("托运订单详情:订单id {},error {} ", id, e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+}

+ 10 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderAddressMapper.java

@@ -3,6 +3,7 @@ package com.sckw.transport.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.transport.model.KwtLogisticsOrderAddress;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 @Mapper
 public interface KwtLogisticsOrderAddressMapper extends BaseMapper<KwtLogisticsOrderAddress> {
@@ -17,4 +18,13 @@ public interface KwtLogisticsOrderAddressMapper extends BaseMapper<KwtLogisticsO
 //    int updateByPrimaryKeySelective(KwtLogisticsOrderAddress record);
 //
 //    int updateByPrimaryKey(KwtLogisticsOrderAddress record);
+
+    /**
+     * @param lOrderId 物流订单id
+     * @param addressType 地址类型(1装货地址、2卸货地址)
+     * @desc 查询物流运单装卸货地址信息
+     * @author zk
+     * @date 2023/7/20
+     **/
+    KwtLogisticsOrderAddress findByAddress(@Param("lOrderId") Long lOrderId, @Param("addressType") Integer addressType);
 }

+ 10 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderCirculateMapper.java

@@ -27,4 +27,14 @@ public interface KwtLogisticsOrderCirculateMapper extends BaseMapper<KwtLogistic
      * @return
      */
     List<Long> selectDriverOrderByStatus(@Param("id") Long id, @Param("status") List<Long> loopStatus);
+
+    /**
+     * @param lOrderId 物流订单id
+     * @param truckNo 车牌号
+     * @param driverId 司机主键id
+     * @desc 查询物流运单装卸货地址信息
+     * @author zk
+     * @date 2023/7/20
+     **/
+    KwtLogisticsOrderCirculate findCirculate(@Param("lOrderId") Long lOrderId, @Param("truckNo") String truckNo, @Param("driverId") Long driverId);
 }

+ 9 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderGoodsMapper.java

@@ -3,6 +3,7 @@ package com.sckw.transport.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.transport.model.KwtLogisticsOrderGoods;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 @Mapper
 public interface KwtLogisticsOrderGoodsMapper extends BaseMapper<KwtLogisticsOrderGoods> {
@@ -17,4 +18,12 @@ public interface KwtLogisticsOrderGoodsMapper extends BaseMapper<KwtLogisticsOrd
 //    int updateByPrimaryKeySelective(KwtLogisticsOrderGoods record);
 //
 //    int updateByPrimaryKey(KwtLogisticsOrderGoods record);
+
+    /**
+     * @param lOrderId 物流订单id
+     * @desc 查询物流运单商品信息
+     * @author zk
+     * @date 2023/7/20
+     **/
+    KwtLogisticsOrderGoods findByGoods(@Param("lOrderId") Long lOrderId);
 }

+ 13 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java

@@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.transport.api.model.dto.vo.LogisticsOrderDTO;
 import com.sckw.transport.model.KwtLogisticsOrder;
 import com.sckw.transport.model.param.LogisticsOrderParam;
+import com.sckw.transport.model.vo.SubcontractConsignmentVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 @Mapper
 public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
@@ -60,4 +62,15 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
      * @return
      */
     Long selectLogisticOrderCount(@Param("logisticsOrderParam") LogisticsOrderParam logisticsOrderParam, @Param("dictId") Long dictId);
+
+    Map<String, String> getRejectReason(@Param("id") String id,@Param("status") String status);
+
+    /**
+     * 根据承运订单id查看分包数据列表
+     * @param lOrderId
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    List<SubcontractConsignmentVO> getSubcontractConsignment(@Param("lOrderId") String lOrderId, @Param("page") Integer page, @Param("pageSize") Integer pageSize);
 }

+ 8 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderUnitMapper.java

@@ -30,4 +30,12 @@ public interface KwtLogisticsOrderUnitMapper extends BaseMapper<KwtLogisticsOrde
      */
     List<KwtLogisticsOrderUnit> selectCompanyBylOrderId(@Param("ids") List<Long> ids, @Param("unitType") Integer unitType);
 
+    /**
+     * @param lOrderId 物流订单id
+     * @param unitType 1托运 2承运企业
+     * @desc 查询物流运单托运/承运企业信息
+     * @author zk
+     * @date 2023/7/20
+     **/
+    KwtLogisticsOrderUnit findByUnit(@Param("lOrderId") Long lOrderId, @Param("unitType") Integer unitType);
 }

+ 11 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderAddressMapper.java

@@ -0,0 +1,11 @@
+package com.sckw.transport.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.transport.model.KwtLogisticsOrderAddress;
+import com.sckw.transport.model.KwtWaybillOrderAddress;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface KwtWaybillOrderAddressMapper extends BaseMapper<KwtWaybillOrderAddress> {
+
+}

+ 9 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.mongo.model.TobleTop;
 import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.dto.OrderCarDTO;
+import com.sckw.transport.model.dto.WayBillDetailDTO;
 import com.sckw.transport.model.vo.WaybillDetailVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -44,4 +45,12 @@ public interface KwtWaybillOrderMapper extends BaseMapper<KwtWaybillOrder> {
      * @return
      */
     List<Long> selectDriverOrder(@Param("id") Long id, @Param("status") List<Long> status);
+
+    /**
+     * 根基运单ID查询关联数据
+     * @param id
+     * @return
+     */
+    WayBillDetailDTO selectWaybillRelate(@Param("id") Long id);
+
 }

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrder.java

@@ -108,7 +108,7 @@ public class KwtLogisticsOrder implements Serializable {
     /**
      * 计划结束日期
      */
-    private Date entTime;
+    private Date endTime;
 
     /**
      * 分包量

+ 23 - 38
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrder.java

@@ -1,14 +1,11 @@
 package com.sckw.transport.model;
 
-import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.sckw.core.model.base.BaseModel;
 import lombok.Data;
-
-import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
-
 /**
  * @author lfdc
  * @description 车辆运单
@@ -16,11 +13,7 @@ import java.util.Date;
  */
 @Data
 @TableName("kwt_waybill_order")
-public class KwtWaybillOrder implements Serializable {
-    /**
-     * 主键
-     */
-    private Long id;
+public class KwtWaybillOrder extends BaseModel {
 
     /**
      * 企业id
@@ -36,10 +29,16 @@ public class KwtWaybillOrder implements Serializable {
      * 编号
      */
     private String wOrderNo;
+
     /**
      * 单据类型(1:趟次;2:循环)
      */
-    private String type;
+    private Integer type;
+
+    /**
+     * 车辆信息ID
+     */
+    private Long truckId;
 
     /**
      * 车牌号
@@ -52,51 +51,39 @@ public class KwtWaybillOrder implements Serializable {
     private Long driverId;
 
     /**
-     * 已委托量
+     * 司机姓名
      */
-    private BigDecimal entrustAmount;
+    private String driverName;
 
     /**
-     * 卸货重量
+     * 司机手机号码
      */
-    private BigDecimal unloadAmount;
+    private String driverPhone;
 
     /**
-     * 装货重量
+     * 司机身份证号
      */
-    private BigDecimal loadAmount;
+    private String driverIdcard;
 
     /**
-     * 亏吨重量
-     */
-    private BigDecimal deficitAmount;
-
-    /**
-     * 备注
+     * 已委托量
      */
-    private String remark;
+    private BigDecimal entrustAmount;
 
     /**
-     * 用户状态(0正常、1已锁)
+     * 卸货重量
      */
-    private Integer status;
-
-    private Long createBy;
-
-    private Date createTime;
-
-    private Long updateBy;
+    private BigDecimal unloadAmount;
 
     /**
-     * 更新时间
+     * 装货重量
      */
-    private Date updateTime;
+    private BigDecimal loadAmount;
 
     /**
-     * 是否删除(0未删除,1删除)
+     * 亏吨重量
      */
-    @TableLogic("0")
-    private Integer delFlag;
+    private BigDecimal deficitAmount;
 
     /**
      * 计划开始时间
@@ -107,6 +94,4 @@ public class KwtWaybillOrder implements Serializable {
      * 计划结束时间
      */
     private Date endTime;
-
-    private static final long serialVersionUID = 1L;
 }

+ 85 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderAddress.java

@@ -0,0 +1,85 @@
+package com.sckw.transport.model;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.sckw.core.model.base.BaseModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author lfdc
+ * @description 车辆运单装卸货地址信息
+ * @date 2023-06-26 16:06:12
+ */
+@Data
+@TableName("kwt_waybill_order_address")
+public class KwtWaybillOrderAddress extends BaseModel {
+
+    /**
+     * 物流订单id
+     */
+    private Long wOrderId;
+
+    /**
+     * 地址类型(1装货地址、2卸货地址)
+     */
+    private Integer addressType;
+
+    /**
+     * 地址名称
+     */
+    private String name;
+
+    /**
+     * 地址类型
+     */
+    private Long type;
+
+    /**
+     * 联系人姓名
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 所在地区
+     */
+    private Integer cityCode;
+
+    /**
+     * 所属区域名称
+     */
+    private String cityName;
+
+    /**
+     * 详细地址
+     */
+    private String detailAddress;
+
+    /**
+     * 纬度
+     */
+    private String lat;
+
+    /**
+     * 纬度
+     */
+    private String lng;
+
+    /**
+     * 电子围栏
+     */
+    private String fence;
+
+    /**
+     * 入场(1刷身份证、2上报车号、3上报户头、4其它)
+     */
+    private Integer entryType;
+
+}

+ 0 - 85
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/CarListDTO.java

@@ -1,85 +0,0 @@
-package com.sckw.transport.model.dto;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * @author lfdc
- * @description 派车dto
- * @date 2023-07-13 14:07:03
- */
-@Data
-@Accessors(chain = true)
-public class CarListDTO {
-
-    /**
-     * 司机id
-     */
-    @JsonProperty("driverId")
-    @NotNull(message = "司机姓名不能为空")
-    private String driverId;
-
-    /**
-     * 司机姓名
-     */
-    @JsonProperty("driverName")
-    @NotNull(message = "司机姓名不能为空")
-    private String driverName;
-
-    /**
-     * 司机电话
-     */
-    @JsonProperty("driverPhone")
-    @NotNull(message = "司机电话不能为空")
-    private String driverPhone;
-
-    /**
-     * 装载量
-     */
-    @JsonProperty("loadAmount")
-    @NotNull(message = "装载量不能为空")
-    private String loadAmount;
-
-    /**
-     * 趟次
-     */
-    @JsonProperty("count")
-    private Integer count;
-
-    /**
-     * 车牌号
-     */
-    @JsonProperty("truckNo")
-    @NotNull(message = "车牌号不能为空")
-    private String truckNo;
-
-    /**
-     * 车辆类型
-     */
-    @JsonProperty("catType")
-    @NotNull(message = "车辆类型不能为空")
-    private String catType;
-
-    /**
-     * 司机身份证
-     */
-    @JsonProperty("driverCard")
-    @NotNull(message = "司机身份证不能为空")
-    private String driverCard;
-
-    /**
-     * 车队id
-     */
-    @JsonProperty("fleetId")
-    @NotNull(message = "车队id不能为空")
-    private String fleetId;
-
-    /**
-     * 车队名称
-     */
-    @JsonProperty("fleetName")
-    @NotNull(message = "车队名称不能为空")
-    private String fleetName;
-}

+ 0 - 114
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SendCarDTO.java

@@ -1,114 +0,0 @@
-package com.sckw.transport.model.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * @author lfdc
- * @description 派单dto
- * @date 2023-07-13 15:07:01
- */
-@Data
-public class SendCarDTO {
-    /**
-     * 物流订单id
-     */
-    @JsonProperty("lOrderId")
-    @NotNull(message = "订单id不能为空")
-    private String lOrderId;
-
-    /**
-     * 物流订单No
-     */
-    @JsonProperty("lOrderNo")
-    @NotNull(message = "订单no不能为空")
-    private String lOrderNo;
-
-    /**
-     * 装货时间
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date loadDateTime;
-
-    /**
-     * 卸货时间
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date unloadDateTime;
-
-    /**
-     * 装货区域
-     */
-    @JsonProperty("loadCity")
-    @NotNull(message = "装货区域不能为空")
-    private String loadCity;
-
-    /**
-     * 装货详细
-     */
-    @JsonProperty("loadAddress")
-    @NotNull(message = "装货详细地址不能为空")
-    private String loadAddress;
-
-    /**
-     * 卸货详细地址
-     */
-    @JsonProperty("unloadAddress")
-    @NotNull(message = "卸货详细地址不能为空")
-    private String  unloadAddress;
-
-    /**
-     * 卸货区域
-     */
-    @JsonProperty("unloadCity")
-    @NotNull(message = "卸货区域不能为空")
-    private String unloadCity;
-
-    /**
-     * 货物名称
-     */
-    @JsonProperty("goodsName")
-    @NotNull(message = "货物名称不能为空")
-    private String goodsName;
-    /**
-     * 货物id
-     */
-    @JsonProperty("goodsId")
-    @NotNull(message = "货物id不能为空")
-    private String goodsId;
-
-    /**
-     * 运单号
-     */
-    @JsonProperty("waybillNumber")
-    @NotNull(message = "运单号不能为空")
-    private String waybillNumber;
-
-    /**
-     * 派车类型(1:趟次:2:循环)
-     */
-    @JsonProperty("type")
-    @NotNull(message = "派车类型不能为空")
-    private String type;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    @NotNull(message = "运力信息不能为空")
-    List<CarListDTO> carList;
-
-    /**
-     * 待运量(循环时,必传递)
-     */
-    private String waitingVolume;
-}

+ 55 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SendCarDto1.java

@@ -36,6 +36,35 @@ public class SendCarDto1 {
     @NotNull(message = "司机信息ID不能为空")
     private Long driverId;
 
+    /**
+     * 司机名称
+     */
+    @JsonProperty("driverName")
+    @NotBlank(message = "司机名称不能为空")
+    private String driverName;
+
+    /**
+     * 司机手机号码
+     */
+    @JsonProperty("driverPhone")
+    @NotBlank(message = "司机手机号码不能为空")
+    private String driverPhone;
+
+    /**
+     * 司机身份证号
+     */
+    @JsonProperty("driverIdcard")
+    @NotBlank(message = "司机身份证号不能为空")
+    private String driverIdcard;
+
+
+    /**
+     * 车牌号
+     */
+    @JsonProperty("truckId")
+    @NotBlank(message = "车辆信息ID不能为空")
+    private Long truckId;
+
     /**
      * 车牌号
      */
@@ -43,6 +72,32 @@ public class SendCarDto1 {
     @NotBlank(message = "车牌号不能为空")
     private String truckNo;
 
+    /**
+     * 车辆类型(牵引车、自卸、高栏、平板、厢式、集装箱车、罐车、封闭式、专项作业车、其他)
+     */
+    private String truckType;
+
+    /**
+     * 车能源类型(柴油、汽油、电动、氢能、天然气、液化石油气、甲醇、油电混动、油气混动、其他)
+     */
+    private String truckEnergyType;
+
+    /**
+     * 车使用性质(营运车、租赁车辆、货运车、危化品运输车、非营运车、其他)
+     */
+    private String truckUseType;
+
+    /**
+     * 车辆颜色
+     */
+    private String truckColor;
+
+    /**
+     * 车挂车号
+     */
+    private String truckTrailerNo;
+
+
     /**
      * 上游给运单委派量
      */

+ 181 - 19
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java

@@ -1,8 +1,14 @@
 package com.sckw.transport.model.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
 
 
 /**
@@ -12,40 +18,202 @@ import lombok.Data;
  */
 @Data
 public class SubcontractConsignmentDTO {
+
     /**
-     *订单编号
+     *总量
      */
-    @NotBlank(message = "订单编号不能为空")
-    private String orderId;
+    private Long amount;
     /**
-     * 运输货物
+     * 分配承运量
      */
-    @NotBlank(message = "运输货物名不能为空")
-    private String goodsName;
+    private Long carryingCapacity;
+    /**
+     * 分配承运量使用的单位
+     */
+    private String carryingCapacityUnit;
 
     /**
      * 托运单位
      */
-    @NotBlank(message = "托运单位不能为空")
-    private String consignCompany;
+    @NotNull(message = "托运单位名称不能为空")
+    private String checkCompany;
+    /**
+     * 托运单位id
+     */
+    @NotNull(message = "托运单位id不能为空")
+    private String checkCompanyId;
 
+    /**
+     * 联系电话
+     */
+    @NotNull(message = "托运联系电话不能为空")
+    private String checkContactPhone;
+    /**
+     * 联系人
+     */
+    @NotNull(message = "托运联系人不能为空")
+    private String checkContacts;
+
+    /**
+     * 合理损耗
+     */
+    @NotNull(message = "合理损耗不能为空")
+    private Long loss;
+    /**
+     * 合理损耗单位
+     */
+    private String lossUnit;
+
+    /**
+     * 商品价值(扣亏货值)
+     */
+    @NotNull(message = "扣亏货值不能为空")
+    private Long goodsPrice;
+    /**
+     * 商品价值(扣亏货值)单位
+     */
+    private String goodsPriceUnit;
     /**
      * 承运单位
      */
     @NotBlank(message = "承运单位不能为空")
-    private String acceptCarriageCompany;
+    private String consignCompany;
+
+    /**
+     * 承运单位ID
+     */
+    @NotBlank(message = "承运单位ID不能为空")
+    private String consignCompanyId;
+
+    /**
+     * 联系电话
+     */
+    @NotNull(message = "承运联系电话不能为空")
+    private String consignContactPhone;
+    /**
+     * 联系人
+     */
+    @NotNull(message = "承运联系人不能为空")
+    private String consignContacts;
+
+    /**
+     * 结算周期(周结、月结、季结)
+     */
+    @NotNull(message = "结算周期不能为空")
+    private Long settlementCycle;
 
+    /**
+     * 合同id
+     */
+    @NotNull(message = "合同id不能为空")
+    private String contractId;
+    /**
+     * 合同编号
+     */
+    @NotNull(message = "合同编号不能为空")
+    private String contractNo;
+
+    /**
+     * 合同名称
+     */
+    @NotNull(message = "合同名称不能为空")
+    private String contractName;
+
+    /**
+     * 合同签约方式
+     */
+    @NotNull(message = "合同签约方式不能为空")
+    private String payment;
+    /**
+     * 货物名称
+     */
+    @NotNull(message = "货物名称不能为空")
+    private String goodsName;
+
+    /**
+     * 货物id
+     */
+    @NotNull(message = "货物id不能为空")
+    private String goodsId;
+
+    /**
+     * skuId
+     */
+    private String skuId;
+
+    /**
+     * 是否全量
+     */
+    @NotNull(message = "是否全量不能为空")
+    private Boolean isFullDose;
+
+    /**
+     * 订单id-分包时要使用
+     */
+    @JsonProperty("lOrderId")
+    private String lOrderId;
+
+    /**
+     * 订单编号-分包时要使用
+     */
+    @JsonProperty("lOrderNo")
+    private String lOrderNo;
+
+    /**
+     * 运价
+     */
+    @NotNull(message = "运价不能为空")
+    private Long price;
+
+    /**
+     * 运价方式
+     */
+    @NotNull(message = "运价方式不能为空")
+    private String priceType;
+
+    /**
+     * 计划卸货时间
+     */
+    @NotNull(message = "计划卸货时间不能为空")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date receiveGoodsDateTime;
+
+    /**
+     * 计划发货时间
+     */
+    @NotNull(message = "计划发货时间不能为空")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date shipmentsDateTime;
+
+    /**
+     * 税率
+     */
+    @NotNull(message = "税率不能为空")
+    private Long taxRate;
+    /**
+     * 备注
+     */
+    @Length(max = 200,message = "单据编号长度错误最大长度:{max}")
+    private String remark;
     /**
      * 计费方式
      */
-    @NotBlank
+    @NotNull(message = "计费方式不能为空")
     private String billingMode;
 
     /**
-     * 分配承运量
+     *订单编号
      */
-    @NotNull
-    private Long carryingCapacity;
+    @NotBlank(message = "订单编号不能为空")
+    private String orderId;
+
+    /**
+     * 承运单位
+     */
+    @NotBlank(message = "承运单位不能为空")
+    private String acceptCarriageCompany;
 
     /**
      * 运价
@@ -62,10 +230,4 @@ public class SubcontractConsignmentDTO {
      */
     private Long defectiveValue;
 
-    /**
-     * 描述备注
-     */
-    private String remark;
-
-
 }

+ 31 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WayBillDetailDTO.java

@@ -0,0 +1,31 @@
+package com.sckw.transport.model.dto;
+
+import lombok.Data;
+
+/**
+ * @author JC
+ * @version 1.0
+ * @desc TODO
+ * @date 2023/07/20 11:32:36
+ **/
+@Data
+public class WayBillDetailDTO {
+    private Long wOrderId;
+    private String wOrderNo;
+    private String lOrderNo;
+    private String truckNo;
+    private Long lOrderId;
+    private String entrustAmount;
+    private String type;
+    private String startTime;
+    private String endTime;
+    private String createBy;
+    private String priceType;
+    private String goodsName;
+    private String startAddressId;
+    private String endAddressId;
+    private String startLocationName;
+    private String startLocationAddress;
+    private String endLocationName;
+    private String endLocationAddress;
+}

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java

@@ -200,7 +200,7 @@ public class LogisticsConsignmentParam {
     /**
      * 备注
      */
-    @Length(max = 400,message = "单据编号长度错误最大长度:{max}")
+    @Length(max = 200,message = "单据编号长度错误最大长度:{max}")
     private String remark;
     /**
      * 计费方式

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

@@ -28,7 +28,7 @@ public class CarWaybillVO {
     /**
      * 运单类型
      */
-    private String waybillType;
+    private Integer waybillType;
     /**
      * 司机
      */

+ 170 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/SubcontractConsignmentVO.java

@@ -0,0 +1,170 @@
+package com.sckw.transport.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lfdc
+ * @description 分包托运列表展示
+ * @date 2023-07-20 15:07:45
+ */
+@Data
+public class SubcontractConsignmentVO {
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 数据库表主键id
+     */
+    private String id;
+    /**
+     * 父级id
+     */
+    private String pid;
+    /**
+     * 托运订单号
+     */
+    private String consignOrderNo;
+    /**
+     * 承运单位
+     */
+    private String carrierCompany;
+    /**
+     * 货物名称
+     */
+    private String goodsName;
+    /**
+     * 签约方式
+     */
+    private String signing;
+    /**
+     * 分配承运量
+     */
+    private String carryingCapacity;
+    /**
+     * 装货地点
+     */
+    private String loadAddress;
+    /**
+     * 卸货地点
+     */
+    private String unloadAddress;
+    /**
+     * 运价
+     */
+    private String price;
+
+    /**
+     * 运价方式
+     */
+    private String priceType;
+
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+    /**
+     * 合理损耗
+     */
+    private String loss;
+    /**
+     * 合理损耗
+     */
+    private String lossUnit;
+    /**
+     * 扣亏货值/元/吨
+     */
+    private String goodsPrice;
+
+    /**
+     * 扣亏货值/元/吨
+     */
+    private String goodsPriceUnit;
+    /**
+     * 结算周期
+     */
+    private String settlementCycle;
+    /**
+     * 承运联系人
+     */
+    private String carrierContacts;
+    /**
+     * 承运联系电话
+     */
+    private String carrierPhone;
+    /**
+     * 托运单位
+     */
+    private String consignCompany;
+    /**
+     * 托运联系人
+     */
+    private String consignContacts;
+    /**
+     * 托运联系电话
+     */
+    private String consignPhone;
+    /**
+     * 装货联系人
+     */
+    private String loadContacts;
+    /**
+     * 装货电话
+     */
+    private String loadPhone;
+    /**
+     * 卸货联系人
+     */
+    private String unloadContacts;
+    /**
+     * 卸货电话
+     */
+    private String unloadPhone;
+    /**
+     * 计划发货时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date shipmentsDate;
+    /**
+     * 计划收货时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date receiveGoodsDate;
+    /**
+     * 承运订单号
+     */
+    private String carrierOrderNo;
+    /**
+     * 合同id
+     */
+    private String contractId;
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+    /**
+     * 合同名称
+     */
+    private String contractName;
+    /**
+     * 签约方式
+     */
+    private String contractSigningWay;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String createBy;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+}

+ 33 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillDataVO.java

@@ -0,0 +1,33 @@
+package com.sckw.transport.model.vo;
+
+import com.sckw.transport.model.dto.WayBillDetailDTO;
+import lombok.Data;
+
+/**
+ * @author lfdcsdsd
+ * @description 运单详情vo
+ * @date 2023-07-18 16:07:54
+ */
+@Data
+public class WaybillDataVO {
+    /**
+     * 基础信息
+     */
+    private WayBillDetailDTO transportMessage;
+
+    /**
+     * 车辆人员
+     */
+    private WaybillOrderVO carMessage;
+
+    /**
+     * 履约协议
+     */
+    private WaybillOrderVO agreementMessage;
+
+    /**
+     * 业务日志
+     */
+    private WaybillOrderVO logsMessage;
+}
+

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillDetailVO.java

@@ -35,7 +35,7 @@ public class WaybillDetailVO {
     /**
      * 运单类型
      */
-    private String waybillType;
+    private Integer waybillType;
     /**
      * 亏吨量
      */

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

@@ -231,7 +231,7 @@ public class WaybillOrderVO {
     /**
      * 循环/趟次
      */
-    private String type;
+    private Integer type;
 
     /**
      * 车队id

+ 333 - 318
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -9,7 +9,9 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.StringConstant;
-import com.sckw.core.common.enums.enums.DictEnum;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.model.enums.CarWaybillEnum;
+import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
@@ -22,25 +24,16 @@ import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
-import com.sckw.order.api.model.AddressInfoDetail;
-import com.sckw.order.api.model.OrderDetailRes;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
-import com.sckw.transport.common.enums.CarWaybillEnum;
-import com.sckw.transport.common.enums.LogisticsOrderEnum;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
-import com.sckw.transport.model.dto.CarListDTO;
 import com.sckw.transport.model.dto.OrderTakingDTO;
-import com.sckw.transport.model.dto.SendCarDTO;
+import com.sckw.transport.model.dto.SubcontractConsignmentDTO;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
-import com.sckw.transport.model.param.LogisticsConsignmentParam;
-import com.sckw.transport.model.vo.AcceptCarriageOrderVO;
-import com.sckw.transport.model.vo.CarWaybillVO;
-import com.sckw.transport.model.vo.ConsignmentVO;
-import com.sckw.transport.model.vo.WaybillDetailVO;
+import com.sckw.transport.model.vo.*;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -140,10 +133,11 @@ public class AcceptCarriageOrderService {
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
-    public HttpResult subcontractConsignment(LogisticsConsignmentParam bo) {
-        OrderDetailRes tradeOrder = tradeOrderInfoService.getOrderDetailById(Long.parseLong(bo.getTOrderId()));
-        if (tradeOrder == null) {
-            log.error("订单id查找失败:{}", bo.getTOrderId());
+    public HttpResult subcontractConsignment(SubcontractConsignmentDTO bo) {
+        KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                .eq(KwtLogisticsOrder::getId, bo.getLOrderId()));
+        if (logisticsOrder == null) {
+            log.error("订单id查找失败:{},订单编号:{}", bo.getOrderId(), bo.getLOrderNo());
             throw new RuntimeException("单据错误,数据不存在");
         }
         KwtLogisticsOrder order = new KwtLogisticsOrder();
@@ -151,7 +145,7 @@ public class AcceptCarriageOrderService {
             Long amount = bo.getAmount();
             Long carryingCapacity = bo.getCarryingCapacity();
             if (carryingCapacity > amount) {
-                log.error("运订单分包托运-可分配量分配错误:{}", bo.getTOrderId());
+                log.error("运订单分包托运-可分配量分配错误:{}", bo.getOrderId());
                 throw new RuntimeException("可分配量分配错误");
             }
             if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
@@ -174,8 +168,6 @@ public class AcceptCarriageOrderService {
         if (count >= NumberConstant.TWO) {
             throw new RuntimeException("分包次数已达上限!");
         }
-        KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                .eq(KwtLogisticsOrder::getId, bo.getLOrderId()));
         String pids = logisticsOrder.getPids();
         if (StringUtils.isNotBlank(pids)) {
             pids = pids + StringConstant.SEMICOLON + orderId;
@@ -183,36 +175,34 @@ public class AcceptCarriageOrderService {
             pids = bo.getLOrderId() + StringConstant.SEMICOLON + orderId;
         }
         insertSubcontractLogisticsGoods(bo, lOrderNo, orderId);
-        insertSubcontractLogisticsOrder(bo, lOrderNo, order, tradeOrder, orderId, pids);
+        insertSubcontractLogisticsOrder(bo, lOrderNo, order, orderId, pids);
         insertSubcontractLogisticsOrderContract(bo, orderId);
         insertSubcontractLogisticsOrderUnit(bo, orderId);
-        insertSubcontractLogisticsOrderAddress(bo, orderId);
+        insertSubcontractLogisticsOrderAddress(bo, orderId, logisticsOrder);
         insertLogisticsOrderTrack(bo, orderId);
         //修改上级分配量以及可分配量委托量等
         logisticsOrder.setSubcontractAmount(logisticsOrder.getSubcontractAmount().add(new BigDecimal(bo.getCarryingCapacity())));
-        subcontractSendMongoDB(lOrderNo, orderId, bo, tradeOrder);
+        subcontractSendMongoDB(lOrderNo, orderId, bo, logisticsOrder);
         return HttpResult.ok();
     }
 
     /**
      * 推送数据到MongoDB
      *
-     * @param lOrderNo   物流订单编号
-     * @param orderId    物流订单id
-     * @param bo         页面传输实体
-     * @param tradeOrder 贸易订单信息
+     * @param lOrderNo          物流订单编号
+     * @param orderId           物流订单id
+     * @param bo                页面传输实体
+     * @param kwtLogisticsOrder 物流订单数据(上一级)
      */
-    private void subcontractSendMongoDB(String lOrderNo, Long orderId, LogisticsConsignmentParam bo, OrderDetailRes tradeOrder) {
+    private void subcontractSendMongoDB(String lOrderNo, Long orderId, SubcontractConsignmentDTO bo, KwtLogisticsOrder kwtLogisticsOrder) {
         SckwLogisticsOrder logisticsOrder = new SckwLogisticsOrder();
         logisticsOrder.setLOrderId(orderId);
         logisticsOrder.setLOrderNo(lOrderNo);
         logisticsOrder.setLOrderPid(Long.parseLong(bo.getLOrderId()));
-        logisticsOrder.setTOrderId(tradeOrder.getId());
-        logisticsOrder.setTOrderNo("D" + com.sckw.transport.utils.StringUtils.getWaybillNoUtil());
         logisticsOrder.setSettlementCycle(bo.getSettlementCycle());
         logisticsOrder.setPrice(new BigDecimal(bo.getPrice()));
-        logisticsOrder.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()) == null ?
-                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()).getValue()));
+        logisticsOrder.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()) == null ?
+                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()).getValue()));
         if (!bo.getIsFullDose()) {
             if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
                 throw new RuntimeException("不是全量分配时,分配量不能为空!");
@@ -255,28 +245,31 @@ public class AcceptCarriageOrderService {
         logisticsOrder.setCarrierEntId(Long.parseLong(bo.getConsignCompanyId()));
         logisticsOrder.setCarrierFirmName(bo.getConsignCompany());
         logisticsOrder.setCarrierContacts(bo.getConsignContacts());
-        List<AddressInfoDetail> addressInfo = tradeOrder.getAddressInfo();
-        for (AddressInfoDetail detail : addressInfo) {
-            if (String.valueOf(NumberConstant.ONE).equals(detail.getAddressType())) {
-                logisticsOrder.setLoadType(Long.parseLong(detail.getType()));
-                logisticsOrder.setLoadCityCode(detail.getCityCode());
-                logisticsOrder.setLoadCityName(detail.getCityName());
-                logisticsOrder.setLoadDetailAddress(detail.getDetailAddress());
-                logisticsOrder.setLoadLat(detail.getLat());
-                logisticsOrder.setLoadPhone(detail.getPhone());
-                logisticsOrder.setLoadLng(detail.getLng());
-                logisticsOrder.setLoadContacts(detail.getContacts());
-            }
-            if (String.valueOf(NumberConstant.TWO).equals(detail.getAddressType())) {
-                logisticsOrder.setUnloadType(Long.parseLong(detail.getType()));
-                logisticsOrder.setUnloadPhone(detail.getPhone());
-                logisticsOrder.setUnloadCityCode(detail.getCityCode());
-                logisticsOrder.setUnloadCityName(detail.getCityName());
-                logisticsOrder.setUnloadDetailAddress(detail.getDetailAddress());
-                logisticsOrder.setUnloadLat(detail.getLat());
-                logisticsOrder.setUnloadLng(detail.getLng());
-                logisticsOrder.setUnloadContacts(detail.getContacts());
-            }
+        KwtLogisticsOrderAddress orderLoadAddress = logisticsOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderAddress>()
+                .eq(KwtLogisticsOrderAddress::getLOrderId, kwtLogisticsOrder.getId())
+                .eq(KwtLogisticsOrderAddress::getAddressType, NumberConstant.ONE));
+        KwtLogisticsOrderAddress orderUnLoadAddress = logisticsOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderAddress>()
+                .eq(KwtLogisticsOrderAddress::getLOrderId, kwtLogisticsOrder.getId())
+                .eq(KwtLogisticsOrderAddress::getAddressType, NumberConstant.TWO));
+        if (!ObjectUtils.isEmpty(orderLoadAddress)) {
+            logisticsOrder.setLoadType(orderLoadAddress.getType());
+            logisticsOrder.setLoadCityCode(orderLoadAddress.getCityCode());
+            logisticsOrder.setLoadCityName(orderLoadAddress.getCityName());
+            logisticsOrder.setLoadDetailAddress(orderLoadAddress.getDetailAddress());
+            logisticsOrder.setLoadLat(orderLoadAddress.getLat());
+            logisticsOrder.setLoadPhone(orderLoadAddress.getPhone());
+            logisticsOrder.setLoadLng(orderLoadAddress.getLng());
+            logisticsOrder.setLoadContacts(orderLoadAddress.getContacts());
+        }
+        if (!ObjectUtils.isEmpty(orderUnLoadAddress)) {
+            logisticsOrder.setUnloadType(orderUnLoadAddress.getType());
+            logisticsOrder.setUnloadPhone(orderUnLoadAddress.getPhone());
+            logisticsOrder.setUnloadCityCode(orderUnLoadAddress.getCityCode());
+            logisticsOrder.setUnloadCityName(orderUnLoadAddress.getCityName());
+            logisticsOrder.setUnloadDetailAddress(orderUnLoadAddress.getDetailAddress());
+            logisticsOrder.setUnloadLat(orderUnLoadAddress.getLat());
+            logisticsOrder.setUnloadLng(orderUnLoadAddress.getLng());
+            logisticsOrder.setUnloadContacts(orderUnLoadAddress.getContacts());
         }
         //TODO 生成时并无时间
 //        logisticsOrder.setLoadTime();
@@ -307,7 +300,7 @@ public class AcceptCarriageOrderService {
      * @param bo
      * @param orderId
      */
-    private void insertLogisticsOrderTrack(LogisticsConsignmentParam bo, Long orderId) {
+    private void insertLogisticsOrderTrack(SubcontractConsignmentDTO bo, Long orderId) {
         KwtLogisticsOrderTrack entity = new KwtLogisticsOrderTrack();
         entity.setId(new IdWorker(NumberConstant.ONE).nextId());
         entity.setLOrderId(orderId);
@@ -325,55 +318,52 @@ public class AcceptCarriageOrderService {
      *
      * @param bo
      * @param orderId
+     * @param logisticsOrder
      */
-    private void insertSubcontractLogisticsOrderAddress(LogisticsConsignmentParam bo, Long orderId) {
+    private void insertSubcontractLogisticsOrderAddress(SubcontractConsignmentDTO bo, Long orderId, KwtLogisticsOrder logisticsOrder) {
         KwtLogisticsOrderAddress loadOrderAddress = new KwtLogisticsOrderAddress();
         KwtLogisticsOrderAddress unloadOrderAddress = new KwtLogisticsOrderAddress();
-        OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(bo.getTOrderId()));
-        if (ObjectUtils.isEmpty(orderDetailRes)) {
-            log.info("dubbp 查询数据 error :orderId:{}", bo.getTOrderId());
-            throw new RuntimeException("dubbp 查询销售订单数据查找失败!");
+        KwtLogisticsOrderAddress orderLoadAddress = logisticsOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderAddress>()
+                .eq(KwtLogisticsOrderAddress::getLOrderId, logisticsOrder.getId())
+                .eq(KwtLogisticsOrderAddress::getAddressType, NumberConstant.ONE));
+        KwtLogisticsOrderAddress orderUnLoadAddress = logisticsOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderAddress>()
+                .eq(KwtLogisticsOrderAddress::getLOrderId, logisticsOrder.getId())
+                .eq(KwtLogisticsOrderAddress::getAddressType, NumberConstant.TWO));
+        if (!ObjectUtils.isEmpty(orderLoadAddress)) {
+            loadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
+            loadOrderAddress.setAddressType(NumberConstant.ONE);
+            loadOrderAddress.setDetailAddress(orderLoadAddress.getDetailAddress());
+            loadOrderAddress.setContacts(orderLoadAddress.getContacts());
+            loadOrderAddress.setLOrderId(orderId);
+            loadOrderAddress.setLat(orderLoadAddress.getLat());
+            loadOrderAddress.setFence(orderLoadAddress.getFence());
+            loadOrderAddress.setCityName(orderLoadAddress.getCityName());
+            loadOrderAddress.setEntryType(NumberConstant.FOUR);
+            loadOrderAddress.setCreateTime(new Date());
+            loadOrderAddress.setPhone(orderLoadAddress.getPhone());
+            loadOrderAddress.setCreateBy(LoginUserHolder.getUserId());
+            loadOrderAddress.setUpdateBy(LoginUserHolder.getUserId());
+            loadOrderAddress.setUpdateTime(new Date());
+            logisticsOrderAddressMapper.insert(loadOrderAddress);
         }
-        List<AddressInfoDetail> addressInfo = orderDetailRes.getAddressInfo();
-        if (CollectionUtils.isNotEmpty(addressInfo)) {
-            for (AddressInfoDetail detail : addressInfo) {
-                if (String.valueOf(NumberConstant.ONE).equals(detail.getAddressType())) {
-                    loadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
-                    loadOrderAddress.setAddressType(NumberConstant.ONE);
-                    loadOrderAddress.setDetailAddress(detail.getDetailAddress());
-                    loadOrderAddress.setContacts(detail.getContacts());
-                    loadOrderAddress.setLOrderId(orderId);
-                    loadOrderAddress.setLat(detail.getLat());
-                    loadOrderAddress.setFence(detail.getFence());
-                    loadOrderAddress.setCityName(detail.getCityName());
-                    loadOrderAddress.setEntryType(NumberConstant.FOUR);
-                    loadOrderAddress.setCreateTime(new Date());
-                    loadOrderAddress.setPhone(detail.getPhone());
-                    loadOrderAddress.setCreateBy(LoginUserHolder.getUserId());
-                    loadOrderAddress.setUpdateBy(LoginUserHolder.getUserId());
-                    loadOrderAddress.setUpdateTime(new Date());
-                }
-                if (String.valueOf(NumberConstant.TWO).equals(detail.getAddressType())) {
-                    unloadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
-                    unloadOrderAddress.setAddressType(NumberConstant.TWO);
-                    unloadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
-                    unloadOrderAddress.setContacts(detail.getContacts());
-                    unloadOrderAddress.setLOrderId(orderId);
-                    unloadOrderAddress.setLat(detail.getLat());
-                    unloadOrderAddress.setFence(detail.getFence());
-                    unloadOrderAddress.setCityName(detail.getCityName());
-                    unloadOrderAddress.setEntryType(NumberConstant.FOUR);
-                    unloadOrderAddress.setPhone(detail.getPhone());
-                    unloadOrderAddress.setDetailAddress(detail.getDetailAddress());
-                    unloadOrderAddress.setCreateTime(new Date());
-                    unloadOrderAddress.setCreateBy(LoginUserHolder.getUserId());
-                    unloadOrderAddress.setUpdateBy(LoginUserHolder.getUserId());
-                    unloadOrderAddress.setUpdateTime(new Date());
-                }
-            }
+        if (!ObjectUtils.isEmpty(orderUnLoadAddress)) {
+            unloadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
+            unloadOrderAddress.setAddressType(NumberConstant.TWO);
+            unloadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
+            unloadOrderAddress.setContacts(orderUnLoadAddress.getContacts());
+            unloadOrderAddress.setLOrderId(orderId);
+            unloadOrderAddress.setLat(orderUnLoadAddress.getLat());
+            unloadOrderAddress.setFence(orderUnLoadAddress.getFence());
+            unloadOrderAddress.setCityName(orderUnLoadAddress.getCityName());
+            unloadOrderAddress.setEntryType(NumberConstant.FOUR);
+            unloadOrderAddress.setPhone(orderUnLoadAddress.getPhone());
+            unloadOrderAddress.setDetailAddress(orderUnLoadAddress.getDetailAddress());
+            unloadOrderAddress.setCreateTime(new Date());
+            unloadOrderAddress.setCreateBy(LoginUserHolder.getUserId());
+            unloadOrderAddress.setUpdateBy(LoginUserHolder.getUserId());
+            unloadOrderAddress.setUpdateTime(new Date());
+            logisticsOrderAddressMapper.insert(unloadOrderAddress);
         }
-        logisticsOrderAddressMapper.insert(loadOrderAddress);
-        logisticsOrderAddressMapper.insert(unloadOrderAddress);
     }
 
     /**
@@ -382,7 +372,7 @@ public class AcceptCarriageOrderService {
      * @param bo
      * @param orderId
      */
-    private void insertSubcontractLogisticsOrderUnit(LogisticsConsignmentParam bo, Long orderId) {
+    private void insertSubcontractLogisticsOrderUnit(SubcontractConsignmentDTO bo, Long orderId) {
         KwtLogisticsOrderUnit checkUnit = new KwtLogisticsOrderUnit()
                 .setLOrderId(orderId)
                 .setId(new IdWorker(NumberConstant.ONE).nextId())
@@ -420,7 +410,7 @@ public class AcceptCarriageOrderService {
      * @param bo
      * @param orderId
      */
-    private void insertSubcontractLogisticsOrderContract(LogisticsConsignmentParam bo, Long orderId) {
+    private void insertSubcontractLogisticsOrderContract(SubcontractConsignmentDTO bo, Long orderId) {
         KwtLogisticsOrderContract kwtLogisticsOrderContract = new KwtLogisticsOrderContract();
         kwtLogisticsOrderContract.setId(new IdWorker(NumberConstant.ONE).nextId());
         kwtLogisticsOrderContract.setLOrderId(orderId);
@@ -439,17 +429,16 @@ public class AcceptCarriageOrderService {
      * @param bo
      * @param lOrderNo
      * @param order
-     * @param tradeOrder
      * @param orderId
      * @param pids
      */
-    private void insertSubcontractLogisticsOrder(LogisticsConsignmentParam bo, String lOrderNo,
-                                                 KwtLogisticsOrder order, OrderDetailRes tradeOrder,
+    private void insertSubcontractLogisticsOrder(SubcontractConsignmentDTO bo, String lOrderNo,
+                                                 KwtLogisticsOrder order,
                                                  Long orderId, String pids) {
         order.setId(orderId);
         order.setEntId(LoginUserHolder.getEntId());
-        order.setTOrderId(Long.parseLong(bo.getTOrderId()));
-        order.setTOrderNo(bo.getTOrderNo());
+        order.setTOrderId(order.getTOrderId());
+        order.setTOrderNo(order.getTOrderNo());
         order.setLOrderNo(lOrderNo);
         //分包时,存放分包上级id
         order.setPid(Long.parseLong(bo.getLOrderId()));
@@ -457,22 +446,22 @@ public class AcceptCarriageOrderService {
         order.setPids(pids);
         order.setSettlementCycle(bo.getSettlementCycle());
         order.setPrice(new BigDecimal(bo.getPrice()));
-        order.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()) == null ?
-                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()).getValue()));
+        order.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()) == null ?
+                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()).getValue()));
         order.setAmount(new BigDecimal(bo.getCarryingCapacity()));
         order.setBillingMode(bo.getBillingMode());
         order.setLoss(new BigDecimal(bo.getLoss()));
         order.setLossUnit(bo.getLossUnit());
-        order.setLossUnit(remoteSystemService.queryDictByTypeAndValue(DictEnum.UNIT_TYPE_0.getType(), bo.getLossUnit()) == null ?
-                null : remoteSystemService.queryDictByTypeAndValue(DictEnum.UNIT_TYPE_0.getType(), bo.getLossUnit()).getValue());
+        order.setLossUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()) == null ?
+                null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()).getValue());
         order.setGoodsPrice(new BigDecimal(bo.getGoodsPrice()));
-        order.setGoodsPriceUnit(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getGoodsPriceUnit()) == null ?
-                null : remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getGoodsPriceUnit()).getValue());
+        order.setGoodsPriceUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getGoodsPriceUnit()) == null ?
+                null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getGoodsPriceUnit()).getValue());
         order.setGoodsPriceUnit(bo.getGoodsPriceUnit());
         order.setStartTime(bo.getShipmentsDateTime());
-        order.setEntTime(bo.getReceiveGoodsDateTime());
+        order.setEndTime(bo.getReceiveGoodsDateTime());
         order.setRemark(bo.getRemark());
-        order.setPayment(Long.parseLong(tradeOrder.getTrading()));
+        order.setPayment(order.getPayment());
         order.setTaxRate(new BigDecimal(bo.getTaxRate()));
         order.setCreateBy(LoginUserHolder.getUserId());
         order.setCreateTime(new Date());
@@ -497,7 +486,7 @@ public class AcceptCarriageOrderService {
      * @param lOrderNo
      * @param orderId
      */
-    private void insertSubcontractLogisticsGoods(LogisticsConsignmentParam bo, String lOrderNo, Long orderId) {
+    private void insertSubcontractLogisticsGoods(SubcontractConsignmentDTO bo, String lOrderNo, Long orderId) {
         KwtLogisticsOrderGoods kwtLogisticsOrderGoods = new KwtLogisticsOrderGoods();
         kwtLogisticsOrderGoods.setId(new IdWorker(NumberConstant.ONE).nextId());
         kwtLogisticsOrderGoods.setGoodsId(Long.parseLong(bo.getGoodsId()));
@@ -553,125 +542,123 @@ public class AcceptCarriageOrderService {
         return result;
     }
 
-    /**
-     * 派车
-     *
-     * @param sendCarDTO
-     * @return
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public HttpResult commitSendCar(SendCarDTO sendCarDTO) {
-        log.info("承运订单提交派车信息详情:{}", JSONObject.toJSONString(sendCarDTO));
-        HttpResult result = new HttpResult();
-        KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
-                .eq(StringUtils.isNotBlank(sendCarDTO.getLOrderId()), KwtLogisticsOrder::getId, sendCarDTO.getLOrderId()));
-        if (logisticsOrder == null) {
-            result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
-            result.setMsg("单据不存在!");
-            return result;
-        }
-        List<SckwWaybillOrder> list = new ArrayList<>();
-        if (String.valueOf(NumberConstant.ONE).equals(sendCarDTO.getType())) {
-            for (CarListDTO car : sendCarDTO.getCarList()) {
-                if (ObjectUtils.isEmpty(car.getCount())) {
-                    throw new RuntimeException("趟次派车时,趟次次数不能为空");
-                }
-                for (int i = 0; i < car.getCount(); i++) {
-                    Long wOrderId = new IdWorker(NumberConstant.ONE).nextId();
-                    String wOrderNo = com.sckw.transport.utils.StringUtils.getWaybillNoUtil() + i;
-                    KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
-                    String type = String.valueOf(NumberConstant.ZERO);
-                    waybillOrder.setType(type);
-                    waybillOrder.setEntrustAmount(new BigDecimal(car.getLoadAmount()));
-                    insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO, list, type);
-                    //insertWaybillOrderTicket(id,wOrderNo,logisticsOrder,sendCarDTO);
-//                    insertWaybillOrderTrack(wOrderId);
-                }
-            }
-        } else if (String.valueOf(NumberConstant.TWO).equals(sendCarDTO.getType())) {
-            for (CarListDTO car : sendCarDTO.getCarList()) {
-                if (ObjectUtils.isEmpty(sendCarDTO.getWaitingVolume())) {
-                    throw new RuntimeException("循环派车时,剩余可运量不能为空");
-                }
-                for (int i = 0; i < car.getCount(); i++) {
-                    KwtLogisticsOrderCirculate circulate = new KwtLogisticsOrderCirculate();
-                    circulate.setId(new IdWorker(NumberConstant.ONE).nextId());
-                    circulate.setEntId(logisticsOrder.getEntId());
-                    circulate.setLOrderId(Long.parseLong(sendCarDTO.getLOrderId()));
-                    circulate.setTruckNo(car.getTruckNo());
-                    circulate.setDriverId(Long.parseLong(car.getDriverId()));
-                    circulate.setActualAmount(new BigDecimal(car.getLoadAmount()));
-                    circulate.setEntrustAmount(new BigDecimal(sendCarDTO.getWaitingVolume()));
-                    circulate.setEntrustDate(new Date());
-                    circulate.setCreateBy(LoginUserHolder.getUserId());
-                    circulate.setCreateTime(new Date());
-                    circulate.setUpdateBy(LoginUserHolder.getUserId());
-                    circulate.setUpdateTime(new Date());
-                    circulate.setType(String.valueOf(NumberConstant.ONE));
-                    logisticsOrderCirculateMapper.insert(circulate);
-                    sendMongoDbData(list, logisticsOrder, car, sendCarDTO, String.valueOf(NumberConstant.ONE));
-                }
-            }
-        } else {
-            result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
-            result.setMsg("派车类型错误!");
-            return result;
-        }
-        if (CollectionUtils.isNotEmpty(list)) {
-            for (SckwWaybillOrder sckwWaybillOrder : list) {
-                //rabbitMq业务汇总数据发送/消费对象
-                SckwBusSum busSum = new SckwBusSum();
-                //业务汇总类型
-                busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
-                //操作对象(1新增/2修改)
-                busSum.setMethod(1);
-                //业务汇总数据对象
-                busSum.setObject(sckwWaybillOrder);
-                streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
-            }
-        }
-        return result;
-    }
-
-    private void sendMongoDbData(List<SckwWaybillOrder> list, KwtLogisticsOrder logisticsOrder
-            , CarListDTO carListDTO, SendCarDTO sendCarDTO, String type) {
-        //放入mongodb实体
-        SckwWaybillOrder waybillCarDTO = new SckwWaybillOrder();
-        waybillCarDTO.set_id(new IdWorker(NumberConstant.ONE).nextId());
-        waybillCarDTO.setStatus(CarWaybillEnum.PENDING_ORDER.getCode().toString());
-        waybillCarDTO.setType(type);
-        waybillCarDTO.setLOrderId(StringUtils.isBlank(sendCarDTO.getLOrderId()) ? null : Long.parseLong(sendCarDTO.getLOrderId()));
-        waybillCarDTO.setLOrderNo(sendCarDTO.getLOrderNo());
-        waybillCarDTO.setTOrderId(logisticsOrder.getTOrderId());
-        waybillCarDTO.setTOrderNo(logisticsOrder.getTOrderNo());
-        waybillCarDTO.setEntId(logisticsOrder.getEntId());
-        waybillCarDTO.setFirmName(remoteSystemService.queryEntCacheById(logisticsOrder.getEntId()).getFirmName());
-        waybillCarDTO.setTruckNo(carListDTO.getTruckNo());
-        //todo 司机dubbo查询
-//        waybillCarDTO.setTruckType();
-//        waybillCarDTO.setTruckEnergyType();
-//        waybillCarDTO.setTruckColor()
-//        waybillCarDTO.setTruckTrailerNo();
-//        waybillCarDTO.setTruckFleetName();
-        waybillCarDTO.setDriverId(StringUtils.isBlank(carListDTO.getDriverId()) ? null : Long.parseLong(carListDTO.getDriverId()));
-//        waybillCarDTO.setDriverPhone();
-//        waybillCarDTO.setDriverIdcard();
-        waybillCarDTO.setDriverName(carListDTO.getDriverName());
-        waybillCarDTO.setStartTime(sendCarDTO.getLoadDateTime());
-        waybillCarDTO.setEndTime(sendCarDTO.getUnloadDateTime());
-        waybillCarDTO.setFleetId(carListDTO.getFleetId());
-        waybillCarDTO.setFleetName(carListDTO.getFleetName());
-        waybillCarDTO.setGoodsName(sendCarDTO.getGoodsName());
-        waybillCarDTO.setGoodsId(StringUtils.isBlank(sendCarDTO.getGoodsId()) ? null : Integer.valueOf(sendCarDTO.getGoodsId()));
-        waybillCarDTO.setLoadingCity(sendCarDTO.getLoadCity());
-        waybillCarDTO.setLoadTime(sendCarDTO.getLoadDateTime());
-        waybillCarDTO.setLoadingAddress(sendCarDTO.getLoadAddress());
-        waybillCarDTO.setUnloadingCity(sendCarDTO.getUnloadCity());
-        waybillCarDTO.setUnloadTime(sendCarDTO.getUnloadDateTime());
-        waybillCarDTO.setUnloadingAddress(sendCarDTO.getUnloadAddress());
-        waybillCarDTO.setDelFlag(Integer.valueOf(NumberConstant.ZERO));
-        list.add(waybillCarDTO);
-    }
+//    /**
+//     * 派车
+//     *
+//     * @param sendCarDTO
+//     * @return
+//     */
+//    @Transactional(rollbackFor = Exception.class)
+//    public HttpResult commitSendCar(SendCarDTO sendCarDTO) {
+//        log.info("承运订单提交派车信息详情:{}", JSONObject.toJSONString(sendCarDTO));
+//        HttpResult result = new HttpResult();
+//        KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+//                .eq(StringUtils.isNotBlank(sendCarDTO.getLOrderId()), KwtLogisticsOrder::getId, sendCarDTO.getLOrderId()));
+//        if (logisticsOrder == null) {
+//            result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
+//            result.setMsg("单据不存在!");
+//            return result;
+//        }
+//        List<SckwWaybillOrder> list = new ArrayList<>();
+//        if (String.valueOf(NumberConstant.ONE).equals(sendCarDTO.getType())) {
+//            for (CarListDTO car : sendCarDTO.getCarList()) {
+//                if (ObjectUtils.isEmpty(car.getCount())) {
+//                    throw new RuntimeException("趟次派车时,趟次次数不能为空");
+//                }
+//                for (int i = 0; i < car.getCount(); i++) {
+//                    Long wOrderId = new IdWorker(NumberConstant.ONE).nextId();
+//                    String wOrderNo = com.sckw.transport.utils.StringUtils.getWaybillNoUtil() + i;
+//                    KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
+//                    String type = String.valueOf(NumberConstant.ZERO);
+//                    waybillOrder.setType(type);
+//                    waybillOrder.setEntrustAmount(new BigDecimal(car.getLoadAmount()));
+//                    insertWaybillOrder(waybillOrder, wOrderId, wOrderNo, logisticsOrder, car, sendCarDTO, list, type);
+//                    //insertWaybillOrderTicket(id,wOrderNo,logisticsOrder,sendCarDTO);
+////                    insertWaybillOrderTrack(wOrderId);
+//                }
+//            }
+//        } else if (String.valueOf(NumberConstant.TWO).equals(sendCarDTO.getType())) {
+//            for (CarListDTO car : sendCarDTO.getCarList()) {
+//                if (ObjectUtils.isEmpty(sendCarDTO.getWaitingVolume())) {
+//                    throw new RuntimeException("循环派车时,剩余可运量不能为空");
+//                }
+//                KwtLogisticsOrderCirculate circulate = new KwtLogisticsOrderCirculate();
+//                circulate.setId(new IdWorker(NumberConstant.ONE).nextId());
+//                circulate.setEntId(logisticsOrder.getEntId());
+//                circulate.setLOrderId(Long.parseLong(sendCarDTO.getLOrderId()));
+//                circulate.setTruckNo(car.getTruckNo());
+//                circulate.setDriverId(Long.parseLong(car.getDriverId()));
+//                circulate.setActualAmount(new BigDecimal(car.getLoadAmount()));
+//                circulate.setEntrustAmount(new BigDecimal(sendCarDTO.getWaitingVolume()));
+//                circulate.setEntrustDate(new Date());
+//                circulate.setCreateBy(LoginUserHolder.getUserId());
+//                circulate.setCreateTime(new Date());
+//                circulate.setUpdateBy(LoginUserHolder.getUserId());
+//                circulate.setUpdateTime(new Date());
+//                circulate.setType(String.valueOf(NumberConstant.ONE));
+//                logisticsOrderCirculateMapper.insert(circulate);
+//                sendMongoDbData(list, logisticsOrder, car, sendCarDTO, String.valueOf(NumberConstant.ONE));
+//            }
+//        } else {
+//            result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
+//            result.setMsg("派车类型错误!");
+//            return result;
+//        }
+//        if (CollectionUtils.isNotEmpty(list)) {
+//            for (SckwWaybillOrder sckwWaybillOrder : list) {
+//                //rabbitMq业务汇总数据发送/消费对象
+//                SckwBusSum busSum = new SckwBusSum();
+//                //业务汇总类型
+//                busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
+//                //操作对象(1新增/2修改)
+//                busSum.setMethod(1);
+//                //业务汇总数据对象
+//                busSum.setObject(sckwWaybillOrder);
+//                streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
+//            }
+//        }
+//        return result;
+//    }
+//
+//    private void sendMongoDbData(List<SckwWaybillOrder> list, KwtLogisticsOrder logisticsOrder
+//            , CarListDTO carListDTO, SendCarDTO sendCarDTO, String type) {
+//        //放入mongodb实体
+//        SckwWaybillOrder waybillCarDTO = new SckwWaybillOrder();
+//        waybillCarDTO.set_id(new IdWorker(NumberConstant.ONE).nextId());
+//        waybillCarDTO.setStatus(CarWaybillEnum.PENDING_ORDER.getCode().toString());
+//        waybillCarDTO.setType(type);
+//        waybillCarDTO.setLOrderId(StringUtils.isBlank(sendCarDTO.getLOrderId()) ? null : Long.parseLong(sendCarDTO.getLOrderId()));
+//        waybillCarDTO.setLOrderNo(sendCarDTO.getLOrderNo());
+//        waybillCarDTO.setTOrderId(logisticsOrder.getTOrderId());
+//        waybillCarDTO.setTOrderNo(logisticsOrder.getTOrderNo());
+//        waybillCarDTO.setEntId(logisticsOrder.getEntId());
+//        waybillCarDTO.setFirmName(remoteSystemService.queryEntCacheById(logisticsOrder.getEntId()).getFirmName());
+//        waybillCarDTO.setTruckNo(carListDTO.getTruckNo());
+//        //todo 司机dubbo查询
+////        waybillCarDTO.setTruckType();
+////        waybillCarDTO.setTruckEnergyType();
+////        waybillCarDTO.setTruckColor()
+////        waybillCarDTO.setTruckTrailerNo();
+////        waybillCarDTO.setTruckFleetName();
+//        waybillCarDTO.setDriverId(StringUtils.isBlank(carListDTO.getDriverId()) ? null : Long.parseLong(carListDTO.getDriverId()));
+////        waybillCarDTO.setDriverPhone();
+////        waybillCarDTO.setDriverIdcard();
+//        waybillCarDTO.setDriverName(carListDTO.getDriverName());
+//        waybillCarDTO.setStartTime(sendCarDTO.getLoadDateTime());
+//        waybillCarDTO.setEndTime(sendCarDTO.getUnloadDateTime());
+//        waybillCarDTO.setFleetId(carListDTO.getFleetId());
+//        waybillCarDTO.setFleetName(carListDTO.getFleetName());
+//        waybillCarDTO.setGoodsName(sendCarDTO.getGoodsName());
+//        waybillCarDTO.setGoodsId(StringUtils.isBlank(sendCarDTO.getGoodsId()) ? null : Integer.valueOf(sendCarDTO.getGoodsId()));
+//        waybillCarDTO.setLoadingCity(sendCarDTO.getLoadCity());
+//        waybillCarDTO.setLoadTime(sendCarDTO.getLoadDateTime());
+//        waybillCarDTO.setLoadingAddress(sendCarDTO.getLoadAddress());
+//        waybillCarDTO.setUnloadingCity(sendCarDTO.getUnloadCity());
+//        waybillCarDTO.setUnloadTime(sendCarDTO.getUnloadDateTime());
+//        waybillCarDTO.setUnloadingAddress(sendCarDTO.getUnloadAddress());
+//        waybillCarDTO.setDelFlag(Integer.valueOf(NumberConstant.ZERO));
+//        list.add(waybillCarDTO);
+//    }
 
     /**
      * 保存车辆运单状态信息
@@ -689,18 +676,18 @@ public class AcceptCarriageOrderService {
         track.setUpdateBy(LoginUserHolder.getUserId());
         waybillOrderTrackMapper.insert(track);
     }
-
-    /**
-     * 保存车辆装卸单信息
-     *
-     * @param id
-     * @param wOrderNo
-     * @param logisticsOrder
-     * @param carListDTO
-     */
-    private void insertWaybillOrderTicket(Long id, String wOrderNo, KwtLogisticsOrder logisticsOrder, CarListDTO carListDTO) {
-
-    }
+//
+//    /**
+//     * 保存车辆装卸单信息
+//     *
+//     * @param id
+//     * @param wOrderNo
+//     * @param logisticsOrder
+//     * @param carListDTO
+//     */
+//    private void insertWaybillOrderTicket(Long id, String wOrderNo, KwtLogisticsOrder logisticsOrder, CarListDTO carListDTO) {
+//
+//    }
 
     /**
      * 派车主体保存
@@ -710,81 +697,82 @@ public class AcceptCarriageOrderService {
      * @param carListDTO
      * @param sendCarDTO
      */
-    private void insertWaybillOrder(KwtWaybillOrder waybillOrder, Long id, String wOrderNo,
-                                    KwtLogisticsOrder logisticsOrder, CarListDTO carListDTO, SendCarDTO sendCarDTO,
-                                    List<SckwWaybillOrder> list, String type) {
-        waybillOrder.setId(id);
-        waybillOrder.setEntId(logisticsOrder.getEntId());
-        waybillOrder.setLOrderId(Long.parseLong(sendCarDTO.getLOrderId()));
-        waybillOrder.setWOrderNo(wOrderNo);
-        waybillOrder.setStartTime(sendCarDTO.getLoadDateTime());
-        waybillOrder.setEndTime(sendCarDTO.getUnloadDateTime());
-        waybillOrder.setDriverId(Long.parseLong(carListDTO.getDriverId()));
-        waybillOrder.setTruckNo(carListDTO.getTruckNo());
-        waybillOrder.setRemark(sendCarDTO.getRemark());
-        waybillOrder.setStatus(NumberConstant.ZERO);
-        waybillOrder.setCreateBy(LoginUserHolder.getUserId());
-        Date createTime = new Date();
-        waybillOrder.setCreateTime(createTime);
-        waybillOrder.setUpdateTime(new Date());
-        waybillOrder.setUpdateBy(LoginUserHolder.getUserId());
-        waybillOrder.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
-        waybillOrderMapper.insert(waybillOrder);
-
-        //状态表保存
-        KwtWaybillOrderTrack track = new KwtWaybillOrderTrack();
-        track.setId(new IdWorker(NumberConstant.ONE).nextId());
-        track.setWOrderId(id);
-        track.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
-        track.setCreateTime(new Date());
-        track.setUpdateTime(new Date());
-        track.setCreateBy(LoginUserHolder.getUserId());
-        track.setUpdateBy(LoginUserHolder.getUserId());
-        waybillOrderTrackMapper.insert(track);
-
-        //放入mongodb实体
-        SckwWaybillOrder waybillCarDTO = new SckwWaybillOrder();
-        waybillCarDTO.setStatus(CarWaybillEnum.PENDING_ORDER.getCode().toString());
-        waybillCarDTO.setType(type);
-        waybillCarDTO.setWOrderId(id);
-        waybillCarDTO.setWOrderNo(wOrderNo);
-        waybillCarDTO.setLOrderId(StringUtils.isBlank(sendCarDTO.getLOrderId()) ? null : Long.parseLong(sendCarDTO.getLOrderId()));
-        waybillCarDTO.setLOrderNo(sendCarDTO.getLOrderNo());
-        waybillCarDTO.setTOrderId(logisticsOrder.getTOrderId());
-        waybillCarDTO.setTOrderNo(logisticsOrder.getTOrderNo());
-        waybillCarDTO.setEntId(logisticsOrder.getEntId());
-        waybillCarDTO.setFirmName(remoteSystemService.queryEntCacheById(logisticsOrder.getEntId()).getFirmName());
-        waybillCarDTO.setTruckNo(carListDTO.getTruckNo());
-        //todo 司机dubbo查询
-//        waybillCarDTO.setTruckType();
-//        waybillCarDTO.setTruckEnergyType();
-//        waybillCarDTO.setTruckColor()
-//        waybillCarDTO.setTruckTrailerNo();
-//        waybillCarDTO.setTruckFleetName();
-        waybillCarDTO.setDriverId(StringUtils.isBlank(carListDTO.getDriverId()) ? null : Long.parseLong(carListDTO.getDriverId()));
-//        waybillCarDTO.setDriverPhone();
-//        waybillCarDTO.setDriverIdcard();
-        waybillCarDTO.setDriverName(carListDTO.getDriverName());
-        waybillCarDTO.setSendCarTime(createTime);
-        waybillCarDTO.setStartTime(sendCarDTO.getLoadDateTime());
-        waybillCarDTO.setEndTime(sendCarDTO.getUnloadDateTime());
-        waybillCarDTO.setFleetId(carListDTO.getFleetId());
-        waybillCarDTO.setFleetName(carListDTO.getFleetName());
-        waybillCarDTO.setGoodsName(sendCarDTO.getGoodsName());
-        waybillCarDTO.setGoodsId(StringUtils.isBlank(sendCarDTO.getGoodsId()) ? null : Integer.valueOf(sendCarDTO.getGoodsId()));
-        waybillCarDTO.setEntrustAmount(waybillOrder.getEntrustAmount());
-        waybillCarDTO.setLoadingCity(sendCarDTO.getLoadCity());
-        waybillCarDTO.setLoadTime(sendCarDTO.getLoadDateTime());
-        waybillCarDTO.setLoadingAddress(sendCarDTO.getLoadAddress());
-        waybillCarDTO.setUnloadingCity(sendCarDTO.getUnloadCity());
-        waybillCarDTO.setUnloadTime(sendCarDTO.getUnloadDateTime());
-        waybillCarDTO.setUnloadingAddress(sendCarDTO.getUnloadAddress());
-        waybillCarDTO.setDelFlag(Integer.valueOf(NumberConstant.ZERO));
-        list.add(waybillCarDTO);
-    }
+//    private void insertWaybillOrder(KwtWaybillOrder waybillOrder, Long id, String wOrderNo,
+//                                    KwtLogisticsOrder logisticsOrder, CarListDTO carListDTO, SendCarDTO sendCarDTO,
+//                                    List<SckwWaybillOrder> list, String type) {
+//        waybillOrder.setId(id);
+//        waybillOrder.setEntId(logisticsOrder.getEntId());
+//        waybillOrder.setLOrderId(Long.parseLong(sendCarDTO.getLOrderId()));
+//        waybillOrder.setWOrderNo(wOrderNo);
+//        waybillOrder.setStartTime(sendCarDTO.getLoadDateTime());
+//        waybillOrder.setEndTime(sendCarDTO.getUnloadDateTime());
+//        waybillOrder.setDriverId(Long.parseLong(carListDTO.getDriverId()));
+//        waybillOrder.setTruckNo(carListDTO.getTruckNo());
+//        waybillOrder.setRemark(sendCarDTO.getRemark());
+//        waybillOrder.setStatus(NumberConstant.ZERO);
+//        waybillOrder.setCreateBy(LoginUserHolder.getUserId());
+//        Date createTime = new Date();
+//        waybillOrder.setCreateTime(createTime);
+//        waybillOrder.setUpdateTime(new Date());
+//        waybillOrder.setUpdateBy(LoginUserHolder.getUserId());
+//        waybillOrder.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
+//        waybillOrderMapper.insert(waybillOrder);
+//
+//        //状态表保存
+//        KwtWaybillOrderTrack track = new KwtWaybillOrderTrack();
+//        track.setId(new IdWorker(NumberConstant.ONE).nextId());
+//        track.setWOrderId(id);
+//        track.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
+//        track.setCreateTime(new Date());
+//        track.setUpdateTime(new Date());
+//        track.setCreateBy(LoginUserHolder.getUserId());
+//        track.setUpdateBy(LoginUserHolder.getUserId());
+//        waybillOrderTrackMapper.insert(track);
+//
+//        //放入mongodb实体
+//        SckwWaybillOrder waybillCarDTO = new SckwWaybillOrder();
+//        waybillCarDTO.setStatus(CarWaybillEnum.PENDING_ORDER.getCode().toString());
+//        waybillCarDTO.setType(type);
+//        waybillCarDTO.setWOrderId(id);
+//        waybillCarDTO.setWOrderNo(wOrderNo);
+//        waybillCarDTO.setLOrderId(StringUtils.isBlank(sendCarDTO.getLOrderId()) ? null : Long.parseLong(sendCarDTO.getLOrderId()));
+//        waybillCarDTO.setLOrderNo(sendCarDTO.getLOrderNo());
+//        waybillCarDTO.setTOrderId(logisticsOrder.getTOrderId());
+//        waybillCarDTO.setTOrderNo(logisticsOrder.getTOrderNo());
+//        waybillCarDTO.setEntId(logisticsOrder.getEntId());
+//        waybillCarDTO.setFirmName(remoteSystemService.queryEntCacheById(logisticsOrder.getEntId()).getFirmName());
+//        waybillCarDTO.setTruckNo(carListDTO.getTruckNo());
+//        //todo 司机dubbo查询
+////        waybillCarDTO.setTruckType();
+////        waybillCarDTO.setTruckEnergyType();
+////        waybillCarDTO.setTruckColor()
+////        waybillCarDTO.setTruckTrailerNo();
+////        waybillCarDTO.setTruckFleetName();
+//        waybillCarDTO.setDriverId(StringUtils.isBlank(carListDTO.getDriverId()) ? null : Long.parseLong(carListDTO.getDriverId()));
+////        waybillCarDTO.setDriverPhone();
+////        waybillCarDTO.setDriverIdcard();
+//        waybillCarDTO.setDriverName(carListDTO.getDriverName());
+//        waybillCarDTO.setSendCarTime(createTime);
+//        waybillCarDTO.setStartTime(sendCarDTO.getLoadDateTime());
+//        waybillCarDTO.setEndTime(sendCarDTO.getUnloadDateTime());
+//        waybillCarDTO.setFleetId(carListDTO.getFleetId());
+//        waybillCarDTO.setFleetName(carListDTO.getFleetName());
+//        waybillCarDTO.setGoodsName(sendCarDTO.getGoodsName());
+//        waybillCarDTO.setGoodsId(StringUtils.isBlank(sendCarDTO.getGoodsId()) ? null : Integer.valueOf(sendCarDTO.getGoodsId()));
+//        waybillCarDTO.setEntrustAmount(waybillOrder.getEntrustAmount());
+//        waybillCarDTO.setLoadingCity(sendCarDTO.getLoadCity());
+//        waybillCarDTO.setLoadTime(sendCarDTO.getLoadDateTime());
+//        waybillCarDTO.setLoadingAddress(sendCarDTO.getLoadAddress());
+//        waybillCarDTO.setUnloadingCity(sendCarDTO.getUnloadCity());
+//        waybillCarDTO.setUnloadTime(sendCarDTO.getUnloadDateTime());
+//        waybillCarDTO.setUnloadingAddress(sendCarDTO.getUnloadAddress());
+//        waybillCarDTO.setDelFlag(Integer.valueOf(NumberConstant.ZERO));
+//        list.add(waybillCarDTO);
+//    }
 
     /**
      * 承运订单-获取运单详情
+     *
      * @param wOrderId
      * @return
      */
@@ -792,7 +780,7 @@ public class AcceptCarriageOrderService {
         SckwWaybillOrder sckwWaybillOrder = mongoTemplate.findById(Long.parseLong(wOrderId), SckwWaybillOrder.class);
         WaybillDetailVO vo = new WaybillDetailVO();
         if (!ObjectUtils.isEmpty(sckwWaybillOrder)) {
-            vo.setFleetName(sckwWaybillOrder.getFleetName());
+            //vo.setFleetName(sckwWaybillOrder.getFleetName());
             vo.setTruckNo(sckwWaybillOrder.getTruckNo());
             vo.setDriverName(sckwWaybillOrder.getDriverName());
             vo.setSendCarWeigh(sckwWaybillOrder.getEntrustAmount());
@@ -809,4 +797,31 @@ public class AcceptCarriageOrderService {
         }
         return HttpResult.ok(vo);
     }
+
+    public HttpResult getSubcontractConsignment(String lOrderId, Integer page, Integer pageSize) {
+        Integer newPage = page - 1;
+        List<SubcontractConsignmentVO> list = logisticsOrderMapper.getSubcontractConsignment(lOrderId, newPage, pageSize);
+        //联查数据
+        if (CollectionUtils.isNotEmpty(list)) {
+            for (SubcontractConsignmentVO subcontractConsignmentVO : list) {
+//                subcontractConsignmentVO.setPriceType(getDictData(DictEnum.PRICE_TYPE_0.getType(), subcontractConsignmentVO.getPriceType()));
+//                subcontractConsignmentVO.setLossUnit(getDictData(DictEnum.TRANSPORT_TYPE_0.getType(), subcontractConsignmentVO.getLossUnit()));
+//                subcontractConsignmentVO.setGoodsPriceUnit(getDictData(DictEnum.PRICE_TYPE_0.getType(), subcontractConsignmentVO.getGoodsPriceUnit()));
+//                subcontractConsignmentVO.setContractSigningWay(getDictData(DictEnum.CONTRACT_STATUS_1.getType(), subcontractConsignmentVO.getContractSigningWay()));
+            }
+        }
+        return null;
+    }
+
+    public String getDictData(String type, String value) {
+        if (ObjectUtils.isEmpty(value)) {
+            return null;
+        }
+        if (remoteSystemService.queryDictByTypeAndValue(type, value) == null) {
+            return null;
+        } else {
+            return remoteSystemService.queryDictByTypeAndValue(type, value).getLabel();
+        }
+    }
+
 }

+ 13 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -2,6 +2,7 @@ package com.sckw.transport.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -24,6 +25,7 @@ import org.springframework.util.ObjectUtils;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author lfdc
@@ -174,4 +176,15 @@ public class ConsignOrderService {
         }
         return HttpResult.ok(carDataVOS);
     }
+
+    /**
+     * 托运订单查看驳回原因
+     *
+     * @param id
+     * @return
+     */
+    public HttpResult getRejectReasonById(String id) {
+        Map<String, String> map = kwtLogisticsOrderMapper.getRejectReason(id, LogisticsOrderEnum.SEND_BACK.getStatus());
+        return HttpResult.ok(map);
+    }
 }

+ 4 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/DriverService.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.web.constant.HttpStatus;
@@ -15,7 +16,6 @@ import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.mongo.model.TobleTop;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
-import com.sckw.transport.common.enums.CarWaybillEnum;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.KwtLogisticsOrderAddress;
 import com.sckw.transport.model.KwtLogisticsOrderCirculate;
@@ -343,7 +343,7 @@ public class DriverService {
         //更新mongodb
         SckwWaybillOrder updateParam = BeanUtils.copyProperties(sckwWaybillOrder, SckwWaybillOrder.class);
         updateParam.setDriverId(Long.valueOf(dto.getDriverId())).setDriverPhone(dto.getDriverPhone()).setDriverName(dto.getDriverName())
-                .setDriverIdcard(dto.getDriverIdCard()).setTruckId(dto.getTruckId()).setTruckNo(dto.getTruckNo()).setUpdateTime(new Date()).setUpdateBy(LoginUserHolder.getUserId())
+                .setDriverIdcard(dto.getDriverIdCard()).setTruckId(Long.parseLong(dto.getTruckId())).setTruckNo(dto.getTruckNo()).setUpdateTime(new Date()).setUpdateBy(LoginUserHolder.getUserId())
                 .setUpdateByName(LoginUserHolder.getUserName()).setUpdateTime(new Date());
         SckwBusSum busSum = new SckwBusSum();
         busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
@@ -385,7 +385,8 @@ public class DriverService {
         SckwWaybillOrder sckwWaybillOrder = mongoTemplate.findById(dto.getWOrderId(), SckwWaybillOrder.class);
         //更新mongodb
         SckwWaybillOrder updateParam = BeanUtils.copyProperties(sckwWaybillOrder, SckwWaybillOrder.class);
-        updateParam.setTruckId(dto.getTruckId()).setTruckNo(dto.getTruckNo()).setTruckType(Integer.valueOf(dto.getCarType())).setUpdateTime(new Date()).setUpdateBy(LoginUserHolder.getUserId())
+        updateParam.setTruckId(Long.parseLong(dto.getTruckId())).setTruckNo(dto.getTruckNo())
+                .setTruckType(dto.getCarType()).setUpdateTime(new Date()).setUpdateBy(LoginUserHolder.getUserId())
                 .setUpdateByName(LoginUserHolder.getUserName()).setUpdateTime(new Date());
         SckwBusSum busSum = new SckwBusSum();
         busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());

+ 267 - 11
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -1,15 +1,25 @@
 package com.sckw.transport.service;
 
+import com.alibaba.fastjson.JSON;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.CarWaybillEnum;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.transport.dao.KwtLogisticsOrderMapper;
-import com.sckw.transport.model.KwtLogisticsOrder;
+import com.sckw.mongo.enums.BusinessTypeEnum;
+import com.sckw.mongo.model.SckwWaybillOrder;
+import com.sckw.stream.model.SckwBusSum;
+import com.sckw.transport.dao.*;
+import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.SendCarDto1;
+import jakarta.annotation.Resource;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.stream.function.StreamBridge;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -20,8 +30,22 @@ import java.util.List;
 @Service
 public class KwtWaybillOrderService {
 
+    @Autowired
+    KwtWaybillOrderMapper waybillOrderDao;
     @Autowired
     KwtLogisticsOrderMapper logisticsOrderDao;
+    @Autowired
+    KwtLogisticsOrderAddressMapper logisticsOrderAddressDao;
+    @Autowired
+    KwtWaybillOrderAddressMapper waybillOrderAddressDao;
+    @Autowired
+    KwtWaybillOrderTrackMapper waybillOrderTrackDao;
+    @Autowired
+    KwtLogisticsOrderUnitMapper logisticsOrderUnitDao;
+    @Autowired
+    KwtLogisticsOrderGoodsMapper logisticsOrderGoodsDao;
+    @Resource
+    private StreamBridge streamBridge;
 
     /**
      * @param params
@@ -39,32 +63,264 @@ public class KwtWaybillOrderService {
         }
 
         //下游司机委派量累加
-        BigDecimal ranksAmount = new BigDecimal(0);
+        BigDecimal ranksAmount = new BigDecimal(Global.AMOUNT);
         for (SendCarDto1 sendCarDto:params) {
-            if (sendCarDto.getEntrustAmount() == null || sendCarDto.getEntrustAmount() <= 0) {
-                return HttpResult.error(sendCarDto.getTruckNo() + "核定载量必须大于0,请确认!" );
-            }
             if (sendCarDto.getType() == Global.NUMERICAL_ONE) {
-                ranksAmount.add(new BigDecimal(sendCarDto.getEntrustAmount()));
-
+                //趟次派车趟次数量必填
                 if (sendCarDto.getCount() == null || sendCarDto.getCount() <= 0) {
                     return HttpResult.error(sendCarDto.getTruckNo() + "趟次必须等于或大于0!" );
                 }
+                //核定载量 * 趟次
+                Double entrustAmount = sendCarDto.getEntrustAmount() * sendCarDto.getCount();
+                ranksAmount = ranksAmount.add(new BigDecimal(entrustAmount));
             }
         }
 
         //当前下游司机委派量 + 历史下游司机委派量 + 分包量
-        ranksAmount.add(logisticsOrder.getEntrustAmount()).add(logisticsOrder.getSubcontractAmount());
-        if (ranksAmount.compareTo(logisticsOrder.getAmount()) > 0) {
-            return HttpResult.error("派车量已大于剩余可运量!" );
+        BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
+        BigDecimal subcontractAmount = logisticsOrder.getSubcontractAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getSubcontractAmount();
+        BigDecimal actualAmount = ranksAmount.add(entrustAmount).add(subcontractAmount);
+        if (actualAmount.compareTo(logisticsOrder.getAmount()) > 0) {
+            return HttpResult.error("累计派车量已大于剩余可运量!" );
         }
 
         /**数据处理**/
+        setWaybillOrder(params, logisticsOrder);
+
+        //变更承运单状态(累计派车量等于剩余可运量)/已委托量entrust_amount
+
+        /**发送消息**/
+        return HttpResult.ok();
+    }
+
+    /**
+     * @param params 派车请求参数
+     * @param logisticsOrder 物流订单
+     * @desc 派车存储
+     * @author zk
+     * @date 2023/7/19
+     **/
+    public HttpResult setWaybillOrder(List<SendCarDto1> params, KwtLogisticsOrder logisticsOrder) {
+        /**获取基础信息**/
+        //装货地址
+        KwtWaybillOrderAddress loadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_ONE);
+        //卸货地址
+        KwtWaybillOrderAddress unloadAddress = this.getAddress(logisticsOrder.getId(), Global.NUMERICAL_TWO);
+        //托运企业
+        KwtLogisticsOrderUnit checkEnt = logisticsOrderUnitDao.findByUnit(logisticsOrder.getId(), Global.NUMERICAL_ONE);
+        //承运企业
+        KwtLogisticsOrderUnit carrierEnt = logisticsOrderUnitDao.findByUnit(logisticsOrder.getId(), Global.NUMERICAL_TWO);
+        //商品信息
+        KwtLogisticsOrderGoods goods = logisticsOrderGoodsDao.findByGoods(logisticsOrder.getId());
 
+        /**MySql车辆运单数据处理/存储**/
+        List<SckwWaybillOrder> sckwWaybillOrders = new ArrayList();
+        for (SendCarDto1 sendCarDto:params) {
+            /**KwtWaybillOrder数据组装**/
+            KwtWaybillOrder waybillOrder = this.setKwtWaybillOrder(sendCarDto);
+
+            /**车辆运单信息**/
+            waybillOrderDao.insert(waybillOrder);
 
+            /**车辆运单地址信息**/
+            loadAddress.setWOrderId(waybillOrder.getId());
+            waybillOrderAddressDao.insert(loadAddress);
+            unloadAddress.setWOrderId(waybillOrder.getId());
+            waybillOrderAddressDao.insert(unloadAddress);
 
+            /**车辆运单状态记录**/
+            this.setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus());
+
+            /**SckwWaybillOrder数据组装**/
+            SckwWaybillOrder mongoOrder = setSckwWaybillOrder(sendCarDto, waybillOrder, logisticsOrder, loadAddress,
+                    unloadAddress, checkEnt, carrierEnt, goods);
+            sckwWaybillOrders.add(mongoOrder);
+        }
+
+        /**Mongodb数据存储**/
+        for (SckwWaybillOrder waybillOrder:sckwWaybillOrders) {
+            //rabbitMq业务汇总数据发送/消费对象
+            SckwBusSum busSum = new SckwBusSum();
+            //业务汇总类型
+            busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
+            //操作对象(1新增/2修改)
+            busSum.setMethod(1);
+            //业务汇总数据对象
+            busSum.setObject(waybillOrder);
+            streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
+        }
 
         return HttpResult.ok();
     }
 
+    /**
+     * @param lOrderId 物流订单ID
+     * @param addressType 地址类型(1装货地址、2卸货地址)
+     * @desc 获取物流订单地址信息
+     * @author zk
+     * @date 2023/7/20
+     **/
+    public KwtWaybillOrderAddress getAddress(Long lOrderId, int addressType) {
+        /**查询数据**/
+        KwtLogisticsOrderAddress orderAddress = logisticsOrderAddressDao.findByAddress(lOrderId, addressType);
+
+        /**组装数据**/
+        KwtWaybillOrderAddress address = new KwtWaybillOrderAddress();
+        BeanUtils.copyProperties(orderAddress, address);
+        return address;
+    }
+
+    /**
+     * @param wOrderId 车辆订单ID
+     * @param status 车辆运单状态
+     * @desc 新增运单状态记录
+     * @author zk
+     * @date 2023/7/20
+     **/
+    public boolean setWaybillOrderTrack(Long wOrderId, int status) {
+        KwtWaybillOrderTrack orderTrack = new KwtWaybillOrderTrack();
+        orderTrack.setWOrderId(wOrderId);
+        orderTrack.setStatus(status);
+        int count = waybillOrderTrackDao.insert(orderTrack);
+        return count > 0 ? true : false;
+    }
+
+    /**
+     * @param sendCarDto 派车请求参数
+     * @desc 车辆运单对象赋值
+     * @author zk
+     * @date 2023/7/20
+     **/
+    public KwtWaybillOrder setKwtWaybillOrder(SendCarDto1 sendCarDto) {
+        KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
+        waybillOrder.setEntId(LoginUserHolder.getEntId());
+        waybillOrder.setLOrderId(sendCarDto.getLOrderId());
+        waybillOrder.setWOrderNo("xxxxx");
+        waybillOrder.setType(sendCarDto.getType());
+        waybillOrder.setStartTime(sendCarDto.getLoadDateTime());
+        waybillOrder.setEndTime(sendCarDto.getUnloadDateTime());
+        waybillOrder.setTruckId(sendCarDto.getTruckId());
+        waybillOrder.setTruckNo(sendCarDto.getTruckNo());
+        waybillOrder.setDriverId(sendCarDto.getDriverId());
+        waybillOrder.setDriverName(sendCarDto.getDriverName());
+        waybillOrder.setDriverPhone(sendCarDto.getDriverPhone());
+        waybillOrder.setDriverIdcard(sendCarDto.getDriverIdcard());
+        waybillOrder.setEntrustAmount(new BigDecimal(sendCarDto.getEntrustAmount()));
+        waybillOrder.setStatus(CarWaybillEnum.PENDING_ORDER.getCode());
+        return waybillOrder;
+    }
+
+    /**
+     * @param sendCarDto 派车请求参数
+     * @param logisticsOrder 承运订单
+     * @param loadAddress 装货地址
+     * @param unloadAddress 卸货地址
+     * @param checkEnt 托运企业
+     * @param carrierEnt 承运企业
+     * @param goods 商品信息
+     * @desc mongodb车辆运单对象赋值
+     * @author zk
+     * @date 2023/7/20
+     **/
+    public SckwWaybillOrder setSckwWaybillOrder(SendCarDto1 sendCarDto, KwtWaybillOrder waybillOrder,
+                                            KwtLogisticsOrder logisticsOrder, KwtWaybillOrderAddress loadAddress,
+                                            KwtWaybillOrderAddress unloadAddress, KwtLogisticsOrderUnit checkEnt,
+                                            KwtLogisticsOrderUnit carrierEnt, KwtLogisticsOrderGoods goods) {
+        //基础信息
+        SckwWaybillOrder order = new SckwWaybillOrder();
+        order.set_id(waybillOrder.getId());
+        order.setWOrderId(waybillOrder.getId());
+        order.setWOrderNo(waybillOrder.getWOrderNo());
+        order.setLOrderId(logisticsOrder.getId());
+        order.setLOrderNo(logisticsOrder.getLOrderNo());
+        order.setTOrderId(logisticsOrder.getTOrderId());
+        order.setTOrderNo(logisticsOrder.getTOrderNo());
+        order.setEntId(LoginUserHolder.getEntId());
+        order.setFirmName(LoginUserHolder.getEntName());
+
+        //车辆信息
+        order.setTruckId(sendCarDto.getTruckId());
+        order.setTruckNo(sendCarDto.getTruckNo());
+        order.setTruckType(sendCarDto.getTruckType());
+        order.setTruckEnergyType(sendCarDto.getTruckEnergyType());
+        order.setTruckUseType(sendCarDto.getTruckUseType());
+        order.setTruckColor(sendCarDto.getTruckColor());
+        order.setTruckTrailerNo(sendCarDto.getTruckTrailerNo());
+
+        //司机信息
+        order.setDriverId(sendCarDto.getDriverId());
+        order.setDriverName(sendCarDto.getDriverName());
+        order.setDriverPhone(sendCarDto.getDriverPhone());
+        order.setDriverIdcard(sendCarDto.getDriverIdcard());
+
+        //运输信息
+        order.setLoadTime(sendCarDto.getLoadDateTime());
+        order.setUnloadTime(sendCarDto.getUnloadDateTime());
+        order.setType(sendCarDto.getType());
+        order.setStartTime(sendCarDto.getLoadDateTime());
+        order.setEndTime(sendCarDto.getUnloadDateTime());
+        order.setEntrustAmount(new BigDecimal(sendCarDto.getEntrustAmount()));
+        order.setLoadAmount(new BigDecimal(Global.AMOUNT));
+        order.setLoadTareAmount(new BigDecimal(Global.AMOUNT));
+        order.setLoadGrossAmount(new BigDecimal(Global.AMOUNT));
+        order.setLoadUrls(Global.EMPTY_STRING);
+        order.setUnloadAmount(new BigDecimal(Global.AMOUNT));
+        order.setUnloadTareAmount(new BigDecimal(Global.AMOUNT));
+        order.setUnloadGrossAmount(new BigDecimal(Global.AMOUNT));
+        order.setUnloadUrls(Global.EMPTY_STRING);
+        order.setDeficitAmount(new BigDecimal(Global.AMOUNT));
+        order.setLoss(logisticsOrder.getLoss());
+        order.setLossUnit(logisticsOrder.getLossUnit());
+        order.setGoodsPrice(logisticsOrder.getGoodsPrice());
+        order.setGoodsPriceUnit(logisticsOrder.getGoodsPriceUnit());
+
+        //商品信息
+        order.setGoodsId(goods.getGoodsId());
+        order.setGoodsCode(null);
+        order.setGoodsName(goods.getGoodsName());
+        order.setGoodsType(null);
+        order.setGoodsType(null);
+        order.setGoodsIndustry(null);
+        order.setGoodsSpec(null);
+
+        //托运/承运企业信息
+        order.setCheckEntId(checkEnt.getEntId());
+        order.setCheckFirmName(checkEnt.getFirmName());
+        order.setCheckContacts(checkEnt.getContacts());
+        order.setCheckPhone(checkEnt.getPhone());
+        order.setCarrierEntId(carrierEnt.getEntId());
+        order.setCarrierFirmName(carrierEnt.getFirmName());
+        order.setCarrierContacts(carrierEnt.getContacts());
+        order.setCarrierPhone(carrierEnt.getPhone());
+
+        //装卸货地址相关信息
+        order.setLoadType(loadAddress.getType());
+        order.setLoadContacts(loadAddress.getContacts());
+        order.setLoadPhone(loadAddress.getPhone());
+        order.setLoadCityCode(loadAddress.getCityCode());
+        order.setLoadCityName(loadAddress.getCityName());
+        order.setLoadDetailAddress(loadAddress.getDetailAddress());
+        order.setLoadLat(loadAddress.getLat());
+        order.setLoadLng(loadAddress.getLng());
+        order.setUnloadType(unloadAddress.getType());
+        order.setUnloadContacts(unloadAddress.getContacts());
+        order.setUnloadPhone(unloadAddress.getPhone());
+        order.setUnloadCityCode(unloadAddress.getCityCode());
+        order.setUnloadCityName(unloadAddress.getCityName());
+        order.setUnloadDetailAddress(unloadAddress.getDetailAddress());
+        order.setUnloadLat(unloadAddress.getLat());
+        order.setUnloadLng(unloadAddress.getLng());
+
+        //操作人信息
+        order.setStatus(waybillOrder.getStatus());
+        order.setCreateBy(LoginUserHolder.getUserId());
+        order.setCreateByName(LoginUserHolder.getUserName());
+        order.setCreateTime(waybillOrder.getCreateTime());
+        order.setUpdateBy(LoginUserHolder.getUserId());
+        order.setUpdateByName(LoginUserHolder.getUserName());
+        order.setUpdateTime(waybillOrder.getUpdateTime());
+        order.setDelFlag(waybillOrder.getDelFlag());
+        return order;
+    }
+
 }

+ 35 - 21
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -3,13 +3,16 @@ package com.sckw.transport.service;
 import cn.hutool.core.util.ArrayUtil;
 import com.alibaba.fastjson.JSON;
 import com.sckw.core.common.enums.NumberConstant;
-import com.sckw.core.common.enums.enums.DictEnum;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.excel.utils.ValidUtil;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
@@ -19,7 +22,6 @@ import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
-import com.sckw.transport.common.enums.LogisticsOrderEnum;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.LogisticsOrderDTO;
@@ -56,7 +58,7 @@ public class LogisticsConsignmentService {
     @DubboReference(version = "2.0.0", group = "design", check = false)
     GoodsInfoService goodsInfoService;
 
-    @DubboReference(version = "2.0.0", group = "design", check = false,timeout = 6000)
+    @DubboReference(version = "2.0.0", group = "design", check = false, timeout = 6000)
     TradeOrderInfoService tradeOrderInfoService;
 
     @Autowired
@@ -83,12 +85,20 @@ public class LogisticsConsignmentService {
 
     @Transactional(rollbackFor = Exception.class)
     public HttpResult purchaseLogisticsConsignment(LogisticsConsignmentParam bo) {
+        HttpResult httpResult = ValidUtil.serviceValid(bo);
+        if (!String.valueOf(HttpStatus.SUCCESS_CODE).equals(httpResult.getCode())) {
+            return HttpResult.error(httpResult.getMsg());
+        }
         logisticsConsignmentInsert(bo);
         return HttpResult.ok();
     }
 
     @Transactional(rollbackFor = Exception.class)
     public HttpResult sellLogisticsConsignment(LogisticsConsignmentParam bo) {
+        HttpResult httpResult = ValidUtil.serviceValid(bo);
+        if (!String.valueOf(HttpStatus.SUCCESS_CODE).equals(httpResult.getCode())) {
+            return HttpResult.error(httpResult.getMsg());
+        }
         logisticsConsignmentInsert(bo);
         return HttpResult.ok();
     }
@@ -142,8 +152,8 @@ public class LogisticsConsignmentService {
         logisticsOrder.setTOrderNo("D" + com.sckw.transport.utils.StringUtils.getWaybillNoUtil());
         logisticsOrder.setSettlementCycle(bo.getSettlementCycle());
         logisticsOrder.setPrice(new BigDecimal(bo.getPrice()));
-        logisticsOrder.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()) == null ?
-                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()).getValue()));
+        logisticsOrder.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()) == null ?
+                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()).getValue()));
 
         if (!bo.getIsFullDose()) {
             if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
@@ -189,7 +199,7 @@ public class LogisticsConsignmentService {
         logisticsOrder.setCarrierContacts(bo.getConsignContacts());
         List<AddressInfoDetail> addressInfo = tradeOrder.getAddressInfo();
         for (AddressInfoDetail detail : addressInfo) {
-            if (String.valueOf(NumberConstant.ONE).equals(detail.getAddressType())){
+            if (String.valueOf(NumberConstant.ONE).equals(detail.getAddressType())) {
                 logisticsOrder.setLoadType(Long.parseLong(detail.getType()));
                 logisticsOrder.setLoadCityCode(detail.getCityCode());
                 logisticsOrder.setLoadCityName(detail.getCityName());
@@ -199,7 +209,7 @@ public class LogisticsConsignmentService {
                 logisticsOrder.setLoadLng(detail.getLng());
                 logisticsOrder.setLoadContacts(detail.getContacts());
             }
-            if (String.valueOf(NumberConstant.TWO).equals(detail.getAddressType())){
+            if (String.valueOf(NumberConstant.TWO).equals(detail.getAddressType())) {
                 logisticsOrder.setUnloadType(Long.parseLong(detail.getType()));
                 logisticsOrder.setUnloadPhone(detail.getPhone());
                 logisticsOrder.setUnloadCityCode(detail.getCityCode());
@@ -329,22 +339,22 @@ public class LogisticsConsignmentService {
         order.setSettlementCycle(bo.getSettlementCycle());
         order.setPrice(new BigDecimal(bo.getPrice()));
 //        order.setPriceType(Long.parseLong(bo.getPriceType()));
-        order.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()) == null ?
-                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getPriceType()).getValue()));
+        order.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()) == null ?
+                null : Long.parseLong(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()).getValue()));
 //        order.setPriceType(Long.parseLong(new ConvertDictTypeUtils().getDictType(LogisticsTypeEnum.PRICE_TYPE_0, bo.getPriceType())));
         order.setAmount(tradeOrder.getAmount());
         order.setBillingMode(bo.getBillingMode());
 //        order.setUnit(tradeOrder.getUnit());
         order.setLoss(new BigDecimal(bo.getLoss()));
         order.setLossUnit(bo.getLossUnit());
-        order.setLossUnit(remoteSystemService.queryDictByTypeAndValue(DictEnum.UNIT_TYPE_0.getType(), bo.getLossUnit()) == null ?
-                null : remoteSystemService.queryDictByTypeAndValue(DictEnum.UNIT_TYPE_0.getType(), bo.getLossUnit()).getValue());
+        order.setLossUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()) == null ?
+                null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()).getValue());
         order.setGoodsPrice(new BigDecimal(bo.getGoodsPrice()));
-        order.setGoodsPriceUnit(remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getGoodsPriceUnit()) == null ?
-                null : remoteSystemService.queryDictByTypeAndValue(DictEnum.PRICE_TYPE_0.getType(), bo.getGoodsPriceUnit()).getValue());
+        order.setGoodsPriceUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getGoodsPriceUnit()) == null ?
+                null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getGoodsPriceUnit()).getValue());
         order.setGoodsPriceUnit(bo.getGoodsPriceUnit());
         order.setStartTime(bo.getShipmentsDateTime());
-        order.setEntTime(bo.getReceiveGoodsDateTime());
+        order.setEndTime(bo.getReceiveGoodsDateTime());
         order.setRemark(bo.getRemark());
         order.setPayment(Long.parseLong(tradeOrder.getTrading()));
         order.setTaxRate(new BigDecimal(bo.getTaxRate()));
@@ -398,9 +408,9 @@ public class LogisticsConsignmentService {
             throw new RuntimeException("dubbp 查询销售订单数据查找失败!");
         }
         List<AddressInfoDetail> addressInfo = orderDetailRes.getAddressInfo();
-        if (CollectionUtils.isNotEmpty(addressInfo)){
+        if (CollectionUtils.isNotEmpty(addressInfo)) {
             for (AddressInfoDetail detail : addressInfo) {
-                if (String.valueOf(NumberConstant.ONE).equals(detail.getAddressType())){
+                if (String.valueOf(NumberConstant.ONE).equals(detail.getAddressType())) {
                     loadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
                     loadOrderAddress.setAddressType(NumberConstant.ONE);
                     loadOrderAddress.setDetailAddress(detail.getDetailAddress());
@@ -416,7 +426,7 @@ public class LogisticsConsignmentService {
                     loadOrderAddress.setUpdateBy(LoginUserHolder.getUserId());
                     loadOrderAddress.setUpdateTime(new Date());
                 }
-                if (String.valueOf(NumberConstant.TWO).equals(detail.getAddressType())){
+                if (String.valueOf(NumberConstant.TWO).equals(detail.getAddressType())) {
                     unloadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
                     unloadOrderAddress.setAddressType(NumberConstant.TWO);
                     unloadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
@@ -450,7 +460,8 @@ public class LogisticsConsignmentService {
      */
     public HttpResult purchaseLogisticsOrder(String id, Integer page, Integer pageSize) {
         Long count = getLogisticsOrderCount(id);
-        List<LogisticsOrderDTO> list = getLogisticsOrderData(id, page, pageSize);
+        Integer newPage = page - 1;
+        List<LogisticsOrderDTO> list = getLogisticsOrderData(id, newPage, pageSize);
         PageResult build = PageResult.build(page, pageSize, count, list);
         return HttpResult.ok(build);
     }
@@ -469,7 +480,8 @@ public class LogisticsConsignmentService {
      */
     public HttpResult sellLogisticsOrder(String id, Integer page, Integer pageSize) {
         Long count = getLogisticsOrderCount(id);
-        List<LogisticsOrderDTO> list = getLogisticsOrderData(id, page, pageSize);
+        Integer newPage = page - 1;
+        List<LogisticsOrderDTO> list = getLogisticsOrderData(id, newPage, pageSize);
         PageResult build = PageResult.build(page, pageSize, count, list);
         return HttpResult.ok(build);
     }
@@ -495,7 +507,8 @@ public class LogisticsConsignmentService {
      */
     public HttpResult purchaseLogisticsCar(String id, Integer page, Integer pageSize) {
         Long count = getLogisticsCarDataCount(id);
-        List<OrderCarDTO> list = getLogisticsCarData(id, page, pageSize);
+        Integer newPage = page - 1;
+        List<OrderCarDTO> list = getLogisticsCarData(id, newPage, pageSize);
         PageResult build = PageResult.build(page, pageSize, count, list);
         return HttpResult.ok(build);
     }
@@ -510,7 +523,8 @@ public class LogisticsConsignmentService {
      */
     public HttpResult sellLogisticsCar(String id, Integer page, Integer pageSize) {
         Long count = getLogisticsCarDataCount(id);
-        List<OrderCarDTO> list = getLogisticsCarData(id, page, pageSize);
+        Integer newPage = page - 1;
+        List<OrderCarDTO> list = getLogisticsCarData(id, newPage, pageSize);
         PageResult build = PageResult.build(page, pageSize, count, list);
         return HttpResult.ok(build);
     }

+ 2 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.StringUtils;
@@ -17,7 +18,6 @@ import com.sckw.order.api.model.UpdateOrderAmountParam;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.transport.api.model.dto.vo.LogisticsOrderDTO;
-import com.sckw.transport.common.enums.LogisticsOrderEnum;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.DocumentParamDTO;
@@ -196,7 +196,7 @@ public class TransportCommonService {
         orderDetailVO.setSettlementCycle(logisticsOrder.getSettlementCycle() == null ? null : String.valueOf(logisticsOrder.getSettlementCycle()));
         orderDetailVO.setBillingMode(logisticsOrder.getBillingMode());
         orderDetailVO.setScheduleStartTime(logisticsOrder.getStartTime() == null ? null : DateUtil.getDateTime(logisticsOrder.getStartTime()));
-        orderDetailVO.setScheduleEndTime(logisticsOrder.getEntTime() == null ? null : DateUtil.getDateTime(logisticsOrder.getEntTime()));
+        orderDetailVO.setScheduleEndTime(logisticsOrder.getEndTime() == null ? null : DateUtil.getDateTime(logisticsOrder.getEndTime()));
         orderDetailVO.setPerformanceAmount(logisticsOrder.getLoadAmount() == null ? null : String.valueOf(logisticsOrder.getLoadAmount()));
         return orderDetailVO;
     }

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

@@ -0,0 +1,89 @@
+package com.sckw.transport.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.fleet.api.RemoteFleetService;
+import com.sckw.fleet.api.model.vo.RTruckVo;
+import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import com.sckw.transport.dao.*;
+import com.sckw.transport.model.KwtWaybillOrderAddress;
+import com.sckw.transport.model.KwtWaybillOrderTicket;
+import com.sckw.transport.model.KwtWaybillOrderTrack;
+import com.sckw.transport.model.dto.WayBillDetailDTO;
+import com.sckw.transport.model.vo.WaybillDataVO;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author jc
+ * @description 运单相关服务
+ * @date 2023-06-29 15:06:45
+ */
+@Slf4j
+@Service
+public class WaybillManagementService {
+
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    RemoteFleetService remoteFleetService;
+
+    @Autowired
+    public KwtWaybillOrderMapper kwtWaybillOrderMapper;
+
+    @Autowired
+    public KwtWaybillOrderAddressMapper kwtWaybillOrderAddressMapper;
+
+    @Autowired
+    public KwtWaybillOrderTicketMapper kwtWaybillOrderTicketMapper;
+
+    @Autowired
+    public KwtWaybillOrderTrackMapper kwtWaybillOrderTrackMapper;
+
+    /**
+     * 运单详情
+     * @param id
+     * @return
+     */
+    public HttpResult waybillData(@Param("id") Long id) {
+        WayBillDetailDTO kwtWaybillOrder = kwtWaybillOrderMapper.selectWaybillRelate(id);
+        // 收发地址
+        List<KwtWaybillOrderAddress> kwtWaybillOrderAddressList = kwtWaybillOrderAddressMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderAddress>()
+                .eq(KwtWaybillOrderAddress::getWOrderId, kwtWaybillOrder.getLOrderId()));
+        if(CollectionUtils.isNotEmpty(kwtWaybillOrderAddressList)) {
+            log.error("xx");
+            for (KwtWaybillOrderAddress kwtWaybillOrderAddress:kwtWaybillOrderAddressList) {
+                // 1装货地址、2卸货地址
+                log.error("AddressType: {} ", kwtWaybillOrderAddress.getAddressType());
+                if (kwtWaybillOrderAddress.getAddressType().equals(NumberConstant.ONE)) {
+                    kwtWaybillOrder.setStartLocationName(kwtWaybillOrderAddress.getName());
+                    kwtWaybillOrder.setStartLocationAddress(kwtWaybillOrderAddress.getDetailAddress());
+                }
+                if (kwtWaybillOrderAddress.getAddressType().equals(NumberConstant.TWO)) {
+                    kwtWaybillOrder.setEndLocationName(kwtWaybillOrderAddress.getName());
+                    kwtWaybillOrder.setEndLocationAddress(kwtWaybillOrderAddress.getDetailAddress());
+                }
+            }
+        }
+        WaybillDataVO waybillDataVO = new WaybillDataVO();
+        waybillDataVO.setTransportMessage(kwtWaybillOrder);
+
+        // 车辆信息
+        Map<Long, RTruckVo> truck  = remoteFleetService.findTruck(kwtWaybillOrder.getTruckNo());
+//        waybillDataVO.setCarMessage();
+        // 履约信息
+        List<KwtWaybillOrderTicket> kwtWaybillOrderTicket = kwtWaybillOrderTicketMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderTicket>()
+                .eq(KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getWOrderId()));
+        // 业务日志
+        List<KwtWaybillOrderTrack> kwtWaybillOrderTrack = kwtWaybillOrderTrackMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
+                .eq(KwtWaybillOrderTrack::getWOrderId, kwtWaybillOrder.getWOrderId()));
+
+        return HttpResult.ok(waybillDataVO);
+    }
+}

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

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

+ 11 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderAddressMapper.xml

@@ -29,4 +29,15 @@
     detail_address, lat, lng, fence, entry_type, remark, `status`, create_by, create_time,
     update_by, update_time, del_flag
     </sql>
+
+    <select id="findByAddress" resultType="com.sckw.transport.model.KwtLogisticsOrderAddress" >
+        select
+        id, l_order_id lOrderId, address_type addressType, `name`, `type`, contacts, phone, city_code cityCode, city_name cityName,
+        detail_address detailAddress, lat, lng, fence, entry_type entryType, remark, `status`, create_by createBy, create_time createTime,
+        update_by updateBy, update_time updateTime
+        from kwt_logistics_order_address
+        where del_flag = 0
+        and l_order_id = #{lOrderId, jdbcType=BIGINT}
+        and address_type = #{addressType jdbcType=INTEGER}
+    </select>
 </mapper>

+ 12 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderCirculateMapper.xml

@@ -41,4 +41,16 @@
             </foreach>
         </if>
     </select>
+
+    <select id="findCirculate" resultType="com.sckw.transport.model.KwtLogisticsOrderCirculate" >
+        select
+        id, ent_id entId, l_order_id lOrderId, w_order_id wOrderId, truck_no truckNo,type, driver_id driverId,
+        actual_amount actualAmount, entrust_amount entrustAmount, entrust_date entrustDate, remark, `status`,
+        create_by createBy, create_time createTime, update_by updateBy, update_time updateTime
+        from kwt_logistics_order_circulate
+        where del_flag = 0
+        and l_order_id = #{lOrderId, jdbcType=BIGINT}
+        and truck_no = #{truckNo jdbcType=VARCHAR}
+        and driver_id = #{driverId jdbcType=BIGINT}
+    </select>
 </mapper>

+ 9 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderGoodsMapper.xml

@@ -175,4 +175,13 @@
             del_flag = #{delFlag,jdbcType=INTEGER}
         where id = #{id,jdbcType=BIGINT}
     </update>
+
+    <select id="findByGoods" resultType="com.sckw.transport.model.KwtLogisticsOrderGoods" >
+        SELECT
+        id, l_order_id lOrderId, l_order_no lOrderNo, goods_id goodsId, goods_name goodsName, sku_id skuId,
+        remark, `status`, create_by createBy, create_time createTime, update_by updateBy, update_time updateTime
+        from kwt_logistics_order_goods
+        where del_flag = 0
+        and l_order_id = #{lOrderId, jdbcType=BIGINT}
+    </select>
 </mapper>

+ 104 - 75
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -2,85 +2,49 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.transport.dao.KwtLogisticsOrderMapper">
     <resultMap id="BaseResultMap" type="com.sckw.transport.model.KwtLogisticsOrder">
-        <id column="id" jdbcType="BIGINT" property="id" />
-        <result column="ent_id" jdbcType="BIGINT" property="entId" />
-        <result column="t_order_id" jdbcType="BIGINT" property="tOrderId" />
-        <result column="t_order_no" jdbcType="VARCHAR" property="tOrderNo" />
-        <result column="l_order_no" jdbcType="VARCHAR" property="lOrderNo" />
-        <result column="pid" jdbcType="BIGINT" property="pid" />
-        <result column="settlement_cycle" jdbcType="BIGINT" property="settlementCycle" />
-        <result column="billing_mode" jdbcType="BIGINT" property="billingMode" />
-        <result column="price" jdbcType="DECIMAL" property="price" />
-        <result column="price_type" jdbcType="BIGINT" property="priceType" />
-        <result column="amount" jdbcType="DECIMAL" property="amount" />
-        <result column="unit" jdbcType="VARCHAR" property="unit" />
-        <result column="loss" jdbcType="DECIMAL" property="loss" />
-        <result column="loss_unit" jdbcType="VARCHAR" property="lossUnit" />
-        <result column="goods_price" jdbcType="DECIMAL" property="goodsPrice" />
-        <result column="goods_price_unit" jdbcType="VARCHAR" property="goodsPriceUnit" />
-        <result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
-        <result column="ent_time" jdbcType="TIMESTAMP" property="entTime" />
-        <result column="subcontract_amount" jdbcType="DECIMAL" property="subcontractAmount" />
-        <result column="entrust_amount" jdbcType="DECIMAL" property="entrustAmount" />
-        <result column="unload_amount" jdbcType="DECIMAL" property="unloadAmount" />
-        <result column="load_amount" jdbcType="DECIMAL" property="loadAmount" />
-        <result column="ignore_amount" jdbcType="DECIMAL" property="ignoreAmount" />
-        <result column="deficit_amount" jdbcType="DECIMAL" property="deficitAmount" />
-        <result column="deficit_price" jdbcType="DECIMAL" property="deficitPrice" />
-        <result column="payment" jdbcType="BIGINT" property="payment" />
-        <result column="tax_rate" jdbcType="DECIMAL" property="taxRate" />
-        <result column="remark" jdbcType="VARCHAR" property="remark" />
-        <result column="status" jdbcType="INTEGER" property="status" />
-        <result column="create_by" jdbcType="BIGINT" property="createBy" />
-        <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
-        <result column="update_by" jdbcType="BIGINT" property="updateBy" />
-        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
-        <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="ent_id" jdbcType="BIGINT" property="entId"/>
+        <result column="t_order_id" jdbcType="BIGINT" property="tOrderId"/>
+        <result column="t_order_no" jdbcType="VARCHAR" property="tOrderNo"/>
+        <result column="l_order_no" jdbcType="VARCHAR" property="lOrderNo"/>
+        <result column="pid" jdbcType="BIGINT" property="pid"/>
+        <result column="settlement_cycle" jdbcType="BIGINT" property="settlementCycle"/>
+        <result column="billing_mode" jdbcType="BIGINT" property="billingMode"/>
+        <result column="price" jdbcType="DECIMAL" property="price"/>
+        <result column="price_type" jdbcType="BIGINT" property="priceType"/>
+        <result column="amount" jdbcType="DECIMAL" property="amount"/>
+        <result column="unit" jdbcType="VARCHAR" property="unit"/>
+        <result column="loss" jdbcType="DECIMAL" property="loss"/>
+        <result column="loss_unit" jdbcType="VARCHAR" property="lossUnit"/>
+        <result column="goods_price" jdbcType="DECIMAL" property="goodsPrice"/>
+        <result column="goods_price_unit" jdbcType="VARCHAR" property="goodsPriceUnit"/>
+        <result column="start_time" jdbcType="TIMESTAMP" property="startTime"/>
+        <result column="end_time" jdbcType="TIMESTAMP" property="endTime"/>
+        <result column="subcontract_amount" jdbcType="DECIMAL" property="subcontractAmount"/>
+        <result column="entrust_amount" jdbcType="DECIMAL" property="entrustAmount"/>
+        <result column="unload_amount" jdbcType="DECIMAL" property="unloadAmount"/>
+        <result column="load_amount" jdbcType="DECIMAL" property="loadAmount"/>
+        <result column="ignore_amount" jdbcType="DECIMAL" property="ignoreAmount"/>
+        <result column="deficit_amount" jdbcType="DECIMAL" property="deficitAmount"/>
+        <result column="deficit_price" jdbcType="DECIMAL" property="deficitPrice"/>
+        <result column="payment" jdbcType="BIGINT" property="payment"/>
+        <result column="tax_rate" jdbcType="DECIMAL" property="taxRate"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+        <result column="status" jdbcType="INTEGER" property="status"/>
+        <result column="create_by" jdbcType="BIGINT" property="createBy"/>
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="update_by" jdbcType="BIGINT" property="updateBy"/>
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="del_flag" jdbcType="INTEGER" property="delFlag"/>
     </resultMap>
     <sql id="Base_Column_List">
-        id, ent_id, t_order_id, t_order_no, l_order_no, pid, settlement_cycle, price, price_type,billing_mode,
-    amount, unit, loss, loss_unit, goods_price, goods_price_unit, start_time, ent_time,
+        id
+        , ent_id, t_order_id, t_order_no, l_order_no, pid, settlement_cycle, price, price_type,billing_mode,
+    amount, unit, loss, loss_unit, goods_price, goods_price_unit, start_time, end_time,
     subcontract_amount, entrust_amount, unload_amount, load_amount, ignore_amount, deficit_amount,
     deficit_price, payment, tax_rate, remark, `status`, create_by, create_time, update_by,
     update_time, del_flag
     </sql>
-    <update id="updateByPrimaryKey" parameterType="com.sckw.transport.model.KwtLogisticsOrder">
-        update kwt_logistics_order
-        set ent_id = #{entId,jdbcType=BIGINT},
-            t_order_id = #{tOrderId,jdbcType=BIGINT},
-            t_order_no = #{tOrderNo,jdbcType=VARCHAR},
-            l_order_no = #{lOrderNo,jdbcType=VARCHAR},
-            pid = #{pid,jdbcType=BIGINT},
-            settlement_cycle = #{settlementCycle,jdbcType=BIGINT},
-            billing_mode = #{billingMode,jdbcType=VARCHAR},
-            price = #{price,jdbcType=DECIMAL},
-            price_type = #{priceType,jdbcType=BIGINT},
-            amount = #{amount,jdbcType=DECIMAL},
-            unit = #{unit,jdbcType=VARCHAR},
-            loss = #{loss,jdbcType=DECIMAL},
-            loss_unit = #{lossUnit,jdbcType=VARCHAR},
-            goods_price = #{goodsPrice,jdbcType=DECIMAL},
-            goods_price_unit = #{goodsPriceUnit,jdbcType=VARCHAR},
-            start_time = #{startTime,jdbcType=TIMESTAMP},
-            ent_time = #{entTime,jdbcType=TIMESTAMP},
-            subcontract_amount = #{subcontractAmount,jdbcType=DECIMAL},
-            entrust_amount = #{entrustAmount,jdbcType=DECIMAL},
-            unload_amount = #{unloadAmount,jdbcType=DECIMAL},
-            load_amount = #{loadAmount,jdbcType=DECIMAL},
-            ignore_amount = #{ignoreAmount,jdbcType=DECIMAL},
-            deficit_amount = #{deficitAmount,jdbcType=DECIMAL},
-            deficit_price = #{deficitPrice,jdbcType=DECIMAL},
-            payment = #{payment,jdbcType=BIGINT},
-            tax_rate = #{taxRate,jdbcType=DECIMAL},
-            remark = #{remark,jdbcType=VARCHAR},
-            `status` = #{status,jdbcType=INTEGER},
-            create_by = #{createBy,jdbcType=BIGINT},
-            create_time = #{createTime,jdbcType=TIMESTAMP},
-            update_by = #{updateBy,jdbcType=BIGINT},
-            update_time = #{updateTime,jdbcType=TIMESTAMP},
-            del_flag = #{delFlag,jdbcType=INTEGER}
-        where id = #{id,jdbcType=BIGINT}
-    </update>
     <select id="selectOrderList" resultType="com.sckw.transport.model.dto.LogisticsOrderDTO">
         SELECT a.id          as lorderId,
                a.l_order_no  as lorderNo,
@@ -131,8 +95,8 @@
         a.load_amount as loadAmount,
         a.unload_amount as unloadAmount,
         a.start_time as startTime,
-        a.ent_time AS entTime,
-        a.create_time AS  createTime,
+        a.end_time AS endTime,
+        a.create_time AS createTime,
         a.create_by AS createBy,
         a.update_by AS updateBy,
         a.update_time AS updateTime
@@ -196,4 +160,69 @@
         </where>
         ORDER BY a.create_time DESC
     </select>
+
+    <select id="getRejectReason" resultType="java.util.Map">
+        SELECT a.id AS  lOrderId,
+               b.remark remark
+        FROM kwt_logistics_order a
+                 LEFT JOIN kwt_logistics_order_track b ON a.id = b.l_order_id
+        WHERE a.del_flag = '0'
+          AND b.del_flag = '0'
+          and b.status = #{status}
+          and a.id = #{id}
+    </select>
+
+    <select id="getSubcontractConsignment" resultType="com.sckw.transport.model.vo.SubcontractConsignmentVO">
+        SELECT a.id,
+               a.pid,
+               a.`status`         as status,
+               a.l_order_no       as consignOrderNo,
+               c.firm_name        as carrierContacts,
+               d.goods_name       as goodsName,
+               a.amount           as amount,
+               a.price,
+               a.price_type       as priceType,
+               e.detail_address   as loadAddress,
+               f.detail_address   as unloadAddress,
+               a.billing_mode     as billingMode,
+               a.loss,
+               a.loss_unit        as lossUnit,
+               a.goods_price      as goodsPrice,
+               a.goods_price_unit as goodsPriceUnit,
+               a.settlement_cycle as settlementCycle,
+               c.contacts         as carrierContacts,
+               c.phone            as carrierPhone,
+               b.firm_name        as consignCompany,
+               b.contacts         as consignContacts,
+               b.phone            as consignPhone,
+               e.contacts         as loadContacts,
+               e.phone            as loadContacts,
+               f.contacts         as unloadContacts,
+               f.phone            as unloadPhone,
+               a.start_time       as shipmentsDate,
+               a.end_time         as receiveGoodsDate,
+               a.remark,
+               a.create_by        as createBy,
+               a.create_time      as createTime,
+               g.contract_id      as contractId
+        FROM kwt_logistics_order a
+                 LEFT JOIN kwt_logistics_order_unit b ON a.id = b.l_order_id
+            AND b.unit_type = 1
+                 LEFT JOIN kwt_logistics_order_unit c ON a.id = c.l_order_id
+            AND c.unit_type = 2
+                 LEFT JOIN kwt_logistics_order_goods d ON a.id = d.l_order_id
+                 LEFT JOIN kwt_logistics_order_address e ON a.id = e.l_order_id
+            AND e.address_type = 1
+                 LEFT JOIN kwt_logistics_order_address f ON a.id = f.l_order_id
+            AND f.address_type = 2
+                 LEFT JOIN kwt_logistics_order_contract g ON a.id = g.l_order_id
+        WHERE a.del_flag = 0
+          AND b.del_flag = 0
+          AND c.del_flag = 0
+          AND e.del_flag = 0
+          AND f.del_flag = 0
+          and a.pid = #{lOrderId}
+        ORDER BY a.create_time
+            limit #{page}, #{pageSize}
+    </select>
 </mapper>

+ 11 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderUnitMapper.xml

@@ -21,4 +21,15 @@
         id, l_order_id, unit_type, ent_id, firm_name, contacts, phone, remark, `status`,
     create_by, create_time, update_by, update_time, del_flag
     </sql>
+
+    <select id="findByUnit" resultType="com.sckw.transport.model.KwtLogisticsOrderUnit" >
+        select
+        id, l_order_id lOrderId, unit_type unitType, ent_id entId, firm_name firmName, contacts, phone
+        remark, status, create_by createBy, create_time createTime, update_by updateBy, update_time updateTime
+        from kwt_logistics_order_unit
+        where del_flag = 0
+        and l_order_id = #{lOrderId, jdbcType=BIGINT}
+        and unit_type = #{unitType jdbcType=INTEGER}
+    </select>
+
 </mapper>

+ 34 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderAddressMapper.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.transport.dao.KwtWaybillOrderAddressMapper">
+    <resultMap id="BaseResultMap" type="com.sckw.transport.model.KwtWaybillOrder">
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="w_order_id" jdbcType="BIGINT" property="wOrderId"/>
+        <result column="address_type" jdbcType="VARCHAR" property="AddressType"/>
+        <result column="name" jdbcType="VARCHAR" property="name"/>
+        <result column="type" jdbcType="BIGINT" property="type"/>
+        <result column="contacts" jdbcType="VARCHAR" property="contacts"/>
+        <result column="phone" jdbcType="VARCHAR" property="phone"/>
+        <result column="city_code" jdbcType="INTEGER" property="cityCode"/>
+        <result column="city_name" jdbcType="VARCHAR" property="cityName"/>
+        <result column="detail_address" jdbcType="VARCHAR" property="detailAddress"/>
+        <result column="lat" jdbcType="VARCHAR" property="lat"/>
+        <result column="lng" jdbcType="VARCHAR" property="lng"/>
+        <result column="fence" jdbcType="VARCHAR" property="fence"/>
+        <result column="entry_type" jdbcType="INTEGER" property="entryType"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+        <result column="status" jdbcType="INTEGER" property="status"/>
+        <result column="create_by" jdbcType="BIGINT" property="createBy"/>
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="update_by" jdbcType="BIGINT" property="updateBy"/>
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="del_flag" jdbcType="INTEGER" property="delFlag"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        id
+        , w_order_id, address_type, `name`, `type`, `contacts`,`phone`,`city_code`
+        , city_name, detail_address, lat, lng, fence, entry_type, remark, status
+        , create_by, create_time, update_by, update_time, del_flag
+
+    </sql>
+</mapper>

+ 22 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -92,4 +92,26 @@
     <select id="getWaybillData" resultType="com.sckw.transport.model.vo.WaybillDetailVO">
 
     </select>
+
+    <select id="selectWaybillRelate" resultType="com.sckw.transport.model.dto.WayBillDetailDTO">
+        SELECT
+            `order`.`id` AS `lOrderId`,
+            `order`.`w_order_no` AS `wOrderNo`,
+            `order`.`truck_no` AS `truckNo`,
+            `order`.`entrust_amount` AS `entrustAmount`,
+            `order`.`type`,
+            `order`.`start_time` AS `startTime`,
+            `order`.`end_time` AS `endTime`,
+            `order`.`create_by` AS `createBy`,
+            `logistics`.`id` AS `lOrderId`,
+            `logistics`.`l_order_no` AS `lOrderNo`,
+            `logistics`.`price_type` AS `priceType`,
+            `goods`.`goods_name` AS goodsName
+        FROM
+            `kwt_waybill_order` `order`
+                LEFT JOIN `kwt_logistics_order` `logistics` ON `logistics`.`id` = `order`.`l_order_id`
+                LEFT JOIN `kwt_logistics_order_goods` `goods` ON `goods`.`l_order_id` = `order`.`l_order_id`
+        WHERE
+            `order`.`id` = #{id,jdbcType=BIGINT}
+    </select>
 </mapper>