diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiProjectSpecialCheckMapper.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiProjectSpecialCheckMapper.java index 1a0bc696..9bdc28b6 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiProjectSpecialCheckMapper.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/CcdiProjectSpecialCheckMapper.java @@ -2,8 +2,14 @@ package com.ruoyi.ccdi.project.mapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentQueryDTO; +import com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedTransferQueryDTO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseDetailVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListItemVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentDetailVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedRecruitmentListItemVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferDetailVO; +import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedTransferListItemVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetItemVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityDetailVO; import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityListItemVO; @@ -89,4 +95,52 @@ public interface CcdiProjectSpecialCheckMapper { @Param("projectId") Long projectId, @Param("purchaseId") String purchaseId ); + + /** + * 查询专项核查招聘拓展列表 + * + * @param page 分页对象 + * @param queryDTO 查询条件 + * @return 分页结果 + */ + Page selectExtendedRecruitmentPage( + @Param("page") Page page, + @Param("query") CcdiProjectExtendedRecruitmentQueryDTO queryDTO + ); + + /** + * 查询专项核查招聘拓展详情 + * + * @param projectId 项目ID + * @param recruitId 招聘项目编号 + * @return 详情 + */ + CcdiProjectExtendedRecruitmentDetailVO selectExtendedRecruitmentDetail( + @Param("projectId") Long projectId, + @Param("recruitId") String recruitId + ); + + /** + * 查询专项核查调动拓展列表 + * + * @param page 分页对象 + * @param queryDTO 查询条件 + * @return 分页结果 + */ + Page selectExtendedTransferPage( + @Param("page") Page page, + @Param("query") CcdiProjectExtendedTransferQueryDTO queryDTO + ); + + /** + * 查询专项核查调动拓展详情 + * + * @param projectId 项目ID + * @param id 主键ID + * @return 详情 + */ + CcdiProjectExtendedTransferDetailVO selectExtendedTransferDetail( + @Param("projectId") Long projectId, + @Param("id") Long id + ); } diff --git a/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectSpecialCheckMapper.xml b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectSpecialCheckMapper.xml index 7dd24071..1e338c27 100644 --- a/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectSpecialCheckMapper.xml +++ b/ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectSpecialCheckMapper.xml @@ -48,6 +48,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiProjectSpecialCheckExtendedRecruitmentSqlTest.java b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiProjectSpecialCheckExtendedRecruitmentSqlTest.java new file mode 100644 index 00000000..20f5eadc --- /dev/null +++ b/ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiProjectSpecialCheckExtendedRecruitmentSqlTest.java @@ -0,0 +1,46 @@ +package com.ruoyi.ccdi.project.mapper; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import java.lang.reflect.Method; +import java.nio.file.Files; +import java.nio.file.Path; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class CcdiProjectSpecialCheckExtendedRecruitmentSqlTest { + + @Test + void shouldExposeExtendedRecruitmentMapperMethodsAndSqlCaliber() throws Exception { + Class mapperClass = Class.forName("com.ruoyi.ccdi.project.mapper.CcdiProjectSpecialCheckMapper"); + Class queryClass = Class.forName("com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedRecruitmentQueryDTO"); + + Method listMethod = mapperClass.getMethod("selectExtendedRecruitmentPage", Page.class, queryClass); + Method detailMethod = mapperClass.getMethod("selectExtendedRecruitmentDetail", Long.class, String.class); + assertEquals("Page", listMethod.getReturnType().getSimpleName()); + assertEquals("CcdiProjectExtendedRecruitmentDetailVO", detailMethod.getReturnType().getSimpleName()); + + String xml = Files.readString(Path.of("src/main/resources/mapper/ccdi/project/CcdiProjectSpecialCheckMapper.xml")); + String listSql = extractSelect(xml, "selectExtendedRecruitmentPage"); + String detailSql = extractSelect(xml, "selectExtendedRecruitmentDetail"); + + assertTrue(listSql.contains("projectEmployeeScopeSql")); + assertTrue(listSql.contains("select distinct r.recruit_id")); + assertTrue(listSql.contains("interviewer_name1")); + assertTrue(listSql.contains("interviewer_name2")); + assertTrue(listSql.contains("concat_ws(' / '")); + assertTrue(listSql.contains("admit_status")); + assertTrue(detailSql.contains("projectEmployeeScopeSql")); + assertTrue(detailSql.contains("recruit_id = #{recruitId}")); + assertTrue(detailSql.contains("interviewer_name1")); + assertTrue(detailSql.contains("interviewer_name2")); + } + + private String extractSelect(String xml, String selectId) { + String start = "", startIndex); + return xml.substring(startIndex, endIndex); + } +}