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/test/java/com/stylefeng/guns/GunsApplicationTest.java          |   26 +++++++++++++
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java |   55 +++++++++++++++++++++++++++
 DriverZYTravel/guns-admin/src/main/resources/application.yml                                 |    4 +-
 3 files changed, 83 insertions(+), 2 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);
+        }
+    }
 }
diff --git a/DriverZYTravel/guns-admin/src/main/resources/application.yml b/DriverZYTravel/guns-admin/src/main/resources/application.yml
index af0c066..01738fd 100644
--- a/DriverZYTravel/guns-admin/src/main/resources/application.yml
+++ b/DriverZYTravel/guns-admin/src/main/resources/application.yml
@@ -55,8 +55,8 @@
   datasource:
     url: jdbc:mysql://localhost:3306/zytravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
-#    password: 0KiwEhl6EnIFWNqB7d1FJLWKy9urjvMS
-    password: 123456
+    password: 0KiwEhl6EnIFWNqB7d1FJLWKy9urjvMS
+#    password: 123456
     db-name: guns #用来搜集数据库的所有表
     filters: wall,mergeStat
 
diff --git a/DriverZYTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java b/DriverZYTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
new file mode 100644
index 0000000..14a65f7
--- /dev/null
+++ b/DriverZYTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -0,0 +1,26 @@
+//package com.stylefeng.guns;
+//
+//
+//import com.stylefeng.guns.modular.system.util.GDFalconUtil;
+//import org.junit.Test;
+//import org.junit.runner.RunWith;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.boot.test.context.SpringBootTest;
+//import org.springframework.test.context.junit4.SpringRunner;
+//
+//@RunWith(SpringRunner.class)
+//@SpringBootTest
+//public class GunsApplicationTest {
+//
+//    @Autowired
+//    private GDFalconUtil gdFalconUtil;
+//
+//
+//
+//    @Test
+//    public void test(){
+//        String tid = gdFalconUtil.selectTerminal("15198590535");
+//        String result = gdFalconUtil.selectTrack(tid, "70039",1);
+//        System.err.println(result);
+//    }
+//}

--
Gitblit v1.7.1