sinake
2 天以前 e24ab2fc4d092b4599ef44ddce5ebdbbc0bd8f9a
ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
@@ -43,11 +43,21 @@
        <result property="organdonation" column="OrganDonation"/>
        <result property="organdonationOther" column="OrganDonation_Other"/>
        <result property="donationcategory" column="DonationCategory"/>
        <result property="coordinatorInOperating" column="coordinator_in_operating"/>
        <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,
               coordinator_sign_time,
               DonorNo,
               GainHospitalNo,
               GainHospitalName,
@@ -92,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">
@@ -121,6 +150,7 @@
        `service_donatebaseinfo`.`create_by` AS `basecreateby`,
        `service_donatebaseinfo`.`workflow` AS `workflow`,
        `service_donatebaseinfo`.`termination_case` AS `terminationCase`,
        `service_donatebaseinfo`.`donatetime` AS `donatetime`,
        `service_donationwitness`.`ID` AS `dwID`,
        `service_donationwitness`.`InfoID` AS `InfoID`,
        `service_donationwitness`.`DonorNo` AS `dwDonorNo`,
@@ -158,16 +188,21 @@
        `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`.`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
        `service_donatebaseinfo`.`ID` = `service_donationwitness`.`InfoID`
        LEFT JOIN `base_organization` ON
        `base_organization`.`OrganizationID` = `service_donatebaseinfo`.`TreatmentHospitalNo`
        <where>
            service_donationwitness.del_flag=0
            and service_donatebaseinfo.del_flag=0
            <if test="donorno != null  and donorno != ''">and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
            <if test="name != null  and name != ''">and `service_donatebaseinfo`.`Name` like concat('%', #{name}, '%')
            </if>
@@ -187,7 +222,7 @@
                #{reporterno}
            </if>
            <if test="city != null and city != ''">and `base_organization`.`City` = #{city}</if>
            <if test="workflow != null "> and `service_donatebaseinfo`.`workflow` = #{workflow}</if>
            <if test="workflow != null ">and `service_donatebaseinfo`.`workflow` = #{workflow}</if>
        </where>
        order by `service_donationwitness`.`create_time` desc
@@ -248,7 +283,10 @@
        inner join service_donatebaseinfo b on w.InfoID = b.id
        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
        <where>
            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>
@@ -267,4 +305,4 @@
    </select>
</mapper>
</mapper>