forked from kimhyungsik/ax_hub_mcp_tool
소스 수정 완료
This commit is contained in:
@@ -1,4 +0,0 @@
|
|||||||
FROM eclipse-temurin:21-jdk-alpine
|
|
||||||
WORKDIR /app
|
|
||||||
COPY build/libs/axhub-tool-hr-0.0.1-SNAPSHOT.jar app.jar
|
|
||||||
ENTRYPOINT ["java", "-jar", "app.jar"]
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
plugins {
|
|
||||||
id 'org.springframework.boot'
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
implementation project(':axhub-tool-core')
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
compileOnly 'org.projectlombok:lombok:1.18.32'
|
|
||||||
annotationProcessor 'org.projectlombok:lombok:1.18.32'
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
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
|
|
||||||
* <pre>
|
|
||||||
* ---------- 개정이력 ----------
|
|
||||||
* 수정일 수정자 수정내용
|
|
||||||
* ---------- -------- ---------------------------
|
|
||||||
* 2026.07.13 root 최초생성
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
||||||
public class SearchDetailHrReq {
|
|
||||||
// TODO: Add request fields here
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
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
|
|
||||||
* <pre>
|
|
||||||
* ---------- 개정이력 ----------
|
|
||||||
* 수정일 수정자 수정내용
|
|
||||||
* ---------- -------- ---------------------------
|
|
||||||
* 2026.07.13 root 최초생성
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
||||||
public class SearchDetailHrRes {
|
|
||||||
private String status;
|
|
||||||
private String message;
|
|
||||||
// TODO: Add response fields here
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
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 SearchHrReq
|
|
||||||
* @description AX HUB 시스템 처리 클래스
|
|
||||||
* @author root
|
|
||||||
* @create 2026.07.13
|
|
||||||
* <pre>
|
|
||||||
* ---------- 개정이력 ----------
|
|
||||||
* 수정일 수정자 수정내용
|
|
||||||
* ---------- -------- ---------------------------
|
|
||||||
* 2026.07.13 root 최초생성
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
||||||
public class SearchHrReq {
|
|
||||||
// TODO: Add request fields here
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
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 SearchHrRes
|
|
||||||
* @description AX HUB 시스템 처리 클래스
|
|
||||||
* @author root
|
|
||||||
* @create 2026.07.13
|
|
||||||
* <pre>
|
|
||||||
* ---------- 개정이력 ----------
|
|
||||||
* 수정일 수정자 수정내용
|
|
||||||
* ---------- -------- ---------------------------
|
|
||||||
* 2026.07.13 root 최초생성
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
||||||
public class SearchHrRes {
|
|
||||||
private String status;
|
|
||||||
private String message;
|
|
||||||
// TODO: Add response fields here
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
package io.shinhanlife.axhub.biz.mcp.tool.hr;
|
|
||||||
|
|
||||||
import org.springframework.boot.SpringApplication;
|
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
||||||
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
|
|
||||||
import org.springframework.cache.annotation.EnableCaching;
|
|
||||||
|
|
||||||
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.axhub.biz.mcp.tool", "io.shinhanlife.axhub.biz.mcp.adapter", "io.shinhanlife.axhub.common.mcp", "io.shinhanlife.axhub.common.config"})
|
|
||||||
@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.axhub.biz.mcp.tool", "io.shinhanlife.axhub.biz.mcp.adapter", "io.shinhanlife.axhub.common.mcp", "io.shinhanlife.axhub.common.config"})
|
|
||||||
@EnableCaching
|
|
||||||
public class HrToolApplication {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
SpringApplication.run(HrToolApplication.class, args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
package io.shinhanlife.axhub.biz.mcp.tool.hr.converter;
|
|
||||||
|
|
||||||
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.converter
|
|
||||||
* @className SearchDetailHrMciConverter
|
|
||||||
* @description AX HUB 시스템 처리 클래스
|
|
||||||
* @author root
|
|
||||||
* @create 2026.07.13
|
|
||||||
* <pre>
|
|
||||||
* ---------- 개정이력 ----------
|
|
||||||
* 수정일 수정자 수정내용
|
|
||||||
* ---------- -------- ---------------------------
|
|
||||||
* 2026.07.13 root 최초생성
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@Mapper(componentModel = "spring")
|
|
||||||
public interface SearchDetailHrMciConverter {
|
|
||||||
|
|
||||||
SearchDetailHrMciConverter INSTANCE = Mappers.getMapper(SearchDetailHrMciConverter.class);
|
|
||||||
|
|
||||||
// @Mapping(source = "sourceField", target = "targetField")
|
|
||||||
SearchDetailHrMciReqDto toMciReq(SearchDetailHrReq req);
|
|
||||||
|
|
||||||
SearchDetailHrRes toRes(SearchDetailHrMciResDto mciRes);
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
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
|
|
||||||
* <pre>
|
|
||||||
* ---------- 개정이력 ----------
|
|
||||||
* 수정일 수정자 수정내용
|
|
||||||
* ---------- -------- ---------------------------
|
|
||||||
* 2026.07.13 root 최초생성
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class SearchDetailHrMciReqDto {
|
|
||||||
// TODO: Add legacy request fields here
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
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
|
|
||||||
* <pre>
|
|
||||||
* ---------- 개정이력 ----------
|
|
||||||
* 수정일 수정자 수정내용
|
|
||||||
* ---------- -------- ---------------------------
|
|
||||||
* 2026.07.13 root 최초생성
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class SearchDetailHrMciResDto {
|
|
||||||
// TODO: Add legacy response fields here
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
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
|
|
||||||
* <pre>
|
|
||||||
* ---------- 개정이력 ----------
|
|
||||||
* 수정일 수정자 수정내용
|
|
||||||
* ---------- -------- ---------------------------
|
|
||||||
* 2026.07.13 root 최초생성
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
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.SearchHrReq;
|
|
||||||
import io.shinhanlife.axhub.biz.mcp.tool.dto.SearchHrRes;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @package io.shinhanlife.axhub.biz.mcp.tool.service
|
|
||||||
* @className SearchHrService
|
|
||||||
* @description AX HUB 시스템 처리 클래스
|
|
||||||
* @author root
|
|
||||||
* @create 2026.07.13
|
|
||||||
* <pre>
|
|
||||||
* ---------- 개정이력 ----------
|
|
||||||
* 수정일 수정자 수정내용
|
|
||||||
* ---------- -------- ---------------------------
|
|
||||||
* 2026.07.13 root 최초생성
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@McpTool(
|
|
||||||
routingType = "MCI",
|
|
||||||
categoryKey = "hr"
|
|
||||||
)
|
|
||||||
public class SearchHrService extends AbstractMcpToolService {
|
|
||||||
|
|
||||||
@McpFunction(
|
|
||||||
displayName = "SearchHr 툴",
|
|
||||||
name = "SearchHr",
|
|
||||||
description = "HR 을 조회 합니다.",
|
|
||||||
prompt = "HR 을 조회 합니다. 해줘.",
|
|
||||||
mappingId = "SEARCH_HR_001",
|
|
||||||
register = false,
|
|
||||||
requiresApproval = false
|
|
||||||
)
|
|
||||||
public Object execute(SearchHrReq req) {
|
|
||||||
return executeLegacy("MCI", "SEARCH_HR_001", req);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
# Local 환경 전용 설정 (H2 메모리 DB 등)
|
|
||||||
spring.datasource.url=jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1;
|
|
||||||
spring.datasource.driverClassName=com.p6spy.engine.spy.P6SpyDriver
|
|
||||||
spring.datasource.username=sa
|
|
||||||
spring.datasource.password=password
|
|
||||||
|
|
||||||
spring.h2.console.enabled=true
|
|
||||||
# EIMS 동적 라우팅 접속 정보
|
|
||||||
eims.http.url=http://localhost:${server.port}/api/gateway
|
|
||||||
eims.tcp.host=127.0.0.1
|
|
||||||
eims.tcp.port=8090
|
|
||||||
eims.tcp.timeout=5000
|
|
||||||
eims.jsp.form.url=http://localhost:${server.port}/mock/jsp-form
|
|
||||||
eims.jsp.json.url=http://localhost:${server.port}/mock/jsp-json
|
|
||||||
eims.mci.url=http://localhost:${server.port}/api/mock/esb/api
|
|
||||||
eims.mcistring.url=http://localhost:${server.port}/api/mock/esb/string
|
|
||||||
|
|
||||||
# API 보안 키 설정
|
|
||||||
mcp.security.tenant-domains.mcp-client-1=CUSTOMER,COMMON
|
|
||||||
mcp.security.tenant-domains.mcp-client-2=ALL
|
|
||||||
|
|
||||||
# Gateway/Tool URLs
|
|
||||||
axhub.gateway.url=http://localhost:8081
|
|
||||||
axhub.tool.url=http://localhost:${server.port}
|
|
||||||
|
|
||||||
# Disable Kafka
|
|
||||||
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration
|
|
||||||
|
|
||||||
# Suppress Kafka Connection Logs
|
|
||||||
logging.level.org.apache.kafka=ERROR
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
spring:
|
|
||||||
application:
|
|
||||||
name: axhub-tool-hr
|
|
||||||
config:
|
|
||||||
import: "classpath:config/application-glow-local.yml"
|
|
||||||
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
server.port=8086
|
|
||||||
spring.application.name=axhub-tool-hr
|
|
||||||
|
|
||||||
spring.profiles.active=local
|
|
||||||
|
|
||||||
# Suppress Kafka Connection Logs
|
|
||||||
logging.level.org.apache.kafka=ERROR
|
|
||||||
|
|
||||||
# Auto Prefix Namespace
|
|
||||||
mcp.namespace=hr
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<configuration>
|
|
||||||
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] %-5level %logger{36} - %msg%n" />
|
|
||||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
|
||||||
<encoder>
|
|
||||||
<pattern>${LOG_PATTERN}</pattern>
|
|
||||||
</encoder>
|
|
||||||
</appender>
|
|
||||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
||||||
<file>logs/axhub-tool-hr.log</file>
|
|
||||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
||||||
<fileNamePattern>logs/axhub-tool-hr-%d{yyyy-MM-dd}.log</fileNamePattern>
|
|
||||||
<maxHistory>30</maxHistory>
|
|
||||||
</rollingPolicy>
|
|
||||||
<encoder>
|
|
||||||
<pattern>${LOG_PATTERN}</pattern>
|
|
||||||
</encoder>
|
|
||||||
</appender>
|
|
||||||
<root level="INFO">
|
|
||||||
<appender-ref ref="CONSOLE" />
|
|
||||||
<appender-ref ref="FILE" />
|
|
||||||
</root>
|
|
||||||
<logger name="io.shinhanlife" level="DEBUG" />
|
|
||||||
</configuration>
|
|
||||||
Reference in New Issue
Block a user