소스 업데이트
All checks were successful
Deploy Tools / deploy (push) Successful in 55s

This commit is contained in:
jade
2026-08-27 09:02:49 +09:00
parent 935702a569
commit eff142b956
22 changed files with 5 additions and 1514 deletions

View File

@@ -7,8 +7,7 @@ spring:
- classpath:glow/application-glow.yml - classpath:glow/application-glow.yml
- classpath:glow/application-glow-local.yml - classpath:glow/application-glow-local.yml
datasource: datasource:
url: jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1; url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;
driverClassName: com.p6spy.engine.spy.P6SpyDriver
username: sa username: sa
password: password password: password
h2: h2:

View File

@@ -31,7 +31,6 @@ dependencies {
// 현재 로컬 테스트 DB 및 SQL 로그 처리에 사용합니다. // 현재 로컬 테스트 DB 및 SQL 로그 처리에 사용합니다.
api 'com.h2database:h2' api 'com.h2database:h2'
api 'p6spy:p6spy:3.9.1'
// Spring Data Redis가 사용하는 Redis Client를 공통 모듈에서 직접 참조합니다. // Spring Data Redis가 사용하는 Redis Client를 공통 모듈에서 직접 참조합니다.
api 'io.lettuce:lettuce-core:6.6.0.RELEASE' api 'io.lettuce:lettuce-core:6.6.0.RELEASE'

View File

@@ -1,54 +0,0 @@
package io.shinhanlife.dat.lib.config;
import com.p6spy.engine.logging.Category;
import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
/**
* @package io.shinhanlife.dat.lib.config
* @className P6SpySqlFormatter
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 0986406 최초생성
*
* </pre>
*/
public class P6SpySqlFormatter implements MessageFormattingStrategy {
@Override
public String formatMessage(int connectionId, String now, long elapsed,
String category, String prepared, String sql, String url) {
if (sql == null || sql.isBlank()) return "";
if (Category.STATEMENT.getName().equals(category)) {
String prettySQL = sql
.replaceAll("(?i)\\bSELECT\\b", "\nSELECT")
.replaceAll("(?i)\\bFROM\\b", "\n FROM")
.replaceAll("(?i)\\bWHERE\\b", "\n WHERE")
.replaceAll("(?i)\\bAND\\b", "\n AND")
.replaceAll("(?i)\\bOR\\b", "\n OR")
.replaceAll("(?i)\\bINNER JOIN\\b", "\n INNER JOIN")
.replaceAll("(?i)\\bLEFT JOIN\\b", "\n LEFT JOIN")
.replaceAll("(?i)\\bORDER BY\\b", "\n ORDER BY")
.replaceAll("(?i)\\bGROUP BY\\b", "\n GROUP BY")
.replaceAll("(?i)\\bINSERT INTO\\b", "\nINSERT INTO")
.replaceAll("(?i)\\bVALUES\\b", "\n VALUES")
.replaceAll("(?i)\\bUPDATE\\b", "\nUPDATE")
.replaceAll("(?i)\\bSET\\b", "\n SET")
.replaceAll("(?i)\\bDELETE FROM\\b", "\nDELETE FROM");
return String.format("""
\n┌─────────────────────────────────────────
│ SQL [%dms]
│%s
└─────────────────────────────────────────
""", elapsed, prettySQL.indent(2).stripTrailing());
}
return "";
}
}

View File

@@ -156,8 +156,7 @@ public class PodScaffolder {
- classpath:glow/application-glow.yml - classpath:glow/application-glow.yml
- classpath:glow/application-glow-local.yml - classpath:glow/application-glow-local.yml
datasource: datasource:
url: jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1; url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;
driverClassName: com.p6spy.engine.spy.P6SpyDriver
username: sa username: sa
password: password password: password
h2: h2:

View File

@@ -1,16 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.dto;
import lombok.Data;
import org.springaicommunity.mcp.annotation.McpToolParam;
@Data
public class AgentToolRequest {
@McpToolParam(description = "설계사번호", required = false)
private String agentId;
@McpToolParam(description = "GA 조직번호", required = false)
private String organizationId;
@McpToolParam(description = "조회 기준일(YYYY-MM-DD)", required = false)
private String queryDate;
}

View File

@@ -1,15 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.dto;
import java.util.List;
import lombok.Data;
@Data
public class AgentToolResponse {
private String toolName;
private String category;
private String referenceId;
private String status;
private String summary;
private String asOfDate;
private List<String> details;
}

View File

@@ -1,152 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface AgentInquiryUseCase {
@McpTool(name = "agt_agent_profile", title = "GA 설계사 기본정보 조회", description = "GA 설계사 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_AGENT_PROFILE",
functionDescription = "GA 설계사 기본정보 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 기본정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 기본정보 조회 정보를 보여줘", "GA 설계사 기본정보 조회 결과를 확인해줘", "현재 GA 설계사 기본정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAgentProfile(AgentToolRequest request);
@McpTool(name = "agt_appointment_status", title = "GA 설계사 위촉상태 조회", description = "GA 설계사 위촉상태 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_APPOINTMENT_STATUS",
functionDescription = "GA 설계사 위촉상태 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 위촉상태 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 위촉상태 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 위촉상태 조회 정보를 보여줘", "GA 설계사 위촉상태 조회 결과를 확인해줘", "현재 GA 설계사 위촉상태 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAppointmentStatus(AgentToolRequest request);
@McpTool(name = "agt_agent_license", title = "GA 설계사 자격정보 조회", description = "GA 설계사 자격정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_AGENT_LICENSE",
functionDescription = "GA 설계사 자격정보 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 자격정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 자격정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 자격정보 조회 정보를 보여줘", "GA 설계사 자격정보 조회 결과를 확인해줘", "현재 GA 설계사 자격정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAgentLicense(AgentToolRequest request);
@McpTool(name = "agt_commission_grade", title = "GA 설계사 수수료등급 조회", description = "GA 설계사 수수료등급 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_COMMISSION_GRADE",
functionDescription = "GA 설계사 수수료등급 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 수수료등급 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 수수료등급 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 수수료등급 조회 정보를 보여줘", "GA 설계사 수수료등급 조회 결과를 확인해줘", "현재 GA 설계사 수수료등급 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getCommissionGrade(AgentToolRequest request);
@McpTool(name = "agt_agent_education", title = "GA 설계사 교육이력 조회", description = "GA 설계사 교육이력 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_AGENT_EDUCATION",
functionDescription = "GA 설계사 교육이력 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 교육이력 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 교육이력 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 교육이력 조회 정보를 보여줘", "GA 설계사 교육이력 조회 결과를 확인해줘", "현재 GA 설계사 교육이력 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAgentEducation(AgentToolRequest request);
@McpTool(name = "agt_agent_compliance", title = "GA 설계사 준법정보 조회", description = "GA 설계사 준법정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_AGENT_COMPLIANCE",
functionDescription = "GA 설계사 준법정보 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 준법정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 준법정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 준법정보 조회 정보를 보여줘", "GA 설계사 준법정보 조회 결과를 확인해줘", "현재 GA 설계사 준법정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAgentCompliance(AgentToolRequest request);
@McpTool(name = "agt_customer_assignment", title = "GA 설계사 고객배정 조회", description = "GA 설계사 고객배정 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_CUSTOMER_ASSIGNMENT",
functionDescription = "GA 설계사 고객배정 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 고객배정 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 고객배정 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 고객배정 조회 정보를 보여줘", "GA 설계사 고객배정 조회 결과를 확인해줘", "현재 GA 설계사 고객배정 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getCustomerAssignment(AgentToolRequest request);
@McpTool(name = "agt_activity_status", title = "GA 설계사 활동상태 조회", description = "GA 설계사 활동상태 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_ACTIVITY_STATUS",
functionDescription = "GA 설계사 활동상태 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 활동상태 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 활동상태 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 활동상태 조회 정보를 보여줘", "GA 설계사 활동상태 조회 결과를 확인해줘", "현재 GA 설계사 활동상태 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getActivityStatus(AgentToolRequest request);
}

View File

@@ -1,170 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface AgentPerformanceUseCase {
@McpTool(name = "agt_production_summary", title = "GA 설계사 신계약 실적 조회", description = "GA 설계사 신계약 실적 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_PRODUCTION_SUMMARY",
functionDescription = "GA 설계사 신계약 실적 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 신계약 실적 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 신계약 실적 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 신계약 실적 조회 정보를 보여줘", "GA 설계사 신계약 실적 조회 결과를 확인해줘", "현재 GA 설계사 신계약 실적 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getProductionSummary(AgentToolRequest request);
@McpTool(name = "agt_contract_count", title = "GA 설계사 계약건수 조회", description = "GA 설계사 계약건수 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_CONTRACT_COUNT",
functionDescription = "GA 설계사 계약건수 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 계약건수 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 계약건수 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 계약건수 조회 정보를 보여줘", "GA 설계사 계약건수 조회 결과를 확인해줘", "현재 GA 설계사 계약건수 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getContractCount(AgentToolRequest request);
@McpTool(name = "agt_premium_summary", title = "GA 설계사 보험료 실적 조회", description = "GA 설계사 보험료 실적 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_PREMIUM_SUMMARY",
functionDescription = "GA 설계사 보험료 실적 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 보험료 실적 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 보험료 실적 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 보험료 실적 조회 정보를 보여줘", "GA 설계사 보험료 실적 조회 결과를 확인해줘", "현재 GA 설계사 보험료 실적 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getPremiumSummary(AgentToolRequest request);
@McpTool(name = "agt_persistency_rate", title = "GA 설계사 계약유지율 조회", description = "GA 설계사 계약유지율 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_PERSISTENCY_RATE",
functionDescription = "GA 설계사 계약유지율 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 계약유지율 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 계약유지율 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 계약유지율 조회 정보를 보여줘", "GA 설계사 계약유지율 조회 결과를 확인해줘", "현재 GA 설계사 계약유지율 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getPersistencyRate(AgentToolRequest request);
@McpTool(name = "agt_claim_support", title = "GA 보험금 청구지원 현황 조회", description = "GA 보험금 청구지원 현황 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_CLAIM_SUPPORT",
functionDescription = "GA 보험금 청구지원 현황 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 보험금 청구지원 현황 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 보험금 청구지원 현황 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 보험금 청구지원 현황 조회 정보를 보여줘", "GA 보험금 청구지원 현황 조회 결과를 확인해줘", "현재 GA 보험금 청구지원 현황 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getClaimSupport(AgentToolRequest request);
@McpTool(name = "agt_commission_summary", title = "GA 설계사 수수료 요약 조회", description = "GA 설계사 수수료 요약 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_COMMISSION_SUMMARY",
functionDescription = "GA 설계사 수수료 요약 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 수수료 요약 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 수수료 요약 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 수수료 요약 조회 정보를 보여줘", "GA 설계사 수수료 요약 조회 결과를 확인해줘", "현재 GA 설계사 수수료 요약 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getCommissionSummary(AgentToolRequest request);
@McpTool(name = "agt_campaign", title = "GA 영업 캠페인 조회", description = "GA 영업 캠페인 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_CAMPAIGN",
functionDescription = "GA 영업 캠페인 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 영업 캠페인 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 영업 캠페인 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 영업 캠페인 조회 정보를 보여줘", "GA 영업 캠페인 조회 결과를 확인해줘", "현재 GA 영업 캠페인 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getCampaign(AgentToolRequest request);
@McpTool(name = "agt_task_list", title = "GA 설계사 업무목록 조회", description = "GA 설계사 업무목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_TASK_LIST",
functionDescription = "GA 설계사 업무목록 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 업무목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 업무목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 업무목록 조회 정보를 보여줘", "GA 설계사 업무목록 조회 결과를 확인해줘", "현재 GA 설계사 업무목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getTaskList(AgentToolRequest request);
@McpTool(name = "agt_notice_list", title = "GA 설계사 공지목록 조회", description = "GA 설계사 공지목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_NOTICE_LIST",
functionDescription = "GA 설계사 공지목록 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 설계사 공지목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 설계사 공지목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 설계사 공지목록 조회 정보를 보여줘", "GA 설계사 공지목록 조회 결과를 확인해줘", "현재 GA 설계사 공지목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getNoticeList(AgentToolRequest request);
}

View File

@@ -1,152 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface GaOrganizationUseCase {
@McpTool(name = "agt_ga_profile", title = "GA 조직 기본정보 조회", description = "GA 조직 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_GA_PROFILE",
functionDescription = "GA 조직 기본정보 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 조직 기본정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 조직 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 조직 기본정보 조회 정보를 보여줘", "GA 조직 기본정보 조회 결과를 확인해줘", "현재 GA 조직 기본정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getGaProfile(AgentToolRequest request);
@McpTool(name = "agt_branch_list", title = "GA 지점목록 조회", description = "GA 지점목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_BRANCH_LIST",
functionDescription = "GA 지점목록 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 지점목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 지점목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 지점목록 조회 정보를 보여줘", "GA 지점목록 조회 결과를 확인해줘", "현재 GA 지점목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getBranchList(AgentToolRequest request);
@McpTool(name = "agt_organization_tree", title = "GA 조직도 조회", description = "GA 조직도 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_ORGANIZATION_TREE",
functionDescription = "GA 조직도 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 조직도 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 조직도 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 조직도 조회 정보를 보여줘", "GA 조직도 조회 결과를 확인해줘", "현재 GA 조직도 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getOrganizationTree(AgentToolRequest request);
@McpTool(name = "agt_organization_manager", title = "GA 조직 책임자 조회", description = "GA 조직 책임자 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_ORGANIZATION_MANAGER",
functionDescription = "GA 조직 책임자 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 조직 책임자 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 조직 책임자 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 조직 책임자 조회 정보를 보여줘", "GA 조직 책임자 조회 결과를 확인해줘", "현재 GA 조직 책임자 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getOrganizationManager(AgentToolRequest request);
@McpTool(name = "agt_organization_agent_list", title = "GA 소속 설계사 목록 조회", description = "GA 소속 설계사 목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_ORGANIZATION_AGENT_LIST",
functionDescription = "GA 소속 설계사 목록 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 소속 설계사 목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 소속 설계사 목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 소속 설계사 목록 조회 정보를 보여줘", "GA 소속 설계사 목록 조회 결과를 확인해줘", "현재 GA 소속 설계사 목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getOrganizationAgentList(AgentToolRequest request);
@McpTool(name = "agt_sales_area", title = "GA 영업지역 조회", description = "GA 영업지역 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_SALES_AREA",
functionDescription = "GA 영업지역 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 영업지역 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 영업지역 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 영업지역 조회 정보를 보여줘", "GA 영업지역 조회 결과를 확인해줘", "현재 GA 영업지역 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getSalesArea(AgentToolRequest request);
@McpTool(name = "agt_affiliation_history", title = "GA 소속변경 이력 조회", description = "GA 소속변경 이력 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_AFFILIATION_HISTORY",
functionDescription = "GA 소속변경 이력 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 소속변경 이력 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 소속변경 이력 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 소속변경 이력 조회 정보를 보여줘", "GA 소속변경 이력 조회 결과를 확인해줘", "현재 GA 소속변경 이력 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getAffiliationHistory(AgentToolRequest request);
@McpTool(name = "agt_support_contact", title = "GA 업무지원 연락처 조회", description = "GA 업무지원 연락처 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "agt",
mappingId = "DIRECT_AGT_SUPPORT_CONTACT",
functionDescription = "GA 업무지원 연락처 조회 정보를 조회합니다.",
whenToUse = "GA·설계사 업무에서 GA 업무지원 연락처 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "GA 업무지원 연락처 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"GA 업무지원 연락처 조회 정보를 보여줘", "GA 업무지원 연락처 조회 결과를 확인해줘", "현재 GA 업무지원 연락처 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"agt", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
AgentToolResponse getSupportContact(AgentToolRequest request);
}

View File

@@ -1,67 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase.impl;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import io.shinhanlife.dat.mcc.biz.agt.usecase.AgentInquiryUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class AgentInquiryUseCaseImpl implements AgentInquiryUseCase {
@Override
public AgentToolResponse getAgentProfile(AgentToolRequest request) {
return mockResponse(request, "agt_agent_profile", "GA 설계사 기본정보 조회");
}
@Override
public AgentToolResponse getAppointmentStatus(AgentToolRequest request) {
return mockResponse(request, "agt_appointment_status", "GA 설계사 위촉상태 조회");
}
@Override
public AgentToolResponse getAgentLicense(AgentToolRequest request) {
return mockResponse(request, "agt_agent_license", "GA 설계사 자격정보 조회");
}
@Override
public AgentToolResponse getCommissionGrade(AgentToolRequest request) {
return mockResponse(request, "agt_commission_grade", "GA 설계사 수수료등급 조회");
}
@Override
public AgentToolResponse getAgentEducation(AgentToolRequest request) {
return mockResponse(request, "agt_agent_education", "GA 설계사 교육이력 조회");
}
@Override
public AgentToolResponse getAgentCompliance(AgentToolRequest request) {
return mockResponse(request, "agt_agent_compliance", "GA 설계사 준법정보 조회");
}
@Override
public AgentToolResponse getCustomerAssignment(AgentToolRequest request) {
return mockResponse(request, "agt_customer_assignment", "GA 설계사 고객배정 조회");
}
@Override
public AgentToolResponse getActivityStatus(AgentToolRequest request) {
return mockResponse(request, "agt_activity_status", "GA 설계사 활동상태 조회");
}
private AgentToolResponse mockResponse(AgentToolRequest request, String toolName, String title) {
AgentToolResponse response = new AgentToolResponse();
response.setToolName(toolName);
response.setCategory("AGT");
response.setReferenceId(request != null && hasText(request.getAgentId()) ? request.getAgentId()
: request != null && hasText(request.getOrganizationId()) ? request.getOrganizationId() : "AGT-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,72 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase.impl;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import io.shinhanlife.dat.mcc.biz.agt.usecase.AgentPerformanceUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class AgentPerformanceUseCaseImpl implements AgentPerformanceUseCase {
@Override
public AgentToolResponse getProductionSummary(AgentToolRequest request) {
return mockResponse(request, "agt_production_summary", "GA 설계사 신계약 실적 조회");
}
@Override
public AgentToolResponse getContractCount(AgentToolRequest request) {
return mockResponse(request, "agt_contract_count", "GA 설계사 계약건수 조회");
}
@Override
public AgentToolResponse getPremiumSummary(AgentToolRequest request) {
return mockResponse(request, "agt_premium_summary", "GA 설계사 보험료 실적 조회");
}
@Override
public AgentToolResponse getPersistencyRate(AgentToolRequest request) {
return mockResponse(request, "agt_persistency_rate", "GA 설계사 계약유지율 조회");
}
@Override
public AgentToolResponse getClaimSupport(AgentToolRequest request) {
return mockResponse(request, "agt_claim_support", "GA 보험금 청구지원 현황 조회");
}
@Override
public AgentToolResponse getCommissionSummary(AgentToolRequest request) {
return mockResponse(request, "agt_commission_summary", "GA 설계사 수수료 요약 조회");
}
@Override
public AgentToolResponse getCampaign(AgentToolRequest request) {
return mockResponse(request, "agt_campaign", "GA 영업 캠페인 조회");
}
@Override
public AgentToolResponse getTaskList(AgentToolRequest request) {
return mockResponse(request, "agt_task_list", "GA 설계사 업무목록 조회");
}
@Override
public AgentToolResponse getNoticeList(AgentToolRequest request) {
return mockResponse(request, "agt_notice_list", "GA 설계사 공지목록 조회");
}
private AgentToolResponse mockResponse(AgentToolRequest request, String toolName, String title) {
AgentToolResponse response = new AgentToolResponse();
response.setToolName(toolName);
response.setCategory("AGT");
response.setReferenceId(request != null && hasText(request.getAgentId()) ? request.getAgentId()
: request != null && hasText(request.getOrganizationId()) ? request.getOrganizationId() : "AGT-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,67 +0,0 @@
package io.shinhanlife.dat.mcc.biz.agt.usecase.impl;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolRequest;
import io.shinhanlife.dat.mcc.biz.agt.dto.AgentToolResponse;
import io.shinhanlife.dat.mcc.biz.agt.usecase.GaOrganizationUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class GaOrganizationUseCaseImpl implements GaOrganizationUseCase {
@Override
public AgentToolResponse getGaProfile(AgentToolRequest request) {
return mockResponse(request, "agt_ga_profile", "GA 조직 기본정보 조회");
}
@Override
public AgentToolResponse getBranchList(AgentToolRequest request) {
return mockResponse(request, "agt_branch_list", "GA 지점목록 조회");
}
@Override
public AgentToolResponse getOrganizationTree(AgentToolRequest request) {
return mockResponse(request, "agt_organization_tree", "GA 조직도 조회");
}
@Override
public AgentToolResponse getOrganizationManager(AgentToolRequest request) {
return mockResponse(request, "agt_organization_manager", "GA 조직 책임자 조회");
}
@Override
public AgentToolResponse getOrganizationAgentList(AgentToolRequest request) {
return mockResponse(request, "agt_organization_agent_list", "GA 소속 설계사 목록 조회");
}
@Override
public AgentToolResponse getSalesArea(AgentToolRequest request) {
return mockResponse(request, "agt_sales_area", "GA 영업지역 조회");
}
@Override
public AgentToolResponse getAffiliationHistory(AgentToolRequest request) {
return mockResponse(request, "agt_affiliation_history", "GA 소속변경 이력 조회");
}
@Override
public AgentToolResponse getSupportContact(AgentToolRequest request) {
return mockResponse(request, "agt_support_contact", "GA 업무지원 연락처 조회");
}
private AgentToolResponse mockResponse(AgentToolRequest request, String toolName, String title) {
AgentToolResponse response = new AgentToolResponse();
response.setToolName(toolName);
response.setCategory("AGT");
response.setReferenceId(request != null && hasText(request.getAgentId()) ? request.getAgentId()
: request != null && hasText(request.getOrganizationId()) ? request.getOrganizationId() : "AGT-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,152 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface ClaimInquiryUseCase {
@McpTool(name = "pro_claim_eligibility", title = "보험금 청구 가능여부 조회", description = "보험금 청구 가능여부 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_ELIGIBILITY",
functionDescription = "보험금 청구 가능여부 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 청구 가능여부 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 청구 가능여부 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 청구 가능여부 조회 정보를 보여줘", "보험금 청구 가능여부 조회 결과를 확인해줘", "현재 보험금 청구 가능여부 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimEligibility(ProductToolRequest request);
@McpTool(name = "pro_claim_history", title = "보험금 청구이력 조회", description = "보험금 청구이력 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_HISTORY",
functionDescription = "보험금 청구이력 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 청구이력 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 청구이력 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 청구이력 조회 정보를 보여줘", "보험금 청구이력 조회 결과를 확인해줘", "현재 보험금 청구이력 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimHistory(ProductToolRequest request);
@McpTool(name = "pro_claim_status", title = "보험금 청구상태 조회", description = "보험금 청구상태 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_STATUS",
functionDescription = "보험금 청구상태 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 청구상태 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 청구상태 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 청구상태 조회 정보를 보여줘", "보험금 청구상태 조회 결과를 확인해줘", "현재 보험금 청구상태 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimStatus(ProductToolRequest request);
@McpTool(name = "pro_claim_documents", title = "보험금 청구서류 조회", description = "보험금 청구서류 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_DOCUMENTS",
functionDescription = "보험금 청구서류 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 청구서류 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 청구서류 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 청구서류 조회 정보를 보여줘", "보험금 청구서류 조회 결과를 확인해줘", "현재 보험금 청구서류 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimDocuments(ProductToolRequest request);
@McpTool(name = "pro_claim_payment", title = "보험금 지급내역 조회", description = "보험금 지급내역 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_PAYMENT",
functionDescription = "보험금 지급내역 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 지급내역 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 지급내역 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 지급내역 조회 정보를 보여줘", "보험금 지급내역 조회 결과를 확인해줘", "현재 보험금 지급내역 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimPayment(ProductToolRequest request);
@McpTool(name = "pro_claim_accident", title = "보험사고 정보 조회", description = "보험사고 정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_ACCIDENT",
functionDescription = "보험사고 정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험사고 정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험사고 정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험사고 정보 조회 정보를 보여줘", "보험사고 정보 조회 결과를 확인해줘", "현재 보험사고 정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimAccident(ProductToolRequest request);
@McpTool(name = "pro_claim_beneficiary", title = "보험금 수익자 조회", description = "보험금 수익자 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_BENEFICIARY",
functionDescription = "보험금 수익자 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 수익자 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 수익자 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 수익자 조회 정보를 보여줘", "보험금 수익자 조회 결과를 확인해줘", "현재 보험금 수익자 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimBeneficiary(ProductToolRequest request);
@McpTool(name = "pro_claim_contact", title = "보험금 청구 담당자 조회", description = "보험금 청구 담당자 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CLAIM_CONTACT",
functionDescription = "보험금 청구 담당자 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험금 청구 담당자 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험금 청구 담당자 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험금 청구 담당자 조회 정보를 보여줘", "보험금 청구 담당자 조회 결과를 확인해줘", "현재 보험금 청구 담당자 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getClaimContact(ProductToolRequest request);
}

View File

@@ -1,170 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface ContractInquiryUseCase {
@McpTool(name = "pro_contract_list", title = "보험계약 목록 조회", description = "보험계약 목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_LIST",
functionDescription = "보험계약 목록 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 목록 조회 정보를 보여줘", "보험계약 목록 조회 결과를 확인해줘", "현재 보험계약 목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractList(ProductToolRequest request);
@McpTool(name = "pro_contract_detail", title = "보험계약 상세 조회", description = "보험계약 상세 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_DETAIL",
functionDescription = "보험계약 상세 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 상세 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 상세 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 상세 조회 정보를 보여줘", "보험계약 상세 조회 결과를 확인해줘", "현재 보험계약 상세 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractDetail(ProductToolRequest request);
@McpTool(name = "pro_contract_coverage", title = "보험계약 보장내역 조회", description = "보험계약 보장내역 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_COVERAGE",
functionDescription = "보험계약 보장내역 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 보장내역 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 보장내역 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 보장내역 조회 정보를 보여줘", "보험계약 보장내역 조회 결과를 확인해줘", "현재 보험계약 보장내역 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractCoverage(ProductToolRequest request);
@McpTool(name = "pro_contract_premium", title = "보험계약 보험료 조회", description = "보험계약 보험료 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_PREMIUM",
functionDescription = "보험계약 보험료 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 보험료 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 보험료 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 보험료 조회 정보를 보여줘", "보험계약 보험료 조회 결과를 확인해줘", "현재 보험계약 보험료 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractPremium(ProductToolRequest request);
@McpTool(name = "pro_contract_payment_status", title = "보험료 납입상태 조회", description = "보험료 납입상태 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_PAYMENT_STATUS",
functionDescription = "보험료 납입상태 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험료 납입상태 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험료 납입상태 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험료 납입상태 조회 정보를 보여줘", "보험료 납입상태 조회 결과를 확인해줘", "현재 보험료 납입상태 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractPaymentStatus(ProductToolRequest request);
@McpTool(name = "pro_contract_beneficiary", title = "보험계약 수익자 조회", description = "보험계약 수익자 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_BENEFICIARY",
functionDescription = "보험계약 수익자 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 수익자 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 수익자 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 수익자 조회 정보를 보여줘", "보험계약 수익자 조회 결과를 확인해줘", "현재 보험계약 수익자 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractBeneficiary(ProductToolRequest request);
@McpTool(name = "pro_contract_surrender_value", title = "보험계약 해지환급금 조회", description = "보험계약 해지환급금 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_SURRENDER_VALUE",
functionDescription = "보험계약 해지환급금 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 해지환급금 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 해지환급금 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 해지환급금 조회 정보를 보여줘", "보험계약 해지환급금 조회 결과를 확인해줘", "현재 보험계약 해지환급금 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractSurrenderValue(ProductToolRequest request);
@McpTool(name = "pro_contract_loan_status", title = "보험계약 대출현황 조회", description = "보험계약 대출현황 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_LOAN_STATUS",
functionDescription = "보험계약 대출현황 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 대출현황 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 대출현황 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 대출현황 조회 정보를 보여줘", "보험계약 대출현황 조회 결과를 확인해줘", "현재 보험계약 대출현황 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractLoanStatus(ProductToolRequest request);
@McpTool(name = "pro_contract_rider_list", title = "보험계약 특약목록 조회", description = "보험계약 특약목록 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CONTRACT_RIDER_LIST",
functionDescription = "보험계약 특약목록 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 보험계약 특약목록 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "보험계약 특약목록 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"보험계약 특약목록 조회 정보를 보여줘", "보험계약 특약목록 조회 결과를 확인해줘", "현재 보험계약 특약목록 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getContractRiderList(ProductToolRequest request);
}

View File

@@ -1,152 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase;
import io.shinhanlife.dat.lib.annotation.GrowToolHint;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import org.springaicommunity.mcp.annotation.McpTool;
public interface CustomerInquiryUseCase {
@McpTool(name = "pro_customer_profile", title = "고객 기본정보 조회", description = "고객 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_PROFILE",
functionDescription = "고객 기본정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 기본정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 기본정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 기본정보 조회 정보를 보여줘", "고객 기본정보 조회 결과를 확인해줘", "현재 고객 기본정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerProfile(ProductToolRequest request);
@McpTool(name = "pro_customer_contact", title = "고객 연락처 조회", description = "고객 연락처 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_CONTACT",
functionDescription = "고객 연락처 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 연락처 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 연락처 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 연락처 조회 정보를 보여줘", "고객 연락처 조회 결과를 확인해줘", "현재 고객 연락처 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerContact(ProductToolRequest request);
@McpTool(name = "pro_customer_consent", title = "고객 동의정보 조회", description = "고객 동의정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_CONSENT",
functionDescription = "고객 동의정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 동의정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 동의정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 동의정보 조회 정보를 보여줘", "고객 동의정보 조회 결과를 확인해줘", "현재 고객 동의정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerConsent(ProductToolRequest request);
@McpTool(name = "pro_customer_identity", title = "고객 본인확인정보 조회", description = "고객 본인확인정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_IDENTITY",
functionDescription = "고객 본인확인정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 본인확인정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 본인확인정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 본인확인정보 조회 정보를 보여줘", "고객 본인확인정보 조회 결과를 확인해줘", "현재 고객 본인확인정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerIdentity(ProductToolRequest request);
@McpTool(name = "pro_customer_address", title = "고객 주소정보 조회", description = "고객 주소정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_ADDRESS",
functionDescription = "고객 주소정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 주소정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 주소정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 주소정보 조회 정보를 보여줘", "고객 주소정보 조회 결과를 확인해줘", "현재 고객 주소정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerAddress(ProductToolRequest request);
@McpTool(name = "pro_customer_occupation", title = "고객 직업정보 조회", description = "고객 직업정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_OCCUPATION",
functionDescription = "고객 직업정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 직업정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 직업정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 직업정보 조회 정보를 보여줘", "고객 직업정보 조회 결과를 확인해줘", "현재 고객 직업정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerOccupation(ProductToolRequest request);
@McpTool(name = "pro_customer_family", title = "고객 가족정보 조회", description = "고객 가족정보 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_FAMILY",
functionDescription = "고객 가족정보 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 가족정보 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 가족정보 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 가족정보 조회 정보를 보여줘", "고객 가족정보 조회 결과를 확인해줘", "현재 고객 가족정보 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerFamily(ProductToolRequest request);
@McpTool(name = "pro_customer_risk_grade", title = "고객 위험등급 조회", description = "고객 위험등급 조회 정보를 안전한 모의 데이터로 제공합니다.")
@GrowToolHint(
requiresApproval = false,
categoryKey = "pro",
mappingId = "DIRECT_PRO_CUSTOMER_RISK_GRADE",
functionDescription = "고객 위험등급 조회 정보를 조회합니다.",
whenToUse = "고객·보험계약 업무에서 고객 위험등급 조회 정보가 필요할 때 사용합니다.",
whenNotToUse = "정보 변경, 승인 또는 실제 업무처리에는 사용하지 않습니다.",
ioLimits = "입력 식별자에 대한 모의 조회 데이터만 반환하며 외부 시스템을 변경하지 않습니다.",
displayDescription = "고객 위험등급 조회 정보를 안전한 모의 데이터로 제공합니다.",
exampleQueries = {"고객 위험등급 조회 정보를 보여줘", "고객 위험등급 조회 결과를 확인해줘", "현재 고객 위험등급 조회 내용을 알려줘"},
destructive = false,
idempotent = true,
tags = {"pro", "조회", "mock"},
ownerOrg = "MCP_TOOL"
)
ProductToolResponse getCustomerRiskGrade(ProductToolRequest request);
}

View File

@@ -1,66 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase.impl;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import io.shinhanlife.dat.mcc.biz.pro.usecase.ClaimInquiryUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class ClaimInquiryUseCaseImpl implements ClaimInquiryUseCase {
@Override
public ProductToolResponse getClaimEligibility(ProductToolRequest request) {
return mockResponse(request, "pro_claim_eligibility", "보험금 청구 가능여부 조회");
}
@Override
public ProductToolResponse getClaimHistory(ProductToolRequest request) {
return mockResponse(request, "pro_claim_history", "보험금 청구이력 조회");
}
@Override
public ProductToolResponse getClaimStatus(ProductToolRequest request) {
return mockResponse(request, "pro_claim_status", "보험금 청구상태 조회");
}
@Override
public ProductToolResponse getClaimDocuments(ProductToolRequest request) {
return mockResponse(request, "pro_claim_documents", "보험금 청구서류 조회");
}
@Override
public ProductToolResponse getClaimPayment(ProductToolRequest request) {
return mockResponse(request, "pro_claim_payment", "보험금 지급내역 조회");
}
@Override
public ProductToolResponse getClaimAccident(ProductToolRequest request) {
return mockResponse(request, "pro_claim_accident", "보험사고 정보 조회");
}
@Override
public ProductToolResponse getClaimBeneficiary(ProductToolRequest request) {
return mockResponse(request, "pro_claim_beneficiary", "보험금 수익자 조회");
}
@Override
public ProductToolResponse getClaimContact(ProductToolRequest request) {
return mockResponse(request, "pro_claim_contact", "보험금 청구 담당자 조회");
}
private ProductToolResponse mockResponse(ProductToolRequest request, String toolName, String title) {
ProductToolResponse response = new ProductToolResponse();
response.setToolName(toolName);
response.setCategory("PRO");
response.setReferenceId(request != null && hasText(request.getSubjectId()) ? request.getSubjectId() : "CUST-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,71 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase.impl;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import io.shinhanlife.dat.mcc.biz.pro.usecase.ContractInquiryUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class ContractInquiryUseCaseImpl implements ContractInquiryUseCase {
@Override
public ProductToolResponse getContractList(ProductToolRequest request) {
return mockResponse(request, "pro_contract_list", "보험계약 목록 조회");
}
@Override
public ProductToolResponse getContractDetail(ProductToolRequest request) {
return mockResponse(request, "pro_contract_detail", "보험계약 상세 조회");
}
@Override
public ProductToolResponse getContractCoverage(ProductToolRequest request) {
return mockResponse(request, "pro_contract_coverage", "보험계약 보장내역 조회");
}
@Override
public ProductToolResponse getContractPremium(ProductToolRequest request) {
return mockResponse(request, "pro_contract_premium", "보험계약 보험료 조회");
}
@Override
public ProductToolResponse getContractPaymentStatus(ProductToolRequest request) {
return mockResponse(request, "pro_contract_payment_status", "보험료 납입상태 조회");
}
@Override
public ProductToolResponse getContractBeneficiary(ProductToolRequest request) {
return mockResponse(request, "pro_contract_beneficiary", "보험계약 수익자 조회");
}
@Override
public ProductToolResponse getContractSurrenderValue(ProductToolRequest request) {
return mockResponse(request, "pro_contract_surrender_value", "보험계약 해지환급금 조회");
}
@Override
public ProductToolResponse getContractLoanStatus(ProductToolRequest request) {
return mockResponse(request, "pro_contract_loan_status", "보험계약 대출현황 조회");
}
@Override
public ProductToolResponse getContractRiderList(ProductToolRequest request) {
return mockResponse(request, "pro_contract_rider_list", "보험계약 특약목록 조회");
}
private ProductToolResponse mockResponse(ProductToolRequest request, String toolName, String title) {
ProductToolResponse response = new ProductToolResponse();
response.setToolName(toolName);
response.setCategory("PRO");
response.setReferenceId(request != null && hasText(request.getSubjectId()) ? request.getSubjectId() : "CUST-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,66 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase.impl;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolRequest;
import io.shinhanlife.dat.mcc.biz.pro.dto.ProductToolResponse;
import io.shinhanlife.dat.mcc.biz.pro.usecase.CustomerInquiryUseCase;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class CustomerInquiryUseCaseImpl implements CustomerInquiryUseCase {
@Override
public ProductToolResponse getCustomerProfile(ProductToolRequest request) {
return mockResponse(request, "pro_customer_profile", "고객 기본정보 조회");
}
@Override
public ProductToolResponse getCustomerContact(ProductToolRequest request) {
return mockResponse(request, "pro_customer_contact", "고객 연락처 조회");
}
@Override
public ProductToolResponse getCustomerConsent(ProductToolRequest request) {
return mockResponse(request, "pro_customer_consent", "고객 동의정보 조회");
}
@Override
public ProductToolResponse getCustomerIdentity(ProductToolRequest request) {
return mockResponse(request, "pro_customer_identity", "고객 본인확인정보 조회");
}
@Override
public ProductToolResponse getCustomerAddress(ProductToolRequest request) {
return mockResponse(request, "pro_customer_address", "고객 주소정보 조회");
}
@Override
public ProductToolResponse getCustomerOccupation(ProductToolRequest request) {
return mockResponse(request, "pro_customer_occupation", "고객 직업정보 조회");
}
@Override
public ProductToolResponse getCustomerFamily(ProductToolRequest request) {
return mockResponse(request, "pro_customer_family", "고객 가족정보 조회");
}
@Override
public ProductToolResponse getCustomerRiskGrade(ProductToolRequest request) {
return mockResponse(request, "pro_customer_risk_grade", "고객 위험등급 조회");
}
private ProductToolResponse mockResponse(ProductToolRequest request, String toolName, String title) {
ProductToolResponse response = new ProductToolResponse();
response.setToolName(toolName);
response.setCategory("PRO");
response.setReferenceId(request != null && hasText(request.getSubjectId()) ? request.getSubjectId() : "CUST-000001");
response.setStatus("정상");
response.setSummary(title + " 결과");
response.setAsOfDate(request != null && hasText(request.getQueryDate()) ? request.getQueryDate() : "2026-08-14");
response.setDetails(List.of(title + " 모의 상세정보", "외부 시스템을 변경하지 않는 조회 결과"));
return response;
}
private boolean hasText(String value) {
return value != null && !value.isBlank();
}
}

View File

@@ -1,61 +0,0 @@
package io.shinhanlife.dat.mcc.biz.pro.usecase.impl;
import io.shinhanlife.glow.communication.dto.Transfer;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* @package io.shinhanlife.dat.mcc.biz.pro.usecase.impl
* @className PersonalCustomerDetailInquiryUseCaseImpl
* @description AX HUB 시스템 처리 클래스
* @author jade
* @create 2026.08.25
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.08.25 jade 최초생성
*
* </pre>
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class PersonalCustomerDetailInquiryUseCaseImpl implements PersonalCustomerDetailInquiryUseCase {
private final MciNcscClient mci;
private final PersonalCustomerDetailInquiryConverter converter;
@Override
public PersonalCustomerDetailInquiryResponse execute(PersonalCustomerDetailInquiryRequest req) {
log.info("[MCI Tool] {} 요청 수신.", "pro_personal_inquiry");
try {
// MapStruct를 이용한 자동 매핑 (AI DTO -> MCI DTO)
DATNCSO00001_I mciReq = converter.toLegacyRequest(req);
Transfer< DATNCSO00001_O> resTransfer = mci.callTo(
" DATNCSO00001",
null,
mciReq,
DATNCSO00001_O.class
);
PersonalCustomerDetailInquiryResponse response = new PersonalCustomerDetailInquiryResponse();
if (resTransfer.getBody() != null) {
response = converter.toResponse(resTransfer.getBody());
}
response.setResultCode("SUCCESS");
response.setResultMessage(resTransfer.getBody() != null
? "MCI call completed."
: "MCI call completed without a response body.");
return response;
} catch (Exception e) {
log.error("[MCI Tool] 연동 중 오류 발생: {}", e.getMessage(), e);
PersonalCustomerDetailInquiryResponse response = new PersonalCustomerDetailInquiryResponse();
response.setResultCode("ERROR");
response.setResultMessage(e.getMessage() != null ? e.getMessage() : "Unknown error");
return response;
}
}
}

View File

@@ -7,8 +7,7 @@ spring:
- classpath:glow/application-glow.yml - classpath:glow/application-glow.yml
- classpath:glow/application-glow-local.yml - classpath:glow/application-glow-local.yml
datasource: datasource:
url: jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1; url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;
driverClassName: com.p6spy.engine.spy.P6SpyDriver
username: sa username: sa
password: password password: password
h2: h2:

View File

@@ -7,8 +7,7 @@ spring:
- classpath:glow/application-glow.yml - classpath:glow/application-glow.yml
- classpath:glow/application-glow-local.yml - classpath:glow/application-glow-local.yml
datasource: datasource:
url: jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1; url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;
driverClassName: com.p6spy.engine.spy.P6SpyDriver
username: sa username: sa
password: password password: password
h2: h2:

View File

@@ -7,8 +7,7 @@ spring:
- classpath:glow/application-glow.yml - classpath:glow/application-glow.yml
- classpath:glow/application-glow-local.yml - classpath:glow/application-glow-local.yml
datasource: datasource:
url: jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1; url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;
driverClassName: com.p6spy.engine.spy.P6SpyDriver
username: sa username: sa
password: password password: password
h2: h2: