sptkw 2 лет назад
Родитель
Сommit
a8cfe7dea5
100 измененных файлов с 4265 добавлено и 228 удалено
  1. 1 1
      pom.xml
  2. 2 2
      sckw-auth/src/main/java/com/sckw/auth/model/vo/req/UpdatePasswordReqVo.java
  3. 1 0
      sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java
  4. 18 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java
  5. 9 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictTypeEnum.java
  6. 25 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/config/JacksonConfig.java
  7. 37 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/ChargingTypeEnum.java
  8. 39 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/ContractStatusEnum.java
  9. 38 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/ContractTrackEnum.java
  10. 2 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CooperateStatusEnum.java
  11. 35 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/SigningWayEnum.java
  12. 11 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/page/PageHelperUtil.java
  13. 3 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java
  14. 9 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/context/LoginUserHolder.java
  15. 6 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/model/LoginUserInfo.java
  16. 2 1
      sckw-common/sckw-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  17. 13 5
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/ExcelUtil.java
  18. 2 2
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java
  19. 50 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwWaybillOrder.java
  20. 206 0
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/TradeOrderUpdateParam.java
  21. 1 1
      sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwBusSum.java
  22. 7 0
      sckw-modules-api/pom.xml
  23. 25 0
      sckw-modules-api/sckw-fleet-api/pom.xml
  24. 29 0
      sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/RemoteFleetService.java
  25. 49 0
      sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/model/vo/RDriverVo.java
  26. 54 0
      sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/model/vo/RTruckVo.java
  27. 11 0
      sckw-modules-api/sckw-modules-bom/pom.xml
  28. 10 0
      sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/GoodsDetail.java
  29. 28 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java
  30. 5 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/req/UpdatePasswordReqDto.java
  31. 16 0
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/EntCacheResDto.java
  32. 1 1
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/KwsEnterpriseResDto.java
  33. 16 0
      sckw-modules-api/sckw-transport-api/pom.xml
  34. 17 2
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java
  35. 180 0
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/dto/vo/KwtLogisticsOrderVO.java
  36. 85 0
      sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/dto/vo/LogisticsOrderDTO.java
  37. 4 4
      sckw-modules/sckw-contract/pom.xml
  38. 64 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCarrierController.java
  39. 162 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCheckedController.java
  40. 15 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcContractTradeController.java
  41. 20 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractLogisticsGoodsMapper.java
  42. 33 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractLogisticsMapper.java
  43. 20 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractLogisticsTrackMapper.java
  44. 20 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractLogisticsUnitMapper.java
  45. 20 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTemplateMapper.java
  46. 20 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTradeGoodsMapper.java
  47. 20 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTradeMapper.java
  48. 20 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTradeOrderMapper.java
  49. 20 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTradeTrackMapper.java
  50. 20 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTradeUnitMapper.java
  51. 50 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/dto/req/QueryListReqDto.java
  52. 128 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractLogistics.java
  53. 113 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractLogisticsGoods.java
  54. 67 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractLogisticsTrack.java
  55. 92 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractLogisticsUnit.java
  56. 78 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTemplate.java
  57. 123 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTrade.java
  58. 93 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTradeGoods.java
  59. 73 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTradeOrder.java
  60. 63 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTradeTrack.java
  61. 92 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTradeUnit.java
  62. 55 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ContractLogisticsReqVo.java
  63. 26 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/IdReqVo.java
  64. 26 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/IdsReqVo.java
  65. 80 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/LogisticsBaseInfoReqVo.java
  66. 62 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/LogisticsGoodsInfoReqVo.java
  67. 47 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/QueryListReqVo.java
  68. 45 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/ContractLogisticsDetailResVo.java
  69. 65 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/LogisticsBaseInfoResVo.java
  70. 61 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/LogisticsGoodsInfoResVo.java
  71. 115 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/QueryListResVo.java
  72. 27 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/CommonBusinessService.java
  73. 100 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsGoodsService.java
  74. 407 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java
  75. 54 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsTrackService.java
  76. 117 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsUnitService.java
  77. 17 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTemplateService.java
  78. 18 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeGoodsService.java
  79. 17 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeOrderService.java
  80. 17 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeService.java
  81. 17 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeTrackService.java
  82. 17 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeUnitService.java
  83. 1 1
      sckw-modules/sckw-contract/src/main/resources/log4j2.xml
  84. 0 199
      sckw-modules/sckw-contract/src/main/resources/logback-spring.xml
  85. 38 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsGoodsMapper.xml
  86. 75 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsMapper.xml
  87. 26 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsTrackMapper.xml
  88. 32 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsUnitMapper.xml
  89. 28 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTemplateMapper.xml
  90. 32 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeGoodsMapper.xml
  91. 40 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeMapper.xml
  92. 27 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeOrderMapper.xml
  93. 24 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeTrackMapper.xml
  94. 32 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeUnitMapper.xml
  95. 5 0
      sckw-modules/sckw-fleet/pom.xml
  96. 0 3
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfFleetController.java
  97. 5 4
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java
  98. 6 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfFleetDriverMapper.java
  99. 7 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfFleetTruckMapper.java
  100. 24 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfTruckReportMapper.java

+ 1 - 1
pom.xml

@@ -37,7 +37,7 @@
         <springdoc.version>2.1.0</springdoc.version>
         <redisson.version>3.21.3</redisson.version>
         <fastjson.version>2.0.32</fastjson.version>
-        <easyexcel.version>3.0.5</easyexcel.version>
+        <easyexcel.version>3.3.2</easyexcel.version>
         <cglib.version>3.3.0</cglib.version>
         <commons-io.version>2.11.0</commons-io.version>
         <alicloud-sms.version>2.2.0.RELEASE</alicloud-sms.version>

+ 2 - 2
sckw-auth/src/main/java/com/sckw/auth/model/vo/req/UpdatePasswordReqVo.java

@@ -21,8 +21,8 @@ public class UpdatePasswordReqVo implements Serializable {
     /**
      * 账号
      */
-    @NotBlank(message = "账号不能为空")
-    private String account;
+    @NotNull(message = "id不能为空")
+    private Long id;
 
     /**
      * 旧密码

+ 1 - 0
sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java

@@ -276,6 +276,7 @@ public class AuthServiceImpl implements IAuthService {
             EntInfoResVo entInfo = loginResVo.getEntInfo();
             if (!Objects.isNull(entInfo)) {
                 loginUserInfo.setEntId(entInfo.getId());
+                loginUserInfo.setEntName(entInfo.getFirmName());
                 List<DeptInfoResVo> deptInfo = entInfo.getDeptInfo();
                 if (!CollectionUtils.isEmpty(deptInfo)) {
                     loginUserInfo.setDeptIds(String.join(",", deptInfo.stream().map(item -> String.valueOf(item.getId())).toList()));

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

@@ -3,6 +3,10 @@ package com.sckw.core.common.enums.enums;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+
 /**
  * @author lfdc
  * @description 枚举字典
@@ -17,9 +21,14 @@ public enum DictEnum {
     UNIT_TYPE_1("unit_type","1", "方"),
     UNIT_TYPE_2("unit_type","2", "箱"),
     UNIT_TYPE_3("unit_type","3", "件"),
+    UNIT_TYPE_4("unit_type","4", "其他"),
+    TAX_RATE_0("tax_rate","13.00", "13%"),
+    TAX_RATE_1("tax_rate","11.00", "11%"),
+    TAX_RATE_2("tax_rate","10.00", "10%"),
     TRADE_TYPE_0("trade_type", "0", "预付款"),
     TRADE_TYPE_1("trade_type", "1", "货到付款"),
     TRADE_TYPE_2("trade_type", "2", "线下付款"),
+    TRADE_TYPE_3("trade_type", "3", "第三方支付"),
     PICKUP_TYPE_0("pickup_type", "0", "供应配送"),
     PICKUP_TYPE_1("pickup_type", "1", "采方自提"),
     DELIVERY_TYPE_0("delivery_type", "0", "签发交付"),
@@ -60,5 +69,14 @@ public enum DictEnum {
         }
         return null;
     }
+    public static List<DictEnum> getEnumsByType(String type) {
+        List<DictEnum> list = new ArrayList<>();
+        for (DictEnum dict : DictEnum.values()) {
+            if (dict.getType().equals(type) ) {
+                list.add(dict);
+            }
+        }
+        return list.stream().sorted(Comparator.comparing(DictEnum::getValue)).toList();
+    }
 
 }

+ 9 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictTypeEnum.java

@@ -12,6 +12,8 @@ import lombok.Getter;
 @AllArgsConstructor
 public enum DictTypeEnum {
     INTEGRAL_TYPE("integral_type", "积分类型"),
+    UNIT_TYPE("unit_type", "商品单位类型"),
+    TAX_RATE("tax_rate", "商品税率"),
     PRICE_TYPE("price_type", "运价方式"),
     TRADE_TYPE("trade_type", "交易方式"),
     PICKUP_TYPE("pickup_type", "提货方式"),
@@ -26,7 +28,13 @@ public enum DictTypeEnum {
     CLASSIFICATION_TYPE("classification_type", "分类类型"),
     CATEGORY_TYPE("category_type", "类别类型"),
     PRODUCT_NAME_TYPE("product_name_type", "品名类型"),
-    GOODS_STATUS("goods_status", "商品状态");
+    GOODS_STATUS("goods_status", "商品状态"),
+    CHARGING_TYPE("charging_type", "计费方式") ,
+    COLOR_TYPE("color_type", "车辆颜色"),
+    ENERGY_TYPE("energy_type", "能源类型"),
+    TRUCK_TYPE("truck_type", "车辆类型"),
+    USE_TYPE("use_type", "使用性质");
+
     private final String type;
     private final String name;
 

+ 25 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/config/JacksonConfig.java

@@ -0,0 +1,25 @@
+package com.sckw.core.config;
+
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.math.BigInteger;
+
+/**
+ * @desc: Jackson全局转化long类型为String,解决jackson序列化时传入前端Long类型缺失精度问题(js解析只能解析到16位)
+ * @author: yzc
+ * @date: 2023-07-17 11:19
+ */
+@Configuration
+public class JacksonConfig {
+    @Bean
+    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
+        return jacksonObjectMapperBuilder -> {
+            jacksonObjectMapperBuilder.serializerByType(BigInteger.class, ToStringSerializer.instance);
+            jacksonObjectMapperBuilder.serializerByType(Long.class, ToStringSerializer.instance);
+            jacksonObjectMapperBuilder.serializerByType(Long.TYPE, ToStringSerializer.instance);
+        };
+    }
+}

+ 37 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/ChargingTypeEnum.java

@@ -0,0 +1,37 @@
+package com.sckw.core.model.enums;
+
+import lombok.Getter;
+
+/**
+ * @author czh
+ * @desc 计费方式枚举
+ * @date 2023/7/14
+ */
+@Getter
+public enum ChargingTypeEnum {
+
+    //装货量
+    ON(1, "装货量"),
+    //卸货量
+    OFF(2, "卸货量"),
+    //车次
+    CAR(3, "车次");
+
+    private final int code;
+
+    private final String name;
+
+    ChargingTypeEnum(int code, String name){
+        this.code = code;
+        this.name = name;
+    }
+
+    public static ChargingTypeEnum getName(int code){
+        for (ChargingTypeEnum chargingTypeEnum : values()) {
+            if (chargingTypeEnum.getCode() == code) {
+                return chargingTypeEnum;
+            }
+        }
+        return null;
+    }
+}

+ 39 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/ContractStatusEnum.java

