whycxzp
2023-01-12 b6b75f791dbc63a82918e537762d3f9b6b55ccd4
告警语音更新
11个文件已修改
190 ■■■■ 已修改文件
src/main/java/com/whyc/controller/VoiceController.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BattalarmDataMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/DevalarmDataMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/AlarmDataService.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattalarmDataService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/DevalarmDataService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/PwrdevAlarmService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattalarmDataMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/DevalarmDataMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/PwrdevAlarmMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/VoiceController.java
@@ -113,7 +113,8 @@
            alarmVoiceSetService.delete(nextTimeIntervalSet.getId());
        }else{ //默认5分钟
            addedTimeMillis = 5*60*1000;
            //addedTimeMillis = 5*60*1000;
            addedTimeMillis = 1*60*1000;
        }
        String readableVoiceTimeWithWavNew = currentTimeMillis+addedTimeMillis+".wav";
        //文件下次播放时间确定新的文件名
@@ -133,32 +134,7 @@
    @ApiOperation("查询用户目前可读的wav语音文件列表")
    @GetMapping("wavRead")
    public Response getWavRead(){
        UserInf user = ActionUtil.getUser();
        //获取绝对文件夹路径
        String readSuffixPath = "wav" + File.separator + "alarm" + File.separator + user.getUId() + File.separator;
        String readDirPath = CommonUtil.getRootFile() + readSuffixPath;
        File readDir = new File(readDirPath);
        //监控用户的告警,包含生成,内存信息更新
        alarmDataService.monitorAlarm(readDirPath);
        if(!readDir.exists()){
            return new Response().set(1,false,"无未读告警语音");
        }else{
            String[] arr = readDir.list();
            if(arr.length==0){
                return new Response().set(1,false,"无未读告警语音");
            }
            List<String> fileNameList = new LinkedList<>();
            for (String fileName : arr) {
                long currentTimeMillis = System.currentTimeMillis();
                long readableVoiceTime = Long.parseLong(fileName.substring(fileName.lastIndexOf("_") + 1, fileName.lastIndexOf(".")));
                //可播放时间<当前时间,输出播放
                if(readableVoiceTime<currentTimeMillis) {
                    fileName = "fg_file" + File.separator + readSuffixPath + File.separator + fileName;
                    fileNameList.add(fileName);
                }
            }
            return new Response().setII(1,true,fileNameList,null);
        }
        return alarmDataService.getWavRead();
    }
}
src/main/java/com/whyc/mapper/BattalarmDataMapper.java
@@ -55,7 +55,7 @@
    List<BattalarmData> getBattAlarm2();
    List<BattalarmData> getList(@Param("uId") Long userId);
    List<BattalarmData> getList(@Param("uId") Long userId, int type);
    //查询分级告警的个数
    int serchByLevel(@Param("alarmLevel") int alarmLevel, @Param("uId") int uId);
src/main/java/com/whyc/mapper/DevalarmDataMapper.java
@@ -22,7 +22,7 @@
    List<DevalarmData> getSendDevAlarm(@Param("uId") Integer uId);
    List<DevalarmData> getList(@Param("uId") Long userId);
    List<DevalarmData> getList(@Param("uId") Long userId, int type);
    //查询分级告警的个数
    int serchByLevel(@Param("alarmLevel") int alarmLevel, @Param("uId") int uId);
src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java
@@ -27,7 +27,7 @@
    //电源实时告警-首页foot
    List<PwrdevAlarm> getRealAlarmFoot(Date yesterday, int uId);
    List<PwrdevAlarm> getList(Long userId);
    List<PwrdevAlarm> getList(Long userId, int type);
    //查询分级告警的个数
    int serchByLevel(@Param("alarmLevel") int alarmLevel, @Param("uId") int uId, @Param("almTypes") List<Integer> almTypes);
