|
|
@@ -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.OperateWaybillDto;
|
|
|
+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;
|
|
|
}
|
|
|
@@ -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());
|
|
|
+ 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 确认接单
|
|
|
@@ -613,44 +638,32 @@ 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) {
|
|
|
/**数据校验**/
|
|
|
- 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());
|
|
|
+ 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发送消息**/
|
|
|
}
|
|
|
@@ -754,66 +759,43 @@ 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) {
|
|
|
/**数据校验**/
|
|
|
- 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());
|
|
|
+ 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发送消息**/
|
|
|
|
|
|
@@ -830,6 +812,7 @@ public class KwtWaybillOrderService {
|
|
|
|
|
|
/**1更新循环单状态为失效**/
|
|
|
circulate.setStatus(Global.YES);
|
|
|
+ circulate.setRemark(params.getRemark());
|
|
|
logisticsOrderCirculateDao.updateById(circulate);
|
|
|
|
|
|
/**2Mongodb数据更新**/
|
|
|
@@ -854,9 +837,90 @@ 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 waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
+ if (waybillOrder == null) {
|
|
|
+ return HttpResult.error("车辆运单不存在!");
|
|
|
+ }
|
|
|
+ //待出车车辆运单才能出车
|
|
|
+ if (waybillOrder.getStatus() != CarWaybillEnum.PENDING_VEHICLE.getCode()) {
|
|
|
+ return HttpResult.error("车辆运单当前状态已不能出车!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**业务处理**/
|
|
|
+ /**1更新车辆运单**/
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.EXIT_COMPLETED.getCode());
|
|
|
+ waybillOrderDao.updateById(waybillOrder);
|
|
|
+
|
|
|
+ /**2新增运单状态记录**/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
+ /**3Mongodb数据更新**/
|
|
|
+ //1车辆运单
|
|
|
+ SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
+ wOrder.set_id(waybillOrder.getId());
|
|
|
+ editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
|
|
|
+ /**4发送消息**/
|
|
|
|
|
|
+ return HttpResult.ok("确认出车成功!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param params 确认/拒绝出车参数
|
|
|
+ * @description 拒绝出车
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/7/26
|
|
|
+ **/
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public HttpResult refuseDeparture(OperateWaybillDto params){
|
|
|
+ /**数据校验**/
|
|
|
+ KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
+ if (waybillOrder == null) {
|
|
|
+ return HttpResult.error("车辆运单不存在!");
|
|
|
+ }
|
|
|
+ //待出车车辆运单才能拒绝出车
|
|
|
+ if (waybillOrder.getStatus() != CarWaybillEnum.PENDING_VEHICLE.getCode()) {
|
|
|
+ return HttpResult.error("车辆运单当前状态已不能拒绝出车!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**业务处理**/
|
|
|
+ /**1更新车辆运单**/
|
|
|
+ waybillOrder.setStatus(CarWaybillEnum.REFUSE_TRAFFIC.getCode());
|
|
|
+ waybillOrderDao.updateById(waybillOrder);
|
|
|
+
|
|
|
+ /**2新增运单状态记录**/
|
|
|
+ setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
+
|
|
|
+ /**3回退承运订单entrustAmount**/
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
|
|
|
+ //承运订单已委派量=承运订单原委派量+当前车辆运单委派量
|
|
|
+ BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.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("拒绝出车成功!");
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|