zhangnaisong
2024-01-24 be91e24a735423f45361c9aea5eb45bb14065aa2
位置共享审批提交
已修改5个文件
79 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/app/application/controller/ArdAppApplicationController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/application/mapper/ArdAppApplicationMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/application/service/IArdAppApplicationService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/application/service/impl/ArdAppApplicationServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/app/ArdAppApplicationMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
        }
    }
}
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);
}
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);
}
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;
    }
}
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>