src/main/java/com/whyc/service/AlarmDataService.java
@@ -46,7 +46,7 @@
    public Map<String, Object> getAlarmLevel1ListMap() {
        Long userId = ActionUtil.getUser().getUId();
        List<BattalarmData> battAlarmList = battAlarmDataService.getList(userId);
        List<BattalarmData> battAlarmList = battAlarmDataService.getList(userId,1);
        battAlarmList = battAlarmList.stream().filter(alarm->alarm.getAlmLevel().equals(1)).collect(Collectors.toList());
        for (BattalarmData adata : battAlarmList) {
@@ -54,11 +54,11 @@
            adata.setAlmLevelName(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()));
        }
        List<DevalarmData> devAlarmList = devAlarmDataService.getList(userId);
        List<DevalarmData> devAlarmList = devAlarmDataService.getList(userId,1);
        devAlarmList = devAlarmList.stream().filter(alarm->alarm.getAlmLevel().equals(1)).collect(Collectors.toList());
        List<PwrdevAlarm> powerAlarmList = pwrdevAlarmService.getList(userId);
        List<PwrdevAlarm> powerAlarmList = pwrdevAlarmService.getList(userId,1);
        powerAlarmList = powerAlarmList.stream().filter(alarm->alarm.getAlmLevel().equals(1)).collect(Collectors.toList());
        for (PwrdevAlarm p : powerAlarmList) {
@@ -334,4 +334,115 @@
            service.saveToWav(alarmMsg, dirPath + File.separator + System.currentTimeMillis() + ".wav");
        }*/
    }
    public Response getWavRead() {
        UserInf user = ActionUtil.getUser();
        //获取绝对文件夹路径
        String readSuffixPath = "wav" + File.separator + "alarm" + File.separator + user.getUId() + File.separator;
        String readDirPath = CommonUtil.getRootFile() + readSuffixPath;
        File readDir = new File(readDirPath);
        //监控用户的告警,包含生成,内存信息更新
        monitorAlarm(readDirPath);
        if(!readDir.exists()){
            return new Response().set(1,false,"无未读告警语音");
        }else{
            String[] arr = readDir.list();
            if(arr.length==0){
                return new Response().set(1,false,"无未读告警语音");
            }
            //检查这种告警是否消除,消除则删除告警语音
            List<String> battGroupFileNameList = new LinkedList<>();
            List<String> deviceFileNameList = new LinkedList<>();
            List<String> powerDeviceFileNameList = new LinkedList<>();
            for (String fileName : arr) {
                if(fileName.contains("batt")){
                    battGroupFileNameList.add(fileName);
                }else if(fileName.contains("device")){
                    deviceFileNameList.add(fileName);
                }else{
                    powerDeviceFileNameList.add(fileName);
                }
            }
            if(battGroupFileNameList.size()!=0){
                //查询电池告警是否消除
                List<BattalarmData> list = battAlarmDataService.getList(user.getUId(), 0);
                for (String battGroupFileName : battGroupFileNameList){
                    boolean exist = false;
                    for(BattalarmData temp : list){
                        String[] fileNameSplit = battGroupFileName.split("_");
                        long battGroupId = Long.parseLong(fileNameSplit[3]);
                        long alarmType = Long.parseLong(fileNameSplit[4]);
                        if(battGroupId == temp.getBattGroupId() && alarmType == temp.getAlmSignalId()){
                            exist = true;
                            break;
                        }
                    }
                    //如果存在,说明告警未消除
                    if(!exist){ //不存在,告警消除,删除告警文件
                        File deleteFile = new File(readDirPath + battGroupFileName);
                        deleteFile.delete();
                    }
                }
            }
            if(deviceFileNameList.size()!=0){
                //查询告警是否消除
                List<DevalarmData> list = devAlarmDataService.getList(user.getUId(), 0);
                for (String deviceFileName : deviceFileNameList){
                    boolean exist = false;
                    for(DevalarmData temp : list){
                        String[] fileNameSplit = deviceFileName.split("_");
                        long deviceId = Long.parseLong(fileNameSplit[3]);
                        long alarmType = Long.parseLong(fileNameSplit[4]);
                        if(deviceId == temp.getDevId() && alarmType == temp.getAlmType()){
                            exist = true;
                            break;
                        }
                    }
                    //如果存在,说明告警未消除
                    if(!exist){ //不存在,告警消除,删除告警文件
                        File deleteFile = new File(readDirPath + deviceFileName);
                        deleteFile.delete();
                    }
                }
            }
            if(powerDeviceFileNameList.size()!=0){
                //查询告警是否消除
                List<PwrdevAlarm> list = pwrdevAlarmService.getList(user.getUId(), 0);
                for (String powerDeviceFileName : powerDeviceFileNameList){
                    boolean exist = false;
                    for(PwrdevAlarm temp : list){
                        String[] fileNameSplit = powerDeviceFileName.split("_");
                        long powerDeviceId = Long.parseLong(fileNameSplit[3]);
                        long alarmType = Long.parseLong(fileNameSplit[4]);
                        if(powerDeviceId == temp.getPowerDeviceId() && alarmType == temp.getAlmType()){
                            exist = true;
                            break;
                        }
                    }
                    //如果存在,说明告警未消除
                    if(!exist){ //不存在,告警消除,删除告警文件
                        File deleteFile = new File(readDirPath + powerDeviceFileName);
                        deleteFile.delete();
                    }
                }
            }
            List<String> fileNameList = new LinkedList<>();
            for (String fileName : arr) {
                long currentTimeMillis = System.currentTimeMillis();
                long readableVoiceTime = Long.parseLong(fileName.substring(fileName.lastIndexOf("_") + 1, fileName.lastIndexOf(".")));
                //可播放时间<当前时间,输出播放
                if(readableVoiceTime<currentTimeMillis) {
                    fileName = "fg_file" + File.separator + readSuffixPath + File.separator + fileName;
                    fileNameList.add(fileName);
                }
            }
            if(fileNameList.size()==0){
                return new Response().set(1,false,"无未读告警语音");
            }
            return new Response().setII(1,true,fileNameList,null);
        }
    }
}
src/main/java/com/whyc/service/BattalarmDataService.java
@@ -63,8 +63,13 @@
        return new Response<List<BattMaintDealarm>>().set(1,list,String.valueOf(pinfo.getPages()));
    }
    public List<BattalarmData> getList(Long userId){
        return mapper.getList(userId);
    /**
     * @param userId
     * @param type 1,查询24小时内;0,查询所有
     * @return
     */
    public List<BattalarmData> getList(Long userId,int type){
        return mapper.getList(userId,type);
    }
    //电池告警实时查询
    public Response serchByCondition(AlarmPar par) {
src/main/java/com/whyc/service/DevalarmDataService.java
@@ -92,8 +92,14 @@
        return new Response().set(1, devAlarmNum);
    }
    public List<DevalarmData> getList(Long userId) {
        return mapper.getList(userId);
    /**
     *
     * @param userId
     * @param type 1,查询24小时内;0,查询所有
     * @return
     */
    public List<DevalarmData> getList(Long userId, int type) {
        return mapper.getList(userId,type);
    }
src/main/java/com/whyc/service/PwrdevAlarmService.java
@@ -194,8 +194,14 @@
        return new Response().set(1, pageInfo);
    }
    public List<PwrdevAlarm> getList(Long userId) {
        return mapper.getList(userId);
    /**
     *
     * @param userId
     * @param type 1,查询24小时内;0,查询所有
     * @return
     */
    public List<PwrdevAlarm> getList(Long userId, int type) {
        return mapper.getList(userId,type);
    }
    //查询分级告警的个数
src/main/resources/mapper/BattalarmDataMapper.xml
@@ -320,7 +320,9 @@
        where alm_cleared_type = 0
          and alm_is_confirmed = 0
          and alm_id = 119001
          and DATEDIFF(alm_start_time, NOW()) = 0
          <if test="type==1">
              and DATEDIFF(alm_start_time, NOW()) = 0
          </if>
          and db_alarm.tb_battalarm_data.battgroupid = db_battinf.tb_battinf.battgroupid
          and db_alarm.tb_battalarm_data.BattGroupId in (select distinct db_battinf.tb_battinf.battgroupid
                                                         from db_battinf.tb_battinf,
src/main/resources/mapper/DevalarmDataMapper.xml
@@ -163,7 +163,9 @@
        where alm_cleared_type = 0
          and alm_is_confirmed = 0
          and alm_type = 119020
          <if test="type==1">
          and DATEDIFF(alm_start_time, NOW()) = 0
          </if>
          and db_alarm.tb_devalarm_data.dev_id = db_battinf.tb_battinf.fbsdeviceid
          and db_alarm.tb_devalarm_data.dev_id in (select distinct db_battinf.tb_battinf.FbsDeviceId
                                                   from db_battinf.tb_battinf,
src/main/resources/mapper/PwrdevAlarmMapper.xml
@@ -203,7 +203,9 @@
            alarm.PowerDeviceId = inf.PowerDeviceId
            and alarm.alm_cleared_type=0
            and alarm.alm_is_confirmed = 0
            <if test="type==1">
            and DATEDIFF(alm_start_time,NOW())=0
            </if>
            and alarm.alm_type in (110121,110122,110010)
            and inf.StationId in ( select distinct inf.StationId from
            (select StationId from db_battinf.tb_battinf union select StationId from db_pwrdev_inf.tb_pwrdev_inf ) inf,