From 15a51e0af4a4864fcf30ebd927864147e278181a Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期三, 24 一月 2024 16:29:54 +0800
Subject: [PATCH] 指挥端查看通过的位置共享审批提交

---
 ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java |   79 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 1 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java
index 562aa77..14f8653 100644
--- a/ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java
@@ -14,6 +14,7 @@
 import com.ruoyi.app.application.domain.ArdAppApplication;
 import com.ruoyi.app.application.service.IArdAppApplicationService;
 
+import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 
 /**
@@ -28,6 +29,48 @@
     private ArdAppApplicationMapper ardAppApplicationMapper;
 
     private Map<String,Thread> threadMap = new HashMap();
+
+    @PostConstruct
+    public void init(){
+        ArdAppApplication para = new ArdAppApplication();
+        para.setState("1");//鏌ヨ鍚屾剰鐨勭敵璇�
+        List<ArdAppApplication> ardAppApplicationList = ardAppApplicationMapper.selectArdAppApplicationList(para);
+        Date date = new Date();
+        Long now = date.getTime();
+        for(ArdAppApplication ardAppApplication : ardAppApplicationList){
+            Long begin = Long.parseLong(ardAppApplication.getBegin());
+            //鍒ゆ柇鏄惁瓒呮椂
+            if(now - begin <= 24*60*60*1000){//鏈秴鏃朵粠鏂板垱寤虹嚎绋�
+                String key = ardAppApplication.getCommanderId() + "," + ardAppApplication.getSoilderId() + "," + ardAppApplication.getApplicationType();
+                Thread thread = new Thread(key){//鍒涘缓绾跨▼璁℃椂鍓╀綑鏃堕暱
+                    @Override
+                    public void run() {
+                        try {
+                            Thread.sleep(24*60*60*1000 - (now - begin));//鍓╀綑鏃堕暱
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                            return;
+                        }
+                        Thread currentThread = Thread.currentThread();
+                        String state = "000";//state涓�000锛屽嵆瓒呮椂
+                        String commanderId = currentThread.getName().split(",")[0];
+                        String soilderId = currentThread.getName().split(",")[1];
+                        String applicationType = currentThread.getName().split(",")[2];
+                        int result = ardAppApplicationMapper.updateArdAppApplicationBeginByCommanderIdAndSoilderIdAndType(commanderId,soilderId,applicationType,"",state);
+                        threadMap.remove(currentThread.getName());
+                    }
+                };
+                thread.start();
+                this.threadMap.put(key,thread);
+            }else{//瓒呮椂鏇存敼鐘舵��
+                String state = "000";//state涓�000锛屽嵆瓒呮椂
+                String commanderId = ardAppApplication.getCommanderId();
+                String soilderId = ardAppApplication.getSoilderId();
+                String applicationType = ardAppApplication.getApplicationType();
+                int result = ardAppApplicationMapper.updateArdAppApplicationBeginByCommanderIdAndSoilderIdAndType(commanderId,soilderId,applicationType,"",state);
+            }
+        }
+    }
 
     /**
      * 鏌ヨ鍗曞叺绔敵璇锋煡鐪嬫寚鎸ョ浣嶇疆鎴栦笁涓�杞﹁締浣嶇疆
@@ -146,8 +189,8 @@
     @Override
     public Map<String, List<Map<String, Object>>> getCheckPosition(String usersId) {
         Map<String, List<Map<String, Object>>> result = new HashMap();
-        //鏌ョ湅鎸囨尌绔綅缃敵璇�
         List<Map<String,Object>> ardAppApplicationList = ardAppApplicationMapper.selectArdAppApplicationByCommanderId(usersId);
+        //鏌ョ湅鎸囨尌绔綅缃敵璇�
         List<Map<String, Object>> resultCommanderPosition = new ArrayList();
         for(Map<String, Object> map : ardAppApplicationList){
             if(((String)map.get("applicationType")).equals("Commander")){
@@ -214,4 +257,38 @@
         }
         return 0;
     }
+
+    @Override
+    public Map<String, List<Map<String, Object>>> getCheckPositionTrue(String commanderId) {
+        Map<String, List<Map<String, Object>>> result = new HashMap();
+        List<Map<String,Object>> ardAppApplicationList = ardAppApplicationMapper.selectArdAppApplicationByCommanderIdTrue(commanderId);
+        Date date = new Date();
+        //鏌ョ湅鎸囨尌绔綅缃敵璇�
+        List<Map<String, Object>> resultCommanderPosition = new ArrayList();
+        for(Map<String, Object> map : ardAppApplicationList){
+            Long interval = date.getTime() - Long.parseLong((String)map.get("begin"));
+            interval = 24 * 60 * 60 * 1000 - interval;
+            Long hour = interval / (60 * 60 * 1000);
+            Long min = (interval - hour * 60 * 60 * 1000) / (60 * 1000);
+            map.put("time",hour + "鏃�" + min + "鍒�");
+            if(((String)map.get("applicationType")).equals("Commander")){
+                resultCommanderPosition.add(map);
+            }
+        }
+        //鏌ョ湅杞﹁締浣嶇疆鐢宠
+        List<Map<String, Object>> resultSYCarsPosition = new ArrayList();
+        for(Map<String, Object> map : ardAppApplicationList){
+            Long interval = date.getTime() - Long.parseLong((String)map.get("begin"));
+            interval = 24 * 60 * 60 * 1000 - interval;
+            Long hour = interval / (60 * 60 * 1000);
+            Long min = (interval - hour * 60 * 60 * 1000) / (60 * 1000);
+            map.put("time",hour + "鏃�" + min + "鍒�");
+            if(((String)map.get("applicationType")).equals("SYCar")){
+                resultSYCarsPosition.add(map);
+            }
+        }
+        result.put("commander",resultCommanderPosition);
+        result.put("SYCars",resultSYCarsPosition);
+        return result;
+    }
 }

--
Gitblit v1.9.3