From be91e24a735423f45361c9aea5eb45bb14065aa2 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期三, 24 一月 2024 15:04:22 +0800
Subject: [PATCH] 位置共享审批提交

---
 ard-work/src/main/java/com/ruoyi/app/application/controller/ArdAppApplicationController.java    |   13 ++++++
 ard-work/src/main/java/com/ruoyi/app/application/mapper/ArdAppApplicationMapper.java            |    3 +
 ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java |   56 ++++++++++++++++++++++++++--
 ard-work/src/main/java/com/ruoyi/app/application/service/IArdAppApplicationService.java         |    2 +
 ard-work/src/main/resources/mapper/app/ArdAppApplicationMapper.xml                              |    5 ++
 5 files changed, 75 insertions(+), 4 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/app/application/controller/ArdAppApplicationController.java b/ard-work/src/main/java/com/ruoyi/app/application/controller/ArdAppApplicationController.java
index f4b7176..61de069 100644
--- a/ard-work/src/main/java/com/ruoyi/app/application/controller/ArdAppApplicationController.java
+++ b/ard-work/src/main/java/com/ruoyi/app/application/controller/ArdAppApplicationController.java
@@ -144,4 +144,17 @@
             return AjaxResult.error();
         }
     }
+
+    @PutMapping("/approvalCheckPosition")
+    @ApiOperation("鎸囨尌绔鎵圭敵璇�")
+    public AjaxResult approvalCheckPosition(@RequestBody Map<String,String> para) {
+        String commanderId = SecurityUtils.getUserId();
+        try{
+            int result = ardAppApplicationService.approvalCheckPosition(commanderId,para);
+            return result > 0 ? AjaxResult.success() : AjaxResult.error();
+        }catch(Exception e){
+            e.printStackTrace();
+            return AjaxResult.error();
+        }
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/application/mapper/ArdAppApplicationMapper.java b/ard-work/src/main/java/com/ruoyi/app/application/mapper/ArdAppApplicationMapper.java
index 91cf3fd..5021020 100644
--- a/ard-work/src/main/java/com/ruoyi/app/application/mapper/ArdAppApplicationMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/app/application/mapper/ArdAppApplicationMapper.java
@@ -67,4 +67,7 @@
     public int updateArdAppApplicationByCommanderIdAndSoilderIdAndType(ArdAppApplication ardAppApplication);
 
     public List<Map<String,Object>> selectArdAppApplicationByCommanderId(String usersId);
+
+    public int updateArdAppApplicationBeginByCommanderIdAndSoilderIdAndType(@Param("commanderId")String commanderId,@Param("soilderId")String soilderId,
+                                                                            @Param("applicationType")String applicationType,@Param("begin")String begin,@Param("state")String state);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/application/service/IArdAppApplicationService.java b/ard-work/src/main/java/com/ruoyi/app/application/service/IArdAppApplicationService.java
index 6de1315..27400e1 100644
--- a/ard-work/src/main/java/com/ruoyi/app/application/service/IArdAppApplicationService.java
+++ b/ard-work/src/main/java/com/ruoyi/app/application/service/IArdAppApplicationService.java
@@ -66,4 +66,6 @@
     public int sendCheckSYCarsPosition(String usersId, Map<String,Object> para);
 
     public Map<String,List<Map<String,Object>>> getCheckPosition(String usersId);
+
+    public int approvalCheckPosition(String commanderId,Map<String,String> para);
 }
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 85ecd11..562aa77 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
@@ -1,15 +1,12 @@
 package com.ruoyi.app.application.service.impl;
 
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 
 import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.Map;
 
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -29,6 +26,8 @@
 public class ArdAppApplicationServiceImpl implements IArdAppApplicationService {
     @Resource
     private ArdAppApplicationMapper ardAppApplicationMapper;
+
+    private Map<String,Thread> threadMap = new HashMap();
 
     /**
      * 鏌ヨ鍗曞叺绔敵璇锋煡鐪嬫寚鎸ョ浣嶇疆鎴栦笁涓�杞﹁締浣嶇疆
@@ -166,4 +165,53 @@
         result.put("SYCars",resultSYCarsPosition);
         return result;
     }
+
+    @Override
+    public int approvalCheckPosition(String commanderId, Map<String, String> para) {
+        String applicationType = para.get("applicationType");
+        String soilderId = para.get("soilderId");
+        String state = para.get("state");
+        String begin = "";
+        if(state.equals("1")){//state涓�1锛屽嵆鍚屾剰
+            begin = String.valueOf(new Date().getTime());//璁剧疆寮�濮嬫椂闂�
+            int result = ardAppApplicationMapper.updateArdAppApplicationBeginByCommanderIdAndSoilderIdAndType(commanderId,soilderId,applicationType,begin,state);
+            String key = commanderId + "," + soilderId + "," + applicationType;
+            Thread thread = new Thread(key){//鍒涘缓绾跨▼璁℃椂24灏忔椂
+                @Override
+                public void run() {
+                    try {
+                        Thread.sleep(24*60*60*1000);
+                        //Thread.sleep(3*60*1000);
+                    } 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);
+            return result;
+        }else if(state.equals("-1")){//state涓�1锛屽嵆椹冲洖
+            int result = ardAppApplicationMapper.updateArdAppApplicationBeginByCommanderIdAndSoilderIdAndType(commanderId,soilderId,applicationType,"",state);
+            return result;
+        }else if(state.equals("00")){//state涓�00锛屽嵆鎾ら攢
+            String key = commanderId + "," + soilderId + "," + applicationType;
+            try{
+                this.threadMap.get(key).interrupt();//鎾ら攢鍚庣嚎绋嬮攢姣�
+            }catch(Exception e){
+                e.printStackTrace();
+            }
+            this.threadMap.remove(key);
+            int result = ardAppApplicationMapper.updateArdAppApplicationBeginByCommanderIdAndSoilderIdAndType(commanderId,soilderId,applicationType,"",state);
+            return result;
+        }
+        return 0;
+    }
 }
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppApplicationMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppApplicationMapper.xml
index 61d99d9..1348a19 100644
--- a/ard-work/src/main/resources/mapper/app/ArdAppApplicationMapper.xml
+++ b/ard-work/src/main/resources/mapper/app/ArdAppApplicationMapper.xml
@@ -104,4 +104,9 @@
         inner join sys_user su on aaa.soilder_id = su.user_id
         where commander_id = #{usersId} and state = '0'
     </select>
+
+    <update id="updateArdAppApplicationBeginByCommanderIdAndSoilderIdAndType" parameterType="java.lang.String">
+        update ard_app_application set begin = #{begin},state = #{state}
+        where commander_id = #{commanderId} and soilder_id = #{soilderId} and application_type = #{applicationType}
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3