<?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.ruoyi.system.mapper.projectV2.ZsyzShyjMapper">

    <resultMap type="ZsyzShyj" id="ZsyzShyjResult">
        <result property="id" column="id"/>
        <result property="xmId" column="xm_id"/>
        <result property="xmbh" column="xmbh"/>
        <result property="deptId" column="dept_id"/>
        <result property="shrxm" column="shrxm"/>
        <result property="xmjd" column="xmjd"/>
        <result property="xmmc" column="xmmc"/>
        <result property="shjg" column="shjg"/>
        <result property="shyj" column="shyj"/>
        <result property="shsj" column="shsj"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="remark" column="remark"/>

        <collection property="zsyzLdpsList" javaType="java.util.List" resultMap="ZsyzLdpsResult"/>
    </resultMap>


    <resultMap type="ZsyzLdps" id="ZsyzLdpsResult">
        <result property="ids" column="ids"/>
        <result property="xmId" column="xm_id"/>
        <result property="xmbh" column="xmbh"/>
        <result property="xmmc" column="xmmc"/>
        <result property="sourceId" column="source_id"/>
        <result property="psnr" column="psnr"/>
        <result property="zcpsnr" column="zcpsnr"/>
        <result property="remark" column="remark"/>
        <result property="deptId" column="dept_id"/>
        <result property="psr" column="psr"/>
        <result property="cjsj" column="cjsj"/>
        <result property="xgr" column="xgr"/>
        <result property="xgsj" column="xgsj"/>
    </resultMap>

    <sql id="selectZsyzShyjVo">
        select s.id, s.xm_id, s.xmbh, s.dept_id, s.shrxm, s.xmjd,s.xmmc, s.shjg, s.shyj, s.shsj, s.create_by, s.create_time, s.update_by, s.update_time, s.remark ,
               l.id as ids, l.xm_id, l.xmbh, l.xmmc, l.source_id, l.psnr, l.zcpsnr, l.remark, l.dept_id, l.psr, l.cjsj, l.xgr, l.xgsj
        from zsyz_shyj s
        left join   zsyz_ldps l on s.id = l.source_id

    </sql>

    <select id="selectZsyzShyjList" parameterType="ZsyzShyj" resultMap="ZsyzShyjResult">
        <include refid="selectZsyzShyjVo"/>
        <where>
            <if test="xmId != null ">and s.xm_id = #{xmId}</if>
            <if test="xmbh != null  and xmbh != ''">and s.xmbh = #{xmbh}</if>
            <if test="xmmc != null  and xmmc != ''">and s.xmmc = #{xmmc}</if>
            <if test="shrxm != null  and shrxm != ''">and s.shrxm = #{shrxm}</if>
            <if test="xmjd != null  and xmjd != ''">and s.xmjd = #{xmjd}</if>
            <if test="shjg != null  and shjg != ''">and s.shjg = #{shjg}</if>
            <if test="shyj != null  and shyj != ''">and s.shyj = #{shyj}</if>
            <if test="shsj != null ">and s.shsj = #{shsj}</if>
        </where>
        <!-- 数据范围过滤 -->
        ${params.dataScope}
        order by s.shsj desc
    </select>

    <select id="selectZsyzShyjById" parameterType="Long" resultMap="ZsyzShyjResult">
        <include refid="selectZsyzShyjVo"/>
        where l.id = #{id}
    </select>
    <select id="selectZsyzShyjListByWt" resultMap="ZsyzShyjResult">
        SELECT
        ANY_VALUE ( s.id ) as id,
        ANY_VALUE ( s.xm_id ) as xm_id ,
        ANY_VALUE ( s.xmbh ) as xmbh,
        ANY_VALUE ( s.dept_id ) as dept_id,
        ANY_VALUE ( s.shrxm ) as shrxm,
        ANY_VALUE ( s.xmjd ) as xmjd,
        ANY_VALUE ( s.xmmc ) as xmmc,
        ANY_VALUE ( s.shjg ) as shjg,
        ANY_VALUE ( s.shyj ) as shyj,
        ANY_VALUE ( s.shsj ) as shsj
        FROM
        zsyz_shyj s
        <where>
            s.shjg = '2'
            <if test="xmmc != null  and xmmc != ''">and s.xmmc like concat( #{xmmc}, '%') </if>
            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
                AND date_format(s.create_time,'%Y%m%d') &gt;= date_format(#{params.beginTime},'%Y%m%d')
            </if>
            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
                AND date_format(s.create_time,'%Y%m%d') &lt;= date_format(#{params.endTime},'%Y%m%d')
            </if>
        </where>
        <!-- 数据范围过滤 -->
        ${params.dataScope}
        GROUP BY
        s.xm_id
    </select>

    <insert id="insertZsyzShyj" parameterType="ZsyzShyj" useGeneratedKeys="true" keyProperty="id">
        insert into zsyz_shyj
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="xmId != null">xm_id,</if>
            <if test="xmbh != null">xmbh,</if>
            <if test="xmmc != null">xmmc,</if>
            <if test="deptId != null">dept_id,</if>
            <if test="shrxm != null and shrxm != ''">shrxm,</if>
            <if test="xmjd != null and xmjd != ''">xmjd,</if>
            <if test="shjg != null and shjg != ''">shjg,</if>
            <if test="shyj != null">shyj,</if>
            <if test="shsj != null">shsj,</if>
            <if test="createBy != null">create_by,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="remark != null">remark,</if>
            create_time
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="xmId != null">#{xmId},</if>
            <if test="xmbh != null">#{xmbh},</if>
            <if test="xmmc != null and xmmc != ''">#{xmmc},</if>
            <if test="deptId != null">#{deptId},</if>
            <if test="shrxm != null and shrxm != ''">#{shrxm},</if>
            <if test="xmjd != null and xmjd != ''">#{xmjd},</if>
            <if test="shjg != null and shjg != ''">#{shjg},</if>
            <if test="shyj != null">#{shyj},</if>
            <if test="shsj != null">#{shsj},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="remark != null">#{remark},</if>
            sysdate()
        </trim>
    </insert>

    <update id="updateZsyzShyj" parameterType="ZsyzShyj">
        update zsyz_shyj
        <trim prefix="SET" suffixOverrides=",">
            <if test="xmId != null">xm_id = #{xmId},</if>
            <if test="xmbh != null">xmbh = #{xmbh},</if>
            <if test="xmmc != null and xmmc != ''">xmmc = #{xmmc},</if>
            <if test="deptId != null">dept_id = #{deptId},</if>
            <if test="shrxm != null and shrxm != ''">shrxm = #{shrxm},</if>
            <if test="xmjd != null and xmjd != ''">xmjd = #{xmjd},</if>
            <if test="shjg != null and shjg != ''">shjg = #{shjg},</if>
            <if test="shyj != null">shyj = #{shyj},</if>
            <if test="shsj != null">shsj = #{shsj},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="remark != null">remark = #{remark},</if>
        </trim>
        where id = #{id}
    </update>

    <delete id="deleteZsyzShyjById" parameterType="Long">
        delete from zsyz_shyj where id = #{id}
    </delete>

    <delete id="deleteZsyzShyjByIds" parameterType="String">
        delete from zsyz_shyj where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>