<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zt.plat.module.qms.business.config.dal.mapper.MaterialAssayStandardMapper">

    <!--
        一般情况下，尽可能使用 Mapper 进行 CRUD 增删改查即可。
        无法满足的场景，例如说多表关联查询，才使用 XML 编写 SQL。
        代码生成器暂时只生成 Mapper XML 文件本身，更多推荐 MybatisX 快速开发插件来生成查询。
        文档可见：https://www.iocoder.cn/MyBatis/x-plugins/
     -->
    <select id="selectPageWithExtend" resultType="com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardExtendDO">
        select m.ID as id,
        m.BSE_SMP_ID as baseSampleId,
        m.MTRL_ID as materialId,
        m.DIC_BSN_ID as dictionaryBusinessId,
        m.RMK as remark,
        m.SYS_DEPT_CD as systemDepartmentCode,
        s.NAME as sampleName,
        s.MTRL_CD as materialCode,
        s.MTRL_NAME as materialName,
        (select count(*) from T_MTRL_ASY_STD_DTL d where d.MTRL_ASY_STD_ID = m.id) as detailCount
        from T_MTRL_ASY_STD m
        left join T_BSE_SMP s on m.BSE_SMP_ID = s.id
        <where>
            <if test="param.materialName != null and param.materialName != ''">
                and s.MTRL_NAME like '%' || #{param.materialName} || '%'
            </if>
            <if test="param.materialCode != null and param.materialCode != ''">
                and s.MTRL_CD like '%' || #{param.materialCode} || '%'
            </if>
            <if test="param.dictionaryBusinessId != null">
                and s.DIC_BSN_ID = #{param.dictionaryBusinessId}
            </if>
            and m.RMK != 'tempDataKey'
            and m.deleted = 0
        </where>
    </select>

</mapper>