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

1、车辆运单确认/拒绝出车

zk 2 лет назад
Родитель
Сommit
f5cca697af

+ 2 - 2
sckw-modules/sckw-fleet/src/main/resources/bootstrap-dev.yml

@@ -5,7 +5,7 @@ spring:
         # 服务注册地址
         server-addr: 10.10.10.230:8848
         # 命名空间
-        namespace: sckw_lfdc
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
       config:
@@ -14,7 +14,7 @@ spring:
         # 配置文件格式
         file-extension: yaml
         # 命名空间
-        namespace: sckw_lfdc
+        namespace: sckw_zk
         # 共享配置
         group: sckw-service-platform
         #可以读多个配置文件  需要在同一个命名空间下面可以是不同的组

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

@@ -1,11 +1,11 @@
 package com.sckw.transport.controller;
 
 import com.sckw.core.utils.CollectionUtils;
-import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.model.ValiList;
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.transport.model.dto.ConfirmRefuseSendCarDto;
+import com.sckw.transport.model.dto.OperateDepartureDto;
+import com.sckw.transport.model.dto.OperateSendCarDto;
 import com.sckw.transport.model.dto.SendCarDto1;
 import com.sckw.transport.model.dto.UpdateDriverCarDTO;
 import com.sckw.transport.service.DriverService;