@@ -0,0 +1,39 @@
+package com.sckw.core.model.enums;
+
+import lombok.Getter;
+
+/**
+ * @author czh
+ * @desc 合同状态
+ * @date 2023/7/14
+ */
+@Getter
+public enum ContractStatusEnum {
+    //已签约
+    SIGNED(0, "已签约"),
+    //已完结
+    COMPLETE(1, "已完结"),
+    //已保存
+    SAVE(2, "已保存"),
+    //签约中
+    SUBMIT(3, "签约中");
+
+    private final int code;
+
+    private final String name;
+
+    ContractStatusEnum(int code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static ContractStatusEnum getName(int code) {
+        for (ContractStatusEnum contractTrackEnum : values()) {
+            if (contractTrackEnum.getCode() == code) {
+                return contractTrackEnum;
+            }
+        }
+        return null;
+    }
+
+}

+ 38 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/ContractTrackEnum.java

@@ -0,0 +1,38 @@
+package com.sckw.core.model.enums;
+
+import lombok.Getter;
+
+/**
+ * @author czh
+ * @desc 合同审批状态
+ * @date 2023/7/14
+ */
+@Getter
+public enum ContractTrackEnum {
+
+    //审批中
+    APPROVAL(1, "审批中"),
+    //签约中
+    SIGNING(2, "签约中"),
+    //履约中
+    PERFORMANCE(3, "履约中");
+
+    private final int code;
+
+    private final String name;
+
+    ContractTrackEnum(int code, String name){
+        this.code = code;
+        this.name = name;
+    }
+
+    public static ContractTrackEnum getName(int code){
+        for (ContractTrackEnum contractTrackEnum : values()) {
+            if (contractTrackEnum.getCode() == code) {
+                return contractTrackEnum;
+            }
+        }
+        return null;
+    }
+
+}

+ 2 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CooperateStatusEnum.java

@@ -2,6 +2,8 @@ package com.sckw.core.model.enums;
 
 import lombok.Getter;
 
+import java.util.Map;
+
 /**
  * @author czh
  * @desc 合作状态

+ 35 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/SigningWayEnum.java

@@ -0,0 +1,35 @@
+package com.sckw.core.model.enums;
+
+import lombok.Getter;
+
+/**
+ * @author czh
+ * @desc 签约方式
+ * @date 2023/7/14
+ */
+@Getter
+public enum SigningWayEnum {
+
+    //线上签约
+    ONLINE(1, "线上签约"),
+    //线下签约
+    OFFLINE(2, "线下签约");
+
+    private final int code;
+
+    private final String name;
+
+    SigningWayEnum(int code, String name){
+        this.code = code;
+        this.name = name;
+    }
+
+    public static SigningWayEnum getName(int code){
+        for (SigningWayEnum signingWayEnum : values()) {
+            if (signingWayEnum.getCode() == code) {
+                return signingWayEnum;
+            }
+        }
+        return null;
+    }
+}

+ 11 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/page/PageHelperUtil.java

@@ -57,6 +57,17 @@ public class PageHelperUtil {
         return setPageResult(pageInfo);
     }
 
+    /**
+     * 将分页信息封装到统一的接口  针对于有复杂的业务组装接口
+     * @return PageResult
+     */
+    public static PageResult getPageResult(PageInfo<?> pageInfo, List<?> totalList, int pageSize) {
+        PageInfo<?> pageInfoTotal = new PageInfo<>(totalList);
+        pageInfo.setTotal(pageInfoTotal.getTotal());
+        pageInfo.setPageSize(pageSize);
+        return setPageResult(pageInfo);
+    }
+
     public static PageResult setPageResult(PageInfo<?> pageInfo){
         PageResult pageResult = new PageResult();
         pageResult.setPage(pageInfo.getPageNum());

+ 3 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java

@@ -128,6 +128,7 @@ public class HttpStatus {
     public static final String COOPERATE_ATTRIBUTE_NOT_EXISTS = "未查询到已有的合作属性";
     public static final String COOPERATE_NOT_EXISTS = "未查询到合作记录或已失效";
     public static final String ADDRESS_NOT_EXISTS = "未查询到地址记录或已失效";
+    public static final String CONTRACT_NOT_EXISTS = "未查询到合同或已失效";
 
     /**自定义提示消息*/
     public static final String PASSWD_ERROR = "密码不正确";
@@ -154,4 +155,6 @@ public class HttpStatus {
     public static final String MSG_019 = "只能操作正在审核中的记录!";
     public static final String MSG_020 = "当前机构还存在员工数据,不能删除!";
     public static final String MSG_021 = "不能重复设置默认地址!";
+    public static final String MSG_022 = "只能对草稿进行删除!";
+
 }

+ 9 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/context/LoginUserHolder.java

@@ -110,6 +110,15 @@ public class LoginUserHolder {
         return LONGIN_USER_HOLDER.get() == null ? null : LONGIN_USER_HOLDER.get().getEntId();
     }
 
+    /**
+     * 用户所属企业
+     * @author zhaokang
+     * @Date 2020/04/13 0021
+     */
+    public static String getEntName(){
+        return LONGIN_USER_HOLDER.get() == null ? null : LONGIN_USER_HOLDER.get().getEntName();
+    }
+
     /**
      * 用户登录终端
      * @author zhaokang

+ 6 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/model/LoginUserInfo.java

@@ -36,7 +36,7 @@ public class LoginUserInfo {
     /**
      *用户账号状态(0正常/1锁定)
      */
-    private int status;
+    private Integer status;
     /**
      * 用户所属企业id
      */
@@ -50,6 +50,11 @@ public class LoginUserInfo {
      */
     private String deptIds;
 
+    /**
+     * 企业名
+     */
+    private String entName;
+
 
     public LoginUserInfo() {
     }

+ 2 - 1
sckw-common/sckw-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -3,4 +3,5 @@ com.sckw.core.exception.GlobalSystemExceptionHandler
 com.sckw.core.web.config.CustomConfig
 com.sckw.core.filter.LoginFilter
 #com.sckw.core.filter.ExceptionFilterConfig
-com.sckw.core.config.MybatisPlusConfig
+com.sckw.core.config.MybatisPlusConfig
+com.sckw.core.config.JacksonConfig

+ 13 - 5
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/ExcelUtil.java

@@ -10,10 +10,7 @@ import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.annotation.ExcelContext;
 import com.sckw.excel.annotation.ExcelSelected;
-import com.sckw.excel.config.easyexcel.ExcelSelectedResolve;
-import com.sckw.excel.config.easyexcel.LocalDateTimeConverter;
-import com.sckw.excel.config.easyexcel.RowWriteHandlerImpl;
-import com.sckw.excel.config.easyexcel.SelectedSheetWriteHandler;
+import com.sckw.excel.config.easyexcel.*;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.util.Assert;
@@ -30,7 +27,6 @@ import java.util.List;
 import java.util.Map;
 
 
-
 /**
  * 封装easyexcel
  *
@@ -42,6 +38,18 @@ import java.util.Map;
 @Slf4j
 public class ExcelUtil {
 
+    public static <T> void downData(HttpServletResponse response, Class<T> clazz, List<T> data) {
+        Assert.notNull(clazz, "clazz can't be null");
+        Assert.isTrue(data != null && !data.isEmpty(), "data can't be empty");
+        try {
+            ExcelContext excelContext = clazz.getAnnotation(ExcelContext.class);
+            buildResponse(response, excelContext.fileName());
+            EasyExcel.write(response.getOutputStream(), clazz).autoCloseStream(Boolean.FALSE).sheet(excelContext.sheetName()).doWrite(data);
+        } catch (Exception e) {
+            buildResponse(response, e);
+        }
+    }
+
     public static <T> void download(HttpServletResponse response, Class<T> clazz, List<T> data) {
 //        StaticComponentContainer.Modules.exportAllToAll();
         Assert.notNull(clazz, "clazz can't be null");

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

@@ -251,7 +251,7 @@ public class SckwTradeOrder {
     /**
      * 装货所在地区
      */
-    private Integer loadCityCode;
+    private String loadCityCode;
 
     /**
      * 装货所属区域名称
@@ -296,7 +296,7 @@ public class SckwTradeOrder {
     /**
      * 卸货所在地区
      */
-    private Integer unloadCityCode;
+    private String unloadCityCode;
 
     /**
      * 卸货所属区域名称

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

@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.mapping.Document;
+
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -368,5 +369,54 @@ public class SckwWaybillOrder{
      */
     private Integer delFlag;
 
+    /**
+     * 单据状态
+     */
+    private String status;
+
+    /**
+     * 循环/趟次
+     */
+    private String type;
+
+    /**
+     * 车队id
+     */
+    private String fleetId;
+    /**
+     * 车队姓名
+     */
+    private String fleetName;
+
+    /**
+     * 派车时间-创建时间
+     */
+    private Date sendCarTime;
+    /**
+     * 启送时间
+     */
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 装货区域
+     */
+    private String loadingCity;
+    /**
+     * 装货详细地址
+     */
+    private String loadingAddress;
+
+    /**
+     * 卸货区域
+     */
+    private String unloadingCity;
+    /**
+     * 卸货详细地址
+     */
+    private String unloadingAddress;
 
 }

+ 206 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/TradeOrderUpdateParam.java

@@ -0,0 +1,206 @@
+package com.sckw.mongo.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+import org.springframework.util.StringUtils;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * @author zk
+ * @desc MongoDB-交易订单信息
+ * @date 2023/7/8
+ */
+
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class TradeOrderUpdateParam {
+
+    /**
+     * 订单主键
+     */
+    private Long tOrderId;
+
+    /**
+     * 订单成交数量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 订单成交单价
+     */
+    private BigDecimal unitPrice;
+
+    /**
+     * 订单金额
+     */
+    private BigDecimal price;
+
+    /**
+     * 订单开始日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate startTime;
+
+    /**
+     * 订单结束日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endTime;
+
+    /**
+     * 订单交易方式(预付款、货到付款)
+     */
+    private String trading;
+
+    /**
+     * 订单提货方式(采方自提、供应配送)
+     */
+    private String pickupType;
+
+    /**
+     * 订单交付类型(签发交付、签收交付)
+     */
+    private String deliveryType;
+
+    /**
+     * 订单已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 订单实际交付量
+     */
+    private BigDecimal actualAmount;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 订单备注
+     */
+    private String remark;
+
+    /**
+     * 合同主键
+     */
+    private Long contractId;
+
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 合同mc
+     */
+    private String contractName;
+
+    /**
+     * 合同签约方式
+     */
+    private String contractSigningWay;
+
+    /**
+     * 更新人主键id
+     */
+    private Long updateBy;
+
+    /**
+     * 更新人姓名
+     */
+    private String updateByName;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+    /**
+     * @desc: 参数转换
+     * @author: yzc
+     * @date: 2023-07-17 9:16
+     * @Param param:
+     * @Param order:
+     * @return: com.sckw.mongo.model.SckwTradeOrder
+     */
+    public void convertSckwTradeOrder(TradeOrderUpdateParam param, SckwTradeOrder order) {
+        if (Objects.nonNull(param.getAmount())) {
+            order.setAmount(param.getAmount());
+        }
+        if (Objects.nonNull(param.getUnitPrice())) {
+            order.setUnitPrice(param.getUnitPrice());
+        }
+        if (Objects.nonNull(param.getPrice())) {
+            order.setPrice(param.getPrice());
+        }
+        if (Objects.nonNull(param.getStartTime())) {
+            order.setStartTime(param.getStartTime());
+        }
+        if (Objects.nonNull(param.getEndTime())) {
+            order.setEndTime(param.getEndTime());
+        }
+        if (StringUtils.hasText(param.getTrading())) {
+            order.setTrading(param.getTrading());
+        }
+        if (StringUtils.hasText(param.getPickupType())) {
+            order.setPickupType(param.getPickupType());
+        }
+        if (StringUtils.hasText(param.getDeliveryType())) {
+            order.setDeliveryType(param.getDeliveryType());
+        }
+        if (Objects.nonNull(param.getEntrustAmount())) {
+            order.setEntrustAmount(param.getEntrustAmount());
+        }
+        if (Objects.nonNull(param.getActualAmount())) {
+            order.setActualAmount(param.getActualAmount());
+        }
+        if (Objects.nonNull(param.getStatus())) {
+            order.setStatus(param.getStatus());
+        }
+        if (StringUtils.hasText(param.getRemark())) {
+            order.setRemark(param.getRemark());
+        }
+        if (Objects.nonNull(param.getContractId())) {
+            order.setContractId(param.getContractId());
+        }
+        if (StringUtils.hasText(param.getContractNo())) {
+            order.setContractNo(param.getContractNo());
+        }
+        if (StringUtils.hasText(param.getContractName())) {
+            order.setContractName(param.getContractName());
+        }
+        if (StringUtils.hasText(param.getContractSigningWay())) {
+            order.setContractSigningWay(param.getContractSigningWay());
+        }
+        if (Objects.nonNull(param.getUpdateBy())) {
+            order.setUpdateBy(param.getUpdateBy());
+        }
+        if (StringUtils.hasText(param.getUpdateByName())) {
+            order.setUpdateByName(param.getUpdateByName());
+        }
+        if (Objects.nonNull(param.getUpdateTime())) {
+            order.setUpdateTime(param.getUpdateTime());
+        }
+        if (Objects.nonNull(param.getDelFlag())) {
+            order.setDelFlag(param.getDelFlag());
+        }
+    }
+
+}

+ 1 - 1
sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/model/SckwBusSum.java

@@ -22,7 +22,7 @@ public class SckwBusSum {
     private String busSumType;
 
     /**
-     * 操作对象(1新增/2修改
+     * 操作对象(1新增/2全量更新/3部分更新
      */
     private Integer method;
 

+ 7 - 0
sckw-modules-api/pom.xml

@@ -7,6 +7,12 @@
         <groupId>com.sckw</groupId>
         <version>1.0.0</version>
     </parent>
+    <dependencies>
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-core</artifactId>
+        </dependency>
+    </dependencies>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>sckw-modules-api</artifactId>
@@ -19,6 +25,7 @@
         <module>sckw-transport-api</module>
         <module>sckw-product-api</module>
         <module>sckw-order-api</module>
+        <module>sckw-fleet-api</module>
     </modules>
 
     <properties>

+ 25 - 0
sckw-modules-api/sckw-fleet-api/pom.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>sckw-modules-api</artifactId>
+        <groupId>com.sckw</groupId>
+        <version>1.0.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>sckw-fleet-api</artifactId>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 29 - 0
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/RemoteFleetService.java

@@ -0,0 +1,29 @@
+package com.sckw.fleet.api;
+
+import com.sckw.fleet.api.model.vo.RDriverVo;
+import com.sckw.fleet.api.model.vo.RTruckVo;
+import java.util.Map;
+
+/**
+ * @author zk
+ * @desc 车队服务
+ * @date 2023/7/18 0018
+ */
+public interface RemoteFleetService {
+
+    /**
+     * @param driverIds 司机档案主键id,多个已逗号隔开
+     * @desc 查询司机信息
+     * @author zk
+     * @date 2023/7/18
+     **/
+    Map<Long, RDriverVo> findDriver(String driverIds);
+
+    /**
+     * @param truckNos 车牌号,多个已逗号隔开
+     * @desc 查询车辆信息
+     * @author zk
+     * @date 2023/7/18
+     **/
+    Map<Long, RTruckVo> findTruck(String truckNos);
+}

+ 49 - 0
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/model/vo/RDriverVo.java

@@ -0,0 +1,49 @@
+package com.sckw.fleet.api.model.vo;
+
+import lombok.Data;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author zk
+ * @desc 司机
+ * @date 2023/7/17 0017
+ */
+@Data
+public class RDriverVo implements Serializable {
+
+    /**
+     * 司机档案主键id
+     */
+    private Long id;
+
+    /**
+     * 司机姓名
+     */
+    private String name;
+
+    /**
+     * 司机手机号
+     */
+    private String phone;
+
+    /**
+     * 身份证号
+     */
+    private String idcard;
+
+    /**
+     * 总运单完成量
+     */
+    private Integer totalComplete;
+
+    /**
+     * 总运单接单量
+     */
+    private Integer totalTake;
+
+    /**
+     * 总运量(净重)
+     */
+    private BigDecimal totalWeight;
+}

+ 54 - 0
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/model/vo/RTruckVo.java

@@ -0,0 +1,54 @@
+package com.sckw.fleet.api.model.vo;
+
+import lombok.Data;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author zk
+ * @desc 车辆档案
+ * @date 2023/7/17 0017
+ */
+@Data
+public class RTruckVo implements Serializable {
+
+    /**
+     * 车辆档案主键id
+     */
+    private Long id;
+
+    /**
+     * 车牌号
+     */
+    private String truckNo;
+
+    /**
+     * 核定载质量/吨
+     */
+    private Double actualWeight;
+
+    /**
+     * 挂车号
+     */
+    private String trailerNo;
+
+    /**
+     * 总运单完成量
+     */
+    private Integer totalComplete;
+
+    /**
+     * 总运单接单量
+     */
+    private Integer totalTake;
+
+    /**
+     * 总运量(净重)
+     */
+    private BigDecimal totalWeight;
+
+    /**
+     * 车辆业务状态
+     */
+    private Integer businessStatus;
+}

+ 11 - 0
sckw-modules-api/sckw-modules-bom/pom.xml

@@ -34,6 +34,17 @@
                 <artifactId>sckw-message-api</artifactId>
                 <version>${project.version}</version>
             </dependency>
+
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-fleet-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.sckw</groupId>
+                <artifactId>sckw-transport-api</artifactId>
+                <version>1.0.0</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 </project>

+ 10 - 0
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/GoodsDetail.java

@@ -76,6 +76,11 @@ public class GoodsDetail {
      */
     private String unit;
 
+    /**
+     * 单位lab
+     */
+    private String unitLabel;
+
     /**
      * 尺寸大小
      */
@@ -86,6 +91,11 @@ public class GoodsDetail {
      */
     private BigDecimal taxRate;
 
+    /**
+     * 发票税率label
+     */
+    private String taxRateLabel;
+
     /**
      * 交易方式(value)(合同采购、直接采购、预付款、货到付款、到款发货)
      */

+ 28 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java

@@ -12,6 +12,24 @@ import java.util.Map;
  */
 public interface RemoteSystemService {
 
+    /**
+     * @param keys type#value,type#value
+     * @return Map<String, SysDictResDto>
+     * @desc: 根据类型id查字典,先查redis,没查到查数据库,查出来了存redis
+     * @author: czh
+     * @date: 2023/7/5
+     */
+    Map<String, SysDictResDto> queryDictMapByTypeValues(String keys);
+
+    /**
+     * @param type 类型
+     * @return Map<String, SysDictResDto>
+     * @desc: 根据类型id查字典,先查redis,没查到查数据库,查出来了存redis
+     * @author: czh
+     * @date: 2023/7/5
+     */
+    Map<String, SysDictResDto> queryDictMapByType(String type);
+
     /**
      * @param type 类型
      * @return SysDictResDto
@@ -84,6 +102,15 @@ public interface RemoteSystemService {
      */
     List<EntCacheResDto> queryEntCacheByName(String entName);
 
+    /**
+     * @param entIdList 企业id集合
+     * @return Map<Long, EntCacheResDto>
+     * @desc: 查企业树
+     * @author: czh
+     * @date: 2023/7/17
+     */
+    Map<Long, EntCacheResDto> queryEntTreeByIds(List<Long> entIdList);
+
     /**
      * @param userId 用户id
      * @return UserCacheResDto
@@ -128,4 +155,5 @@ public interface RemoteSystemService {
      * @date: 2023/7/11
      */
     UserCacheResDto queryManagerInfoByEntId(Long entId);
+
 }

+ 5 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/req/UpdatePasswordReqDto.java

@@ -16,6 +16,11 @@ public class UpdatePasswordReqDto implements Serializable {
     @Serial
     private static final long serialVersionUID = 610262871898122771L;
 
+    /**
+     * 主键
+     */
+    private Long id;
+
     /**
      * 账号
      */

+ 16 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/EntCacheResDto.java

@@ -55,6 +55,16 @@ public class EntCacheResDto implements Serializable {
      */
     private String phone;
 
+    /**
+     * 集团企业id
+     */
+    private Long parentId;
+
+    /**
+     * 主体单位们id
+     */
+    private String entDeptIds;
+
     /**
      * 机构信息
      */
@@ -64,4 +74,10 @@ public class EntCacheResDto implements Serializable {
      * 资质信息
      */
     private List<EntCertificateResDto> certificateInfo;
+
+    /**
+     * 下属单位
+     */
+    private List<EntCacheResDto> child;
+
 }

+ 1 - 1
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/KwsEnterpriseResDto.java

@@ -160,6 +160,6 @@ public class KwsEnterpriseResDto implements Serializable {
     /**
      * 专属客户经理(用户ID)
      */
-    private long manager;
+    private Long manager;
 
 }

+ 16 - 0
sckw-modules-api/sckw-transport-api/pom.xml

@@ -17,4 +17,20 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
+    <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-openfeign-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-core</artifactId>
+        </dependency>
+    </dependencies>
 </project>

+ 17 - 2
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/dubbo/TransportDubboService.java

@@ -1,8 +1,23 @@
 package com.sckw.transport.api.dubbo;
 
+import com.sckw.transport.api.model.dto.vo.KwtLogisticsOrderVO;
+
+import java.util.List;
+
 /**
- *
- *
+ * @author lfdc
+ * @version 1.0
+ * @className TransportDubboService
+ * @description 物流订单dubbo
+ * @company sckw
+ * @date 2023-07-17 10:06:27
  */
 public interface TransportDubboService {
+
+    /**
+     * 根据id 获取详情
+     * @param ids
+     * @return
+     */
+    List<KwtLogisticsOrderVO> getAcceptCarriageOrderDetail(List<String> ids);
 }

+ 180 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/dto/vo/KwtLogisticsOrderVO.java

@@ -0,0 +1,180 @@
+package com.sckw.transport.api.model.dto.vo;
+
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author lfdc
+ * @description 物流订单
+ * @date 2023-06-26 16:06:12
+ */
+@Data
+public class KwtLogisticsOrderVO implements Serializable {
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 交易订单id(kwo_trade_order)
+     */
+    private Long tOrderId;
+
+    /**
+     * 交易订单编号(kwo_trade_order)
+     */
+    private String tOrderNo;
+
+    /**
+     * 物流订单编号
+     */
+    private String lOrderNo;
+
+    /**
+     * 分包上级物流订单id
+     */
+    private Long pid;
+
+    /**
+     * 结算周期(周结、月结、季结)
+     */
+    private Long settlementCycle;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+
+    /**
+     * 运价
+     */
+    private BigDecimal price;
+
+    /**
+     * 运价方式(元/吨、元/车)
+     */
+    private Long priceType;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String unit;
+
+    /**
+     * 合理损耗
+     */
+    private BigDecimal loss;
+
+    /**
+     * 合理损耗单位(‰/kG)
+     */
+    private String lossUnit;
+
+    /**
+     * 商品价值(扣亏货值)
+     */
+    private BigDecimal goodsPrice;
+
+    /**
+     * 商品价值(扣亏货值)单位
+     */
+    private String goodsPriceUnit;
+
+    /**
+     * 计划开始日期
+     */
+    private Date startTime;
+
+    /**
+     * 计划结束日期
+     */
+    private Date entTime;
+
+    /**
+     * 分包量
+     */
+    private BigDecimal subcontractAmount;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 卸货量
+     */
+    private BigDecimal unloadAmount;
+
+    /**
+     * 装货量
+     */
+    private BigDecimal loadAmount;
+
+    /**
+     * 忽略剩余量
+     */
+    private BigDecimal ignoreAmount;
+
+    /**
+     * 亏吨量(装货量-卸货量)
+     */
+    private BigDecimal deficitAmount;
+
+    /**
+     * 亏吨扣款
+     */
+    private BigDecimal deficitPrice;
+
+    /**
+     * 付款方式(预付款、线下支付、第三方支付)
+     */
+    private Long payment;
+
+    /**
+     * 发票税率(%)
+     */
+    private BigDecimal taxRate;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态(0正常、1已锁)
+     */
+    private Integer status;
+
+    private Long createBy;
+
+    private Date createTime;
+
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    @TableLogic(value = "0")
+    private Integer delFlag;
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 85 - 0
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/dto/vo/LogisticsOrderDTO.java

@@ -0,0 +1,85 @@
+package com.sckw.transport.api.model.dto.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author lfdc
+ * @description 承运订单dto
+ * @date 2023-07-17 11:07:08
+ */
+@Data
+public class LogisticsOrderDTO {
+
+    /**
+     * 物流订单id
+     */
+    private String lOrderId;
+    /**
+     * 物流订单编号
+     */
+    private String lOrderNO;
+
+    /**
+     * 销售订单id
+     */
+    private String tOrderId;
+    /**
+     * 销售订单编号
+     */
+    private String tOrderNO;
+    /**
+     * 付款方式
+     */
+    private String payment;
+    /**
+     * 运输趟次
+     */
+    private Long count;
+    /**
+     * 计费方式
+     */
+    private String billingMode;
+    /**
+     * 合同
+     */
+    private String contract;
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+    /**
+     * 合同名称
+     */
+    private String contractName;
+    /**
+     * 承运单位
+     */
+    private String carrierCompany;
+    /**
+     * 托运单位
+     */
+    private String consignCompany;
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+    /**
+     * 计划量
+     */
+    private String amount;
+    /**
+     * 运价
+     */
+    private BigDecimal price;
+
+    /**
+     * 扣亏损值
+     */
+    private BigDecimal goodsPrice;
+    private BigDecimal loss;
+    private BigDecimal unloadAmount;
+    private BigDecimal loadAmount;
+
+}

+ 4 - 4
sckw-modules/sckw-contract/pom.xml

@@ -34,10 +34,6 @@
             <artifactId>sckw-common-remote</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>com.sckw</groupId>
-            <artifactId>sckw-common-datasource</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>com.sckw</groupId>
@@ -53,6 +49,10 @@
             <groupId>com.sckw</groupId>
             <artifactId>sckw-system-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-excel</artifactId>
+        </dependency>
 
     </dependencies>
 

+ 64 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCarrierController.java

@@ -0,0 +1,64 @@
+package com.sckw.contract.controller;
+
+import com.sckw.contract.model.vo.req.IdReqVo;
+import com.sckw.contract.model.vo.req.QueryListReqVo;
+import com.sckw.contract.service.KwcContractLogisticsService;
+import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.enums.EntTypeEnum;
+import com.sckw.core.web.response.HttpResult;
+import jakarta.validation.Valid;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author czh
+ * @desc 承运合同
+ * @date 2023/7/18
+ */
+@RestController
+@RequestMapping("kwcCarrier")
+public class KwcCarrierController {
+
+    @Autowired
+    private KwcContractLogisticsService kwcContractLogisticsService;
+
+    /**
+     * @desc 分页查询
+     * @param reqVo 分页入参
+     * @author czh
+     * @date 2023/7/17
+     * @return HttpResult
+     */
+    @RequestMapping("queryListByPage")
+    public HttpResult queryListByPage(@RequestBody QueryListReqVo reqVo) throws SystemException {
+        reqVo.setEntType(EntTypeEnum.LOGISTICS4.getCode());
+        return HttpResult.ok(kwcContractLogisticsService.queryListByPage(reqVo));
+    }
+
+    /**
+     * @desc: 合同详情
+     * @param reqVo id
+     * @author: czh
+     * @date 2023/7/16
+     * @return HttpResult
+     */
+    @PostMapping("detail")
+    public HttpResult detail(@Valid @RequestBody IdReqVo reqVo) throws SystemException {
+        return HttpResult.ok(kwcContractLogisticsService.detail(reqVo.getId()));
+    }
+
+    /**
+     * @desc: 导出
+     * @param reqVo 查询入参
+     * @author: czh
+     * @date 2023/7/17
+     */
+    @PostMapping("export")
+    public void export(@Valid @RequestBody QueryListReqVo reqVo) throws SystemException {
+        reqVo.setEntType(EntTypeEnum.LOGISTICS4.getCode());
+        kwcContractLogisticsService.export(reqVo);
+    }
+}

+ 162 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCheckedController.java

@@ -0,0 +1,162 @@
+package com.sckw.contract.controller;
+
+import com.sckw.contract.model.vo.req.ContractLogisticsReqVo;
+import com.sckw.contract.model.vo.req.IdReqVo;
+import com.sckw.contract.model.vo.req.IdsReqVo;
+import com.sckw.contract.model.vo.req.QueryListReqVo;
+import com.sckw.contract.service.*;
+import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.enums.EntTypeEnum;
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.response.HttpResult;
+import jakarta.validation.Valid;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author czh
+ * @desc 托运合同
+ * @date 2023/7/13
+ */
+@RestController
+@RequestMapping("kwcChecked")
+public class KwcCheckedController {
+
+    @Autowired
+    private KwcContractLogisticsService kwcContractLogisticsService;
+
+    /**
+     * @desc 分页查询
+     * @param reqVo 分页入参
+     * @author czh
+     * @date 2023/7/17
+     * @return HttpResult
+     */
+    @RequestMapping("queryListByPage")
+    public HttpResult queryListByPage(@RequestBody QueryListReqVo reqVo) throws SystemException {
+        reqVo.setEntType(EntTypeEnum.LOGISTICS3.getCode());
+        return HttpResult.ok(kwcContractLogisticsService.queryListByPage(reqVo));
+    }
+
+    /**
+     * @param reqVo 新增入参
+     * @return HttpResult
+     * @desc 新增托运合同
+     * @author czh
+     * @date 2023/7/13
+     */
+    @RequestMapping("add")
+    public HttpResult addCheckedContract(@Valid @RequestBody ContractLogisticsReqVo reqVo) throws SystemException {
+        kwcContractLogisticsService.addCheckedContract(reqVo);
+        return HttpResult.ok(HttpStatus.MSG_003);
+    }
+
+    /**
+     * @param reqVo 补充入参
+     * @desc: 补充合同
+     * @author: czh
+     * @date: 2023/7/14
+     */
+    @PostMapping("supplement")
+    public HttpResult supplement(@Valid @RequestBody ContractLogisticsReqVo reqVo) throws SystemException {
+        kwcContractLogisticsService.supplement(reqVo);
+        return HttpResult.ok(HttpStatus.MSG_003);
+    }
+
+    /**
+     * @desc: 合同详情
+     * @param reqVo id
+     * @author: czh
+     * @date 2023/7/16
+     * @return HttpResult
+     */
+    @PostMapping("detail")
+    public HttpResult detail(@Valid @RequestBody IdReqVo reqVo) throws SystemException {
+        return HttpResult.ok(kwcContractLogisticsService.detail(reqVo.getId()));
+    }
+
+    /**
+     * @desc: 发起签约
+     * @param reqVo id
+     * @author: czh
+     * @date 2023/7/16
+     * @return HttpResult
+     */
+    @PostMapping("submit")
+    public HttpResult submit(@Valid @RequestBody ContractLogisticsReqVo reqVo) throws SystemException {
+        kwcContractLogisticsService.submit(reqVo);
+        return HttpResult.ok();
+    }
+
+    /**
+     * @desc: 修改草稿
+     * @param reqVo id
+     * @author: czh
+     * @date 2023/7/16
+     * @return HttpResult
+     */
+    @PostMapping("update")
+    public HttpResult update(@Valid @RequestBody ContractLogisticsReqVo reqVo) throws SystemException {
+        kwcContractLogisticsService.update(reqVo);
+        return HttpResult.ok();
+    }
+
+
+    /**
+     * @desc: 手动完结
+     * @param reqVo ids
+     * @author: czh
+     * @date 2023/7/16
+     * @return HttpResult
+     */
+    @PostMapping("complete")
+    public HttpResult complete(@Valid @RequestBody IdsReqVo reqVo) throws SystemException {
+        kwcContractLogisticsService.complete(reqVo.getIds());
+        return HttpResult.ok();
+    }
+
+
+    /**
+     * @desc: 删除
+     * @param reqVo ids
+     * @author: czh
+     * @date 2023/7/16
+     * @return HttpResult
+     */
+    @PostMapping("delete")
+    public HttpResult delete(@Valid @RequestBody IdsReqVo reqVo) throws SystemException {
+        kwcContractLogisticsService.delete(reqVo.getIds());
+        return HttpResult.ok();
+    }
+
+
+    /**
+     * @desc: 导出
+     * @param reqVo 查询入参
+     * @author: czh
+     * @date 2023/7/17
+     */
+    @PostMapping("export")
+    public void export(@Valid @RequestBody QueryListReqVo reqVo) throws SystemException {
+        reqVo.setEntType(EntTypeEnum.LOGISTICS3.getCode());
+        kwcContractLogisticsService.export(reqVo);
+    }
+
+
+    /**
+     * @return HttpResult
+     * @desc: 查询当前企业的托运合同
+     * @author: czh
+     * @date: 2023/7/18
+     */
+    @PostMapping("queryCurrentEntCheckedContractList")
+    public HttpResult queryCurrentEntCheckedContractList() throws SystemException {
+        return HttpResult.ok(kwcContractLogisticsService.queryCurrentEntCheckedContractList());
+    }
+
+
+
+}

+ 15 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcContractTradeController.java

@@ -0,0 +1,15 @@
+package com.sckw.contract.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author czh
+ * @desc 销售合同
+ * @date 2023/7/13
+ */
+@RestController
+@RequestMapping("kwcContractTrade")
+public class KwcContractTradeController {
+    
+}

+ 20 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractLogisticsGoodsMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.entity.KwcContractLogisticsGoods;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_logistics_goods(物流合同商品信息)】的数据库操作Mapper
+* @createDate 2023-07-13 13:36:19
+* @Entity com.sckw.contract.model.entity.KwcContractLogisticsGoods
+*/
+@Mapper
+public interface KwcContractLogisticsGoodsMapper extends BaseMapper<KwcContractLogisticsGoods> {
+
+}
+
+
+
+

+ 33 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractLogisticsMapper.java

@@ -0,0 +1,33 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.dto.req.QueryListReqDto;
+import com.sckw.contract.model.entity.KwcContractLogistics;
+import com.sckw.contract.model.vo.req.QueryListReqVo;
+import com.sckw.contract.model.vo.res.QueryListResVo;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_logistics(物流合同(承运合同/托运合同))】的数据库操作Mapper
+* @createDate 2023-07-13 13:36:19
+* @Entity com.sckw.contract.model.entity.KwcContractLogistics
+*/
+@Mapper
+public interface KwcContractLogisticsMapper extends BaseMapper<KwcContractLogistics> {
+
+    /**
+     * @desc: 查询
+     * @param: reqVo
+     * @author: czh
+     * @date 2023/7/17
+     * @return QueryListResVo
+     */
+    List<QueryListResVo> queryList(QueryListReqDto reqVo);
+}
+
+
+
+

+ 20 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractLogisticsTrackMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.entity.KwcContractLogisticsTrack;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_logistics_track(物流合同(承运合同/托运合同)-物流订单)】的数据库操作Mapper
+* @createDate 2023-07-13 13:36:19
+* @Entity com.sckw.contract.model.entity.KwcContractLogisticsTrack
+*/
+@Mapper
+public interface KwcContractLogisticsTrackMapper extends BaseMapper<KwcContractLogisticsTrack> {
+
+}
+
+
+
+

+ 20 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractLogisticsUnitMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.entity.KwcContractLogisticsUnit;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_logistics_unit(物流合同采购/销售企业信息)】的数据库操作Mapper
+* @createDate 2023-07-13 13:36:19
+* @Entity com.sckw.contract.model.entity.KwcContractLogisticsUnit
+*/
+@Mapper
+public interface KwcContractLogisticsUnitMapper extends BaseMapper<KwcContractLogisticsUnit> {
+
+}
+
+
+
+

+ 20 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTemplateMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.entity.KwcContractTemplate;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_template(合同模版)】的数据库操作Mapper
+* @createDate 2023-07-13 13:36:19
+* @Entity com.sckw.contract.model.entity.KwcContractTemplate
+*/
+@Mapper
+public interface KwcContractTemplateMapper extends BaseMapper<KwcContractTemplate> {
+
+}
+
+
+
+

+ 20 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTradeGoodsMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.entity.KwcContractTradeGoods;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_trade_goods(交易合同商品信息)】的数据库操作Mapper
+* @createDate 2023-07-13 13:36:19
+* @Entity com.sckw.contract.model.entity.KwcContractTradeGoods
+*/
+@Mapper
+public interface KwcContractTradeGoodsMapper extends BaseMapper<KwcContractTradeGoods> {
+
+}
+
+
+
+

+ 20 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTradeMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.entity.KwcContractTrade;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_trade(交易合同(采购合同/销售合同))】的数据库操作Mapper
+* @createDate 2023-07-13 13:36:19
+* @Entity com.sckw.contract.model.entity.KwcContractTrade
+*/
+@Mapper
+public interface KwcContractTradeMapper extends BaseMapper<KwcContractTrade> {
+
+}
+
+
+
+

+ 20 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTradeOrderMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.entity.KwcContractTradeOrder;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_trade_order(交易合同(采购合同/销售合同)-状态记录)】的数据库操作Mapper
+* @createDate 2023-07-13 13:36:19
+* @Entity com.sckw.contract.model.entity.KwcContractTradeOrder
+*/
+@Mapper
+public interface KwcContractTradeOrderMapper extends BaseMapper<KwcContractTradeOrder> {
+
+}
+
+
+
+

+ 20 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTradeTrackMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.entity.KwcContractTradeTrack;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_trade_track(交易合同(采购合同/销售合同)-交易订单(采购订单/销售订单))】的数据库操作Mapper
+* @createDate 2023-07-13 13:36:19
+* @Entity com.sckw.contract.model.entity.KwcContractTradeTrack
+*/
+@Mapper
+public interface KwcContractTradeTrackMapper extends BaseMapper<KwcContractTradeTrack> {
+
+}
+
+
+
+

+ 20 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractTradeUnitMapper.java

@@ -0,0 +1,20 @@
+package com.sckw.contract.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.entity.KwcContractTradeUnit;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_trade_unit(交易合同采购/销售企业信息)】的数据库操作Mapper
+* @createDate 2023-07-13 13:36:19
+* @Entity com.sckw.contract.model.entity.KwcContractTradeUnit
+*/
+@Mapper
+public interface KwcContractTradeUnitMapper extends BaseMapper<KwcContractTradeUnit> {
+
+}
+
+
+
+

+ 50 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/dto/req/QueryListReqDto.java

@@ -0,0 +1,50 @@
+package com.sckw.contract.model.dto.req;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author czh
+ * @desc 查询入参
+ * @date 2023/7/18
+ */
+@Data
+public class QueryListReqDto {
+
+    /**
+     * ID集合
+     */
+    private List<Long> idList;
+
+    /**
+     * 单位名称、联系人、联系电话
+     */
+    private String keywords;
+
+    /**
+     * 创建结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 创建开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 合同状态  0已签约 1已完结 2已保存(草稿) 3签约中
+     */
+    private Integer status;
+
+    /**
+     * 合同单位类型 3托运  4承运
+     */
+    private Integer entType;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+}

+ 128 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractLogistics.java

@@ -0,0 +1,128 @@
+package com.sckw.contract.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 物流合同(承运合同/托运合同)
+ * @TableName kwc_contract_logistics
+ */
+@TableName(value ="kwc_contract_logistics")
+@Data
+public class KwcContractLogistics implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 合同名称
+     */
+    private String name;
+
+    /**
+     * 签约方式
+     */
+    private String signingWay;
+
+    /**
+     * 计费方式(1按装货量、2按卸货量、3按车次)
+     */
+    private Long charging;
+
+    /**
+     * 交易方式(1预付款、2货到付款)
+     */
+    private Long trading;
+
+    /**
+     * 开始日期
+     */
+    private Date startTime;
+
+    /**
+     * 结束日期
+     */
+    private Date endTime;
+
+    /**
+     * 数量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 履行量
+     */
+    private BigDecimal performedAmount;
+
+    /**
+     * 签署文件
+     */
+    private String signingUrl;
+
+    /**
+     * 已签署文件
+     */
+    private String signedUrl;
+
+    /**
+     * 签约编号
+     */
+    private String signingNo;
+
+    /**
+     * 合同关联id
+     */
+    private Long contractPid;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态  0已签约 1已完结 2已保存(草稿) 3签约中
+     */
+    private Integer status;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+}

+ 113 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractLogisticsGoods.java

@@ -0,0 +1,113 @@
+package com.sckw.contract.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 物流合同商品信息
+ * @TableName kwc_contract_logistics_goods
+ */
+@TableName(value ="kwc_contract_logistics_goods")
+@Data
+public class KwcContractLogisticsGoods implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 合同id(kwc_contract_logistics)
+     */
+    private Long contractId;
+
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+
+    /**
+     * sku
+     */
+    private Long skuId;
+
+    /**
+     * 数量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String unit;
+
+    /**
+     * 
+     */
+    private BigDecimal price;
+
+    /**
+     * 履行量
+     */
+    private BigDecimal performedAmount;
+
+    /**
+     * 合理损耗
+     */
+    private BigDecimal loss;
+
+    /**
+     * 合理损耗单位
+     */
+    private String lossUnit;
+
+    /**
+     * 亏吨扣款
+     */
+    private BigDecimal deficitPrice;
+
+    /**
+     * 亏吨扣款单位
+     */
+    private String deficitUnit;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态(0正常、1已锁)
+     */
+    private Integer status;
+
+    /**
+     * 
+     */
+    private Long createBy;
+
+    /**
+     * 
+     */
+    private Date createTime;
+
+    /**
+     * 
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+}

+ 67 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractLogisticsTrack.java

@@ -0,0 +1,67 @@
+package com.sckw.contract.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 物流合同(承运合同/托运合同)-物流订单
+ * @TableName kwc_contract_logistics_track
+ */
+@TableName(value ="kwc_contract_logistics_track")
+@Data
+public class KwcContractLogisticsTrack implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 合同id
+     */
+    private Long contractId;
+
+    /**
+     * 状态类型(1审批状态、2签约状态、3履约状态)
+     */
+    private Integer type;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态(0通过、1不通过)
+     */
+    private Integer status;
+
+    /**
+     * 
+     */
+    private Long createBy;
+
+    /**
+     * 
+     */
+    private Date createTime;
+
+    /**
+     * 
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+}

+ 92 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractLogisticsUnit.java

@@ -0,0 +1,92 @@
+package com.sckw.contract.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 物流合同采购/销售企业信息
+ * @TableName kwc_contract_logistics_unit
+ */
+@TableName(value ="kwc_contract_logistics_unit")
+@Data
+public class KwcContractLogisticsUnit implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 物流合同id
+     */
+    private Long contractId;
+
+    /**
+     * 单位类型(1托运单位、2承运单位)
+     */
+    private Integer unitType;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 企业名称
+     */
+    private String firmName;
+
+    /**
+     * 联系人姓名
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 签约电话
+     */
+    private String signPhone;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态(0正常、1已锁)
+     */
+    private Integer status;
+
+    /**
+     * 
+     */
+    private Long createBy;
+
+    /**
+     * 
+     */
+    private Date createTime;
+
+    /**
+     * 
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+}

+ 78 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTemplate.java

@@ -0,0 +1,78 @@
+package com.sckw.contract.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 合同模版
+ * @TableName kwc_contract_template
+ */
+@TableName(value ="kwc_contract_template")
+@Data
+public class KwcContractTemplate implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 合同编号
+     */
+    private String code;
+
+    /**
+     * 合同名称
+     */
+    private String name;
+
+    /**
+     * 合同地址
+     */
+    private String url;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态(0正常、1已锁)
+     */
+    private Integer status;
+
+    /**
+     * 
+     */
+    private Long createBy;
+
+    /**
+     * 
+     */
+    private Date createTime;
+
+    /**
+     * 
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+}

+ 123 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTrade.java

@@ -0,0 +1,123 @@
+package com.sckw.contract.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 交易合同(采购合同/销售合同)
+ * @TableName kwc_contract_trade
+ */
+@TableName(value ="kwc_contract_trade")
+@Data
+public class KwcContractTrade implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 合同名称
+     */
+    private String name;
+
+    /**
+     * 签约方式(1线上签约、2线下签约)
+     */
+    private Long signingWay;
+
+    /**
+     * 交易方式(1预付款、2货到付款)
+     */
+    private Long trading;
+
+    /**
+     * 开始日期
+     */
+    private Date startTime;
+
+    /**
+     * 结束日期
+     */
+    private Date endTime;
+
+    /**
+     * 数量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 履行量
+     */
+    private BigDecimal performedAmount;
+
+    /**
+     * 签署文件
+     */
+    private String signingUrl;
+
+    /**
+     * 已签署文件
+     */
+    private String signedUrl;
+
+    /**
+     * 签约编号
+     */
+    private String signingNo;
+
+    /**
+     * 合同关联id
+     */
+    private Long contractPid;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 签约状态(签约中、已签约、已完结(结算时间已完成)、已解约、签约失败)
+     */
+    private Integer status;
+
+    /**
+     * 
+     */
+    private Long createBy;
+
+    /**
+     * 
+     */
+    private Date createTime;
+
+    /**
+     * 
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+}

+ 93 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTradeGoods.java

@@ -0,0 +1,93 @@
+package com.sckw.contract.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 交易合同商品信息
+ * @TableName kwc_contract_trade_goods
+ */
+@TableName(value ="kwc_contract_trade_goods")
+@Data
+public class KwcContractTradeGoods implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 合同id(kwc_contract_trade)
+     */
+    private Long contractId;
+
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+
+    /**
+     * 商品skuid
+     */
+    private Long skuId;
+
+    /**
+     * 数量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String unit;
+
+    /**
+     * 
+     */
+    private BigDecimal price;
+
+    /**
+     * 履行量
+     */
+    private BigDecimal performedAmount;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态(0正常、1已锁)
+     */
+    private Integer status;
+
+    /**
+     * 
+     */
+    private Long createBy;
+
+    /**
+     * 
+     */
+    private Date createTime;
+
+    /**
+     * 
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+}

+ 73 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTradeOrder.java

@@ -0,0 +1,73 @@
+package com.sckw.contract.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 交易合同(采购合同/销售合同)-状态记录
+ * @TableName kwc_contract_trade_order
+ */
+@TableName(value ="kwc_contract_trade_order")
+@Data
+public class KwcContractTradeOrder implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 合同id
+     */
+    private Long contractId;
+
+    /**
+     * 订单id(销售订单/采购订单)
+     */
+    private Long orderId;
+
+    /**
+     * 订单编号(销售订单/采购订单)
+     */
+    private String orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态(0正常、1已锁)
+     */
+    private Integer status;
+
+    /**
+     * 
+     */
+    private Long createBy;
+
+    /**
+     * 
+     */
+    private Date createTime;
+
+    /**
+     * 
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+}

+ 63 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTradeTrack.java

@@ -0,0 +1,63 @@
+package com.sckw.contract.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 交易合同(采购合同/销售合同)-交易订单(采购订单/销售订单)
+ * @TableName kwc_contract_trade_track
+ */
+@TableName(value ="kwc_contract_trade_track")
+@Data
+public class KwcContractTradeTrack implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 合同id
+     */
+    private Long contractId;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态(0通过、1不通过)
+     */
+    private Integer status;
+
+    /**
+     * 
+     */
+    private Long createBy;
+
+    /**
+     * 
+     */
+    private Date createTime;
+
+    /**
+     * 
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+}

+ 92 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/entity/KwcContractTradeUnit.java

@@ -0,0 +1,92 @@
+package com.sckw.contract.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 交易合同采购/销售企业信息
+ * @TableName kwc_contract_trade_unit
+ */
+@TableName(value ="kwc_contract_trade_unit")
+@Data
+public class KwcContractTradeUnit implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 交易合同id
+     */
+    private Long contractId;
+
+    /**
+     * 单位类型(1销售单位、2采购单位)
+     */
+    private Integer unitType;
+
+    /**
+     * 企业名称
+     */
+    private String firmName;
+
+    /**
+     * 联系人姓名
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 签约电话
+     */
+    private String signHone;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 用户状态(0正常、1已锁)
+     */
+    private Integer status;
+
+    /**
+     * 
+     */
+    private Long createBy;
+
+    /**
+     * 
+     */
+    private Date createTime;
+
+    /**
+     * 
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+}

+ 55 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ContractLogisticsReqVo.java

@@ -0,0 +1,55 @@
+package com.sckw.contract.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author czh
+ * @desc 物流合同新增入参
+ * @date 2023/7/13
+ */
+@Data
+public class ContractLogisticsReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -3606037883613411620L;
+
+    /**
+     * 合同id 修改时必传
+     */
+    private Long id;
+
+    /**
+     * 父合同ID 补充合同
+     */
+    private Long pId;
+
+    /**
+     * 基础信息
+     */
+    @NotNull(message = "基础信息不能为空")
+    private LogisticsBaseInfoReqVo baseInfo;
+
+    /**
+     * 合同文件
+     */
+    @NotBlank(message = "合同文件不能为空")
+    private String contractFile;
+
+    /**
+     * 标的信息
+     */
+    @NotNull(message = "标的信息不能为空")
+    private List<LogisticsGoodsInfoReqVo> goodsInfo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 26 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/IdReqVo.java

@@ -0,0 +1,26 @@
+package com.sckw.contract.model.vo.req;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc id 入参
+ * @date 2023/7/13
+ */
+@Data
+public class IdReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 3027498279284285824L;
+
+    /**
+     * 主键
+     */
+    @NotNull(message = "id不能为空")
+    private Long id;
+
+}

+ 26 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/IdsReqVo.java

@@ -0,0 +1,26 @@
+package com.sckw.contract.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc ids 入参
+ * @date 2023/7/13
+ */
+@Data
+public class IdsReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 3027498279284285824L;
+
+    /**
+     * 主键
+     */
+    @NotBlank(message = "id不能为空")
+    private String ids;
+
+}

+ 80 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/LogisticsBaseInfoReqVo.java

@@ -0,0 +1,80 @@
+package com.sckw.contract.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 物流合同基础信息
+ * @date 2023/7/13
+ */
+@Data
+public class LogisticsBaseInfoReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1427836562492850217L;
+
+    /**
+     * 承运单位id
+     */
+    @NotNull(message = "承运单位不能为空")
+    private Long carrierEntId;
+
+    /**
+     * 承运单位联系电话
+     */
+    @NotBlank(message = "承运单位联系电话不能为空")
+    private String carrierPhone;
+
+    /**
+     * 计费方式(1按装货量、2按卸货量、3按车次)
+     */
+    @NotNull(message = "计费方式不能为空")
+    private String charging;
+
+    /**
+     * 托运单位id
+     */
+    @NotNull(message = "托运单位不能为空")
+    private Long checkedEntId;
+
+    /**
+     * 托运单位联系电话
+     */
+    @NotBlank(message = "托运单位联系电话不能为空")
+    private String checkedPhone;
+
+    /**
+     * 合同编号
+     */
+    @NotBlank(message = "合同编号不能为空")
+    private String contractCode;
+
+    /**
+     * 合同名称
+     */
+    @NotBlank(message = "合同名称不能为空")
+    private String contractName;
+
+    /**
+     * 终止时间
+     */
+    private Date endTime;
+
+    /**
+     * 签约方式(1线上签约、2线下签约)
+     */
+    @NotNull(message = "签约方式不能为空")
+    private Integer signingWay;
+
+    /**
+     * 生效时间
+     */
+    @NotNull(message = "生效时间不能为空")
+    private Date startTime;
+}

+ 62 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/LogisticsGoodsInfoReqVo.java

@@ -0,0 +1,62 @@
+package com.sckw.contract.model.vo.req;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author czh
+ * @desc 物流合同标的信息
+ * @date 2023/7/13
+ */
+@Data
+public class LogisticsGoodsInfoReqVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -1110645263914068341L;
+
+    /**
+     * 商品id
+     */
+    @NotNull(message = "商品不能为空")
+    private Long goodsId;
+
+    /**
+     * 运量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 运量单位字典id
+     */
+    private String unit;
+
+    /**
+     * 运价
+     */
+    private BigDecimal price;
+
+    /**
+     * 合理损耗
+     */
+    private BigDecimal loss;
+
+    /**
+     * 合理损耗单位
+     */
+    private String lossUnit;
+
+    /**
+     * 扣亏货值
+     */
+    private BigDecimal deficit;
+
+    /**
+     * 字典id  扣亏货值
+     */
+    private String deficitUnit;
+
+}

+ 47 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/QueryListReqVo.java

@@ -0,0 +1,47 @@
+package com.sckw.contract.model.vo.req;
+
+import com.sckw.core.model.page.PageRequest;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class QueryListReqVo extends PageRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -5785283278707737826L;
+
+    /**
+     * 主键id
+     */
+    private String ids;
+
+    /**
+     * 单位名称、联系人、联系电话
+     */
+    private String keywords;
+
+    /**
+     * 创建结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 创建开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 合同状态  0已签约 1已完结 2已保存(草稿) 3签约中
+     */
+    private Integer status;
+
+    /**
+     * 合同单位类型 3托运  4承运
+     */
+    private Integer entType;
+
+}

+ 45 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/ContractLogisticsDetailResVo.java

@@ -0,0 +1,45 @@
+package com.sckw.contract.model.vo.res;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author czh
+ * @desc 物流合同详情返参
+ * @date 2023/7/13
+ */
+@Data
+public class ContractLogisticsDetailResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 6152841290674824503L;
+
+    /**
+     * 基础信息
+     */
+    private LogisticsBaseInfoResVo baseInfo;
+
+    /**
+     * 合同文件
+     */
+    private List<String> contractFile;
+
+    /**
+     * 标的信息
+     */
+    private List<LogisticsGoodsInfoResVo> goodsInfo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 补充合同
+     */
+    private List<ContractLogisticsDetailResVo> child;
+
+}

+ 65 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/LogisticsBaseInfoResVo.java

@@ -0,0 +1,65 @@
+package com.sckw.contract.model.vo.res;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class LogisticsBaseInfoResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 2834018651817251590L;
+
+    /**
+     * 承运单位
+     */
+    private String carrierEntName;
+
+    /**
+     * 承运单位联系电话
+     */
+    private String carrierPhone;
+
+    /**
+     * 计费方式
+     */
+    private String chargingName;
+
+    /**
+     * 托运单位
+     */
+    private String checkedEntName;
+
+    /**
+     * 托运单位联系电话
+     */
+    private String checkedPhone;
+
+    /**
+     * 合同编号
+     */
+    private String contractCode;
+
+    /**
+     * 合同名称
+     */
+    private String contractName;
+
+    /**
+     * 终止时间
+     */
+    private Date endTime;
+
+    /**
+     * 签约方式
+     */
+    private String signingWayName;
+
+    /**
+     * 生效时间
+     */
+    private Date startTime;
+
+}

+ 61 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/LogisticsGoodsInfoResVo.java

@@ -0,0 +1,61 @@
+package com.sckw.contract.model.vo.res;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+public class LogisticsGoodsInfoResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 5173885241592701709L;
+
+    /**
+     * 运量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 单位(运量为 X ,运价为 元/X)
+     */
+    private String unit;
+
+    /**
+     * 运价
+     */
+    private BigDecimal price;
+
+    /**
+     * 运价单位
+     */
+    private String priceUnit;
+
+    /**
+     * 亏吨扣款
+     */
+    private BigDecimal deficitPrice;
+
+    /**
+     * 亏吨扣款单位
+     */
+    private String deficitUnit;
+
+    /**
+     * 商品
+     */
+    private String goodsName;
+
+    /**
+     * 合理损耗
+     */
+    private BigDecimal loss;
+
+    /**
+     * 合理损耗单位
+     */
+    private String lossUnit;
+
+
+}

