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;