Răsfoiți Sursa

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

# Conflicts:
#	sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsOrderConsignmentService.java
lengfaqiang 2 ani în urmă
părinte
comite
bafc19efff

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

@@ -51,6 +51,16 @@ public interface KwtWaybillOrderTicketMapper extends BaseMapper<KwtWaybillOrderT
      **/
     KwtWaybillOrderTicket findWaybillOrderTicketV2(@Param("wAddressId") Long wAddressId, @Param("unit") String unit);
 
+    /**
+     * 查询车辆运单榜单信息
+     * @param wAddressId 车辆订单地址id
+     * @desc 查询车辆运单榜单信息
+     * @author zk
+     * @date 2023/7/27
+     * @return 榜单信息
+     **/
+    List<KwtWaybillOrderTicket> findWaybillOrderTicketV3(@Param("wAddressId") Long wAddressId, @Param("unit") String unit);
+
     /**
      * 修改榜单删除标识
      * @param wOrderId 运单ID

+ 71 - 290
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/LogisticsConsignmentDto.java

@@ -19,7 +19,7 @@ import java.util.List;
 
 /**
  * @author lfdc
- * @description LogisticsConsignmentDto-V4.2
+ * @desc LogisticsConsignmentDto-V4.2
  * @date 2023-07-06 14:07:50
  */
 
