| | |
| | | ORDER BY |
| | | flow_my_business.create_time desc |
| | | </select> |
| | | <select id="PageListMyBusiness" resultType="org.jeecg.modules.flowable.domain.dto.FlowTaskDto"> |
| | | |
| | | <select id="ListMyBusiness" resultType="org.jeecg.modules.flowable.domain.dto.FlowTaskDto"> |
| | | SELECT |
| | | task.ID_ AS 'taskId', |
| | | TASK.PROC_INST_ID_ AS 'procInsId', |
| | | fmb.task_id AS 'taskId', |
| | | fmb.process_instance_id AS 'procInsId', |
| | | ACT_RE_PROCDEF.CATEGORY_ AS 'category', |
| | | ACT_RE_PROCDEF.NAME_ 'procDefName', |
| | | flow_my_business.title AS 'Description', |
| | | flow_my_business.data_id AS 'dataId', |
| | | flow_my_business.process_definition_key AS 'processDefinitionKey', |
| | | flow_my_business.process_definition_id AS 'processDefinitionId', |
| | | ACT_HI_PROCINST.START_TIME_ AS createTime, |
| | | ACT_RU_TASK.ASSIGNEE_ as todoUsers, |
| | | task.END_TIME_ AS 'finishTime', |
| | | TASK.EXECUTION_ID_ AS 'executionId', |
| | | task.NAME_ AS 'taskName', |
| | | task.DURATION_ 'duration', |
| | | task.TASK_DEF_KEY_ AS 'TaskDefKey' |
| | | 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.task_name, |
| | | latest_task.NAME_ AS taskName, |
| | | fmb.create_time AS createTime, |
| | | latest_task.END_TIME_ AS finishTime |
| | | FROM |
| | | ACT_HI_TASKINST TASK |
| | | LEFT JOIN flow_my_business ON flow_my_business.process_instance_id = TASK.PROC_INST_ID_ |
| | | LEFT JOIN ACT_RE_PROCDEF ON flow_my_business.process_definition_id = ACT_RE_PROCDEF.ID_ |
| | | LEFT JOIN ACT_HI_PROCINST ON TASK.PROC_INST_ID_ = ACT_HI_PROCINST.ID_ |
| | | left join ACT_RU_TASK on flow_my_business.task_id = ACT_RU_TASK.ID_ |
| | | 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 |
| | | TASK.END_TIME_ IS NOT NULL |
| | | <if test="flowMyBusinessDto.currentUser != null and flowMyBusinessDto.currentUser != ''"> |
| | | AND TASK.ASSIGNEE_ = #{flowMyBusinessDto.currentUser} |
| | | <!-- 动态条件统一使用 dto --> |
| | | <if test="dto.currentUser != null and dto.currentUser != ''"> |
| | | fmb.done_users like concat('%',#{dto.currentUser},'%') |
| | | </if> |
| | | <if test="flowMyBusinessDto.category != null and flowMyBusinessDto.category != ''"> |
| | | and ACT_RE_PROCDEF.CATEGORY_ = #{flowMyBusinessDto.category} |
| | | <if test="dto.category != null and dto.category != ''"> |
| | | AND ACT_RE_PROCDEF.CATEGORY_ = #{dto.category} |
| | | </if> |
| | | <if test="flowMyBusinessDto.flowName!= null and flowMyBusinessDto.flowName!= ''"> |
| | | AND ACT_RE_PROCDEF.name_ LIKE CONCAT('%',#{flowMyBusinessDto.flowName},'%') |
| | | <if test="dto.flowName != null and dto.flowName != ''"> |
| | | AND ACT_RE_PROCDEF.NAME_ LIKE CONCAT('%', #{dto.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 TASK.START_TIME_ >= #{flowMyBusinessDto.startTime} |
| | | </if> |
| | | <if test="flowMyBusinessDto.endTime!= null and flowMyBusinessDto.endTime!= ''"> |
| | | AND TASK.END_TIME_ <= #{flowMyBusinessDto.endTime} |
| | | <if test="dto.title != null and dto.title != ''"> |
| | | AND fmb.title LIKE CONCAT('%', #{dto.title}, '%') |
| | | </if> |
| | | ORDER BY |
| | | TASK.END_TIME_ DESC |
| | | latest_task.END_TIME_ DESC |
| | | </select> |
| | | </mapper> |