From 3919d59dacc6ed443feb9a60e567cf51a3014bb4 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期三, 16 十一月 2022 17:27:43 +0800
Subject: [PATCH] 更新

---
 src/main/java/com/whyc/service/AlarmDataService.java |  153 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 96 insertions(+), 57 deletions(-)

diff --git a/src/main/java/com/whyc/service/AlarmDataService.java b/src/main/java/com/whyc/service/AlarmDataService.java
index eba3aff..4e2b25c 100644
--- a/src/main/java/com/whyc/service/AlarmDataService.java
+++ b/src/main/java/com/whyc/service/AlarmDataService.java
@@ -1,6 +1,7 @@
 package com.whyc.service;
 
 import com.whyc.dto.AlarmDaoFactory;
+import com.whyc.dto.Response;
 import com.whyc.mapper.BattalarmDataMapper;
 import com.whyc.mapper.DevalarmDataMapper;
 import com.whyc.pojo.*;
@@ -9,7 +10,9 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import javax.servlet.ServletContext;
 import javax.servlet.http.HttpSession;
+import java.io.File;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -35,6 +38,9 @@
 
     @Autowired
     private PwrdevAlarmService pwrdevAlarmService;
+
+    @Autowired
+    private MSTTSSpeechService service;
 
 
     public Map<String, Object> getAlarmLevel1ListMap() {
@@ -79,79 +85,88 @@
 
     }
 
