package com.sckj.iron.socketio; import com.corundumstudio.socketio.SocketIOClient; import com.sckj.common.core.AjaxResult; import com.sckj.common.socketio.SocketUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import java.util.Map; import java.util.Objects; /** * @Author feng * @Date 2024-11-19 下午 12:12 * @Description socket.io 推拉事件名及其封装 */ @Slf4j public class PushData { /** * 出铁操作 **/ public static final String IRON_OPERATION = "IRON_OPERATION"; /** * 开始 **/ public static final String IRON_START = "IRON_START"; /** * 实时数据 **/ public static final String IRON_REALTIME_DATA = "IRON_REALTIME_DATA"; /** * 实时数据 **/ public static final String IRON_REALTIME_STATUS = "IRON_REALTIME_STATUS"; /*** * 一、炉前准备:铁摆系统正常、泥炮开口机准备完毕、人员到位 * 二、炉前申请出铁 * 三、炉内出铁条件:高炉运行情况 * 四、预判和确认出铁 */ public static final String IRON_CONFIRM = "IRON_CONFIRM"; /*** * 发出预警 */ public static final String IRON_WARN = "IRON_WARN"; /*** * 开始出铁计时 */ public static final String IRON_COSTTIME = "IRON_COSTTIME"; /*** * 取消预警 */ public static final String IRON_CANCEL_WARN = "IRON_CANCEL_WARN"; /*** * 出铁日期和次数 */ public static final String IRON_TIME_NO = "IRON_TIME_NO"; /*** * 打泥量计算 */ public static final String IRON_HIT_MUD = "IRON_HIT_MUD"; /*** * 出铁工作诊断 */ public static final String IRON_TAPPING_TEST = "IRON_TAPPING_TEST"; /*** * 距离堵口预计还剩:xxxx分钟 */ public static final String IRON_CLOSETTIME = "IRON_CLOSETTIME"; /** * 出铁操作 * * @return * @Param **/ public static void send2Operation(Object message, SocketIOClient socketClient) { if (SocketUtil.clientUserIds.isEmpty()) { return; } //单独发消息 socketClient.sendEvent(PushData.IRON_OPERATION, AjaxResult.success(message)); } /** * 出铁操作 * * @return * @Param **/ public static void send2Operation(Object message, String userId) { if (SocketUtil.connectMap.isEmpty()) { return; } if (ObjectUtils.isEmpty(userId)) { for (Map.Entry entry : SocketUtil.connectMap.entrySet()) { entry.getValue().sendEvent(PushData.IRON_OPERATION, AjaxResult.success(message)); } } else { //某个客户端信息 SocketIOClient socketClient = SocketUtil.getSocketClient(userId); if (Objects.nonNull(socketClient)) { //单独给他发消息 socketClient.sendEvent(PushData.IRON_OPERATION, AjaxResult.success(message)); } else { log.info("{}已下线,无法发送消息", userId); } } } /*** * 出铁操作 * @param message 发送的消息内容 * @param isStopSendMsg 是否停止发送信息 */ public static void send2Operation(Object message, Double isStopSendMsg) { if (SocketUtil.connectMap.isEmpty()) {//|| isStopSendMsg return; } // for (Map.Entry entry : SocketUtil.connectMap.entrySet()) { entry.getValue().sendEvent(PushData.IRON_OPERATION, AjaxResult.success(message)); } } /** * 实时数据 * * @return * @Param **/ public static void send2RealtimeData(Object message) { if (SocketUtil.connectMap.isEmpty()) { return; } // for (Map.Entry entry : SocketUtil.connectMap.entrySet()) { entry.getValue().sendEvent(PushData.IRON_REALTIME_DATA, AjaxResult.success(message)); } } /** * 实时数据 * * @return * @Param **/ public static void send2RealtimeStatus(Object message) { if (SocketUtil.connectMap.isEmpty()) { return; } // for (Map.Entry entry : SocketUtil.connectMap.entrySet()) { entry.getValue().sendEvent(PushData.IRON_REALTIME_STATUS, AjaxResult.success(message)); } } /** * 发出预警 * * @return * @Param **/ public static void send2Warn(Object message) { if (SocketUtil.connectMap.isEmpty()) { return; } // for (Map.Entry entry : SocketUtil.connectMap.entrySet()) { entry.getValue().sendEvent(PushData.IRON_WARN, AjaxResult.success(message)); } } /** * 取消发出的预警 * * @return * @Param **/ public static void send2CancelWarn(Object message) { if (SocketUtil.connectMap.isEmpty()) { return; } // for (Map.Entry entry : SocketUtil.connectMap.entrySet()) { entry.getValue().sendEvent(PushData.IRON_CANCEL_WARN, AjaxResult.success(message)); } } /** * 开始出铁计时 * * @return * @Param **/ public static void send2CostTime(Object message) { if (SocketUtil.connectMap.isEmpty()) { return; } // for (Map.Entry entry : SocketUtil.connectMap.entrySet()) { entry.getValue().sendEvent(PushData.IRON_COSTTIME, AjaxResult.success(message)); } } /** * 出铁时间和次数 * * @return * @Param **/ public static void send2IronTimeNo(Object message) { if (SocketUtil.connectMap.isEmpty()) { return; } // for (Map.Entry entry : SocketUtil.connectMap.entrySet()) { entry.getValue().sendEvent(PushData.IRON_TIME_NO, AjaxResult.success(message)); } } /** * 打泥量计算 * * @return * @Param **/ public static void send2IronHitMud(Object message) { if (SocketUtil.connectMap.isEmpty()) { return; } // for (Map.Entry entry : SocketUtil.connectMap.entrySet()) { entry.getValue().sendEvent(PushData.IRON_HIT_MUD, AjaxResult.success(message)); } } /** * 预计堵口时间 * * @return * @Param **/ public static void send2CloseTime(Object message) { if (SocketUtil.connectMap.isEmpty()) { return; } // for (Map.Entry entry : SocketUtil.connectMap.entrySet()) { entry.getValue().sendEvent(PushData.IRON_CLOSETTIME, AjaxResult.success(message)); } } }