whycxzp
2022-11-16 3919d59dacc6ed443feb9a60e567cf51a3014bb4
更新
1个文件已删除
9个文件已修改
237 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/AlarmDataController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/VoiceController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/DevalarmDataMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/AlarmDataService.java 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/DevalarmDataService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/PwrdevAlarmService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattalarmDataMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/DevalarmDataMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/PwrdevAlarmMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/AlarmDataController.java
File was deleted
src/main/java/com/whyc/controller/VoiceController.java
@@ -2,6 +2,7 @@
import com.whyc.dto.Response;
import com.whyc.pojo.UserInf;
import com.whyc.service.AlarmDataService;
import com.whyc.service.MSTTSSpeechService;
import com.whyc.util.ActionUtil;
import com.whyc.util.CommonUtil;
@@ -18,8 +19,9 @@
@RestController
@RequestMapping("voice")
public class VoiceController {
    @Autowired
    private MSTTSSpeechService service;
    private AlarmDataService alarmDataService;
    /**
     * 用户的语音文件路径层级
@@ -35,6 +37,8 @@
        String unreadSuffixPath = "wav" + File.separator + "alarm" + File.separator + user.getUId() + File.separator + "unread";
        String unreadDirPath = CommonUtil.getRootFile() + unreadSuffixPath;
        File unreadDir = new File(unreadDirPath);
        //保存用户的告警语音文件
        alarmDataService.saveToWav(unreadDirPath);
        if(!unreadDir.exists()){
            return new Response().set(1,false,"无未读告警语音");
        }else{
@@ -49,10 +53,6 @@
            }
            return new Response().setII(1,true,fileNameList,null);
        }
        /*String text = "啊哈哈哈哈";
        service.setRate(10);
        service.saveToWav(text,"F:\\1.wav");
        return new Response().set(1);*/
    }
    @ApiOperation("删除用户wav语音文件")
src/main/java/com/whyc/mapper/DevalarmDataMapper.java
@@ -21,4 +21,7 @@
    List getDevAlarm2();
    List<DevalarmData> getSendDevAlarm(@Param("uId") Integer uId);
    List<DevalarmData> getList(@Param("uId") Long userId);
}
src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java
@@ -24,5 +24,5 @@
    //电源实时告警-首页foot
    List<PwrdevAlarm> getRealAlarmFoot(Date yesterday, int uId);
    List<PwrdevAlarm> getList(Long userId);
}
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");
        }
    }
}
src/main/java/com/whyc/service/DevalarmDataService.java
@@ -91,6 +91,6 @@
    }
    public List<DevalarmData> getList(Long userId) {
        return mapper.getSendDevAlarm(userId.intValue());
        return mapper.getList(userId);
    }
}
src/main/java/com/whyc/service/PwrdevAlarmService.java
@@ -194,6 +194,6 @@
    }
    public List<PwrdevAlarm> getList(Long userId) {
        return mapper.getSendPwrdevAlarm(userId.intValue());
        return mapper.getList(userId);
    }
}
src/main/resources/mapper/BattalarmDataMapper.xml
@@ -307,6 +307,7 @@
        from db_alarm.tb_battalarm_data,db_battinf.tb_battinf
        where alm_cleared_type = 0
        and alm_is_confirmed = 0
        and DATEDIFF(alm_start_time,NOW())=0
        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,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf
src/main/resources/mapper/DevalarmDataMapper.xml
@@ -140,4 +140,19 @@
        ORDER BY
        alm_start_time DESC
    </select>
    <select id="getList" resultType="com.whyc.pojo.DevalarmData">
        select distinct db_alarm.tb_devalarm_data.num,db_alarm.tb_devalarm_data.dev_id,db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.stationname3,db_battinf.tb_battinf.stationid,db_battinf.tb_battinf.fbsdevicename,dev_ip,alm_level,alm_type,alm_start_time
        from db_alarm.tb_devalarm_data,db_battinf.tb_battinf
        where alm_cleared_type=0
        and alm_is_confirmed = 0
        and DATEDIFF(alm_start_time,NOW())=0
        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,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf
        where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId
        and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id
        and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid
        and db_user.tb_user_inf.uid=#{uId})
        order by alm_start_time desc
    </select>
</mapper>
src/main/resources/mapper/PwrdevAlarmMapper.xml
@@ -194,5 +194,25 @@
        ORDER BY
        alarm.alm_start_time DESC
    </select>
    <select id="getList" resultType="com.whyc.pojo.PwrdevAlarm">
        select  alarm.*,inf.StationName,inf.StationName3 from db_pwrdev_alarm.tb_pwrdev_alarm alarm,db_pwrdev_inf.tb_pwrdev_inf inf
        <where>
            alarm.PowerDeviceId = inf.PowerDeviceId
            and alarm.alm_cleared_type=0
            and alarm.alm_is_confirmed = 0
            and DATEDIFF(alm_start_time,NOW())=0
            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,
            db_user.tb_user_battgroup_baojigroup_battgroup,
            db_user.tb_user_battgroup_baojigroup_usr,
            db_user.tb_user_inf
            where db_user.tb_user_battgroup_baojigroup_battgroup.StationId=inf.StationId
            and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id
            and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid
            and db_user.tb_user_inf.uid=#{uId} )
        </where>
        ORDER BY
        alarm.alm_start_time DESC
    </select>
</mapper>