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

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

zk 2 лет назад
Родитель
Сommit
d859867e0a
32 измененных файлов с 1115 добавлено и 353 удалено
  1. 7 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java
  2. 3 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictTypeEnum.java
  3. 1 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CarWaybillEnum.java
  4. 3 3
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/LogisticsOrderEnum.java
  5. 8 2
      sckw-modules-api/sckw-modules-bom/pom.xml
  6. 2 2
      sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/KwpGoods.java
  7. 0 13
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerLogisticsOrderController.java
  8. 0 13
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerLogisticsTrackController.java
  9. 0 13
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerTradeOrderController.java
  10. 0 13
      sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpLedgerTradeTrackController.java
  11. 2 2
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/KwpGoods.java
  12. 7 2
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/BuildingMaterialsMarketListParam.java
  13. 13 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/BuildingMaterialsMarketList.java
  14. 11 9
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  15. 21 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java
  16. 26 23
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  17. 45 4
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  18. 45 6
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  19. 15 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java
  20. 23 8
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java
  21. 13 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java
  22. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtLogisticsOrder.java
  23. 181 19
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java
  24. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/LogisticsConsignmentParam.java
  25. 170 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/SubcontractConsignmentVO.java
  26. 360 111
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  27. 13 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  28. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/DriverService.java
  29. 2 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  30. 35 21
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java
  31. 2 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java
  32. 104 75
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

+ 21 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java

@@ -9,6 +9,7 @@ import com.sckw.report.service.param.ConsignOrderQuery;
 import com.sckw.report.service.param.WaybillOrderQuery;
 import com.sckw.report.service.vo.ConsignOrderVo;
 import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.NotBlank;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -113,4 +114,24 @@ public class KwTransportController {
         }
         return httpResult;
     }
+    /**
+     * 承运订单-获取分包托运列表
+     *
+     * @param lOrderId 单据id
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    @RequestMapping(value = "/getSubcontractConsignment", method = RequestMethod.GET)
+    public HttpResult getSubcontractConsignment(@RequestParam("lOrderId") @NotBlank(message = "单据id不能为空") String lOrderId,
+                                                @RequestParam("page") @NotBlank(message = "分页不能为空") int page,
+                                                @RequestParam("pageSize") @NotBlank(message = "分页条数不能为空") int pageSize) {
+        try {
+            return transportService.getSubcontractConsignment(lOrderId, page, pageSize);
+        } catch (Exception e) {
+            log.error("承运订单-获取分包托运列表 error:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
 }

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

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

+ 45 - 4
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -406,13 +406,13 @@ public class KwTransportService {
             vo.setTruckNo(waybillOrder.getTruckNo());
             vo.setDriverName(waybillOrder.getDriverName() == null ?
                     null : String.valueOf(waybillOrder.getDriverName()));
-            vo.setType(waybillOrder.getType());
-            vo.setSendCarTime(String.valueOf(waybillOrder.getSendCarTime()));
+            vo.setType(String.valueOf(waybillOrder.getType()));
+            vo.setSendCarTime(String.valueOf(waybillOrder.getCreateTime()));
             vo.setStartTime(String.valueOf(waybillOrder.getStartTime()));
             vo.setEndTime(String.valueOf(waybillOrder.getEndTime()));
             vo.setEntrustAmount(String.valueOf(waybillOrder.getEntrustAmount()));
-            vo.setLoadingAddress(waybillOrder.getLoadingAddress());
-            vo.setUnloadingAddress(waybillOrder.getUnloadingAddress());
+            vo.setLoadingAddress(waybillOrder.getLoadDetailAddress());
+            vo.setUnloadingAddress(waybillOrder.getUnloadDetailAddress());
             vo.setLoadAmount(waybillOrder.getLoadAmount() == null ?
                     null : String.valueOf(waybillOrder.getLoadAmount()));
             vo.setUnloadAmount(waybillOrder.getUnloadAmount() == null ?
@@ -424,4 +424,45 @@ public class KwTransportService {
             returnList.add(vo);
         }
     }
+
+    /**
+     * 承运订单-分包托运列表数据展示
+     * @param lOrderId
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    public HttpResult getSubcontractConsignment(String lOrderId, int page, int pageSize) {
+        //模糊匹配
+        //根据条件查询所有并排序,且分页
+        //设置模糊查询匹配规则  忽略大小写
+        // 创建条件对象
+        Criteria criteria = new Criteria();
+        // 1. 全等于
+        criteria.and("entId").is(LoginUserHolder.getEntId());
+        criteria.and("_id").is(lOrderId);
+        criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
+        Query query1 = new Query(criteria);
+        //多条件模糊查询
+        Criteria c1 = new Criteria().and("entId").is(LoginUserHolder.getEntId());
+        Criteria c2 = new Criteria().and("_id").is(lOrderId);
+        Criteria c3 = new Criteria().and("delFlag").is(String.valueOf(NumberConstant.ZERO));
+        criteria.orOperator(c1, c2, c3);
+        Aggregation aggregation = Aggregation.newAggregation(
+                Aggregation.match(criteria),
+//                Aggregation.group("_id").sum().as("sum")
+                Aggregation.project("total").and("value").previousOperation()
+        );
+        query1.addCriteria(Criteria.where("pid").in(lOrderId));
+        AggregationResults<TobleTop> outputTypeCount = mongoTemplate.aggregate(aggregation, SckwLogisticsOrder.class, TobleTop.class);
+        List<TobleTop> results = (List<TobleTop>) outputTypeCount.getRawResults().get("results");
+        // 执行查询
+//        List<SckwLogisticsOrder> list = mongoTemplate.findAll(query1, SckwLogisticsOrder.class);
+////        PageResult build = PageResult.build(query.getPage(), query.getPageSize(), total, list);
+//        List<ConsignOrderVo> returnList = new ArrayList<>();
+//        if (CollectionUtils.isNotEmpty(list)) {
+//            packageReturnList(list, returnList);
+//        }
+        return null;
+    }
 }

+ 45 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

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

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

@@ -4,14 +4,12 @@ import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.service.ConsignOrderService;
+import jakarta.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author lfdc
@@ -26,6 +24,8 @@ public class ConsignOrderController {
 
     @Autowired
     ConsignOrderService consignOrderService;
+
+
     /**
      * 托运订单/承运订单-获取车辆运单
      *
@@ -42,6 +42,17 @@ public class ConsignOrderController {
         }
     }
 
+    /**
+     * 托运订单查看驳回原因
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/getRejectReason", method = RequestMethod.GET)
+    public HttpResult getRejectReasonById(@Validated @NotNull @RequestParam("id") String id) {
+        return consignOrderService.getRejectReasonById(id);
+    }
+
     /**
      * 托运订单获取车辆信息
      *

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

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

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

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

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

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

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

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

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

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

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

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

+ 360 - 111
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

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

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

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

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

@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.web.constant.HttpStatus;
@@ -15,7 +16,6 @@ import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.mongo.model.TobleTop;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
-import com.sckw.transport.common.enums.CarWaybillEnum;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.KwtLogisticsOrderAddress;
 import com.sckw.transport.model.KwtLogisticsOrderCirculate;

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

@@ -2,26 +2,24 @@ package com.sckw.transport.service;
 
 import com.alibaba.fastjson.JSON;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.stream.model.SckwBusSum;
-import com.sckw.transport.common.enums.CarWaybillEnum;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.SendCarDto1;
 import jakarta.annotation.Resource;
-import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.stream.function.StreamBridge;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
 import java.math.BigDecimal;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 /**

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

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

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

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

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

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