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

1、车辆运单代码逻辑调整

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

+ 109 - 182
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -512,7 +512,7 @@ public class KwtWaybillOrderService {
 
     /**
      * @param ids 车辆运单主键ID,多个已逗号隔开
-     * @description 取消派车
+     * @description 取消派车(趟次派车)
      * @author zk
      * @date 2023/7/24
      **/
@@ -544,56 +544,33 @@ public class KwtWaybillOrderService {
 
         /**业务处理**/
         for (Long id : ids) {
-            KwtWaybillOrder order = waybillOrderDao.selectById(id);
-            if (order != null) {
+            KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(id);
+            if (waybillOrder != null) {
                 //待接单的车辆运单才能撤回
-                if (order.getStatus() == CarWaybillEnum.PENDING_ORDER.getCode()) {
+                if (waybillOrder.getStatus() == CarWaybillEnum.PENDING_ORDER.getCode()) {
                     /**1更新车辆运单**/
-                    order.setStatus(CarWaybillEnum.REVOKED.getCode());
-                    waybillOrderDao.updateById(order);
+                    waybillOrder.setStatus(CarWaybillEnum.REVOKED.getCode());
+                    waybillOrderDao.updateById(waybillOrder);
 
                     /**2新增运单状态记录**/
-                    setWaybillOrderTrack(order.getId(), order.getStatus(), null);
+                    setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), null);
 
                     /**3回退承运订单entrustAmount**/
-                    KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(order.getLOrderId());
+                    KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
                     //承运订单已委派量=承运订单原委派量+当前车辆运单委派量
                     BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
-                    logisticsOrder.setEntrustAmount(entrustAmount.subtract(order.getEntrustAmount()));
+                    logisticsOrder.setEntrustAmount(entrustAmount.subtract(waybillOrder.getEntrustAmount()));
                     logisticsOrderDao.updateById(logisticsOrder);
 
                     /**4Mongodb数据更新**/
-                    //1车辆
+                    //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);
+                    wOrder.set_id(waybillOrder.getId());
+                    editSckwWaybillOrder(wOrder, waybillOrder, 2);
 
                     //2承运订单
                     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());
-                    //业务汇总类型
-                    busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
-                    //操作对象(1新增/2修改/3替换数据)
-                    busSum.setMethod(2);
-                    //业务汇总数据对象
-                    busSum.setObject(lOrder);
-                    streamBridge.send("sckw-busSum", busSum);
+                    editSckwLogisticsOrder(lOrder, logisticsOrder);
 
                     /**5发送消息**/
 
@@ -606,6 +583,54 @@ public class KwtWaybillOrderService {
         return HttpResult.ok("车辆运单撤回成功!");
     }
 
+    /**
+     * @param wOrder mongodb中车辆运单信息
+     * @param order 车辆运单信息
+     * @param method 操作对象(1新增/2修改/3替换数据)
+     * @description 更新mongodb中车辆运单信息
+     * @author zk
+     * @date 2023/7/26
+     **/
+    public void editSckwWaybillOrder(SckwWaybillOrder wOrder, KwtWaybillOrder order, int method){
+        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(method);
+        //业务汇总数据对象
+        busSum.setObject(wOrder);
+        streamBridge.send("sckw-busSum", busSum);
+    }
+
+    /**
+     * @param lOrder mongodb中承运订单信息
+     * @param order 承运订单
+     * @description 更新mongodb中承运订单信息
+     * @author zk
+     * @date 2023/7/26
+     **/
+    public void editSckwLogisticsOrder(SckwLogisticsOrder lOrder, KwtLogisticsOrder order){
+        lOrder.set_id(order.getId());
+        lOrder.setLOrderId(order.getId());
+        lOrder.setEntrustAmount(order.getEntrustAmount());
+        lOrder.setUpdateTime(order.getUpdateTime());
+        lOrder.setUpdateBy(order.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);
+    }
+
     /**
      * @param params {}
      * @description 确认接单
@@ -617,40 +642,28 @@ public class KwtWaybillOrderService {
         /**趟次派车**/
         if (params.getType() == Global.NUMERICAL_ONE) {
             /**数据校验**/
-            KwtWaybillOrder order = waybillOrderDao.selectById(params.getWOrderId());
-            if (order == null) {
+            KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
+            if (waybillOrder == null) {
                 return HttpResult.error("车辆趟次运单不存在!");
             }
             //待接单车辆运单才能拒绝接单
-            if (order.getStatus() != CarWaybillEnum.PENDING_ORDER.getCode()) {
+            if (waybillOrder.getStatus() != CarWaybillEnum.PENDING_ORDER.getCode()) {
                 return HttpResult.error("车辆运单当前状态已不能拒绝接单!");
             }
 
             /**业务处理**/
             /**1更新车辆运单**/
-            order.setStatus(CarWaybillEnum.PENDING_VEHICLE.getCode());
-            waybillOrderDao.updateById(order);
+            waybillOrder.setStatus(CarWaybillEnum.PENDING_VEHICLE.getCode());
+            waybillOrderDao.updateById(waybillOrder);
 
             /**2新增运单状态记录**/
-            setWaybillOrderTrack(order.getId(), order.getStatus(), params.getRemark());
+            setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.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);
+            wOrder.set_id(waybillOrder.getId());
+            editSckwWaybillOrder(wOrder, waybillOrder, 2);
 
             /**4发送消息**/
 
@@ -693,7 +706,6 @@ public class KwtWaybillOrderService {
             //补上车辆运单待接单状态
             setWaybillOrderTrack(circulate, waybillOrder.getId());
 
-
             /**2更新承运订单信息**/
             //承运单信息
             KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
@@ -707,21 +719,14 @@ public class KwtWaybillOrderService {
             logisticsOrderCirculateDao.updateById(circulate);
 
             /**4Mongodb数据更新**/
+            //1车辆订单
             SckwWaybillOrder wOrder = new SckwWaybillOrder();
             wOrder.set_id(circulate.getId());
-            wOrder.setWOrderId(waybillOrder.getId());
-            wOrder.setStatus(waybillOrder.getStatus());
-            wOrder.setUpdateTime(waybillOrder.getUpdateTime());
-            wOrder.setUpdateBy(waybillOrder.getUpdateBy());
-            //rabbitMq业务汇总数据发送/消费对象
-            SckwBusSum busSum = new SckwBusSum();
-            //业务汇总类型
-            busSum.setBusSumType(BusinessTypeEnum.WAYBILL_ORDER_TYPE.getName());
-            //操作对象(1新增/2修改/3替换数据)
-            busSum.setMethod(3);
-            //业务汇总数据对象
-            busSum.setObject(wOrder);
-            streamBridge.send("sckw-busSum", busSum);
+            editSckwWaybillOrder(wOrder, waybillOrder, 3);
+
+            //2承运订单
+            SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
+            editSckwLogisticsOrder(lOrder, logisticsOrder);
 
             /**5发送消息**/
         }
@@ -758,62 +763,39 @@ public class KwtWaybillOrderService {
         /**趟次派车**/
         if (params.getType() == Global.NUMERICAL_ONE) {
             /**数据校验**/
-            KwtWaybillOrder order = waybillOrderDao.selectById(params.getWOrderId());
-            if (order == null) {
+            KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
+            if (waybillOrder == null) {
                 return HttpResult.error("车辆趟次运单不存在!");
             }
             //待接单车辆运单才能拒绝接单
-            if (order.getStatus() != CarWaybillEnum.PENDING_ORDER.getCode()) {
+            if (waybillOrder.getStatus() != CarWaybillEnum.PENDING_ORDER.getCode()) {
                 return HttpResult.error("车辆运单当前状态已不能拒绝接单!");
             }
 
             /**业务处理**/
             /**1更新车辆运单**/
-            order.setStatus(CarWaybillEnum.REVOKED.getCode());
-            waybillOrderDao.updateById(order);
+            waybillOrder.setStatus(CarWaybillEnum.REVOKED.getCode());
+            waybillOrderDao.updateById(waybillOrder);
 
             /**2新增运单状态记录**/
-            setWaybillOrderTrack(order.getId(), order.getStatus(), params.getRemark());
+            setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
 
             /**3回退承运订单entrustAmount**/
-            KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(order.getLOrderId());
+            KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
             //承运订单已委派量=承运订单原委派量+当前车辆运单委派量
             BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
-            logisticsOrder.setEntrustAmount(entrustAmount.subtract(order.getEntrustAmount()));
+            logisticsOrder.setEntrustAmount(entrustAmount.subtract(waybillOrder.getEntrustAmount()));
             logisticsOrderDao.updateById(logisticsOrder);
 
             /**4Mongodb数据更新**/
             //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);
+            wOrder.set_id(waybillOrder.getId());
+            editSckwWaybillOrder(wOrder, waybillOrder, 2);
 
             //2承运订单
             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());
-            //业务汇总类型
-            busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
-            //操作对象(1新增/2修改/3替换数据)
-            busSum.setMethod(2);
-            //业务汇总数据对象
-            busSum.setObject(lOrder);
-            streamBridge.send("sckw-busSum", busSum);
+            editSckwLogisticsOrder(lOrder, logisticsOrder);
 
             /**5发送消息**/
 
@@ -855,49 +837,37 @@ public class KwtWaybillOrderService {
         return HttpResult.ok("拒绝接单成功!");
     }
 
-
     /**
      * @param params 确认/拒绝出车参数
      * @description 确认出车
      * @author zk
      * @date 2023/7/26
      **/
+    @Transactional(rollbackFor = Exception.class)
     public HttpResult confirmDeparture(OperateWaybillDto params){
         /**数据校验**/
-        KwtWaybillOrder order = waybillOrderDao.selectById(params.getWOrderId());
-        if (order == null) {
+        KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
+        if (waybillOrder == null) {
             return HttpResult.error("车辆运单不存在!");
         }
         //待出车车辆运单才能出车
-        if (order.getStatus() != CarWaybillEnum.PENDING_VEHICLE.getCode()) {
+        if (waybillOrder.getStatus() != CarWaybillEnum.PENDING_VEHICLE.getCode()) {
             return HttpResult.error("车辆运单当前状态已不能出车!");
         }
 
         /**业务处理**/
         /**1更新车辆运单**/
-        order.setStatus(CarWaybillEnum.EXIT_COMPLETED.getCode());
-        waybillOrderDao.updateById(order);
+        waybillOrder.setStatus(CarWaybillEnum.EXIT_COMPLETED.getCode());
+        waybillOrderDao.updateById(waybillOrder);
 
         /**2新增运单状态记录**/
-        setWaybillOrderTrack(order.getId(), order.getStatus(), params.getRemark());
+        setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.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);
+        wOrder.set_id(waybillOrder.getId());
+        editSckwWaybillOrder(wOrder, waybillOrder, 2);
 
         /**4发送消息**/
 
@@ -910,90 +880,47 @@ public class KwtWaybillOrderService {
      * @author zk
      * @date 2023/7/26
      **/
+    @Transactional(rollbackFor = Exception.class)
     public HttpResult refuseDeparture(OperateWaybillDto params){
         /**数据校验**/
-        KwtWaybillOrder order = waybillOrderDao.selectById(params.getWOrderId());
-        if (order == null) {
+        KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
+        if (waybillOrder == null) {
             return HttpResult.error("车辆运单不存在!");
         }
         //待出车车辆运单才能拒绝出车
-        if (order.getStatus() != CarWaybillEnum.PENDING_VEHICLE.getCode()) {
+        if (waybillOrder.getStatus() != CarWaybillEnum.PENDING_VEHICLE.getCode()) {
             return HttpResult.error("车辆运单当前状态已不能拒绝出车!");
         }
 
         /**业务处理**/
         /**1更新车辆运单**/
-        order.setStatus(CarWaybillEnum.REFUSE_TRAFFIC.getCode());
-        waybillOrderDao.updateById(order);
+        waybillOrder.setStatus(CarWaybillEnum.REFUSE_TRAFFIC.getCode());
+        waybillOrderDao.updateById(waybillOrder);
 
         /**2新增运单状态记录**/
-        setWaybillOrderTrack(order.getId(), order.getStatus(), params.getRemark());
+        setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
 
         /**3回退承运订单entrustAmount**/
-        KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(order.getLOrderId());
+        KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
         //承运订单已委派量=承运订单原委派量+当前车辆运单委派量
         BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
-        logisticsOrder.setEntrustAmount(entrustAmount.subtract(order.getEntrustAmount()));
+        logisticsOrder.setEntrustAmount(entrustAmount.subtract(waybillOrder.getEntrustAmount()));
         logisticsOrderDao.updateById(logisticsOrder);
 
         /**4Mongodb数据更新**/
         //1车辆运单
+        SckwWaybillOrder wOrder = new SckwWaybillOrder();
+        wOrder.set_id(waybillOrder.getId());
+        editSckwWaybillOrder(wOrder, waybillOrder, 2);
 
         //2承运订单
-
+        SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
+        editSckwLogisticsOrder(lOrder, logisticsOrder);
 
         /**5发送消息**/
 
         return HttpResult.ok("拒绝出车成功!");
     }
 
-    /**
-     * @param order 车辆运单信息
-     * @description 更新mongodb中车辆运单信息
-     * @author zk
-     * @date 2023/7/26
-     **/
-    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);
-    }
-
-    /**
-     * @param order 承运订单
-     * @description 更新mongodb中承运订单信息
-     * @author zk
-     * @date 2023/7/26
-     **/
-    public void editSckwLogisticsOrder(KwtLogisticsOrder order){
-        SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
-        lOrder.set_id(order.getId());
-        lOrder.setLOrderId(order.getId());
-        lOrder.setEntrustAmount(order.getEntrustAmount());
-        lOrder.setUpdateTime(order.getUpdateTime());
-        lOrder.setUpdateBy(order.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);
-    }
-
 
 }