<?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="org.jeecg.modules.flowable.apithird.business.mapper.FlowMyBusinessMapper">
|
<select id="PageList" resultType="org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto">
|
SELECT
|
flow_my_business.id,
|
flow_my_business.title as 'description',
|
flow_my_business.proposer,
|
flow_my_business.task_name,
|
flow_my_business.task_id,
|
flow_my_business.data_id AS 'dataId',
|
flow_my_business.process_definition_key,
|
flow_my_business.process_definition_id,
|
flow_my_business.process_instance_id,
|
flow_my_business.todo_users as todoUsers,
|
flow_my_business.done_Users,
|
ACT_HI_PROCINST.START_TIME_ AS start_time,
|
ACT_HI_PROCINST.END_TIME_ AS end_time,
|
ACT_RE_PROCDEF.NAME_ AS flowName,
|
ACT_RE_PROCDEF.CATEGORY_ AS category
|
FROM
|
flow_my_business
|
LEFT JOIN ACT_HI_PROCINST ON flow_my_business.process_instance_id = ACT_HI_PROCINST.ID_
|
LEFT JOIN ACT_RE_PROCDEF ON flow_my_business.process_definition_id = ACT_RE_PROCDEF.ID_
|
left join ACT_RU_TASK on flow_my_business.task_id = ACT_RU_TASK.ID_
|
WHERE
|
1 = 1
|
<if test="flowMyBusinessDto.category != null and flowMyBusinessDto.category != ''">
|
and ACT_RE_PROCDEF.CATEGORY_ = #{flowMyBusinessDto.category}
|
</if>
|
<if test="flowMyBusinessDto.flowName!= null and flowMyBusinessDto.flowName!= ''">
|
AND ACT_RE_PROCDEF.name_ LIKE CONCAT('%',#{flowMyBusinessDto.flowName},'%')
|
</if>
|
<if test="flowMyBusinessDto.title != null and flowMyBusinessDto.title != ''">
|
AND flow_my_business.title LIKE CONCAT('%',#{flowMyBusinessDto.title},'%')
|
</if>
|
<if test="flowMyBusinessDto.startTime!= null and flowMyBusinessDto.startTime!= ''">
|
AND ACT_HI_PROCINST.START_TIME_ >= #{flowMyBusinessDto.startTime}
|
</if>
|
<if test="flowMyBusinessDto.endTime!= null and flowMyBusinessDto.endTime!= ''">
|
AND ACT_HI_PROCINST.END_TIME_ <= #{flowMyBusinessDto.endTime}
|
</if>
|
ORDER BY
|
flow_my_business.create_time desc
|
</select>
|
|
<select id="ListMyBusiness" resultType="org.jeecg.modules.flowable.domain.dto.FlowTaskDto">
|
SELECT
|
fmb.task_id AS 'taskId',
|
fmb.process_instance_id AS 'procInsId',
|
ACT_RE_PROCDEF.CATEGORY_ AS 'category',
|
ACT_RE_PROCDEF.NAME_ AS 'procDefName',
|
fmb.title AS 'Description',
|
fmb.data_id AS 'dataId',
|
fmb.process_definition_key AS 'processDefinitionKey',
|
fmb.process_definition_id AS 'processDefinitionId',
|
fmb.proposer,
|
fmb.todo_users,
|
fmb.task_name,
|
latest_task.NAME_ AS taskName,
|
fmb.create_time AS createTime,
|
latest_task.END_TIME_ AS finishTime
|
FROM
|
flow_my_business fmb
|
LEFT JOIN ACT_RE_PROCDEF ON fmb.process_definition_id = ACT_RE_PROCDEF.ID_
|
LEFT JOIN ACT_HI_PROCINST ON fmb.process_instance_id = ACT_HI_PROCINST.ID_
|
LEFT JOIN (
|
SELECT
|
*,
|
ROW_NUMBER() OVER (
|
PARTITION BY PROC_INST_ID_
|
ORDER BY END_TIME_ DESC
|
) AS rn
|
FROM ACT_HI_TASKINST
|
WHERE ASSIGNEE_ = #{dto.currentUser} <!-- 统一别名 -->
|
<if test="dto.startTime != null">
|
AND START_TIME_ >= #{dto.startTime}
|
</if>
|
<if test="dto.endTime != null">
|
AND END_TIME_ <= #{dto.endTime}
|
</if>
|
) latest_task
|
ON fmb.process_instance_id = latest_task.PROC_INST_ID_
|
AND latest_task.rn = 1
|
WHERE
|
<!-- 动态条件统一使用 dto -->
|
<if test="dto.currentUser != null and dto.currentUser != ''">
|
fmb.done_users like concat('%',#{dto.currentUser},'%')
|
</if>
|
<if test="dto.category != null and dto.category != ''">
|
AND ACT_RE_PROCDEF.CATEGORY_ = #{dto.category}
|
</if>
|
<if test="dto.flowName != null and dto.flowName != ''">
|
AND ACT_RE_PROCDEF.NAME_ LIKE CONCAT('%', #{dto.flowName}, '%')
|
</if>
|
<if test="dto.title != null and dto.title != ''">
|
AND fmb.title LIKE CONCAT('%', #{dto.title}, '%')
|
</if>
|
ORDER BY
|
latest_task.END_TIME_ DESC
|
</select>
|
</mapper>
|