From a07a063b9e2fbe1ea41b520274dd9821af5ee03a Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 17 十月 2025 15:46:05 +0800
Subject: [PATCH] 添加修改司机状态的定时任务

---
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
index 6c67778..b23c202 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -1,12 +1,21 @@
 package com.stylefeng.guns.modular.system.util;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.dao.DriverWorkMapper;
+import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.model.DriverWork;
 import com.stylefeng.guns.modular.system.service.IDriverService;
+import com.stylefeng.guns.modular.system.service.IDriverWorkService;
 import com.stylefeng.guns.modular.system.service.IOrderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.util.Arrays;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 
@@ -26,8 +35,14 @@
     private JGPushUtil jgPushUtil;
 
     public Set<Integer> driverIds = new HashSet<>();//存储需要提醒司机预约单的司机id
+    @Autowired
+    private DriverWorkMapper driverWorkMapper;
 
+    @Autowired
+    private IDriverWorkService driverWorkService;
 
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
 
 
     /**
@@ -36,6 +51,7 @@
     @Scheduled(fixedRate = 1000 * 60)
     public void taskMinute(){
         try {
+
             //修改满足活动条件的数据(在线时长,订单量)
 //            driverService.taskMinute();
 //            处理车载端断电后的自动下班
@@ -53,6 +69,7 @@
     @Scheduled(fixedRate = 1000 * 60)
     public void taskMinute2(){
         try {
+            updateDriverState();
             //处于预约单
             orderService.reservationOrder();
         } catch (Exception e) {
@@ -108,4 +125,42 @@
 //            e.printStackTrace();
 //        }
 //    }
+
+
+
+
+    private void updateDriverState(){
+        List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("authState", 2).ne("flag", 3));
+        for (Driver driver : drivers) {
+            Integer state = driver.getState();
+            int driverWork = driverWorkService.selectCount(new EntityWrapper<DriverWork>().eq("driverId", driver.getId()).eq("state", 1));
+            int count = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driver.getId())
+                    .in("state", Arrays.asList(2, 3, 4, 5, 11)).eq("isDelete", 1).last(" and (orderType = 1 or (orderType = 2 and UNIX_TIMESTAMP(travelTime) - UNIX_TIMESTAMP(NOW()) < 1800))"));
+            if(1 == state){
+                if(count > 0){
+                    driver.setState(3);
+                } else if (count == 0 && driverWork > 0) {
+                    driver.setState(2);
+                }
+            }
+            if(2 == state){
+                if(count > 0){
+                    driver.setState(3);
+                } else if (0 == driverWork) {
+                    driver.setState(1);
+                }
+            }
+            if(3 == state){
+                if(count == 0 && driverWork > 0){
+                    driver.setState(2);
+                }
+                if (count == 0 && 0 == driverWork) {
+                    driver.setState(1);
+                }
+            }
+        }
+        if(!drivers.isEmpty()){
+            driverService.updateBatchById(drivers);
+        }
+    }
 }

--
Gitblit v1.7.1