1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package com.its.op.scheduler;
- import com.fasterxml.jackson.core.JsonProcessingException;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.its.op.dto.its.oper.TbUserMsgDto;
- import com.its.op.websocket.ItsWebSocketMessage;
- import com.its.op.websocket.ItsWebSocketSessionManager;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.stereotype.Component;
- import org.springframework.web.socket.TextMessage;
- import javax.annotation.PostConstruct;
- @Slf4j
- @RequiredArgsConstructor
- @Component
- public class ItsApiAfterTaskCompleted {
- private final ItsWebSocketSessionManager itsWebSocketSessionManager;
- private ObjectMapper mapper;
- @PostConstruct
- public void init() {
- this.mapper = new ObjectMapper();
- }
- @Async
- public void executeFcltUserMsgNotify(Long msgNmbr) {
- // 시설물 사용자 유지보수 메시지 작성 완료 후 웹소켓으로 접속한 사용자에게 통보
- try {
- int broadcastCount = 0;
- TbUserMsgDto.TbUserMsgNotify msg = TbUserMsgDto.TbUserMsgNotify.builder()
- .msgNmbr(msgNmbr)
- .build();
- ItsWebSocketMessage itsMessage = new ItsWebSocketMessage("fcltUserMsg", msg);
- String itsSttsJsonData = this.mapper.writeValueAsString(itsMessage);
- broadcastCount = this.itsWebSocketSessionManager.sendBroadcastUserMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
- if (broadcastCount > 0) {
- log.info("executeFcltUserMsgNotify: {} EA.", broadcastCount);
- }
- }
- catch(JsonProcessingException e){
- log.error("ItsApiAfterTaskCompleted: executeFcltUserMsgNotify Json parsing Exception");
- }
- catch (Exception ea) {
- log.error("ItsApiAfterTaskCompleted: Exception");
- }
- }
- }
|