whyclxw
2024-09-12 64d6429ed4472295d824617eee73ee8b0b24497b
告警弹窗
1个文件已添加
4个文件已修改
107 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/DevalarmDataHisController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/DevalarmDataMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/DevalarmDataService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/webSocket/DevAlmPopUp.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/DevalarmDataMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/DevalarmDataHisController.java
@@ -2,8 +2,10 @@
import com.whyc.dto.DalmDto;
import com.whyc.dto.Response;
import com.whyc.pojo.db_user.UserInf;
import com.whyc.service.BatttestdataInfService;
import com.whyc.service.DevalarmDataService;
import com.whyc.util.ActionUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -24,6 +26,12 @@
    public Response getDAlmInf(@RequestParam int uid, @RequestBody DalmDto dto){
        return dataService.getDAlmInf(uid,dto);
    }
    @ApiOperation(value = "弹窗告警")
    @GetMapping("getDAlmPopUp")
    public Response getDAlmPopUp(){
        UserInf uinf= ActionUtil.getUser();
        return dataService.getDAlmPopUp(uinf.getUid());
    }
    @ApiOperation(value = "获取历史告警")
    @PostMapping("getDAlmHis")
src/main/java/com/whyc/mapper/DevalarmDataMapper.java
@@ -9,4 +9,6 @@
public interface DevalarmDataMapper extends CustomMapper<DevalarmData>{
    //获取设备告警信息
    List<DevalarmData> getDAlmInf(@Param("dto") DalmDto dto);
    //弹窗告警
    List<DevalarmData> getDAlmPopUp(@Param("uid") int uid);
}
src/main/java/com/whyc/service/DevalarmDataService.java
@@ -78,4 +78,13 @@
        Map<Integer,String> map=DevAlmEnum.getOpInfo();
        return new Response().setII(1,true,map,"获取所有的告警类型");
    }
    //弹窗告警
    public Response getDAlmPopUp(Integer uid) {
        List<DevalarmData> list=mapper.getDAlmPopUp(uid);
        for (DevalarmData data:list) {
            int almId=data.getAlmId();
            data.setAlmName(DevAlmEnum.getValue(almId));
        }
        return new Response().setII(1,list!=null,list,"弹窗告警");
    }
}
src/main/java/com/whyc/webSocket/DevAlmPopUp.java
New file
@@ -0,0 +1,77 @@
package com.whyc.webSocket;
import com.whyc.config.WebSocketConfig;
import com.whyc.dto.Response;
import com.whyc.service.DevInfService;
import com.whyc.service.DevalarmDataService;
import com.whyc.service.UserInfService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpSession;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
 * 告警弹窗
 */
@Component
@ServerEndpoint(value = "/almPop",encoders = WebSocketEncoder.class,configurator = WebSocketConfig.class)
public class DevAlmPopUp{
    private Session session;
    private Thread thread;
    private static DevalarmDataService almService;
    private HttpSession httpSession;
    @Autowired
    public void setDevalarmDataService(DevalarmDataService almService) {
        DevAlmPopUp.almService = almService;
    }
    @OnOpen
    public void onOpen(Session session, EndpointConfig config){
        this.httpSession = (HttpSession) config.getUserProperties().get("httpSession");
        //UserInf user = (UserInf) this.httpSession.getAttribute("user");
        //final int userId = user.getUid();
        final int userId = 101;
        Thread thread = new Thread() {
            @Override
            public void run() {
                try {
                    while (!currentThread().isInterrupted()) {
                        Response res = almService.getDAlmPopUp(userId);
                        session.getBasicRemote().sendObject(res);
                        sleep(4000);
                    }
                } catch (Exception e) {
                    this.interrupt();
                }
            }
        };
        thread.start();
        this.thread = thread;
    }
    @OnClose
    public void onClose(CloseReason closeReason) throws IOException {
        System.err.println("closeReason = " + closeReason);
        if(session.isOpen()){
            session.close();
        }
    }
    @OnError
    public void onError(Throwable error) throws IOException {
        error.printStackTrace();
        thread.isInterrupted();
        if(session.isOpen()){
            session.close();
        }
    }
}
src/main/resources/mapper/DevalarmDataMapper.xml
@@ -52,5 +52,16 @@
    <select id="selectDinf" resultType="devInf" parameterType="int" >
        select * from db_lithium_ram_db.tb_dev_inf where dev_id = #{dev_id}
    </select>
    <select id="getDAlmPopUp" resultType="com.whyc.pojo.db_alarm.DevalarmData">
        select * from db_alarm.tb_devalarm_data
        <where>
            dev_id in (
            SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr
            where
                tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id
                and uid=#{uid}
            )
        </where>
    </select>
</mapper>