forked from kimhyungsik/ax_hub_mcp_tool
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,8 +7,7 @@ spring:
|
||||
- classpath:glow/application-glow.yml
|
||||
- classpath:glow/application-glow-local.yml
|
||||
datasource:
|
||||
url: jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1;
|
||||
driverClassName: com.p6spy.engine.spy.P6SpyDriver
|
||||
url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;
|
||||
username: sa
|
||||
password: password
|
||||
h2:
|
||||
|
||||
Reference in New Issue
Block a user