+ 115 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/QueryListResVo.java

@@ -0,0 +1,115 @@
+package com.sckw.contract.model.vo.res;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.sckw.core.utils.LongToStringUtils;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+@Data
+public class QueryListResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -8699172452542787584L;
+
+    /**
+     * 合同总量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 承运单位名
+     */
+    private String carrierEntName;
+
+    /**
+     * 计费方式中文名
+     */
+    private String chargingName;
+
+    /**
+     * 托运单位名
+     */
+    private String checkedEntName;
+
+    /**
+     * 合同名称
+     */
+    private String contractName;
+
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 发起人
+     */
+    private String createByName;
+
+    /**
+     * 发起单位
+     */
+    private String createEntName;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 终止日期
+     */
+    private Date endTime;
+
+    /**
+     * 主键id
+     */
+    @JsonSerialize(using = LongToStringUtils.class)
+    private Long id;
+
+    /**
+     * 发起时间
+     */
+    private Date initiateTime;
+
+    /**
+     * 已履约量
+     */
+    private BigDecimal performedAmount;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 签约方式中文名
+     */
+    private String signingWayName;
+
+    /**
+     * 签约时间
+     */
+    private Date signTime;
+
+    /**
+     * 起始日期
+     */
+    private Date startTime;
+
+    /**
+     * 合同状态
+     */
+    private Integer status;
+
+    /**
+     * 合同状态中文名
+     */
+    private String statusName;
+
+}

