|
|
@@ -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);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|