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

采购订单-托运订单列表-销售订单id
采购订单-托运订单列表-撤销托运
销售订单-托运订单列表-销售订单id
销售订单-托运订单列表-撤销托运
采购订单-销售订单-托运订单详情查询
承运订单-取消派车
托运订单-停止接单查询
托运订单-停止接单提交

lengfaqiang 2 лет назад
Родитель
Сommit
4dcafd95b8

+ 64 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/GlobalTransactionalEnum.java

@@ -0,0 +1,64 @@
+package com.sckw.core.model.enums;
+
+import org.springframework.util.ObjectUtils;
+
+/**
+ * @author lfdc
+ * @version 1.0
+ * @className GlobalTransactionalEnum
+ * @description 全局事务枚举值
+ * @company sckw
+ * @date 2023-06-05 13:06:54
+ */
+public enum GlobalTransactionalEnum {
+    /**
+     * 默认全局事务
+     */
+    DEFAULT_TX_GROUP(1, "default_tx_group"),
+    /**
+     * 对应系统服务全局事务
+     */
+    SCKW_SYSTEM_SEATA_SERVICE_GROUP(2, "sckw-system-seata-service-group"),
+    /**
+     * 对应报表服务全局事务
+     */
+    SCKW_REPORT_SEATA_SERVICE_GROUP(3, "sckw-report-seata-service-group"),
+    /**
+     * 对应运输服务全局事务
+     */
+    SCKW_TRANSPORT_SEATA_SERVICE_GROUP(4, "sckw-transport-seata-service-group"),
+    ;
+
+    private final Integer code;
+    private final String name;
+
+    GlobalTransactionalEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+    public Integer getCode() {
+        return code;
+    }
+    public String getName() {
+        return name;
+    }
+    public static String getValue(Integer code) {
+        for (GlobalTransactionalEnum ele : GlobalTransactionalEnum.values()) {
+            if (ele.getCode().equals(code)) {
+                return ele.getName();
+            }
+        }
+        return null;
+    }
+    String getGlobalTransactionalEnum(Integer code) {
+        if (ObjectUtils.isEmpty(code)) {
+            return null;
+        }
+        for (GlobalTransactionalEnum globalTransactionalEnum : GlobalTransactionalEnum.values()) {
+            if (globalTransactionalEnum.getCode().equals(code)) {
+                return globalTransactionalEnum.getName();
+            }
+        }
+        return null;
+    }
+}

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

@@ -1,6 +1,7 @@
 package com.sckw.core.model.enums;
 
 import com.sckw.core.common.enums.NumberConstant;
+import lombok.Getter;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -10,6 +11,7 @@ import java.util.List;
  * @description 物流订单-单据状态
  * @date 2023-07-07 14:07:23
  */
