司机接单

master
ljw 2025-12-24 16:36:42 +08:00
parent 3acc966fca
commit 776e85d45c
3 changed files with 91 additions and 12 deletions

View File

@ -7,6 +7,7 @@ import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity;
import com.njzscloud.dispose.cst.order.pojo.param.AssignmentDriverParam; import com.njzscloud.dispose.cst.order.pojo.param.AssignmentDriverParam;
import com.njzscloud.dispose.cst.order.pojo.param.AssignmentOrgParam; import com.njzscloud.dispose.cst.order.pojo.param.AssignmentOrgParam;
import com.njzscloud.dispose.cst.order.pojo.param.CreateOrderParam; import com.njzscloud.dispose.cst.order.pojo.param.CreateOrderParam;
import com.njzscloud.dispose.cst.order.pojo.param.DriverAcceptOrderParam;
import com.njzscloud.dispose.cst.order.service.OrderService; import com.njzscloud.dispose.cst.order.service.OrderService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -88,6 +89,16 @@ public class OrderController {
return R.success(); return R.success();
} }
/**
*
*/
@GetMapping("/driverAcceptOrder")
public R<?> driverAcceptOrder(@RequestBody DriverAcceptOrderParam acceptOrderParam) {
orderService.driverAcceptOrder(acceptOrderParam);
return R.success();
}
} }

View File

@ -0,0 +1,27 @@
package com.njzscloud.dispose.cst.order.pojo.param;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
/**
* @author ljw
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class DriverAcceptOrderParam {
/**
* ID
*/
private Long orderTransId;
/**
* Id
*/
private Long truckId;
}

View File

