提交 9295df99 authored 作者: aiqingguo's avatar aiqingguo

运单流程

上级 f50f937e
......@@ -21,4 +21,14 @@ public class RabbitKeyConstants {
public static final String ORDER_GOODS_SYNC_TRUCK_DRIVER_INFO_QUEUE = "clx-performance.order.goods.sync.truck.driver.info.queue";
// 司机出车状态更新
public static final String DRIVER_EXCHANGE = "clx-user.driver.exchange";
public static final String DRIVER_ORDER_STATUS_UPDATE_KEY = "clx-user.driver.orderStatus.update.key";
// 车辆出车状态更新
public static final String TRUCK_EXCHANGE = "clx-user.truck.exchange";
public static final String TRUCK_ORDER_STATUS_UPDATE_KEY = "clx-user.truck.orderStatus.update.key";
}
......@@ -7,4 +7,7 @@ public interface DriverService {
Optional<DriverTruckInfoFeignVo> getUserDetailInfo(Long driverUserNo, Integer truckId);
void updateOrderStatus(Long driverUserNo, Integer driverOrderStatus, Integer truckId, Integer truckOrderStatus);
}
......@@ -4,6 +4,7 @@ import com.clx.performance.extranal.user.DriverService;
import com.clx.user.feign.DriverFeign;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.msl.common.base.Optional;
import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
......@@ -25,4 +26,11 @@ public class DriverServiceImpl implements DriverService {
return map;
}
@Override
public void updateOrderStatus(Long driverUserNo, Integer driverOrderStatus, Integer truckId, Integer truckOrderStatus){
Optional.ofNullable(driverFeign.updateOrderStatus(driverUserNo, driverOrderStatus, truckId, truckOrderStatus))
.filter(Result::succeed).orElseThrow(ResultCodeEnum.FAIL);
}
}
......@@ -21,6 +21,7 @@ import com.clx.performance.vo.pc.CarrierOrderChildDetailVO;
import com.clx.performance.vo.pc.OrderChildPCVO;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.clx.user.enums.driver.DriverInfoEnum;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.msl.common.base.Optional;
import com.msl.common.enums.ResultCodeEnum;
......@@ -31,6 +32,7 @@ import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
......@@ -55,6 +57,7 @@ import java.util.stream.Collectors;
@Service
@AllArgsConstructor
public class OrderChildServiceImpl implements OrderChildService {
private final AmqpTemplate rabbitTemplate;
private final OrderGoodsDao orderGoodsDao;
private final OrderGoodsTruckBindDao orderGoodsTruckBindDao;
......@@ -164,11 +167,8 @@ public class OrderChildServiceImpl implements OrderChildService {
// 新增运单
orderChildDao.saveEntity(orderChild);
// 更新司机状态
lockDriver(orderChild.getDriverUserNo());
// 更新车辆状态
lockTruck(orderChild.getTruckId());
// 更新出车状态
updateDriverOrderStatusLock(orderChild.getDriverUserNo(), orderChild.getTruckId());
// 新增日志
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.CREATED.getCode(), OrderChildLogEnum.Type.CREATED.getMsg(),
......@@ -483,9 +483,8 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChildPoundAuditDao.saveEntity(audit);
// 释放司机、车辆
releaseDriver(orderChild.getDriverUserNo());
releaseTruck(orderChild.getTruckId());
// 更新出车状态
updateDriverOrderStatusUnload(orderChild.getDriverUserNo(), orderChild.getTruckId());
}
......@@ -644,6 +643,9 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setStatus(OrderChildEnum.Status.UNSETTLE.getCode());
orderChildDao.updateDriverConfirm(orderChild);
// 更新车辆状态
updateDriverOrderStatusDriverConfirm(orderChild.getTruckId());
// 日志
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.DRIVER_CONFIRM.getCode(), OrderChildLogEnum.Type.DRIVER_CONFIRM.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
......@@ -696,9 +698,8 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChildDao.updateCancel(orderChild);
// 释放司机、车辆
releaseDriver(orderChild.getDriverUserNo());
releaseTruck(orderChild.getTruckId());
// 更新出车状态
updateDriverOrderStatusCancel(orderChild.getDriverUserNo(), orderChild.getTruckId());
// 日志
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.DRIVER_CANCEL.getCode(), OrderChildLogEnum.Type.DRIVER_CANCEL.getMsg(),
......@@ -747,9 +748,8 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChildDao.updateCancel(orderChild);
// 释放司机、车辆
releaseDriver(orderChild.getDriverUserNo());
releaseTruck(orderChild.getTruckId());
// 更新出车状态
updateDriverOrderStatusCancel(orderChild.getDriverUserNo(), orderChild.getTruckId());
// 日志
orderChildLogService.saveCarrierOrderChildLog(childNo, OrderChildLogEnum.Type.PLATFORM_CANCEL.getCode(), OrderChildLogEnum.Type.PLATFORM_CANCEL.getMsg(),
......@@ -960,31 +960,32 @@ public class OrderChildServiceImpl implements OrderChildService {
/**
* 接单锁定司机
* 更新出车状态 (接单, 运单重车)
*/
private void lockDriver(Long driverNo){
private void updateDriverOrderStatusLock(Long driverUserNo, Integer truckId){
driverService.updateOrderStatus(driverUserNo, DriverInfoEnum.DriverStatus.YES.getCode(), truckId, 3);
}
/**
* 接单锁定车辆
* 更新出车状态(运单卸车,运单空车)
*/
private void lockTruck(Integer truckId){
private void updateDriverOrderStatusUnload(Long driverUserNo, Integer truckId){
driverService.updateOrderStatus(driverUserNo, DriverInfoEnum.DriverStatus.NO.getCode(), truckId, 2);
}
/**
* 释放司机
* 更新出车状态 (运单取消,空车)
*/
private void releaseDriver(Long driverNo){
private void updateDriverOrderStatusCancel(Long driverUserNo, Integer truckId){
driverService.updateOrderStatus(driverUserNo, DriverInfoEnum.DriverStatus.NO.getCode(), truckId, 1);
}
/**
* 释放车辆
* 更新出车状态 (司机确认收货,空车)
*/
private void releaseTruck(Integer truckId){
private void updateDriverOrderStatusDriverConfirm(Integer truckId){
driverService.updateOrderStatus(null, null, truckId, 1);
}
/**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论