refactor: rename solgit tool to sol
All checks were successful
Deploy to OCIWP / deploy (push) Successful in 6m23s
All checks were successful
Deploy to OCIWP / deploy (push) Successful in 6m23s
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.solgit.converter;
|
package io.shinhanlife.dap.mcc.biz.sol.converter;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.biz.solgit.dto.SolgitReqListRequest;
|
import io.shinhanlife.dap.mcc.biz.sol.dto.SolReqListRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.solgit.dto.SolgitReqListResponse;
|
import io.shinhanlife.dap.mcc.biz.sol.dto.SolReqListResponse;
|
||||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_I;
|
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_I;
|
||||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_O;
|
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_O;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
@@ -9,8 +9,8 @@ import org.mapstruct.Mapping;
|
|||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package io.shinhanlife.dap.mcc.biz.solgit.converter
|
* @package io.shinhanlife.dap.mcc.biz.sol.converter
|
||||||
* @className SolgitReqListConverter
|
* @className SolReqListConverter
|
||||||
* @description AX HUB 시스템 처리 클래스
|
* @description AX HUB 시스템 처리 클래스
|
||||||
* @author jade
|
* @author jade
|
||||||
* @create 2026.07.29
|
* @create 2026.07.29
|
||||||
@@ -23,11 +23,11 @@ import org.mapstruct.factory.Mappers;
|
|||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@Mapper(componentModel = "spring")
|
@Mapper(componentModel = "spring")
|
||||||
public interface SolgitReqListConverter {
|
public interface SolReqListConverter {
|
||||||
@Mapping(source = "status", target = "reqStatus", defaultValue = "진행중")
|
@Mapping(source = "status", target = "reqStatus", defaultValue = "진행중")
|
||||||
@Mapping(source = "period", target = "reqPeriod", defaultValue = "최근 3개월")
|
@Mapping(source = "period", target = "reqPeriod", defaultValue = "최근 3개월")
|
||||||
@Mapping(source = "target", target = "reqTarget", defaultValue = "나의 업무")
|
@Mapping(source = "target", target = "reqTarget", defaultValue = "나의 업무")
|
||||||
SOLG00000001_I toLegacyRequest(SolgitReqListRequest req);
|
SOLG00000001_I toLegacyRequest(SolReqListRequest req);
|
||||||
|
|
||||||
SolgitReqListResponse toResponse(SOLG00000001_O mciRes);
|
SolReqListResponse toResponse(SOLG00000001_O mciRes);
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.solgit.dto;
|
package io.shinhanlife.dap.mcc.biz.sol.dto;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import io.shinhanlife.dap.lib.annotation.McpParameter;
|
import io.shinhanlife.dap.lib.annotation.McpParameter;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package io.shinhanlife.dap.mcc.biz.solgit.dto
|
* @package io.shinhanlife.dap.mcc.biz.sol.dto
|
||||||
* @className SolgitReqListRequest
|
* @className SolReqListRequest
|
||||||
* @description AX HUB 시스템 처리 클래스
|
* @description AX HUB 시스템 처리 클래스
|
||||||
* @author jade
|
* @author jade
|
||||||
* @create 2026.07.29
|
* @create 2026.07.29
|
||||||
@@ -20,7 +20,7 @@ import lombok.Data;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
public class SolgitReqListRequest {
|
public class SolReqListRequest {
|
||||||
@McpParameter(description = "진행상태 (예: 진행중, 완료 등)", required = false)
|
@McpParameter(description = "진행상태 (예: 진행중, 완료 등)", required = false)
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.solgit.dto;
|
package io.shinhanlife.dap.mcc.biz.sol.dto;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -6,8 +6,8 @@ import lombok.Data;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package io.shinhanlife.dap.mcc.biz.solgit.dto
|
* @package io.shinhanlife.dap.mcc.biz.sol.dto
|
||||||
* @className SolgitReqListResponse
|
* @className SolReqListResponse
|
||||||
* @description AX HUB 시스템 처리 클래스
|
* @description AX HUB 시스템 처리 클래스
|
||||||
* @author jade
|
* @author jade
|
||||||
* @create 2026.07.29
|
* @create 2026.07.29
|
||||||
@@ -21,12 +21,12 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
public class SolgitReqListResponse {
|
public class SolReqListResponse {
|
||||||
private List<SolgitReqListItem> reqList;
|
private List<SolReqListItem> reqList;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
public static class SolgitReqListItem {
|
public static class SolReqListItem {
|
||||||
private String srId;
|
private String srId;
|
||||||
private String srName;
|
private String srName;
|
||||||
private String process;
|
private String process;
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package io.shinhanlife.dap.mcc.biz.sol.usecase;
|
||||||
|
|
||||||
|
import io.shinhanlife.dap.lib.annotation.McpFunction;
|
||||||
|
import io.shinhanlife.dap.lib.annotation.McpTool;
|
||||||
|
import io.shinhanlife.dap.mcc.biz.sol.dto.SolReqListRequest;
|
||||||
|
|
||||||
|
@McpTool(
|
||||||
|
routingType = "MCI",
|
||||||
|
categoryKey = "sol"
|
||||||
|
)
|
||||||
|
public interface SolReqListUseCase {
|
||||||
|
@McpFunction(
|
||||||
|
displayName = "SolReqList 툴",
|
||||||
|
name = "solReqList",
|
||||||
|
description = "SOL 의뢰서 목록 조회해줘",
|
||||||
|
prompt = "SOL 의뢰서 목록 조회해줘",
|
||||||
|
mappingId = "SOLG00000001",
|
||||||
|
register = false,
|
||||||
|
requiresApproval = false,
|
||||||
|
openWorldHint = true
|
||||||
|
)
|
||||||
|
Object execute(SolReqListRequest req);
|
||||||
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.solgit.usecase.impl;
|
package io.shinhanlife.dap.mcc.biz.sol.usecase.impl;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.biz.solgit.dto.SolgitReqListRequest;
|
import io.shinhanlife.dap.mcc.biz.sol.dto.SolReqListRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.solgit.dto.SolgitReqListResponse;
|
import io.shinhanlife.dap.mcc.biz.sol.dto.SolReqListResponse;
|
||||||
import io.shinhanlife.dap.mcc.biz.solgit.usecase.SolgitReqListUseCase;
|
import io.shinhanlife.dap.mcc.biz.sol.usecase.SolReqListUseCase;
|
||||||
import io.shinhanlife.glow.communication.dto.Transfer;
|
import io.shinhanlife.glow.communication.dto.Transfer;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -10,15 +10,15 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import io.shinhanlife.dap.mcc.biz.solgit.converter.SolgitReqListConverter;
|
import io.shinhanlife.dap.mcc.biz.sol.converter.SolReqListConverter;
|
||||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_I;
|
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_I;
|
||||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_O;
|
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_O;
|
||||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.MciNclgClient;
|
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.MciNclgClient;
|
||||||
import io.shinhanlife.dap.mcc.biz.solgit.dto.SolgitReqListResponse.SolgitReqListItem;
|
import io.shinhanlife.dap.mcc.biz.sol.dto.SolReqListResponse.SolReqListItem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package io.shinhanlife.dap.mcc.biz.solgit.usecase.impl
|
* @package io.shinhanlife.dap.mcc.biz.sol.usecase.impl
|
||||||
* @className SolgitReqListUseCaseImpl
|
* @className SolReqListUseCaseImpl
|
||||||
* @description AX HUB 시스템 처리 클래스
|
* @description AX HUB 시스템 처리 클래스
|
||||||
* @author jade
|
* @author jade
|
||||||
* @create 2026.07.29
|
* @create 2026.07.29
|
||||||
@@ -33,14 +33,14 @@ import io.shinhanlife.dap.mcc.biz.solgit.dto.SolgitReqListResponse.SolgitReqList
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class SolgitReqListUseCaseImpl implements SolgitReqListUseCase {
|
public class SolReqListUseCaseImpl implements SolReqListUseCase {
|
||||||
|
|
||||||
private final MciNclgClient mci;
|
private final MciNclgClient mci;
|
||||||
private final SolgitReqListConverter converter;
|
private final SolReqListConverter converter;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object execute(SolgitReqListRequest req) {
|
public Object execute(SolReqListRequest req) {
|
||||||
log.info("[MCI Tool] {} 요청 수신. 파라미터: {}", "solgitReqList", req);
|
log.info("[MCI Tool] {} 요청 수신. 파라미터: {}", "solReqList", req);
|
||||||
try {
|
try {
|
||||||
SOLG00000001_I mciRequest = converter.toLegacyRequest(req);
|
SOLG00000001_I mciRequest = converter.toLegacyRequest(req);
|
||||||
Transfer<SOLG00000001_O> mciResponse = mci.callTo(
|
Transfer<SOLG00000001_O> mciResponse = mci.callTo(
|
||||||
@@ -48,10 +48,10 @@ public class SolgitReqListUseCaseImpl implements SolgitReqListUseCase {
|
|||||||
log.info("[MCI Tool] SOLG00000001 MCI call completed. Returning dummy response: {}",
|
log.info("[MCI Tool] SOLG00000001 MCI call completed. Returning dummy response: {}",
|
||||||
mciResponse != null);
|
mciResponse != null);
|
||||||
// 현업 테스트용으로 MCI 통신을 바이패스하고 하드코딩된 결과를 반환합니다.
|
// 현업 테스트용으로 MCI 통신을 바이패스하고 하드코딩된 결과를 반환합니다.
|
||||||
SolgitReqListResponse res = new SolgitReqListResponse();
|
SolReqListResponse res = new SolReqListResponse();
|
||||||
List<SolgitReqListItem> list = new ArrayList<>();
|
List<SolReqListItem> list = new ArrayList<>();
|
||||||
|
|
||||||
SolgitReqListItem item1 = new SolgitReqListItem();
|
SolReqListItem item1 = new SolReqListItem();
|
||||||
item1.setSrId("SR-2026-001");
|
item1.setSrId("SR-2026-001");
|
||||||
item1.setSrName("AX HUB 메인 화면 UI 개편");
|
item1.setSrName("AX HUB 메인 화면 UI 개편");
|
||||||
item1.setProcess("진행중");
|
item1.setProcess("진행중");
|
||||||
@@ -60,7 +60,7 @@ public class SolgitReqListUseCaseImpl implements SolgitReqListUseCase {
|
|||||||
item1.setRequester("윤희준");
|
item1.setRequester("윤희준");
|
||||||
list.add(item1);
|
list.add(item1);
|
||||||
|
|
||||||
SolgitReqListItem item2 = new SolgitReqListItem();
|
SolReqListItem item2 = new SolReqListItem();
|
||||||
item2.setSrId("SR-2026-002");
|
item2.setSrId("SR-2026-002");
|
||||||
item2.setSrName("툴 연동 모듈 추가 개발");
|
item2.setSrName("툴 연동 모듈 추가 개발");
|
||||||
item2.setProcess("진행중");
|
item2.setProcess("진행중");
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.solgit.usecase;
|
|
||||||
|
|
||||||
import io.shinhanlife.dap.lib.annotation.McpFunction;
|
|
||||||
import io.shinhanlife.dap.lib.annotation.McpTool;
|
|
||||||
import io.shinhanlife.dap.mcc.biz.solgit.dto.SolgitReqListRequest;
|
|
||||||
|
|
||||||
@McpTool(
|
|
||||||
routingType = "MCI",
|
|
||||||
categoryKey = "solgit"
|
|
||||||
)
|
|
||||||
public interface SolgitReqListUseCase {
|
|
||||||
@McpFunction(
|
|
||||||
displayName = "SolgitReqList 툴",
|
|
||||||
name = "solgitReqList",
|
|
||||||
description = "SOLGIT 의뢰서 목록 조회해줘",
|
|
||||||
prompt = "SOLGIT 의뢰서 목록 조회해줘",
|
|
||||||
mappingId = "SOLG00000001",
|
|
||||||
register = false,
|
|
||||||
requiresApproval = false,
|
|
||||||
openWorldHint = true
|
|
||||||
)
|
|
||||||
Object execute(SolgitReqListRequest req);
|
|
||||||
}
|
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package io.shinhanlife.dap.mcc.biz.solgit.usecase.impl;
|
package io.shinhanlife.dap.mcc.biz.sol.usecase.impl;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import io.shinhanlife.dap.mcc.biz.solgit.converter.SolgitReqListConverter;
|
import io.shinhanlife.dap.mcc.biz.sol.converter.SolReqListConverter;
|
||||||
import io.shinhanlife.dap.mcc.biz.solgit.dto.SolgitReqListRequest;
|
import io.shinhanlife.dap.mcc.biz.sol.dto.SolReqListRequest;
|
||||||
import io.shinhanlife.dap.mcc.biz.solgit.dto.SolgitReqListResponse;
|
import io.shinhanlife.dap.mcc.biz.sol.dto.SolReqListResponse;
|
||||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.MciNclgClient;
|
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.MciNclgClient;
|
||||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_I;
|
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_I;
|
||||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_O;
|
import io.shinhanlife.dap.mcc.infra.itrf.mci.ncl.g.io.SOLG00000001_O;
|
||||||
@@ -15,25 +15,25 @@ import io.shinhanlife.glow.communication.dto.Transfer;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
|
|
||||||
class SolgitReqListUseCaseImplTest {
|
class SolReqListUseCaseImplTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void callsMciWithConvertedRequestAndReturnsDummyResponse() throws Exception {
|
void callsMciWithConvertedRequestAndReturnsDummyResponse() throws Exception {
|
||||||
MciNclgClient mci = Mockito.mock(MciNclgClient.class);
|
MciNclgClient mci = Mockito.mock(MciNclgClient.class);
|
||||||
SolgitReqListConverter converter = Mockito.mock(SolgitReqListConverter.class);
|
SolReqListConverter converter = Mockito.mock(SolReqListConverter.class);
|
||||||
SolgitReqListUseCaseImpl useCase = new SolgitReqListUseCaseImpl(mci, converter);
|
SolReqListUseCaseImpl useCase = new SolReqListUseCaseImpl(mci, converter);
|
||||||
SolgitReqListRequest request = new SolgitReqListRequest();
|
SolReqListRequest request = new SolReqListRequest();
|
||||||
SOLG00000001_I mciRequest = new SOLG00000001_I();
|
SOLG00000001_I mciRequest = new SOLG00000001_I();
|
||||||
|
|
||||||
when(converter.toLegacyRequest(request)).thenReturn(mciRequest);
|
when(converter.toLegacyRequest(request)).thenReturn(mciRequest);
|
||||||
when(mci.callTo(eq("SOLG00000001"), eq("SOLG00000001"), eq(mciRequest), eq(SOLG00000001_O.class)))
|
when(mci.callTo(eq("SOLG00000001"), eq("SOLG00000001"), eq(mciRequest), eq(SOLG00000001_O.class)))
|
||||||
.thenReturn(new Transfer<>());
|
.thenReturn(new Transfer<>());
|
||||||
|
|
||||||
SolgitReqListResponse response = (SolgitReqListResponse) useCase.execute(request);
|
SolReqListResponse response = (SolReqListResponse) useCase.execute(request);
|
||||||
|
|
||||||
verify(converter).toLegacyRequest(request);
|
verify(converter).toLegacyRequest(request);
|
||||||
verify(mci).callTo("SOLG00000001", "SOLG00000001", mciRequest, SOLG00000001_O.class);
|
verify(mci).callTo("SOLG00000001", "SOLG00000001", mciRequest, SOLG00000001_O.class);
|
||||||
assertThat(response.getReqList()).extracting(SolgitReqListResponse.SolgitReqListItem::getSrId)
|
assertThat(response.getReqList()).extracting(SolReqListResponse.SolReqListItem::getSrId)
|
||||||
.containsExactly("SR-2026-001", "SR-2026-002");
|
.containsExactly("SR-2026-001", "SR-2026-002");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user