@ -21,12 +21,11 @@ import com.njzscloud.dispose.cst.order.pojo.entity.OrderCargoPlaceEntity;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity; import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderExpenseItemsEntity; import com.njzscloud.dispose.cst.order.pojo.entity.OrderExpenseItemsEntity;
import com.njzscloud.dispose.cst.order.pojo.entity.OrderTransEntity; import com.njzscloud.dispose.cst.order.pojo.entity.OrderTransEntity;
import com.njzscloud.dispose.cst.order.pojo.param.AssignmentDriverParam; import com.njzscloud.dispose.cst.order.pojo.param.*;
import com.njzscloud.dispose.cst.order.pojo.param.AssignmentOrgParam;
import com.njzscloud.dispose.cst.order.pojo.param.CreateOrderCargoPlaceParam;
import com.njzscloud.dispose.cst.order.pojo.param.CreateOrderParam;
import com.njzscloud.dispose.cst.order.pojo.result.OrderTransResult; import com.njzscloud.dispose.cst.order.pojo.result.OrderTransResult;
import com.njzscloud.dispose.cst.order.pojo.vo.Scope; import com.njzscloud.dispose.cst.order.pojo.vo.Scope;
import com.njzscloud.dispose.cst.truck.mapper.TruckMapper;
import com.njzscloud.dispose.cst.truck.pojo.entity.TruckEntity;
import com.njzscloud.dispose.finance.constant.ScopeStrategy; import com.njzscloud.dispose.finance.constant.ScopeStrategy;
import com.njzscloud.dispose.finance.pojo.entity.ExpenseItemEntity; import com.njzscloud.dispose.finance.pojo.entity.ExpenseItemEntity;
import com.njzscloud.dispose.finance.service.ExpenseItemService; import com.njzscloud.dispose.finance.service.ExpenseItemService;
@ -38,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -54,6 +54,7 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
private final OrderTransMapper orderTransMapper; private final OrderTransMapper orderTransMapper;
private final ExpenseItemService expenseItemService; private final ExpenseItemService expenseItemService;
private final DriverMapper driverMapper; private final DriverMapper driverMapper;
private final TruckMapper truckMapper;
private final CustomerMapper customerMapper; private final CustomerMapper customerMapper;
private final OrderExpenseItemsService orderExpenseItemsService; private final OrderExpenseItemsService orderExpenseItemsService;
@ -94,6 +95,7 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
transEntity.setTransTime(transOrgId == null ? null : LocalDateTime.now()); transEntity.setTransTime(transOrgId == null ? null : LocalDateTime.now());
transEntity.setCheckStatus(CheckStatus.WeiKanLiao.getVal()); transEntity.setCheckStatus(CheckStatus.WeiKanLiao.getVal());
transEntity.setPaymentStatus(PaymentStatus.WeiZhiFu.getVal()); transEntity.setPaymentStatus(PaymentStatus.WeiZhiFu.getVal());
transEntity.setTransDistance(param.getTransDistance());
orderTransMapper.insert(transEntity); orderTransMapper.insert(transEntity);
} }
// 付费项 // 付费项
@ -120,6 +122,7 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
return PageResult.of(this.page(pageParam.toPage(), Wrappers.query(orderEntity))); return PageResult.of(this.page(pageParam.toPage(), Wrappers.query(orderEntity)));
} }
@Transactional(rollbackFor = Exception.class)
public void assignmentOrg(AssignmentOrgParam orgParam) { public void assignmentOrg(AssignmentOrgParam orgParam) {
Assert.notNull(orgParam, () -> Exceptions.clierr("请填写参数")); Assert.notNull(orgParam, () -> Exceptions.clierr("请填写参数"));
Assert.notNull(orgParam.getOrderTransId(), () -> Exceptions.clierr("订单运输ID不可为空")); Assert.notNull(orgParam.getOrderTransId(), () -> Exceptions.clierr("订单运输ID不可为空"));
@ -151,6 +154,7 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
orderTransMapper.updateById(transEntity); orderTransMapper.updateById(transEntity);
} }
@Transactional(rollbackFor = Exception.class)
public void assignmentDriver(AssignmentDriverParam driverParam) { public void assignmentDriver(AssignmentDriverParam driverParam) {
Assert.notNull(driverParam, () -> Exceptions.clierr("请填写参数")); Assert.notNull(driverParam, () -> Exceptions.clierr("请填写参数"));
Assert.notNull(driverParam.getOrderTransId(), () -> Exceptions.clierr("订单运输ID不可为空")); Assert.notNull(driverParam.getOrderTransId(), () -> Exceptions.clierr("订单运输ID不可为空"));
@ -164,12 +168,6 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
DriverEntity driver = driverMapper.selectById(driverParam.getDriverId()); DriverEntity driver = driverMapper.selectById(driverParam.getDriverId());
Assert.notNull(driver, () -> Exceptions.clierr("司机不存在")); Assert.notNull(driver, () -> Exceptions.clierr("司机不存在"));
// 更新司机状态
DriverEntity driverEntity = new DriverEntity();
driverEntity.setId(driverParam.getDriverId());
driverEntity.setBusy(Boolean.TRUE);
driverMapper.updateById(driverEntity);
// 更新运输信息表 cst_trans_order 的运输状态等信息 // 更新运输信息表 cst_trans_order 的运输状态等信息
OrderTransEntity transEntity = new OrderTransEntity(); OrderTransEntity transEntity = new OrderTransEntity();
transEntity.setId(driverParam.getOrderTransId()); transEntity.setId(driverParam.getOrderTransId());
@ -179,6 +177,51 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
transEntity.setDriverCustomerId(driver.getCustomerId()); transEntity.setDriverCustomerId(driver.getCustomerId());
transEntity.setDriverUserId(driver.getUserId()); transEntity.setDriverUserId(driver.getUserId());
orderTransMapper.updateById(transEntity); orderTransMapper.updateById(transEntity);
// 更新司机状态
DriverEntity driverEntity = new DriverEntity();
driverEntity.setId(driverParam.getDriverId());
driverEntity.setBusy(Boolean.TRUE);
driverMapper.updateById(driverEntity);
}
@Transactional(rollbackFor = Exception.class)
public void driverAcceptOrder(DriverAcceptOrderParam acceptOrderParam) {
Assert.notNull(acceptOrderParam, () -> Exceptions.clierr("请填写参数"));
Assert.notNull(acceptOrderParam.getOrderTransId(), () -> Exceptions.clierr("订单运输ID不可为空"));
Assert.notNull(acceptOrderParam.getTruckId(), () -> Exceptions.clierr("车辆Id不可为空"));
OrderTransResult result = orderTransMapper.getById(acceptOrderParam.getOrderTransId());
Assert.notNull(result, () -> Exceptions.clierr("订单不存在"));
Assert.isTrue(TransStatus.DaiJieDan.getVal().equals(result.getTransStatus()), () -> Exceptions.clierr("当前订单状态,无法确认接单"));
long userId = SecurityUtil.currentUserId();
DriverEntity driver = driverMapper.selectOne(Wrappers.<DriverEntity>lambdaQuery()
.eq(DriverEntity::getUserId, userId));
Assert.notNull(driver, () -> Exceptions.clierr("当前登录人非司机用户"));
Assert.isTrue(Objects.equals(driver.getId(), result.getDriverId()), () -> Exceptions.clierr("您没有权限接受此单"));
TruckEntity truckEntity = truckMapper.selectById(acceptOrderParam.getTruckId());
Assert.notNull(truckEntity, () -> Exceptions.clierr("车辆不存在"));
// 更新运输信息
OrderTransEntity transEntity = new OrderTransEntity();
transEntity.setId(acceptOrderParam.getOrderTransId());
transEntity.setTransStatus(TransStatus.YiJieDan.getVal());
transEntity.setDriverConfirmTime(LocalDateTime.now());
transEntity.setTruckCustomerId(truckEntity.getCustomerId());
transEntity.setTruckOrgId(truckEntity.getOrgId());
transEntity.setTruckId(acceptOrderParam.getTruckId());
transEntity.setTruckLicensePlate(truckEntity.getLicensePlate());
orderTransMapper.updateById(transEntity);
// 更新车辆状态
TruckEntity truck = new TruckEntity();
truck.setId(acceptOrderParam.getTruckId());
truck.setBusy(Boolean.TRUE);
truckMapper.updateById(truck);
} }
/** /**
@ -275,5 +318,3 @@ public class OrderService extends ServiceImpl<OrderMapper, OrderEntity> {
orderExpenseItemsService.saveBatch(extraItems); orderExpenseItemsService.saveBatch(extraItems);
} }
} }