-    public List<String> getAlarmMsgList() {
+    public void saveToWav(String unreadDirPath) {
         Long uId = ActionUtil.getUser().getUId();
-        HttpSession session = ActionUtil.getSession();
+        ServletContext application = ActionUtil.getApplication();
         //鐢ㄦ埛
-        Map<String,Object> alarmMap = (Map<String, Object>) session.getAttribute("alarmMap_" + uId);
+        Map<String,Object> alarmMap = (Map<String, Object>) application.getAttribute("alarmMap_" + uId);
         Map<String, Object> alarmMapNow = getAlarmLevel1ListMap();
 
         List<BattalarmData> battAlarmListNow = (List<BattalarmData>) alarmMapNow.get("battAlarmList");
         List<DevalarmData> devAlarmListNow = (List<DevalarmData>) alarmMapNow.get("devAlarmList");
         List<PwrdevAlarm> powerAlarmListNow = (List<PwrdevAlarm>) alarmMapNow.get("powerAlarmList");
         if(alarmMap==null){
-            //涓嶅瓨鍦�,鎻掑叆鍐呭瓨
-            session.setAttribute("alarmMap_" + uId,alarmMapNow);
+            //涓嶅瓨鍦�,鎻掑叆搴旂敤鍐呭瓨
+            application.setAttribute("alarmMap_" + uId,alarmMapNow);
             //杩斿洖鍐呭鏍煎紡澶勭悊,骞跺瓨涓鸿闊�
-            return formatResultAndSaveToWav(battAlarmListNow,devAlarmListNow,powerAlarmListNow);
-        }
-        //鑾峰彇鏂板鐨�
-        List<BattalarmData> battAlarmList = (List<BattalarmData>) alarmMap.get("battAlarmList");
-        List<DevalarmData> devAlarmList = (List<DevalarmData>) alarmMap.get("devAlarmList");
-        List<PwrdevAlarm> powerAlarmList = (List<PwrdevAlarm>) alarmMap.get("powerAlarmList");
+            formatResultAndSaveToWav(unreadDirPath,battAlarmListNow,devAlarmListNow,powerAlarmListNow);
+        }else {
+            //鑾峰彇鏂板鐨�
+            List<BattalarmData> battAlarmList = (List<BattalarmData>) alarmMap.get("battAlarmList");
+            List<DevalarmData> devAlarmList = (List<DevalarmData>) alarmMap.get("devAlarmList");
+            List<PwrdevAlarm> powerAlarmList = (List<PwrdevAlarm>) alarmMap.get("powerAlarmList");
 
-        List<BattalarmData> battAlarmListAdded = new LinkedList<>();
+            List<BattalarmData> battAlarmListAdded = new LinkedList<>();
 
-        List<DevalarmData> devAlarmListAdded = new LinkedList<>();
+            List<DevalarmData> devAlarmListAdded = new LinkedList<>();
 
-        List<PwrdevAlarm> powerAlarmListAdded = new LinkedList<>();
-        //鐢垫睜缁勫憡璀﹀鍔�
-        for (BattalarmData now : battAlarmListNow) {
-            long num = now.getNum();
-            boolean exist = false;
-            for (BattalarmData old : battAlarmList) {
-                if (old.getNum() == num) {
-                    exist = true;
-                    break;
+            List<PwrdevAlarm> powerAlarmListAdded = new LinkedList<>();
+            //鐢垫睜缁勫憡璀﹀鍔�
+            for (BattalarmData now : battAlarmListNow) {
+                long num = now.getNum();
+                boolean exist = false;
+                for (BattalarmData old : battAlarmList) {
+                    if (old.getNum() == num) {
+                        exist = true;
+                        break;
+                    }
                 }
-            }
-            if (!exist) {
-                battAlarmListAdded.add(now);
-            }
-
-        }
-        //璁惧鍛婅澧炲姞
-        for (DevalarmData now : devAlarmListNow) {
-            long num = now.getNum();
-            boolean exist = false;
-            for (DevalarmData old : devAlarmList) {
-                if (old.getNum() == num) {
-                    exist = true;
-                    break;
+                if (!exist) {
+                    battAlarmListAdded.add(now);
                 }
-            }
-            if (!exist) {
-                devAlarmListAdded.add(now);
-            }
 
-        }
-        //鐢垫簮鍛婅澧炲姞
-        for (PwrdevAlarm now : powerAlarmListNow) {
-            long num = now.getNum();
-            boolean exist = false;
-            for (PwrdevAlarm old : powerAlarmList) {
-                if (old.getNum() == num) {
-                    exist = true;
-                    break;
+            }
+            //璁惧鍛婅澧炲姞
+            for (DevalarmData now : devAlarmListNow) {
+                long num = now.getNum();
+                boolean exist = false;
+                for (DevalarmData old : devAlarmList) {
+                    if (old.getNum() == num) {
+                        exist = true;
+                        break;
+                    }
                 }
+                if (!exist) {
+                    devAlarmListAdded.add(now);
+                }
+
             }
-            if (!exist) {
-                powerAlarmListAdded.add(now);
+            //鐢垫簮鍛婅澧炲姞
+            for (PwrdevAlarm now : powerAlarmListNow) {
+                long num = now.getNum();
+                boolean exist = false;
+                for (PwrdevAlarm old : powerAlarmList) {
+                    if (old.getNum() == num) {
+                        exist = true;
+                        break;
+                    }
+                }
+                if (!exist) {
+                    powerAlarmListAdded.add(now);
+                }
+
             }
 
+            if (battAlarmListAdded.size() != 0
+                    || devAlarmListAdded.size() != 0
+                    || powerAlarmListAdded.size() != 0
+            ) {
+                //鏈変换浣曞彉鍔紝鏇存柊鏃х殑鍛婅鍒楄〃
+                application.setAttribute("alarmMap_" + uId, alarmMapNow);
+            }
+
+            formatResultAndSaveToWav(unreadDirPath,battAlarmListAdded, devAlarmListAdded, powerAlarmListAdded);
         }
-
-        return formatResultAndSaveToWav(battAlarmListAdded, devAlarmListAdded, powerAlarmListAdded);
     }
 
     /**
@@ -165,10 +180,34 @@
      * @param powerAlarmList
      * @return
      */
-    private List<String> formatResultAndSaveToWav(List<BattalarmData> battAlarmList,
-                                                  List<DevalarmData> devAlarmList,
-                                                  List<PwrdevAlarm> powerAlarmList) {
+    private void formatResultAndSaveToWav(String unreadDirPath,
+                                          List<BattalarmData> battAlarmList,
+                                          List<DevalarmData> devAlarmList,
+                                          List<PwrdevAlarm> powerAlarmList) {
 
-        return null;
+        StringBuilder alarmMsgBuilder = new StringBuilder();
+        for (BattalarmData alarm : battAlarmList) {
+            String alarmName = AlarmDaoFactory.getAllAlarmName(alarm.getAlmSignalId());
+            alarmMsgBuilder.append(alarm.getStationName()).append(",鐢垫睜缁勭紪鍙蜂负").append(alarm.getBattgroupname()).append(",鍗曚綋涓�").append(alarm.getMonNum()).append(",鍦�").append(alarm.getAlmStartTime()).append("鍙戠敓浜�").append(alarmName).append("鍛婅;");
+        }
+        for (DevalarmData alarm : devAlarmList) {
+            String alarmName = AlarmDaoFactory.getAllAlarmName(alarm.getAlmType());
+            alarmMsgBuilder.append(alarm.getStationName()).append(",璁惧缂栧彿涓�").append(alarm.getDevId()).append(",鍦�").append(alarm.getAlmStartTime()).append("鍙戠敓浜�").append(alarmName).append("鍛婅;");
+        }
+        for (PwrdevAlarm alarm : powerAlarmList) {
+            String alarmName = AlarmDaoFactory.getAllAlarmName(alarm.getAlmType());
+            alarmMsgBuilder.append(alarm.getStationName()).append(",鐢垫簮缂栧彿涓�").append(alarm.getPowerDeviceId()).append(",鍦�").append(alarm.getAlmStartTime()).append("鍙戠敓浜�").append(alarmName).append("鍛婅;");
+        }
+
+        File file = new File(unreadDirPath);
+        if(!file.exists()){
+            file.mkdirs();
+        }
+
+        String alarmMsg = alarmMsgBuilder.toString();
+        if(!alarmMsg.isEmpty()) {
+            service.setRate(-1);
+            service.saveToWav(alarmMsg, unreadDirPath + File.separator + System.currentTimeMillis() + ".wav");
+        }
     }
 }

--
Gitblit v1.9.1