WorkflowMapper.xml 8.64 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.workflow.mapper.WorkflowMapper">
    
    <resultMap type="Workflow" id="WorkflowResult">
        <result property="id"    column="id"    />
        <result property="type"    column="type"    />
        <result property="title"    column="title"    />
        <result property="reason"    column="reason"    />
        <result property="startTime"    column="start_time"    />
        <result property="endTime"    column="end_time"    />
        <result property="instanceId"    column="instance_id"    />
        <result property="state"    column="state"    />
        <result property="createName"    column="create_name"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateTime"    column="update_time"    />
    </resultMap>

    <sql id="selectWorkflowVo">
        select id, type, title, reason, start_time, end_time, instance_id, state, create_name,create_by, create_time, update_time from workflow
    </sql>

    <select id="selectWorkflowListByWorkflowAndDeptId"  resultMap="WorkflowResult">
        <include refid="selectWorkflowVo"/>
       where create_by in (SELECT user_name FROM `sys_user` where dept_id in (SELECT dept_id FROM sys_dept WHERE dept_id = #{deptId} or find_in_set( #{deptId} , ancestors ) ))
            <if test="Workflow.type != null  and Workflow.type != ''"> and type = #{Workflow.type}</if>
            <if test="Workflow.title != null  and Workflow.title != ''"> and title = #{Workflow.title}</if>
            <if test="Workflow.reason != null  and Workflow.reason != ''"> and reason = #{Workflow.reason}</if>
            <if test="Workflow.startTime != null "> and start_time = #{Workflow.startTime}</if>
            <if test="Workflow.endTime != null "> and end_time = #{Workflow.endTime}</if>
            <if test="Workflow.instanceId != null  and Workflow.instanceId != ''"> and instance_id = #{Workflow.instanceId}</if>
            <if test="Workflow.state != null  and Workflow.state != ''"> and state = #{Workflow.state}</if>
            <if test="Workflow.createName != null  and Workflow.createName != ''"> and create_name = #{Workflow.createName}</if>
            <if test="Workflow.createBy != null  and Workflow.createBy != ''"> and create_by = #{Workflow.createBy}</if>
        order by create_time desc
    </select>

    <select id="selectWorkflowList" parameterType="Workflow" resultMap="WorkflowResult">
        <include refid="selectWorkflowVo"/>
        <where>
            <if test="type != null  and type != ''"> and type = #{type}</if>
            <if test="title != null  and title != ''"> and title = #{title}</if>
            <if test="reason != null  and reason != ''"> and reason = #{reason}</if>
            <if test="startTime != null "> and start_time = #{startTime}</if>
            <if test="endTime != null "> and end_time = #{endTime}</if>
            <if test="instanceId != null  and instanceId != ''"> and instance_id = #{instanceId}</if>
            <if test="state != null  and state != ''"> and state = #{state}</if>
            <if test="createName != null  and createName != ''"> and create_name = #{createName}</if>
            <if test="createBy != null  and createBy != ''"> and create_by = #{createBy}</if>
        </where>
        order by create_time desc
    </select>
    
    <select id="selectWorkflowById" parameterType="String" resultMap="WorkflowResult">
        <include refid="selectWorkflowVo"/>
        where id = #{id}
    </select>
    <select id="selectWorkflowByInstanceId" parameterType="String" resultMap="WorkflowResult">
        <include refid="selectWorkflowVo"/>
        where instance_id = #{instanceId}
    </select>
        
    <insert id="insertWorkflow" parameterType="Workflow">
        insert into workflow
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="type != null">type,</if>
            <if test="title != null">title,</if>
            <if test="reason != null">reason,</if>
            <if test="startTime != null">start_time,</if>
            <if test="endTime != null">end_time,</if>
            <if test="instanceId != null">instance_id,</if>
            <if test="state != null">state,</if>
            <if test="createName != null">create_name,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateTime != null">update_time,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="type != null">#{type},</if>
            <if test="title != null">#{title},</if>
            <if test="reason != null">#{reason},</if>
            <if test="startTime != null">#{startTime},</if>
            <if test="endTime != null">#{endTime},</if>
            <if test="instanceId != null">#{instanceId},</if>
            <if test="state != null">#{state},</if>
            <if test="createName != null">#{createName},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateTime != null">#{updateTime},</if>
         </trim>
    </insert>
    
     <insert id="insertWorkflowHistory" parameterType="Workflow">
        insert into workflow_hi
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="type != null">type,</if>
            <if test="title != null">title,</if>
            <if test="reason != null">reason,</if>
            <if test="startTime != null">start_time,</if>
            <if test="endTime != null">end_time,</if>
            <if test="instanceId != null">instance_id,</if>
            <if test="state != null">state,</if>
            <if test="createName != null">create_name,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateTime != null">update_time,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="type != null">#{type},</if>
            <if test="title != null">#{title},</if>
            <if test="reason != null">#{reason},</if>
            <if test="startTime != null">#{startTime},</if>
            <if test="endTime != null">#{endTime},</if>
            <if test="instanceId != null">#{instanceId},</if>
            <if test="state != null">#{state},</if>
            <if test="createName != null">#{createName},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateTime != null">#{updateTime},</if>
         </trim>
    </insert>
    
    <insert id="insertUpdateData" parameterType="Map">
        insert into workflow_data(id,type,state,result,time)
        values (
        	#{id},
            #{type},
           #{state},
            #{result},
            NOW()
         )
    </insert>
    

    <update id="updateWorkflow" parameterType="Workflow">
        update workflow
        <trim prefix="SET" suffixOverrides=",">
            <if test="type != null">type = #{type},</if>
            <if test="title != null">title = #{title},</if>
            <if test="reason != null">reason = #{reason},</if>
            <if test="startTime != null">start_time = #{startTime},</if>
            <if test="endTime != null">end_time = #{endTime},</if>
            <if test="instanceId != null">instance_id = #{instanceId},</if>
            <if test="state != null">state = #{state},</if>
            <if test="createName != null">create_name = #{createName},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
        </trim>
        where id = #{id}
    </update>

    <delete id="deleteWorkflowById" parameterType="String">
        delete from workflow where id = #{id}
    </delete>


    <delete id="deleteWorkflowByName" parameterType="String">
        delete from workflow where id like concat('%',#{name,jdbcType=VARCHAR},'%')
    </delete>
    
    <delete id="deleteWorkflowByIds" parameterType="String">
        delete from workflow where id in 
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    
</mapper>