Преглед изворни кода

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

zk пре 2 година
родитељ
комит
c4b91755a9
55 измењених фајлова са 825 додато и 345 уклоњено
  1. 1 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/StringConstant.java
  2. 11 2
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java
  3. 3 0
      sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/AddressInfoDetail.java
  4. 3 0
      sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/ContractInfo.java
  5. 3 0
      sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/GoodsInfoDetailRes.java
  6. 3 0
      sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/OrderDetailRes.java
  7. 3 0
      sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/UnitInfoDetailRes.java
  8. 4 0
      sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/UpdateOrderAmountParam.java
  9. 6 1
      sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/AddressInfoDetail.java
  10. 7 1
      sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/GoodsAttributesDetail.java
  11. 5 1
      sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/GoodsDetail.java
  12. 7 1
      sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/GoodsImagesDetail.java
  13. 6 1
      sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/GoodsPriceRangesDetail.java
  14. 6 1
      sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/KwpGoods.java
  15. 5 0
      sckw-modules/sckw-example/pom.xml
  16. 12 1
      sckw-modules/sckw-example/src/main/java/com/sckw/example/controller/MessageApiController.java
  17. 2 2
      sckw-modules/sckw-example/src/main/resources/bootstrap-dev.yml
  18. 3 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/AddressInfoDetailRes.java
  19. 3 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/GoodsInfoDetailRes.java
  20. 2 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderDetailRes.java
  21. 2 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderListRes.java
  22. 3 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/UnitInfoDetailRes.java
  23. 4 4
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  24. 5 5
      sckw-modules/sckw-product/src/main/java/com/sckw/product/controller/KwpGoodsController.java
  25. 5 3
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/AddGoodsParam.java
  26. 6 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/AddressInfo.java
  27. 3 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/GoodsAttributes.java
  28. 4 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/GoodsPriceRanges.java
  29. 4 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/UpdateGoodsParam.java
  30. 97 22
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  31. 5 0
      sckw-modules/sckw-transport/pom.xml
  32. 1 55
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  33. 0 15
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwoTradeOrderAddressMapper.java
  34. 0 15
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwoTradeOrderMapper.java
  35. 1 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java
  36. 0 80
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwoTradeOrder.java
  37. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwoTradeOrderAddress.java
  38. 6 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrder.java
  39. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderAddress.java
  40. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderCirculate.java
  41. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderContract.java
  42. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderGoods.java
  43. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderSubcontract.java
  44. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderTrack.java
  45. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrderUnit.java
  46. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrder.java
  47. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderTicket.java
  48. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderTrack.java
  49. 37 6
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java
  50. 2 11
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillDetailVO.java
  51. 435 8
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  52. 96 78
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  53. 0 6
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java
  54. 0 9
      sckw-modules/sckw-transport/src/main/resources/mapper/KwoTradeOrderMapper.xml
  55. 3 0
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

+ 1 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/StringConstant.java

