Browse Source

workerService

guoyong 4 năm trước cách đây
mục cha
commit
6708dfc0d6

+ 125 - 27
src/main/java/com/aoyang/tms/controller/WorkerController.java

@@ -15,9 +15,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -46,10 +50,14 @@ public class WorkerController {
     private WorkLogService workLogService;
     @Resource
     private WorkOrderReadinfoService workOrderReadinfoService;
-
     @Resource
     private WorkerService workerService;
-
+    @Resource
+    private TruckService truckService;
+    @Resource
+    private WorkCycleService workCycleService;
+    @Resource
+    private TruckRepairInfoService truckRepairInfoService;
 
     @ApiOperation(value = "运力详情", notes = "卡车id必传,包含司机1姓名、司机2姓名、押运员姓名、车辆状态、位置经纬度、位置时间等信息")
     @PostMapping("/find_truck_info")
@@ -113,57 +121,112 @@ public class WorkerController {
 
     @ApiOperation(value = "点击待执行运单,变成已读", notes = "必传参数:truckId,orderId")
     @PostMapping("/add_work_order_readinfo")
-    public Result work_cycle_page(@RequestHeader(value = "orgId") Long orgId,
-                                  @RequestHeader(value = "userId") Long userId, @RequestBody WorkOrderReadinfo workOrderReadinfo) {
+    public Result add_work_order_readinfo(@RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody WorkOrderReadinfo workOrderReadinfo) {
         log.info("点击待执行运单,/tms/worker/add_work_order_readinfo,参数:{}", JSON.toJSONString(workOrderReadinfo));
-        if (workOrderReadinfo == null || workOrderReadinfo.getTruckId() == null || workOrderReadinfo.getOrderId() == null) {
+        if (workOrderReadinfo == null || workOrderReadinfo.getOrderId() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
+        WorkOrder workOrder = workOrderService.getById(workOrderReadinfo.getOrderId());
+        if (workOrder != null) {
+            workOrderReadinfo.setOrderId(workOrder.getId() + "");
+            BeanUtils.copyProperties(workOrder, workOrderReadinfo);
+        }
+        workOrderReadinfo.setUserId(userId);
+        workOrderReadinfo.setUserName(utf8Name);
+        workOrderReadinfo.setCreater(userId);
+        workOrderReadinfo.setCreaterName(utf8Name);
+        workOrderReadinfo.setCreateDate(LocalDateTime.now());
         boolean flag = workOrderReadinfoService.save(workOrderReadinfo);
         return new Result<>(flag);
     }
 
     @ApiOperation(value = "上报途中休息信息", notes = "必传参数:开始时间、结束时间必传")
     @PostMapping("/add_rest_info")
-    public Result add_rest_info(@RequestBody RestInfo restInfo) {
+    public Result add_rest_info(@RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody RestInfo restInfo) {
         log.info("上报途中休息信息,/tms/worker/add_rest_info,参数:{}", JSON.toJSONString(restInfo));
-        if (restInfo == null || restInfo.getTruckId() == null || restInfo.getStartTime() == null || restInfo.getEndTime() == null) {
+        if (restInfo == null || restInfo.getCycleId() == null || restInfo.getTruckId() == null || restInfo.getStartTime() == null || restInfo.getEndTime() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
+
+        WorkCycle workCycle = workCycleService.getById(restInfo.getCycleId());
+        if (workCycle != null) {
+            BeanUtils.copyProperties(workCycle, restInfo);
+            restInfo.setCycleId(workCycle.getId());
+        }
+        restInfo.setCreater(userId);
+        restInfo.setCreaterName(utf8Name);
+        restInfo.setCreateDate(LocalDateTime.now());
         Boolean flag = restInfoService.save(restInfo);
         return new Result<>(flag);
     }
 
     @ApiOperation(value = "上报车辆途中维修信息", notes = "新增或修改都用同一个接口,新增后返回带主键id的实体")
     @PostMapping("/add_truck_repair_info")
-    public Result<TruckRepairInfo> add_truck_repair_info(@RequestBody TruckRepairInfo truckRepairInfo) {
+    public Result add_truck_repair_info(@RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody TruckRepairInfo truckRepairInfo) {
         log.info("上报车辆途中维修信息,/tms/worker/add_rest_info,参数:{}", JSON.toJSONString(truckRepairInfo));
         if (truckRepairInfo == null || truckRepairInfo.getTruckId() == null || truckRepairInfo.getStartTime() == null || truckRepairInfo.getEndTime() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
-        //TODO SAVE OR UPDATE
-        //TODO 信息全了,则需要更改车辆状态,待执行到出车作业中
-        return new Result<>(new TruckRepairInfo());
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
+
+        WorkCycle workCycle = workCycleService.getById(truckRepairInfo.getCycleId());
+        if (workCycle != null) {
+            BeanUtils.copyProperties(workCycle, truckRepairInfo);
+            truckRepairInfo.setCycleId(workCycle.getId());
+        }
+        truckRepairInfo.setCreater(userId);
+        truckRepairInfo.setCreaterName(utf8Name);
+        truckRepairInfo.setCreateDate(LocalDateTime.now());
+        Boolean flag = truckRepairInfoService.save(truckRepairInfo);
+        return new Result<>(flag);
     }
 
     @ApiOperation(value = "查询车辆检查信息", notes = "id必传")
     @PostMapping("/find_truck_check_info")
     public Result find_truck_check_info(@RequestBody TruckCheckInfo truckCheckInfo) {
         log.info("查询车辆检查信息,/tms/worker/find_truck_check_info,参数:{}", JSON.toJSONString(truckCheckInfo));
-        if (truckCheckInfo == null || truckCheckInfo.getId() == null) {
+        if (truckCheckInfo == null || truckCheckInfo.getCycleId() == null || truckCheckInfo.getType() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
-        TruckCheckInfo flag = truckCheckInfoService.getById(truckCheckInfo.getId());
+        TruckCheckInfo flag = truckCheckInfoService.findTruckCheckInfo(truckCheckInfo.getCycleId(), truckCheckInfo.getType());
         return new Result<>(flag);
     }
 
     @ApiOperation(value = "上报车辆检查信息", notes = "新增或修改车辆检车信息")
     @PostMapping("/add_truck_check_info")
-    public Result add_truck_check_info(@RequestBody TruckCheckInfo truckCheckInfo) {
+    public Result add_truck_check_info(@RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody TruckCheckInfo truckCheckInfo) {
         log.info("上报车辆检查信息,/tms/worker/add_truck_check_info,参数:{}", JSON.toJSONString(truckCheckInfo));
         if (truckCheckInfo == null || truckCheckInfo.getType() == null || truckCheckInfo.getTruckId() == null || StringUtils.isBlank(truckCheckInfo.getTrip()) || StringUtils.isBlank(truckCheckInfo.getCheckUrl()) || StringUtils.isBlank(truckCheckInfo.getTripUrl())) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
+
+        WorkCycle workCycle = workCycleService.getById(truckCheckInfo.getCycleId());
+        if (workCycle != null) {
+            BeanUtils.copyProperties(workCycle, truckCheckInfo);
+            truckCheckInfo.setCycleId(workCycle.getId());
+        }
+        truckCheckInfo.setCreater(userId);
+        truckCheckInfo.setCreaterName(utf8Name);
+        truckCheckInfo.setCreateDate(LocalDateTime.now());
         Boolean flag = truckCheckInfoService.saveOrUpdate(truckCheckInfo);
         return new Result<>(flag);
     }
@@ -215,25 +278,35 @@ public class WorkerController {
 
     @ApiOperation(value = "1.开始执行运单", notes = "点击开始执行运单按钮")
     @PostMapping("/start_order")
-    public Result startOrder(@RequestHeader(value = "userId") Long userId,@RequestHeader(value = "userName") String userName,  @RequestBody WorkOrder workOrder) {
+    public Result startOrder(@RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody WorkOrder workOrder) {
         log.info("开始执行运单,/tms/worker/start_order,参数:{}", JSON.toJSONString(workOrder));
         if (workOrder == null || workOrder.getId() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
         //TODO 1.车辆进入出车前检车状态,2.订单进入前往装车点状态,3.并记行车日志,4.创建行程周期
-        Boolean flag = workerService.startOrder(userId,userName, workOrder);
+        Boolean flag = workerService.startOrder(userId, utf8Name, workOrder);
         return new Result<>(flag);
     }
 
     @ApiOperation(value = "2.完成出车前检查,开始装卸车作业", notes = "点击完成出车前检查,开始作业按钮")
     @PostMapping("/start_work")
-    public Result starWork(@RequestHeader(value = "userId") Long userId,@RequestHeader(value = "userName") String userName,  @RequestBody WorkOrder workOrder) {
+    public Result starWork(@RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody WorkOrder workOrder) {
         log.info("完成出车前检查,开始作业,/tms/worker/start_work,参数:{}", JSON.toJSONString(workOrder));
         if (workOrder == null || workOrder.getId() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
         //TODO 1.车辆进入作业中状态,2.订单进入前往装车点状态,3.并记行车日志
-        Boolean flag = workerService.starWork(userId,userName, workOrder);
+        Boolean flag = workerService.starWork(userId, utf8Name, workOrder);
         return new Result<>(flag);
     }
 
@@ -244,56 +317,81 @@ public class WorkerController {
         if (workOrder == null || workOrder.getId() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
         //TODO 1.车辆进入作业中状态,2.订单进入装车等待状态,3.并记行车日志
-        Boolean flag = workerService.startWait(userId,userName, workOrder);
+        Boolean flag = workerService.startWait(userId, utf8Name, workOrder);
         return new Result<>(flag);
     }
 
     @ApiOperation(value = "4.上报成果", notes = "点击上报成果")
     @PostMapping("/submit_result")
-    public Result submitResult(@RequestHeader(value = "userId") Long userId,@RequestHeader(value = "userName") String userName,  @RequestBody WorkOrder workOrder) {
+    public Result submitResult(@RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody WorkOrder workOrder) {
         log.info("上报成果,/tms/worker/submit_result,参数:{}", JSON.toJSONString(workOrder));
         if (workOrder == null || workOrder.getId() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
         //TODO 1.车辆进入作业中状态,2.订单进入成果报备中状态,3.并记行车日志
-        Boolean flag = workerService.submitResult(userId,userName, workOrder);
+        Boolean flag = workerService.submitResult(userId, utf8Name, workOrder);
         return new Result<>(flag);
     }
 
     @ApiOperation(value = "4.确认完成运单", notes = "点击确认完成运单")
     @PostMapping("/finish_order")
-    public Result finishOrder(@RequestHeader(value = "userId") Long userId,@RequestHeader(value = "userName") String userName,  @RequestBody WorkOrder workOrder) {
+    public Result finishOrder(@RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody WorkOrder workOrder) {
         log.info("确认完成运单,/tms/worker/finish_order,参数:{}", JSON.toJSONString(workOrder));
         if (workOrder == null || workOrder.getId() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
         //TODO 1.车辆进入收车中状态,2.订单完成状态,3.并记行车日志
-        Boolean flag = workerService.finishOrder(userId,userName, workOrder);
+        Boolean flag = workerService.finishOrder(userId, utf8Name, workOrder);
         return new Result<>(flag);
     }
 
     @ApiOperation(value = "6.上报已到达收车点", notes = "点击上报已到达收车点")
     @PostMapping("/arrive_terminal")
-    public Result arriveTerminal(@RequestHeader(value = "userId") Long userId,@RequestHeader(value = "userName") String userName,  @RequestBody WorkOrder workOrder) {
+    public Result arriveTerminal(@RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody WorkOrder workOrder) {
         log.info("上报已到达收车点,/tms/worker/arrive_shouchedian,参数:{}", JSON.toJSONString(workOrder));
         if (workOrder == null || workOrder.getId() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
         //TODO 1.车辆进入收车后检查状态,2.订单完成状态,3.并记行车日志
-        Boolean flag = workerService.arriveTerminal(userId,userName, workOrder);
+        Boolean flag = workerService.arriveTerminal(userId, utf8Name, workOrder);
         return new Result<>(flag);
     }
 
     @ApiOperation(value = "7.完成检查,结束此次行程", notes = "点击完成检查,结束此次行程")
     @PostMapping("/finish_work")
-    public Result finishWork(@RequestHeader(value = "userId") Long userId,@RequestHeader(value = "userName") String userName,  @RequestBody WorkOrder workOrder) {
+    public Result finishWork(@RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody WorkOrder workOrder) {
         log.info("上报已到达收车点,/tms/worker/arrive_shouchedian,参数:{}", JSON.toJSONString(workOrder));
         if (workOrder == null || workOrder.getId() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
+        String utf8Name = userName;
+        try {
+            utf8Name = URLDecoder.decode(userName, "UTF-8");
+        } catch (UnsupportedEncodingException ignored) {
+        }
         //TODO 1.车辆进入已经收车状态,2.订单完成状态,3.并记行车日志,4.结束当前行程周期(从收车中到出车检查也结束当前行程周期)
-        Boolean flag = workerService.finishWork(userId,userName, workOrder);
+        Boolean flag = workerService.finishWork(userId, utf8Name, workOrder);
         return new Result<>(flag);
     }
 }

+ 8 - 0
src/main/java/com/aoyang/tms/service/TruckCheckInfoService.java

@@ -13,4 +13,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface TruckCheckInfoService extends IService<TruckCheckInfo> {
 
+    /**
+     * @Author guoyong
+     * @Description 根据行程周期获取检查信息
+     * @Date  2022/4/23
+     * @Param
+     * @return
+    **/
+    TruckCheckInfo findTruckCheckInfo(Long cycleId,Integer type);
 }

+ 1 - 1
src/main/java/com/aoyang/tms/service/WorkerService.java

@@ -20,7 +20,7 @@ public interface WorkerService {
 
     /**
      * @Author guoyong
-     * @Description 开始执行运单
+     * @Description 开始执行运单,1.车辆进入出车前检车状态,2.订单进入前往装车点状态,3.并记行车日志,4.创建行程周期
      * @Date  2022/4/23
      * @Param
      * @return

+ 18 - 0
src/main/java/com/aoyang/tms/service/impl/TruckCheckInfoServiceImpl.java

@@ -1,11 +1,18 @@
 package com.aoyang.tms.service.impl;
 
 import com.aoyang.tms.entity.TruckCheckInfo;
+import com.aoyang.tms.entity.TruckDriver;
 import com.aoyang.tms.mapper.TruckCheckInfoMapper;
+import com.aoyang.tms.mapper.TruckDriverMapper;
 import com.aoyang.tms.service.TruckCheckInfoService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.List;
+
 /**
  * <p>
  * 车辆检查详情表 服务实现类
@@ -17,4 +24,15 @@ import org.springframework.stereotype.Service;
 @Service
 public class TruckCheckInfoServiceImpl extends ServiceImpl<TruckCheckInfoMapper, TruckCheckInfo> implements TruckCheckInfoService {
 
+    @Resource
+    TruckCheckInfoMapper truckCheckInfoMapper;
+
+    @Override
+    public TruckCheckInfo findTruckCheckInfo(Long cycleId, Integer type) {
+        QueryWrapper<TruckCheckInfo> queryWrapper = Wrappers.query();
+        queryWrapper.eq("cycle_id", cycleId);
+        queryWrapper.eq("type", type);
+        TruckCheckInfo truckCheckInfo = truckCheckInfoMapper.selectOne(queryWrapper);
+        return truckCheckInfo;
+    }
 }

+ 182 - 7
src/main/java/com/aoyang/tms/service/impl/WorkerServiceImpl.java

@@ -1,11 +1,21 @@
 package com.aoyang.tms.service.impl;
 
+import com.aoyang.tms.common.TmsTruckStatus;
+import com.aoyang.tms.common.WorkOrderEnum;
+import com.aoyang.tms.entity.Truck;
+import com.aoyang.tms.entity.WorkCycle;
 import com.aoyang.tms.entity.WorkOrder;
+import com.aoyang.tms.service.TruckService;
 import com.aoyang.tms.service.WorkCycleService;
+import com.aoyang.tms.service.WorkOrderService;
 import com.aoyang.tms.service.WorkerService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 
 /**
  * @Description: 作业端相关接口
@@ -14,50 +24,215 @@ import javax.annotation.Resource;
  * @Version 1.0
  */
 @Service
+@Slf4j
 public class WorkerServiceImpl implements WorkerService {
 
     @Resource
     private WorkCycleService workCycleService;
+    @Resource
+    private TruckService truckService;
+    @Resource
+    private WorkOrderService workOrderService;
 
     @Override
-    public Boolean startOrder(Long userId,String userName, WorkOrder workOrder) {
+    @Transactional
+    public Boolean startOrder(Long userId, String userName, WorkOrder workOrderParam) {
         Boolean flag = true;
+        try {
+            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);
+                workCycleService.save(workCycle);
+
+                if (workOrder.getType() == 1) {
+                    //3.订单进入前往装车点状态,
+                    workOrder.setOrderStatus(WorkOrderEnum.GOTO_ZHUANGCHE_SPOT.orderStatus());
+                }
+                workOrder.setCycleId(workCycle.getId());
+                workOrderService.updateById(workOrder);
+
+                //4 记录日志
+                //TODO
+            }
+        } catch (Exception e) {
+            log.error("startOrder:{}", e.getMessage());
+            return false;
+        }
+
         return flag;
     }
 
     @Override
-    public Boolean starWork(Long userId,String userName, WorkOrder workOrder) {
+    public Boolean starWork(Long userId, String userName, WorkOrder workOrderParam) {
         Boolean flag = true;
+        //TODO 1.车辆进入作业中状态,2.并记行车日志
+        try {
+            WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
+            if (workOrder != null) {
+                //1.车辆进入出车前检车状态
+                Truck truck = truckService.getById(workOrder.getTruckId());
+                truck.setTmsStatus(TmsTruckStatus.WORKING);
+                truckService.updateById(truck);
+                //2 记录日志
+                //TODO
+            }
+        } catch (Exception e) {
+            log.error("startOrder:{}", e.getMessage());
+            return false;
+        }
+
         return flag;
     }
 
     @Override
-    public Boolean startWait(Long userId,String userName, WorkOrder workOrder) {
+    public Boolean startWait(Long userId, String userName, WorkOrder workOrderParam) {
         Boolean flag = true;
+        try {
+            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.订单进入装车等待状态,
+                if (workOrder.getType() == 1) {
+                    workOrder.setOrderStatus(WorkOrderEnum.ZHUANGCHE_WAIT.orderStatus());
+                } else {
+                    workOrder.setOrderStatus(WorkOrderEnum.XIECHE_WAIT.orderStatus());
+                }
+                workOrderService.updateById(workOrder);
+
+                //3 记录日志
+                //TODO
+            }
+        } catch (Exception e) {
+            log.error("startOrder:{}", e.getMessage());
+            return false;
+        }
+
         return flag;
     }
 
     @Override
-    public Boolean submitResult(Long userId,String userName, WorkOrder workOrder) {
+    public Boolean submitResult(Long userId, String userName, WorkOrder workOrderParam) {
         Boolean flag = true;
+        try {
+            WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
+            if (workOrder != null) {
+                //1.车辆进入作业中状态
+                Truck truck = truckService.getById(workOrder.getTruckId());
+                truck.setTmsStatus(TmsTruckStatus.WORKING);
+                truckService.updateById(truck);
+                //2.创建行程周期
+                WorkCycle workCycle = new WorkCycle();
+                BeanUtils.copyProperties(truck, workCycle);
+                BeanUtils.copyProperties(workOrder, workCycle);
+                workCycleService.save(workCycle);
+
+                if (workOrder.getType() == 1) {
+                    //3.订单进入前往装车点状态,
+                    workOrder.setOrderStatus(WorkOrderEnum.ZHUANGCHE_RESULT_SUBMIT.orderStatus());
+                } else {
+                    workOrder.setOrderStatus(WorkOrderEnum.XIECHE_RESULT_SUBMIT.orderStatus());
+                }
+                workOrderService.updateById(workOrder);
+
+                //3 记录日志
+                //TODO
+            }
+        } catch (Exception e) {
+            log.error("startOrder:{}", e.getMessage());
+            return false;
+        }
+
         return flag;
     }
 
     @Override
-    public Boolean finishOrder(Long userId,String userName, WorkOrder workOrder) {
+    public Boolean finishOrder(Long userId, String userName, WorkOrder workOrderParam) {
         Boolean flag = true;
+        try {
+            WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
+            if (workOrder != null) {
+                //1.车辆进入收车中状态
+                Truck truck = truckService.getById(workOrder.getTruckId());
+                truck.setTmsStatus(TmsTruckStatus.RETURNING);
+                truckService.updateById(truck);
+                //2.创建行程周期
+                WorkCycle workCycle = new WorkCycle();
+                BeanUtils.copyProperties(truck, workCycle);
+                BeanUtils.copyProperties(workOrder, workCycle);
+                workCycleService.save(workCycle);
+
+                //2.订单完成状态
+                workOrder.setOrderStatus(WorkOrderEnum.COMPLETED.orderStatus());
+                workOrderService.updateById(workOrder);
+
+                //3.并记行车日志
+                //TODO
+            }
+        } catch (Exception e) {
+            log.error("startOrder:{}", e.getMessage());
+            return false;
+        }
+
         return flag;
     }
 
     @Override
-    public Boolean arriveTerminal(Long userId,String userName, WorkOrder workOrder) {
+    public Boolean arriveTerminal(Long userId, String userName, WorkOrder workOrderParam) {
         Boolean flag = true;
+        try {
+            WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
+            if (workOrder != null) {
+                //1.车辆进入收车后检查状态
+                Truck truck = truckService.getById(workOrder.getTruckId());
+                truck.setTmsStatus(TmsTruckStatus.AFTER_CHECK);
+                truckService.updateById(truck);
+                //2 记录日志
+                //TODO
+            }
+        } catch (Exception e) {
+            log.error("startOrder:{}", e.getMessage());
+            return false;
+        }
+
         return flag;
     }
 
     @Override
-    public Boolean finishWork(Long userId,String userName, WorkOrder workOrder) {
+    public Boolean finishWork(Long userId, String userName, WorkOrder workOrderParam) {
         Boolean flag = true;
+        try {
+            WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
+            if (workOrder != null) {
+                //1.车辆进入已经收车状态
+                Truck truck = truckService.getById(workOrder.getTruckId());
+                truck.setTmsStatus(TmsTruckStatus.DONE);
+                truckService.updateById(truck);
+                //2.结束当前行程周期(从收车中到出车检查也结束当前行程周期)
+                WorkCycle workCycle = new WorkCycle();
+                workCycle.setEndTime(LocalDateTime.now());
+                BeanUtils.copyProperties(truck, workCycle);
+                BeanUtils.copyProperties(workOrder, workCycle);
+                workCycleService.save(workCycle);
+
+                //3 记录日志
+                //TODO
+            }
+        } catch (Exception e) {
+            log.error("startOrder:{}", e.getMessage());
+            return false;
+        }
+
         return flag;
     }
 }