+ 27 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/CommonBusinessService.java

@@ -0,0 +1,27 @@
+package com.sckw.contract.service;
+
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class CommonBusinessService {
+
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+
+    /**
+     * @return Map
+     * @desc: 查企业
+     * @param: entIdList 企业id集合
+     * @author: czh
+     * @date 2023/7/16
+     */
+    public Map<Long, EntCacheResDto> queryEntCacheMapByIds(List<Long> entIdList) {
+        return remoteSystemService.queryEntCacheMapByIds(entIdList);
+    }
+}

+ 100 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsGoodsService.java

@@ -0,0 +1,100 @@
+package com.sckw.contract.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sckw.contract.dao.KwcContractLogisticsGoodsMapper;
+import com.sckw.contract.dao.KwcContractTradeGoodsMapper;
+import com.sckw.contract.model.entity.KwcContractLogisticsGoods;
+import com.sckw.contract.model.entity.KwcContractTradeGoods;
+import com.sckw.contract.model.vo.req.LogisticsGoodsInfoReqVo;
+import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.core.utils.IdWorker;
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.context.LoginUserHolder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author PC
+ * @description 针对表【kwc_contract_logistics_goods(物流合同商品信息)】的数据库操作Service实现
+ * @createDate 2023-07-13 13:36:19
+ */
+@Service
+public class KwcContractLogisticsGoodsService {
+
+
+    @Autowired
+    private KwcContractLogisticsGoodsMapper kwcContractLogisticsGoodsMapper;
+
+
+    /**
+     * @param contractId 合同id, goodsInfoList标的信息
+     * @desc: 保存交易合同商品信息
+     * @author: czh
+     * @date: 2023/7/14
+     */
+    public void saveContractLogisticsGoods(Long contractId, List<LogisticsGoodsInfoReqVo> goodsInfoList) throws SystemException {
+        //todo 调dubbo接口返回商品详情 填充sku
+        List<Long> goodsIdList = goodsInfoList.stream().map(LogisticsGoodsInfoReqVo::getGoodsId).toList();
+
+        Long userId = LoginUserHolder.getUserId();
+        Date date = new Date();
+        for (LogisticsGoodsInfoReqVo logisticsGoodsInfoReqVo : goodsInfoList) {
+            KwcContractLogisticsGoods kwcContractLogisticsGoods = new KwcContractLogisticsGoods();
+            BeanUtils.copyProperties(logisticsGoodsInfoReqVo, kwcContractLogisticsGoods);
+            kwcContractLogisticsGoods.setId(new IdWorker(1L).nextId());
+            kwcContractLogisticsGoods.setContractId(contractId);
+            kwcContractLogisticsGoods.setSkuId(0L);
+            kwcContractLogisticsGoods.setPerformedAmount(new BigDecimal("0"));
+            kwcContractLogisticsGoods.setStatus(Global.NO);
+            kwcContractLogisticsGoods.setCreateBy(userId);
+            kwcContractLogisticsGoods.setCreateTime(date);
+            kwcContractLogisticsGoods.setUpdateBy(userId);
+            kwcContractLogisticsGoods.setUpdateTime(date);
+            kwcContractLogisticsGoods.setDelFlag(Global.NO);
+            if (kwcContractLogisticsGoodsMapper.insert(kwcContractLogisticsGoods) <= 0) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+            }
+        }
+    }
+
+    /**
+     * @return KwcContractLogisticsGoods
+     * @desc: 根据合同id查标的信息
+     * @param: contractId 合同id
+     * @author: czh
+     * @date 2023/7/16
+     */
+    public List<KwcContractLogisticsGoods> queryGoodsInfoByContractId(Long contractId) {
+        LambdaQueryWrapper<KwcContractLogisticsGoods> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwcContractLogisticsGoods::getContractId, contractId);
+        wrapper.eq(KwcContractLogisticsGoods::getDelFlag, Global.NO);
+        wrapper.eq(KwcContractLogisticsGoods::getStatus, Global.NO);
+        return kwcContractLogisticsGoodsMapper.selectList(wrapper);
+    }
+
+    /**
+     * @return 修改个数
+     * @desc: 修改
+     * @param: list 实体类
+     * @author: czh
+     * @date 2023/7/17
+     */
+    public int updateBatch(List<KwcContractLogisticsGoods> list) {
+        int count = 0;
+        for (KwcContractLogisticsGoods kwcContractLogisticsGoods : list) {
+            count += kwcContractLogisticsGoodsMapper.updateById(kwcContractLogisticsGoods);
+        }
+        return count;
+    }
+
+}
+
+
+
+

