From 30e775eb9d4b20b6dbb407199f8f4d0729bf7c4e Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期四, 21 八月 2025 15:42:53 +0800 Subject: [PATCH] 工作流修改 --- lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml | 83 ++++++++++++++++++++++------------------- 1 files changed, 45 insertions(+), 38 deletions(-) diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml index 07c540b..b86db31 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml @@ -4,7 +4,7 @@ <select id="PageList" resultType="org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto"> SELECT flow_my_business.id, - flow_my_business.title, + flow_my_business.title as 'description', flow_my_business.proposer, flow_my_business.task_name, flow_my_business.task_id, @@ -41,52 +41,59 @@ AND ACT_HI_PROCINST.END_TIME_ <= #{flowMyBusinessDto.endTime} </if> ORDER BY - flow_my_business.create_time desc + 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', + latest_task.ID_ AS 'taskId', + latest_task.PROC_INST_ID_ AS 'procInstId', + latest_task.PROC_DEF_ID_ AS 'processInstanceId', 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.todo_users, + -- fmb.task_name, + latest_task.NAME_ AS taskName, + -- fmb.create_time AS createTime, + latest_task.END_TIME_ AS finishTime, + latest_task.TASK_DEF_KEY_ AS taskDefKey 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_ - WHERE - TASK.END_TIME_ IS NOT NULL - <if test="flowMyBusinessDto.currentUser != null and flowMyBusinessDto.currentUser != ''"> - AND TASK.ASSIGNEE_ = #{flowMyBusinessDto.currentUser} + ( + 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="flowMyBusinessDto.category != null and flowMyBusinessDto.category != ''"> - and ACT_RE_PROCDEF.CATEGORY_ = #{flowMyBusinessDto.category} + <if test="dto.endTime != null"> + AND END_TIME_ <= #{dto.endTime} </if> - <if test="flowMyBusinessDto.flowName!= null and flowMyBusinessDto.flowName!= ''"> - AND ACT_RE_PROCDEF.name_ LIKE CONCAT('%',#{flowMyBusinessDto.flowName},'%') + ) latest_task + LEFT JOIN (select DISTINCT process_definition_key, process_definition_id, process_instance_id, title, data_id, proposer from flow_my_business) fmb ON fmb.process_instance_id = latest_task.PROC_INST_ID_ + 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_ + WHERE latest_task.rn = 1 + <!-- 鍔ㄦ�佹潯浠剁粺涓�浣跨敤 dto --> + <if test="dto.category != null and dto.category != ''"> + AND ACT_RE_PROCDEF.CATEGORY_ = #{dto.category} </if> - <if test="flowMyBusinessDto.title != null and flowMyBusinessDto.title != ''"> - AND flow_my_business.title LIKE CONCAT('%',#{flowMyBusinessDto.title},'%') + <if test="dto.flowName != null and dto.flowName != ''"> + AND ACT_RE_PROCDEF.NAME_ LIKE CONCAT('%', #{dto.flowName}, '%') </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> -- Gitblit v1.9.3