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