浏览代码

Merge remote-tracking branch 'origin/master'

wangweiyu 4 年之前
父节点
当前提交
7075ae943a

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

@@ -20,7 +20,7 @@ public interface CommonService {
     
     /**
      * @Author guoyong
-     * @Description 根据车辆判断车辆当前是空车还是重车,0空,1
+     * @Description 根据车辆判断车辆当前是空车还是重车,false空,true
      * @Date  2022/4/25
      * @Param  
      * @return 

+ 28 - 0
src/main/java/com/aoyang/tms/service/WorkOrderService.java

@@ -24,6 +24,34 @@ import java.util.List;
  */
 public interface WorkOrderService extends IService<WorkOrder> {
 
+
+    /**
+     * @Author guoyong
+     * @Description 查询待执行装卸车运单
+     * @Date  2022/4/25
+     * @Param
+     * @return
+    **/
+    List<WorkOrder> findTodoOrderList(Long truckId, int orderType);
+
+    /**
+     * @return
+     * @Author guoyong
+     * @Description 查找最早分配的待执行的装卸车运单,
+     * @Date 2022/4/24
+     * @Param
+     **/
+    WorkOrder findFirstTodoOrder(Long truckId,int orderType);
+
+    /**
+     * @return
+     * @Author guoyong
+     * @Description 查询执行中的装卸车运单
+     * @Date 2022/4/24
+     * @Param
+     **/
+    WorkOrder findWorkingOrder(Long truckId,int orderType);
+
     /**
      * @return
      * @Author guoyong

+ 55 - 19
src/main/java/com/aoyang/tms/service/impl/WorkOrderServiceImpl.java

@@ -55,6 +55,43 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
     private WorkOrderReadinfoService workOrderReadinfoService;
 
     @Override
+    public List<WorkOrder> findTodoOrderList(Long truckId, int orderType) {
+        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<WorkOrder>();
+        queryWrapper.eq("truck_id", truckId);
+        queryWrapper.eq("type", orderType);
+        queryWrapper.eq("order_status", WorkOrderEnum.TODO.orderStatus());
+        //计划到达时间 由先及后 排序
+        queryWrapper.orderByAsc("plan_reach_time");
+        return workOrderMapper.selectList(queryWrapper);
+    }
+
+    @Override
+    public WorkOrder findFirstTodoOrder(Long truckId, int orderType) {
+        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<WorkOrder>();
+        queryWrapper.eq("truck_id", truckId);
+        queryWrapper.eq("type", orderType);
+        queryWrapper.eq("order_status", WorkOrderEnum.TODO.orderStatus());
+        //计划到达时间 由先及后 排序
+        queryWrapper.orderByAsc("plan_reach_time");
+        queryWrapper.last("limit 1");
+        return workOrderMapper.selectOne(queryWrapper);
+    }
+
+    @Override
+    public WorkOrder findWorkingOrder(Long truckId, int orderType) {
+        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<WorkOrder>();
+        queryWrapper.eq("truck_id", truckId);
+        queryWrapper.eq("type", orderType);
+        List<Integer> statusList = new ArrayList<>();
+        statusList.add(WorkOrderEnum.GOTO_ZHUANGCHE_SPOT.orderStatus());
+        statusList.add(WorkOrderEnum.GOTO_XIECHE_SPOT.orderStatus());
+        statusList.add(WorkOrderEnum.ZHUANGCHE_RESULT_SUBMIT.orderStatus());
+        queryWrapper.in("order_status", statusList);
+        queryWrapper.last("limit 1");
+        return workOrderMapper.selectOne(queryWrapper);
+    }
+
+    @Override
     public WorkOrder findLastWorkOrder(Long truckId) {
         QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<WorkOrder>();
         queryWrapper.eq("truck_id", truckId);
@@ -67,26 +104,25 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
     @Override
     public List<WorkOrderVO> findWorkOrderList(Long userId, WorkOrder workOrderParam) {
 
-        //先看空车重车
-        // 如果是空车,查找执行中的,有显示;如果没有,则查找第一个按照计划从早到晚的装车;
-        // 如果是重车,查找所有卸车单,从早到晚
+        List<WorkOrder> list = new ArrayList<>();
+        boolean zhongFlag = commonService.checkTruckZhong(workOrderParam.getTruckId());
+        // 如果当前车辆是空车,查找执行中的装车运单,有显示;如果没有,则查找第一个按照计划从早到晚的待执行装车;
+        if (!zhongFlag) {
+            WorkOrder workOrder = findWorkingOrder(workOrderParam.getTruckId(), 1);
+            if (workOrder == null) {
+                workOrder = findFirstTodoOrder(workOrderParam.getTruckId(), 1);
+            }
+
+            if (workOrder != null) {
+                list.add(workOrder);
+            }
+        }
+
+        // 如果当前车辆是重车,查找所有待执行卸车单
+        if (zhongFlag) {
+            list = findTodoOrderList(workOrderParam.getTruckId(), 2);
+        }
 
-        //查询执行中的装车运单
-        //查询执行中的卸车运单
-        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<WorkOrder>();
-        queryWrapper.eq("truck_id", workOrderParam.getTruckId());
-        List<Integer> statusList = new ArrayList<>();
-        statusList.add(WorkOrderEnum.TODO.orderStatus());
-        statusList.add(WorkOrderEnum.GOTO_ZHUANGCHE_SPOT.orderStatus());
-        statusList.add(WorkOrderEnum.GOTO_XIECHE_SPOT.orderStatus());
-        statusList.add(WorkOrderEnum.ZHUANGCHE_RESULT_SUBMIT.orderStatus());
-        statusList.add(WorkOrderEnum.XIECHE_RESULT_SUBMIT.orderStatus());
-        statusList.add(WorkOrderEnum.ZHUANGCHE_WAIT.orderStatus());
-        statusList.add(WorkOrderEnum.XIECHE_WAIT.orderStatus());
-        queryWrapper.in("order_status", statusList);
-        //计划到达时间 由先及后 排序
-        queryWrapper.orderByAsc("plan_reach_time");
-        List<WorkOrder> list = workOrderMapper.selectList(queryWrapper);
         List<WorkOrderVO> vos = new ArrayList<WorkOrderVO>();
         if (list != null && list.size() > 0) {
             for (WorkOrder workOrder : list) {