|
|
@@ -8,6 +8,7 @@ import com.aoyang.tms.entity.TruckCheckInfo;
|
|
|
import com.aoyang.tms.entity.WorkCycle;
|
|
|
import com.aoyang.tms.entity.WorkOrder;
|
|
|
import com.aoyang.tms.service.*;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -15,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* @Description: 作业端相关接口
|
|
|
@@ -40,34 +42,60 @@ public class WorkerServiceImpl implements WorkerService {
|
|
|
public Boolean startOrder(Long userId, String userName, WorkOrder workOrderParam) {
|
|
|
Boolean flag = true;
|
|
|
try {
|
|
|
- // TODO 查询是否有中止的装车运单
|
|
|
-
|
|
|
WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
|
|
|
if (workOrder != null) {
|
|
|
- //1.车辆进入出车前检车状态
|
|
|
- Truck truck = truckService.getById(workOrder.getTruckId());
|
|
|
- truck.setTmsStatus(TmsTruckStatus.PRE_CHECK);
|
|
|
- truckService.updateById(truck);
|
|
|
- //2.创建行程周期
|
|
|
- WorkCycle workCycle = new WorkCycle();
|
|
|
- workCycle.setStartTime(LocalDateTime.now());
|
|
|
- BeanUtils.copyProperties(truck, workCycle);
|
|
|
- BeanUtils.copyProperties(workOrder, workCycle);
|
|
|
- //行车周期执行中
|
|
|
- workCycle.setStatus(1);
|
|
|
- workCycleService.save(workCycle);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ Truck truck = truckService.getById(workOrder.getTruckId());
|
|
|
+ WorkCycle workCycleOld = workCycleService.getOne(
|
|
|
+ new QueryWrapper<WorkCycle>().eq("truck_id", workOrder.getTruckId()).eq("status", 1));
|
|
|
+ if (workOrder.getType() == 1) {
|
|
|
+ boolean cancelFlag = false;
|
|
|
+ if (truck.getTmsStatus() == 1 || truck.getTmsStatus() == 2) {
|
|
|
+ // 行车状态已开始行车周期
|
|
|
+ // 查询当前是否有中止的装车运单
|
|
|
+ QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("cycle_id", workCycleOld.getId());
|
|
|
+ queryWrapper.eq("status", 60);
|
|
|
+ queryWrapper.eq("type", 1);
|
|
|
+ List<WorkOrder> calcelList = workOrderService.list(queryWrapper);
|
|
|
+ if (calcelList != null && calcelList.size() > 0) {
|
|
|
+ cancelFlag = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (cancelFlag) {
|
|
|
+ workOrder.setCycleId(workCycleOld.getId());
|
|
|
+ } else {
|
|
|
+ //1.车辆进入出车前检车状态
|
|
|
+ truck.setTmsStatus(TmsTruckStatus.PRE_CHECK);
|
|
|
+ truckService.updateById(truck);
|
|
|
+ //2.创建行程周期
|
|
|
+ WorkCycle workCycle = new WorkCycle();
|
|
|
+ workCycle.setStartTime(LocalDateTime.now());
|
|
|
+ BeanUtils.copyProperties(truck, workCycle);
|
|
|
+ BeanUtils.copyProperties(workOrder, workCycle);
|
|
|
+ //行车周期执行中
|
|
|
+ workCycle.setStatus(1);
|
|
|
+ workCycleService.save(workCycle);
|
|
|
|
|
|
- if (workOrder.getType() == 1) {
|
|
|
- //3.订单进入前往装车点状态,
|
|
|
- workOrder.setOrderStatus(WorkOrderEnum.GOTO_ZHUANGCHE_SPOT.orderStatus());
|
|
|
- workOrder.setExecuteTime(LocalDateTime.now());
|
|
|
+ workOrder.setCycleId(workCycle.getId());
|
|
|
}
|
|
|
- workOrder.setCycleId(workCycle.getId());
|
|
|
+ //3.订单进入前往装车点状态,
|
|
|
+ workOrder.setOrderStatus(WorkOrderEnum.GOTO_ZHUANGCHE_SPOT.orderStatus());
|
|
|
+ workOrder.setExecuteTime(LocalDateTime.now());
|
|
|
workOrderService.updateById(workOrder);
|
|
|
|
|
|
- //4 记录日志
|
|
|
- //TODO
|
|
|
+ } else if (workOrder.getType() == 2) {
|
|
|
+ workOrder.setCycleId(workCycleOld.getId());
|
|
|
+ //3.订单进入前往卸车点状态,
|
|
|
+ workOrder.setOrderStatus(WorkOrderEnum.GOTO_XIECHE_SPOT.orderStatus());
|
|
|
+ workOrder.setExecuteTime(LocalDateTime.now());
|
|
|
+ workOrderService.updateById(workOrder);
|
|
|
}
|
|
|
+
|
|
|
+ //4 记录日志
|
|
|
+ //TODO
|
|
|
+
|
|
|
} catch (Exception e) {
|
|
|
log.error("startOrder:{}", e.getMessage());
|
|
|
return false;
|