sinake
2 天以前 c76f64a1f4d9a7f7283373be70b1dfd925286e4d
ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
@@ -47,11 +47,13 @@
        <result property="coordinatorOutOperating" column="coordinator_out_operating"/>
        <result property="coordinatorSign" column="coordinator_sign"/>
        <result property="coordinatorSignTime" column="coordinator_sign_time"/>
        <result property="donateHospital" column="donate_hospital"/>
    </resultMap>
    <sql id="selectServiceDonationwitnessVo">
        select ID,
               InfoID,
               donate_hospital,
               coordinator_in_operating,
               coordinator_out_operating,
               coordinator_sign,
@@ -100,12 +102,30 @@
        <include refid="selectServiceDonationwitnessVo"/>
        <where>
            <if test="donorno != null  and donorno != ''">and DonorNo = #{donorno}</if>
            <if test="donateHospital != null  and donateHospital != ''">and donate_hospital = #{donateHospital}</if>
            <if test="gainhospitalname != null  and gainhospitalname != ''">and GainHospitalName like concat('%',
                #{gainhospitalname}, '%')
            </if>
            <if test="operationdoctor != null  and operationdoctor != ''">and OperationDoctor = #{operationdoctor}</if>
            <if test="infoid != null">and InfoID = #{infoid}</if>
        </where>
    </select>
    <!--
      批量查询「捐献基础ID -> 死亡时间」,供列表页计算年龄使用。
      代替原先在记录循环中按 InfoID 逐条查询的 N+1 写法(首页有 N 条记录就发 N 次 SQL)。
      只返回 InfoID 与 DeathTime 两列;Infoid 与 DeathTime 均为空的行无意义,直接过滤,
      同时避免与 selectServiceDonationwitnessList 返回的行数不一致。
    -->
    <select id="selectDeathTimeByInfoIds" resultMap="ServiceDonationwitnessResult">
        select InfoID, DeathTime from service_donationwitness
        where InfoID is not null and DeathTime is not null
        <if test="infoIds != null and infoIds.size() > 0">
            and InfoID in
            <foreach collection="infoIds" item="infoId" open="(" separator="," close=")">
                #{infoId}
            </foreach>
        </if>
    </select>
    <select id="selectVOList" resultType="com.ruoyi.project.domain.vo.DonationWitnessVO">
@@ -172,7 +192,8 @@
        `service_donationwitness`.`coordinator_in_operating` AS `coordinatorInOperating`,
        `service_donationwitness`.`coordinator_out_operating` AS `coordinatorOutOperating`,
        `service_donationwitness`.`coordinator_sign` AS `coordinatorSign`,
        `service_donationwitness`.`coordinator_sign_time` AS `coordinatorSignTime`
        `service_donationwitness`.`coordinator_sign_time` AS `coordinatorSignTime`,
        `service_donationwitness`.`donate_hospital` AS `donate_hospital`
        FROM
        `service_donatebaseinfo`
        LEFT JOIN `service_donationwitness` ON
@@ -265,6 +286,7 @@
            w.del_flag=0
            and b.del_flag=0
            <if test="starttime != null ">and w.OperationBegTime >= #{starttime}</if>
            <if test="donateHospital != null ">and w.donate_hospital >= #{donateHospital}</if>
            <if test="endtime != null ">and w.OperationBegTime &lt;= #{endtime}</if>
            <if test="city != null and city != ''">and o.City = #{city}</if>
            <if test="reporterno != null and reporterno != ''">and b.ReporterNo = #{reporterno}</if>