+ 407 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java

@@ -0,0 +1,407 @@
+package com.sckw.contract.service;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.*;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.sckw.contract.dao.KwcContractLogisticsMapper;
+import com.sckw.contract.model.dto.req.QueryListReqDto;
+import com.sckw.contract.model.entity.KwcContractLogistics;
+import com.sckw.contract.model.entity.KwcContractLogisticsGoods;
+import com.sckw.contract.model.entity.KwcContractLogisticsUnit;
+import com.sckw.contract.model.vo.req.ContractLogisticsReqVo;
+import com.sckw.contract.model.vo.req.LogisticsBaseInfoReqVo;
+import com.sckw.contract.model.vo.req.QueryListReqVo;
+import com.sckw.contract.model.vo.res.ContractLogisticsDetailResVo;
+import com.sckw.contract.model.vo.res.LogisticsBaseInfoResVo;
+import com.sckw.contract.model.vo.res.LogisticsGoodsInfoResVo;
+import com.sckw.contract.model.vo.res.QueryListResVo;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.ContractStatusEnum;
+import com.sckw.core.model.enums.CooperateTypeEnum;
+import com.sckw.core.model.enums.SigningWayEnum;
+import com.sckw.core.model.page.PageHelperUtil;
+import com.sckw.core.model.page.PageResult;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.IdWorker;
+import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.excel.utils.EasyExcelUtil;
+import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.SysDictResDto;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @author PC
+ * @description 针对表【kwc_contract_logistics(物流合同(承运合同/托运合同))】的数据库操作Service实现
+ * @createDate 2023-07-13 13:36:19
+ */
+@Service
+@Slf4j
+public class KwcContractLogisticsService {
+
+    @Autowired
+    private KwcContractLogisticsMapper kwcContractLogisticsMapper;
+
+    @Autowired
+    private KwcContractLogisticsGoodsService kwcContractLogisticsGoodsService;
+
+    @Autowired
+    private KwcContractLogisticsTrackService kwcContractLogisticsTrackService;
+
+    @Autowired
+    private KwcContractLogisticsUnitService kwcContractLogisticsUnitService;
+
+
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    private RemoteSystemService remoteSystemService;
+
+    /**
+     * @param reqVo 新增入参
+     * @desc: 新增托运合同
+     * @author: czh
+     * @date: 2023/7/13
+     */
+    @Transactional(rollbackFor = {})
+    public Long addCheckedContract(ContractLogisticsReqVo reqVo) {
+        LogisticsBaseInfoReqVo baseInfo = reqVo.getBaseInfo();
+
+        //创建合同
+        KwcContractLogistics kwcContractLogistics = getKwcContractLogistics(baseInfo, reqVo.getRemark(), reqVo.getPId());
+        long contactId = new IdWorker(1L).nextId();
+        kwcContractLogistics.setId(contactId);
+        kwcContractLogistics.setStatus(ContractStatusEnum.SAVE.getCode());
+        kwcContractLogistics.setSigningUrl(reqVo.getContractFile());
+        if (kwcContractLogisticsMapper.insert(kwcContractLogistics) <= 0) {
+            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+        }
+
+        //保存交易合同商品信息
+        kwcContractLogisticsGoodsService.saveContractLogisticsGoods(kwcContractLogistics.getId(), reqVo.getGoodsInfo());
+
+        //存单位信息
+        kwcContractLogisticsUnitService.saveContractLogisticsUnit(kwcContractLogistics.getId(), baseInfo);
+
+        return contactId;
+    }
+
+    public KwcContractLogistics getKwcContractLogistics(LogisticsBaseInfoReqVo baseInfo, String remark, Long pid) {
+        Date date = new Date();
+        KwcContractLogistics kwcContractLogistics = new KwcContractLogistics();
+        kwcContractLogistics.setEntId(LoginUserHolder.getEntId());
+        kwcContractLogistics.setContractNo(baseInfo.getContractCode());
+        kwcContractLogistics.setName(baseInfo.getContractName());
+        kwcContractLogistics.setSigningWay(SigningWayEnum.getName(baseInfo.getSigningWay()).getName());
+        SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.CHARGING_TYPE.getType(), baseInfo.getCharging());
+        if (Objects.nonNull(sysDictResDto)) {
+            kwcContractLogistics.setCharging(sysDictResDto.getId());
+        }
+
+//        remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TRADE_TYPE, baseInfo.getT)
+//        kwcContractLogistics.setTrading(pid);
+        kwcContractLogistics.setStartTime(baseInfo.getStartTime());
+        kwcContractLogistics.setEndTime(baseInfo.getEndTime());
+        kwcContractLogistics.setAmount(new BigDecimal("0"));
+        kwcContractLogistics.setPerformedAmount(new BigDecimal("0"));
+        kwcContractLogistics.setSigningUrl("");
+        kwcContractLogistics.setSignedUrl("");
+        kwcContractLogistics.setSigningNo("");
+        kwcContractLogistics.setContractPid(pid);
+        kwcContractLogistics.setRemark(remark);
+        kwcContractLogistics.setCreateBy(LoginUserHolder.getUserId());
+        kwcContractLogistics.setCreateTime(date);
+        kwcContractLogistics.setUpdateBy(LoginUserHolder.getUserId());
+        kwcContractLogistics.setUpdateTime(date);
+        kwcContractLogistics.setDelFlag(Global.NO);
+        return kwcContractLogistics;
+    }
+
+
+    /**
+     * @param reqVo 补充入参
+     * @desc: 补充合同
+     * @author: czh
+     * @date: 2023/7/14
+     */
+    public void supplement(ContractLogisticsReqVo reqVo) {
+        Long id = reqVo.getPId();
+        KwcContractLogistics kwcContractLogistics = kwcContractLogisticsMapper.selectById(id);
+        if (Objects.isNull(kwcContractLogistics)) {
+            throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.CONTRACT_NOT_EXISTS);
+        }
+
+        addCheckedContract(reqVo);
+    }
+
+    /**
+     * @return ContractLogisticsDetailResVo
+     * @desc 合同详情
+     * @param  id 主键
+     * @author czh
+     * @date 2023/7/16
+     */
+    public ContractLogisticsDetailResVo detail(Long id) {
+        KwcContractLogistics kwcContractLogistics = kwcContractLogisticsMapper.selectById(id);
+        if (Objects.isNull(kwcContractLogistics)) {
+            return null;
+        }
+
+        return buildContractLogisticsDetailResVo(kwcContractLogistics);
+    }
+
+
+    private ContractLogisticsDetailResVo buildContractLogisticsDetailResVo(KwcContractLogistics kwcContractLogistics) {
+        ContractLogisticsDetailResVo contractLogisticsDetailResVo = new ContractLogisticsDetailResVo();
+        //基础信息
+        List<KwcContractLogisticsUnit> kwcContractLogisticsUnitList = kwcContractLogisticsUnitService.queryByContractId(kwcContractLogistics.getId());
+        if (CollectionUtils.isNotEmpty(kwcContractLogisticsUnitList)) {
+            LogisticsBaseInfoResVo logisticsBaseInfoResVo = new LogisticsBaseInfoResVo();
+            for (KwcContractLogisticsUnit kwcContractLogisticsUnit : kwcContractLogisticsUnitList) {
+                if (kwcContractLogisticsUnit.getUnitType().equals(CooperateTypeEnum.CONSIGN.getCode())) {
+                    logisticsBaseInfoResVo.setCheckedEntName(kwcContractLogisticsUnit.getFirmName());
+                    logisticsBaseInfoResVo.setCheckedPhone(kwcContractLogisticsUnit.getSignPhone());
+                }
+
+                if (kwcContractLogisticsUnit.getUnitType().equals(CooperateTypeEnum.CARRIAGE.getCode())) {
+                    logisticsBaseInfoResVo.setCarrierEntName(kwcContractLogisticsUnit.getFirmName());
+                    logisticsBaseInfoResVo.setCarrierPhone(kwcContractLogisticsUnit.getSignPhone());
+                }
+            }
+
+            //logisticsBaseInfoResVo.setChargingName();
+            logisticsBaseInfoResVo.setContractCode(kwcContractLogistics.getContractNo());
+            logisticsBaseInfoResVo.setContractName(kwcContractLogistics.getName());
+            logisticsBaseInfoResVo.setEndTime(kwcContractLogistics.getEndTime());
+            logisticsBaseInfoResVo.setSigningWayName(kwcContractLogistics.getSigningWay());
+            logisticsBaseInfoResVo.setStartTime(kwcContractLogistics.getStartTime());
+            contractLogisticsDetailResVo.setBaseInfo(logisticsBaseInfoResVo);
+        }
+
+        //标的信息
+        List<KwcContractLogisticsGoods> kwcContractLogisticsGoodsList = kwcContractLogisticsGoodsService.queryGoodsInfoByContractId(kwcContractLogistics.getId());
+        if (CollectionUtils.isNotEmpty(kwcContractLogisticsGoodsList)) {
+            List<Long> goodsIdList = kwcContractLogisticsGoodsList.stream().map(KwcContractLogisticsGoods::getGoodsId).toList();
+            List<LogisticsGoodsInfoResVo> goodsInfo = new ArrayList<>();
+            for (KwcContractLogisticsGoods kwcContractLogisticsGoods : kwcContractLogisticsGoodsList) {
+                LogisticsGoodsInfoResVo logisticsGoodsInfoResVo = new LogisticsGoodsInfoResVo();
+                logisticsGoodsInfoResVo.setAmount(kwcContractLogisticsGoods.getAmount());
+                logisticsGoodsInfoResVo.setUnit(kwcContractLogisticsGoods.getUnit());
+                logisticsGoodsInfoResVo.setPrice(kwcContractLogisticsGoods.getPrice());
+                //logisticsGoodsInfoResVo.setPriceUnit();
+                logisticsGoodsInfoResVo.setDeficitPrice(kwcContractLogisticsGoods.getDeficitPrice());
+                logisticsGoodsInfoResVo.setDeficitUnit(kwcContractLogisticsGoods.getDeficitUnit());
+                //logisticsGoodsInfoResVo.setGoodsName();
+                logisticsGoodsInfoResVo.setLoss(kwcContractLogisticsGoods.getLoss());
+                logisticsGoodsInfoResVo.setLossUnit(kwcContractLogisticsGoods.getLossUnit());
+                goodsInfo.add(logisticsGoodsInfoResVo);
+            }
+            contractLogisticsDetailResVo.setGoodsInfo(goodsInfo);
+        }
+
+        //合同文件
+        List<String> fileList = new ArrayList<>();
+        fileList.add(kwcContractLogistics.getSignedUrl());
+        fileList.add(kwcContractLogistics.getSigningUrl());
+        contractLogisticsDetailResVo.setContractFile(fileList);
+
+        //补充合同
+        List<KwcContractLogistics> supplementList = getSupplementList(kwcContractLogistics);
+        if (CollectionUtils.isNotEmpty(supplementList)) {
+            List<ContractLogisticsDetailResVo> child = new ArrayList<>();
+            for (KwcContractLogistics supplement : supplementList) {
+                child.add(buildContractLogisticsDetailResVo(supplement));
+            }
+            contractLogisticsDetailResVo.setChild(child);
+        }
+        return contractLogisticsDetailResVo;
+    }
+
+
+    private List<KwcContractLogistics> getSupplementList(KwcContractLogistics kwcContractLogistics) {
+        LambdaQueryWrapper<KwcContractLogistics> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwcContractLogistics::getContractPid, kwcContractLogistics.getId());
+        wrapper.eq(KwcContractLogistics::getDelFlag, Global.NO);
+        wrapper.eq(KwcContractLogistics::getStatus, Global.NO);
+        return kwcContractLogisticsMapper.selectList(wrapper);
+    }
+
+
+    /**
+     * @desc: 发起签约
+     * @param: reqVo 入参
+     * @author: czh
+     * @date 2023/7/17
+     */
+    @Transactional(rollbackFor = {})
+    public void submit(ContractLogisticsReqVo reqVo) {
+        Long id = reqVo.getId();
+        if (Objects.isNull(id)) {
+            //创建合同
+            KwcContractLogistics kwcContractLogistics = getKwcContractLogistics(reqVo.getBaseInfo(), reqVo.getRemark(), reqVo.getPId());
+            id = new IdWorker(1L).nextId();
+            kwcContractLogistics.setId(id);
+            kwcContractLogistics.setStatus(ContractStatusEnum.SUBMIT.getCode());
+            kwcContractLogistics.setSigningUrl(reqVo.getContractFile());
+            if (kwcContractLogisticsMapper.insert(kwcContractLogistics) <= 0) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+            }
+
+            //存审批记录
+            kwcContractLogisticsTrackService.saveContractLogisticsTrack(id);
+            return;
+        }
+
+        id = addCheckedContract(reqVo);
+        //存审批记录
+        kwcContractLogisticsTrackService.saveContractLogisticsTrack(id);
+    }
+
+
+    /**
+     * @desc: 修改草稿
+     * @param: reqVo 入参
+     * @author: czh
+     * @date 2023/7/16
+     */
+    @Transactional(rollbackFor = {})
+    public void update(ContractLogisticsReqVo reqVo) {
+        Long contractId = reqVo.getId();
+        KwcContractLogistics kwcContractLogistics = kwcContractLogisticsMapper.selectById(contractId);
+        if (Objects.isNull(kwcContractLogistics)) {
+            throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.CONTRACT_NOT_EXISTS);
+        }
+
+        KwcContractLogistics param = getKwcContractLogistics(reqVo.getBaseInfo(), reqVo.getRemark(), reqVo.getPId());
+        param.setId(contractId);
+        param.setSigningUrl(reqVo.getContractFile());
+        param.setStatus(ContractStatusEnum.SAVE.getCode());
+        param.setUpdateBy(LoginUserHolder.getUserId());
+        param.setUpdateTime(new Date());
+        if (kwcContractLogisticsMapper.updateById(param) <= 0) {
+            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+        }
+
+
+        //保存交易合同商品信息-先把以前的删除
+        List<KwcContractLogisticsGoods> kwcContractLogisticsGoodsList = kwcContractLogisticsGoodsService.queryGoodsInfoByContractId(contractId);
+        if (CollectionUtils.isNotEmpty(kwcContractLogisticsGoodsList)) {
+            Date date = new Date();
+            kwcContractLogisticsGoodsList.forEach(item -> {
+                item.setDelFlag(Global.YES);
+                item.setCreateBy(LoginUserHolder.getUserId());
+                item.setCreateTime(date);
+            });
+
+            if (kwcContractLogisticsGoodsService.updateBatch(kwcContractLogisticsGoodsList) != kwcContractLogisticsGoodsList.size()) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+            }
+        }
+        kwcContractLogisticsGoodsService.saveContractLogisticsGoods(kwcContractLogistics.getId(), reqVo.getGoodsInfo());
+
+    }
+
+    /**
+     * @desc: 手动完结
+     * @param: reqVo ids
+     * @author: czh
+     * @date 2023/7/16
+     */
+    @Transactional(rollbackFor = {})
+    public void complete(String ids) {
+        List<Long> contractIdList = Arrays.stream(ids.split(Global.COMMA)).map(Long::parseLong).toList();
+        List<KwcContractLogistics> kwcContractLogistics = kwcContractLogisticsMapper.selectBatchIds(contractIdList);
+        Date date = new Date();
+        kwcContractLogistics.forEach(item -> {
+            item.setStatus(ContractStatusEnum.COMPLETE.getCode());
+            item.setUpdateBy(LoginUserHolder.getUserId());
+            item.setUpdateTime(date);
+            if (kwcContractLogisticsMapper.updateById(item) <= 0) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+            }
+        });
+
+    }
+
+
+    /**
+     * @desc: 手动完结
+     * @param: reqVo ids
+     * @author: czh
+     * @date 2023/7/16
+     */
+    @Transactional(rollbackFor = {})
+    public void delete(String ids) {
+        List<Long> contractIdList = Arrays.stream(ids.split(Global.COMMA)).map(Long::parseLong).toList();
+        List<KwcContractLogistics> kwcContractLogistics = kwcContractLogisticsMapper.selectBatchIds(contractIdList);
+        Date date = new Date();
+        kwcContractLogistics.forEach(item -> {
+            if (item.getStatus() != ContractStatusEnum.SAVE.getCode()) {
+                throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_022);
+            }
+            item.setStatus(ContractStatusEnum.COMPLETE.getCode());
+            item.setUpdateBy(LoginUserHolder.getUserId());
+            item.setUpdateTime(date);
+            if (kwcContractLogisticsMapper.updateById(item) <= 0) {
+                throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+            }
+        });
+    }
+
+    /**
+     * @desc: 分页查询
+     * @param:  reqVo
+     * @author: czh
+     * @date 2023/7/17
+     * @return PageResult
+     */
+    public PageResult queryListByPage(QueryListReqVo reqVo) {
+        PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
+        QueryListReqDto queryListReqDto = new QueryListReqDto();
+        BeanUtils.copyProperties(reqVo, queryListReqDto);
+        List<QueryListResVo> list = kwcContractLogisticsMapper.queryList(queryListReqDto);
+        return PageHelperUtil.getPageResult(new PageInfo<>(list));
+    }
+
+    public void export(QueryListReqVo reqVo) {
+        QueryListReqDto queryListReqDto = new QueryListReqDto();
+        BeanUtils.copyProperties(reqVo, queryListReqDto);
+
+        if (StringUtils.isNotBlank(reqVo.getIds())) {
+            List<Long> idList = Arrays.stream(reqVo.getIds().split(Global.COMMA)).map(Long::parseLong).toList();
+            queryListReqDto.setIdList(idList);
+        }
+        List<QueryListResVo> queryListResVos = kwcContractLogisticsMapper.queryList(queryListReqDto);
+        try {
+            EasyExcelUtil.writeSingleExcel("物流合同.xlsx", "sheet1", queryListResVos, QueryListResVo.class);
+        } catch (IOException e) {
+            log.error("导出失败:", e);
+            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
+        }
+    }
+
+
+    /**
+     * @return QueryListResVo
+     * @desc: 查询当前企业的托运合同
+     * @author: czh
+     * @date: 2023/7/18
+     */
+    public List<QueryListResVo> queryCurrentEntCheckedContractList() {
+        Long entId = LoginUserHolder.getEntId();
+        QueryListReqDto queryListReqDto = new QueryListReqDto();
+        queryListReqDto.setEntId(entId);
+        return kwcContractLogisticsMapper.queryList(queryListReqDto);
+    }
+
+}

