ItsApiAfterTaskCompleted.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package com.its.op.scheduler;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import com.its.op.dto.its.oper.TbUserMsgDto;
  5. import com.its.op.websocket.ItsWebSocketMessage;
  6. import com.its.op.websocket.ItsWebSocketSessionManager;
  7. import lombok.RequiredArgsConstructor;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.scheduling.annotation.Async;
  10. import org.springframework.stereotype.Component;
  11. import org.springframework.web.socket.TextMessage;
  12. import javax.annotation.PostConstruct;
  13. @Slf4j
  14. @RequiredArgsConstructor
  15. @Component
  16. public class ItsApiAfterTaskCompleted {
  17. private ObjectMapper mapper;
  18. @PostConstruct
  19. public void init() {
  20. this.mapper = new ObjectMapper();
  21. }
  22. @Async
  23. public void executeFcltUserMsgNotify(Long msgNmbr) {
  24. // 시설물 사용자 유지보수 메시지 작성 완료 후 웹소켓으로 접속한 사용자에게 통보
  25. try {
  26. TbUserMsgDto.TbUserMsgNotify msg = TbUserMsgDto.TbUserMsgNotify.builder()
  27. .msgNmbr(msgNmbr)
  28. .build();
  29. ItsWebSocketMessage itsMessage = new ItsWebSocketMessage("fcltUserMsg", msg);
  30. String itsSttsJsonData = this.mapper.writeValueAsString(itsMessage);
  31. ItsWebSocketSessionManager.getInstance().sendBroadcastUserMessage(itsMessage.getCommand(), new TextMessage(itsSttsJsonData));
  32. }
  33. catch(JsonProcessingException e){
  34. log.error("ItsApiAfterTaskCompleted: executeFcltUserMsgNotify Json parsing Exception");
  35. }
  36. catch (Exception ea) {
  37. log.error("ItsApiAfterTaskCompleted: Exception");
  38. }
  39. }
  40. }