Refactor: ToolService 인터페이스 분리 및 GlowEaiComponent 로드 에러 수정
Some checks failed
Deploy to OCIWP / deploy (push) Has been cancelled

This commit is contained in:
jade
2026-07-23 12:59:15 +09:00
parent 5f8228bfce
commit 165a6340ea
33 changed files with 1039 additions and 876 deletions

View File

@@ -1,49 +1,7 @@
package io.shinhanlife.dap.dapmt.service;
import io.shinhanlife.dap.dapmt.annotation.McpFunction;
import io.shinhanlife.dap.dapmt.annotation.McpTool;
import io.shinhanlife.dap.dapmt.dto.EmailSendReq;
import lombok.extern.slf4j.Slf4j;
import io.shinhanlife.dap.dapmt.dto.*;
import java.util.HashMap;
import java.util.Map;
/**
* @package io.shinhanlife.dap.dapmt.email
* @className EmailToolService
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 0986406 최초생성
*
* </pre>
*/
@Slf4j
@McpTool(routingType = "EAI", categoryKey = "notification")
public class EmailToolService extends AbstractMcpToolService {
@McpFunction(register = false, displayName = "send_email 툴", name = "send_email", description = "이메일 발송", prompt = "고객에게 이메일을 발송해줘.", mappingId = "EMAIL_SEND_001")
public Object sendEmail(EmailSendReq req) {
log.info("[Email] 이메일 발송 요청 수신. 수신자: {}", req.getEmailAddress());
// EAI 연동을 위한 파라미터 변환
Map<String, Object> payload = new HashMap<>();
payload.put("address", req.getEmailAddress());
payload.put("subject", req.getSubject());
payload.put("content", req.getBody());
// 레거시 시스템 연동 (EAI)
Map<String, Object> result = executeLegacy("EAI", "EMAIL_SEND_001", payload);
// 결과 가공
if ("SUCCESS".equals(result.get("status"))) {
result.put("message", "이메일이 성공적으로 발송되었습니다.");
}
return result;
}
}
public interface EmailToolService {
Object sendEmail(EmailSendReq req);
}

View File

@@ -0,0 +1,52 @@
package io.shinhanlife.dap.dapmt.service.impl;
import io.shinhanlife.dap.dapmt.annotation.McpFunction;
import io.shinhanlife.dap.dapmt.annotation.McpTool;
import io.shinhanlife.dap.dapmt.service.EmailToolService;
import io.shinhanlife.dap.dapmt.service.AbstractMcpToolService;
import io.shinhanlife.dap.dapmt.dto.EmailSendReq;
import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
import java.util.Map;
/**
* @package io.shinhanlife.dap.dapmt.email
* @className EmailToolService
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 0986406 최초생성
*
* </pre>
*/
@Slf4j
@McpTool(routingType = "EAI", categoryKey = "notification")
public class EmailToolServiceImpl extends AbstractMcpToolService implements EmailToolService {
@McpFunction(register = false, displayName = "send_email 툴", name = "send_email", description = "이메일 발송", prompt = "고객에게 이메일을 발송해줘.", mappingId = "EMAIL_SEND_001")
@Override
public Object sendEmail(EmailSendReq req) {
log.info("[Email] 이메일 발송 요청 수신. 수신자: {}", req.getEmailAddress());
// EAI 연동을 위한 파라미터 변환
Map<String, Object> payload = new HashMap<>();
payload.put("address", req.getEmailAddress());
payload.put("subject", req.getSubject());
payload.put("content", req.getBody());
// 레거시 시스템 연동 (EAI)
Map<String, Object> result = executeLegacy("EAI", "EMAIL_SEND_001", payload);
// 결과 가공
if ("SUCCESS".equals(result.get("status"))) {
result.put("message", "이메일이 성공적으로 발송되었습니다.");
}
return result;
}
}