From 5470d21a35286abe41fafc25a7deaabefd7c55da Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期二, 28 五月 2024 14:30:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java | 76 +++++++++++++++++++++++++++++++++++++- 1 files changed, 74 insertions(+), 2 deletions(-) diff --git a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java index 0dae0a9..25298a0 100644 --- a/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java +++ b/DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java @@ -1,13 +1,19 @@ package com.stylefeng.guns.modular.system.util; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +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.model.TSysFaceDistinguish; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IOrderService; +import com.stylefeng.guns.modular.system.service.ITSysFaceDistinguishService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import java.util.HashSet; -import java.util.Set; +import javax.annotation.Resource; +import java.util.*; /** @@ -24,10 +30,76 @@ @Autowired private JGPushUtil jgPushUtil; + @Resource + private DriverWorkMapper driverWorkMapper; + + @Autowired + private ITSysFaceDistinguishService faceDistinguishService; + + @Autowired + private PushUtil pushUtil; + + public Set<Integer> driverIds = new HashSet<>();//存储需要提醒司机预约单的司机id + //每隔一分钟去检测司机人脸 + @Scheduled(fixedRate = 1000 * 60) + public void driverFace(){ + //拿到后台配置的人脸识别配置 + TSysFaceDistinguish tSysFaceDistinguish = faceDistinguishService.selectOne(null); + //如果是关闭就结束 + if (tSysFaceDistinguish.getIsOpen()==2){ + return; + } + System.err.println("================正在进行人脸识别任务"); + //获取上线司机的ids + List<DriverWork> driverIds = driverWorkMapper.selectList(new EntityWrapper<DriverWork>().eq("state", 1)); + //判断司机是否有正在进行中的订单,获取闲置司机id + List<Integer> drivers = new ArrayList<>(); + for (DriverWork driverWork : driverIds) { + try { + List<Map<String, Object>> list = orderService.queryOrderList(1, 1, 10, driverWork.getDriverId()); + if(list.isEmpty()){ + drivers.add(driverWork.getDriverId()); + } + }catch (Exception e){ + e.printStackTrace(); + } + } + //从后台获取人脸识别的配置,比对最后一次打卡时间后进行socket推送 + List<Integer> pullDrivers = new ArrayList<>(); + + List<Driver> todrivers = driverService.selectBatchIds(drivers); + Date now = new Date(); + for (Driver todriver : todrivers) { + if (todriver.getLastFacialTime()==null){ + pullDrivers.add(todriver.getId()); + continue; + } + Date lastFacialTime = todriver.getLastFacialTime(); + // 创建一个Calendar实例并设置为给定的日期 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(lastFacialTime); + + // 增加2分钟 + calendar.add(Calendar.MINUTE, 2); + Date updatedDate = calendar.getTime(); + int compareResult = now.compareTo(updatedDate); + if (compareResult >= 0) { + pullDrivers.add(todriver.getId()); + } + } + + if (!pullDrivers.isEmpty()){ + for (Integer pullDriver : pullDrivers) { + pushUtil.pushFaceTime(2,pullDriver); + } + } + + + } /** -- Gitblit v1.7.1