PushData.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. package com.sckj.iron.socketio;
  2. import com.corundumstudio.socketio.SocketIOClient;
  3. import com.sckj.common.core.AjaxResult;
  4. import com.sckj.common.socketio.SocketUtil;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.apache.commons.lang3.ObjectUtils;
  7. import java.util.Map;
  8. import java.util.Objects;
  9. /**
  10. * @Author feng
  11. * @Date 2024-11-19 下午 12:12
  12. * @Description socket.io 推拉事件名及其封装
  13. */
  14. @Slf4j
  15. public class PushData {
  16. /**
  17. * 出铁操作
  18. **/
  19. public static final String IRON_OPERATION = "IRON_OPERATION";
  20. /**
  21. * 开始
  22. **/
  23. public static final String IRON_START = "IRON_START";
  24. /**
  25. * 实时数据
  26. **/
  27. public static final String IRON_REALTIME_DATA = "IRON_REALTIME_DATA";
  28. /**
  29. * 实时数据
  30. **/
  31. public static final String IRON_REALTIME_STATUS = "IRON_REALTIME_STATUS";
  32. /***
  33. * 一、炉前准备:铁摆系统正常、泥炮开口机准备完毕、人员到位
  34. * 二、炉前申请出铁
  35. * 三、炉内出铁条件:高炉运行情况
  36. * 四、预判和确认出铁
  37. */
  38. public static final String IRON_CONFIRM = "IRON_CONFIRM";
  39. /***
  40. * 发出预警
  41. */
  42. public static final String IRON_WARN = "IRON_WARN";
  43. /***
  44. * 开始出铁计时
  45. */
  46. public static final String IRON_COSTTIME = "IRON_COSTTIME";
  47. /***
  48. * 取消预警
  49. */
  50. public static final String IRON_CANCEL_WARN = "IRON_CANCEL_WARN";
  51. /***
  52. * 出铁日期和次数
  53. */
  54. public static final String IRON_TIME_NO = "IRON_TIME_NO";
  55. /***
  56. * 打泥量计算
  57. */
  58. public static final String IRON_HIT_MUD = "IRON_HIT_MUD";
  59. /***
  60. * 出铁工作诊断
  61. */
  62. public static final String IRON_TAPPING_TEST = "IRON_TAPPING_TEST";
  63. /***
  64. * 距离堵口预计还剩:xxxx分钟
  65. */
  66. public static final String IRON_CLOSETTIME = "IRON_CLOSETTIME";
  67. /**
  68. * 出铁操作
  69. *
  70. * @return
  71. * @Param
  72. **/
  73. public static void send2Operation(Object message, SocketIOClient socketClient) {
  74. if (SocketUtil.clientUserIds.isEmpty()) {
  75. return;
  76. }
  77. //单独发消息
  78. socketClient.sendEvent(PushData.IRON_OPERATION, AjaxResult.success(message));
  79. }
  80. /**
  81. * 出铁操作
  82. *
  83. * @return
  84. * @Param
  85. **/
  86. public static void send2Operation(Object message, String userId) {
  87. if (SocketUtil.connectMap.isEmpty()) {
  88. return;
  89. }
  90. if (ObjectUtils.isEmpty(userId)) {
  91. for (Map.Entry<String, SocketIOClient> entry : SocketUtil.connectMap.entrySet()) {
  92. entry.getValue().sendEvent(PushData.IRON_OPERATION, AjaxResult.success(message));
  93. }
  94. } else {
  95. //某个客户端信息
  96. SocketIOClient socketClient = SocketUtil.getSocketClient(userId);
  97. if (Objects.nonNull(socketClient)) {
  98. //单独给他发消息
  99. socketClient.sendEvent(PushData.IRON_OPERATION, AjaxResult.success(message));
  100. } else {
  101. log.info("{}已下线,无法发送消息", userId);
  102. }
  103. }
  104. }
  105. /***
  106. * 出铁操作
  107. * @param message 发送的消息内容
  108. * @param isStopSendMsg 是否停止发送信息
  109. */
  110. public static void send2Operation(Object message, Double isStopSendMsg) {
  111. if (SocketUtil.connectMap.isEmpty()) {//|| isStopSendMsg
  112. return;
  113. }
  114. //
  115. for (Map.Entry<String, SocketIOClient> entry : SocketUtil.connectMap.entrySet()) {
  116. entry.getValue().sendEvent(PushData.IRON_OPERATION, AjaxResult.success(message));
  117. }
  118. }
  119. /**
  120. * 实时数据
  121. *
  122. * @return
  123. * @Param
  124. **/
  125. public static void send2RealtimeData(Object message) {
  126. if (SocketUtil.connectMap.isEmpty()) {
  127. return;
  128. }
  129. //
  130. for (Map.Entry<String, SocketIOClient> entry : SocketUtil.connectMap.entrySet()) {
  131. entry.getValue().sendEvent(PushData.IRON_REALTIME_DATA, AjaxResult.success(message));
  132. }
  133. }
  134. /**
  135. * 实时数据
  136. *
  137. * @return
  138. * @Param
  139. **/
  140. public static void send2RealtimeStatus(Object message) {
  141. if (SocketUtil.connectMap.isEmpty()) {
  142. return;
  143. }
  144. //
  145. for (Map.Entry<String, SocketIOClient> entry : SocketUtil.connectMap.entrySet()) {
  146. entry.getValue().sendEvent(PushData.IRON_REALTIME_STATUS, AjaxResult.success(message));
  147. }
  148. }
  149. /**
  150. * 发出预警
  151. *
  152. * @return
  153. * @Param
  154. **/
  155. public static void send2Warn(Object message) {
  156. if (SocketUtil.connectMap.isEmpty()) {
  157. return;
  158. }
  159. //
  160. for (Map.Entry<String, SocketIOClient> entry : SocketUtil.connectMap.entrySet()) {
  161. entry.getValue().sendEvent(PushData.IRON_WARN, AjaxResult.success(message));
  162. }
  163. }
  164. /**
  165. * 取消发出的预警
  166. *
  167. * @return
  168. * @Param
  169. **/
  170. public static void send2CancelWarn(Object message) {
  171. if (SocketUtil.connectMap.isEmpty()) {
  172. return;
  173. }
  174. //
  175. for (Map.Entry<String, SocketIOClient> entry : SocketUtil.connectMap.entrySet()) {
  176. entry.getValue().sendEvent(PushData.IRON_CANCEL_WARN, AjaxResult.success(message));
  177. }
  178. }
  179. /**
  180. * 开始出铁计时
  181. *
  182. * @return
  183. * @Param
  184. **/
  185. public static void send2CostTime(Object message) {
  186. if (SocketUtil.connectMap.isEmpty()) {
  187. return;
  188. }
  189. //
  190. for (Map.Entry<String, SocketIOClient> entry : SocketUtil.connectMap.entrySet()) {
  191. entry.getValue().sendEvent(PushData.IRON_COSTTIME, AjaxResult.success(message));
  192. }
  193. }
  194. /**
  195. * 出铁时间和次数
  196. *
  197. * @return
  198. * @Param
  199. **/
  200. public static void send2IronTimeNo(Object message) {
  201. if (SocketUtil.connectMap.isEmpty()) {
  202. return;
  203. }
  204. //
  205. for (Map.Entry<String, SocketIOClient> entry : SocketUtil.connectMap.entrySet()) {
  206. entry.getValue().sendEvent(PushData.IRON_TIME_NO, AjaxResult.success(message));
  207. }
  208. }
  209. /**
  210. * 打泥量计算
  211. *
  212. * @return
  213. * @Param
  214. **/
  215. public static void send2IronHitMud(Object message) {
  216. if (SocketUtil.connectMap.isEmpty()) {
  217. return;
  218. }
  219. //
  220. for (Map.Entry<String, SocketIOClient> entry : SocketUtil.connectMap.entrySet()) {
  221. entry.getValue().sendEvent(PushData.IRON_HIT_MUD, AjaxResult.success(message));
  222. }
  223. }
  224. /**
  225. * 预计堵口时间
  226. *
  227. * @return
  228. * @Param
  229. **/
  230. public static void send2CloseTime(Object message) {
  231. if (SocketUtil.connectMap.isEmpty()) {
  232. return;
  233. }
  234. //
  235. for (Map.Entry<String, SocketIOClient> entry : SocketUtil.connectMap.entrySet()) {
  236. entry.getValue().sendEvent(PushData.IRON_CLOSETTIME, AjaxResult.success(message));
  237. }
  238. }
  239. }