+ 54 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsTrackService.java

@@ -0,0 +1,54 @@
+package com.sckw.contract.service;
+import java.util.Date;
+
+import com.sckw.contract.dao.KwcContractLogisticsTrackMapper;
+import com.sckw.contract.model.entity.KwcContractLogisticsTrack;
+import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.ContractTrackEnum;
+import com.sckw.core.utils.IdWorker;
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.context.LoginUserHolder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_logistics_track(物流合同(承运合同/托运合同)-物流订单)】的数据库操作Service实现
+* @createDate 2023-07-13 13:36:19
+*/
+@Service
+public class KwcContractLogisticsTrackService {
+
+    @Autowired
+    private KwcContractLogisticsTrackMapper kwcContractLogisticsTrackMapper;
+
+    /**
+     * @param contractId 合同id
+     * @desc: 存审批记录
+     * @author: czh
+     * @date: 2023/7/14
+     */
+    public void saveContractLogisticsTrack(Long contractId) {
+        KwcContractLogisticsTrack kwcContractLogisticsTrack = new KwcContractLogisticsTrack();
+        Date date = new Date();
+        kwcContractLogisticsTrack.setId(new IdWorker(1L).nextId());
+        kwcContractLogisticsTrack.setContractId(contractId);
+        kwcContractLogisticsTrack.setType(ContractTrackEnum.APPROVAL.getCode());
+        kwcContractLogisticsTrack.setRemark("");
+        kwcContractLogisticsTrack.setStatus(Global.NO);
+        kwcContractLogisticsTrack.setCreateBy(LoginUserHolder.getUserId());
+        kwcContractLogisticsTrack.setCreateTime(date);
+        kwcContractLogisticsTrack.setUpdateBy(LoginUserHolder.getUserId());
+        kwcContractLogisticsTrack.setUpdateTime(date);
+        kwcContractLogisticsTrack.setDelFlag(Global.NO);
+        if (kwcContractLogisticsTrackMapper.insert(kwcContractLogisticsTrack) <= 0) {
+            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+        }
+    }
+
+}
+
+
+
+