@@ -125,7 +125,7 @@ public class KwtWaybillOrderController {
      * @date 2023/7/24
      **/
     @PostMapping("/confirmSendCar")
-    public HttpResult confirmSendCar(@RequestBody @Valid ConfirmRefuseSendCarDto params){
+    public HttpResult confirmSendCar(@RequestBody @Valid OperateSendCarDto params){
         return waybillOrderService.confirmSendCar(params);
     }
 
@@ -136,30 +136,30 @@ public class KwtWaybillOrderController {
      * @date 2023/7/24
      **/
     @PostMapping("/refuseSendCar")
-    public HttpResult refuseSendCar(@RequestBody @Valid ConfirmRefuseSendCarDto params){
+    public HttpResult refuseSendCar(@RequestBody @Valid OperateSendCarDto params){
         return waybillOrderService.refuseSendCar(params);
     }
 
     /**
-     * @param params {}
+     * @param params 确认/拒绝出车参数
      * @description 确认出车
      * @author zk
      * @date 2023/7/26
      **/
     @PostMapping("/confirmDeparture")
-    public HttpResult confirmDeparture(@RequestBody @Valid ConfirmRefuseSendCarDto params){
-        return waybillOrderService.confirmSendCar(params);
+    public HttpResult confirmDeparture(@RequestBody @Valid OperateDepartureDto params){
+        return waybillOrderService.confirmDeparture(params);
     }
 
     /**
-     * @param params {}
+     * @param params 确认/拒绝出车参数
      * @description 拒绝出车
      * @author zk
      * @date 2023/7/26
      **/
-    @PostMapping("/confirmDeparture")
-    public HttpResult refuseDeparture(@RequestBody @Valid ConfirmRefuseSendCarDto params){
-        return waybillOrderService.refuseSendCar(params);
+    @PostMapping("/refuseDeparture")
+    public HttpResult refuseDeparture(@RequestBody @Valid OperateDepartureDto params){
+        return waybillOrderService.refuseDeparture(params);
     }
 
 

+ 28 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OperateDepartureDto.java

@@ -0,0 +1,28 @@
+package com.sckw.transport.model.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+
+/**
+ * @author zk
+ * @desc 确认/拒绝出车参数
+ * @date 2023/7/26 0026
+ */
+@Data
+public class OperateDepartureDto {
+
+    /**
+     * 车辆订单id
+     */
+    @JsonProperty("wOrderId")
+    @NotNull(message = "车辆订单ID不能为空")
+    private Long wOrderId;
+
+    /**
+     * 备注
+     */
+    @Size(max=100, message = "原因长度不能大于100个字符!")
+    private String remark;
+}

+ 8 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/ConfirmRefuseSendCarDto.java → sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/OperateSendCarDto.java

@@ -2,6 +2,7 @@ package com.sckw.transport.model.dto;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
 import lombok.Data;
 
 /**
@@ -10,7 +11,7 @@ import lombok.Data;
  * @date 2023/7/25 0025
  */
 @Data
-public class ConfirmRefuseSendCarDto {
+public class OperateSendCarDto {
 
     /**
      * 派车类型(1:趟次:2:循环)
@@ -46,4 +47,10 @@ public class ConfirmRefuseSendCarDto {
     @JsonProperty("truckId")
     @NotNull(message = "车辆信息ID不能为空")
     private Long truckId;
+
+    /**
+     * 备注
+     */
+    @Size(max=100, message = "原因长度不能大于100个字符!")
+    private String remark;
 }

+ 137 - 12
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -1,7 +1,5 @@
 package com.sckw.transport.service;
 
-import com.alibaba.fastjson.JSON;
-import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
@@ -18,17 +16,17 @@ import com.sckw.mongo.model.SckwWaybillOrder;
 import com.sckw.stream.model.SckwBusSum;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
-import com.sckw.transport.model.dto.ConfirmRefuseSendCarDto;
+import com.sckw.transport.model.dto.OperateDepartureDto;
+import com.sckw.transport.model.dto.OperateSendCarDto;
 import com.sckw.transport.model.dto.SendCarDto1;
 import jakarta.annotation.Resource;
-import org.checkerframework.checker.units.qual.K;
 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.Arrays;
 import java.util.List;
 
 /**
@@ -250,7 +248,7 @@ public class KwtWaybillOrderService {
         waybillOrderAddressDao.insert(unloadAddress);
 
         /**车辆运单状态记录**/
-        this.setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus());
+        this.setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), null);
     }
 
     /**
@@ -299,14 +297,16 @@ public class KwtWaybillOrderService {
     /**
      * @param wOrderId 车辆订单ID
      * @param status 车辆运单状态
+     * @param remark 备注
      * @desc 新增运单状态记录
      * @author zk
      * @date 2023/7/20
      **/
-    public KwtWaybillOrderTrack setWaybillOrderTrack(Long wOrderId, int status) {
+    public KwtWaybillOrderTrack setWaybillOrderTrack(Long wOrderId, int status, String remark) {
         KwtWaybillOrderTrack orderTrack = new KwtWaybillOrderTrack();
         orderTrack.setWOrderId(wOrderId);
         orderTrack.setStatus(status);
+        orderTrack.setRemark(remark);
         int count = waybillOrderTrackDao.insert(orderTrack);
         return count > 0 ? orderTrack : null;
     }
@@ -553,7 +553,7 @@ public class KwtWaybillOrderService {
                     waybillOrderDao.updateById(order);
 
                     /**2新增运单状态记录**/
-                    setWaybillOrderTrack(order.getId(), order.getStatus());
+                    setWaybillOrderTrack(order.getId(), order.getStatus(), null);
 
                     /**3回退承运订单entrustAmount**/
                     KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(order.getLOrderId());
@@ -613,7 +613,7 @@ public class KwtWaybillOrderService {
      * @date 2023/7/25
      **/
     @Transactional(rollbackFor = Exception.class)
-    public HttpResult confirmSendCar(ConfirmRefuseSendCarDto params) {
+    public HttpResult confirmSendCar(OperateSendCarDto params) {
         /**趟次派车**/
         if (params.getType() == Global.NUMERICAL_ONE) {
             /**数据校验**/
@@ -632,7 +632,7 @@ public class KwtWaybillOrderService {
             waybillOrderDao.updateById(order);
 
             /**2新增运单状态记录**/
-            setWaybillOrderTrack(order.getId(), order.getStatus());
+            setWaybillOrderTrack(order.getId(), order.getStatus(), params.getRemark());
 
             /**3Mongodb数据更新**/
             //1车辆运单
@@ -754,7 +754,7 @@ public class KwtWaybillOrderService {
      * @date 2023/7/25
      **/
     @Transactional(rollbackFor = Exception.class)
-    public HttpResult refuseSendCar(ConfirmRefuseSendCarDto params) {
+    public HttpResult refuseSendCar(OperateSendCarDto params) {
         /**趟次派车**/
         if (params.getType() == Global.NUMERICAL_ONE) {
             /**数据校验**/
@@ -773,7 +773,7 @@ public class KwtWaybillOrderService {
             waybillOrderDao.updateById(order);
 
             /**2新增运单状态记录**/
-            setWaybillOrderTrack(order.getId(), order.getStatus());
+            setWaybillOrderTrack(order.getId(), order.getStatus(), params.getRemark());
 
             /**3回退承运订单entrustAmount**/
             KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(order.getLOrderId());
@@ -830,6 +830,7 @@ public class KwtWaybillOrderService {
 
             /**1更新循环单状态为失效**/
             circulate.setStatus(Global.YES);
+            circulate.setRemark(params.getRemark());
             logisticsOrderCirculateDao.updateById(circulate);
 
             /**2Mongodb数据更新**/
@@ -855,8 +856,132 @@ public class KwtWaybillOrderService {
     }
 
 
+    /**
+     * @param params 确认/拒绝出车参数
+     * @description 确认出车
+     * @author zk
+     * @date 2023/7/26
+     **/
+    public HttpResult confirmDeparture(OperateDepartureDto params){
+        /**数据校验**/
+        KwtWaybillOrder order = waybillOrderDao.selectById(params.getWOrderId());
+        if (order == null) {
+            return HttpResult.error("车辆运单不存在!");
+        }
+        //待出车车辆运单才能出车
+        if (order.getStatus() != CarWaybillEnum.PENDING_VEHICLE.getCode()) {
+            return HttpResult.error("车辆运单当前状态已不能出车!");
+        }
+
+        /**业务处理**/
+        /**1更新车辆运单**/
+        order.setStatus(CarWaybillEnum.EXIT_COMPLETED.getCode());
+        waybillOrderDao.updateById(order);
+
+        /**2新增运单状态记录**/
+        setWaybillOrderTrack(order.getId(), order.getStatus(), params.getRemark());
+
+        /**3Mongodb数据更新**/
+        //1车辆运单
+        SckwWaybillOrder wOrder = new SckwWaybillOrder();
+        wOrder.set_id(order.getId());
+        wOrder.setWOrderId(order.getId());
+        wOrder.setStatus(order.getStatus());
+        wOrder.setUpdateTime(order.getUpdateTime());
+        wOrder.setUpdateBy(order.getUpdateBy());
+        //rabbitMq业务汇总数据发送/消费对象
+        SckwBusSum busSum = new SckwBusSum();
+        //业务汇总类型
+        busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
+        //操作对象(1新增/2修改/3替换数据)
+        busSum.setMethod(2);
+        //业务汇总数据对象
+        busSum.setObject(wOrder);
+        streamBridge.send("sckw-busSum", busSum);
+
+        /**4发送消息**/
+
+        return HttpResult.ok("确认出车成功!");
+    }
+
+    /**
+     * @param params 确认/拒绝出车参数
+     * @description 拒绝出车
+     * @author zk
+     * @date 2023/7/26
+     **/
+    public HttpResult refuseDeparture(OperateDepartureDto params){
+        /**数据校验**/
+        KwtWaybillOrder order = waybillOrderDao.selectById(params.getWOrderId());
+        if (order == null) {
+            return HttpResult.error("车辆运单不存在!");
+        }
+        //待出车车辆运单才能拒绝出车
+        if (order.getStatus() != CarWaybillEnum.PENDING_VEHICLE.getCode()) {
+            return HttpResult.error("车辆运单当前状态已不能拒绝出车!");
+        }
+
+        /**业务处理**/
+        /**1更新车辆运单**/
+        order.setStatus(CarWaybillEnum.REFUSE_TRAFFIC.getCode());
+        waybillOrderDao.updateById(order);
+
+        /**2新增运单状态记录**/
+        setWaybillOrderTrack(order.getId(), order.getStatus(), params.getRemark());
+
+        /**3回退承运订单entrustAmount**/
+        KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(order.getLOrderId());
+        //承运订单已委派量=承运订单原委派量+当前车辆运单委派量
+        BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
+        logisticsOrder.setEntrustAmount(entrustAmount.subtract(order.getEntrustAmount()));
+        logisticsOrderDao.updateById(logisticsOrder);
+
+        /**4Mongodb数据更新**/
+        //1车辆运单
+
+        //2承运订单
+
+
+        /**5发送消息**/
 
+        return HttpResult.ok("拒绝出车成功!");
+    }
+
+    public void editSckwWaybillOrder(KwtWaybillOrder order){
+        SckwWaybillOrder wOrder = new SckwWaybillOrder();
+        wOrder.set_id(order.getId());
+        wOrder.setWOrderId(order.getId());
+        wOrder.setStatus(order.getStatus());
+        wOrder.setUpdateTime(order.getUpdateTime());
+        wOrder.setUpdateBy(order.getUpdateBy());
+        //rabbitMq业务汇总数据发送/消费对象
+        SckwBusSum busSum = new SckwBusSum();
+        //业务汇总类型
+        busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
+        //操作对象(1新增/2修改/3替换数据)
+        busSum.setMethod(2);
+        //业务汇总数据对象
+        busSum.setObject(wOrder);
+        streamBridge.send("sckw-busSum", busSum);
+    }
 
+    public void editSckwLogisticsOrder(KwtLogisticsOrder logisticsOrder){
+        SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
+        lOrder.set_id(logisticsOrder.getId());
+        lOrder.setLOrderId(logisticsOrder.getId());
+        lOrder.setEntrustAmount(logisticsOrder.getEntrustAmount());
+        lOrder.setUpdateTime(logisticsOrder.getUpdateTime());
+        lOrder.setUpdateBy(logisticsOrder.getUpdateBy());
+        //rabbitMq业务汇总数据发送/消费对象
+        SckwBusSum busSum = new SckwBusSum();
+        //业务汇总类型
+        busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+        //操作对象(1新增/2修改/3替换数据)
+        busSum.setMethod(2);
+        //业务汇总数据对象
+        busSum.setObject(lOrder);
+        streamBridge.send("sckw-busSum", busSum);
+    }
 
 
 }