+@Getter
 public enum LogisticsOrderEnum {
     /**
      * 物流订单-待签约

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

@@ -92,20 +92,6 @@ public class KwTransportController {
         return HttpResult.ok("没有可导出的数据");
     }
 
-//    /**
-//     * 承运订单-(订单详情)
-//     * @param id
-//     * @return
-//     */
-//    @RequestMapping(value = "/getOrderDetailAcceptCarriage", method = RequestMethod.GET)
-//    public HttpResult getOrderDetailAcceptCarriage(@RequestParam("id") Long id) {
-//        try {
-//            return transportService.getOrderDetail(id);
-//        } catch (Exception e) {
-//            log.error("承运订单-(订单详情)查询失败:{}", e.getMessage(), e);
-//            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
-//        }
-//    }
 
     /**
      * 托运订单首页条件查询

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

@@ -101,6 +101,12 @@
             <artifactId>sckw-fleet-api</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-contract-api</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+
         <!-- validation -->
         <dependency>
             <groupId>org.springframework.boot</groupId>

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

@@ -36,7 +36,7 @@ public class AcceptCarriageOrderController {
     private TransportCommonService transportCommonService;
 
     /**
-     * 获取订单详情-托运订单-承运订单
+     * 获取订单详情-托运订单-承运订单-销售订单-采购订单
      *
      * @param dto
      * @return

+ 60 - 17
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java

@@ -13,6 +13,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * @author lfdc
  * @description 采购订单/销售订单-物流托运Controller
@@ -46,9 +48,9 @@ public class LogisticsConsignmentController {
     }
 
     /**
-     * 采购订单-托运订单详情-销售订单id
+     * 采购订单-托运订单列表-销售订单id
      *
-     * @param id
+     * @param id 销售订单id
      * @return
      */
     @Validated
@@ -56,11 +58,30 @@ public class LogisticsConsignmentController {
     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);
+        log.info("采购订单-托运订单列表 传递参数信息:{}", id);
+        try {
+            return logisticsConsignmentService.logisticsOrder(id, page, pageSize);
+        } catch (Exception e) {
+            log.error("采购订单-托运订单列表 error :{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+    /**
+     * 采购订单-托运订单列表-撤销托运
+     *
+     * @param ids 物流运单id
+     * @return
+     */
+    @Validated
+    @RequestMapping(value = "/purchaseCancelConsign", method = RequestMethod.POST)
+//    @GlobalTransactional(name = "default_tx_group")
+    public HttpResult purchaseCancelConsign(@RequestParam("ids") @NotBlank(message = "单据不能为空") List<String> ids) {
+        log.info("采购订单-托运订单列表-撤销托运:{}", JSONObject.toJSONString(ids));
         try {
-            return logisticsConsignmentService.purchaseLogisticsOrder(id, page, pageSize);
+            return logisticsConsignmentService.cancelConsign(ids, "1");
         } catch (Exception e) {
-            log.error("采购订单-托运订单详情 error :{}", e.getMessage(), e);
+            log.error("采购订单-托运订单列表-撤销托运 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
@@ -68,7 +89,9 @@ public class LogisticsConsignmentController {
     /**
      * 采购订单-车辆详情-销售订单id
      *
-     * @param id
+     * @param id       销售订单id
+     * @param page
+     * @param pageSize
      * @return
      */
     @Validated
@@ -76,15 +99,17 @@ public class LogisticsConsignmentController {
     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);
+        log.info("采购订单-托运订单列表 传递参数信息:{}", id);
         try {
             return logisticsConsignmentService.purchaseLogisticsCar(id, page, pageSize);
         } catch (Exception e) {
-            log.error("采购订单-托运订单详情 error :{}", e.getMessage(), e);
+            log.error("采购订单-托运订单列表 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
 
+
+
     /**
      * 销售订单-物流托运生成托运订单
      *
@@ -103,39 +128,57 @@ public class LogisticsConsignmentController {
     }
 
     /**
-     * 销售订单-托运订单详情-销售订单id
+     * 销售订单-托运订单列表-销售订单id
      *
-     * @param id
+     * @param id 销售订单id
      * @return
      */
     @RequestMapping(value = "/sellLogisticsOrder", method = RequestMethod.GET)
     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);
+        log.info("销售订单-托运订单列表 传递参数信息:{}", id);
         try {
-            return logisticsConsignmentService.sellLogisticsOrder(id, page, pageSize);
+            return logisticsConsignmentService.logisticsOrder(id, page, pageSize);
         } catch (Exception e) {
-            log.error("销售订单-托运订单详情 error :{}", e.getMessage(), e);
+            log.error("销售订单-托运订单列表 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }
 
     /**
-     * 销售订单-车辆详情-销售订单id
+     * 销售订单-车辆列表-销售订单id
      *
-     * @param id
+     * @param id 销售订单id
      * @return
      */
     @RequestMapping(value = "/sellLogisticsCar", method = RequestMethod.GET)
     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);
+        log.info("销售订单-车辆列表 传递参数信息:{}", id);
         try {
             return logisticsConsignmentService.sellLogisticsCar(id, page, pageSize);
         } catch (Exception e) {
-            log.error("销售订单-托运订单详情 error :{}", e.getMessage(), e);
+            log.error("销售订单-车辆列表 error :{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+    /**
+     * 销售订单-托运订单列表-撤销托运
+     *
+     * @param ids 物流订单id
+     * @return
+     */
+    @RequestMapping(value = "/sellCancelConsign", method = RequestMethod.GET)
+//    @GlobalTransactional(name = "default_tx_group")
+    public HttpResult sellCancelConsign(@RequestParam("ids") @NotBlank(message = "单据id不能为空") List<String> ids) {
+        log.info("销售订单-车辆列表 传递参数信息:{}", JSONObject.toJSONString(ids));
+        try {
+            return logisticsConsignmentService.cancelConsign(ids, "2");
+        } catch (Exception e) {
+            log.error("销售订单-车辆列表 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }

+ 3 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/StopOrderTakingDTO.java

@@ -1,6 +1,6 @@
 package com.sckw.transport.model.dto;
 
-import jakarta.validation.constraints.NotBlank;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
@@ -16,12 +16,13 @@ public class StopOrderTakingDTO {
     /**
      * 车辆运单ids
      */
-    @NotBlank(message = "车辆运单id不能为空")
+    @NotNull(message = "车辆运单id不能为空")
     private List<String> ids;
     /**
      * 物流订单id
      */
     @NotNull(message = "物流订单id不能为空")
+    @JsonProperty("lOrderId")
     private String lOrderId;
 
 }

+ 50 - 23
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -179,9 +179,9 @@ public class AcceptCarriageOrderService {
         }
         String pids = logisticsOrder.getPids();
         if (StringUtils.isNotBlank(pids)) {
-            pids = pids + StringConstant.SEMICOLON + orderId;
+            pids = pids + StringConstant.COMMA + orderId;
         } else {
-            pids = bo.getLOrderId() + StringConstant.SEMICOLON + orderId;
+            pids = bo.getLOrderId() + StringConstant.COMMA + orderId;
         }
         insertSubcontractLogisticsGoods(bo, lOrderNo, orderId);
         insertSubcontractLogisticsOrder(bo, lOrderNo, order, orderId, pids);
@@ -674,22 +674,23 @@ public class AcceptCarriageOrderService {
                 throw new RuntimeException("司机姓名格式不正确");
             }
         }
-        if (StringUtils.isNotBlank(driverParam.getTruckNo())) {
-            int length = driverParam.getTruckNo().trim().length();
-            if (driverParam.getTruckNo().trim().length() > NumberConstant.EIGHT || driverParam.getTruckNo().trim().length() < NumberConstant.SEVEN) {
-                throw new RuntimeException("车牌号位数不正确");
-            }
-            if (driverParam.getTruckNo().trim().length() == NumberConstant.EIGHT) {
-                if (!RegularUtils.matchs(RegularUtils.TRUCK_NUMBER_SIX, driverParam.getTruckNo())) {
-                    throw new RuntimeException("车牌号格式不正确");
-                }
-            } else if (driverParam.getTruckNo().trim().length() == NumberConstant.SEVEN) {
-                if (!RegularUtils.matchs(RegularUtils.TRUCK_NUMBER_FIVE, driverParam.getTruckNo())) {
-                    throw new RuntimeException("车牌号格式不正确");
-                }
-            }
-
-        }
+        //2023-07-25 去除车牌查询格式校验
+//        if (StringUtils.isNotBlank(driverParam.getTruckNo())) {
+//            int length = driverParam.getTruckNo().trim().length();
+//            if (driverParam.getTruckNo().trim().length() > NumberConstant.EIGHT || driverParam.getTruckNo().trim().length() < NumberConstant.SEVEN) {
+//                throw new RuntimeException("车牌号位数不正确");
+//            }
+//            if (driverParam.getTruckNo().trim().length() == NumberConstant.EIGHT) {
+//                if (!RegularUtils.matchs(RegularUtils.TRUCK_NUMBER_SIX, driverParam.getTruckNo())) {
+//                    throw new RuntimeException("车牌号格式不正确");
+//                }
+//            } else if (driverParam.getTruckNo().trim().length() == NumberConstant.SEVEN) {
+//                if (!RegularUtils.matchs(RegularUtils.TRUCK_NUMBER_FIVE, driverParam.getTruckNo())) {
+//                    throw new RuntimeException("车牌号格式不正确");
+//                }
+//            }
+//
+//        }
         if (StringUtils.isNotBlank(driverParam.getDriverPhone())) {
             if (driverParam.getDriverPhone().trim().length() > NumberConstant.ELEVEN) {
                 throw new RuntimeException("手机号不正确");
@@ -701,21 +702,34 @@ public class AcceptCarriageOrderService {
     }
 
     /**
-     * 设置停止接单
+     * 设置停止接单-针对于循环单
+     *
      * @param stopOrderTakingDTO
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
     public HttpResult stopDocumentCommit(StopOrderTakingDTO stopOrderTakingDTO) {
         List<Long> wOrderIds = logisticsOrderCirculateMapper.selectEntityBylOrderIdAndOrderIds(stopOrderTakingDTO.getLOrderId(), stopOrderTakingDTO.getIds());
+        List<JSONObject> list = new ArrayList<>(stopOrderTakingDTO.getIds().size());
         if (CollectionUtils.isNotEmpty(wOrderIds)) {
             wOrderIds.forEach(wOrderId -> {
-                logisticsOrderCirculateMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderCirculate>()
-                        .set(KwtLogisticsOrderCirculate::getStatus, NumberConstant.ONE)
-                        .eq(KwtLogisticsOrderCirculate::getWOrderId, wOrderId));
+                JSONObject jsonObject = new JSONObject();
+                jsonObject.put("wOrderId", wOrderId);
+                KwtWaybillOrder waybillOrder = waybillOrderMapper.selectOne(new LambdaUpdateWrapper<KwtWaybillOrder>().eq(KwtWaybillOrder::getId, wOrderId));
+                if (waybillOrder == null) {
+                    jsonObject.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
+                    jsonObject.put("message", "单据不存在或者单据异常");
+                } else {
+                    logisticsOrderCirculateMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderCirculate>()
+                            .set(KwtLogisticsOrderCirculate::getStatus, NumberConstant.ONE)
+                            .eq(KwtLogisticsOrderCirculate::getWOrderId, wOrderId));
+                    jsonObject.put("status", HttpStatus.SUCCESS_CODE);
+                    jsonObject.put("message", "停止接单成功");
+                }
+                list.add(jsonObject);
             });
         }
-        return HttpResult.ok();
+        return HttpResult.ok(list);
     }
 
     /**
@@ -739,6 +753,19 @@ public class AcceptCarriageOrderService {
                 result.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
                 result.put("message", "单据不是待接单状态,不可取消!");
             }
+            /**针对于趟次车,需要将可派单数量溯源回归于物流订单中*/
+            KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+                    .eq(KwtLogisticsOrder::getId, waybillOrder.getLOrderId()));
+            //已委托量
+            BigDecimal entrustAmount = logisticsOrder.getEntrustAmount().add(waybillOrder.getEntrustAmount());
+            //分包量
+            BigDecimal subcontractAmount = logisticsOrder.getSubcontractAmount().subtract(waybillOrder.getEntrustAmount());
+            logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
+                    .set(KwtLogisticsOrder::getSubcontractAmount, subcontractAmount)
+                    .set(KwtLogisticsOrder::getEntrustAmount, entrustAmount)
+                    .set(KwtLogisticsOrder::getUpdateTime, new Date())
+                    .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId())
+                    .eq(KwtLogisticsOrder::getId, logisticsOrder.getId()));
             waybillOrderMapper.update(null, new LambdaUpdateWrapper<KwtWaybillOrder>()
                     .eq(KwtWaybillOrder::getType, NumberConstant.ONE)
                     .eq(KwtWaybillOrder::getId, id)

+ 132 - 11
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -2,8 +2,9 @@ package com.sckw.transport.service;
 
 import cn.hutool.core.util.ArrayUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.sckw.core.common.enums.NumberConstant;
-import com.sckw.core.common.enums.StringConstant;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
@@ -20,6 +21,7 @@ import com.sckw.mongo.model.SckwLogisticsOrder;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.order.api.model.AddressInfoDetail;
 import com.sckw.order.api.model.OrderDetailRes;
+import com.sckw.order.api.model.UpdateOrderAmountParam;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
@@ -39,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -356,7 +359,8 @@ public class LogisticsConsignmentService {
         order.setTOrderNo(bo.getTOrderNo());
         order.setLOrderNo(lOrderNo);
         order.setPid(null);
-        order.setPids(orderId + StringConstant.SEMICOLON);
+//        order.setPids(orderId + StringConstant.COMMA);
+        order.setPids(orderId.toString());
         order.setSettlementCycle(bo.getSettlementCycle());
         order.setPrice(new BigDecimal(bo.getPrice()));
         order.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()) == null ?
@@ -471,8 +475,6 @@ public class LogisticsConsignmentService {
     }
 
     /**
-     * 采购订单-获取托运订单数据
-     *
      * @param id
      * @param page
      * @param pageSize
@@ -491,19 +493,33 @@ public class LogisticsConsignmentService {
     }
 
     /**
-     * 销售订单-获取托运订单数据
+     * 销售订单-采购订单-获取托运订单数据
      *
      * @param id
      * @param page
      * @param pageSize
      * @return
      */
-    public HttpResult sellLogisticsOrder(String id, Integer page, Integer pageSize) {
-        Long count = getLogisticsOrderCount(id);
-        Integer newPage = page - 1;
-        List<LogisticsOrderDTO> list = getLogisticsOrderData(id, newPage, pageSize);
-        PageResult build = PageResult.build(page, pageSize, count, list);
-        return HttpResult.ok(build);
+    public HttpResult logisticsOrder(String id, Integer page, Integer pageSize) {
+        HttpResult httpResult = new HttpResult();
+        OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(id));
+        /**根据下单方式决定托运数据是否展示*/
+        boolean flag = false;
+        if (String.valueOf(NumberConstant.ONE).equals(orderDetailRes.getSource())) {
+            flag = true;
+        } else if (String.valueOf(NumberConstant.TWO).equals(orderDetailRes.getSource())) {
+            flag = true;
+        } else {
+            throw new RuntimeException("获取贸易订单下单方式异常!");
+        }
+        if (flag) {
+            Long count = getLogisticsOrderCount(id);
+            Integer newPage = page - 1;
+            List<LogisticsOrderDTO> list = getLogisticsOrderData(id, newPage, pageSize);
+            PageResult build = PageResult.build(page, pageSize, count, list);
+            httpResult.setData(build);
+        }
+        return httpResult;
     }
 
     /**
@@ -557,4 +573,109 @@ public class LogisticsConsignmentService {
         List<OrderCarDTO> list = waybillOrderMapper.selectWaybillOrderCarList(id, page, pageSize);
         return list;
     }
+
+    /**
+     * 采购订单/销售订单-托运订单列表-撤销托运
+     *
+     * @param ids  物流订单id
+     * @param type 单据操作类型
+     * @return
+     */
+    public HttpResult cancelConsign(List<String> ids, String type) {
+        if (CollectionUtils.isEmpty(ids) || ids.size() < NumberConstant.ONE) {
+            throw new RuntimeException("单据id不能为空");
+        }
+        List<JSONObject> list = new ArrayList<>();
+        //1采购 2销售
+        if (String.valueOf(NumberConstant.ONE).equals(type)) {
+            cancelConsignByOrder(ids, list);
+        } else if (String.valueOf(NumberConstant.TWO).equals(type)) {
+            cancelConsignBySellOrder(ids, list);
+        } else {
+            throw new RuntimeException("类型错误!");
+        }
+        return HttpResult.ok(list);
+    }
+
+    /**
+     * 销售订单撤销托运
+     *
+     * @param ids
+     */
+    private void cancelConsignBySellOrder(List<String> ids, List<JSONObject> list) {
+        ids.forEach(s -> {
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("id", s);
+            /**当前单据作废
+             * 托运数量回归溯
+             */
+            KwtLogisticsOrder kwtLogisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaUpdateWrapper<KwtLogisticsOrder>()
+                    .eq(KwtLogisticsOrder::getId, s));
+            if (kwtLogisticsOrder == null || (!String.valueOf(LogisticsOrderEnum.PENDING_ORDER.getCode()).equals(kwtLogisticsOrder.getStatus()))) {
+                log.info("物流订单单据id:{}", s);
+                jsonObject.put("message", "单据状态异常或单据不存在");
+                jsonObject.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
+            }else {
+                OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(s));
+                UpdateOrderAmountParam param = new UpdateOrderAmountParam();
+                param.setTOrderId(Long.parseLong(s));
+                param.setActualAmount(orderDetailRes.getActualAmount().add(kwtLogisticsOrder.getLoadAmount()));
+                param.setEntrustAmount(orderDetailRes.getEntrustAmount().add(kwtLogisticsOrder.getEntrustAmount().subtract(kwtLogisticsOrder.getLoadAmount())));
+                tradeOrderInfoService.updateOrderAmount(param);
+                kwtLogisticsOrder.setDelFlag(1);
+                kwtLogisticsOrder.setUpdateTime(new Date());
+                kwtLogisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
+                kwtLogisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
+                        .eq(KwtLogisticsOrder::getId, kwtLogisticsOrder.getId())
+                        .set(KwtLogisticsOrder::getDelFlag, NumberConstant.ONE)
+                        .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId())
+                        .set(KwtLogisticsOrder::getUpdateTime, new Date()));
+                jsonObject.put("status", HttpStatus.SUCCESS_CODE);
+            }
+            list.add(jsonObject);
+        });
+    }
+
+    /**
+     * 采购订单撤销托运
+     *
+     * @param ids
+     */
+    private void cancelConsignByOrder(List<String> ids, List<JSONObject> list) {
+        ids.forEach(s -> {
+            /**当前单据作废
+             * 托运数量回归溯源
+             */
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("id", s);
+            /**当前单据作废
+             * 托运数量回归溯
+             */
+            KwtLogisticsOrder kwtLogisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaUpdateWrapper<KwtLogisticsOrder>()
+                    .eq(KwtLogisticsOrder::getId, s));
+            if (kwtLogisticsOrder == null || (!String.valueOf(LogisticsOrderEnum.PENDING_ORDER.getCode()).equals(kwtLogisticsOrder.getStatus()))) {
+                log.info("物流订单单据id:{}", s);
+                jsonObject.put("message", "单据状态异常或单据不存在");
+                jsonObject.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
+            }else {
+                OrderDetailRes orderDetailRes = tradeOrderInfoService.getOrderDetailById(Long.parseLong(s));
+                UpdateOrderAmountParam param = new UpdateOrderAmountParam();
+                param.setTOrderId(Long.parseLong(s));
+                param.setActualAmount(orderDetailRes.getActualAmount().add(kwtLogisticsOrder.getLoadAmount()));
+                param.setEntrustAmount(orderDetailRes.getEntrustAmount().add(kwtLogisticsOrder.getEntrustAmount().subtract(kwtLogisticsOrder.getLoadAmount())));
+                tradeOrderInfoService.updateOrderAmount(param);
+                kwtLogisticsOrder.setDelFlag(1);
+                kwtLogisticsOrder.setUpdateTime(new Date());
+                kwtLogisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
+                kwtLogisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
+                        .eq(KwtLogisticsOrder::getId, kwtLogisticsOrder.getId())
+                        .set(KwtLogisticsOrder::getDelFlag, NumberConstant.ONE)
+                        .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId())
+                        .set(KwtLogisticsOrder::getUpdateTime, new Date()));
+                jsonObject.put("status", HttpStatus.SUCCESS_CODE);
+            }
+            list.add(jsonObject);
+
+        });
+    }
 }

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

@@ -3,6 +3,8 @@ package com.sckw.transport.service;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.sckw.contract.api.RemoteContractService;
+import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
@@ -32,8 +34,10 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author lfdc
@@ -50,6 +54,9 @@ public class TransportCommonService {
     @DubboReference(version = "2.0.0", group = "design", check = false)
     TradeOrderInfoService tradeOrderInfoService;
 
+    @DubboReference(version = "2.0.0", group = "design", check = false)
+    RemoteContractService remoteContractService;
+
     @Autowired
     public KwtLogisticsOrderGoodsMapper logisticsOrderGoodsMapper;
 
@@ -128,6 +135,14 @@ public class TransportCommonService {
             //承运订单
             OrderDetailVO orderDetailVO = getOrderData(dto);
             httpResult.setData(orderDetailVO);
+        } else if (String.valueOf(NumberConstant.ZERO).equals(dto.getDocumentType())) {
+            //销售订单
+            OrderDetailVO orderDetailVO = getOrderData(dto);
+            httpResult.setData(orderDetailVO);
+        } else if (String.valueOf(NumberConstant.ONE).equals(dto.getDocumentType())) {
+            //采购订单
+            OrderDetailVO orderDetailVO = getOrderData(dto);
+            httpResult.setData(orderDetailVO);
         } else {
             httpResult.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
             httpResult.setMsg("单据类型错误");
@@ -137,6 +152,7 @@ public class TransportCommonService {
 
     /**
      * 获取订单详情
+     *
      * @param dto
      * @return
      */
@@ -171,8 +187,13 @@ public class TransportCommonService {
         if (contract != null) {
             orderDetailVO.setContractId(contract.getContractId() == null ? null : String.valueOf(contract.getContractId()));
             //todo 接口调用合同服务查询合同信息
-//            orderDetailVO.setContractName(contract.getContractId() == null ? null : String.valueOf(contract.getContractId()));
-//            orderDetailVO.setContractNo(contract.getContractId() == null ? null : String.valueOf(contract.getContractId()));
+            List<Long> list = new ArrayList<>(NumberConstant.SIXTEEN);
+            list.add(contract.getContractId());
+            Map<Long, ContractCommonInfoResDto> contractBaseInfo = remoteContractService.queryContractBaseInfo(list);
+            if (CollectionUtils.isNotEmpty(contractBaseInfo) && !ObjectUtils.isEmpty(contractBaseInfo.get(contract.getContractId()))) {
+                orderDetailVO.setContractName(contractBaseInfo.get(contract.getContractId()).getContactName());
+                orderDetailVO.setContractNo(contractBaseInfo.get(contract.getContractId()).getContractCode());
+            }
         }
         if (unitOne != null) {
             orderDetailVO.setConsignCompany(unitOne.getFirmName());

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

@@ -62,18 +62,18 @@
         and driver_id = #{driverId, jdbcType=BIGINT}
     </select>
 
-    <select id="selectEntityBylOrderIdAndOrderIds" resultMap="BaseResultMap">
+    <select id="selectEntityBylOrderIdAndOrderIds" resultType="java.lang.Long">
         SELECT
-            DISTINCT b.id
+        DISTINCT b.id
         FROM
-            kwt_waybill_order b,
-            kwt_logistics_order_contract c
+        kwt_waybill_order b,
+        kwt_logistics_order_circulate c
         WHERE
-            b.del_flag = 0
-          AND b.type = '2'
-          AND c.`status` = '0'
+        b.del_flag = 0
+        AND b.type = '2'
+        AND c.`status` = '0'
         <if test="lOrderId != null and lOrderId != ''">
-            b.l_order_id=#{l_order_id}
+          and   b.l_order_id=#{lOrderId}
         </if>
         <if test="ids != null and ids.size()>0">
             AND b.id IN

+ 4 - 2
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -310,10 +310,12 @@
             and b.driver_name like concat('%',#{driverParam.driverName},'%')
         </if>
         <if test="driverParam.driverPhone != null and driverParam.driverPhone != ''">
-            AND b.driver_phone =#{driverParam.driverPhone}
+            <!--            AND b.driver_phone =#{driverParam.driverPhone}-->
+            AND b.driver_phone like concat('%',#{driverParam.driverPhone},'%')
         </if>
         <if test="driverParam.truckNo != null and driverParam.truckNo != ''">
-            AND b.truck_no =#{driverParam.truckNo}
+<!--            AND b.truck_no = #{driverParam.truckNo}-->
+            AND b.truck_no like concat('%',#{driverParam.truckNo},'%')
         </if>
         GROUP BY b.truck_no
     </select>