+ 117 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsUnitService.java

@@ -0,0 +1,117 @@
+package com.sckw.contract.service;
+
+import java.util.*;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sckw.contract.dao.KwcContractLogisticsUnitMapper;
+import com.sckw.contract.model.entity.KwcContractLogisticsUnit;
+import com.sckw.contract.model.vo.req.LogisticsBaseInfoReqVo;
+import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.CooperateTypeEnum;
+import com.sckw.core.utils.IdWorker;
+import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author PC
+ * @description 针对表【kwc_contract_logistics_unit(物流合同采购/销售企业信息)】的数据库操作Service实现
+ * @createDate 2023-07-13 13:36:19
+ */
+@Service
+public class KwcContractLogisticsUnitService {
+
+    @Autowired
+    private KwcContractLogisticsUnitMapper kwcContractLogisticsUnitMapper;
+
+    @Autowired
+    private CommonBusinessService commonBusinessService;
+
+    /**
+     * @desc: 保存合同单位
+     * @param: contractId 合同id, baseInfo基础信息
+     * @author: czh
+     * @date 2023/7/16
+     */
+    public void saveContractLogisticsUnit(Long contractId, LogisticsBaseInfoReqVo baseInfo) throws SystemException {
+        List<Long> entIdList = new ArrayList<>();
+        entIdList.add(baseInfo.getCheckedEntId());
+        entIdList.add(baseInfo.getCarrierEntId());
+        Map<Long, EntCacheResDto> entCacheResDtoMap = commonBusinessService.queryEntCacheMapByIds(entIdList);
+
+        Date date = new Date();
+        saveCheckAndCarrier(contractId, entCacheResDtoMap, date, baseInfo);
+    }
+
+    /**
+     * @desc: 存托运、承运企业
+     * @param: contractId 合同id, entCacheResDtoMap 企业信息 date时间  logisticsBaseInfoReqVo 入参
+     * @author: czh
+     * @date 2023/7/16
+     */
+    private void saveCheckAndCarrier(Long contractId, Map<Long, EntCacheResDto> entCacheResDtoMap, Date date, LogisticsBaseInfoReqVo logisticsBaseInfoReqVo) {
+        //存托运企业
+        KwcContractLogisticsUnit kwcContractLogisticsUnit = new KwcContractLogisticsUnit();
+        kwcContractLogisticsUnit.setId(new IdWorker(1L).nextId());
+        kwcContractLogisticsUnit.setContractId(contractId);
+        kwcContractLogisticsUnit.setUnitType(CooperateTypeEnum.CONSIGN.getCode());
+        kwcContractLogisticsUnit.setEntId(logisticsBaseInfoReqVo.getCheckedEntId());
+        saveEnt(entCacheResDtoMap, kwcContractLogisticsUnit);
+        kwcContractLogisticsUnit.setSignPhone(logisticsBaseInfoReqVo.getCheckedPhone());
+        kwcContractLogisticsUnit.setStatus(Global.NO);
+        kwcContractLogisticsUnit.setCreateBy(LoginUserHolder.getUserId());
+        kwcContractLogisticsUnit.setCreateTime(date);
+        kwcContractLogisticsUnit.setUpdateBy(LoginUserHolder.getUserId());
+        kwcContractLogisticsUnit.setUpdateTime(date);
+        kwcContractLogisticsUnit.setDelFlag(Global.NO);
+        if (kwcContractLogisticsUnitMapper.insert(kwcContractLogisticsUnit) <= 0) {
+            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+        }
+
+        //存承运运企业
+        kwcContractLogisticsUnit.setId(new IdWorker(1L).nextId());
+        kwcContractLogisticsUnit.setUnitType(CooperateTypeEnum.CARRIAGE.getCode());
+        kwcContractLogisticsUnit.setEntId(logisticsBaseInfoReqVo.getCheckedEntId());
+        saveEnt(entCacheResDtoMap, kwcContractLogisticsUnit);
+        kwcContractLogisticsUnit.setSignPhone(logisticsBaseInfoReqVo.getCarrierPhone());
+        if (kwcContractLogisticsUnitMapper.insert(kwcContractLogisticsUnit) <= 0) {
+            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
+        }
+    }
+
+    /**
+     * @desc: 保存合同企业
+     * @author: czh
+     * @date 2023/7/16
+     */
+    private void saveEnt(Map<Long, EntCacheResDto> entCacheResDtoMap, KwcContractLogisticsUnit kwcContractLogisticsUnit) {
+        EntCacheResDto entCacheResDto = entCacheResDtoMap.get(kwcContractLogisticsUnit.getEntId());
+        if (Objects.nonNull(entCacheResDto)) {
+            kwcContractLogisticsUnit.setFirmName(entCacheResDto.getFirmName());
+        }
+        kwcContractLogisticsUnit.setContacts(entCacheResDto.getContacts());
+        kwcContractLogisticsUnit.setPhone(entCacheResDto.getPhone());
+    }
+
+    /**
+     * @desc: 根据合同id查企业
+     * @param: id 合同id
+     * @author: czh
+     * @date 2023/7/16
+     * @return KwcContractLogisticsUnit
+     */
+    public List<KwcContractLogisticsUnit> queryByContractId(Long id) {
+        LambdaQueryWrapper<KwcContractLogisticsUnit> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwcContractLogisticsUnit::getContractId, id);
+        wrapper.eq(KwcContractLogisticsUnit::getDelFlag, Global.NO);
+        wrapper.eq(KwcContractLogisticsUnit::getStatus, Global.NO);
+        return kwcContractLogisticsUnitMapper.selectList(wrapper);
+    }
+}
+
+
+
+

+ 17 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTemplateService.java

@@ -0,0 +1,17 @@
+package com.sckw.contract.service;
+
+import org.springframework.stereotype.Service;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_template(合同模版)】的数据库操作Service实现
+* @createDate 2023-07-13 13:36:19
+*/
+@Service
+public class KwcContractTemplateService {
+
+}
+
+
+
+

+ 18 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeGoodsService.java

@@ -0,0 +1,18 @@
+package com.sckw.contract.service;
+
+import org.springframework.stereotype.Service;
+
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_trade_goods(交易合同商品信息)】的数据库操作Service实现
+* @createDate 2023-07-13 13:36:19
+*/
+@Service
+public class KwcContractTradeGoodsService {
+
+}
+
+
+
+

+ 17 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeOrderService.java

@@ -0,0 +1,17 @@
+package com.sckw.contract.service;
+
+import org.springframework.stereotype.Service;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_trade_order(交易合同(采购合同/销售合同)-状态记录)】的数据库操作Service实现
+* @createDate 2023-07-13 13:36:19
+*/
+@Service
+public class KwcContractTradeOrderService {
+
+}
+
+
+
+

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

@@ -0,0 +1,17 @@
+package com.sckw.contract.service;
+
+import org.springframework.stereotype.Service;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_trade(交易合同(采购合同/销售合同))】的数据库操作Service实现
+* @createDate 2023-07-13 13:36:19
+*/
+@Service
+public class KwcContractTradeService {
+
+}
+
+
+
+

+ 17 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeTrackService.java

@@ -0,0 +1,17 @@
+package com.sckw.contract.service;
+
+import org.springframework.stereotype.Service;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_trade_track(交易合同(采购合同/销售合同)-交易订单(采购订单/销售订单))】的数据库操作Service实现
+* @createDate 2023-07-13 13:36:19
+*/
+@Service
+public class KwcContractTradeTrackService {
+
+}
+
+
+
+

+ 17 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeUnitService.java

@@ -0,0 +1,17 @@
+package com.sckw.contract.service;
+
+import org.springframework.stereotype.Service;
+
+/**
+* @author PC
+* @description 针对表【kwc_contract_trade_unit(交易合同采购/销售企业信息)】的数据库操作Service实现
+* @createDate 2023-07-13 13:36:19
+*/
+@Service
+public class KwcContractTradeUnitService {
+
+}
+
+
+
+

+ 1 - 1
sckw-modules/sckw-contract/src/main/resources/log4j2.xml

@@ -7,7 +7,7 @@
                   value="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%t]}{faint} %clr{%c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx"/>
         <property name="LOG_WITHOUT_COLOR_PATTERN"
                   value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${sys:PID}--- [%t] %c{1.} : %m%n%xwEx"/>
-        <property name="LOG_PATH" value="logs/sckw-system"/>
+        <property name="LOG_PATH" value="logs/sckw-contract"/>
     </properties>
     <!--DEBUG<INFO<WARNING<ERROR<CRITICAL-->
     <!-- 先定义所有的appender(附加器)-->

+ 0 - 199
sckw-modules/sckw-contract/src/main/resources/logback-spring.xml

