补充专项核查采购拓展查询SQL
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
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.vo.CcdiProjectExtendedPurchaseDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListItemVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetItemVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityListItemVO;
|
||||
@@ -61,4 +65,28 @@ public interface CcdiProjectSpecialCheckMapper {
|
||||
@Param("staffIdCard") String staffIdCard,
|
||||
@Param("spouseIdCard") String spouseIdCard
|
||||
);
|
||||
|
||||
/**
|
||||
* 查询专项核查采购拓展列表
|
||||
*
|
||||
* @param page 分页对象
|
||||
* @param queryDTO 查询条件
|
||||
* @return 分页结果
|
||||
*/
|
||||
Page<CcdiProjectExtendedPurchaseListItemVO> selectExtendedPurchasePage(
|
||||
@Param("page") Page<CcdiProjectExtendedPurchaseListItemVO> page,
|
||||
@Param("query") CcdiProjectExtendedPurchaseQueryDTO queryDTO
|
||||
);
|
||||
|
||||
/**
|
||||
* 查询专项核查采购拓展详情
|
||||
*
|
||||
* @param projectId 项目ID
|
||||
* @param purchaseId 采购事项ID
|
||||
* @return 详情
|
||||
*/
|
||||
CcdiProjectExtendedPurchaseDetailVO selectExtendedPurchaseDetail(
|
||||
@Param("projectId") Long projectId,
|
||||
@Param("purchaseId") String purchaseId
|
||||
);
|
||||
}
|
||||
|
||||
@@ -39,6 +39,15 @@
|
||||
<result property="queryDate" column="query_date"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="ExtendedPurchaseListItemResultMap"
|
||||
type="com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseListItemVO">
|
||||
<id property="purchaseId" column="purchase_id"/>
|
||||
<result property="projectName" column="project_name"/>
|
||||
<result property="subjectName" column="subject_name"/>
|
||||
<result property="applicantName" column="applicant_name"/>
|
||||
<result property="applyDate" column="apply_date"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="FamilyAssetLiabilityDetailResultMap"
|
||||
type="com.ruoyi.ccdi.project.domain.vo.CcdiProjectFamilyAssetLiabilityDetailVO">
|
||||
<association property="incomeDetail"
|
||||
@@ -462,4 +471,87 @@
|
||||
debt.debt_name asc
|
||||
</select>
|
||||
|
||||
<select id="selectExtendedPurchasePage" resultMap="ExtendedPurchaseListItemResultMap">
|
||||
select
|
||||
p.purchase_id,
|
||||
p.project_name,
|
||||
p.subject_name,
|
||||
p.applicant_name,
|
||||
p.apply_date
|
||||
from ccdi_purchase_transaction p
|
||||
inner join (
|
||||
select distinct scope.staff_name
|
||||
from (
|
||||
<include refid="projectEmployeeScopeSql"/>
|
||||
) scope
|
||||
where scope.staff_name is not null
|
||||
and scope.staff_name != ''
|
||||
) scoped_staff
|
||||
on scoped_staff.staff_name = p.applicant_name
|
||||
<where>
|
||||
<if test="query.applicantName != null and query.applicantName != ''">
|
||||
and p.applicant_name like concat('%', #{query.applicantName}, '%')
|
||||
</if>
|
||||
<if test="query.applyDateStart != null and query.applyDateStart != ''">
|
||||
and p.apply_date >= #{query.applyDateStart}
|
||||
</if>
|
||||
<if test="query.applyDateEnd != null and query.applyDateEnd != ''">
|
||||
and p.apply_date <= #{query.applyDateEnd}
|
||||
</if>
|
||||
</where>
|
||||
order by p.apply_date desc, p.create_time desc, p.purchase_id desc
|
||||
</select>
|
||||
|
||||
<select id="selectExtendedPurchaseDetail"
|
||||
resultType="com.ruoyi.ccdi.project.domain.vo.CcdiProjectExtendedPurchaseDetailVO">
|
||||
select
|
||||
p.purchase_id,
|
||||
p.purchase_category,
|
||||
p.project_name,
|
||||
p.subject_name,
|
||||
p.subject_desc,
|
||||
p.purchase_qty,
|
||||
p.budget_amount,
|
||||
p.bid_amount,
|
||||
p.actual_amount,
|
||||
p.contract_amount,
|
||||
p.settlement_amount,
|
||||
p.purchase_method,
|
||||
p.supplier_name,
|
||||
p.contact_person,
|
||||
p.contact_phone,
|
||||
p.supplier_uscc,
|
||||
p.supplier_bank_account,
|
||||
p.apply_date,
|
||||
p.plan_approve_date,
|
||||
p.announce_date,
|
||||
p.bid_open_date,
|
||||
p.contract_sign_date,
|
||||
p.expected_delivery_date,
|
||||
p.actual_delivery_date,
|
||||
p.acceptance_date,
|
||||
p.settlement_date,
|
||||
p.applicant_id,
|
||||
p.applicant_name,
|
||||
p.apply_department,
|
||||
p.purchase_leader_id,
|
||||
p.purchase_leader_name,
|
||||
p.purchase_department,
|
||||
p.created_by,
|
||||
p.create_time,
|
||||
p.updated_by,
|
||||
p.update_time
|
||||
from ccdi_purchase_transaction p
|
||||
inner join (
|
||||
select distinct scope.staff_name
|
||||
from (
|
||||
<include refid="projectEmployeeScopeSql"/>
|
||||
) scope
|
||||
where scope.staff_name is not null
|
||||
and scope.staff_name != ''
|
||||
) scoped_staff
|
||||
on scoped_staff.staff_name = p.applicant_name
|
||||
where p.purchase_id = #{purchaseId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
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 CcdiProjectSpecialCheckExtendedPurchaseSqlTest {
|
||||
|
||||
@Test
|
||||
void shouldExposeExtendedPurchaseMapperMethodsAndSqlCaliber() throws Exception {
|
||||
Class<?> mapperClass = Class.forName("com.ruoyi.ccdi.project.mapper.CcdiProjectSpecialCheckMapper");
|
||||
Class<?> queryClass = Class.forName("com.ruoyi.ccdi.project.domain.dto.CcdiProjectExtendedPurchaseQueryDTO");
|
||||
|
||||
Method listMethod = mapperClass.getMethod("selectExtendedPurchasePage", Page.class, queryClass);
|
||||
Method detailMethod = mapperClass.getMethod("selectExtendedPurchaseDetail", Long.class, String.class);
|
||||
assertEquals("Page", listMethod.getReturnType().getSimpleName());
|
||||
assertEquals("CcdiProjectExtendedPurchaseDetailVO", detailMethod.getReturnType().getSimpleName());
|
||||
|
||||
String xml = Files.readString(Path.of("src/main/resources/mapper/ccdi/project/CcdiProjectSpecialCheckMapper.xml"));
|
||||
String listSql = extractSelect(xml, "selectExtendedPurchasePage");
|
||||
String detailSql = extractSelect(xml, "selectExtendedPurchaseDetail");
|
||||
|
||||
assertTrue(listSql.contains("projectEmployeeScopeSql"));
|
||||
assertTrue(listSql.contains("select distinct scope.staff_name"));
|
||||
assertTrue(listSql.contains("applicant_name"));
|
||||
assertTrue(listSql.contains("apply_date"));
|
||||
assertTrue(listSql.contains("purchase_id"));
|
||||
assertTrue(listSql.contains("project_name"));
|
||||
assertTrue(listSql.contains("subject_name"));
|
||||
assertTrue(listSql.contains("order by p.apply_date desc, p.create_time desc, p.purchase_id desc"));
|
||||
assertTrue(detailSql.contains("projectEmployeeScopeSql"));
|
||||
assertTrue(detailSql.contains("purchase_id = #{purchaseId}"));
|
||||
assertTrue(detailSql.contains("applicant_name"));
|
||||
}
|
||||
|
||||
private String extractSelect(String xml, String selectId) {
|
||||
String start = "<select id=\"" + selectId + "\"";
|
||||
int startIndex = xml.indexOf(start);
|
||||
int endIndex = xml.indexOf("</select>", startIndex);
|
||||
return xml.substring(startIndex, endIndex);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user