zhangnaisong
2024-01-24 15a51e0af4a4864fcf30ebd927864147e278181a
指挥端查看通过的位置共享审批提交
已修改5个文件
104 ■■■■■ 文件已修改
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 2 ●●●●● 补丁 | 查看 | 原始文档 | 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 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/app/ArdAppApplicationMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/app/application/controller/ArdAppApplicationController.java
@@ -157,4 +157,17 @@
            return AjaxResult.error();
        }
    }
    @GetMapping("/getCheckPositionTrue")
    @ApiOperation("指挥端查看通过的申请")
    public AjaxResult getCheckPositionTrue() {
        String commanderId = SecurityUtils.getUserId();
        try{
            Map<String,List<Map<String,Object>>> result = ardAppApplicationService.getCheckPositionTrue(commanderId);
            return AjaxResult.success(result);
        }catch(Exception e){
            e.printStackTrace();
            return AjaxResult.error();
        }
    }
}
ard-work/src/main/java/com/ruoyi/app/application/mapper/ArdAppApplicationMapper.java
@@ -70,4 +70,6 @@
    public int updateArdAppApplicationBeginByCommanderIdAndSoilderIdAndType(@Param("commanderId")String commanderId,@Param("soilderId")String soilderId,
                                                                            @Param("applicationType")String applicationType,@Param("begin")String begin,@Param("state")String state);
    public List<Map<String,Object>> selectArdAppApplicationByCommanderIdTrue(String commanderId);
}
ard-work/src/main/java/com/ruoyi/app/application/service/IArdAppApplicationService.java
@@ -68,4 +68,6 @@
    public Map<String,List<Map<String,Object>>> getCheckPosition(String usersId);
    public int approvalCheckPosition(String commanderId,Map<String,String> para);
    public Map<String,List<Map<String,Object>>> getCheckPositionTrue(String commanderId);
}
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;
    }
}
ard-work/src/main/resources/mapper/app/ArdAppApplicationMapper.xml
@@ -109,4 +109,12 @@
        update ard_app_application set begin = #{begin},state = #{state}
        where commander_id = #{commanderId} and soilder_id = #{soilderId} and application_type = #{applicationType}
    </update>
    <select id="selectArdAppApplicationByCommanderIdTrue" parameterType="java.lang.String" resultType="java.util.Map">
        select aaa.soilder_id as "soilderId",aaa.commander_id as "commanderId",
        aaa.reason,aaa.begin,aaa.state,aaa.application_type as "applicationType",
        su.user_name as "userName",su.nick_name as "nickName" from ard_app_application aaa
        inner join sys_user su on aaa.soilder_id = su.user_id
        where commander_id = #{usersId} and state = '1'
    </select>
</mapper>