@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
-<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
-<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
-                 当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
-<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
-<configuration  scan="true" scanPeriod="10 seconds">
-    <contextName>logback</contextName>
-    <springProperty scope="context" name="applicationName" source="spring.application.name" defaultValue="service"/>
-
-    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
-    <property name="log.path" value="/logs/${applicationName}" />
-
-    <!--0. 日志格式和颜色渲染 -->
-    <!-- 彩色日志依赖的渲染类 -->
-    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
-    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
-    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-    <!-- 彩色日志格式 -->
-    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
-
-    <!--1. 输出到控制台-->
-    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>debug</level>
-        </filter>
-        <encoder>
-            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
-            <!-- 设置字符集 -->
-            <charset>UTF-8</charset>
-        </encoder>
-    </appender>
-
-    <!--2. 输出到文档-->
-    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
-    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/web_debug.log</file>
-        <!--日志文档输出格式-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 日志归档 -->
-            <fileNamePattern>${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录debug级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>debug</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
-    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/web_info.log</file>
-        <!--日志文档输出格式-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset>
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!-- 每天日志归档路径以及格式 -->
-            <fileNamePattern>${log.path}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录info级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>info</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
-    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/web_warn.log</file>
-        <!--日志文档输出格式-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录warn级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>warn</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
-    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 正在记录的日志文档的路径及文档名 -->
-        <file>${log.path}/web_error.log</file>
-        <!--日志文档输出格式-->
-        <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
-        </encoder>
-        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${log.path}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>100MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <!--日志文档保留天数-->
-            <maxHistory>15</maxHistory>
-        </rollingPolicy>
-        <!-- 此日志文档只记录ERROR级别的 -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-    </appender>
-
-    <!--
-        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
-        以及指定<appender>。<logger>仅有一个name属性,
-        一个可选的level和一个可选的addtivity属性。
-        name:用来指定受此logger约束的某一个包或者具体的某一个类。
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-              还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
-              如果未设置此属性,那么当前logger将会继承上级的级别。
-        addtivity:是否向上级logger传递打印信息。默认是true。
-        <logger name="org.springframework.web" level="info"/>
-        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
-    -->
-    <!-- hibernate logger -->
-    <logger name="com.atguigu" level="debug" />
-    <!-- Spring framework logger -->
-    <logger name="org.springframework" level="debug" additivity="false"></logger>
-
-
-    <!--
-        使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
-        第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
-        第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:
-        【logging.level.org.mybatis=debug logging.level.dao=debug】
-     -->
-
-    <!--
-        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
-        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
-        不能设置为INHERITED或者同义词NULL。默认是DEBUG
-        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
-    -->
-
-    <!-- 4. 最终的策略 -->
-    <!-- 4.1 开发环境:打印控制台-->
-    <springProfile name="dev">
-        <logger name="com.sdcm.pmp" level="debug"/>
-    </springProfile>
-
-    <root level="info">
-        <appender-ref ref="CONSOLE" />
-        <appender-ref ref="DEBUG_FILE" />
-        <appender-ref ref="INFO_FILE" />
-        <appender-ref ref="WARN_FILE" />
-        <appender-ref ref="ERROR_FILE" />
-    </root>
-
-    <!-- 4.2 生产环境:输出到文档-->
-    <springProfile name="pro">
-        <root level="info">
-            <appender-ref ref="CONSOLE" />
-            <appender-ref ref="DEBUG_FILE" />
-            <appender-ref ref="INFO_FILE" />
-            <appender-ref ref="ERROR_FILE" />
-            <appender-ref ref="WARN_FILE" />
-        </root>
-    </springProfile>
-
-</configuration>

+ 38 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsGoodsMapper.xml

@@ -0,0 +1,38 @@
+<?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.contract.dao.KwcContractLogisticsGoodsMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.contract.model.entity.KwcContractLogisticsGoods">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="contract_id" column="contract_id" jdbcType="BIGINT"/>
+            <result property="goods_id" column="goods_id" jdbcType="BIGINT"/>
+            <result property="sku_id" column="sku_id" jdbcType="BIGINT"/>
+            <result property="amount" column="amount" jdbcType="DECIMAL"/>
+            <result property="unit" column="unit" jdbcType="VARCHAR"/>
+            <result property="price" column="price" jdbcType="DECIMAL"/>
+            <result property="performed_amount" column="performed_amount" jdbcType="DECIMAL"/>
+            <result property="loss" column="loss" jdbcType="DECIMAL"/>
+            <result property="loss_unit" column="loss_unit" jdbcType="VARCHAR"/>
+            <result property="deficit_price" column="deficit_price" jdbcType="DECIMAL"/>
+            <result property="deficit_unit" column="deficit_unit" jdbcType="VARCHAR"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="create_by" column="create_by" jdbcType="BIGINT"/>
+            <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="update_by" column="update_by" jdbcType="BIGINT"/>
+            <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="del_flag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,contract_id,goods_id,
+        sku_id,amount,unit,
+        price,performed_amount,loss,
+        loss_unit,deficit_price,deficit_unit,
+        remark,status,create_by,
+        create_time,update_by,update_time,
+        del_flag
+    </sql>
+</mapper>

+ 75 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsMapper.xml

@@ -0,0 +1,75 @@
+<?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.contract.dao.KwcContractLogisticsMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.contract.model.entity.KwcContractLogistics">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="ent_id" column="ent_id" jdbcType="BIGINT"/>
+            <result property="contract_no" column="contract_no" jdbcType="VARCHAR"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="signing_way" column="signing_way" jdbcType="VARCHAR"/>
+            <result property="charging" column="charging" jdbcType="BIGINT"/>
+            <result property="trading" column="trading" jdbcType="BIGINT"/>
+            <result property="start_time" column="start_time" jdbcType="TIMESTAMP"/>
+            <result property="end_time" column="end_time" jdbcType="TIMESTAMP"/>
+            <result property="amount" column="amount" jdbcType="DECIMAL"/>
+            <result property="performed_amount" column="performed_amount" jdbcType="DECIMAL"/>
+            <result property="signing_url" column="signing_url" jdbcType="VARCHAR"/>
+            <result property="signed_url" column="signed_url" jdbcType="VARCHAR"/>
+            <result property="signing_no" column="signing_no" jdbcType="VARCHAR"/>
+            <result property="contract_pid" column="contract_pid" jdbcType="BIGINT"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="create_by" column="create_by" jdbcType="BIGINT"/>
+            <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="update_by" column="update_by" jdbcType="BIGINT"/>
+            <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="del_flag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,ent_id,contract_no,
+        name,signing_way,charging,
+        trading,start_time,end_time,
+        amount,performed_amount,signing_url,
+        signed_url,signing_no,contract_pid,
+        remark,status,create_by,
+        create_time,update_by,update_time,
+        del_flag
+    </sql>
+
+    <select id="queryList" resultType="com.sckw.contract.model.vo.res.QueryListResVo">
+        select distinct a.*
+          from kwc_contract_logistics a
+          left join kwc_contract_logistics_unit b on a.id = b.contractId
+        where a.del_flag = 0
+          and b.del_flag = 0
+          <if test="entType != null">
+              and b.unit_type = #{entType}
+          </if>
+          <if test="entId != null">
+              and b.ent_id = #{entId}
+          </if>
+          <if test="startTime != null">
+              and a.create_time >= #{startTime}
+          </if>
+          <if test="endTime != null">
+              and a.create_time &lt;= #{endTime}
+          </if>
+          <if test="status != null">
+              and a.status = #{status}
+          </if>
+          <if test="keywords != null and keywords != ''">
+              and (b.firm_name like concat('%', #{keywords}, '%') or b.contacts like concat('%', #{keywords}, '%') or b.phone like concat('%', #{keywords}, '%'))
+          </if>
+          <if test="idList != null and idList.size() > 0">
+              and a.id in
+            <foreach collection="idList" open="(" close=")" separator="," item="item">
+                #{item}
+            </foreach>
+          </if>
+    </select>
+
+</mapper>

+ 26 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsTrackMapper.xml

@@ -0,0 +1,26 @@
+<?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.contract.dao.KwcContractLogisticsTrackMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.contract.model.entity.KwcContractLogisticsTrack">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="contract_id" column="contract_id" jdbcType="BIGINT"/>
+            <result property="type" column="type" jdbcType="INTEGER"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="create_by" column="create_by" jdbcType="BIGINT"/>
+            <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="update_by" column="update_by" jdbcType="BIGINT"/>
+            <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="del_flag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,contract_id,type,
+        remark,status,create_by,
+        create_time,update_by,update_time,
+        del_flag
+    </sql>
+</mapper>

+ 32 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsUnitMapper.xml

@@ -0,0 +1,32 @@
+<?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.contract.dao.KwcContractLogisticsUnitMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.contract.model.entity.KwcContractLogisticsUnit">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="contract_id" column="contract_id" jdbcType="BIGINT"/>
+            <result property="unit_type" column="unit_type" jdbcType="INTEGER"/>
+            <result property="ent_id" column="ent_id" jdbcType="BIGINT"/>
+            <result property="firm_name" column="firm_name" jdbcType="VARCHAR"/>
+            <result property="contacts" column="contacts" jdbcType="VARCHAR"/>
+            <result property="phone" column="phone" jdbcType="VARCHAR"/>
+            <result property="sign_phone" column="sign_phone" jdbcType="VARCHAR"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="create_by" column="create_by" jdbcType="BIGINT"/>
+            <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="update_by" column="update_by" jdbcType="BIGINT"/>
+            <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="del_flag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,contract_id,unit_type,
+        ent_id,firm_name,contacts,
+        phone,sign_phone,remark,
+        status,create_by,create_time,
+        update_by,update_time,del_flag
+    </sql>
+</mapper>

+ 28 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTemplateMapper.xml

@@ -0,0 +1,28 @@
+<?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.contract.dao.KwcContractTemplateMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.contract.model.entity.KwcContractTemplate">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="ent_id" column="ent_id" jdbcType="BIGINT"/>
+            <result property="code" column="code" jdbcType="VARCHAR"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="url" column="url" jdbcType="VARCHAR"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="create_by" column="create_by" jdbcType="BIGINT"/>
+            <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="update_by" column="update_by" jdbcType="BIGINT"/>
+            <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="del_flag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,ent_id,code,
+        name,url,remark,
+        status,create_by,create_time,
+        update_by,update_time,del_flag
+    </sql>
+</mapper>

+ 32 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeGoodsMapper.xml

@@ -0,0 +1,32 @@
+<?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.contract.dao.KwcContractTradeGoodsMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.contract.model.entity.KwcContractTradeGoods">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="contract_id" column="contract_id" jdbcType="BIGINT"/>
+            <result property="goods_id" column="goods_id" jdbcType="BIGINT"/>
+            <result property="sku_id" column="sku_id" jdbcType="BIGINT"/>
+            <result property="amount" column="amount" jdbcType="DECIMAL"/>
+            <result property="unit" column="unit" jdbcType="VARCHAR"/>
+            <result property="price" column="price" jdbcType="DECIMAL"/>
+            <result property="performed_amount" column="performed_amount" jdbcType="DECIMAL"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="create_by" column="create_by" jdbcType="BIGINT"/>
+            <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="update_by" column="update_by" jdbcType="BIGINT"/>
+            <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="del_flag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,contract_id,goods_id,
+        sku_id,amount,unit,
+        price,performed_amount,remark,
+        status,create_by,create_time,
+        update_by,update_time,del_flag
+    </sql>
+</mapper>

+ 40 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeMapper.xml

@@ -0,0 +1,40 @@
+<?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.contract.dao.KwcContractTradeMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.contract.model.entity.KwcContractTrade">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="ent_id" column="ent_id" jdbcType="BIGINT"/>
+            <result property="contract_no" column="contract_no" jdbcType="VARCHAR"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="signing_way" column="signing_way" jdbcType="BIGINT"/>
+            <result property="trading" column="trading" jdbcType="BIGINT"/>
+            <result property="start_time" column="start_time" jdbcType="TIMESTAMP"/>
+            <result property="end_time" column="end_time" jdbcType="TIMESTAMP"/>
+            <result property="amount" column="amount" jdbcType="DECIMAL"/>
+            <result property="performed_amount" column="performed_amount" jdbcType="DECIMAL"/>
+            <result property="signing_url" column="signing_url" jdbcType="VARCHAR"/>
+            <result property="signed_url" column="signed_url" jdbcType="VARCHAR"/>
+            <result property="signing_no" column="signing_no" jdbcType="VARCHAR"/>
+            <result property="contract_pid" column="contract_pid" jdbcType="BIGINT"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="create_by" column="create_by" jdbcType="BIGINT"/>
+            <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="update_by" column="update_by" jdbcType="BIGINT"/>
+            <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="del_flag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,ent_id,contract_no,
+        name,signing_way,trading,
+        start_time,end_time,amount,
+        performed_amount,signing_url,signed_url,
+        signing_no,contract_pid,remark,
+        status,create_by,create_time,
+        update_by,update_time,del_flag
+    </sql>
+</mapper>

+ 27 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeOrderMapper.xml

@@ -0,0 +1,27 @@
+<?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.contract.dao.KwcContractTradeOrderMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.contract.model.entity.KwcContractTradeOrder">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="contract_id" column="contract_id" jdbcType="BIGINT"/>
+            <result property="order_id" column="order_id" jdbcType="BIGINT"/>
+            <result property="order_no" column="order_no" jdbcType="VARCHAR"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="create_by" column="create_by" jdbcType="BIGINT"/>
+            <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="update_by" column="update_by" jdbcType="BIGINT"/>
+            <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="del_flag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,contract_id,order_id,
+        order_no,remark,status,
+        create_by,create_time,update_by,
+        update_time,del_flag
+    </sql>
+</mapper>

+ 24 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeTrackMapper.xml

@@ -0,0 +1,24 @@
+<?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.contract.dao.KwcContractTradeTrackMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.contract.model.entity.KwcContractTradeTrack">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="contract_id" column="contract_id" jdbcType="BIGINT"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="create_by" column="create_by" jdbcType="BIGINT"/>
+            <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="update_by" column="update_by" jdbcType="BIGINT"/>
+            <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="del_flag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,contract_id,remark,
+        status,create_by,create_time,
+        update_by,update_time,del_flag
+    </sql>
+</mapper>

+ 32 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractTradeUnitMapper.xml

@@ -0,0 +1,32 @@
+<?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.contract.dao.KwcContractTradeUnitMapper">
+
+    <resultMap id="BaseResultMap" type="com.sckw.contract.model.entity.KwcContractTradeUnit">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="ent_id" column="ent_id" jdbcType="BIGINT"/>
+            <result property="contract_id" column="contract_id" jdbcType="BIGINT"/>
+            <result property="unit_type" column="unit_type" jdbcType="INTEGER"/>
+            <result property="firm_name" column="firm_name" jdbcType="VARCHAR"/>
+            <result property="contacts" column="contacts" jdbcType="VARCHAR"/>
+            <result property="phone" column="phone" jdbcType="VARCHAR"/>
+            <result property="sign_hone" column="sign_hone" jdbcType="VARCHAR"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="create_by" column="create_by" jdbcType="BIGINT"/>
+            <result property="create_time" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="update_by" column="update_by" jdbcType="BIGINT"/>
+            <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="del_flag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,ent_id,contract_id,
+        unit_type,firm_name,contacts,
+        phone,sign_hone,remark,
+        status,create_by,create_time,
+        update_by,update_time,del_flag
+    </sql>
+</mapper>

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

@@ -64,6 +64,11 @@
             <artifactId>sckw-system-api</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-fleet-api</artifactId>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 0 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfFleetController.java

@@ -5,14 +5,11 @@ import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
-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.fleet.model.KwfDriver;
 import com.sckw.fleet.model.KwfFleet;
 import com.sckw.fleet.model.dto.KwfFleetDto;
-import com.sckw.fleet.model.vo.KwfDriverVo;
 import com.sckw.fleet.model.vo.KwfFleetVo;
 import com.sckw.fleet.service.KwfFleetService;
 import jakarta.servlet.http.HttpServletResponse;

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

@@ -13,6 +13,7 @@ import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.fleet.model.*;
 import com.sckw.fleet.model.dto.*;
 import com.sckw.fleet.model.vo.KwfDriverVo;
+import com.sckw.fleet.model.vo.KwfTruckVo;
 import com.sckw.fleet.service.KwfTruckService;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
@@ -107,11 +108,11 @@ public class KwfTruckController {
     @PostMapping("/export")
     public HttpResult export(@RequestBody HashMap params) {
         /**查询数据**/
-        List<KwfDriverVo> drivers = truckService.findPage(params);
+        List<KwfTruckVo> trucks = truckService.findPage(params);
 
-        if (!CollectionUtils.isEmpty(drivers)) {
+        if (!CollectionUtils.isEmpty(trucks)) {
             HttpServletResponse response = RequestHolder.getResponse();
-            ExcelUtil.download(response, KwfDriverVo.class, drivers);
+            ExcelUtil.download(response, KwfTruckVo.class, trucks);
             return null;
         }
         return HttpResult.error("无数据!");
@@ -179,7 +180,7 @@ public class KwfTruckController {
      * @author zk
      * @date 2023/7/7
      **/
-    @PostMapping("/transportLicenseEdit")
+    @PostMapping("/tranLicenseEdit")
     public HttpResult transportLicenseEdit(@Valid @RequestBody KwfTransportLicenseDto params) throws SystemException {
         return truckService.transportLicenseEdit(params);
     }

+ 6 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfFleetDriverMapper.java

@@ -12,4 +12,10 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KwfFleetDriverMapper extends BaseMapper<KwfFleetDriver> {
 
+    /**
+     * 查询
+     * @param params 参数
+     * @return
+     */
+    KwfFleetDriver findByTruckDriver(KwfFleetDriver params);
 }

+ 7 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfFleetTruckMapper.java

@@ -2,6 +2,7 @@ package com.sckw.fleet.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.fleet.model.KwfFleetTruck;
+import com.sckw.fleet.model.KwfTruckEnt;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -12,4 +13,10 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KwfFleetTruckMapper extends BaseMapper<KwfFleetTruck> {
 
+    /**
+     * 查询
+     * @param params 参数
+     * @return
+     */
+    KwfFleetTruck findByTruckFleet(KwfFleetTruck params);
 }

+ 24 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dao/KwfTruckReportMapper.java

@@ -2,7 +2,11 @@ package com.sckw.fleet.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.fleet.model.KwfTruckReport;
+import com.sckw.fleet.model.vo.KwfTableTopCount;
+import com.sckw.fleet.model.vo.KwfTruckReportVo;
 import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @desc 车辆上报 Mapper 接口
@@ -12,4 +16,24 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KwfTruckReportMapper extends BaseMapper<KwfTruckReport> {
 
+    /**
+     * 统计
+     * @param params
+     * @return
+     */
+    List<KwfTableTopCount> statistics(Map<String, Object> params);
+
+    /**
+     * 分页查询
+     * @param params
+     * @return
+     */
+    List<KwfTruckReportVo> findPage(Map<String, Object> params);
+
+    /**
+     * 查询
+     * @param params
+     * @return
+     */
+    List<Map<String, Object>> findList(Map<String, Object> params);
 }

Некоторые файлы не были показаны из-за большого количества измененных файлов