whycxzp
2023-12-07 5a24a0154f7ad5e9c55455b9cef428ee41e411d0
告警分页
2个文件已添加
3个文件已修改
119 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/CKPowerDevAlarmController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/db_ckpwrdev_alarm/CKPowerDevAlarm.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/CKPowerDevAlarmService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/util/JsonUtil.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/websocket/PowerDevAlarmSocket.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/CKPowerDevAlarmController.java
@@ -18,8 +18,8 @@
    @PostMapping("getPage")
    @ApiOperation("分页查询")
    public Response getPage(@RequestBody CKPowerDevAlarm alarm,@RequestParam int pageNum,@RequestParam int pageSize){
        return service.getPage(alarm,pageNum,pageSize);
    public Response getPage(@RequestBody CKPowerDevAlarm alarm){
        return service.getPage(alarm);
    }
}
src/main/java/com/whyc/pojo/db_ckpwrdev_alarm/CKPowerDevAlarm.java
@@ -28,4 +28,9 @@
    private Date almConfirmedTime;
    private Integer almClearedType;
    @TableField(exist = false)
    private Integer pageNum;
    @TableField(exist = false)
    private Integer pageSize;
}
src/main/java/com/whyc/service/CKPowerDevAlarmService.java
@@ -18,8 +18,8 @@
    @Resource
    private CKPowerDevAlarmMapper mapper;
    public Response getPage(CKPowerDevAlarm alarm, int pageNum, int pageSize) {
        PageHelper.startPage(pageNum,pageSize);
    public Response getPage(CKPowerDevAlarm alarm) {
        PageHelper.startPage(alarm.getPageNum(),alarm.getPageSize());
        QueryWrapper<CKPowerDevAlarm> query = Wrappers.query();
        if(alarm.getDevType()!=0) {
            query.eq("dev_type", alarm.getDevType());
src/main/java/com/whyc/util/JsonUtil.java
New file
@@ -0,0 +1,25 @@
package com.whyc.util;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class JsonUtil {
    /**
     *
     * @param dataType    需要解析的日期的格式如:"yyyy-MM-dd HH:mm:ss"
     * @return    得到对应的gson对象
     */
    public static Gson getGson(String dataType){
        return new GsonBuilder().setDateFormat(dataType).create();
    }
    /**
     * 获取默认的gson对象
     * @return
     */
    public static Gson getGson(){
        return new Gson();
    }
}
src/main/java/com/whyc/websocket/PowerDevAlarmSocket.java
New file
@@ -0,0 +1,81 @@
package com.whyc.websocket;
import com.whyc.config.WebSocketConfig;
import com.whyc.dto.Response;
import com.whyc.pojo.db_ckpwrdev_alarm.CKPowerDevAlarm;
import com.whyc.pojo.db_ckpwrdev_data_rt.CKPowerDevBattRtData;
import com.whyc.pojo.db_ckpwrdev_data_rt.CKPowerDevBattRtState;
import com.whyc.pojo.db_ckpwrdev_data_rt.CKPowerDevRt;
import com.whyc.pojo.db_ckpwrdev_data_rt.CKPowerDevSignal;
import com.whyc.service.*;
import com.whyc.util.JsonUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.List;
/**
 * 测控电源遥测量和遥信量
 * +核容装置状态
 */
@Component
@ServerEndpoint(value = "/ckPowerDevAlarm",encoders = WebSocketEncoder.class,configurator = WebSocketConfig.class)
public class PowerDevAlarmSocket {
    private Session session;
    private Thread thread;
    private static CKPowerDevAlarmService service;
    @Autowired
    public void setService(CKPowerDevAlarmService service) {
        PowerDevAlarmSocket.service = service;
    }
    @OnOpen
    public void onOpen(Session session){
        this.session = session;
    }
    @OnMessage
    public void onMessage(String message){
        CKPowerDevAlarm param = JsonUtil.getGson().fromJson(message, CKPowerDevAlarm.class);
        Thread thread = new Thread() {
            @Override
            public void run() {
                try{
                    while (!currentThread().isInterrupted()) {
                        session.getBasicRemote().sendObject(service.getPage(param));
                        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();
        }
    }
}