SupervisionTrackMapper.xml 7.77 KB
<?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.trash.business.mapper.SupervisionTrackMapper">
    
    <resultMap type="SupervisionTrack" id="SupervisionTrackResult">
        <result property="id"    column="id"    />
        <result property="type"    column="type"    />
        <result property="title"    column="title"    />
        <result property="dept"    column="dept"    />
        <result property="place"    column="place"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateTime"    column="update_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="attach"    column="attach"    />
        <result property="status"    column="status"    />
        <result property="objectId"    column="object_id"    />
    </resultMap>

    <sql id="selectSupervisionTrackVo">
        select id, type, title, dept, place, create_by, create_time, update_time, update_by, attach, status, object_id from supervision_track
    </sql>

    <select id="selectSupervisionTrackList" parameterType="SupervisionTrack" resultMap="SupervisionTrackResult">
        <include refid="selectSupervisionTrackVo"/>
        <where>  
            <if test="type != null "> and type = #{type}</if>
            <if test="title != null  and title != ''"> and title like concat('%', #{title}, '%')</if>
            <if test="place != null  and place != ''"> and place = #{place}</if>
            <if test="status != null "> and status = #{status}</if>
            <if test="objectId != null  and objectId != ''"> and object_id = #{objectId}</if>
            <if test="year != null "> and DATE_FORMAT(create_time ,"%Y") = #{year}</if>
            <if test="season != null"> and create_time BETWEEN ${season}</if>
        </where>
    </select>
    
        <select id="getTables" parameterType="SupervisionTrack" resultType="java.util.HashMap">
        
            select * from (select  type,count(*) as 'count' from supervision_track 
            	 <where>  
		            <if test="place != null  and place != ''"> and place = #{place}</if>
		            <if test="year != null "> and DATE_FORMAT(create_time ,"%Y") = #{year}</if>
		            <if test="season != null"> and create_time BETWEEN ${season}</if>
		        </where>
            GROUP BY type) a
			left JOIN (
			select type,count(*) as 'status0' from supervision_track 
				<where>  
					status = 0 
		            <if test="place != null  and place != ''"> and place = #{place}</if>
		            <if test="year != null "> and DATE_FORMAT(create_time ,"%Y") = #{year}</if>
		            <if test="season != null"> and create_time BETWEEN ${season}</if>
		        </where>
			 GROUP BY type) b
			on b.type = a.type
			left JOIN (
			select type,count(*) as 'status1' from supervision_track 
				
				<where>  
					status = 1 
		            <if test="place != null  and place != ''"> and place = #{place}</if>
		            <if test="year != null "> and DATE_FORMAT(create_time ,"%Y") = #{year}</if>
		            <if test="season != null"> and create_time BETWEEN ${season}</if>
		        </where>
		        
		        GROUP BY type) c
			on c.type = a.type
			left JOIN (
			select type,count(*) as 'status2' from supervision_track 
				<where>  
					status = 2 
		            <if test="place != null  and place != ''"> and place = #{place}</if>
		            <if test="year != null "> and DATE_FORMAT(create_time ,"%Y") = #{year}</if>
		            <if test="season != null"> and create_time BETWEEN ${season}</if>
		        </where>
		         GROUP BY type) d
			on c.type = d.type
			left JOIN (
			select type,count(*) as 'status3' from supervision_track 
				<where>  
					status = 3 
		            <if test="place != null  and place != ''"> and place = #{place}</if>
		            <if test="year != null "> and DATE_FORMAT(create_time ,"%Y") = #{year}</if>
		            <if test="season != null"> and create_time BETWEEN ${season}</if>
		        </where>
		         GROUP BY type) e
			on b.type = a.type
			left JOIN (
			select type,count(*) as 'status4' from supervision_track 
				<where>  
					status = 4 
		            <if test="place != null  and place != ''"> and place = #{place}</if>
		            <if test="year != null "> and DATE_FORMAT(create_time ,"%Y") = #{year}</if>
		            <if test="season != null"> and create_time BETWEEN ${season}</if>
		        </where>
		         GROUP BY type) f
			on c.type = a.type
			left JOIN (
			select type,count(*) as 'status5' from supervision_track 
				<where>  
					status = 5 
		            <if test="place != null  and place != ''"> and place = #{place}</if>
		            <if test="year != null "> and DATE_FORMAT(create_time ,"%Y") = #{year}</if>
		            <if test="season != null"> and create_time BETWEEN ${season}</if>
		        </where>
		         GROUP BY type) g
			on c.type = d.type
        
    </select>
    
    

    
    
    
    <select id="selectSupervisionTrackById" parameterType="Long" resultMap="SupervisionTrackResult">
        <include refid="selectSupervisionTrackVo"/>
        where id = #{id}
    </select>
        
    <insert id="insertSupervisionTrack" parameterType="SupervisionTrack" useGeneratedKeys="true" keyProperty="id">
        insert into supervision_track
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="type != null">type,</if>
            <if test="title != null">title,</if>
            <if test="dept != null">dept,</if>
            <if test="place != null">place,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="attach != null">attach,</if>
            <if test="status != null">status,</if>
            <if test="objectId != null">object_id,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="type != null">#{type},</if>
            <if test="title != null">#{title},</if>
            <if test="dept != null">#{dept},</if>
            <if test="place != null">#{place},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="attach != null">#{attach},</if>
            <if test="status != null">#{status},</if>
            <if test="objectId != null">#{objectId},</if>
         </trim>
    </insert>

    <update id="updateSupervisionTrack" parameterType="SupervisionTrack">
        update supervision_track
        <trim prefix="SET" suffixOverrides=",">
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="status != null">status = #{status},</if>
        </trim>
        where id = #{id}
    </update>
    
    <select id="getAllDate" resultType="java.util.HashMap">
        select DATE_FORMAT(create_time , "%Y") as 'year',DATE_FORMAT(create_time , "%Y-%m") as 'month' from supervision_track GROUP BY DATE_FORMAT(create_time , "%Y-%m");
    </select>
    

    <delete id="deleteSupervisionTrackById" parameterType="Long">
        delete from supervision_track where id = #{id}
    </delete>

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