|
|
@@ -15,6 +15,8 @@ import com.sckw.fleet.api.model.vo.RTruckVo;
|
|
|
import com.sckw.mongo.enums.BusinessTypeEnum;
|
|
|
import com.sckw.mongo.model.SckwLogisticsOrder;
|
|
|
import com.sckw.mongo.model.SckwWaybillOrder;
|
|
|
+import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
|
+import com.sckw.order.api.model.OrderDetailRes;
|
|
|
import com.sckw.stream.model.SckwBusSum;
|
|
|
import com.sckw.system.api.RemoteSystemService;
|
|
|
import com.sckw.system.api.model.dto.res.EntCacheResDto;
|
|
|
@@ -71,6 +73,8 @@ public class KwtWaybillOrderService {
|
|
|
private RemoteSystemService remoteSystemService;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false)
|
|
|
private RemoteFleetService remoteFleetService;
|
|
|
+ @DubboReference(version = "2.0.0", group = "design", check = false)
|
|
|
+ private TradeOrderInfoService tradeOrderInfoService;
|
|
|
|
|
|
/**
|
|
|
* @param driverId 司机ID
|
|
|
@@ -738,7 +742,7 @@ public class KwtWaybillOrderService {
|
|
|
* @author zk
|
|
|
* @date 2023/7/24
|
|
|
**/
|
|
|
- public int checkLogisticsLevel(KwtLogisticsOrder logisticsOrder) {
|
|
|
+ public int logisticsLevel(KwtLogisticsOrder logisticsOrder) {
|
|
|
String pids = logisticsOrder.getPids();
|
|
|
String [] idArrays = StringUtils.isBlank(pids) ? new String[0] : pids.split(Global.COMMA);
|
|
|
return idArrays.length <= 1 ? Global.NUMERICAL_ONE : (idArrays.length - Global.NUMERICAL_ONE);
|
|
|
@@ -752,7 +756,7 @@ public class KwtWaybillOrderService {
|
|
|
**/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult cancelSendCar(List<Long> ids){
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
if (CollectionUtils.isEmpty(ids)) {
|
|
|
return HttpResult.error("请选择需要撤回的车辆运单!");
|
|
|
}
|
|
|
@@ -782,21 +786,21 @@ public class KwtWaybillOrderService {
|
|
|
if (waybillOrder != null) {
|
|
|
//待接单的车辆运单才能撤回
|
|
|
if (waybillOrder.getStatus() == CarWaybillEnum.PENDING_ORDER.getCode()) {
|
|
|
- /**1更新车辆运单**/
|
|
|
+ /**2更新车辆运单**/
|
|
|
waybillOrder.setStatus(CarWaybillEnum.REVOKED.getCode());
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
- /**2新增运单状态记录**/
|
|
|
+ /**3新增运单状态记录**/
|
|
|
setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), null);
|
|
|
|
|
|
- /**3回退承运订单entrustAmount**/
|
|
|
+ /**4回退承运订单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数据更新**/
|
|
|
+ /**5Mongodb数据更新**/
|
|
|
//1车辆订单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
@@ -806,7 +810,7 @@ public class KwtWaybillOrderService {
|
|
|
SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
|
|
|
- /**5发送消息**/
|
|
|
+ /**6发送消息**/
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
@@ -876,7 +880,7 @@ public class KwtWaybillOrderService {
|
|
|
public HttpResult confirmSendCar(OperateSendCarDto params) {
|
|
|
/**趟次派车**/
|
|
|
if (params.getType() == Global.NUMERICAL_ONE) {
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
if (waybillOrder == null) {
|
|
|
return HttpResult.error("车辆趟次运单不存在!");
|
|
|
@@ -886,21 +890,20 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.error("车辆运单当前状态已不能拒绝接单!");
|
|
|
}
|
|
|
|
|
|
- /**业务处理**/
|
|
|
- /**1更新车辆运单**/
|
|
|
+ /**2更新车辆运单**/
|
|
|
waybillOrder.setStatus(CarWaybillEnum.PENDING_VEHICLE.getCode());
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
- /**2新增运单状态记录**/
|
|
|
+ /**3新增运单状态记录**/
|
|
|
setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
- /**3跟新司机/车辆数据**/
|
|
|
+ /**4跟新司机/车辆数据**/
|
|
|
//更新司机信息
|
|
|
editDriver(waybillOrder.getDriverId());
|
|
|
//更新车辆信息
|
|
|
editTruck(waybillOrder.getTruckId());
|
|
|
|
|
|
- /**4Mongodb数据更新**/
|
|
|
+ /**5Mongodb数据更新**/
|
|
|
//1车辆运单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
@@ -912,7 +915,7 @@ public class KwtWaybillOrderService {
|
|
|
|
|
|
/**循环派车**/
|
|
|
if (params.getType() == Global.NUMERICAL_TWO) {
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
KwtLogisticsOrderCirculate circulate = logisticsOrderCirculateDao.findCirculate(params.getLOrderId(),
|
|
|
params.getTruckId(), params.getDriverId(), 0);
|
|
|
if (circulate == null) {
|
|
|
@@ -929,7 +932,7 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.error("已不能接单!");
|
|
|
}
|
|
|
|
|
|
- /**获取基础信息**/
|
|
|
+ /**2获取基础信息**/
|
|
|
//装货地址
|
|
|
KwtWaybillOrderAddress loadAddress = this.getAddress(params.getLOrderId(), Global.NUMERICAL_ONE);
|
|
|
//卸货地址
|
|
|
@@ -951,23 +954,22 @@ public class KwtWaybillOrderService {
|
|
|
waybillOrder.setEntrustAmount(circulate.getEntrustAmount());
|
|
|
waybillOrder.setStatus(CarWaybillEnum.PENDING_VEHICLE.getCode());
|
|
|
|
|
|
- /**业务处理**/
|
|
|
- /**1车辆运单存储**/
|
|
|
+ /**2车辆运单存储**/
|
|
|
ranksSave(waybillOrder, loadAddress, unloadAddress);
|
|
|
//补上车辆运单待接单状态
|
|
|
setWaybillOrderTrack(circulate, waybillOrder.getId());
|
|
|
|
|
|
- /**2更新承运订单信息**/
|
|
|
+ /**3更新承运订单信息**/
|
|
|
//承运订单已委派量:承运订单历史委派量+当前运单委派量
|
|
|
BigDecimal entrustAmount = logisticsOrder.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getEntrustAmount();
|
|
|
logisticsOrder.setEntrustAmount(entrustAmount.add(waybillOrder.getEntrustAmount()));
|
|
|
logisticsOrderDao.updateById(logisticsOrder);
|
|
|
|
|
|
- /**3更新循环派车数据**/
|
|
|
+ /**4更新循环派车数据**/
|
|
|
circulate.setWOrderId(waybillOrder.getId());
|
|
|
logisticsOrderCirculateDao.updateById(circulate);
|
|
|
|
|
|
- /**4Mongodb数据更新**/
|
|
|
+ /**5Mongodb数据更新**/
|
|
|
//1车辆订单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(circulate.getId());
|
|
|
@@ -977,7 +979,7 @@ public class KwtWaybillOrderService {
|
|
|
SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
|
|
|
- /**5发送消息**/
|
|
|
+ /**6发送消息**/
|
|
|
}
|
|
|
return HttpResult.ok("确认接单成功!");
|
|
|
}
|
|
|
@@ -1011,7 +1013,7 @@ public class KwtWaybillOrderService {
|
|
|
public HttpResult refuseSendCar(OperateSendCarDto params) {
|
|
|
/**趟次派车**/
|
|
|
if (params.getType() == Global.NUMERICAL_ONE) {
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
if (waybillOrder == null) {
|
|
|
return HttpResult.error("车辆趟次运单不存在!");
|
|
|
@@ -1021,22 +1023,21 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.error("车辆运单当前状态已不能拒绝接单!");
|
|
|
}
|
|
|
|
|
|
- /**业务处理**/
|
|
|
- /**1更新车辆运单**/
|
|
|
+ /**2更新车辆运单**/
|
|
|
waybillOrder.setStatus(CarWaybillEnum.REVOKED.getCode());
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
- /**2新增运单状态记录**/
|
|
|
+ /**3新增运单状态记录**/
|
|
|
setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
- /**3回退承运订单entrustAmount**/
|
|
|
+ /**4回退承运订单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数据更新**/
|
|
|
+ /**5Mongodb数据更新**/
|
|
|
//1车辆运单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
@@ -1046,25 +1047,25 @@ public class KwtWaybillOrderService {
|
|
|
SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
|
|
|
- /**5发送消息**/
|
|
|
+ /**6发送消息**/
|
|
|
|
|
|
}
|
|
|
|
|
|
/**循环派车**/
|
|
|
if (params.getType() == Global.NUMERICAL_TWO) {
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
KwtLogisticsOrderCirculate circulate = logisticsOrderCirculateDao.findCirculate(params.getLOrderId(),
|
|
|
params.getTruckId(), params.getDriverId(), 0);
|
|
|
if (circulate == null) {
|
|
|
return HttpResult.error("车辆循环运单不存在!");
|
|
|
}
|
|
|
|
|
|
- /**1更新循环单状态为失效**/
|
|
|
+ /**2更新循环单状态为失效**/
|
|
|
circulate.setStatus(Global.YES);
|
|
|
circulate.setRemark(params.getRemark());
|
|
|
logisticsOrderCirculateDao.updateById(circulate);
|
|
|
|
|
|
- /**2Mongodb数据更新**/
|
|
|
+ /**3Mongodb数据更新**/
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(circulate.getId());
|
|
|
KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
|
|
|
@@ -1073,7 +1074,7 @@ public class KwtWaybillOrderService {
|
|
|
waybillOrder.setUpdateBy(circulate.getUpdateBy());
|
|
|
editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
|
|
|
- /**3发送消息**/
|
|
|
+ /**4发送消息**/
|
|
|
}
|
|
|
|
|
|
return HttpResult.ok("拒绝接单成功!");
|
|
|
@@ -1087,7 +1088,7 @@ public class KwtWaybillOrderService {
|
|
|
**/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult confirmDeparture(OperateWaybillDto params){
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
if (waybillOrder == null) {
|
|
|
return HttpResult.error("车辆运单不存在!");
|
|
|
@@ -1097,21 +1098,20 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.error("车辆运单当前状态已不能出车!");
|
|
|
}
|
|
|
|
|
|
- /**业务处理**/
|
|
|
- /**1更新车辆运单**/
|
|
|
+ /**2更新车辆运单**/
|
|
|
waybillOrder.setStatus(CarWaybillEnum.EXIT_COMPLETED.getCode());
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
- /**2新增运单状态记录**/
|
|
|
+ /**3新增运单状态记录**/
|
|
|
setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
- /**3Mongodb数据更新**/
|
|
|
+ /**4Mongodb数据更新**/
|
|
|
//1车辆运单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
|
|
|
- /**4发送消息**/
|
|
|
+ /**5发送消息**/
|
|
|
|
|
|
return HttpResult.ok("确认出车成功!");
|
|
|
}
|
|
|
@@ -1124,7 +1124,7 @@ public class KwtWaybillOrderService {
|
|
|
**/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult refuseDeparture(OperateWaybillDto params){
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
if (waybillOrder == null) {
|
|
|
return HttpResult.error("车辆运单不存在!");
|
|
|
@@ -1134,15 +1134,14 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.error("车辆运单当前状态已不能拒绝出车!");
|
|
|
}
|
|
|
|
|
|
- /**业务处理**/
|
|
|
- /**1更新车辆运单**/
|
|
|
+ /**2更新车辆运单**/
|
|
|
waybillOrder.setStatus(CarWaybillEnum.REFUSE_TRAFFIC.getCode());
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
- /**2新增运单状态记录**/
|
|
|
+ /**3新增运单状态记录**/
|
|
|
setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
- /**3循环派车重置派车信息kwt_logistics_order_circulate**/
|
|
|
+ /**4循环派车重置派车信息kwt_logistics_order_circulate**/
|
|
|
if (waybillOrder.getType() == Global.NUMERICAL_TWO) {
|
|
|
//循环派车信息
|
|
|
KwtLogisticsOrderCirculate circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(),
|
|
|
@@ -1151,14 +1150,14 @@ public class KwtWaybillOrderService {
|
|
|
logisticsOrderCirculateDao.updateById(circulate);
|
|
|
}
|
|
|
|
|
|
- /**4回退承运订单entrustAmount**/
|
|
|
+ /**5回退承运订单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);
|
|
|
|
|
|
- /**5Mongodb数据更新**/
|
|
|
+ /**6Mongodb数据更新**/
|
|
|
//1车辆运单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
@@ -1168,7 +1167,7 @@ public class KwtWaybillOrderService {
|
|
|
SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
|
|
|
- /**6发送消息**/
|
|
|
+ /**7发送消息**/
|
|
|
|
|
|
return HttpResult.ok("拒绝出车成功!");
|
|
|
}
|
|
|
@@ -1181,7 +1180,7 @@ public class KwtWaybillOrderService {
|
|
|
**/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult arriveLoadLocation(OperateWaybillDto params){
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
if (waybillOrder == null) {
|
|
|
return HttpResult.error("车辆运单不存在!");
|
|
|
@@ -1191,21 +1190,20 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.error("车辆运单当前状态已不能到达装货地点!");
|
|
|
}
|
|
|
|
|
|
- /**业务处理**/
|
|
|
- /**1更新车辆运单**/
|
|
|
+ /**2更新车辆运单**/
|
|
|
waybillOrder.setStatus(CarWaybillEnum.WAIT_LOADING.getCode());
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
- /**2新增运单状态记录**/
|
|
|
+ /**3新增运单状态记录**/
|
|
|
setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
- /**3Mongodb数据更新**/
|
|
|
+ /**4Mongodb数据更新**/
|
|
|
//1车辆运单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
|
|
|
- /**4发送消息**/
|
|
|
+ /**5发送消息**/
|
|
|
|
|
|
return HttpResult.ok("到达装货地点成功!");
|
|
|
}
|
|
|
@@ -1218,7 +1216,7 @@ public class KwtWaybillOrderService {
|
|
|
**/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult loading(WaybillOrderTicketDto params){
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
if (waybillOrder == null) {
|
|
|
return HttpResult.error("车辆运单不存在!");
|
|
|
@@ -1228,42 +1226,38 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.error("车辆运单当前状态已不能装货!");
|
|
|
}
|
|
|
|
|
|
- /**业务处理**/
|
|
|
- /**1更新车辆运单**/
|
|
|
+ /**2更新车辆运单**/
|
|
|
waybillOrder.setLoadAmount(params.getAmount());
|
|
|
waybillOrder.setStatus(CarWaybillEnum.COMPLETION_LOADING.getCode());
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
- /**2新增运单状态记录**/
|
|
|
+ /**3新增运单状态记录**/
|
|
|
setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
- /**3新增装卸货榜单信息**/
|
|
|
+ /**4新增装卸货榜单信息**/
|
|
|
KwtWaybillOrderTicket ticket = new KwtWaybillOrderTicket();
|
|
|
ticket.setWOrderId(waybillOrder.getId());
|
|
|
ticket.setType(Global.NUMERICAL_ONE);
|
|
|
ticket.setAmount(waybillOrder.getLoadAmount());
|
|
|
ticket.setUrls(params.getUrls());
|
|
|
- ticket.setTime(params.getTime());
|
|
|
+ ticket.setOperateTime(params.getOperateTime());
|
|
|
waybillOrderTicketDao.insert(ticket);
|
|
|
|
|
|
- /**4跟新司机/车辆数据**/
|
|
|
+ /**5跟新司机/车辆数据
|
|
|
//更新司机信息
|
|
|
editDriver(waybillOrder.getDriverId());
|
|
|
//更新车辆信息
|
|
|
- editTruck(waybillOrder.getTruckId());
|
|
|
+ editTruck(waybillOrder.getTruckId());**/
|
|
|
|
|
|
- /**5更新承运订单entrustAmount**/
|
|
|
+ /**6更新承运订单entrustAmount
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
|
|
|
//承运订单已装货量=承运订单原装货量+当前车辆运单装货量
|
|
|
BigDecimal loadAmount = logisticsOrder.getLoadAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getLoadAmount();
|
|
|
logisticsOrder.setLoadAmount(loadAmount.add(waybillOrder.getLoadAmount()));
|
|
|
logisticsOrder.setLoadTime(logisticsOrder.getLoadTime() == null ?waybillOrder.getUpdateTime() : logisticsOrder.getLoadTime());
|
|
|
- logisticsOrderDao.updateById(logisticsOrder);
|
|
|
-
|
|
|
- //校验当前承运订单是否运输完成(修改状态+统计量)
|
|
|
- checkLogisticsByStatusV1(waybillOrder.getLOrderId());
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);**/
|
|
|
|
|
|
- /**6Mongodb数据更新**/
|
|
|
+ /**7Mongodb数据更新**/
|
|
|
//1车辆运单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
@@ -1273,12 +1267,12 @@ public class KwtWaybillOrderService {
|
|
|
editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
|
|
|
//2承运订单
|
|
|
- SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
+ /*SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
lOrder.setLoadTime(logisticsOrder.getLoadTime());
|
|
|
lOrder.setLoadAmount(logisticsOrder.getLoadAmount());
|
|
|
- editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
+ editSckwLogisticsOrder(lOrder, logisticsOrder);*/
|
|
|
|
|
|
- /**7发送消息**/
|
|
|
+ /**8发送消息**/
|
|
|
|
|
|
return HttpResult.ok("装货成功!");
|
|
|
}
|
|
|
@@ -1291,7 +1285,7 @@ public class KwtWaybillOrderService {
|
|
|
**/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult arriveUnloadLocation(OperateWaybillDto params){
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
if (waybillOrder == null) {
|
|
|
return HttpResult.error("车辆运单不存在!");
|
|
|
@@ -1301,21 +1295,20 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.error("车辆运单当前状态已不能到达卸货地点!");
|
|
|
}
|
|
|
|
|
|
- /**业务处理**/
|
|
|
- /**1更新车辆运单**/
|
|
|
+ /**2更新车辆运单**/
|
|
|
waybillOrder.setStatus(CarWaybillEnum.WAIT_UNLOADING.getCode());
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
- /**2新增运单状态记录**/
|
|
|
+ /**3新增运单状态记录**/
|
|
|
setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
- /**3Mongodb数据更新**/
|
|
|
+ /**4Mongodb数据更新**/
|
|
|
//1车辆运单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
|
|
|
- /**4发送消息**/
|
|
|
+ /**5发送消息**/
|
|
|
|
|
|
return HttpResult.ok("到达卸货地点成功!");
|
|
|
}
|
|
|
@@ -1328,7 +1321,7 @@ public class KwtWaybillOrderService {
|
|
|
**/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult unloading(WaybillOrderTicketDto params){
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
if (waybillOrder == null) {
|
|
|
return HttpResult.error("车辆运单不存在!");
|
|
|
@@ -1338,9 +1331,8 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.error("车辆运单当前状态已不能装货!");
|
|
|
}
|
|
|
|
|
|
- /**业务处理**/
|
|
|
+ /**2更新车辆运单**/
|
|
|
KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
|
|
|
- /**1更新车辆运单**/
|
|
|
waybillOrder.setUnloadAmount(params.getAmount());
|
|
|
waybillOrder.setDeficitAmount(waybillOrder.getLoadAmount().subtract(waybillOrder.getUnloadAmount()));
|
|
|
BigDecimal deficitPrice = deficitPrice(waybillOrder.getLoadAmount(), waybillOrder.getDeficitAmount(),
|
|
|
@@ -1349,19 +1341,19 @@ public class KwtWaybillOrderService {
|
|
|
waybillOrder.setStatus(CarWaybillEnum.COMPLETION_UNLOADING.getCode());
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
- /**2新增运单状态记录**/
|
|
|
+ /**3新增运单状态记录**/
|
|
|
setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
- /**3新增装卸货榜单信息**/
|
|
|
+ /**4新增装卸货榜单信息**/
|
|
|
KwtWaybillOrderTicket ticket = new KwtWaybillOrderTicket();
|
|
|
ticket.setWOrderId(waybillOrder.getId());
|
|
|
ticket.setType(Global.NUMERICAL_TWO);
|
|
|
ticket.setAmount(waybillOrder.getUnloadAmount());
|
|
|
ticket.setUrls(params.getUrls());
|
|
|
- ticket.setTime(params.getTime());
|
|
|
+ ticket.setOperateTime(params.getOperateTime());
|
|
|
waybillOrderTicketDao.insert(ticket);
|
|
|
|
|
|
- /**4循环派车重置派车信息kwt_logistics_order_circulate**/
|
|
|
+ /**5循环派车重置派车信息kwt_logistics_order_circulate**/
|
|
|
if (waybillOrder.getType() == Global.NUMERICAL_TWO) {
|
|
|
//循环派车信息
|
|
|
KwtLogisticsOrderCirculate circulate = logisticsOrderCirculateDao.findCirculate(waybillOrder.getLOrderId(),
|
|
|
@@ -1370,13 +1362,13 @@ public class KwtWaybillOrderService {
|
|
|
logisticsOrderCirculateDao.updateByPrimaryKey(circulate);
|
|
|
}
|
|
|
|
|
|
- /**5跟新司机/车辆数据**/
|
|
|
+ /**6跟新司机/车辆数据
|
|
|
//更新司机信息
|
|
|
editDriver(waybillOrder.getDriverId());
|
|
|
//更新车辆信息
|
|
|
- editTruck(waybillOrder.getTruckId());
|
|
|
+ editTruck(waybillOrder.getTruckId());**/
|
|
|
|
|
|
- /**5更新承运订单entrustAmount**/
|
|
|
+ /**7更新承运订单entrustAmount
|
|
|
//更新卸货量/卸货时间/亏吨/亏吨扣款
|
|
|
//承运订单卸货量=承运订单原卸货量+当前车辆运单卸货量
|
|
|
BigDecimal unloadAmount = logisticsOrder.getUnloadAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getUnloadAmount();
|
|
|
@@ -1388,12 +1380,9 @@ public class KwtWaybillOrderService {
|
|
|
deficitPrice = deficitPrice(logisticsOrder.getLoadAmount(), logisticsOrder.getDeficitAmount(),
|
|
|
logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
logisticsOrder.setDeficitPrice(deficitPrice);
|
|
|
- logisticsOrderDao.updateById(logisticsOrder);
|
|
|
-
|
|
|
- //校验当前承运订单是否运输完成(修改状态+统计量)
|
|
|
- checkLogisticsByStatusV1(waybillOrder.getLOrderId());
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);**/
|
|
|
|
|
|
- /**6Mongodb数据更新**/
|
|
|
+ /**8Mongodb数据更新**/
|
|
|
//1车辆运单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
@@ -1405,14 +1394,14 @@ public class KwtWaybillOrderService {
|
|
|
editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
|
|
|
//2承运订单
|
|
|
- SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
+ /*SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
lOrder.setUnloadTime(logisticsOrder.getUnloadTime());
|
|
|
lOrder.setUnloadAmount(logisticsOrder.getUnloadAmount());
|
|
|
lOrder.setDeficitAmount(logisticsOrder.getDeficitAmount());
|
|
|
lOrder.setDeficitPrice(logisticsOrder.getDeficitPrice());
|
|
|
- editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
+ editSckwLogisticsOrder(lOrder, logisticsOrder);*/
|
|
|
|
|
|
- /**7发送消息**/
|
|
|
+ /**9发送消息**/
|
|
|
|
|
|
return HttpResult.ok("卸货成功!");
|
|
|
}
|
|
|
@@ -1435,87 +1424,21 @@ public class KwtWaybillOrderService {
|
|
|
return deficitPrice;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * @param lOrderId 承运订单ID
|
|
|
- * @description 校验当前承运订单是否运输完成(修改状态)
|
|
|
- * @author zk
|
|
|
- * @date 2023/7/27
|
|
|
- **/
|
|
|
- public void checkLogisticsByStatus(Long lOrderId) {
|
|
|
- /**
|
|
|
- 校验当前承运订单是否运输完成(虑该当前承运订单上下级物流订单)
|
|
|
- 1存在下级分包,下级物流订单和当前物流订单全部运输完成则修改当前物流订单状态为已完成(HAVE_FINISHED)
|
|
|
- 2当前物流订单属于分包:需要判断上级及同级分包全部运输完成修改上级物流订单状态为已完成(HAVE_FINISHED)-一直向上到一级物流订单
|
|
|
- **/
|
|
|
- //承运单信息
|
|
|
- KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(lOrderId);
|
|
|
- /**校验当前承运订单是否运输完成**/
|
|
|
- if (logisticsOrder.getAmount().compareTo(logisticsOrder.getLoadAmount()) < 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- /**1存在下级分包**/
|
|
|
- BigDecimal subcontractAmount = logisticsOrder.getSubcontractAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getSubcontractAmount();
|
|
|
- if (subcontractAmount.compareTo(new BigDecimal(Global.AMOUNT)) == 0) {
|
|
|
- List<KwtLogisticsOrder> logisticsOrders = logisticsOrderDao.findLogisticsOrder(
|
|
|
- new HashMap(){{put("upperlOrderId", logisticsOrder.getId()); put("ownOrderId", logisticsOrder.getId());}});
|
|
|
- for (KwtLogisticsOrder logisticsOrder1:logisticsOrders) {
|
|
|
- if (logisticsOrder1.getStatus() == LogisticsOrderEnum.TO_BE_PLANNED.getCode()
|
|
|
- || logisticsOrder1.getStatus() == LogisticsOrderEnum.PENDING_ORDER.getCode()
|
|
|
- || logisticsOrder1.getStatus() == LogisticsOrderEnum.WAIT_DELIVERY.getCode()
|
|
|
- || logisticsOrder1.getStatus() == LogisticsOrderEnum.IN_TRANSIT.getCode()) {
|
|
|
- //下级分包承运订单运输未完成
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- /**下级分包承运订单运输完成**/
|
|
|
- logisticsOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
|
|
|
- logisticsOrderDao.updateById(logisticsOrder);
|
|
|
-
|
|
|
- /**承运订单状态记录**/
|
|
|
- KwtLogisticsOrderTrack orderTrack = new KwtLogisticsOrderTrack();
|
|
|
- orderTrack.setLOrderId(logisticsOrder.getId());
|
|
|
- orderTrack.setStatus(logisticsOrder.getStatus());
|
|
|
- orderTrack.setRemark(LogisticsOrderEnum.getName(logisticsOrder.getStatus()));
|
|
|
- logisticsOrderTrackDao.insert(orderTrack);
|
|
|
-
|
|
|
- /**Mongodb数据更新**/
|
|
|
- //2承运订单
|
|
|
- SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
- editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
- }
|
|
|
-
|
|
|
- /**2当前物流订单属于分包(存在上级物流订单)**/
|
|
|
- //获取所有上级物流订单ID(当前物流订单ID除外)
|
|
|
- String pids = logisticsOrder.getPids();
|
|
|
- if (StringUtils.isNotBlank(pids)) {
|
|
|
- List<Long> idArray = (List)Arrays.asList(pids);
|
|
|
- for (Long id : idArray) {
|
|
|
- //当前物流订单ID除外
|
|
|
- if (id != lOrderId) {
|
|
|
- /**校验当前承运订单是否运输完成**/
|
|
|
- checkLogisticsByStatus(id);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* @param lOrderId 承运订单ID
|
|
|
* @description 校验当前承运订单是否运输完成(修改状态+统计量)
|
|
|
* @author zk
|
|
|
* @date 2023/7/27
|
|
|
**/
|
|
|
- public void checkLogisticsByStatusV1(Long lOrderId) {
|
|
|
+ public void checkLogisticsByStatus(Long lOrderId) {
|
|
|
/**
|
|
|
校验当前承运订单是否运输完成(虑该当前承运订单上下级物流订单)
|
|
|
1存在下级分包,下级物流订单和当前物流订单全部运输完成则修改当前物流订单状态为已完成(HAVE_FINISHED)、统计值
|
|
|
2当前物流订单属于分包:需要判断上级及同级分包全部运输完成修改上级物流订单状态为已完成(HAVE_FINISHED)、统计值-一直向上到一级物流订单
|
|
|
**/
|
|
|
- //承运单信息
|
|
|
- KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(lOrderId);
|
|
|
|
|
|
/**1存在下级分包**/
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(lOrderId);
|
|
|
boolean subcontractBool = true;
|
|
|
BigDecimal subcontractAmount = logisticsOrder.getSubcontractAmount() == null ? new BigDecimal(Global.AMOUNT) : logisticsOrder.getSubcontractAmount();
|
|
|
if (subcontractAmount.compareTo(new BigDecimal(Global.AMOUNT)) > 0) {
|
|
|
@@ -1532,8 +1455,10 @@ public class KwtWaybillOrderService {
|
|
|
}
|
|
|
|
|
|
/**校验当前承运订单是否运输完成**/
|
|
|
- WaybillCountVo waybillCount = waybillOrderDao.findWaybillOrderCount( new HashMap(){{put("lOrderId", logisticsOrder.getId());
|
|
|
- put("passStatus", 1); }});
|
|
|
+ //车辆运单统计
|
|
|
+ WaybillCountVo waybillCount = waybillOrderDao.findWaybillOrderCount( new HashMap(){{put("upperlOrderId", logisticsOrder.getId()); put("passStatus", 1); }});
|
|
|
+ logisticsOrder.setTotalLoadAmount(waybillCount.getLoadAmount());
|
|
|
+ logisticsOrder.setTotalUnloadAmount(waybillCount.getUnloadAmount());
|
|
|
//物流运单状态(不包含已完成、已对账、已结算)+ 物流订单上级委派量-下游分包总量 <= 自己承运总装货量 + 下级分包全部运输完成
|
|
|
if (!LogisticsOrderEnum.transportCompleted(logisticsOrder.getStatus())
|
|
|
&& logisticsOrder.getAmount().subtract(subcontractAmount).compareTo(waybillCount.getLoadAmount()) <= 0
|
|
|
@@ -1568,25 +1493,16 @@ public class KwtWaybillOrderService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //车辆运单统计
|
|
|
- /**1-5Mongodb数据更新**/
|
|
|
- //车辆运单统计
|
|
|
- Map queryParams = new HashMap();
|
|
|
- queryParams.put("lOrderId", logisticsOrder.getId());
|
|
|
- queryParams.put("unloadCountStatus", 1);
|
|
|
- queryParams.put("upperlOrderId", logisticsOrder.getId());
|
|
|
- waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
|
|
|
+ /**1-5更新贸易订单总量**/
|
|
|
+ if (logisticsLevel(logisticsOrder) == Global.NUMERICAL_ONE) {
|
|
|
+ //------------------------------------- zk 2023-08-08
|
|
|
+ }
|
|
|
|
|
|
+ /**1-6Mongodb数据更新**/
|
|
|
//承运订单
|
|
|
SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
- lOrder.setLoadTime(waybillCount.getLoadTime());
|
|
|
- lOrder.setUnloadTime(waybillCount.getUnloadTime());
|
|
|
lOrder.setTotalLoadAmount(waybillCount.getLoadAmount());
|
|
|
lOrder.setTotalUnloadAmount(waybillCount.getUnloadAmount());
|
|
|
- lOrder.setDeficitTotalAmount(waybillCount.getDeficitAmount());
|
|
|
- BigDecimal deficitPrice = deficitPrice(waybillCount.getLoadAmount(), waybillCount.getDeficitAmount(),
|
|
|
- logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
- lOrder.setDeficitPrice(deficitPrice);
|
|
|
editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
|
|
|
/**2当前物流订单属于分包(存在上级物流订单)**/
|
|
|
@@ -1599,7 +1515,7 @@ public class KwtWaybillOrderService {
|
|
|
//当前物流订单ID除外
|
|
|
if (!pid.equals(lOrderId)) {
|
|
|
/**校验当前承运订单是否运输完成**/
|
|
|
- checkLogisticsByStatusV1(pid);
|
|
|
+ checkLogisticsByStatus(pid);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1636,58 +1552,27 @@ public class KwtWaybillOrderService {
|
|
|
BeanUtils.copyProperties(params, ticket);
|
|
|
waybillOrderTicketDao.updateById(ticket);
|
|
|
|
|
|
- /**4跟新司机/车辆数据**/
|
|
|
- //更新司机信息
|
|
|
- editDriver(waybillOrder.getDriverId());
|
|
|
- //更新车辆信息
|
|
|
- editTruck(waybillOrder.getTruckId());
|
|
|
-
|
|
|
- /**5更新承运订单信息**/
|
|
|
- Map queryParams = new HashMap();
|
|
|
- queryParams.put("lOrderId", waybillOrder.getLOrderId());
|
|
|
- queryParams.put("loadCountStatus", params.getType() == 1 ? 1 : null);
|
|
|
- queryParams.put("unloadCountStatus", params.getType() == 2 ? 1 : null);
|
|
|
- WaybillCountVo waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
|
|
|
-
|
|
|
- //更新卸货量/卸货时间/亏吨/亏吨扣款
|
|
|
- logisticsOrder.setLoadAmount(waybillCount.getLoadAmount());
|
|
|
- logisticsOrder.setLoadTime(waybillCount.getLoadTime());
|
|
|
- logisticsOrder.setUnloadAmount(waybillCount.getUnloadAmount());
|
|
|
- logisticsOrder.setUnloadTime(waybillCount.getUnloadTime());
|
|
|
- logisticsOrder.setDeficitAmount(waybillCount.getDeficitAmount());
|
|
|
- deficitPrice = deficitPrice(waybillCount.getLoadAmount(), waybillCount.getDeficitAmount(),
|
|
|
- logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
- logisticsOrder.setDeficitPrice(deficitPrice);
|
|
|
- logisticsOrderDao.updateById(logisticsOrder);
|
|
|
-
|
|
|
- //有更新装卸货量才会更新物流订单量
|
|
|
- if (waybillOrder.getLoadAmount().compareTo(params.getAmount()) != 0
|
|
|
- || waybillOrder.getUnloadAmount().compareTo(params.getAmount()) != 0) {
|
|
|
- //校验当前承运订单是否运输完成(修改状态+统计量)
|
|
|
- checkLogisticsByStatusV1(waybillOrder.getLOrderId());
|
|
|
- }
|
|
|
-
|
|
|
- /**6Mongodb数据更新**/
|
|
|
+ /**4Mongodb数据更新**/
|
|
|
//1车辆运单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
wOrder.setLoadAmount(waybillOrder.getLoadAmount());
|
|
|
- wOrder.setLoadTime(params.getType() == 1 ? params.getTime() : null);
|
|
|
+ wOrder.setLoadTime(params.getType() == 1 ? params.getOperateTime() : null);
|
|
|
wOrder.setUnloadUrls(params.getType() == 1 ? params.getUrls() : null);
|
|
|
wOrder.setUnloadAmount(waybillOrder.getUnloadAmount());
|
|
|
- wOrder.setUnloadTime(params.getType() == 2 ? params.getTime() : null);
|
|
|
+ wOrder.setUnloadTime(params.getType() == 2 ? params.getOperateTime() : null);
|
|
|
wOrder.setLoadUrls(params.getType() == 2 ? params.getUrls() : null);
|
|
|
wOrder.setDeficitAmount(waybillOrder.getDeficitAmount());
|
|
|
wOrder.setDeficitPrice(waybillOrder.getDeficitPrice());
|
|
|
editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
|
|
|
//2承运订单
|
|
|
- SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
+ /*SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
lOrder.setUnloadTime(logisticsOrder.getUnloadTime());
|
|
|
lOrder.setUnloadAmount(logisticsOrder.getUnloadAmount());
|
|
|
lOrder.setDeficitAmount(logisticsOrder.getDeficitAmount());
|
|
|
lOrder.setDeficitPrice(logisticsOrder.getDeficitPrice());
|
|
|
- editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
+ editSckwLogisticsOrder(lOrder, logisticsOrder);*/
|
|
|
|
|
|
return HttpResult.ok("修改单证成功!");
|
|
|
}
|
|
|
@@ -1699,7 +1584,7 @@ public class KwtWaybillOrderService {
|
|
|
* @date 2023/7/26
|
|
|
**/
|
|
|
public HttpResult approvalTicket(WaybillOrderApprovalDto params) {
|
|
|
- /**数据校验**/
|
|
|
+ /**1数据校验**/
|
|
|
KwtWaybillOrder waybillOrder = waybillOrderDao.selectById(params.getWOrderId());
|
|
|
if (waybillOrder == null) {
|
|
|
return HttpResult.error("车辆运单不存在!");
|
|
|
@@ -1714,25 +1599,61 @@ public class KwtWaybillOrderService {
|
|
|
return HttpResult.error("车辆运单当前状态只能审批通过或审批不通过!");
|
|
|
}
|
|
|
|
|
|
- /**业务处理**/
|
|
|
- /**1更新车辆运单**/
|
|
|
+ /**2更新车辆运单**/
|
|
|
int status = params.getStatus() == Global.NO ? CarWaybillEnum.APPROVAL_PASS.getCode() : CarWaybillEnum.APPROVAL_NO_PASS.getCode();
|
|
|
waybillOrder.setStatus(status);
|
|
|
waybillOrderDao.updateById(waybillOrder);
|
|
|
|
|
|
- /**2新增运单状态记录**/
|
|
|
+ /**3新增运单状态记录**/
|
|
|
setWaybillOrderTrack(waybillOrder.getId(), waybillOrder.getStatus(), params.getRemark());
|
|
|
|
|
|
- /**3Mongodb数据更新**/
|
|
|
+ if (waybillOrder.getStatus() == CarWaybillEnum.APPROVAL_PASS.getCode()) {
|
|
|
+ /**4跟新司机/车辆数据**/
|
|
|
+ //更新司机信息
|
|
|
+ editDriver(waybillOrder.getDriverId());
|
|
|
+ //更新车辆信息
|
|
|
+ editTruck(waybillOrder.getTruckId());
|
|
|
+
|
|
|
+ /**5更新承运订单信息**/
|
|
|
+ Map queryParams = new HashMap();
|
|
|
+ queryParams.put("lOrderId", waybillOrder.getLOrderId());
|
|
|
+ queryParams.put("passStatus", 1);
|
|
|
+ WaybillCountVo waybillCount = waybillOrderDao.findWaybillOrderCount(queryParams);
|
|
|
+
|
|
|
+ //更新卸货量/卸货时间/亏吨/亏吨扣款
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(waybillOrder.getLOrderId());
|
|
|
+ logisticsOrder.setLoadAmount(waybillCount.getLoadAmount());
|
|
|
+ logisticsOrder.setLoadTime(waybillCount.getLoadTime());
|
|
|
+ logisticsOrder.setUnloadAmount(waybillCount.getUnloadAmount());
|
|
|
+ logisticsOrder.setUnloadTime(waybillCount.getUnloadTime());
|
|
|
+ logisticsOrder.setDeficitAmount(waybillCount.getDeficitAmount());
|
|
|
+ BigDecimal deficitPrice = deficitPrice(waybillCount.getLoadAmount(), waybillCount.getDeficitAmount(),
|
|
|
+ logisticsOrder.getLoss(), logisticsOrder.getGoodsPrice());
|
|
|
+ logisticsOrder.setDeficitPrice(deficitPrice);
|
|
|
+ logisticsOrderDao.updateById(logisticsOrder);
|
|
|
+
|
|
|
+ /**6Mongodb数据更新**/
|
|
|
+ //2承运订单
|
|
|
+ SckwLogisticsOrder lOrder = new SckwLogisticsOrder();
|
|
|
+ lOrder.setLoadAmount(logisticsOrder.getLoadAmount());
|
|
|
+ lOrder.setLoadTime(logisticsOrder.getLoadTime());
|
|
|
+ lOrder.setUnloadAmount(logisticsOrder.getUnloadAmount());
|
|
|
+ lOrder.setUnloadTime(logisticsOrder.getUnloadTime());
|
|
|
+ lOrder.setDeficitAmount(logisticsOrder.getDeficitAmount());
|
|
|
+ lOrder.setDeficitPrice(logisticsOrder.getDeficitPrice());
|
|
|
+ editSckwLogisticsOrder(lOrder, logisticsOrder);
|
|
|
+
|
|
|
+ /**7校验当前承运订单是否运输完成(修改状态+统计量)**/
|
|
|
+ checkLogisticsByStatus(waybillOrder.getLOrderId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**8Mongodb数据更新**/
|
|
|
//1车辆运单
|
|
|
SckwWaybillOrder wOrder = new SckwWaybillOrder();
|
|
|
wOrder.set_id(waybillOrder.getId());
|
|
|
editSckwWaybillOrder(wOrder, waybillOrder, 2);
|
|
|
|
|
|
- /**4校验当前承运订单是否运输完成(修改状态+统计量)**/
|
|
|
- checkLogisticsByStatusV1(waybillOrder.getLOrderId());
|
|
|
-
|
|
|
- /**4发送消息**/
|
|
|
+ /**8发送消息**/
|
|
|
|
|
|
return HttpResult.ok("车辆运单审核完成!");
|
|
|
}
|
|
|
@@ -1773,10 +1694,77 @@ public class KwtWaybillOrderService {
|
|
|
remoteFleetService.updateById(truck);
|
|
|
}
|
|
|
|
|
|
- /** 当前物流订单是全量下游则只能全量、否则可委托量或全量
|
|
|
+ /** 当前物流订单是全量下游则只能全量可运、否则可委托量或全量
|
|
|
+ 校验上游是否全量,并获取全量跟节点物流订单或贸易订单(可委派量)
|
|
|
1、派车、循环派车接单需校验贸易订单/物流订单是否委派完成;
|
|
|
2、装货需要统计物流订单总装货量;
|
|
|
3、卸货需要统计物流订单总卸货量,变更上游状态;
|
|
|
-
|
|
|
*/
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param lOrderId 物流订单信息ID
|
|
|
+ * @param entrustAmount 委托量
|
|
|
+ * @desc 校验委托量是否大于剩余可运量(趟次派车/循环运单接单、委托/全量可运)
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/8/7
|
|
|
+ **/
|
|
|
+ public boolean checkResidueAmount(Long lOrderId, BigDecimal entrustAmount) {
|
|
|
+ //物流订单
|
|
|
+ KwtLogisticsOrder logisticsOrder = logisticsOrderDao.selectById(lOrderId);
|
|
|
+ /**存在全量可运**/
|
|
|
+ if (isComplete(logisticsOrder)) {
|
|
|
+ //获取所有上级物流订单ID(当前物流订单ID除外)
|
|
|
+ List<Long> idArray = (List)CollectionUtils.toList(logisticsOrder.getPids(), false);
|
|
|
+ for (Long id : idArray) {
|
|
|
+ //当前物流订单ID除外
|
|
|
+ if (id != lOrderId) {
|
|
|
+ KwtLogisticsOrder order = logisticsOrderDao.selectById(id);
|
|
|
+ if (!isComplete(order)) {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param params 物流订单信息
|
|
|
+ * @desc 校验物流订单是否全量可运
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/8/7
|
|
|
+ **/
|
|
|
+ public boolean isComplete(KwtLogisticsOrder params) {
|
|
|
+ if (params == null) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ //全量可运-已委托量(上游给他分配的量)为0
|
|
|
+ BigDecimal entrustAmount = params.getEntrustAmount() == null ? new BigDecimal(Global.AMOUNT) : params.getEntrustAmount();
|
|
|
+ if (entrustAmount.compareTo(new BigDecimal(Global.AMOUNT)) == 0) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param params 物流订单信息
|
|
|
+ * @desc 校验物流订单是否有分包
|
|
|
+ * @author zk
|
|
|
+ * @date 2023/8/7
|
|
|
+ **/
|
|
|
+ public boolean isSubcontract(KwtLogisticsOrder params) {
|
|
|
+ if (params == null) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ //存在下级分包
|
|
|
+ BigDecimal subcontractAmount = params.getSubcontractAmount() == null ? new BigDecimal(Global.AMOUNT) : params.getSubcontractAmount();
|
|
|
+ if (subcontractAmount.compareTo(new BigDecimal(Global.AMOUNT)) > 0) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|