@@ -13,6 +13,7 @@ public final class StringConstant {
     public static final String LEFT_SEPARATORS = "//";
     public static final String RIGHT_SEPARATOR = "\\";
     public static final String COLON = ":";
+    public static final String SEMICOLON = ";";
     public static final String POINT = ".";
     public static final String COMMA=",";
     public static final String HTTP_STRING = "http";

+ 11 - 2
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java

@@ -125,12 +125,12 @@ public class SckwWaybillOrder{
 
 
     /**
-     * 装货日期
+     * 装货日期(实际装货时间)
      */
     private Date loadTime;
 
     /**
-     * 卸货日期
+     * 卸货日期(实际卸货时间)
      */
     private Date unloadTime;
 
@@ -418,5 +418,14 @@ public class SckwWaybillOrder{
      * 卸货详细地址
      */
     private String unloadingAddress;
+    /**
+     * 合理损耗
+     */
+    private BigDecimal loss;
+    /**
+     * 扣亏损值(合理损耗-(实装-实卸))
+     */
+    private BigDecimal goodsPrice;
+
 
 }

+ 3 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/AddressInfoDetail.java

@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
+import java.io.Serial;
 import java.io.Serializable;
 
 /**
@@ -16,6 +17,8 @@ import java.io.Serializable;
 @ToString
 public class AddressInfoDetail implements Serializable {
 
+    @Serial
+    private static final long serialVersionUID = -7229803070964346948L;
     /**
      * 地址类型label
      */

+ 3 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/ContractInfo.java

@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
+import java.io.Serial;
 import java.io.Serializable;
 
 /**
@@ -16,6 +17,8 @@ import java.io.Serializable;
 @ToString
 public class ContractInfo implements Serializable {
 
+    @Serial
+    private static final long serialVersionUID = -4803861633092427860L;
     /**
      * 合同id
      */

+ 3 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/GoodsInfoDetailRes.java

@@ -5,6 +5,7 @@ import lombok.Setter;
 import lombok.ToString;
 import lombok.experimental.Accessors;
 
+import java.io.Serial;
 import java.io.Serializable;
 import java.math.BigDecimal;
 
@@ -19,6 +20,8 @@ import java.math.BigDecimal;
 @Accessors(chain = true)
 public class GoodsInfoDetailRes implements Serializable {
 
+    @Serial
+    private static final long serialVersionUID = -6117752651158804867L;
     /**
      * 商品类型label
      */

+ 3 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/OrderDetailRes.java

@@ -6,6 +6,7 @@ import lombok.Setter;
 import lombok.ToString;
 import lombok.experimental.Accessors;
 
+import java.io.Serial;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -22,6 +23,8 @@ import java.util.List;
 @Accessors(chain = true)
 public class OrderDetailRes implements Serializable {
 
+    @Serial
+    private static final long serialVersionUID = -2951319997472302360L;
     /**
      * 订单id
      */

+ 3 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/UnitInfoDetailRes.java

@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
+import java.io.Serial;
 import java.io.Serializable;
 
 /**
@@ -16,6 +17,8 @@ import java.io.Serializable;
 @ToString
 public class UnitInfoDetailRes implements Serializable {
 
+    @Serial
+    private static final long serialVersionUID = 6017070445159402080L;
     /**
      * 单位类型label
      */

+ 4 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/UpdateOrderAmountParam.java

@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
+import java.io.Serial;
 import java.io.Serializable;
 import java.math.BigDecimal;
 
@@ -17,6 +18,9 @@ import java.math.BigDecimal;
 @ToString
 public class UpdateOrderAmountParam implements Serializable {
 
+    @Serial
+    private static final long serialVersionUID = 6845967309303678160L;
+
     /**
      * 订单id
      */

+ 6 - 1
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/AddressInfoDetail.java

@@ -4,6 +4,9 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
+import java.io.Serial;
+import java.io.Serializable;
+
 /**
  * @desc: 地址详情响应
  * @author: yzc
@@ -12,8 +15,10 @@ import lombok.ToString;
 @Getter
 @Setter
 @ToString
-public class AddressInfoDetail {
+public class AddressInfoDetail implements Serializable {
 
+    @Serial
+    private static final long serialVersionUID = 5749966288335891456L;
     private Long id;
 
     /**

+ 7 - 1
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/GoodsAttributesDetail.java

@@ -4,6 +4,9 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
+import java.io.Serial;
+import java.io.Serializable;
+
 /**
  * @desc: 添加商品属性
  * @author: yzc
@@ -12,7 +15,10 @@ import lombok.ToString;
 @Getter
 @Setter
 @ToString
-public class GoodsAttributesDetail {
+public class GoodsAttributesDetail implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -1280589884405792222L;
 
     private Long id;
 

+ 5 - 1
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/GoodsDetail.java

@@ -6,6 +6,8 @@ import lombok.Setter;
 import lombok.ToString;
 import lombok.experimental.Accessors;
 
+import java.io.Serial;
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
@@ -19,8 +21,10 @@ import java.util.List;
 @Setter
 @ToString
 @Accessors(chain = true)
-public class GoodsDetail {
+public class GoodsDetail implements Serializable {
 
+    @Serial
+    private static final long serialVersionUID = 8591441505622156556L;
     /**
      * 商品id
      */

+ 7 - 1
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/GoodsImagesDetail.java

@@ -4,6 +4,9 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
+import java.io.Serial;
+import java.io.Serializable;
+
 /**
  * @desc: 商品图片
  * @author: yzc
@@ -12,8 +15,11 @@ import lombok.ToString;
 @Getter
 @Setter
 @ToString
-public class GoodsImagesDetail {
+public class GoodsImagesDetail implements Serializable {
+
 
+    @Serial
+    private static final long serialVersionUID = 5330167246596919833L;
 
     private Long id;
 

+ 6 - 1
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/GoodsPriceRangesDetail.java

@@ -4,6 +4,8 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
+import java.io.Serial;
+import java.io.Serializable;
 import java.math.BigDecimal;
 
 /**
@@ -14,7 +16,10 @@ import java.math.BigDecimal;
 @Getter
 @Setter
 @ToString
-public class GoodsPriceRangesDetail {
+public class GoodsPriceRangesDetail implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 2081801564635066851L;
 
     private Long id;
 

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

@@ -8,6 +8,8 @@ import lombok.Setter;
 import lombok.ToString;
 import lombok.experimental.Accessors;
 
+import java.io.Serial;
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -21,7 +23,10 @@ import java.util.Date;
 @ToString
 @Accessors(chain = true)
 @TableName("kwp_goods")
-public class KwpGoods extends BaseModel {
+public class KwpGoods extends BaseModel implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -1228344082225456066L;
 
     /**
      * 企业id

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

@@ -88,6 +88,11 @@
             <artifactId>sckw-message-api</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-order-api</artifactId>
+        </dependency>
+
         <!--junit-->
         <dependency>
             <groupId>junit</groupId>

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

@@ -2,6 +2,8 @@ package com.sckw.example.controller;
 
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.message.api.dubbo.SmsInfoService;
+import com.sckw.order.api.dubbo.TradeOrderInfoService;
+import com.sckw.order.api.model.OrderDetailRes;
 import lombok.RequiredArgsConstructor;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -9,7 +11,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
- * @desc: TODO
+ * @desc: 测试
  * @author: yzc
  * @date: 2023-06-13 14:20
  */
@@ -20,9 +22,18 @@ public class MessageApiController {
     @DubboReference(version = "2.0.0", group = "design", check = false)
     private SmsInfoService smsInfoService;
 
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    private TradeOrderInfoService tradeOrderInfoService;
+
     @GetMapping("/getVerifyCode")
     public HttpResult getVerifyCode() {
         String verifyCode = smsInfoService.getVerifyCode("17780832879");
         return HttpResult.ok("获取验证码成功", verifyCode);
     }
+
+    @GetMapping("/getOrderDetail")
+    public HttpResult getOrderDetail() {
+        OrderDetailRes orderDetailById = tradeOrderInfoService.getOrderDetailById(162213167693303808L);
+        return HttpResult.ok("获取订单详情成功", orderDetailById);
+    }
 }

+ 2 - 2
sckw-modules/sckw-example/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
         #可以读多个配置文件  需要在同一个命名空间下面可以是不同的组

+ 3 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/AddressInfoDetailRes.java

@@ -5,6 +5,8 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
+import java.io.Serializable;
+
 /**
  * @desc: 地址信息详情
  * @author: yzc
@@ -13,7 +15,7 @@ import lombok.ToString;
 @Getter
 @Setter
 @ToString
-public class AddressInfoDetailRes extends AddressInfo {
+public class AddressInfoDetailRes extends AddressInfo implements Serializable {
 
     /**
      * 地址类型label

+ 3 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/GoodsInfoDetailRes.java

@@ -6,6 +6,8 @@ import lombok.Setter;
 import lombok.ToString;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+
 /**
  * @desc: 商品信息详情响应
  * @author: yzc
@@ -15,7 +17,7 @@ import lombok.experimental.Accessors;
 @Setter
 @ToString
 @Accessors(chain = true)
-public class GoodsInfoDetailRes extends GoodsInfo {
+public class GoodsInfoDetailRes extends GoodsInfo implements Serializable {
 
     /**
      * 商品类型label

+ 2 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderDetailRes.java

@@ -7,6 +7,7 @@ import lombok.Setter;
 import lombok.ToString;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.List;
@@ -20,7 +21,7 @@ import java.util.List;
 @Setter
 @ToString
 @Accessors(chain = true)
-public class OrderDetailRes {
+public class OrderDetailRes implements Serializable {
 
     /**
      * 订单id

+ 2 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderListRes.java

@@ -5,6 +5,7 @@ import lombok.Setter;
 import lombok.ToString;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
 import java.math.BigDecimal;
 
 /**
@@ -16,7 +17,7 @@ import java.math.BigDecimal;
 @Setter
 @ToString
 @Accessors(chain = true)
-public class OrderListRes {
+public class OrderListRes implements Serializable {
 
     /**
      * 订单id

+ 3 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/UnitInfoDetailRes.java

@@ -5,6 +5,8 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 
+import java.io.Serializable;
+
 /**
  * @desc: 单位信息详情
  * @author: yzc
@@ -13,7 +15,7 @@ import lombok.ToString;
 @Getter
 @Setter
 @ToString
-public class UnitInfoDetailRes extends UnitInfo {
+public class UnitInfoDetailRes extends UnitInfo implements Serializable {
 
     /**
      * 单位类型label

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

@@ -240,12 +240,12 @@ public class KwoTradeOrderService {
         if (Objects.isNull(goods) || !Objects.equals(goods.getStatus(), 1)) {
             throw new BusinessException("商品不存在或已下架!");
         }
+        if (goods.getAmount().compareTo(amount) < 0) {
+            throw new BusinessException("商品库存不足,请联系供应方!");
+        }
         //受理订单不校验预付款限额
         if (!isAcceptanceOrder && Objects.equals(trading, DictEnum.TRADE_TYPE_0.getValue()) && price.compareTo(goods.getAdvancePrice()) < 0) {
-            throw new BusinessException("采购订单金额不能小于商品最低预付款限额!");
-        }
-        if (goods.getAmount().compareTo(amount) < 0) {
-            throw new BusinessException("商品库存量小于采购数量!");
+            throw new BusinessException("您的订单总额未达到预付限额,请确认");
         }
     }
 

+ 5 - 5
sckw-modules/sckw-product/src/main/java/com/sckw/product/controller/KwpGoodsController.java

@@ -123,16 +123,16 @@ public class KwpGoodsController {
 
 
     /**
-     * @desc: 批量上架
+     * @desc: 单个上架
      * @author: yzc
      * @date: 2023-07-06 8:56
-     * @Param ids:
+     * @Param id:
      * @return: com.sckw.core.web.response.HttpResult
      */
     @GetMapping("/batchPutOnShelves")
-    public HttpResult batchPutOnShelves(@RequestParam List<Long> ids) {
-        kwpGoodsService.batchPutOnShelves(ids);
-        return HttpResult.ok("批量上架成功");
+    public HttpResult batchPutOnShelves(@RequestParam Long id) {
+        kwpGoodsService.batchPutOnShelves(id);
+        return HttpResult.ok("上架成功");
     }
 
     /**

+ 5 - 3
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/AddGoodsParam.java

@@ -1,9 +1,7 @@
 package com.sckw.product.model.vo.req;
 
 import jakarta.validation.Valid;
-import jakarta.validation.constraints.NotEmpty;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
+import jakarta.validation.constraints.*;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -26,6 +24,7 @@ public class AddGoodsParam {
      * 商品名称
      */
     @NotBlank(message = "商品名称不能为空")
+    @Length(max = 100, message = "商品名称最多支持100字")
     private String name;
 
     /**
@@ -50,6 +49,7 @@ public class AddGoodsParam {
      * 库存数量
      */
     @NotNull(message = "库存数量不能为空")
+    @DecimalMin(value = "0.00",message = "库存数量最小为零")
     private BigDecimal amount;
 
     /**
@@ -62,6 +62,7 @@ public class AddGoodsParam {
      * 发票税率(%)
      */
     @NotNull(message = "发票税率不能为空")
+    @DecimalMin(value = "0.00",message = "发票税率最小为零")
     private BigDecimal taxRate;
 
     /**
@@ -73,6 +74,7 @@ public class AddGoodsParam {
     /**
      * 预付款最低限额(万元)
      */
+    @DecimalMin(value = "0.00",message = "预付款最低限额最小为零")
     private BigDecimal advancePrice;
 
     /**

+ 6 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/AddressInfo.java

@@ -1,10 +1,12 @@
 package com.sckw.product.model.vo.req;
 
 import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Pattern;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 import org.apache.logging.log4j.core.config.plugins.validation.constraints.NotBlank;
+import org.hibernate.validator.constraints.Length;
 
 /**
  * @desc: 地址信息
@@ -20,6 +22,7 @@ public class AddressInfo {
      * 地址名称
      */
     @NotBlank(message = "地址名称不能为空")
+    @Length(max = 60,message = "地址名称最长60字符")
     private String name;
 
     /**
@@ -38,6 +41,7 @@ public class AddressInfo {
      * 联系电话
      */
     @NotBlank(message = "联系电话不能为空")
+    @Pattern(regexp = "^1[3456789]\\d{9}$", message = "非法手机号格式")
     private String phone;
 
     /**
@@ -50,12 +54,14 @@ public class AddressInfo {
      * 所属区域名称
      */
     @NotBlank(message = "所属区域名称不能为空")
+    @Length(max = 40,message = "所属区域名称最长40字符")
     private String cityName;
 
     /**
      * 详细地址
      */
     @NotBlank(message = "详细地址不能为空")
+    @Length(max = 40,message = "详细地址最长40字符")
     private String detailAddress;
 
     /**

+ 3 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/GoodsAttributes.java

@@ -3,6 +3,7 @@ package com.sckw.product.model.vo.req;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
+import org.hibernate.validator.constraints.Length;
 
 /**
  * @desc: 添加商品属性
@@ -17,10 +18,12 @@ public class GoodsAttributes {
     /**
      * 参数名称
      */
+    @Length(max = 40,message = "参数名称最长40字符")
     private String name;
 
     /**
      * 参数值
      */
+    @Length(max = 40,message = "参数值最长40字符")
     private String val;
 }

+ 4 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/GoodsPriceRanges.java

@@ -1,5 +1,6 @@
 package com.sckw.product.model.vo.req;
 
+import jakarta.validation.constraints.DecimalMin;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
@@ -20,18 +21,21 @@ public class GoodsPriceRanges {
      * 起售量
      */
     @NotNull(message = "起售量不能为空")
+    @DecimalMin(value = "0.00",message = "起售量最小为零")
     private BigDecimal startAmount;
 
     /**
      * 上限售量
      */
     @NotNull(message = "上限售量不能为空")
+    @DecimalMin(value = "-1.00",message = "上限售量最小为零")
     private BigDecimal endAmount;
 
     /**
      * 含税价
      */
     @NotNull(message = "含税价不能为空")
+    @DecimalMin(value = "0.00", message = "含税价最低为零")
     private BigDecimal price;
 
     /**

+ 4 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/UpdateGoodsParam.java

@@ -1,5 +1,6 @@
 package com.sckw.product.model.vo.req;
 
+import jakarta.validation.constraints.DecimalMin;
 import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Size;
 import lombok.Getter;
@@ -29,6 +30,7 @@ public class UpdateGoodsParam {
     /**
      * 商品名称
      */
+    @Length(max = 100, message = "商品名称最多支持100字")
     private String name;
 
     /**
@@ -49,6 +51,7 @@ public class UpdateGoodsParam {
     /**
      * 库存数量
      */
+    @DecimalMin(value = "0.00",message = "库存数量最小为零")
     private BigDecimal amount;
 
     /**
@@ -60,6 +63,7 @@ public class UpdateGoodsParam {
     /**
      * 发票税率(%)
      */
+    @DecimalMin(value = "0.00",message = "发票税率最小为零")
     private BigDecimal taxRate;
 
     /**

+ 97 - 22
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -34,11 +34,12 @@ import org.jetbrains.annotations.NotNull;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
 /**
- * @desc: 商品service TODO
+ * @desc: 商品service
  * @author: yzc
  * @date: 2023-06-25 14:47
  */
@@ -159,14 +160,14 @@ public class KwpGoodsService {
      * @Param id:
      * @return: com.sckw.product.model.vo.res.GoodsDetail
      */
-    public GoodsDetail detail(Long id,Boolean isDubbo) {
+    public GoodsDetail detail(Long id, Boolean isDubbo) {
         KwpGoods goods;
         if (isDubbo) {
             goods = kwpGoodsMapper.selectById(id);
             if (Objects.isNull(goods)) {
                 return null;
             }
-        }else {
+        } else {
             goods = getGoodsById(id);
             if (Objects.isNull(goods)) {
                 throw new BusinessException("当前商品信息为空!");
@@ -293,8 +294,8 @@ public class KwpGoodsService {
      * @return: void
      */
     private void judgeParameters(@NotNull UpdateGoodsParam param) {
-        if (StringUtils.isBlank(param.getName())) {
-            throw new BusinessException("商品名称不能为空!");
+        if (StringUtils.isBlank(param.getName()) || param.getName().length() > 100) {
+            throw new BusinessException("商品名称不能为空且最长100字符!");
         }
         if (StringUtils.isBlank(param.getGoodsType())) {
             throw new BusinessException("商品类型不能为空!");
@@ -305,8 +306,8 @@ public class KwpGoodsService {
         if (StringUtils.isBlank(param.getSpec())) {
             throw new BusinessException("规格尺寸不能为空!");
         }
-        if (Objects.isNull(param.getAmount())) {
-            throw new BusinessException("库存数量不能为空!");
+        if (Objects.isNull(param.getAmount()) || param.getAmount().compareTo(BigDecimal.ZERO) < 0) {
+            throw new BusinessException("库存数量不能为空且最小为零!");
         }
         if (Objects.isNull(param.getTaxRate())) {
             throw new BusinessException("发票税率不能为空!");
@@ -317,22 +318,84 @@ public class KwpGoodsService {
         if (Objects.equals(param.getTrading(), DictEnum.TRADE_TYPE_0.getValue()) && Objects.isNull(param.getAdvancePrice())) {
             throw new BusinessException("交易方式为预付款时,预付款最低限额不能为空!");
         }
-        if (CollectionUtils.isEmpty(param.getPriceRanges())) {
+
+        List<GoodsAttributes> attributes = param.getAttributes();
+        if (CollectionUtils.isNotEmpty(attributes)) {
+            attributes.forEach(e -> {
+                if (StringUtils.isBlank(e.getName()) || e.getName().length() > 40) {
+                    throw new BusinessException("参数名称不能为空且最长40字符!");
+                }
+                if (StringUtils.isBlank(e.getVal()) || e.getVal().length() > 40) {
+                    throw new BusinessException("参数值不能为空且最长40字符!");
+                }
+            });
+        }
+        List<GoodsImages> images = param.getImages();
+        if (CollectionUtils.isNotEmpty(images)) {
+            images.forEach(e -> {
+                if (StringUtils.isBlank(e.getImage())) {
+                    throw new BusinessException("商品图片地址不能为空!");
+                }
+                if (Objects.isNull(e.getSort())) {
+                    throw new BusinessException("商品图片排序不能为空!");
+                }
+            });
+        }
+        List<GoodsPriceRanges> priceRanges = param.getPriceRanges();
+        if (CollectionUtils.isEmpty(priceRanges)) {
             throw new BusinessException("价格梯度不能为空!");
         }
+        priceRanges.forEach(e -> {
+            if (Objects.isNull(e.getStartAmount()) || e.getStartAmount().compareTo(BigDecimal.ZERO) < 0) {
+                throw new BusinessException("起售量最小为零!");
+            }
+            if (Objects.isNull(e.getEndAmount()) || e.getEndAmount().compareTo(new BigDecimal("-1.00")) < 0) {
+                throw new BusinessException("上限售量最小为零!");
+            }
+            if (Objects.isNull(e.getPrice()) || e.getStartAmount().compareTo(BigDecimal.ZERO) < 0) {
+                throw new BusinessException("含税价最低为零!");
+            }
+            if (Objects.isNull(e.getSort())) {
+                throw new BusinessException("梯度顺序不能为空!");
+            }
+        });
+        AddressInfo address = param.getAddressInfo();
+        if (Objects.isNull(address)) {
+            throw new BusinessException("地址信息不能为空!");
+        }
+        if (StringUtils.isBlank(address.getName()) || address.getName().length() > 60) {
+            throw new BusinessException("参数名称不能为空且最长60字符!");
+        }
+        if (StringUtils.isBlank(address.getType())) {
+            throw new BusinessException("地址类型不能为空!");
+        }
+        if (StringUtils.isBlank(address.getContacts())) {
+            throw new BusinessException("联系人不能为空!");
+        }
+        if (StringUtils.isBlank(address.getPhone())) {
+            throw new BusinessException("联系电话不能为空!");
+        }
+        if (Objects.isNull(address.getCityCode())) {
+            throw new BusinessException("所在地区code不能为空!");
+        }
+        if (StringUtils.isBlank(address.getCityName()) || address.getCityName().length() > 40) {
+            throw new BusinessException("所属区域名称不能为空最长40字符!");
+        }
+        if (Objects.isNull(address.getLat())) {
+            throw new BusinessException("纬度不能为空!");
+        }
+        if (Objects.isNull(address.getLng())) {
+            throw new BusinessException("经度不能为空!");
+        }
         if (Objects.isNull(param.getSupplyEntId())) {
             throw new BusinessException("供应企业不能为空!");
         }
-        if (Objects.isNull(param.getAddressInfo())) {
-            throw new BusinessException("地址信息不能为空!");
-        }
         if (Objects.isNull(param.getManager())) {
             throw new BusinessException("客户经理不能为空!");
         }
-        if (StringUtils.isBlank(param.getAmount())) {
-            throw new BusinessException("商品缩略图不能为空!");
+        if (StringUtils.isNotBlank(param.getRemark()) && param.getRemark().length() > 200) {
+            throw new BusinessException("备注最多支持200字!");
         }
-
     }
 
     /**
@@ -487,23 +550,35 @@ public class KwpGoodsService {
      * @desc: 批量上架
      * @author: yzc
      * @date: 2023-07-06 8:56
-     * @Param ids:
+     * @Param id:
      * @return: void
      */
-    public void batchPutOnShelves(List<Long> ids) {
+    public void batchPutOnShelves(Long id) {
         LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
-        wrapper.in(KwpGoods::getId, ids).in(KwpGoods::getStatus, 0, 2)
-                .eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO);
-        List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
-        if (!Objects.equals(ids.size(), list.size())) {
-            throw new BusinessException("上架操作仅针对“已下架”“草稿”状态的单据");
+        wrapper.eq(KwpGoods::getId, id).eq(KwpGoods::getEntId, LoginUserHolder.getEntId())
+                .eq(KwpGoods::getDelFlag, Global.NO).last("LIMIT 1");
+        KwpGoods goods = kwpGoodsMapper.selectOne(wrapper);
+        if (Objects.isNull(goods)) {
+            throw new BusinessException("商品不存在!");
+        }
+        if (Objects.equals(GoodsStatusEnum.PUT_ON_SHELVES.getCode(), goods.getStatus())) {
+            throw new BusinessException("上架操作仅针对“已下架”“草稿”状态的单据!");
+        }
+        if (Objects.equals(GoodsStatusEnum.SAVED.getCode(), goods.getStatus())) {
+            UpdateGoodsParam updateParam = BeanUtils.copyProperties(goods, UpdateGoodsParam.class);
+            updateParam.setAttributes(BeanUtils.copyToList(kwpGoodsAttributeService.getByGoodsId(id), GoodsAttributes.class));
+            updateParam.setPriceRanges(BeanUtils.copyToList(kwpGoodsPriceRangeService.getByGoodsId(id), GoodsPriceRanges.class));
+            updateParam.setImages(BeanUtils.copyToList(kwpGoodsImageService.getByGoodsId(id), GoodsImages.class));
+            updateParam.setAddressInfo(BeanUtils.copyProperties(kwpGoodsAddressService.getByGoodsId(id), AddressInfo.class));
+            judgeParameters(updateParam);
         }
         LambdaUpdateWrapper<KwpGoods> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.set(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode()).set(KwpGoods::getAddedTime, new Date())
-                .in(KwpGoods::getId, ids);
+                .eq(KwpGoods::getId, id);
         kwpGoodsMapper.update(null, updateWrapper);
     }
 
+
     /**
      * @desc: 批量下架
      * @author: yzc

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

@@ -86,6 +86,11 @@
             <version>1.0.0</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-order-api</artifactId>
+        </dependency>
+
         <!-- validation -->
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 1 - 55
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

@@ -1,17 +1,11 @@
 package com.sckw.transport.controller;
 
-import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.excel.easyexcel.RequestHolder;
-import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.transport.model.dto.OrderTakingDTO;
 import com.sckw.transport.model.dto.SendCarDTO;
-import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
 import com.sckw.transport.model.param.LogisticsConsignmentParam;
-import com.sckw.transport.model.vo.ConsignOrderVO;
 import com.sckw.transport.service.AcceptCarriageOrderService;
-import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.annotations.Param;
@@ -22,8 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
-
 /**
  * @author lfdc
  * @description 承运订单controller
@@ -38,51 +30,6 @@ public class AcceptCarriageOrderController {
     @Autowired
     AcceptCarriageOrderService acceptCarriageOrderService;
 
-    /**
-     * 承运订单首页条件查询
-     * @param query 查询参数
-     * @return
-     */
-    @RequestMapping(value = "/list", method = RequestMethod.GET)
-    public HttpResult acceptCarriageOrderList(AcceptCarriageOrderQuery query) {
-        try {
-            return acceptCarriageOrderService.list(query);
-        } catch (Exception e) {
-            log.error("承运订单查询失败:{}", e.getMessage(), e);
-            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
-        }
-    }
-
-    /**
-     * 承运订单首页统计查询
-     * @return
-     */
-    @RequestMapping(value = "/statistics", method = RequestMethod.GET)
-    public HttpResult acceptCarriageOrderCount(AcceptCarriageOrderQuery query) {
-        try {
-            return acceptCarriageOrderService.count(query);
-        } catch (Exception e) {
-            log.error("承运订单首页统计查询:{}", e.getMessage(), e);
-            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
-        }
-    }
-
-    /**
-     * 承运订单导出
-     * @param query
-     * @return
-     */
-    @RequestMapping(value = "/export", method = RequestMethod.GET)
-    public HttpResult export(AcceptCarriageOrderQuery query) {
-        HttpServletResponse response = RequestHolder.getResponse();
-        List list = acceptCarriageOrderService.export(query);
-        if (CollectionUtils.isNotEmpty(list)){
-            ExcelUtil.download(response, ConsignOrderVO.class, list);
-            return HttpResult.ok();
-        }
-        return HttpResult.error("没有可导出的数据");
-    }
-
     /**
      * 承运订单-接单
      * @param orderDTO
@@ -131,8 +78,7 @@ public class AcceptCarriageOrderController {
     @RequestMapping(value = "/getWaybillData", method = RequestMethod.GET)
     public HttpResult getWaybillData(@Param("wOrderId") String wOrderId) {
         try {
-//            return acceptCarriageOrderService.getWaybillData(wOrderId);
-            return null;
+            return acceptCarriageOrderService.getWaybillData(wOrderId);
         } catch (Exception e) {
             log.error("承运订单-获取运单详情 error:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());

+ 0 - 15
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwoTradeOrderAddressMapper.java

@@ -1,15 +0,0 @@
-package com.sckw.transport.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.sckw.transport.model.KwoTradeOrderAddress;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @desc: 交易订单装卸货地址信息mapper
- * @author: yzc
- * @date: 2023-06-25 14:18
- */
-@Mapper
-public interface KwoTradeOrderAddressMapper extends BaseMapper<KwoTradeOrderAddress> {
-
-}

+ 0 - 15
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwoTradeOrderMapper.java

@@ -1,15 +0,0 @@
-package com.sckw.transport.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.sckw.transport.model.KwoTradeOrder;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @desc: 交易订单(采购订单/销售订单)mapper
- * @author: yzc
- * @date: 2023-06-25 14:18
- */
-@Mapper
-public interface KwoTradeOrderMapper extends BaseMapper<KwoTradeOrder> {
-
-}

+ 1 - 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.vo.WaybillDetailVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 

+ 0 - 80
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwoTradeOrder.java

@@ -1,80 +0,0 @@
-package com.sckw.transport.model;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.sckw.core.model.base.BaseModel;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-import lombok.experimental.Accessors;
-
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-
-/**
- * @desc: 交易订单(采购订单/销售订单)
- * @author: yzc
- * @date: 2023-06-25 9:31
- */
-@Getter
-@Setter
-@ToString
-@Accessors(chain = true)
-@TableName("sckw_order.kwo_trade_order")
-public class KwoTradeOrder extends BaseModel {
-
-    /**
-     * 订单编号
-     */
-    private String tOrderNo;
-
-    /**
-     * 货物数量
-     */
-    private BigDecimal amount;
-
-    /**
-     * 单位(吨、方、件、箱、其他)
-     */
-    private String unit;
-
-    /**
-     * 价格
-     */
-    private BigDecimal price;
-
-    /**
-     * 交易方式(预付款、货到付款)
-     */
-    private Long trading;
-
-    /**
-     * 提货方式(采方自提、供应配送)
-     */
-    private Long pickupType;
-
-    /**
-     * 计划开始日期
-     */
-    private LocalDateTime startTime;
-
-    /**
-     * 计划结束日期
-     */
-    private LocalDateTime endTime;
-
-    /**
-     * 已委托量
-     */
-    private BigDecimal entrustAmount;
-
-    /**
-     * 实际交付量
-     */
-    private BigDecimal actualAmount;
-
-    /**
-     * 订单创建来源类型(采购下单/销售代客下单)
-     */
-    private Integer source;
-
-}

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

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
 @Setter
 @ToString
 @Accessors(chain = true)
-@TableName("sckw_order.kwo_trade_order_address")
+@TableName("kwo_trade_order_address")
 public class KwoTradeOrderAddress extends BaseModel {
 
     /**

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

@@ -14,7 +14,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_logistics_order")
+@TableName("kwt_logistics_order")
 public class KwtLogisticsOrder implements Serializable {
     /**
      * 主键
@@ -46,6 +46,11 @@ public class KwtLogisticsOrder implements Serializable {
      */
     private Long pid;
 
+    /**
+     * 分包所有物流订单id
+     */
+    private String pids;
+
     /**
      * 结算周期(周结、月结、季结)
      */

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

@@ -13,7 +13,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_logistics_order_address")
+@TableName("kwt_logistics_order_address")
 public class KwtLogisticsOrderAddress implements Serializable {
     /**
      * 主键

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

@@ -15,7 +15,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_logistics_order_circulate")
+@TableName("kwt_logistics_order_circulate")
 public class KwtLogisticsOrderCirculate implements Serializable {
     /**
      * 主键

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

@@ -13,7 +13,7 @@ import java.util.Date;
  * @date 2023-07-06 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_logistics_order_contract")
+@TableName("kwt_logistics_order_contract")
 public class KwtLogisticsOrderContract implements Serializable {
     /**
      * 主键

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

@@ -14,7 +14,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_logistics_order_goods")
+@TableName("kwt_logistics_order_goods")
 public class KwtLogisticsOrderGoods implements Serializable {
     /**
      * 主键

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

@@ -13,7 +13,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-//@TableName("sckw_transport.kwt_logistics_order_address")
+//@TableName("kwt_logistics_order_address")
 public class KwtLogisticsOrderSubcontract implements Serializable {
     /**
      * 主键

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

@@ -14,7 +14,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_logistics_order_track")
+@TableName("kwt_logistics_order_track")
 public class KwtLogisticsOrderTrack implements Serializable {
     /**
      * 主键

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

@@ -16,7 +16,7 @@ import java.util.Date;
  */
 @Data
 @Accessors(chain = true)
-@TableName("sckw_transport.kwt_logistics_order_unit")
+@TableName("kwt_logistics_order_unit")
 public class KwtLogisticsOrderUnit implements Serializable {
     /**
      * 主键

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

@@ -15,7 +15,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_waybill_order")
+@TableName("kwt_waybill_order")
 public class KwtWaybillOrder implements Serializable {
     /**
      * 主键

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

@@ -14,7 +14,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_waybill_order_ticket")
+@TableName("kwt_waybill_order_ticket")
 public class KwtWaybillOrderTicket implements Serializable {
     /**
      * 主键

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

@@ -13,7 +13,7 @@ import java.util.Date;
  * @date 2023-06-26 16:06:12
  */
 @Data
-@TableName("sckw_transport.kwt_waybill_order_track")
+@TableName("kwt_waybill_order_track")
 public class KwtWaybillOrderTrack implements Serializable {
     /**
      * 主键

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

@@ -6,6 +6,7 @@ import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.experimental.Accessors;
+import org.hibernate.validator.constraints.Length;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
@@ -19,6 +20,10 @@ import java.util.Date;
 @Data
 @Accessors(chain = true)
 public class LogisticsConsignmentParam {
+    /**
+     *总量
+     */
+    private Long amount;
     /**
      * 分配承运量
      */
@@ -42,15 +47,18 @@ public class LogisticsConsignmentParam {
     /**
      * 联系电话
      */
+    @NotNull(message = "托运联系电话不能为空")
     private String checkContactPhone;
     /**
      * 联系人
      */
+    @NotNull(message = "托运联系人不能为空")
     private String checkContacts;
 
     /**
      * 合理损耗
      */
+    @NotNull(message = "合理损耗不能为空")
     private Long loss;
     /**
      * 合理损耗单位
@@ -60,6 +68,7 @@ public class LogisticsConsignmentParam {
     /**
      * 商品价值(扣亏货值)
      */
+    @NotNull(message = "扣亏货值不能为空")
     private Long goodsPrice;
     /**
      * 商品价值(扣亏货值)单位
@@ -80,32 +89,35 @@ public class LogisticsConsignmentParam {
     /**
      * 联系电话
      */
+    @NotNull(message = "承运联系电话不能为空")
     private String consignContactPhone;
     /**
      * 联系人
      */
+    @NotNull(message = "承运联系人不能为空")
     private String consignContacts;
 
     /**
      * 结算周期(周结、月结、季结)
      */
+    @NotNull(message = "结算周期不能为空")
     private Long settlementCycle;
-    /**
-     * 合同
-     */
-    private String contract;
+
     /**
      * 合同id
      */
+    @NotNull(message = "合同id不能为空")
     private String contractId;
     /**
      * 合同编号
      */
+    @NotNull(message = "合同编号不能为空")
     private String contractNo;
 
     /**
      * 合同名称
      */
+    @NotNull(message = "合同名称不能为空")
     private String contractName;
 
     /**
@@ -116,6 +128,7 @@ public class LogisticsConsignmentParam {
     /**
      * 货物名称
      */
+    @NotNull(message = "货物名称不能为空")
     private String goodsName;
 
     /**
@@ -134,15 +147,27 @@ public class LogisticsConsignmentParam {
     @NotNull(message = "是否全量不能为空")
     private Boolean isFullDose;
     /**
-     * 订单id
+     * 订单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;
     /**
      * 运价
      */
@@ -151,30 +176,36 @@ public class LogisticsConsignmentParam {
     /**
      * 运价方式
      */
+    @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 = 400,message = "单据编号长度错误最大长度:{max}")
     private String remark;
     /**
      * 计费方式
      */
+    @NotNull(message = "计费方式不能为空")
     private String billingMode;
 
 }

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

@@ -25,11 +25,11 @@ public class WaybillDetailVO {
      */
     private BigDecimal unloadAmount;
     /**
-     * 装货时间
+     * 实际装货时间
      */
     private Date stowageDateTime;
     /**
-     * 卸货时间
+     * 实际卸货时间
      */
     private Date unloadDateTime;
     /**
@@ -73,14 +73,5 @@ public class WaybillDetailVO {
      */
     private Date endTime;
 
-    /**
-     * 计划开始时间
-     */
-    private Date loadTime;
-    /**
-     * 计划结束时间
-     */
-    private Date unloadTime;
-
 }
 

+ 435 - 8
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -1,5 +1,6 @@
 package com.sckw.transport.service;
 
+import cn.hutool.core.util.ArrayUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -7,6 +8,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 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.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
@@ -16,7 +19,13 @@ import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
 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;
@@ -24,7 +33,6 @@ 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.OrderDTO;
 import com.sckw.transport.model.dto.OrderTakingDTO;
 import com.sckw.transport.model.dto.SendCarDTO;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
@@ -32,11 +40,13 @@ 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 jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.stream.function.StreamBridge;
+import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
@@ -55,8 +65,13 @@ import java.util.List;
 @Service
 public class AcceptCarriageOrderService {
 
-    @DubboReference(version = "2.0.0", group = "design", check = false)
+    @DubboReference(version = "2.0.0", group = "design", check = false, timeout = 8000)
     RemoteSystemService remoteSystemService;
+    @DubboReference(version = "2.0.0", group = "design", check = false, timeout = 8000)
+    TradeOrderInfoService tradeOrderInfoService;
+
+    @DubboReference(version = "2.0.0", group = "design", check = false, timeout = 8000)
+    GoodsInfoService goodsInfoService;
 
     @Resource
     private StreamBridge streamBridge;
@@ -76,9 +91,27 @@ public class AcceptCarriageOrderService {
     @Autowired
     private KwtWaybillOrderTicketMapper waybillOrderTicketMapper;
 
+    @Autowired
+    public KwtLogisticsOrderGoodsMapper kwtLogisticsOrderGoodsMapper;
+
+    @Autowired
+    public KwtLogisticsOrderContractMapper kwtLogisticsOrderContractMapper;
+
+    @Autowired
+    public KwtLogisticsOrderMapper kwtLogisticsOrderMapper;
+
     @Autowired
     private KwtLogisticsOrderCirculateMapper logisticsOrderCirculateMapper;
 
+    @Autowired
+    private KwtLogisticsOrderAddressMapper logisticsOrderAddressMapper;
+
+    @Autowired
+    public KwtLogisticsOrderUnitMapper logisticsOrderUnitMapper;
+
+    @Autowired
+    private MongoTemplate mongoTemplate;
+
     public HttpResult list(AcceptCarriageOrderQuery query) {
         List<AcceptCarriageOrderVO> list = new ArrayList<>();
         AcceptCarriageOrderVO acceptCarriageOrderVo = new AcceptCarriageOrderVO();
@@ -100,20 +133,386 @@ public class AcceptCarriageOrderService {
         return null;
     }
 
-    public HttpResult subcontractConsignment(LogisticsConsignmentParam query) {
+    /**
+     * 承运订单分包托运
+     *
+     * @param bo
+     * @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());
+            throw new RuntimeException("单据错误,数据不存在");
+        }
+        KwtLogisticsOrder order = new KwtLogisticsOrder();
+        if (!bo.getIsFullDose()) {
+            Long amount = bo.getAmount();
+            Long carryingCapacity = bo.getCarryingCapacity();
+            if (carryingCapacity > amount) {
+                log.error("运订单分包托运-可分配量分配错误:{}", bo.getTOrderId());
+                throw new RuntimeException("可分配量分配错误");
+            }
+            if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
+                throw new RuntimeException("不是全量分配时,分配量不能为空!");
+            }
+            order.setAmount(new BigDecimal(bo.getCarryingCapacity()));
+        } else {
+            order.setAmount(new BigDecimal(NumberConstant.ZERO));
+            order.setSubcontractAmount(new BigDecimal(NumberConstant.ZERO));
+        }
+        String lOrderNo = com.sckw.transport.utils.StringUtils.getLOrderNo();
+        Long orderId = new IdWorker(NumberConstant.ONE).nextId();
+        /**分包托运需要判断处于哪一级分包托运
+         * 需要记录当前分包数据-分包上游数据
+         * */
+        /**
+         * 判断是否已存在分包【当前分包只允许加上主单一共三级】*/
+        Long count = logisticsOrderMapper.selectCount(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                .in(KwtLogisticsOrder::getPids, bo.getLOrderId()));
+        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;
+        } else {
+            pids = bo.getLOrderId() + StringConstant.SEMICOLON + orderId;
+        }
+        insertSubcontractLogisticsGoods(bo, lOrderNo, orderId);
+        insertSubcontractLogisticsOrder(bo, lOrderNo, order, tradeOrder, orderId, pids);
+        insertSubcontractLogisticsOrderContract(bo, orderId);
+        insertSubcontractLogisticsOrderUnit(bo, orderId);
+        insertSubcontractLogisticsOrderAddress(bo, orderId);
+        insertLogisticsOrderTrack(bo, orderId);
+        //修改上级分配量以及可分配量委托量等
+        logisticsOrder.setSubcontractAmount(logisticsOrder.getSubcontractAmount().add(new BigDecimal(bo.getCarryingCapacity())));
+        subcontractSendMongoDB(lOrderNo, orderId, bo, tradeOrder);
+        return HttpResult.ok();
+    }
 
-        return null;
+    /**
+     * 推送数据到MongoDB
+     *
+     * @param lOrderNo   物流订单编号
+     * @param orderId    物流订单id
+     * @param bo         页面传输实体
+     * @param tradeOrder 贸易订单信息
+     */
+    private void subcontractSendMongoDB(String lOrderNo, Long orderId, LogisticsConsignmentParam bo, OrderDetailRes tradeOrder) {
+        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()));
+        if (!bo.getIsFullDose()) {
+            if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
+                throw new RuntimeException("不是全量分配时,分配量不能为空!");
+            }
+            logisticsOrder.setAmount(new BigDecimal(bo.getCarryingCapacity()));
+            logisticsOrder.setUnit(bo.getCarryingCapacityUnit());
+            logisticsOrder.setCarryingCapacity(bo.getCarryingCapacity());
+        } else {
+            logisticsOrder.setAmount(new BigDecimal(NumberConstant.ZERO));
+            logisticsOrder.setSubcontractAmount(new BigDecimal(NumberConstant.ZERO));
+            logisticsOrder.setCarryingCapacity(0L);
+        }
+        logisticsOrder.setLoss(bo.getLoss() == null ? null : new BigDecimal(bo.getLoss()));
+        logisticsOrder.setLossUnit(bo.getLossUnit());
+        logisticsOrder.setGoodsPrice(bo.getGoodsPrice() == null ? null : new BigDecimal(bo.getGoodsPrice()));
+        BigDecimal decimal = new BigDecimal(NumberConstant.ZERO);
+        logisticsOrder.setSubcontractAmount(decimal);
+        logisticsOrder.setEntrustAmount(decimal);
+        logisticsOrder.setUnloadAmount(decimal);
+        logisticsOrder.setLoadAmount(decimal);
+        logisticsOrder.setIgnoreAmount(decimal);
+        logisticsOrder.setDeficitPrice(decimal);
+        logisticsOrder.setPayment(Long.parseLong(bo.getPayment()));
+        logisticsOrder.setTaxRate(bo.getTaxRate() == null ? null : new BigDecimal(bo.getTaxRate()));
+        logisticsOrder.setRemark(bo.getRemark());
+        logisticsOrder.setEntId(LoginUserHolder.getEntId());
+        logisticsOrder.setFirmName(remoteSystemService.queryEntCacheById(LoginUserHolder.getEntId()).getFirmName());
+        logisticsOrder.setGoodsId(Integer.parseInt(bo.getGoodsId()));
+        KwpGoods goods = goodsInfoService.getGoodsById(Long.parseLong(bo.getGoodsId()));
+        logisticsOrder.setGoodsType(goods == null ? null : goods.getGoodsType());
+        logisticsOrder.setGoodsSpec(goods == null ? null : goods.getSpec());
+        logisticsOrder.setContractId(Integer.parseInt(bo.getContractId()));
+        logisticsOrder.setContractNo(bo.getContractNo());
+        logisticsOrder.setContractName(bo.getContractName());
+        logisticsOrder.setContractSigningWay(bo.getPayment());
+        logisticsOrder.setCheckEntId(Long.parseLong(bo.getCheckCompanyId()));
+        logisticsOrder.setCheckFirmName(bo.getCheckCompany());
+        logisticsOrder.setCheckContacts(bo.getCheckContacts());
+        logisticsOrder.setCheckPhone(bo.getCheckContactPhone());
+        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());
+            }
+        }
+        //TODO 生成时并无时间
+//        logisticsOrder.setLoadTime();
+//        logisticsOrder.setunLoadTime();
+        logisticsOrder.setCreateBy(LoginUserHolder.getUserId());
+        logisticsOrder.setCreateByName(LoginUserHolder.getUserName());
+        logisticsOrder.setCreateTime(new Date());
+        logisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
+        logisticsOrder.setUpdateByName(LoginUserHolder.getUserName());
+        logisticsOrder.setUpdateTime(new Date());
+        logisticsOrder.setGoodsPriceUnit(bo.getGoodsPriceUnit());
+        logisticsOrder.setContractName(bo.getContractName());
+        logisticsOrder.setBillingMode(bo.getBillingMode());
+        //rabbitMq业务汇总数据发送/消费对象
+        SckwBusSum busSum = new SckwBusSum();
+        //业务汇总类型
+        busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+        //操作对象(1新增/2修改)
+        busSum.setMethod(1);
+        //业务汇总数据对象
+        busSum.setObject(logisticsOrder);
+        streamBridge.send("sckw-busSum", JSON.toJSONString(busSum));
     }
 
-    public List export(AcceptCarriageOrderQuery query) {
-        return null;
+    /**
+     * 分包托运-承运订单-单据状态
+     *
+     * @param bo
+     * @param orderId
+     */
+    private void insertLogisticsOrderTrack(LogisticsConsignmentParam bo, Long orderId) {
+        KwtLogisticsOrderTrack entity = new KwtLogisticsOrderTrack();
+        entity.setId(new IdWorker(NumberConstant.ONE).nextId());
+        entity.setLOrderId(orderId);
+        entity.setStatus(LogisticsOrderEnum.PENDING_ORDER.getCode());
+        entity.setCreateTime(new Date());
+        entity.setUpdateTime(new Date());
+        entity.setCreateBy(LoginUserHolder.getUserId());
+        entity.setUpdateBy(LoginUserHolder.getUserId());
+        entity.setRemark(bo.getRemark());
+        logisticsOrderTrackMapper.insert(entity);
+    }
+
+    /**
+     * 分包托运-承运订单-装卸货地址信息
+     *
+     * @param bo
+     * @param orderId
+     */
+    private void insertSubcontractLogisticsOrderAddress(LogisticsConsignmentParam bo, Long orderId) {
+        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 查询销售订单数据查找失败!");
+        }
+        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());
+                }
+            }
+        }
+        logisticsOrderAddressMapper.insert(loadOrderAddress);
+        logisticsOrderAddressMapper.insert(unloadOrderAddress);
     }
 
-    public List acceptOrder(OrderDTO orderDTO) {
+    /**
+     * 分包托运-承运订单-单位信息
+     *
+     * @param bo
+     * @param orderId
+     */
+    private void insertSubcontractLogisticsOrderUnit(LogisticsConsignmentParam bo, Long orderId) {
+        KwtLogisticsOrderUnit checkUnit = new KwtLogisticsOrderUnit()
+                .setLOrderId(orderId)
+                .setId(new IdWorker(NumberConstant.ONE).nextId())
+                .setUnitType(NumberConstant.ONE)
+                .setFirmName(bo.getCheckCompany())
+                .setRemark(bo.getRemark())
+                .setEntId(Long.parseLong(bo.getCheckCompanyId()))
+                .setContacts(bo.getCheckContacts())
+                .setPhone(bo.getCheckContactPhone())
+                .setCreateBy(LoginUserHolder.getUserId())
+                .setCreateTime(new Date())
+                .setUpdateBy(LoginUserHolder.getUserId())
+                .setUpdateTime(new Date());
+        logisticsOrderUnitMapper.insert(checkUnit);
+
+        KwtLogisticsOrderUnit consignUnit = new KwtLogisticsOrderUnit()
+                .setLOrderId(orderId)
+                .setId(new IdWorker(NumberConstant.ONE).nextId())
+                .setUnitType(NumberConstant.TWO)
+                .setFirmName(bo.getConsignCompany())
+                .setRemark(bo.getRemark())
+                .setEntId(Long.parseLong(bo.getConsignCompanyId()))
+                .setContacts(bo.getConsignContacts())
+                .setPhone(bo.getConsignContactPhone())
+                .setCreateBy(LoginUserHolder.getUserId())
+                .setCreateTime(new Date())
+                .setUpdateBy(LoginUserHolder.getUserId())
+                .setUpdateTime(new Date());
+        logisticsOrderUnitMapper.insert(consignUnit);
+    }
 
-        return null;
+    /**
+     * 分包托运-承运订单-合同信息
+     *
+     * @param bo
+     * @param orderId
+     */
+    private void insertSubcontractLogisticsOrderContract(LogisticsConsignmentParam bo, Long orderId) {
+        KwtLogisticsOrderContract kwtLogisticsOrderContract = new KwtLogisticsOrderContract();
+        kwtLogisticsOrderContract.setId(new IdWorker(NumberConstant.ONE).nextId());
+        kwtLogisticsOrderContract.setLOrderId(orderId);
+        kwtLogisticsOrderContract.setContractId(Long.parseLong(bo.getContractId()));
+        kwtLogisticsOrderContract.setRemark(bo.getRemark());
+        kwtLogisticsOrderContract.setCreateBy(LoginUserHolder.getUserId());
+        kwtLogisticsOrderContract.setUpdateBy(LoginUserHolder.getUserId());
+        kwtLogisticsOrderContract.setCreateTime(new Date());
+        kwtLogisticsOrderContract.setUpdateTime(new Date());
+        kwtLogisticsOrderContractMapper.insert(kwtLogisticsOrderContract);
+    }
+
+    /**
+     * 分包托运-承运订单-主体
+     *
+     * @param bo
+     * @param lOrderNo
+     * @param order
+     * @param tradeOrder
+     * @param orderId
+     * @param pids
+     */
+    private void insertSubcontractLogisticsOrder(LogisticsConsignmentParam bo, String lOrderNo,
+                                                 KwtLogisticsOrder order, OrderDetailRes tradeOrder,
+                                                 Long orderId, String pids) {
+        order.setId(orderId);
+        order.setEntId(LoginUserHolder.getEntId());
+        order.setTOrderId(Long.parseLong(bo.getTOrderId()));
+        order.setTOrderNo(bo.getTOrderNo());
+        order.setLOrderNo(lOrderNo);
+        //分包时,存放分包上级id
+        order.setPid(Long.parseLong(bo.getLOrderId()));
+        //存放所有的分包的父级id
+        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.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.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(bo.getGoodsPriceUnit());
+        order.setStartTime(bo.getShipmentsDateTime());
+        order.setEntTime(bo.getReceiveGoodsDateTime());
+        order.setRemark(bo.getRemark());
+        order.setPayment(Long.parseLong(tradeOrder.getTrading()));
+        order.setTaxRate(new BigDecimal(bo.getTaxRate()));
+        order.setCreateBy(LoginUserHolder.getUserId());
+        order.setCreateTime(new Date());
+        order.setUpdateBy(LoginUserHolder.getUserId());
+        order.setUpdateTime(new Date());
+        order.setStatus(LogisticsOrderEnum.PENDING_ORDER.getCode());
+        BigDecimal decimal = new BigDecimal(NumberConstant.ZERO);
+        order.setEntrustAmount(decimal);
+        order.setSubcontractAmount(decimal);
+        order.setLoadAmount(decimal);
+        order.setUnloadAmount(decimal);
+        order.setIgnoreAmount(decimal);
+        order.setDeficitPrice(decimal);
+        order.setDeficitAmount(decimal);
+        kwtLogisticsOrderMapper.insert(order);
+    }
+
+    /**
+     * 分包托运-承运订单-商品信息
+     *
+     * @param bo
+     * @param lOrderNo
+     * @param orderId
+     */
+    private void insertSubcontractLogisticsGoods(LogisticsConsignmentParam bo, String lOrderNo, Long orderId) {
+        KwtLogisticsOrderGoods kwtLogisticsOrderGoods = new KwtLogisticsOrderGoods();
+        kwtLogisticsOrderGoods.setId(new IdWorker(NumberConstant.ONE).nextId());
+        kwtLogisticsOrderGoods.setGoodsId(Long.parseLong(bo.getGoodsId()));
+        kwtLogisticsOrderGoods.setGoodsName(bo.getGoodsName());
+        kwtLogisticsOrderGoods.setSkuId(StringUtils.isBlank(bo.getSkuId()) ? null : Long.parseLong(bo.getSkuId()));
+        kwtLogisticsOrderGoods.setLOrderId(orderId);
+        kwtLogisticsOrderGoods.setLOrderNo(lOrderNo);
+        kwtLogisticsOrderGoods.setUpdateBy(LoginUserHolder.getUserId());
+        kwtLogisticsOrderGoods.setUpdateTime(new Date());
+        kwtLogisticsOrderGoods.setCreateBy(LoginUserHolder.getUserId());
+        kwtLogisticsOrderGoods.setCreateTime(new Date());
+        kwtLogisticsOrderGoodsMapper.insert(kwtLogisticsOrderGoods);
     }
 
+
     /**
      * 是否接单
      *
@@ -233,6 +632,7 @@ public class AcceptCarriageOrderService {
         }
         return result;
     }
+
     private void sendMongoDbData(List<SckwWaybillOrder> list, KwtLogisticsOrder logisticsOrder
             , CarListDTO carListDTO, SendCarDTO sendCarDTO, String type) {
         //放入mongodb实体
@@ -382,4 +782,31 @@ public class AcceptCarriageOrderService {
         waybillCarDTO.setDelFlag(Integer.valueOf(NumberConstant.ZERO));
         list.add(waybillCarDTO);
     }
+
+    /**
+     * 承运订单-获取运单详情
+     * @param wOrderId
+     * @return
+     */
+    public HttpResult getWaybillData(String wOrderId) {
+        SckwWaybillOrder sckwWaybillOrder = mongoTemplate.findById(Long.parseLong(wOrderId), SckwWaybillOrder.class);
+        WaybillDetailVO vo = new WaybillDetailVO();
+        if (!ObjectUtils.isEmpty(sckwWaybillOrder)) {
+            vo.setFleetName(sckwWaybillOrder.getFleetName());
+            vo.setTruckNo(sckwWaybillOrder.getTruckNo());
+            vo.setDriverName(sckwWaybillOrder.getDriverName());
+            vo.setSendCarWeigh(sckwWaybillOrder.getEntrustAmount());
+            vo.setLoadAmount(sckwWaybillOrder.getLoadAmount());
+            vo.setStowageDateTime(sckwWaybillOrder.getLoadTime());
+            vo.setWaybillType(sckwWaybillOrder.getType());
+            vo.setUnloadAmount(sckwWaybillOrder.getUnloadAmount());
+            vo.setUnloadDateTime(sckwWaybillOrder.getUnloadTime());
+            vo.setAppointor(sckwWaybillOrder.getCreateByName());
+            vo.setLoss(sckwWaybillOrder.getLoss());
+            vo.setGoodsPrice(sckwWaybillOrder.getGoodsPrice());
+            vo.setStartTime(sckwWaybillOrder.getStartTime());
+            vo.setEndTime(sckwWaybillOrder.getEndTime());
+        }
+        return HttpResult.ok(vo);
+    }
 }

+ 96 - 78
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -2,16 +2,19 @@ package com.sckw.transport.service;
 
 import cn.hutool.core.util.ArrayUtil;
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.enums.DictEnum;
 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.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
+import com.sckw.order.api.dubbo.TradeOrderInfoService;
+import com.sckw.order.api.model.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;
@@ -53,8 +56,8 @@ public class LogisticsConsignmentService {
     @DubboReference(version = "2.0.0", group = "design", check = false)
     GoodsInfoService goodsInfoService;
 
-    @Autowired
-    public KwoTradeOrderMapper kwoTradeOrderMapper;
+    @DubboReference(version = "2.0.0", group = "design", check = false,timeout = 6000)
+    TradeOrderInfoService tradeOrderInfoService;
 
     @Autowired
     public KwtLogisticsOrderGoodsMapper kwtLogisticsOrderGoodsMapper;
@@ -65,9 +68,6 @@ public class LogisticsConsignmentService {
     @Autowired
     public KwtLogisticsOrderMapper kwtLogisticsOrderMapper;
 
-    @Autowired
-    public KwoTradeOrderAddressMapper kwoTradeOrderAddressMapper;
-
     @Autowired
     public KwtLogisticsOrderAddressMapper kwtLogisticsOrderAddressMapper;
 
@@ -94,14 +94,19 @@ public class LogisticsConsignmentService {
     }
 
     void logisticsConsignmentInsert(LogisticsConsignmentParam bo) {
-        //todo 后续改成调用dubbo接口
-        KwoTradeOrder tradeOrder = kwoTradeOrderMapper.selectOne(new LambdaQueryWrapper<KwoTradeOrder>().eq(StringUtils.isNotBlank(bo.getLOrderId()), KwoTradeOrder::getId, bo.getLOrderId()));
+        OrderDetailRes tradeOrder = tradeOrderInfoService.getOrderDetailById(Long.parseLong(bo.getTOrderId()));
         if (tradeOrder == null) {
-            log.error("订单id查找失败:{}", bo.getLOrderId());
+            log.error("订单id查找失败:{}", bo.getTOrderId());
             throw new RuntimeException("单据错误,数据不存在");
         }
         KwtLogisticsOrder order = new KwtLogisticsOrder();
         if (!bo.getIsFullDose()) {
+            Long amount = bo.getAmount();
+            Long carryingCapacity = bo.getCarryingCapacity();
+            if (carryingCapacity > amount) {
+                log.error("可分配量分配错误:{}", bo.getTOrderId());
+                throw new RuntimeException("可分配量分配错误");
+            }
             if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
                 throw new RuntimeException("不是全量分配时,分配量不能为空!");
             }
@@ -128,7 +133,7 @@ public class LogisticsConsignmentService {
      * @param orderId
      * @param bo
      */
-    private void sendMongoDB(String lOrderNo, Long orderId, LogisticsConsignmentParam bo, KwoTradeOrder tradeOrder) {
+    private void sendMongoDB(String lOrderNo, Long orderId, LogisticsConsignmentParam bo, OrderDetailRes tradeOrder) {
         SckwLogisticsOrder logisticsOrder = new SckwLogisticsOrder();
         logisticsOrder.setLOrderId(orderId);
         logisticsOrder.setLOrderNo(lOrderNo);
@@ -155,10 +160,6 @@ public class LogisticsConsignmentService {
         logisticsOrder.setLoss(bo.getLoss() == null ? null : new BigDecimal(bo.getLoss()));
         logisticsOrder.setLossUnit(bo.getLossUnit());
         logisticsOrder.setGoodsPrice(bo.getGoodsPrice() == null ? null : new BigDecimal(bo.getGoodsPrice()));
-        //TODO 生成时并无时间
-//        logisticsOrder.setUnloadTime();
-//        logisticsOrder.setLoadTime();
-//        logisticsOrder.setWOrderNo();
         BigDecimal decimal = new BigDecimal(NumberConstant.ZERO);
         logisticsOrder.setSubcontractAmount(decimal);
         logisticsOrder.setEntrustAmount(decimal);
@@ -172,7 +173,6 @@ public class LogisticsConsignmentService {
         logisticsOrder.setEntId(LoginUserHolder.getEntId());
         logisticsOrder.setFirmName(remoteSystemService.queryEntCacheById(LoginUserHolder.getEntId()).getFirmName());
         logisticsOrder.setGoodsId(Integer.parseInt(bo.getGoodsId()));
-        //todo dubbo调用商品服务
         KwpGoods goods = goodsInfoService.getGoodsById(Long.parseLong(bo.getGoodsId()));
         logisticsOrder.setGoodsType(goods == null ? null : goods.getGoodsType());
         logisticsOrder.setGoodsSpec(goods == null ? null : goods.getSpec());
@@ -187,22 +187,32 @@ public class LogisticsConsignmentService {
         logisticsOrder.setCarrierEntId(Long.parseLong(bo.getConsignCompanyId()));
         logisticsOrder.setCarrierFirmName(bo.getConsignCompany());
         logisticsOrder.setCarrierContacts(bo.getConsignContacts());
-        //todo dubbo调用订单服务
-//        logisticsOrder.setLoadType();
-//        logisticsOrder.setLoadCityCode();
-//        logisticsOrder.setLoadCityName();
-//        logisticsOrder.setLoadDetailAddress();
-//        logisticsOrder.setLoadLat();
-//        logisticsOrder.setLoadLng();
+        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());
+            }
+        }
+        //TODO 生成时并无时间
 //        logisticsOrder.setLoadTime();
-//        logisticsOrder.setUnloadType();
-//        logisticsOrder.setUnloadPhone();
-//        logisticsOrder.setUnloadCityCode();
-//        logisticsOrder.setUnloadCityCode();
-//        logisticsOrder.setUnloadCityName();
-//        logisticsOrder.setUnloadDetailAddress();
-//        logisticsOrder.setUnloadLat();
-//        logisticsOrder.setUnloadLng();
+//        logisticsOrder.setunLoadTime();
         logisticsOrder.setCreateBy(LoginUserHolder.getUserId());
         logisticsOrder.setCreateByName(LoginUserHolder.getUserName());
         logisticsOrder.setCreateTime(new Date());
@@ -309,11 +319,11 @@ public class LogisticsConsignmentService {
      * @param order
      * @param tradeOrder
      */
-    private void insertLogisticsOrder(LogisticsConsignmentParam bo, String lOrderNo, KwtLogisticsOrder order, KwoTradeOrder tradeOrder, Long orderId) {
+    private void insertLogisticsOrder(LogisticsConsignmentParam bo, String lOrderNo, KwtLogisticsOrder order, OrderDetailRes tradeOrder, Long orderId) {
         order.setId(orderId);
         order.setEntId(LoginUserHolder.getEntId());
-        order.setTOrderId(Long.parseLong(bo.getLOrderId()));
-        order.setTOrderNo(bo.getLOrderNo());
+        order.setTOrderId(Long.parseLong(bo.getTOrderId()));
+        order.setTOrderNo(bo.getTOrderNo());
         order.setLOrderNo(lOrderNo);
         order.setPid(null);
         order.setSettlementCycle(bo.getSettlementCycle());
@@ -324,7 +334,7 @@ public class LogisticsConsignmentService {
 //        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.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 ?
@@ -336,13 +346,21 @@ public class LogisticsConsignmentService {
         order.setStartTime(bo.getShipmentsDateTime());
         order.setEntTime(bo.getReceiveGoodsDateTime());
         order.setRemark(bo.getRemark());
-        order.setPayment(tradeOrder.getTrading());
+        order.setPayment(Long.parseLong(tradeOrder.getTrading()));
         order.setTaxRate(new BigDecimal(bo.getTaxRate()));
         order.setCreateBy(LoginUserHolder.getUserId());
         order.setCreateTime(new Date());
         order.setUpdateBy(LoginUserHolder.getUserId());
         order.setUpdateTime(new Date());
         order.setStatus(LogisticsOrderEnum.PENDING_ORDER.getCode());
+        BigDecimal decimal = new BigDecimal(NumberConstant.ZERO);
+        order.setEntrustAmount(decimal);
+        order.setSubcontractAmount(decimal);
+        order.setLoadAmount(decimal);
+        order.setUnloadAmount(decimal);
+        order.setIgnoreAmount(decimal);
+        order.setDeficitPrice(decimal);
+        order.setDeficitAmount(decimal);
         kwtLogisticsOrderMapper.insert(order);
     }
 
@@ -374,51 +392,51 @@ public class LogisticsConsignmentService {
         KwtLogisticsOrderAddress loadOrderAddress = new KwtLogisticsOrderAddress();
         KwtLogisticsOrderAddress unloadOrderAddress = new KwtLogisticsOrderAddress();
         //todo 装卸货地址 通过dubbo查询
-        KwoTradeOrderAddress loadkwoTradeOrderAddress = kwoTradeOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwoTradeOrderAddress>()
-                .eq(StringUtils.isNotBlank(bo.getLOrderId()), KwoTradeOrderAddress::getTOrderId, bo.getLOrderId())
-                .eq(KwoTradeOrderAddress::getAddressType, NumberConstant.ONE));
-        if (ObjectUtils.isEmpty(loadkwoTradeOrderAddress)) {
-            log.info("查询数据:orderId:{},type:{}", bo.getLOrderId(), bo.getPriceType());
-            throw new RuntimeException("装货地址查找失败!");
+        OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(bo.getTOrderId()));
+        if (ObjectUtils.isEmpty(orderDetailRes)) {
+            log.info("dubbp 查询数据 error :orderId:{}", bo.getTOrderId());
+            throw new RuntimeException("dubbp 查询销售订单数据查找失败!");
         }
-        loadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
-        loadOrderAddress.setAddressType(NumberConstant.ONE);
-        loadOrderAddress.setDetailAddress(loadkwoTradeOrderAddress.getDetailAddress());
-        loadOrderAddress.setContacts(loadkwoTradeOrderAddress.getContacts());
-        loadOrderAddress.setLOrderId(orderId);
-        loadOrderAddress.setLat(loadkwoTradeOrderAddress.getLat());
-        loadOrderAddress.setFence(loadkwoTradeOrderAddress.getFence());
-        loadOrderAddress.setCityName(loadkwoTradeOrderAddress.getCityName());
-        loadOrderAddress.setEntryType(NumberConstant.FOUR);
-        loadOrderAddress.setCreateTime(new Date());
-        loadOrderAddress.setPhone(loadkwoTradeOrderAddress.getPhone());
-        loadOrderAddress.setCreateBy(LoginUserHolder.getUserId());
-        loadOrderAddress.setUpdateBy(LoginUserHolder.getUserId());
-        loadOrderAddress.setUpdateTime(new Date());
-        kwtLogisticsOrderAddressMapper.insert(loadOrderAddress);
-
-        KwoTradeOrderAddress unloadkwoTradeOrderAddress = kwoTradeOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwoTradeOrderAddress>()
-                .eq(StringUtils.isNotBlank(bo.getLOrderId()), KwoTradeOrderAddress::getTOrderId, bo.getLOrderId())
-                .eq(KwoTradeOrderAddress::getAddressType, NumberConstant.TWO));
-        if (ObjectUtils.isEmpty(unloadkwoTradeOrderAddress)) {
-            log.info("查询数据:orderId:{},type:{}", bo.getLOrderId(), bo.getPriceType());
-            throw new RuntimeException("卸货地址查找失败!");
+        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());
+                }
+            }
         }
-        unloadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
-        unloadOrderAddress.setAddressType(NumberConstant.TWO);
-        unloadOrderAddress.setId(new IdWorker(NumberConstant.ONE).nextId());
-        unloadOrderAddress.setContacts(loadkwoTradeOrderAddress.getContacts());
-        unloadOrderAddress.setLOrderId(orderId);
-        unloadOrderAddress.setLat(loadkwoTradeOrderAddress.getLat());
-        unloadOrderAddress.setFence(loadkwoTradeOrderAddress.getFence());
-        unloadOrderAddress.setCityName(loadkwoTradeOrderAddress.getCityName());
-        unloadOrderAddress.setEntryType(NumberConstant.FOUR);
-        unloadOrderAddress.setPhone(loadkwoTradeOrderAddress.getPhone());
-        unloadOrderAddress.setDetailAddress(loadkwoTradeOrderAddress.getDetailAddress());
-        unloadOrderAddress.setCreateTime(new Date());
-        unloadOrderAddress.setCreateBy(LoginUserHolder.getUserId());
-        unloadOrderAddress.setUpdateBy(LoginUserHolder.getUserId());
-        unloadOrderAddress.setUpdateTime(new Date());
+
+        kwtLogisticsOrderAddressMapper.insert(loadOrderAddress);
         kwtLogisticsOrderAddressMapper.insert(unloadOrderAddress);
     }
 

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

@@ -44,9 +44,6 @@ public class TransportCommonService {
     @DubboReference(version = "2.0.0", group = "design", check = false)
     RemoteSystemService remoteSystemService;
 
-    @Autowired
-    public KwoTradeOrderMapper tradeOrderMapper;
-
     @Autowired
     public KwtLogisticsOrderGoodsMapper logisticsOrderGoodsMapper;
 
@@ -56,9 +53,6 @@ public class TransportCommonService {
     @Autowired
     public KwtLogisticsOrderMapper logisticsOrderMapper;
 
-    @Autowired
-    public KwoTradeOrderAddressMapper tradeOrderAddressMapper;
-
     @Autowired
     public KwtLogisticsOrderAddressMapper logisticsOrderAddressMapper;
 

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

@@ -1,9 +0,0 @@
-<?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.KwoTradeOrderMapper">
-    <resultMap id="BaseResultMap" type="com.sckw.transport.model.KwoTradeOrder">
-        <id column="id" jdbcType="BIGINT" property="id" />
-        <result column="t_order_no" jdbcType="BIGINT" property="tOrderNo" />
-        <result column="amount" jdbcType="INTEGER" property="amount" />
-    </resultMap>
-</mapper>

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

@@ -89,4 +89,7 @@
         </where>
         group by lOrderId
     </select>
+    <select id="getWaybillData" resultType="com.sckw.transport.model.vo.WaybillDetailVO">
+
+    </select>
 </mapper>