yxh
3 天以前 68b49efb4da346edb42a5d8ebb39af47207402bd
ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
@@ -45,17 +45,19 @@
        <result property="donationcategory" column="DonationCategory"/>
        <result property="coordinatorInOperating" column="coordinator_in_operating"/>
        <result property="coordinatorOutOperating" column="coordinator_out_operating"/>
        <result property="coorinatorSign" column="coorinator_sign"/>
        <result property="coorinatorSignTime" column="coorinator_sign_time"/>
        <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,
               coorinator_sign,
               coorinator_sign_time,
               coordinator_sign,
               coordinator_sign_time,
               DonorNo,
               GainHospitalNo,
               GainHospitalName,
@@ -100,11 +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">
@@ -167,11 +188,12 @@
        `service_donationwitness`.`create_by` AS `createby`,
        `service_donationwitness`.`create_time` AS `createtime`,
        `service_donationwitness`.`update_by` AS `updateby`,
        `service_donationwitness`.`update_time` AS `updatetime`
        `service_donationwitness`.`coordinator_in_operating` AS `coordinatorInOperating`
        `service_donationwitness`.`coordinator_out_operating` AS `coordinatorOutOperating`
        `service_donationwitness`.`coorinator_sign` AS `coorinatorSign`
        `service_donationwitness`.`coorinator_sign_time` AS `coorinatorSignTime`
        `service_donationwitness`.`update_time` AS `updatetime`,
        `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`.`donate_hospital` AS `donate_hospital`
        FROM
        `service_donatebaseinfo`
        LEFT JOIN `service_donationwitness` ON
@@ -264,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>