liujie
2025-06-09 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketClient.java
@@ -1,24 +1,21 @@
package com.panzhihua.service_property.config;
import java.io.IOException;
import java.util.Date;
import javax.annotation.Resource;
import javax.websocket.*;
import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson.JSONObject;;
import com.panzhihua.service_property.dao.ComPropertyAlarmDao;
import com.panzhihua.service_property.dto.DeviceDto;
import com.panzhihua.service_property.entity.ComPropertyAlarm;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSONObject;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_property.dao.ComPropertyAlarmDao;
import com.panzhihua.service_property.dto.DeviceDto;
import com.panzhihua.service_property.entity.ComPropertyAlarm;
import cn.hutool.extra.spring.SpringUtil;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
import javax.websocket.*;
import java.io.IOException;
import java.util.Date;
/**
 * 应用模块名称
@@ -40,7 +37,9 @@
    private static final Logger logger = LoggerFactory.getLogger(WebSocketClient.class);
    /** 保存报警记录服务 */
    /**
     * 保存报警记录服务
     */
    @Resource
    private ComPropertyAlarmDao comPropertyAlarmDao;
    /**
@@ -67,19 +66,54 @@
    public void onMessage(String message, Session session) {
        // 提取数据
        logger.info("收到的原始数据:{}", message);
        dealData(message);
        dealNewData(message);
    }
    @Deprecated
    @Async
    void dealNewData(String message) {
        comPropertyAlarmDao = SpringUtil.getBean(ComPropertyAlarmDao.class);
        JSONObject deviceMess = JSONObject.parseObject(message);
        boolean checkFlag =
                ("trace_call".equals(deviceMess.getString("cmd")) && (StringUtils.isNotEmpty(deviceMess.getString("userid"))));
        if (checkFlag) {
            log.info("已经接收到报警记录,记录信息:{}",deviceMess.toJSONString());
            boolean panzhihuaDevice = deviceMess.getString("userid").startsWith("7") || deviceMess.getString("userid").startsWith("8");
            if(panzhihuaDevice) {
                log.info("报警记录是攀枝花设备7-8开头的设备");
                logger.info("收到设备报警信息:{}", message);
                for (int i = 1; i < 10; i++) {
                    if (org.apache.commons.lang.StringUtils.isNotEmpty(deviceMess.getString("num" + i))) {
                        ComPropertyAlarm comPropertyAlarm = new ComPropertyAlarm();
                        comPropertyAlarm.setSerialNo(deviceMess.getString("userid"));
                        comPropertyAlarm.setReceiveNo(deviceMess.getString("num" + i));
                        comPropertyAlarm.setStatus(0);
                        // 10位的秒级别的时间戳
                        Date createDate = new Date(deviceMess.getLong("ts" + i) * 1000);
                        //对应的就是时间戳对应的Date
                        comPropertyAlarm.setCreateTime(createDate);
                        comPropertyAlarm.setType(1);
                        comPropertyAlarmDao.insert(comPropertyAlarm);
                    } else {
                        break;
                    }
                }
            }
        }
    }
    @Deprecated
    @Async
    void dealData(String message) {
        comPropertyAlarmDao = SpringUtil.getBean(ComPropertyAlarmDao.class);
        DeviceDto deviceInfo = JSONObject.parseObject(message, DeviceDto.class);
        boolean checkFlag =
            "RINGING".equals(deviceInfo.getCallstatus()) && StringUtils.isNotEmpty(deviceInfo.getOri_number());
        if ("abort".equals(deviceInfo.getStatus()) || checkFlag) {
                "RINGING".equals(deviceInfo.getCallstatus()) && StringUtils.isNotEmpty(deviceInfo.getOri_number());
        if (checkFlag) {
            logger.info("收到设备报警信息:{}", message);
            ComPropertyAlarm comPropertyAlarm = new ComPropertyAlarm();
            comPropertyAlarm.setSerialNo(deviceInfo.getUserid());
            comPropertyAlarm.setSerialNo(deviceInfo.getOri_number());
            comPropertyAlarm.setReceiveNo(deviceInfo.getUserid());
            comPropertyAlarm.setStatus(0);
            comPropertyAlarm.setCreateTime(new Date());
            comPropertyAlarm.setType(1);
@@ -100,8 +134,7 @@
    /**
     * <异步发送message>
     *
     * @param message
     *            message @throws
     * @param message message @throws
     */
    public void send(String message) {
        this.session.getAsyncRemote().sendText(message);
@@ -110,8 +143,7 @@
    /**
     * <发送message>
     *
     * @param message
     *            message @throws
     * @param message message @throws
     */
    public void sendMessage(String message) {
        try {