From 8a6b8445091a734fb699c967dd6ce7263ffbdadc Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Tue, 24 Mar 2026 23:01:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=B8=93=E9=A1=B9=E6=A0=B8?= =?UTF-8?q?=E6=9F=A5=E6=8B=93=E5=B1=95=E6=9F=A5=E8=AF=A2=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=BB=84=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CcdiProjectSpecialCheckServiceImpl.java | 84 ++++++- ...CcdiProjectSpecialCheckControllerTest.java | 84 +++++++ ...cialCheckExtendedQueryServiceImplTest.java | 218 ++++++++++++++++++ 3 files changed, 377 insertions(+), 9 deletions(-) create mode 100644 ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectSpecialCheckExtendedQueryServiceImplTest.java diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectSpecialCheckServiceImpl.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectSpecialCheckServiceImpl.java index 5c667409..e8ea1b28 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectSpecialCheckServiceImpl.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectSpecialCheckServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.ccdi.project.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.ccdi.project.domain.CcdiProject; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseDetailQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseQueryDTO; @@ -10,10 +11,13 @@ import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityDetailQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityListQueryDTO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseDetailVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListItemVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentDetailVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListItemVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferDetailVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListItemVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetDetailVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityDetailVO; @@ -72,9 +76,17 @@ public class CcdiProjectSpecialCheckServiceImpl implements ICcdiProjectSpecialCh @Override public CcdiProjectExtendedPurchaseListVO getExtendedPurchaseList(CcdiProjectExtendedPurchaseQueryDTO queryDTO) { + ensureProjectExists(queryDTO.getProjectId()); + + Page page = new Page<>( + defaultPageNum(queryDTO.getPageNum()), + defaultPageSize(queryDTO.getPageSize()) + ); + Page resultPage = specialCheckMapper.selectExtendedPurchasePage(page, queryDTO); + CcdiProjectExtendedPurchaseListVO result = new CcdiProjectExtendedPurchaseListVO(); - result.setRows(List.of()); - result.setTotal(0L); + result.setRows(resultPage == null ? List.of() : defaultList(resultPage.getRecords())); + result.setTotal(resultPage == null ? 0L : resultPage.getTotal()); return result; } @@ -82,16 +94,36 @@ public class CcdiProjectSpecialCheckServiceImpl implements ICcdiProjectSpecialCh public CcdiProjectExtendedPurchaseDetailVO getExtendedPurchaseDetail( CcdiProjectExtendedPurchaseDetailQueryDTO queryDTO ) { - return new CcdiProjectExtendedPurchaseDetailVO(); + ensureProjectExists(queryDTO.getProjectId()); + + CcdiProjectExtendedPurchaseDetailVO detail = specialCheckMapper.selectExtendedPurchaseDetail( + queryDTO.getProjectId(), + queryDTO.getPurchaseId() + ); + if (detail == null) { + throw new ServiceException("当前记录不属于该项目专项核查范围"); + } + return detail; } @Override public CcdiProjectExtendedRecruitmentListVO getExtendedRecruitmentList( CcdiProjectExtendedRecruitmentQueryDTO queryDTO ) { + ensureProjectExists(queryDTO.getProjectId()); + + Page page = new Page<>( + defaultPageNum(queryDTO.getPageNum()), + defaultPageSize(queryDTO.getPageSize()) + ); + Page resultPage = specialCheckMapper.selectExtendedRecruitmentPage( + page, + queryDTO + ); + CcdiProjectExtendedRecruitmentListVO result = new CcdiProjectExtendedRecruitmentListVO(); - result.setRows(List.of()); - result.setTotal(0L); + result.setRows(resultPage == null ? List.of() : defaultList(resultPage.getRecords())); + result.setTotal(resultPage == null ? 0L : resultPage.getTotal()); return result; } @@ -99,14 +131,31 @@ public class CcdiProjectSpecialCheckServiceImpl implements ICcdiProjectSpecialCh public CcdiProjectExtendedRecruitmentDetailVO getExtendedRecruitmentDetail( CcdiProjectExtendedRecruitmentDetailQueryDTO queryDTO ) { - return new CcdiProjectExtendedRecruitmentDetailVO(); + ensureProjectExists(queryDTO.getProjectId()); + + CcdiProjectExtendedRecruitmentDetailVO detail = specialCheckMapper.selectExtendedRecruitmentDetail( + queryDTO.getProjectId(), + queryDTO.getRecruitId() + ); + if (detail == null) { + throw new ServiceException("当前记录不属于该项目专项核查范围"); + } + return detail; } @Override public CcdiProjectExtendedTransferListVO getExtendedTransferList(CcdiProjectExtendedTransferQueryDTO queryDTO) { + ensureProjectExists(queryDTO.getProjectId()); + + Page page = new Page<>( + defaultPageNum(queryDTO.getPageNum()), + defaultPageSize(queryDTO.getPageSize()) + ); + Page resultPage = specialCheckMapper.selectExtendedTransferPage(page, queryDTO); + CcdiProjectExtendedTransferListVO result = new CcdiProjectExtendedTransferListVO(); - result.setRows(List.of()); - result.setTotal(0L); + result.setRows(resultPage == null ? List.of() : defaultList(resultPage.getRecords())); + result.setTotal(resultPage == null ? 0L : resultPage.getTotal()); return result; } @@ -114,7 +163,16 @@ public class CcdiProjectSpecialCheckServiceImpl implements ICcdiProjectSpecialCh public CcdiProjectExtendedTransferDetailVO getExtendedTransferDetail( CcdiProjectExtendedTransferDetailQueryDTO queryDTO ) { - return new CcdiProjectExtendedTransferDetailVO(); + ensureProjectExists(queryDTO.getProjectId()); + + CcdiProjectExtendedTransferDetailVO detail = specialCheckMapper.selectExtendedTransferDetail( + queryDTO.getProjectId(), + queryDTO.getId() + ); + if (detail == null) { + throw new ServiceException("当前记录不属于该项目专项核查范围"); + } + return detail; } private void ensureProjectExists(Long projectId) { @@ -171,4 +229,12 @@ public class CcdiProjectSpecialCheckServiceImpl implements ICcdiProjectSpecialCh private List defaultList(List list) { return list == null ? List.of() : list; } + + private long defaultPageNum(Integer pageNum) { + return pageNum == null || pageNum < 1 ? 1L : pageNum.longValue(); + } + + private long defaultPageSize(Integer pageSize) { + return pageSize == null || pageSize < 1 ? 10L : pageSize.longValue(); + } } diff --git a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectSpecialCheckControllerTest.java b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectSpecialCheckControllerTest.java index d3861bcf..ac8df29f 100644 --- a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectSpecialCheckControllerTest.java +++ b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/controller/CcdiProjectSpecialCheckControllerTest.java @@ -1,7 +1,19 @@ package com.ruoyi.ccdi.project.controller; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseDetailQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentDetailQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferDetailQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityDetailQueryDTO; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectFamilyAssetLiabilityListQueryDTO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseDetailVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentDetailVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferDetailVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityDetailVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityListVO; import com.ruoyi.ccdi.project.service.ICcdiProjectSpecialCheckService; @@ -87,4 +99,76 @@ class CcdiProjectSpecialCheckControllerTest { assertEquals("@ss.hasPermi('ccdi:project:query')", preAuthorize.value()); assertNotNull(operation); } + + @Test + void shouldReturnAjaxResultSuccessForExtendedPurchaseEndpoints() { + CcdiProjectExtendedPurchaseQueryDTO listQuery = new CcdiProjectExtendedPurchaseQueryDTO(); + listQuery.setProjectId(40L); + CcdiProjectExtendedPurchaseListVO listVO = new CcdiProjectExtendedPurchaseListVO(); + when(specialCheckService.getExtendedPurchaseList(listQuery)).thenReturn(listVO); + + AjaxResult listResult = controller.getExtendedPurchaseList(listQuery); + + assertEquals(200, listResult.get("code")); + assertEquals(listVO, listResult.get("data")); + + CcdiProjectExtendedPurchaseDetailQueryDTO detailQuery = new CcdiProjectExtendedPurchaseDetailQueryDTO(); + detailQuery.setProjectId(40L); + detailQuery.setPurchaseId("CG-001"); + CcdiProjectExtendedPurchaseDetailVO detailVO = new CcdiProjectExtendedPurchaseDetailVO(); + when(specialCheckService.getExtendedPurchaseDetail(detailQuery)).thenReturn(detailVO); + + AjaxResult detailResult = controller.getExtendedPurchaseDetail(detailQuery); + + assertEquals(200, detailResult.get("code")); + assertEquals(detailVO, detailResult.get("data")); + } + + @Test + void shouldReturnAjaxResultSuccessForExtendedRecruitmentEndpoints() { + CcdiProjectExtendedRecruitmentQueryDTO listQuery = new CcdiProjectExtendedRecruitmentQueryDTO(); + listQuery.setProjectId(40L); + CcdiProjectExtendedRecruitmentListVO listVO = new CcdiProjectExtendedRecruitmentListVO(); + when(specialCheckService.getExtendedRecruitmentList(listQuery)).thenReturn(listVO); + + AjaxResult listResult = controller.getExtendedRecruitmentList(listQuery); + + assertEquals(200, listResult.get("code")); + assertEquals(listVO, listResult.get("data")); + + CcdiProjectExtendedRecruitmentDetailQueryDTO detailQuery = new CcdiProjectExtendedRecruitmentDetailQueryDTO(); + detailQuery.setProjectId(40L); + detailQuery.setRecruitId("ZP-001"); + CcdiProjectExtendedRecruitmentDetailVO detailVO = new CcdiProjectExtendedRecruitmentDetailVO(); + when(specialCheckService.getExtendedRecruitmentDetail(detailQuery)).thenReturn(detailVO); + + AjaxResult detailResult = controller.getExtendedRecruitmentDetail(detailQuery); + + assertEquals(200, detailResult.get("code")); + assertEquals(detailVO, detailResult.get("data")); + } + + @Test + void shouldReturnAjaxResultSuccessForExtendedTransferEndpoints() { + CcdiProjectExtendedTransferQueryDTO listQuery = new CcdiProjectExtendedTransferQueryDTO(); + listQuery.setProjectId(40L); + CcdiProjectExtendedTransferListVO listVO = new CcdiProjectExtendedTransferListVO(); + when(specialCheckService.getExtendedTransferList(listQuery)).thenReturn(listVO); + + AjaxResult listResult = controller.getExtendedTransferList(listQuery); + + assertEquals(200, listResult.get("code")); + assertEquals(listVO, listResult.get("data")); + + CcdiProjectExtendedTransferDetailQueryDTO detailQuery = new CcdiProjectExtendedTransferDetailQueryDTO(); + detailQuery.setProjectId(40L); + detailQuery.setId(1L); + CcdiProjectExtendedTransferDetailVO detailVO = new CcdiProjectExtendedTransferDetailVO(); + when(specialCheckService.getExtendedTransferDetail(detailQuery)).thenReturn(detailVO); + + AjaxResult detailResult = controller.getExtendedTransferDetail(detailQuery); + + assertEquals(200, detailResult.get("code")); + assertEquals(detailVO, detailResult.get("data")); + } } diff --git a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectSpecialCheckExtendedQueryServiceImplTest.java b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectSpecialCheckExtendedQueryServiceImplTest.java new file mode 100644 index 00000000..c9fb93cb --- /dev/null +++ b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiProjectSpecialCheckExtendedQueryServiceImplTest.java @@ -0,0 +1,218 @@ +package com.ruoyi.ccdi.project.service.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.ccdi.project.domain.CcdiProject; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseDetailQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentDetailQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferDetailQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferQueryDTO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListItemVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListItemVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListItemVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListVO; +import com.ruoyi.ccdi.project.mapper.CcdiProjectMapper; +import com.ruoyi.ccdi.project.mapper.CcdiProjectSpecialCheckMapper; +import com.ruoyi.common.exception.ServiceException; +import java.util.List; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentCaptor; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@ExtendWith(MockitoExtension.class) +class CcdiProjectSpecialCheckExtendedQueryServiceImplTest { + + @InjectMocks + private CcdiProjectSpecialCheckServiceImpl service; + + @Mock + private CcdiProjectSpecialCheckMapper specialCheckMapper; + + @Mock + private CcdiProjectMapper projectMapper; + + @Test + void shouldThrowProjectNotFoundForExtendedQueries() { + when(projectMapper.selectById(99L)).thenReturn(null); + + ServiceException purchaseListException = assertThrows( + ServiceException.class, + () -> service.getExtendedPurchaseList(buildPurchaseQuery(99L, 1, 10)) + ); + ServiceException purchaseDetailException = assertThrows( + ServiceException.class, + () -> service.getExtendedPurchaseDetail(buildPurchaseDetailQuery(99L, "CG-001")) + ); + ServiceException recruitmentListException = assertThrows( + ServiceException.class, + () -> service.getExtendedRecruitmentList(buildRecruitmentQuery(99L, "张三", 1, 10)) + ); + ServiceException transferDetailException = assertThrows( + ServiceException.class, + () -> service.getExtendedTransferDetail(buildTransferDetailQuery(99L, 1L)) + ); + + assertEquals("项目不存在", purchaseListException.getMessage()); + assertEquals("项目不存在", purchaseDetailException.getMessage()); + assertEquals("项目不存在", recruitmentListException.getMessage()); + assertEquals("项目不存在", transferDetailException.getMessage()); + } + + @Test + void shouldBuildPurchaseListRowsAndTotalFromPage() { + when(projectMapper.selectById(40L)).thenReturn(buildProject(40L)); + + Page page = new Page<>(2, 5, 8); + CcdiProjectExtendedPurchaseListItemVO item = new CcdiProjectExtendedPurchaseListItemVO(); + item.setPurchaseId("CG-001"); + page.setRecords(List.of(item)); + when(specialCheckMapper.selectExtendedPurchasePage(any(), any())).thenReturn(page); + + CcdiProjectExtendedPurchaseListVO result = service.getExtendedPurchaseList(buildPurchaseQuery(40L, 2, 5)); + + assertNotNull(result.getRows()); + assertEquals(1, result.getRows().size()); + assertEquals(8L, result.getTotal()); + + ArgumentCaptor> pageCaptor = ArgumentCaptor.forClass(Page.class); + verify(specialCheckMapper).selectExtendedPurchasePage(pageCaptor.capture(), any()); + assertEquals(2L, pageCaptor.getValue().getCurrent()); + assertEquals(5L, pageCaptor.getValue().getSize()); + } + + @Test + void shouldReturnEmptyRecruitmentAndTransferRowsInsteadOfNull() { + when(projectMapper.selectById(40L)).thenReturn(buildProject(40L)); + when(specialCheckMapper.selectExtendedRecruitmentPage(any(), any())).thenReturn(new Page<>(1, 10, 0)); + when(specialCheckMapper.selectExtendedTransferPage(any(), any())).thenReturn(new Page<>(1, 10, 0)); + + CcdiProjectExtendedRecruitmentListVO recruitmentResult = + service.getExtendedRecruitmentList(buildRecruitmentQuery(40L, "李四", 1, 10)); + CcdiProjectExtendedTransferListVO transferResult = service.getExtendedTransferList(buildTransferQuery(40L, 1, 10)); + + assertNotNull(recruitmentResult.getRows()); + assertEquals(0, recruitmentResult.getRows().size()); + assertEquals(0L, recruitmentResult.getTotal()); + assertNotNull(transferResult.getRows()); + assertEquals(0, transferResult.getRows().size()); + assertEquals(0L, transferResult.getTotal()); + } + + @Test + void shouldPassInterviewerNameAndPaginationToRecruitmentMapper() { + when(projectMapper.selectById(40L)).thenReturn(buildProject(40L)); + + Page page = new Page<>(3, 4, 2); + page.setRecords(List.of(new CcdiProjectExtendedRecruitmentListItemVO())); + when(specialCheckMapper.selectExtendedRecruitmentPage(any(), any())).thenReturn(page); + + CcdiProjectExtendedRecruitmentQueryDTO queryDTO = buildRecruitmentQuery(40L, "王五", 3, 4); + CcdiProjectExtendedRecruitmentListVO result = service.getExtendedRecruitmentList(queryDTO); + + assertEquals(2L, result.getTotal()); + ArgumentCaptor> pageCaptor = ArgumentCaptor.forClass(Page.class); + ArgumentCaptor queryCaptor = ArgumentCaptor.forClass( + CcdiProjectExtendedRecruitmentQueryDTO.class + ); + verify(specialCheckMapper).selectExtendedRecruitmentPage(pageCaptor.capture(), queryCaptor.capture()); + assertEquals(3L, pageCaptor.getValue().getCurrent()); + assertEquals(4L, pageCaptor.getValue().getSize()); + assertEquals("王五", queryCaptor.getValue().getInterviewerName()); + } + + @Test + void shouldThrowClearErrorWhenExtendedDetailDoesNotBelongToProjectScope() { + when(projectMapper.selectById(40L)).thenReturn(buildProject(40L)); + when(specialCheckMapper.selectExtendedPurchaseDetail(40L, "CG-001")).thenReturn(null); + when(specialCheckMapper.selectExtendedRecruitmentDetail(40L, "ZP-001")).thenReturn(null); + when(specialCheckMapper.selectExtendedTransferDetail(40L, 1L)).thenReturn(null); + + ServiceException purchaseException = assertThrows( + ServiceException.class, + () -> service.getExtendedPurchaseDetail(buildPurchaseDetailQuery(40L, "CG-001")) + ); + ServiceException recruitmentException = assertThrows( + ServiceException.class, + () -> service.getExtendedRecruitmentDetail(buildRecruitmentDetailQuery(40L, "ZP-001")) + ); + ServiceException transferException = assertThrows( + ServiceException.class, + () -> service.getExtendedTransferDetail(buildTransferDetailQuery(40L, 1L)) + ); + + assertEquals("当前记录不属于该项目专项核查范围", purchaseException.getMessage()); + assertEquals("当前记录不属于该项目专项核查范围", recruitmentException.getMessage()); + assertEquals("当前记录不属于该项目专项核查范围", transferException.getMessage()); + } + + private CcdiProject buildProject(Long projectId) { + CcdiProject project = new CcdiProject(); + project.setProjectId(projectId); + return project; + } + + private CcdiProjectExtendedPurchaseQueryDTO buildPurchaseQuery(Long projectId, int pageNum, int pageSize) { + CcdiProjectExtendedPurchaseQueryDTO queryDTO = new CcdiProjectExtendedPurchaseQueryDTO(); + queryDTO.setProjectId(projectId); + queryDTO.setPageNum(pageNum); + queryDTO.setPageSize(pageSize); + return queryDTO; + } + + private CcdiProjectExtendedPurchaseDetailQueryDTO buildPurchaseDetailQuery(Long projectId, String purchaseId) { + CcdiProjectExtendedPurchaseDetailQueryDTO queryDTO = new CcdiProjectExtendedPurchaseDetailQueryDTO(); + queryDTO.setProjectId(projectId); + queryDTO.setPurchaseId(purchaseId); + return queryDTO; + } + + private CcdiProjectExtendedRecruitmentQueryDTO buildRecruitmentQuery( + Long projectId, + String interviewerName, + int pageNum, + int pageSize + ) { + CcdiProjectExtendedRecruitmentQueryDTO queryDTO = new CcdiProjectExtendedRecruitmentQueryDTO(); + queryDTO.setProjectId(projectId); + queryDTO.setInterviewerName(interviewerName); + queryDTO.setPageNum(pageNum); + queryDTO.setPageSize(pageSize); + return queryDTO; + } + + private CcdiProjectExtendedRecruitmentDetailQueryDTO buildRecruitmentDetailQuery(Long projectId, String recruitId) { + CcdiProjectExtendedRecruitmentDetailQueryDTO queryDTO = new CcdiProjectExtendedRecruitmentDetailQueryDTO(); + queryDTO.setProjectId(projectId); + queryDTO.setRecruitId(recruitId); + return queryDTO; + } + + private CcdiProjectExtendedTransferQueryDTO buildTransferQuery(Long projectId, int pageNum, int pageSize) { + CcdiProjectExtendedTransferQueryDTO queryDTO = new CcdiProjectExtendedTransferQueryDTO(); + queryDTO.setProjectId(projectId); + queryDTO.setPageNum(pageNum); + queryDTO.setPageSize(pageSize); + return queryDTO; + } + + private CcdiProjectExtendedTransferDetailQueryDTO buildTransferDetailQuery(Long projectId, Long id) { + CcdiProjectExtendedTransferDetailQueryDTO queryDTO = new CcdiProjectExtendedTransferDetailQueryDTO(); + queryDTO.setProjectId(projectId); + queryDTO.setId(id); + return queryDTO; + } +}