From b6b75f791dbc63a82918e537762d3f9b6b55ccd4 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期四, 12 一月 2023 17:11:13 +0800
Subject: [PATCH] 告警语音更新

---
 src/main/java/com/whyc/service/AlarmDataService.java |  117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 114 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/whyc/service/AlarmDataService.java b/src/main/java/com/whyc/service/AlarmDataService.java
index 1055d58..143eef8 100644
--- a/src/main/java/com/whyc/service/AlarmDataService.java
+++ b/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);
+        }
+    }
 }

--
Gitblit v1.9.1