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

承运订单/托运订单
1:承运订单-停止接单根据原型修改逻辑
2:托运订单-停止接单根据原型修改逻辑

lengfaqiang 2 лет назад
Родитель
Сommit
b4b9d1253c
14 измененных файлов с 543 добавлено и 248 удалено
  1. 1 1
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/RegularUtils.java
  2. 11 10
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java
  3. 91 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java
  4. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java
  5. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java
  6. 5 5
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/StopOrderTakingDTO.java
  7. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java
  8. 1 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/DriverParam.java
  9. 11 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/DriverListVo.java
  10. 184 146
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  11. 151 6
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  12. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java
  13. 4 5
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderCirculateMapper.xml
  14. 80 71
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

+ 1 - 1
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/RegularUtils.java

@@ -72,7 +72,7 @@ public class RegularUtils {
     /**
      * 中文汉字
      */
-    public static final String CHINESE = "^[\\u4e00-\\u9fa5]{2,4}$";
+    public static final String CHINESE = "^[\\u4e00-\\u9fa5]{1,6}$";
 
     /**
      * 姓名相关

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

@@ -2,6 +2,7 @@ package com.sckw.transport.controller;
 
 import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.model.page.PageRes;
+import com.sckw.core.model.vo.BaseList;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
@@ -227,11 +228,11 @@ public class AcceptCarriageOrderController {
     }
 
     /**
-     * 承运订单-设置停止接单-查询
+     * 承运订单-停止接单-查询
      *
      * @return
      */
-    @RequestMapping(value = "/stopDocumentDetail", method = RequestMethod.POST)
+    @RequestMapping(value = "/acceptStopDocumentDetail", method = RequestMethod.POST)
     public HttpResult stopDocumentDetail(@Validated @RequestBody DriverParam driverParam) {
         log.info("承运订单-设置停止接单-查询 请求参数:{}", JSONObject.toJSONString(driverParam));
         try {
@@ -243,12 +244,12 @@ public class AcceptCarriageOrderController {
     }
 
     /**
-     * 承运订单/托运订单-设置停止接单-提交
+     * 承运订单-设置停止接单-循环单提交
      *
      * @param stopOrderTakingDTO
      * @return
      */
-    @RequestMapping(value = "/stopDocumentCommit", method = RequestMethod.POST)
+    @RequestMapping(value = "/acceptStopDocumentCommit", method = RequestMethod.POST)
     public HttpResult stopDocumentCommit(@Validated @RequestBody StopOrderTakingDTO stopOrderTakingDTO) {
         log.info("承运订单/托运订单-设置停止接单-提交 请求参数:{}", JSONObject.toJSONString(stopOrderTakingDTO));
         try {
@@ -262,15 +263,15 @@ public class AcceptCarriageOrderController {
     /**
      * 承运订单-取消派车(撤回派车)/单趟撤回
      *
-     * @param ids 车辆运单id
+     * @param baseList 车辆运单id
      * @return
      */
-    @RequestMapping(value = "/cancelDelivery", method = RequestMethod.GET)
-    public HttpResult cancelDelivery(@NotBlank(message = "车辆运单id不能为空") @RequestParam("ids") String ids) {
-        log.info("承运订单-取消派车(撤回派车)/单趟撤回请求参数:{}", ids);
-        List<String> lists = StringUtils.splitStrToList(ids, ",", String.class);
+    @RequestMapping(value = "/cancelDelivery", method = RequestMethod.POST)
+    public HttpResult cancelDelivery(@Valid @RequestBody BaseList baseList) {
+        log.info("承运订单-取消派车(撤回派车)/单趟撤回请求参数:{}", JSONObject.toJSONString(baseList));
+        List<String> lists = StringUtils.splitStrToList(baseList.getIds(), ",", String.class);
         try {
-            return acceptCarriageOrderService.cancelDelivery(lists);
+            return acceptCarriageOrderService.cancelDelivery(lists,baseList.getIds());
         } catch (Exception e) {
             log.error("承运订单-单趟撤回 error:{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());

+ 91 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/ConsignOrderController.java

@@ -2,12 +2,15 @@ package com.sckw.transport.controller;
 
 import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.model.page.PageRes;
+import com.sckw.core.model.vo.BaseList;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.transport.model.dto.AddOrderDTO;
 import com.sckw.transport.model.dto.OrderDTO;
 import com.sckw.transport.model.dto.OrderFinishDTO;
+import com.sckw.transport.model.dto.StopOrderTakingDTO;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
+import com.sckw.transport.model.param.DriverParam;
 import com.sckw.transport.service.ConsignOrderService;
 import jakarta.validation.Valid;
 import jakarta.validation.constraints.NotBlank;
@@ -85,6 +88,94 @@ public class ConsignOrderController {
         }
     }
 
+
+    /**
+     * 托运订单-设置停止接单-物流订单id查询-针对循环单
+     *
+     * @param baseList 页面请求数据
+     * @return
+     */
+    @RequestMapping(value = "/consignStopDocumentDetailByOrderIds", method = RequestMethod.POST)
+    public HttpResult consignStopDocumentDetailByOrderIds(@Valid @RequestBody BaseList baseList) {
+        log.info("托运订单-设置停止接单-物流订单id查询 query {}", JSONObject.toJSONString(baseList));
+        try {
+            return consignOrderService.consignStopDocumentDetailByOrderIds(baseList);
+        } catch (Exception e) {
+            log.error("托运订单-设置停止接单-物流订单id查询:query {},error {} ", JSONObject.toJSONString(baseList), e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+    /**
+     * 托运订单-设置停止接单-条件查询-针对循环单
+     *
+     * @param driverParam 页面请求数据
+     * @return
+     */
+    @RequestMapping(value = "/consignStopDocumentDetail", method = RequestMethod.POST)
+    public HttpResult consignStopDocumentDetail(@Validated @RequestBody DriverParam driverParam) {
+        log.info("托运订单-设置停止接单-条件查询 query {}", JSONObject.toJSONString(driverParam));
+        try {
+            return consignOrderService.consignStopDocumentDetail(driverParam);
+        } catch (Exception e) {
+            log.error("托运订单-设置停止接单-条件查询:query {},error {} ", JSONObject.toJSONString(driverParam), e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+
+    /**
+     * 托运订单-设置停止接单-提交-针对循环单
+     *
+     * @param stopOrderTakingDTO    请求参数
+     * @return
+     */
+    @RequestMapping(value = "/consignStopDocumentCommit", method = RequestMethod.POST)
+    public HttpResult consignStopDocumentCommit(@Validated @RequestBody StopOrderTakingDTO stopOrderTakingDTO) {
+        log.info("托运订单-设置停止接单-提交 commit {}", JSONObject.toJSONString(stopOrderTakingDTO));
+        try {
+            return consignOrderService.consignStopDocumentCommit(stopOrderTakingDTO);
+        } catch (Exception e) {
+            log.error("托运订单-设置停止接单-提交 commit {},error {} ", JSONObject.toJSONString(stopOrderTakingDTO), e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
+
+//
+//    /**
+//     * 托运订单-设置停止接单-查询
+//     *
+//     * @return
+//     */
+//    @RequestMapping(value = "/stopDocumentDetail", method = RequestMethod.POST)
+//    public HttpResult stopDocumentDetail(@Validated @RequestBody DriverParam driverParam) {
+//        log.info("托运订单-设置停止接单-查询 请求参数:{}", JSONObject.toJSONString(driverParam));
+//        try {
+//            return consignOrderService.stopDocumentDetail(driverParam);
+//        } catch (Exception e) {
+//            log.error("托运订单-设置停止接单-查询 error:{}", e.getMessage(), e);
+//            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+//        }
+//    }
+//
+//    /**
+//     * 托运订单-设置停止接单-提交
+//     *
+//     * @param stopOrderTakingDTO
+//     * @return
+//     */
+//    @RequestMapping(value = "/stopDocumentCommit", method = RequestMethod.POST)
+//    public HttpResult stopDocumentCommit(@Validated @RequestBody StopOrderTakingDTO stopOrderTakingDTO) {
+//        log.info("托运订单-设置停止接单-提交 请求参数:{}", JSONObject.toJSONString(stopOrderTakingDTO));
+//        try {
+//            return consignOrderService.stopDocumentCommit(stopOrderTakingDTO);
+//        } catch (Exception e) {
+//            log.error("托运订单-设置停止接单-提交 error:{}", e.getMessage(), e);
+//            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+//        }
+//    }
+
     /**
      * 托运订单/承运订单-获取车辆运单-统计
      *

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

@@ -116,7 +116,7 @@ public class LogisticsConsignmentController {
     }
 
     /**
-     * 购订单-车辆信息-销售订单ids
+     * 采购购订单-车辆信息-销售订单ids
      *
      * @param orderQuery
      * @return

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

@@ -113,7 +113,7 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
     List<Map> countSubcontractConsignmentById(@Param("lOrderId") String lOrderId);
 
     /**
-     * 通过物流订单查看单据下运力司机数据
+     * 通过物流订单查看单据下运力司机数据【趟次】
      *
      * @param driverParam
      * @return

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

@@ -23,10 +23,10 @@ public class StopOrderTakingDTO {
     @JsonProperty("lOrderId")
     private String lOrderId;
 
-    /**
-     * 1托运 2承运
-     */
-    @JsonProperty("type")
-    private String type;
+//    /**
+//     * 1托运 2承运
+//     */
+//    @JsonProperty("type")
+//    private String type;
 
 }

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

@@ -102,7 +102,7 @@ public class SubcontractConsignmentDTO /**implements IdsList*/ {
     /**
      * 结算周期(周结、月结、季结)
      */
-    @NotNull(message = "结算周期不能为空")
+//    @NotNull(message = "结算周期不能为空")
     private Long settlementCycle;
 
     /**

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

@@ -42,6 +42,7 @@ public class DriverParam {
      * 代表循环或者趟次 1趟次 2循环
      */
     @JsonProperty("type")
+    @NotBlank(message = "类型不能为空")
     private String type;
 
 }

+ 11 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/DriverListVo.java

@@ -48,6 +48,11 @@ public class DriverListVo {
      */
     private String truckNo;
 
+    /**
+     * 车牌ID
+     */
+    private String truckId;
+
     /**
      * 车辆类型
      */
@@ -59,6 +64,12 @@ public class DriverListVo {
     @JsonProperty("lOrderId")
     private String lOrderId;
 
+    /**
+     * 物流订单号
+     */
+    @JsonProperty("lOrderNo")
+    private String lOrderNo;
+
     /**
      * 车辆运单id
      */

+ 184 - 146
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -96,6 +96,9 @@ public class AcceptCarriageOrderService {
     @Autowired
     public CommonService commonService;
 
+    @Autowired
+    public KwtWaybillOrderService waybillOrderService;
+
     @Resource
     private StreamBridge streamBridge;
 
@@ -117,9 +120,6 @@ public class AcceptCarriageOrderService {
     @Autowired
     public KwtLogisticsOrderContractMapper kwtLogisticsOrderContractMapper;
 
-    @Autowired
-    public KwtLogisticsOrderMapper kwtLogisticsOrderMapper;
-
     @Autowired
     private KwtLogisticsOrderCirculateMapper logisticsOrderCirculateMapper;
 
@@ -571,7 +571,7 @@ public class AcceptCarriageOrderService {
         order.setDeficitPrice(decimal);
         order.setDeficitAmount(decimal);
         order.setBindStatus(String.valueOf(NumberConstant.ZERO));
-        kwtLogisticsOrderMapper.insert(order);
+        logisticsOrderMapper.insert(order);
     }
 
     /**
@@ -849,22 +849,51 @@ public class AcceptCarriageOrderService {
         }
         /**请求参数校验*/
         checkParam(driverParam);
-        List<DriverListVo> list = logisticsOrderMapper.selectDriverListById(driverParam);
-        for (DriverListVo driverListVo : list) {
-            List<String> objects = new ArrayList<>();
-            objects.add(driverListVo.getTruckNo());
-            Map<String, RTruckVo> truck = fleetService.findTruck(objects);
-            if (!ObjectUtils.isEmpty(truck)) {
-                driverListVo.setCarType(truck.get(driverListVo.getDriverId()).getTruckType());
+        /**1 趟次 2 循环*/
+        Map<String, RTruckVo> truck = new HashMap<>();
+        if (String.valueOf(NumberConstant.ONE).equals(driverParam.getType())) {
+            //只展示待接单数据
+            List<DriverListVo> list = logisticsOrderMapper.selectDriverListById(driverParam);
+            if (CollectionUtils.isNotEmpty(list)) {
+                List<String> collect = list.stream().map(DriverListVo::getTruckNo).distinct().collect(Collectors.toList());
+                if (CollectionUtils.isNotEmpty(collect)) {
+                    truck = fleetService.findTruck(collect);
+                }
             }
+            for (DriverListVo driverListVo : list) {
+                if (!ObjectUtils.isEmpty(truck)) {
+                    driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                    driverListVo.setCarType(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getTruckType());
+                }
+            }
+            result.setData(list);
+        } else if (String.valueOf(NumberConstant.TWO).equals(driverParam.getType())) {
+            List<DriverListVo> list = logisticsOrderMapper.selectLoopOrderAndDriverListByOrderId(driverParam);
+            if (CollectionUtils.isNotEmpty(list)) {
+                List<String> collect = list.stream().map(DriverListVo::getTruckNo).distinct().collect(Collectors.toList());
+                if (CollectionUtils.isNotEmpty(collect)) {
+                    truck = fleetService.findTruck(collect);
+                }
+            }
+            for (DriverListVo driverListVo : list) {
+                if (!ObjectUtils.isEmpty(truck)) {
+                    driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                    driverListVo.setCarType(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getTruckType());
+                }
+            }
+            result.setData(list);
+        } else {
+            result.setMsg("查询类型错误!");
+            result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
+            return result;
         }
-        result.setData(list);
+
         return result;
     }
 
     private void checkParam(DriverParam driverParam) {
         if (StringUtils.isNotBlank(driverParam.getDriverName())) {
-            if (driverParam.getTruckNo().trim().length() > NumberConstant.TWENTY_FOUR) {
+            if (driverParam.getDriverName().trim().length() > NumberConstant.TWENTY_FOUR) {
                 throw new RuntimeException("司机姓名位数不正确");
             }
             if (!RegularUtils.matchs(RegularUtils.CHINESE, driverParam.getDriverName())) {
@@ -907,16 +936,20 @@ public class AcceptCarriageOrderService {
     @Transactional(rollbackFor = Exception.class)
     public HttpResult stopDocumentCommit(StopOrderTakingDTO stopOrderTakingDTO) {
         List<String> stringList = StringUtils.splitStrToList(stopOrderTakingDTO.getIds(), ",", String.class);
-        List<Long> wOrderIds = logisticsOrderCirculateMapper.selectEntityBylOrderIdAndOrderIds(stopOrderTakingDTO.getLOrderId(), stringList);
-        List<JSONObject> list = new ArrayList<>(stringList.size());
-        String type = stopOrderTakingDTO.getType();
-        if (String.valueOf(NumberConstant.TWO).equals(type)) {
-            acceptStopDocumentCommit(stopOrderTakingDTO, list, wOrderIds);
-        } else if (String.valueOf(NumberConstant.ONE).equals(type)) {
-            consignStopDocumentCommit(stopOrderTakingDTO, list, wOrderIds);
-        } else {
-            return HttpResult.error("单据类型错误!");
+        List<Long> circulateIds = logisticsOrderCirculateMapper.selectEntityBylOrderIdAndOrderIds(stopOrderTakingDTO.getLOrderId(), stringList);
+        if (CollectionUtils.isEmpty(circulateIds)){
+            return HttpResult.error("循环停止接单,单据不存在!");
         }
+        List<JSONObject> list = new ArrayList<>(stringList.size());
+        acceptStopDocumentCommit(stopOrderTakingDTO, list, circulateIds);
+//        String type = stopOrderTakingDTO.getType();
+//        if (String.valueOf(NumberConstant.TWO).equals(type)) {
+//            acceptStopDocumentCommit(stopOrderTakingDTO, list, wOrderIds);
+//        } else if (String.valueOf(NumberConstant.ONE).equals(type)) {
+//            consignStopDocumentCommit(stopOrderTakingDTO, list, wOrderIds);
+//        } else {
+//            return HttpResult.error("单据类型错误!");
+//        }
         return HttpResult.ok(list);
     }
 
@@ -966,36 +999,38 @@ public class AcceptCarriageOrderService {
      *
      * @param stopOrderTakingDTO
      */
-    private void acceptStopDocumentCommit(StopOrderTakingDTO stopOrderTakingDTO, List<JSONObject> list, List<Long> wOrderIds) {
-        if (CollectionUtils.isNotEmpty(wOrderIds)) {
-            wOrderIds.forEach(wOrderId -> {
+    private void acceptStopDocumentCommit(StopOrderTakingDTO stopOrderTakingDTO, List<JSONObject> list, List<Long> circulateIds) {
+        if (CollectionUtils.isNotEmpty(circulateIds)) {
+            circulateIds.forEach(circulateId -> {
                 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)
-                            .set(KwtLogisticsOrderCirculate::getUpdateBy, LoginUserHolder.getUserId())
-                            .set(KwtLogisticsOrderCirculate::getUpdateTime, new Date())
-                            .eq(KwtLogisticsOrderCirculate::getWOrderId, wOrderId)
-                    );
-//                    /**更新MongoDB*/
-                    SckwWaybillOrder order = new SckwWaybillOrder();
-                    order.setStatus(NumberConstant.ONE);
-                    order.setUpdateTime(new Date());
-                    order.setUpdateByName(LoginUserHolder.getUserName());
-                    order.setUpdateBy(LoginUserHolder.getUserId());
-                    SckwBusSum busSum = new SckwBusSum();
-                    busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
-                    busSum.setMethod(NumberConstant.TWO);
-                    busSum.setObject(order);
-                    streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
-                    jsonObject.put("status", HttpStatus.SUCCESS_CODE);
-                    jsonObject.put("message", "停止接单成功");
-                }
+                jsonObject.put("circulateId", circulateId);
+
+                logisticsOrderCirculateMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderCirculate>()
+                        .set(KwtLogisticsOrderCirculate::getStatus, NumberConstant.ONE)
+                        .set(KwtLogisticsOrderCirculate::getUpdateBy, LoginUserHolder.getUserId())
+                        .set(KwtLogisticsOrderCirculate::getUpdateTime, new Date())
+                        .eq(KwtLogisticsOrderCirculate::getId, circulateId)
+                );
+                /**更新MongoDB*/
+                SckwWaybillOrder order = new SckwWaybillOrder();
+                order.setStatus(NumberConstant.ONE);
+                order.setUpdateTime(new Date());
+                order.setUpdateByName(LoginUserHolder.getUserName());
+                order.setUpdateBy(LoginUserHolder.getUserId());
+                SckwBusSum busSum = new SckwBusSum();
+                busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
+                busSum.setMethod(NumberConstant.TWO);
+                busSum.setObject(order);
+                streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
+                jsonObject.put("status", HttpStatus.SUCCESS_CODE);
+                jsonObject.put("message", "停止接单成功");
+
+//                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 {
+//                }
                 list.add(jsonObject);
             });
         }
@@ -1008,93 +1043,96 @@ public class AcceptCarriageOrderService {
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
-    public HttpResult cancelDelivery(List<String> ids) {
-        List<JSONObject> list = new ArrayList<>();
-        JSONObject result = new JSONObject(NumberConstant.THREE);
-        for (String id : ids) {
-            result.put("id", id);
-            KwtWaybillOrder waybillOrder = waybillOrderMapper.selectOne(new LambdaUpdateWrapper<KwtWaybillOrder>()
-                    .eq(KwtWaybillOrder::getId, Long.parseLong(id)).eq(KwtWaybillOrder::getType, NumberConstant.ONE));
-            if (waybillOrder == null) {
-                result.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
-                result.put("message", "单据不存在");
-                list.add(result);
-                continue;
-            }
-            if (!CarWaybillEnum.PENDING_ORDER.getCode().equals(waybillOrder.getStatus())) {
-                result.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
-                result.put("message", "单据不是待接单状态,不可取消!");
-                list.add(result);
-                continue;
-            }
-            /**针对于趟次车,需要将可派单数量溯源回归于物流订单中*/
-            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, Long.parseLong(id))
-                    .set(KwtWaybillOrder::getStatus, CarWaybillEnum.REVOKED.getCode())
-                    .set(KwtWaybillOrder::getUpdateBy, LoginUserHolder.getUserId())
-                    .set(KwtWaybillOrder::getUpdateTime, new Date()));
-            /**变更单据状态*/
-            KwtWaybillOrderTrack waybillOrderTrack = waybillOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
-                    .eq(KwtWaybillOrderTrack::getWOrderId, id)
-                    .eq(KwtWaybillOrderTrack::getStatus, CarWaybillEnum.REVOKED.getCode())
-            );
-            if (waybillOrderTrack == null) {
-                KwtWaybillOrderTrack orderTrack = new KwtWaybillOrderTrack();
-                orderTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
-                orderTrack.setWOrderId(Long.parseLong(id));
-                orderTrack.setStatus(CarWaybillEnum.REVOKED.getCode());
-                orderTrack.setDelFlag(NumberConstant.ZERO);
-                orderTrack.setCreateBy(LoginUserHolder.getUserId());
-                orderTrack.setCreateTime(new Date());
-                orderTrack.setUpdateBy(LoginUserHolder.getUserId());
-                orderTrack.setUpdateTime(new Date());
-                waybillOrderTrackMapper.insert(orderTrack);
-            } else {
-                waybillOrderTrack.setUpdateTime(new Date());
-                waybillOrderTrack.setUpdateBy(LoginUserHolder.getUserId());
-                waybillOrderTrackMapper.updateById(waybillOrderTrack);
-            }
-
-            /**修改mongodb*/
-            //mongodb更新订单状态
-            SckwWaybillOrder updateParam = new SckwWaybillOrder();
-            updateParam.setWOrderId(Long.parseLong(id)).setStatus(CarWaybillEnum.REVOKED.getCode())
-                    .setUpdateBy(LoginUserHolder.getUserId()).setUpdateByName(LoginUserHolder.getUserName()).setUpdateTime(new Date());
-            SckwBusSum busSum = new SckwBusSum();
-            busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
-            busSum.setMethod(NumberConstant.TWO);
-            busSum.setObject(updateParam);
-            streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
-            SckwLogisticsOrder order = new SckwLogisticsOrder();
-            order.set_id(logisticsOrder.getId());
-            order.setLOrderId(logisticsOrder.getId());
-            order.setEntrustAmount(entrustAmount);
-            order.setSubcontractAmount(subcontractAmount);
-            order.setUpdateByName(LoginUserHolder.getUserName());
-            order.setUpdateTime(new Date());
-            SckwBusSum orderBusSum = new SckwBusSum();
-            orderBusSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
-            orderBusSum.setMethod(NumberConstant.TWO);
-            orderBusSum.setObject(order);
-            streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
-            result.put("status", HttpStatus.SUCCESS_CODE);
-            result.put("message", "取消成功");
-            list.add(result);
-        }
-        return HttpResult.ok(list);
+    public HttpResult cancelDelivery(List<String> ids, String idString) {
+        List<Long> ts = StringUtils.splitStrToList(idString, Long.class);
+        HttpResult httpResult = waybillOrderService.cancelSendCar(ts);
+        return httpResult;
+//        List<JSONObject> list = new ArrayList<>();
+//        JSONObject result = new JSONObject(NumberConstant.THREE);
+//        for (String id : ids) {
+//            result.put("id", id);
+//            KwtWaybillOrder waybillOrder = waybillOrderMapper.selectOne(new LambdaUpdateWrapper<KwtWaybillOrder>()
+//                    .eq(KwtWaybillOrder::getId, Long.parseLong(id)).eq(KwtWaybillOrder::getType, NumberConstant.ONE));
+//            if (waybillOrder == null) {
+//                result.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
+//                result.put("message", "单据不存在");
+//                list.add(result);
+//                continue;
+//            }
+//            if (!CarWaybillEnum.PENDING_ORDER.getCode().equals(waybillOrder.getStatus())) {
+//                result.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
+//                result.put("message", "单据不是待接单状态,不可取消!");
+//                list.add(result);
+//                continue;
+//            }
+//            /**针对于趟次车,需要将可派单数量溯源回归于物流订单中*/
+//            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, Long.parseLong(id))
+//                    .set(KwtWaybillOrder::getStatus, CarWaybillEnum.REVOKED.getCode())
+//                    .set(KwtWaybillOrder::getUpdateBy, LoginUserHolder.getUserId())
+//                    .set(KwtWaybillOrder::getUpdateTime, new Date()));
+//            /**变更单据状态*/
+//            KwtWaybillOrderTrack waybillOrderTrack = waybillOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtWaybillOrderTrack>()
+//                    .eq(KwtWaybillOrderTrack::getWOrderId, id)
+//                    .eq(KwtWaybillOrderTrack::getStatus, CarWaybillEnum.REVOKED.getCode())
+//            );
+//            if (waybillOrderTrack == null) {
+//                KwtWaybillOrderTrack orderTrack = new KwtWaybillOrderTrack();
+//                orderTrack.setId(new IdWorker(NumberConstant.ONE).nextId());
+//                orderTrack.setWOrderId(Long.parseLong(id));
+//                orderTrack.setStatus(CarWaybillEnum.REVOKED.getCode());
+//                orderTrack.setDelFlag(NumberConstant.ZERO);
+//                orderTrack.setCreateBy(LoginUserHolder.getUserId());
+//                orderTrack.setCreateTime(new Date());
+//                orderTrack.setUpdateBy(LoginUserHolder.getUserId());
+//                orderTrack.setUpdateTime(new Date());
+//                waybillOrderTrackMapper.insert(orderTrack);
+//            } else {
+//                waybillOrderTrack.setUpdateTime(new Date());
+//                waybillOrderTrack.setUpdateBy(LoginUserHolder.getUserId());
+//                waybillOrderTrackMapper.updateById(waybillOrderTrack);
+//            }
+//
+//            /**修改mongodb*/
+//            //mongodb更新订单状态
+//            SckwWaybillOrder updateParam = new SckwWaybillOrder();
+//            updateParam.setWOrderId(Long.parseLong(id)).setStatus(CarWaybillEnum.REVOKED.getCode())
+//                    .setUpdateBy(LoginUserHolder.getUserId()).setUpdateByName(LoginUserHolder.getUserName()).setUpdateTime(new Date());
+//            SckwBusSum busSum = new SckwBusSum();
+//            busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
+//            busSum.setMethod(NumberConstant.TWO);
+//            busSum.setObject(updateParam);
+//            streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
+//            SckwLogisticsOrder order = new SckwLogisticsOrder();
+//            order.set_id(logisticsOrder.getId());
+//            order.setLOrderId(logisticsOrder.getId());
+//            order.setEntrustAmount(entrustAmount);
+//            order.setSubcontractAmount(subcontractAmount);
+//            order.setUpdateByName(LoginUserHolder.getUserName());
+//            order.setUpdateTime(new Date());
+//            SckwBusSum orderBusSum = new SckwBusSum();
+//            orderBusSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+//            orderBusSum.setMethod(NumberConstant.TWO);
+//            orderBusSum.setObject(order);
+//            streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
+//            result.put("status", HttpStatus.SUCCESS_CODE);
+//            result.put("message", "取消成功");
+//            list.add(result);
+//        }
+//        return HttpResult.ok(list);
     }
 
     /**
@@ -1111,7 +1149,7 @@ public class AcceptCarriageOrderService {
         /**完结订单 不做页面填写数量与数据库数量进行计算验证-直接获取页面填写数据进行保存处理*/
         //物流订单id
         String id = orderFinishDTO.getId();
-        KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+        KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
                 .eq(KwtLogisticsOrder::getId, id));
         if (logisticsOrder == null) {
             throw new RuntimeException("承运订单-完结订单-物流单据不存在!");
@@ -1141,7 +1179,7 @@ public class AcceptCarriageOrderService {
         updateDataByItself(logisticsOrder, orderFinishDTO, ignoreAmount);
         //获取物流订单下的子单
         /**完结订单-对应物流订单下子订单都要进行完结*/
-        List<KwtLogisticsOrder> kwtLogisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
+        List<KwtLogisticsOrder> kwtLogisticsOrders = logisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
                 .eq(KwtLogisticsOrder::getDelFlag, NumberConstant.ZERO)
                 .apply(id != null, "FIND_IN_SET ('" + id + "', pids)").ne(KwtLogisticsOrder::getId, id));
         /**找到该订单下所有的物流订单**/
@@ -1167,14 +1205,14 @@ public class AcceptCarriageOrderService {
             //数据推送至贸易订单
             CompleteLogisticsOrderParam tradeOrder = new CompleteLogisticsOrderParam();
             //获取实际装货量-实际卸货量
-            Map<String, BigDecimal> map = kwtLogisticsOrderMapper.countAmountByTradeOrderId(logisticsOrder.getTOrderId());
+            Map<String, BigDecimal> map = logisticsOrderMapper.countAmountByTradeOrderId(logisticsOrder.getTOrderId());
             //获取是否订单已经全部处理完成
             List<Integer> orderStatusList = new ArrayList<>();
             orderStatusList.add(LogisticsOrderEnum.TO_BE_PLANNED.getCode());
             orderStatusList.add(LogisticsOrderEnum.PENDING_ORDER.getCode());
             orderStatusList.add(LogisticsOrderEnum.WAIT_DELIVERY.getCode());
             orderStatusList.add(LogisticsOrderEnum.IN_TRANSIT.getCode());
-            List<KwtLogisticsOrder> logisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
+            List<KwtLogisticsOrder> logisticsOrders = logisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
                     .eq(KwtLogisticsOrder::getTOrderId, logisticsOrder.getTOrderId())
                     .in(KwtLogisticsOrder::getStatus, statusList));
             if (org.springframework.util.CollectionUtils.isEmpty(logisticsOrders)) {
@@ -1229,7 +1267,7 @@ public class AcceptCarriageOrderService {
 
     private void updateLogisticOrderAndTrack(Long lOrderId, OrderFinishDTO orderFinishDTO, BigDecimal ignoreAmount) {
         Integer code = LogisticsOrderEnum.HAVE_FINISHED.getCode();
-        kwtLogisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
+        logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
                 .set(KwtLogisticsOrder::getStatus, code)
                 .set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId())
                 .set(KwtLogisticsOrder::getIgnoreAmount, ignoreAmount)
@@ -1309,7 +1347,7 @@ public class AcceptCarriageOrderService {
         logisticsOrder.setTotalLoadAmount(orderFinishDTO.getLoadAmount());
         logisticsOrder.setTotalUnloadAmount(orderFinishDTO.getUnloadAmount());
         logisticsOrder.setIgnoreAmount(ignoreAmount);
-        kwtLogisticsOrderMapper.updateById(logisticsOrder);
+        logisticsOrderMapper.updateById(logisticsOrder);
         KwtLogisticsOrderTrack track = logisticsOrderTrackMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderTrack>()
                 .eq(KwtLogisticsOrderTrack::getLOrderId, logisticsOrder.getId()).eq(KwtLogisticsOrderTrack::getStatus, LogisticsOrderEnum.HAVE_FINISHED.getCode())
         );
@@ -1357,14 +1395,14 @@ public class AcceptCarriageOrderService {
      * @param orderId        分包物流订单id
      */
     private void updateDataBySubset(OrderFinishDTO orderFinishDTO, String orderId) {
-        KwtLogisticsOrder kwtLogisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
+        KwtLogisticsOrder kwtLogisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
                 .eq(KwtLogisticsOrder::getId, Long.parseLong(orderId)));
         if (kwtLogisticsOrder != null) {
             kwtLogisticsOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
             kwtLogisticsOrder.setUpdateBy(LoginUserHolder.getUserId());
             kwtLogisticsOrder.setUpdateTime(new Date());
             kwtLogisticsOrder.setRemark(orderFinishDTO.getRemark());
-            kwtLogisticsOrderMapper.updateById(kwtLogisticsOrder);
+            logisticsOrderMapper.updateById(kwtLogisticsOrder);
             KwtLogisticsOrderTrack track = new KwtLogisticsOrderTrack();
             track.setId(new IdWorker(NumberConstant.ONE).nextId());
             track.setLOrderId(kwtLogisticsOrder.getId());

+ 151 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -16,8 +16,10 @@ import com.sckw.core.model.enums.CooperateTypeEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageRes;
 import com.sckw.core.model.page.PageResult;
+import com.sckw.core.model.vo.BaseList;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
+import com.sckw.core.utils.RegularUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -30,6 +32,7 @@ import com.sckw.manage.api.RemoteManageService;
 import com.sckw.manage.api.model.dto.res.FindEntCooperateResVo;
 import com.sckw.mongo.enums.BusinessTypeEnum;
 import com.sckw.mongo.model.SckwLogisticsOrder;
+import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.mongo.model.TableTops;
 import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.order.api.model.CompleteLogisticsOrderParam;
@@ -44,10 +47,8 @@ import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
 import com.sckw.transport.model.param.AcceptCarriageOrderQuery;
-import com.sckw.transport.model.vo.AcceptCarriageOrderVO;
-import com.sckw.transport.model.vo.CarWaybillVO;
-import com.sckw.transport.model.vo.OrderFinishVO;
-import com.sckw.transport.model.vo.WaybillCountVo;
+import com.sckw.transport.model.param.DriverParam;
+import com.sckw.transport.model.vo.*;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -408,6 +409,150 @@ public class ConsignOrderService {
         return HttpResult.ok(result);
     }
 
+    /**
+     * 托运订单-设置停止接单-针对循环单
+     *
+     * @param stopOrderTakingDTO
+     * @return
+     */
+    public HttpResult consignStopDocumentCommit(StopOrderTakingDTO stopOrderTakingDTO) {
+        List<JSONObject> returnList = new ArrayList<>();
+        List<Long> list = StringUtils.splitStrToList(stopOrderTakingDTO.getIds(), Long.class);
+        String lOrderId = stopOrderTakingDTO.getLOrderId();
+        if (CollectionUtils.isNotEmpty(list)) {
+            list.forEach(circulateId -> {
+                JSONObject jsonObject = new JSONObject();
+                jsonObject.put("circulateId", circulateId);
+                KwtLogisticsOrderCirculate circulate = kwtLogisticsOrderCirculateMapper.selectOne(new LambdaUpdateWrapper<KwtLogisticsOrderCirculate>()
+                        .eq(KwtLogisticsOrderCirculate::getId, circulateId)
+                );
+                if (circulate == null) {
+                    jsonObject.put("status", HttpStatus.GLOBAL_EXCEPTION_CODE);
+                    jsonObject.put("message", "单据不存在或者单据异常");
+                } else {
+                    /**循环单逻辑失效 如果已生成趟次数据,则不处理趟次数据*/
+                    kwtLogisticsOrderCirculateMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrderCirculate>()
+                            .set(KwtLogisticsOrderCirculate::getStatus, NumberConstant.ONE)
+                            .set(KwtLogisticsOrderCirculate::getUpdateBy, LoginUserHolder.getUserId())
+                            .set(KwtLogisticsOrderCirculate::getUpdateTime, new Date())
+                            .eq(KwtLogisticsOrderCirculate::getId, circulateId)
+                            .eq(KwtLogisticsOrderCirculate::getLOrderId, Long.parseLong(lOrderId))
+                    );
+                    /**更新MongoDB*/
+                    if (circulate.getWOrderId() != null) {
+                        SckwWaybillOrder order = new SckwWaybillOrder();
+                        order.set_id(circulate.getWOrderId());
+                        order.setWOrderId(circulate.getWOrderId());
+//                        order.setStatus(NumberConstant.ONE);
+                        order.setUpdateTime(new Date());
+                        order.setUpdateByName(LoginUserHolder.getUserName());
+                        order.setUpdateBy(LoginUserHolder.getUserId());
+                        SckwBusSum busSum = new SckwBusSum();
+                        busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
+                        busSum.setMethod(NumberConstant.TWO);
+                        busSum.setObject(order);
+                        streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
+                    }
+                    jsonObject.put("status", HttpStatus.SUCCESS_CODE);
+                    jsonObject.put("message", "停止接单成功");
+                }
+                returnList.add(jsonObject);
+            });
+        }
+        return HttpResult.ok(returnList);
+    }
+
+    /**
+     * 托运订单-设置停止接单-物流订单id查询-针对循环单
+     *
+     * @param baseList
+     * @return
+     */
+    public HttpResult consignStopDocumentDetailByOrderIds(BaseList baseList) {
+        //todo 目前只支持单选
+        HttpResult result = new HttpResult();
+        result.setCode(HttpStatus.SUCCESS_CODE);
+        List<Long> idsList = StringUtils.splitStrToList(baseList.getIds(), Long.class);
+        if (CollectionUtils.isEmpty(idsList)) {
+            return HttpResult.ok();
+        }
+        List<DriverListVo> list = kwtLogisticsOrderMapper.selectLoopOrderAndDriverListByOrderIds(idsList);
+        Map<String, RTruckVo> truck = new HashMap<>();
+        if (CollectionUtils.isNotEmpty(list)) {
+            List<String> collect = list.stream().map(DriverListVo::getTruckNo).distinct().collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(collect)) {
+                truck = fleetService.findTruck(collect);
+            }
+        }
+        for (DriverListVo driverListVo : list) {
+            if (driverListVo.getTruckNo() != null) {
+                List<String> objects = new ArrayList<>();
+                objects.add(driverListVo.getTruckNo());
+                if (!ObjectUtils.isEmpty(truck)) {
+                    driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                    driverListVo.setCarType(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getTruckType());
+                }
+            }
+        }
+        result.setData(list);
+        return result;
+    }
+
+    /**
+     * 托运订单-设置停止接单-查询
+     *
+     * @param driverParam 页面请求数据
+     * @return
+     */
+    public HttpResult consignStopDocumentDetail(DriverParam driverParam) {
+        HttpResult result = new HttpResult();
+        result.setCode(HttpStatus.SUCCESS_CODE);
+        HttpResult httpResult = ValidUtil.serviceValid(driverParam);
+        if (HttpStatus.SUCCESS_CODE != httpResult.getCode()) {
+            result.setMsg(httpResult.getMsg());
+            result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
+            return result;
+        }
+        /**请求参数校验*/
+        checkParam(driverParam);
+        List<DriverListVo> list = kwtLogisticsOrderMapper.selectLoopOrderAndDriverListByOrderId(driverParam);
+        Map<String, RTruckVo> truck = new HashMap<>();
+        if (CollectionUtils.isNotEmpty(list)) {
+            List<String> collect = list.stream().map(DriverListVo::getTruckNo).distinct().collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(collect)) {
+                truck = fleetService.findTruck(collect);
+            }
+        }
+        for (DriverListVo driverListVo : list) {
+            List<String> objects = new ArrayList<>();
+            objects.add(driverListVo.getTruckNo());
+            if (!ObjectUtils.isEmpty(truck)) {
+                driverListVo.setTransportStatus(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getBusinessStatus());
+                driverListVo.setCarType(truck.get(driverListVo.getTruckNo()) == null ? null : truck.get(driverListVo.getTruckNo()).getTruckType());
+            }
+        }
+        result.setData(list);
+        return result;
+    }
+
+    private void checkParam(DriverParam driverParam) {
+        if (StringUtils.isNotBlank(driverParam.getDriverName())) {
+            if (driverParam.getDriverName().trim().length() > NumberConstant.TWENTY_FOUR) {
+                throw new RuntimeException("司机姓名位数不正确");
+            }
+            if (!RegularUtils.matchs(RegularUtils.CHINESE, driverParam.getDriverName())) {
+                throw new RuntimeException("司机姓名格式不正确");
+            }
+        }
+        if (StringUtils.isNotBlank(driverParam.getDriverPhone())) {
+            if (driverParam.getDriverPhone().trim().length() > NumberConstant.ELEVEN) {
+                throw new RuntimeException("手机号不正确");
+            }
+            if (!RegularUtils.matchs(RegularUtils.PHONE_REG, driverParam.getDriverPhone())) {
+                throw new RuntimeException("手机号格式不正确");
+            }
+        }
+    }
 
     /**
      * 通过订单ids+类型 查询托运订单-车辆运单
@@ -995,7 +1140,7 @@ public class ConsignOrderService {
         saveConsignLogisticsOrder(addOrderDTO, lOrderId, orderStatus, lOrderNo);
         saveConsignLogisticsOrderAddress(addOrderDTO, lOrderId);
         saveConsignLogisticsOrderGoods(addOrderDTO, lOrderId, lOrderNo);
-        saveConsignLogisticsOrderContract(addOrderDTO, lOrderId,infoResDto);
+        saveConsignLogisticsOrderContract(addOrderDTO, lOrderId, infoResDto);
         saveConsignLogisticsOrderTrack(lOrderId, orderStatus);
         saveConsignLogisticsOrderUnit(addOrderDTO, lOrderId);
         saveMongoDb(addOrderDTO, orderStatus, lOrderId, lOrderNo, infoResDto);
@@ -1154,7 +1299,7 @@ public class ConsignOrderService {
      * @param addOrderDTO 页面请求参数
      * @param lOrderId    主体id
      */
-    private void saveConsignLogisticsOrderContract(AddOrderDTO addOrderDTO, Long lOrderId,ContractCommonInfoResDto infoResDto) {
+    private void saveConsignLogisticsOrderContract(AddOrderDTO addOrderDTO, Long lOrderId, ContractCommonInfoResDto infoResDto) {
         //托运
         KwtLogisticsOrderContract consignContract = new KwtLogisticsOrderContract();
         consignContract.setId(new IdWorker(NumberConstant.ONE).nextId());

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

@@ -226,7 +226,7 @@ public class TransportCommonService {
             result.setMsg("单据不存在");
             return result;
         }
-        if (!LogisticsOrderEnum.TO_BE_PLANNED.getCode().equals(logisticsOrder.getStatus())) {
+        if (!LogisticsOrderEnum.PENDING_ORDER.getCode().equals(logisticsOrder.getStatus())) {
             result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
             result.setMsg("待接单才允许撤销托运");
             return result;

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

@@ -112,19 +112,18 @@
 
     <select id="selectEntityBylOrderIdAndOrderIds" resultType="java.lang.Long">
         SELECT
-        DISTINCT b.id
+        c.id
         FROM
-        kwt_waybill_order b,
         kwt_logistics_order_circulate c
+        LEFT JOIN kwt_logistics_order b ON c.l_order_id = b.id
         WHERE
         b.del_flag = 0
-        AND b.type = '2'
         AND c.`status` = '0'
         <if test="lOrderId != null and lOrderId != ''">
-          and   b.l_order_id=#{lOrderId}
+          and   b.id =#{lOrderId}
         </if>
         <if test="ids != null and ids.size()>0">
-            AND b.id IN
+            AND c.id IN
             <foreach collection="ids" item="item" open="(" close=")" separator=",">
                 #{item}
             </foreach>

+ 80 - 71
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -378,41 +378,45 @@
 
     <select id="selectDriverListById" resultType="com.sckw.transport.model.vo.DriverListVo">
         SELECT a.id AS lOrderId,
+        a.l_order_no AS lOrderNo,
         b.driver_id AS driverId,
         b.id AS wOrderId,
         b.w_order_no AS wOrderNo,
         b.driver_name AS driverName,
         b.driver_phone AS driverPhone,
         b.driver_idcard AS driverIdCard,
-        b.truck_no AS truckNo,
-        COUNT( b.id ) AS count,
-        b.`status` as transportStatus
+        b.truck_no AS truckNo
+        <!--        ,-->
+        <!--        COUNT( b.id ) AS count-->
         FROM
         kwt_waybill_order b,
-        kwt_logistics_order_circulate c,
         kwt_logistics_order a
-        WHERE
-        a.id = c.l_order_id
-        AND a.id = b.l_order_id
-        AND a.del_flag = 0
-        AND b.del_flag = 0
-        AND b.type = '2'
-        AND c.`status` = '0'
-        <if test="driverParam.lOrderId != null and driverParam.lOrderId != ''">
-            AND a.id =#{driverParam.lOrderId}
-        </if>
-        <if test="driverParam.driverName != null and driverParam.driverName != ''">
-            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 like concat('%',#{driverParam.driverPhone},'%')
-        </if>
-        <if test="driverParam.truckNo != null and driverParam.truckNo != ''">
-            <!--            AND b.truck_no = #{driverParam.truckNo}-->
-            AND b.truck_no like concat('%',#{driverParam.truckNo},'%')
-        </if>
-        GROUP BY b.truck_no
+        <where>
+            a.id = b.l_order_id
+            AND a.del_flag = 0
+            AND b.del_flag = 0
+            AND b.type = '1'
+            AND b.status = 1
+            <if test="driverParam.lOrderId != null and driverParam.lOrderId != ''">
+                AND a.id =#{driverParam.lOrderId}
+            </if>
+            <if test="driverParam.driverName != null and driverParam.driverName != '' or ( driverParam.driverPhone != null and driverParam.driverPhone != '' ) or ( driverParam.truckNo != null and driverParam.truckNo != '' ) ">
+                and (
+                <if test="driverParam.driverName != null and driverParam.driverName != ''">
+                    b.driver_name like concat('%',#{driverParam.driverName},'%')
+                </if>
+                <if test="driverParam.driverPhone != null and driverParam.driverPhone != ''">
+                    or b.driver_phone like concat('%',#{driverParam.driverPhone},'%')
+                </if>
+                <if test="driverParam.truckNo != null and driverParam.truckNo != ''">
+                    or b.truck_no like concat('%',#{driverParam.truckNo},'%')
+                </if>
+                )
+            </if>
+            <!--        GROUP BY-->
+            <!--        b.truck_no-->
+            <!--        a.l_order_no,-->
+        </where>
     </select>
 
     <select id="selectLogisticOrderList" resultType="com.sckw.transport.api.model.dto.LogisticsOrderDTO">
@@ -584,60 +588,65 @@
     </select>
 
     <select id="selectLoopOrderAndDriverListByOrderId" resultType="com.sckw.transport.model.vo.DriverListVo">
-        SELECT DISTINCT
-        b.id AS wOrderId,
+        SELECT a.id AS lOrderId,
+        a.l_order_no AS lOrderNo,
+        c.driver_id AS driverId,
         c.id AS circulateId,
-        b.driver_id AS driverId,
-        c.l_order_id AS lOrderId,
-        b.driver_name AS driverName,
-        b.driver_phone AS driverPhone,
-        b.driver_idcard AS driverIdCard,
-        b.truck_no AS truckNo ,
+        c.driver_name AS driverName,
+        c.driver_phone AS driverPhone,
+        c.driver_idcard AS driverIdCard,
+        c.truck_no AS truckNo,
+        c.truck_id AS truckId,
         c.total_take as count
         FROM
-        kwt_logistics_order_circulate c
-        LEFT JOIN kwt_waybill_order b ON b.l_order_id = c.l_order_id
-        WHERE
-        b.del_flag = 0
-        AND c.del_flag = 0
-        AND b.type = '2'
-        and c.satus = 0
-        <if test="driverParam.lOrderId != null and driverParam.lOrderId != ''">
-            AND b.l_order_id =#{driverParam.lOrderId}
-        </if>
-        <if test="driverParam.driverName != null and driverParam.driverName != ''">
-            and b.driver_name like concat('%',#{driverParam.driverName},'%')
-        </if>
-        <if test="driverParam.driverPhone != null and driverParam.driverPhone != ''">
-            AND b.driver_phone like concat('%',#{driverParam.driverPhone},'%')
-        </if>
-        <if test="driverParam.truckNo != null and driverParam.truckNo != ''">
-            AND b.truck_no like concat('%',#{driverParam.truckNo},'%')
-        </if>
-        <!--        GROUP BY b.truck_no-->
+        kwt_logistics_order_circulate c,
+        kwt_logistics_order a
+        <where>
+            a.id = c.l_order_id
+            AND c.type = '2'
+            AND c.`status` = '0'
+            AND a.del_flag = 0
+            AND c.del_flag = 0
+            <if test="driverParam.lOrderId != null and driverParam.lOrderId != ''">
+                AND a.id =#{driverParam.lOrderId}
+            </if>
+            <if test="driverParam.driverName != null and driverParam.driverName != '' or ( driverParam.driverPhone != null and driverParam.driverPhone != '' ) or ( driverParam.truckNo != null and driverParam.truckNo != '' )">
+                and (
+                <if test=" driverParam.driverName != null and driverParam.driverName != ''">
+                    c.driver_name like concat('%',#{driverParam.driverName},'%')
+                </if>
+                <if test=" driverParam.driverPhone != null and driverParam.driverPhone != ''">
+                    or c.driver_phone like concat('%',#{driverParam.driverPhone},'%')
+                </if>
+                <if test=" driverParam.truckNo != null and driverParam.truckNo != ''">
+                    or c.truck_no like concat('%',#{driverParam.truckNo},'%')
+                </if>
+                )
+            </if>
+        </where>
     </select>
 
     <select id="selectLoopOrderAndDriverListByOrderIds" resultType="com.sckw.transport.model.vo.DriverListVo">
-        SELECT DISTINCT
-        b.id AS wOrderId,
+        SELECT
         c.id AS circulateId,
-        b.driver_id AS driverId,
-        c.l_order_id AS lOrderId,
-        b.driver_name AS driverName,
-        b.driver_phone AS driverPhone,
-        b.driver_idcard AS driverIdCard,
-        b.truck_no AS truckNo ,
-        c.total_take as count
+        c.driver_id AS driverId,
+        b.id AS lOrderId,
+        b.l_order_no AS lOrderNo,
+        c.driver_name AS driverName,
+        c.driver_phone AS driverPhone,
+        c.driver_idcard AS driverIdCard,
+        c.truck_no AS truckNo,
+        c.truck_id AS truckId,
+        c.total_take AS count
         FROM
         kwt_logistics_order_circulate c
-        LEFT JOIN kwt_waybill_order b ON b.l_order_id = c.l_order_id
+        LEFT JOIN kwt_logistics_order b ON b.id = c.l_order_id
         WHERE
         b.del_flag = 0
         AND c.del_flag = 0
-        AND b.type = '2'
-        and c.satus = 0
+        AND c.STATUS = 0
         <if test="idsList != null and idsList.size() >0">
-            AND b.l_order_id IN
+            AND b.id IN
             <foreach collection="idsList" item="item" open="(" close=")" separator=",">
                 #{item}
             </foreach>
@@ -744,10 +753,10 @@
         <where>
             a.del_flag = 0
             <if test="type == 1">
-                and d.top_ent_id = #{entId} or d.ent_id = #{entId}
+                and (d.top_ent_id = #{entId} or d.ent_id = #{entId})
             </if>
             <if test="type == 2">
-                and e.top_ent_id = #{entId} or e.ent_id = #{entId}
+                and (e.top_ent_id = #{entId} or e.ent_id = #{entId})
             </if>
             <if test="query.keywords != null and query.keywords != ''">
                 and (
@@ -810,10 +819,10 @@
         <where>
             a.del_flag = 0
             <if test="type == 1">
-                and d.top_ent_id = #{entId} or d.ent_id = #{entId}
+                and (d.top_ent_id = #{entId} or d.ent_id = #{entId})
             </if>
             <if test="type == 2">
-                and e.top_ent_id = #{entId} or e.ent_id = #{entId}
+                and (e.top_ent_id = #{entId} or e.ent_id = #{entId})
             </if>
             <if test="query.keywords != null and query.keywords != ''">
                 and (