From a6f00d506b01c46bbf85eb3b115a706904368374 Mon Sep 17 00:00:00 2001 From: jade Date: Mon, 13 Jul 2026 13:25:39 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20Gateway=20Fallback=20=EB=9D=BC=EC=9A=B0?= =?UTF-8?q?=ED=8C=85=20=EB=88=84=EB=9D=BD=20=EC=88=98=EC=A0=95=20(hr,=20pa?= =?UTF-8?q?yment=20=EB=AA=A8=EB=93=88=20=EC=B6=94=EA=B0=80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.properties | 2 + .../{email => service}/EmailToolService.java | 3 +- .../biz/mcp/tool/dto/SearchDetailHrReq.java | 24 +++++++++++ .../biz/mcp/tool/dto/SearchDetailHrRes.java | 26 ++++++++++++ .../tool/hr/dto/SearchDetailHrMciReqDto.java | 22 ++++++++++ .../tool/hr/dto/SearchDetailHrMciResDto.java | 22 ++++++++++ .../hr/mapper/SearchDetailHrMciMapper.java | 34 +++++++++++++++ .../tool/service/SearchDetailHrService.java | 42 +++++++++++++++++++ .../sms/{ => service}/SmsToolService.java | 2 +- 9 files changed, 174 insertions(+), 3 deletions(-) rename axhub-tool-email/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/{email => service}/EmailToolService.java (93%) create mode 100644 axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/dto/SearchDetailHrReq.java create mode 100644 axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/dto/SearchDetailHrRes.java create mode 100644 axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/dto/SearchDetailHrMciReqDto.java create mode 100644 axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/dto/SearchDetailHrMciResDto.java create mode 100644 axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/mapper/SearchDetailHrMciMapper.java create mode 100644 axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/service/SearchDetailHrService.java rename axhub-tool-sms/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/sms/{ => service}/SmsToolService.java (96%) diff --git a/axhub-gateway/src/main/resources/application.properties b/axhub-gateway/src/main/resources/application.properties index 7ef7012..5a9bc65 100644 --- a/axhub-gateway/src/main/resources/application.properties +++ b/axhub-gateway/src/main/resources/application.properties @@ -3,6 +3,8 @@ spring.application.name=axhub-admin # Gateway Fallback Routing (For unregistered tools) mcp.gateway.fallback.routes.email=http://tool-email:8083 mcp.gateway.fallback.routes.sms=http://tool-sms:8082 +mcp.gateway.fallback.routes.hr=http://tool-hr:8086 +mcp.gateway.fallback.routes.payment=http://tool-payment:8085 mcp.gateway.fallback.default-url=http://tool-other:8084 server.port=8081 diff --git a/axhub-tool-email/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/email/EmailToolService.java b/axhub-tool-email/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/service/EmailToolService.java similarity index 93% rename from axhub-tool-email/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/email/EmailToolService.java rename to axhub-tool-email/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/service/EmailToolService.java index 8c6cc95..2fb8a95 100644 --- a/axhub-tool-email/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/email/EmailToolService.java +++ b/axhub-tool-email/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/service/EmailToolService.java @@ -1,9 +1,8 @@ -package io.shinhanlife.axhub.biz.mcp.tool.email; +package io.shinhanlife.axhub.biz.mcp.tool.service; import io.shinhanlife.axhub.biz.mcp.tool.annotation.McpFunction; import io.shinhanlife.axhub.biz.mcp.tool.annotation.McpTool; import io.shinhanlife.axhub.biz.mcp.tool.dto.EmailSendReq; -import io.shinhanlife.axhub.biz.mcp.tool.service.AbstractMcpToolService; import lombok.extern.slf4j.Slf4j; import java.util.HashMap; diff --git a/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/dto/SearchDetailHrReq.java b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/dto/SearchDetailHrReq.java new file mode 100644 index 0000000..86769e3 --- /dev/null +++ b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/dto/SearchDetailHrReq.java @@ -0,0 +1,24 @@ +package io.shinhanlife.axhub.biz.mcp.tool.dto; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @package io.shinhanlife.axhub.biz.mcp.tool.dto + * @className SearchDetailHrReq + * @description AX HUB 시스템 처리 클래스 + * @author root + * @create 2026.07.13 + *
+ * ---------- 개정이력 ----------
+ * 수정일      수정자    수정내용
+ * ---------- -------- ---------------------------
+ * 2026.07.13  root    최초생성
+ *
+ * 
+ */ +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class SearchDetailHrReq { + // TODO: Add request fields here +} diff --git a/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/dto/SearchDetailHrRes.java b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/dto/SearchDetailHrRes.java new file mode 100644 index 0000000..e3409d9 --- /dev/null +++ b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/dto/SearchDetailHrRes.java @@ -0,0 +1,26 @@ +package io.shinhanlife.axhub.biz.mcp.tool.dto; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @package io.shinhanlife.axhub.biz.mcp.tool.dto + * @className SearchDetailHrRes + * @description AX HUB 시스템 처리 클래스 + * @author root + * @create 2026.07.13 + *
+ * ---------- 개정이력 ----------
+ * 수정일      수정자    수정내용
+ * ---------- -------- ---------------------------
+ * 2026.07.13  root    최초생성
+ *
+ * 
+ */ +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class SearchDetailHrRes { + private String status; + private String message; + // TODO: Add response fields here +} diff --git a/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/dto/SearchDetailHrMciReqDto.java b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/dto/SearchDetailHrMciReqDto.java new file mode 100644 index 0000000..dba983d --- /dev/null +++ b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/dto/SearchDetailHrMciReqDto.java @@ -0,0 +1,22 @@ +package io.shinhanlife.axhub.biz.mcp.tool.hr.dto; + +import lombok.Data; + +/** + * @package io.shinhanlife.axhub.biz.mcp.tool.hr.dto + * @className SearchDetailHrMciReqDto + * @description AX HUB 시스템 처리 클래스 + * @author root + * @create 2026.07.13 + *
+ * ---------- 개정이력 ----------
+ * 수정일      수정자    수정내용
+ * ---------- -------- ---------------------------
+ * 2026.07.13  root    최초생성
+ *
+ * 
+ */ +@Data +public class SearchDetailHrMciReqDto { + // TODO: Add legacy request fields here +} diff --git a/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/dto/SearchDetailHrMciResDto.java b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/dto/SearchDetailHrMciResDto.java new file mode 100644 index 0000000..76625f3 --- /dev/null +++ b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/dto/SearchDetailHrMciResDto.java @@ -0,0 +1,22 @@ +package io.shinhanlife.axhub.biz.mcp.tool.hr.dto; + +import lombok.Data; + +/** + * @package io.shinhanlife.axhub.biz.mcp.tool.hr.dto + * @className SearchDetailHrMciResDto + * @description AX HUB 시스템 처리 클래스 + * @author root + * @create 2026.07.13 + *
+ * ---------- 개정이력 ----------
+ * 수정일      수정자    수정내용
+ * ---------- -------- ---------------------------
+ * 2026.07.13  root    최초생성
+ *
+ * 
+ */ +@Data +public class SearchDetailHrMciResDto { + // TODO: Add legacy response fields here +} diff --git a/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/mapper/SearchDetailHrMciMapper.java b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/mapper/SearchDetailHrMciMapper.java new file mode 100644 index 0000000..0f61da7 --- /dev/null +++ b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/hr/mapper/SearchDetailHrMciMapper.java @@ -0,0 +1,34 @@ +package io.shinhanlife.axhub.biz.mcp.tool.hr.mapper; + +import io.shinhanlife.axhub.biz.mcp.tool.dto.SearchDetailHrReq; +import io.shinhanlife.axhub.biz.mcp.tool.dto.SearchDetailHrRes; +import io.shinhanlife.axhub.biz.mcp.tool.hr.dto.SearchDetailHrMciReqDto; +import io.shinhanlife.axhub.biz.mcp.tool.hr.dto.SearchDetailHrMciResDto; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * @package io.shinhanlife.axhub.biz.mcp.tool.hr.mapper + * @className SearchDetailHrMciMapper + * @description AX HUB 시스템 처리 클래스 + * @author root + * @create 2026.07.13 + *
+ * ---------- 개정이력 ----------
+ * 수정일      수정자    수정내용
+ * ---------- -------- ---------------------------
+ * 2026.07.13  root    최초생성
+ *
+ * 
+ */ +@Mapper(componentModel = "spring") +public interface SearchDetailHrMciMapper { + + SearchDetailHrMciMapper INSTANCE = Mappers.getMapper(SearchDetailHrMciMapper.class); + + // @Mapping(source = "sourceField", target = "targetField") + SearchDetailHrMciReqDto toMciReq(SearchDetailHrReq req); + + SearchDetailHrRes toRes(SearchDetailHrMciResDto mciRes); +} diff --git a/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/service/SearchDetailHrService.java b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/service/SearchDetailHrService.java new file mode 100644 index 0000000..deec93f --- /dev/null +++ b/axhub-tool-hr/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/service/SearchDetailHrService.java @@ -0,0 +1,42 @@ +package io.shinhanlife.axhub.biz.mcp.tool.service; + +import io.shinhanlife.axhub.biz.mcp.tool.annotation.McpFunction; +import io.shinhanlife.axhub.biz.mcp.tool.annotation.McpTool; +import io.shinhanlife.axhub.biz.mcp.tool.dto.SearchDetailHrReq; +import io.shinhanlife.axhub.biz.mcp.tool.dto.SearchDetailHrRes; +import org.springframework.stereotype.Service; + +/** + * @package io.shinhanlife.axhub.biz.mcp.tool.service + * @className SearchDetailHrService + * @description AX HUB 시스템 처리 클래스 + * @author root + * @create 2026.07.13 + *
+ * ---------- 개정이력 ----------
+ * 수정일      수정자    수정내용
+ * ---------- -------- ---------------------------
+ * 2026.07.13  root    최초생성
+ *
+ * 
+ */ +@Service +@McpTool( + routingType = "MCI", + categoryKey = "hr" +) +public class SearchDetailHrService extends AbstractMcpToolService { + + @McpFunction( + displayName = "SearchDetailHr 툴", + name = "searchDetailhr", + description = "hr 상세 조회 합니다.", + prompt = "hr 상세 조회 합니다. 해줘.", + mappingId = "SEARCH_HR_002", + register = false, + requiresApproval = false + ) + public Object execute(SearchDetailHrReq req) { + return executeLegacy("MCI", "SEARCH_HR_002", req); + } +} diff --git a/axhub-tool-sms/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/sms/SmsToolService.java b/axhub-tool-sms/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/sms/service/SmsToolService.java similarity index 96% rename from axhub-tool-sms/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/sms/SmsToolService.java rename to axhub-tool-sms/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/sms/service/SmsToolService.java index 4bc5acf..f2b4e45 100644 --- a/axhub-tool-sms/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/sms/SmsToolService.java +++ b/axhub-tool-sms/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/sms/service/SmsToolService.java @@ -1,4 +1,4 @@ -package io.shinhanlife.axhub.biz.mcp.tool.sms; +package io.shinhanlife.axhub.biz.mcp.tool.sms.service; import io.shinhanlife.axhub.biz.mcp.tool.annotation.McpFunction; import io.shinhanlife.axhub.biz.mcp.tool.annotation.McpTool;