@@ -29,7 +29,7 @@ import java.util.List;
 public class LogisticsConsignmentDto implements Serializable {
 
     /**
-     * 单据类型
+     * 单据类型采购订单1,销售订单2
      */
     @NotBlank(message = "单据类型不能为空")
     private String type;
@@ -41,11 +41,80 @@ public class LogisticsConsignmentDto implements Serializable {
     @com.fasterxml.jackson.annotation.JsonProperty("tOrderId")
     private String tOrderId;
 
+    /**
+     * 贸易订单编号
+     */
+    @NotBlank(message = "贸易订单编号不能为空")
+    @JsonProperty("tOrderNo")
+    private String tOrderNo;
+
+    /**
+     * 托运单位
+     */
+    @NotNull(message = "托运单位名称不能为空")
+    private String checkCompany;
+    /**
+     * 托运单位id
+     */
+    @NotNull(message = "托运单位id不能为空")
+    private String checkCompanyId;
+
+    /**
+     * 联系电话
+     */
+    @NotNull(message = "托运联系电话不能为空")
+    private String checkContactPhone;
+    /**
+     * 联系人
+     */
+    @NotNull(message = "托运联系人不能为空")
+    private String checkContacts;
+    /**
+     * 托运联系人id
+     */
+    @NotNull(message = "托运联系人不能为空")
+    private String checkContactsId;
+
+    /**
+     * 承运单位
+     */
+    @NotBlank(message = "承运单位不能为空")
+    private String consignCompany;
+
+    /**
+     * 承运单位ID
+     */
+    @NotBlank(message = "承运单位ID不能为空")
+    private String consignCompanyId;
+
+    /**
+     * 联系电话
+     */
+    @NotNull(message = "承运联系电话不能为空")
+    private String consignContactPhone;
+    /**
+     * 联系人
+     */
+    @NotNull(message = "承运联系人不能为空")
+    private String consignContacts;
+
+    /**
+     * 承运联系人id
+     */
+    @NotNull(message = "承运联系人id不能为空")
+    private String consignContactsId;
+
     /**
      * 商品ID
      */
+    @NotNull(message = "商品id不能为空")
     private Long goodsId;
 
+    /**
+     * 商品类型
+     */
+    private String goodsType;
+
     /**
      * goodsName
      */
@@ -56,13 +125,6 @@ public class LogisticsConsignmentDto implements Serializable {
      */
     private String skuId;
 
-    /**
-     * 贸易订单编号
-     */
-    @NotBlank(message = "贸易订单编号不能为空")
-    @JsonProperty("tOrderNo")
-    private String tOrderNo;
-
     /**
      * 结算周期
      */
@@ -160,62 +222,6 @@ public class LogisticsConsignmentDto implements Serializable {
      */
     private String remark;
 
-    /**
-     * 托运单位
-     */
-    @NotNull(message = "托运单位名称不能为空")
-    private String checkCompany;
-    /**
-     * 托运单位id
-     */
-    @NotNull(message = "托运单位id不能为空")
-    private String checkCompanyId;
-
-    /**
-     * 联系电话
-     */
-    @NotNull(message = "托运联系电话不能为空")
-    private String checkContactPhone;
-    /**
-     * 联系人
-     */
-    @NotNull(message = "托运联系人不能为空")
-    private String checkContacts;
-    /**
-     * 托运联系人id
-     */
-    @NotNull(message = "托运联系人不能为空")
-    private String checkContactsId;
-
-    /**
-     * 承运单位
-     */
-    @NotBlank(message = "承运单位不能为空")
-    private String consignCompany;
-
-    /**
-     * 承运单位ID
-     */
-    @NotBlank(message = "承运单位ID不能为空")
-    private String consignCompanyId;
-
-    /**
-     * 联系电话
-     */
-    @NotNull(message = "承运联系电话不能为空")
-    private String consignContactPhone;
-    /**
-     * 联系人
-     */
-    @NotNull(message = "承运联系人不能为空")
-    private String consignContacts;
-
-    /**
-     * 承运联系人id
-     */
-    @NotNull(message = "承运联系人id不能为空")
-    private String consignContactsId;
-
 
     /**
      * 合同信息
@@ -242,229 +248,4 @@ public class LogisticsConsignmentDto implements Serializable {
     @JsonProperty("lineFreightList")
     private List<LineFreightDto> lineFreightList;
 
-
-//
-//    /**
-//     *总量
-//     */
-//    @Digits(integer = 10,fraction = 2,message = "总量格式不正确")
-//    @DecimalMin(value = "0.00",message = "分配总量量不能小于{value}")
-//    private BigDecimal amount;
-//    /**
-//     * 分配承运量
-//     */
-//    @Digits(integer = 10,fraction = 2,message = "分配承运量格式不正确")
-//    @DecimalMin(value = "0.00",message = "分配承运量不能小于{value}")
-//    private BigDecimal carryingCapacity;
-//    /**
-//     * 分配承运量使用的单位(吨、方、箱、件))
-//     */
-//    @NotNull(message = "分配承运量单位不能为空")
-//    private String carryingCapacityUnit;
-//
-//    /**
-//     * 托运单位
-//     */
-//    @NotNull(message = "托运单位名称不能为空")
-//    private String checkCompany;
-//    /**
-//     * 托运单位id
-//     */
-//    @NotNull(message = "托运单位id不能为空")
-//    private String checkCompanyId;
-//
-//    /**
-//     * 联系电话
-//     */
-//    @NotNull(message = "托运联系电话不能为空")
-//    private String checkContactPhone;
-//    /**
-//     * 联系人
-//     */
-//    @NotNull(message = "托运联系人不能为空")
-//    private String checkContacts;
-//    /**
-//     * 托运联系人id
-//     */
-//    @NotNull(message = "托运联系人不能为空")
-//    private String checkContactsId;
-//
-//    /**
-//     * 合理损耗
-//     */
-////    @NotNull(message = "合理损耗不能为空")
-////    @DecimalMin(value = "0.00",message = "必须为大于0的正整数")
-//    @Digits(integer = 5, fraction = 2, message = "合理损耗超长")
-//    private BigDecimal loss;
-//    /**
-//     * 合理损耗单位
-//     */
-//    private String lossUnit;
-//
-//    /**
-//     * 商品价值(扣亏货值)
-//     */
-////    @NotNull(message = "扣亏货值不能为空")
-////    @DecimalMin(value = "0.00",message = "必须为大于0的正整数")
-//    private BigDecimal goodsPrice;
-//    /**
-//     * 商品价值(扣亏货值)单位
-//     */
-//    private String goodsPriceUnit;
-//    /**
-//     * 承运单位
-//     */
-//    @NotBlank(message = "承运单位不能为空")
-//    private String consignCompany;
-//
-//    /**
-//     * 承运单位ID
-//     */
-//    @NotBlank(message = "承运单位ID不能为空")
-//    private String consignCompanyId;
-//
-//    /**
-//     * 联系电话
-//     */
-//    @NotNull(message = "承运联系电话不能为空")
-//    private String consignContactPhone;
-//    /**
-//     * 联系人
-//     */
-//    @NotNull(message = "承运联系人不能为空")
-//    private String consignContacts;
-//
-//    /**
-//     * 承运联系人id
-//     */
-//    @NotNull(message = "承运联系人id不能为空")
-//    private String consignContactsId;
-//
-//    /**
-//     * 结算周期(周结、月结、季结)
-//     */
-////    @NotNull(message = "结算周期不能为空")
-//    @Digits(integer = 5, fraction = 0, 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 signingWay;
-//
-//    /**
-//     * 货物名称
-//     */
-//    @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;
-//    /**
-//     * 贸易订单id
-//     */
-//    @JsonProperty("tOrderId")
-//    @NotNull(message = "贸易订单id不能为空")
-//    private String tOrderId;
-//    /**
-//     * 贸易订单编号
-//     */
-//    @JsonProperty("tOrderNo")
-//    @NotNull(message = "贸易订单编号不能为空")
-//    private String tOrderNo;
-//    /**
-//     * 运价
-//     */
-//    @NotNull(message = "运价不能为空")
-//    @DecimalMin(value = "0.00",message = "运价必须为大于0的正整数")
-//    @Digits(integer = 6,fraction = 2,message = "运价格式填写错误")
-//    private BigDecimal price;
-//    /**
-//     * 运价方式
-//     */
-//    @NotNull(message = "运价方式不能为空")
-//    private String priceType;
-//    /**
-//     * 计划卸货时间
-//     */
-//    @NotNull(message = "计划卸货时间不能为空")
-//    @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
-////    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-//    private LocalDate receiveGoodsDateTime;
-//    /**
-//     * 计划发货时间
-//     */
-//    @NotNull(message = "计划发货时间不能为空")
-//    @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
-////    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-//    private LocalDate shipmentsDateTime;
-//    /**
-//     * 税率
-//     */
-//    @NotNull(message = "税率不能为空")
-//    private Long taxRate;
-////    /**
-////     * 税率类型
-////     */
-////    @NotNull(message = "税率类型不能为空")
-////    private String taxRateType;
-//    /**
-//     * 备注
-//     */
-//    @Length(max = 100,message = "单据编号长度错误最大长度:{max}")
-//    private String remark;
-//    /**
-//     * 计费方式
-//     */
-//    @NotNull(message = "计费方式不能为空")
-//    private String billingMode;
-
-
 }

+ 100 - 87
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/LogisticsOrderSubcontractDto.java

@@ -19,7 +19,7 @@ import java.util.List;
 
 /**
  * @author lfdc
- * @description 物流订单-分包托运-v4.2
+ * @desc 物流订单-分包托运-v4.2
  * @date 2024-03-05 14:03:45
  */
 @Data
@@ -28,30 +28,29 @@ import java.util.List;
 public class LogisticsOrderSubcontractDto implements Serializable {
 
     /**
-     * 订单类型-托运订单1-承运订单2
-     */
-    @NotBlank(message = "订单类型不能为空")
-    private String type;
-    /**
-     *总量
+     * 订单id-分包时要使用
      */
-    private BigDecimal amount;
+    @JsonProperty("lOrderId")
+    private String lOrderId;
+
     /**
-     * 分配承运量
+     * 订单编号-分包时要使用
      */
-    @Digits(integer = 10,fraction = 2,message = "分配承运量填写错误")
-    @DecimalMin(value = "0.00",message = "委托量不能小于{value}")
-    private BigDecimal carryingCapacity;
+    @JsonProperty("lOrderNo")
+    private String lOrderNo;
+
     /**
-     * 分配承运量使用的单位
+     * 订单类型-托运订单1-承运订单2
      */
-    private String carryingCapacityUnit;
+    @NotBlank(message = "订单类型不能为空")
+    private String type;
 
     /**
      * 托运单位
      */
     @NotNull(message = "托运单位名称不能为空")
     private String consignCompany;
+
     /**
      * 托运单位id
      */
@@ -63,6 +62,7 @@ public class LogisticsOrderSubcontractDto implements Serializable {
      */
     @NotNull(message = "托运联系电话不能为空")
     private String consignContactPhone;
+
     /**
      * 托运联系人
      */
@@ -74,33 +74,7 @@ public class LogisticsOrderSubcontractDto implements Serializable {
      */
     @NotNull(message = "托运联系人id不能为空")
     private String consignContactsId;
-    /**
-     * 承运联系人id
-     */
-    @NotNull(message = "承运联系人id不能为空")
-    private String acceptContactsId;
 
-    /**
-     * 合理损耗
-     */
-//    @NotNull(message = "合理损耗不能为空")
-    @Digits(integer = 5, fraction = 2,message = "合理损耗格式填写错误")
-    private BigDecimal loss;
-    /**
-     * 合理损耗单位
-     */
-    private String lossUnit;
-
-    /**
-     * 商品价值(扣亏货值)
-     */
-//    @NotNull(message = "扣亏货值不能为空")
-    @Digits(integer = 5, fraction = 2,message = "商品价值(扣亏货值)格式填写错误")
-    private BigDecimal goodsPrice;
-    /**
-     * 商品价值(扣亏货值)单位
-     */
-    private String goodsPriceUnit;
     /**
      * 承运单位
      */
@@ -118,6 +92,7 @@ public class LogisticsOrderSubcontractDto implements Serializable {
      */
     @NotNull(message = "承运联系电话不能为空")
     private String acceptContactPhone;
+
     /**
      * 承运联系人
      */
@@ -125,67 +100,97 @@ public class LogisticsOrderSubcontractDto implements Serializable {
     private String acceptContacts;
 
     /**
-     * 结算周期(周结、月结、季结)
+     * 承运联系人id
      */
-//    @NotNull(message = "结算周期不能为空")
-    private Long settlementCycle;
+    @NotNull(message = "承运联系人id不能为空")
+    private String acceptContactsId;
 
     /**
-     * 合同id
+     * 货物id
      */
-    @NotNull(message = "合同id不能为空")
-    private String contractId;
+    //@NotNull(message = "货物id不能为空")
+    private String goodsId;
+
     /**
-     * 合同编号
+     * 商品类型
      */
-    @NotNull(message = "合同编号不能为空")
-    private String contractNo;
+    private String goodsType;
 
     /**
-     * 合同名称
+     * 货物名称
      */
-    @NotNull(message = "合同名称不能为空")
-    private String contractName;
+    @NotNull(message = "货物名称不能为空")
+    private String goodsName;
+
+    /**
+     * skuId
+     */
+    private String skuId;
+
+    /**
+     * 结算周期(周结、月结、季结)
+     */
+    // @NotNull(message = "结算周期不能为空")
+    private Long settlementCycle;
+
+    /**
+     * 税率
+     */
+    @NotNull(message = "税率不能为空")
+    private Long taxRate;
 
     /**
      * 合同签约方式
      */
     @NotNull(message = "合同签约方式不能为空")
     private String payment;
+
     /**
-     * 货物名称
+     * 分配承运量使用的单位
      */
-    @NotNull(message = "货物名称不能为空")
-    private String goodsName;
+    private String carryingCapacityUnit;
 
     /**
-     * 货物id
+     * 商品价值(扣亏货值)
      */
-//    @NotNull(message = "货物id不能为空")
-    private String goodsId;
+    // @NotNull(message = "扣亏货值不能为空")
+    @Digits(integer = 5, fraction = 2,message = "商品价值(扣亏货值)格式填写错误")
+    private BigDecimal goodsPrice;
 
     /**
-     * skuId
+     * 商品价值(扣亏货值)单位
      */
-    private String skuId;
+    private String goodsPriceUnit;
 
     /**
-     * 是否全量
+     * 合理损耗
      */
-    @NotNull(message = "是否全量不能为空")
-    private Boolean isFullDose;
+    // @NotNull(message = "合理损耗不能为空")
+    @Digits(integer = 5, fraction = 2,message = "合理损耗格式填写错误")
+    private BigDecimal loss;
 
     /**
-     * 订单id-分包时要使用
+     * 合理损耗单位
      */
-    @JsonProperty("lOrderId")
-    private String lOrderId;
+    private String lossUnit;
 
     /**
-     * 订单编号-分包时要使用
+     * 扣亏货值
      */
-    @JsonProperty("lOrderNo")
-    private String lOrderNo;
+    @Digits(integer = 5,fraction = 2,message = "扣亏货值格式填写错误")
+    private BigDecimal defectiveValue;
+
+    /**
+     * 计费方式
+     */
+    @NotNull(message = "计费方式不能为空")
+    private String billingMode;
+
+    /**
+     * 是否全量
+     */
+    @NotNull(message = "是否全量不能为空")
+    private Boolean isFullDose;
 
     /**
      * 运价
@@ -200,6 +205,18 @@ public class LogisticsOrderSubcontractDto implements Serializable {
     @NotNull(message = "运价方式不能为空")
     private String priceType;
 
+    /**
+     *总量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 分配承运量
+     */
+    @Digits(integer = 10,fraction = 2,message = "分配承运量填写错误")
+    @DecimalMin(value = "0.00",message = "委托量不能小于{value}")
+    private BigDecimal carryingCapacity;
+
     /**
      * 计划卸货日期
      */
@@ -217,26 +234,28 @@ public class LogisticsOrderSubcontractDto implements Serializable {
     private LocalDate endTime;
 
     /**
-     * 税率
+     * 合同id
      */
-    @NotNull(message = "税率不能为空")
-    private Long taxRate;
+    @NotNull(message = "合同id不能为空")
+    private String contractId;
+
     /**
-     * 备注
+     * 合同编号
      */
-    @Length(max = 200, message = "单据编号长度错误最大长度:{max}")
-    private String remark;
+    @NotNull(message = "合同编号不能为空")
+    private String contractNo;
+
     /**
-     * 计费方式
+     * 合同名称
      */
-    @NotNull(message = "计费方式不能为空")
-    private String billingMode;
+    @NotNull(message = "合同名称不能为空")
+    private String contractName;
 
     /**
-     * 扣亏货值
+     * 备注
      */
-    @Digits(integer = 5,fraction = 2,message = "扣亏货值格式填写错误")
-    private BigDecimal defectiveValue;
+    @Length(max = 200, message = "单据编号长度错误最大长度:{max}")
+    private String remark;
 
     /**
      * 地址信息
@@ -245,12 +264,6 @@ public class LogisticsOrderSubcontractDto implements Serializable {
     @JsonProperty("addressInfo")
     private List<AddressInfoDto> addressInfo;
 
-//    /**
-//     * 辅助单位
-//     */
-//    @JsonProperty("assistUnit")
-//    private List<GoodsUnitParam> assistUnit;
-
     /**
      * 线路分配
      */

+ 19 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillDetailVo.java

@@ -1,6 +1,7 @@
 package com.sckw.transport.model.vo;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.sckw.core.model.constant.NumberConstant;
 import lombok.Data;
 
 import java.util.List;
@@ -47,6 +48,11 @@ public class WaybillDetailVo {
      */
     private int type;
 
+    /**
+     * 运单类型
+     */
+    private String typeName;
+
     /**
      * 车辆ID
      */
@@ -57,6 +63,16 @@ public class WaybillDetailVo {
      */
     private String truckNo;
 
+    /**
+     * 车辆类型
+     */
+    private String truckType;
+
+    /**
+     * 挂车牌号
+     */
+    private String trailerNo;
+
     /**
      * 司机ID
      */
@@ -112,4 +128,7 @@ public class WaybillDetailVo {
      */
     private List<Map<String, Object>> trajectory;
 
+    public String getTypeName() {
+        return type == NumberConstant.ONE ? "趟次运单" : "循环运单";
+    }
 }

+ 5 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderSelectVo.java

@@ -8,6 +8,7 @@ import lombok.experimental.Accessors;
 import java.io.Serial;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author zk
@@ -108,22 +109,22 @@ public class WaybillOrderSelectVo implements Serializable {
     /**
      * 装货地点名称
      */
-    private String loadName;
+    private List<String> loadName;
 
     /**
      * 装货地点
      */
-    private String loadAddress;
+    private List<String> loadAddress;
 
     /**
      * 卸货地点点名称
      */
-    private String unloadName;
+    private List<String> unloadName;
 
     /**
      * 卸货地点
      */
-    private String unloadAddress;
+    private List<String> unloadAddress;
 
     /**
      * 实装量/吨

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

@@ -1277,7 +1277,7 @@ public class KwtConsignOrderService {
             put("upperlOrderId", orderId);
             put("passStatus", Global.NUMERICAL_ONE);
         }};
-        WaybillCountVo waybillOrderCount = kwtWaybillOrderMapper.findWaybillOrderCount(map);
+        //WaybillCountVo waybillOrderCount = kwtWaybillOrderMapper.findWaybillOrderCount(map);
         OrderFinishVO orderFinishVO = new OrderFinishVO();
         List<OrderGoodsLoadingVo> assistUnit = new ArrayList<>();
         //单位

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

@@ -338,16 +338,16 @@ public class KwtWaybillOrderTicketService {
     /**
      * 单证信息
      * @param subtask 运单-子单
-     * @param type 单证类型
+     * @param wAddressId 运单地址ID
      * @return 运载信息
      */
-    public List<WaybillOrderLoadingVO> agreementV1(KwtWaybillOrderSubtask subtask, int type) {
+    public List<WaybillOrderLoadingVO> agreementV1(KwtWaybillOrderSubtask subtask, Long wAddressId) {
         //运载信息
         List<WaybillOrderLoadingVO> loadLoading = new ArrayList<>();
         //单位数据字典
         Map<String, SysDictResDto> unitType = remoteSystemService.queryDictMapByType(DictTypeEnum.UNIT_TYPE.getType());
         //装载信息
-        List<KwtWaybillOrderTicket> loading = ticketMapper.findWaybillOrderTicket(subtask.getWOrderId(), subtask.getId(), type);
+        List<KwtWaybillOrderTicket> loading = ticketMapper.findWaybillOrderTicketV3(wAddressId, null);
         if (CollectionUtils.isNotEmpty(loading)) {
             loading.forEach(e -> {
                 SysDictResDto sysDict = unitType != null ? unitType.get(e.getUnit()) : null;

+ 65 - 11
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -22,6 +22,9 @@ import com.sckw.fleet.api.model.vo.RDriverVo;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
+import com.sckw.stream.enums.MessageEnum;
+import com.sckw.stream.model.SckwMessage;
+import com.sckw.stream.model.UserInfo;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
@@ -222,9 +225,14 @@ public class KwtWaybillOrderV1Service {
         List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIdList);
         Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         users.forEach(e -> usersMap.put(e.getId(), e));
+        //企业ID
+        List<Long> entIds = new ArrayList<>(){{add(waybillOrder.getEntId());}};
+        Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
         //单位
         Map<String, Map<String, String>> dict = remoteSystemService.queryDictByType(List.of(DictTypeEnum.UNIT_TYPE.getType()));
         Map<String, String> unitMap = CollectionUtils.isNotEmpty(dict) ? dict.get(DictTypeEnum.UNIT_TYPE.getType()) : new HashMap<>(NumberConstant.SIXTEEN);
+        //车辆信息
+        RTruckVo truck = remoteFleetService.findTruck(waybillOrder.getTruckId());
 
         //返回信息
         WaybillDetailVo waybillDetail = new WaybillDetailVo();
@@ -250,7 +258,8 @@ public class KwtWaybillOrderV1Service {
             addressData.put("unit", subtask.getUnit());
             addressData.put("unitName", unitMap.get(subtask.getUnit()));
             addressData.put("amount", ticket != null ? ticket.getAmount() : null);
-            addressData.put("urls", ticket != null ? ticket.getUrls() : null);
+            addressData.put("urls", ticket != null ? FileUtils.spliceBatch(ticket.getUrls()) : null);
+            addressData.put("operateStatus", ticket != null);
             addressData.put("operateTime", ticket != null ? DateUtils.format(address.getPlanTime(), DateUtils.FORMAT11) : null);
             addressList.add(addressData);
         }
@@ -260,7 +269,7 @@ public class KwtWaybillOrderV1Service {
         for (KwtWaybillOrderTrack track:tracks) {
             Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
             trackData.put("status", track.getStatus());
-            trackData.put("statusName", CarWaybillEnum.getAlias(waybillOrder.getStatus()));
+            trackData.put("statusName", CarWaybillEnum.getAlias(track.getStatus()));
             trackData.put("remark", track.getRemark());
             trackData.put("operateTime", track.getOperateTime());
             trackData.put("createTime", track.getCreateTime());
@@ -283,6 +292,9 @@ public class KwtWaybillOrderV1Service {
         waybillDetail.setStatusName(CarWaybillEnum.getName(waybillOrder.getStatus()));
         waybillDetail.setCreateByName(usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getName() : null);
         waybillDetail.setCreateByPhone(usersMap.get(waybillOrder.getCreateBy()) != null ? usersMap.get(waybillOrder.getCreateBy()).getPhone() : null);
+        waybillDetail.setTrailerNo(truck != null ? truck.getTrailerNo() : null);
+        waybillDetail.setTruckType(truck != null ? truck.getTruckType() : null);
+        waybillDetail.setFirmName(ents.get(waybillOrder.getEntId()) != null ? ents.get(waybillOrder.getEntId()).getFirmName() : null);
         waybillDetail.setTracks(trackList);
         waybillDetail.setAddresses(addressList);
         waybillDetail.setTrajectory(trajectory);
@@ -451,13 +463,13 @@ public class KwtWaybillOrderV1Service {
         //卸货时间
         Optional<KwtWaybillOrderSubtask> loadDate = subtasks.stream().min(Comparator.comparing(KwtWaybillOrderSubtask::getLoadTime));
         //装货地点名称
-        String loadName = loadAddresses.stream().map(KwtWaybillOrderAddress::getCityName).collect(Collectors.joining(", "));
+        List<String> loadName = loadAddresses.stream().map(KwtWaybillOrderAddress::getCityName).toList();
         //装货地点
-        String loadAddress = loadAddresses.stream().map(KwtWaybillOrderAddress::getDetailAddress).collect(Collectors.joining(", "));
+        List<String> loadAddress = loadAddresses.stream().map(KwtWaybillOrderAddress::getDetailAddress).toList();
         //卸货地点点名称
-        String unloadName = unloadAddresses.stream().map(KwtWaybillOrderAddress::getCityName).collect(Collectors.joining(", "));
+        List<String> unloadName = unloadAddresses.stream().map(KwtWaybillOrderAddress::getCityName).toList();
         //卸货地点
-        String unloadAddress = unloadAddresses.stream().map(KwtWaybillOrderAddress::getDetailAddress).collect(Collectors.joining(", "));
+        List<String> unloadAddress = unloadAddresses.stream().map(KwtWaybillOrderAddress::getDetailAddress).toList();
 
         //数据处理
         for (KwtWaybillOrderSubtask subtask:subtasks) {
@@ -597,7 +609,7 @@ public class KwtWaybillOrderV1Service {
         }
 
         //审核状态
-        KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrackV1(wOrderId, CarWaybillDetailEnum.IN_TRANSIT.getValue());
+        KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrackV1(wOrderId, CarWaybillDetailEnum.WAIT_APPROVAL.getValue());
         Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
         trackData.put("operateTime", track != null ? DateUtils.format(track.getOperateTime(), DateUtils.FORMAT11) : null);
         trackData.put("operateStatus", track != null);
@@ -661,6 +673,7 @@ public class KwtWaybillOrderV1Service {
                 KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
                 //数据组装
                 JSONObject addressJson = new JSONObject();
+                addressJson.put("addressType", address.getAddressType());
                 addressJson.put("addressName", address.getName());
                 addressJson.put("addressCityName", address.getCityName());
                 addressJson.put("addressDetail", address.getDetailAddress());
@@ -677,6 +690,7 @@ public class KwtWaybillOrderV1Service {
             }
 
             JSONObject order = JSON.parseObject(JSON.toJSONString(waybillOrder));
+            order.put("typeName", waybillOrder.getType() == NumberConstant.ONE ? "趟次" : "循环");
             order.put("statusName", CarWaybillEnum.getName(waybillOrder.getStatus()));
             order.put("carrierFirmName", ents.get(waybillOrder.getEntId()) != null ? ents.get(waybillOrder.getEntId()).getFirmName() : null);
             order.put("addresses", addressList);
@@ -1267,6 +1281,26 @@ public class KwtWaybillOrderV1Service {
             logisticsOrder.setEntrustAmount(entrustAmount.subtract(BigDecimal.valueOf(subtask.getEntrustAmount())));
             logisticsOrderDao.updateById(logisticsOrder);
         }
+
+        /*6发送消息**/
+        List<UserInfo> users = new ArrayList<>() {{
+            add(new UserInfo(waybillOrder.getCreateBy(), waybillOrder.getEntId()));
+        }};
+        Map<String, Object> msgParams = new HashMap<>() {{
+            put("orderNo", waybillOrder.getWOrderNo());
+            put("driverName", waybillOrder.getDriverName());
+        }};
+        SckwMessage msg = new SckwMessage();
+        msg.setRequestId(UUIDUtils.get32UUID());
+        msg.setMessageEnum(MessageEnum.WAYBILL_REFUSE_SENDCAR_TRIP);
+        msg.setParams(msgParams);
+        msg.setMsgUrls(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
+            put("app", refuseSendCarAppUrl);
+            put("pc", refuseSendCarPcUrl);
+        }});
+        msg.setUserInfos(users);
+        msg.setCreateBy(LoginUserHolder.getUserId());
+        streamBridge.send("sckw-message", JSON.toJSONString(msg));
         return HttpResult.ok();
     }
 
@@ -1375,6 +1409,26 @@ public class KwtWaybillOrderV1Service {
             logisticsOrder.setEntrustAmount(entrustAmount.subtract(BigDecimal.valueOf(subtask.getEntrustAmount())));
             logisticsOrderDao.updateById(logisticsOrder);
         }
+
+        /*6、发送消息**/
+        List<UserInfo> users = new ArrayList<>() {{
+            add(new UserInfo(waybillOrder.getCreateBy(), waybillOrder.getEntId()));
+        }};
+        Map<String, Object> msgParams = new HashMap<>() {{
+            put("orderNo", waybillOrder.getWOrderNo());
+            put("driverName", waybillOrder.getDriverName());
+        }};
+        SckwMessage msg = new SckwMessage();
+        msg.setRequestId(UUIDUtils.get32UUID());
+        msg.setMessageEnum(MessageEnum.WAYBIL_CONFIRM_DEPARTURE);
+        msg.setParams(msgParams);
+        msg.setMsgUrls(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
+            put("app", refuseSendCarAppUrl);
+            put("pc", refuseSendCarPcUrl);
+        }});
+        msg.setUserInfos(users);
+        msg.setCreateBy(LoginUserHolder.getUserId());
+        streamBridge.send("sckw-message", JSON.toJSONString(msg));
         return HttpResult.ok();
     }
 
@@ -2094,7 +2148,7 @@ public class KwtWaybillOrderV1Service {
                 //榜单信息
                 KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
                 //辅助单位
-                List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, type);
+                List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, address.getId());
 
                 Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);
                 trackData.put("wTicketId", ticket != null ? ticket.getId() : null);
@@ -2169,7 +2223,7 @@ public class KwtWaybillOrderV1Service {
         //榜单信息
         KwtWaybillOrderTicket ticket = waybillOrderTicketDao.findWaybillOrderTicketV2(address.getId(), subtask.getUnit());
         //辅助单位
-        List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, address.getAddressType());
+        List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, address.getId());
         //辅助单位
         List<GoodsUnitVo> assistUnit = kwtLogisticsOrderGoodsService.assistUnit(subtask.getLOrderId());
 
@@ -2262,9 +2316,9 @@ public class KwtWaybillOrderV1Service {
             KwtLogisticsOrderGoods goods = logisticsOrderGoodsDao.findByGoods(subtask != null ? subtask.getLOrderId() : null);
             for (Integer status:statusList) {
                 //状态记录
-                KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrack(wOrderId, null, null, status);
+                KwtWaybillOrderTrack track = waybillOrderTrackDao.findWaybillOrderTrack(wOrderId, subtask.getId(), address.getId(), status);
                 //辅助单位
-                List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, address.getAddressType());
+                List<WaybillOrderLoadingVO> loading = waybillOrderTicketService.agreementV1(subtask, track.getWAddressId());
                 //辅助单位
                 List<GoodsUnitVo> assistUnit = kwtLogisticsOrderGoodsService.assistUnit(subtask.getLOrderId());
                 Map<String, Object> trackData = new HashMap<>(NumberConstant.SIXTEEN);

+ 15 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderTicketMapper.xml

@@ -79,6 +79,21 @@
         order by update_time limit 1
     </select>
 
+    <select id="findWaybillOrderTicketV3" resultType="com.sckw.transport.model.KwtWaybillOrderTicket" >
+        select
+        id, w_order_id wOrderId, w_subtask_id wSubtaskId, w_address_id wAddressId, `type`, unit, amount,
+        gross_amount grossAmount, tare_amount tareAmount, urls, operate_time, remark, `status`, create_by createBy,
+        create_time createTime, update_by updateBy, update_time updateTime
+        from kwt_waybill_order_ticket
+        where del_flag = 0
+        <if test="wAddressId != null and wAddressId != ''">
+            and w_address_id = #{wAddressId, jdbcType=BIGINT}
+        </if>
+        <if test="unit != null and unit != ''">
+            and unit = #{unit, jdbcType=VARCHAR}
+        </if>
+    </select>
+
     <update id="deleteTicket">
         UPDATE kwt_waybill_order_ticket set del_flag = 1
         WHERE del_flag = 0