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