From 27c2a530b641a1b4e815b79cd9a9fbd73debd627 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 06 九月 2025 14:05:51 +0800
Subject: [PATCH] 已办增加进行中查询条件

---
 doc/sql/mdm/mdm.mysql.cleandata.sql                                                             |    2 
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java    |   26 +++++--------
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java |    6 ++-
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/DoneQueryVO.java              |   11 +++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/DoneMapper.xml            |   20 +++++++--
 5 files changed, 41 insertions(+), 24 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
index 44016d0..2b18b4e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
@@ -18,6 +18,7 @@
 import org.springblade.mdm.flow.service.FlowBusinessService;
 import org.springblade.mdm.flow.service.FlowCommonService;
 import org.springblade.mdm.flow.service.FlowTransferService;
+import org.springblade.mdm.flow.vo.DoneQueryVO;
 import org.springblade.mdm.flow.vo.FlowVO;
 import org.springblade.mdm.gkw.programnode.vo.ProgramNodeVO;
 import org.springblade.system.feign.IUserSearchClient;
@@ -75,8 +76,9 @@
 	@GetMapping("done-list")
 	@ApiOperationSupport(order = 3)
 	@Operation(summary = "褰撳墠鐢ㄦ埛宸插姙浠诲姟鍒嗛〉2", description = "浼犲叆娴佺▼淇℃伅2")
-	public R<IPage<FlowVO>> doneList2(@Parameter(description = "鍏抽敭瀛�") String keyword, @Parameter(description = "鍒涘缓鏃堕棿寮�濮�") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeBegin, @Parameter(description = "鍒涘缓鏃堕棿鎴")  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeEnd, Query query) {
-		IPage<FlowVO> pages = doneQueryService.selectDonePage(Condition.getPage(query) ,createTimeBegin,createTimeEnd,keyword);
+	//public R<IPage<FlowVO>> doneList2(@Parameter(description = "鍏抽敭瀛�") String keyword, @Parameter(description = "鍒涘缓鏃堕棿寮�濮�") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeBegin, @Parameter(description = "鍒涘缓鏃堕棿鎴")  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime createTimeEnd, Query query) {
+	public R<IPage<FlowVO>> doneList2(DoneQueryVO query) {
+		IPage<FlowVO> pages = doneQueryService.selectDonePage(query);
 
 		return R.data(pages);
 	}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/DoneMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/DoneMapper.xml
index 7ed5aba..2c6ffa8 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/DoneMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/DoneMapper.xml
@@ -1,10 +1,7 @@
 <?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.springblade.mdm.flow.mapper.DoneMapper">
-
-
-
-
+    <!--鏌ヨ鐢ㄦ埛宸插姙鍒楄〃-->
     <select id="pageQuery" resultType="org.springblade.mdm.flow.vo.FlowVO">
         SELECT
         HTI.ID_ AS taskId,
@@ -19,7 +16,8 @@
         HPD.NAME_ AS processDefinitionName,
         HPD.KEY_ as processDefinitionKey,
         HPI.START_TIME_ as processCreateTime,
-        HTI.TASK_DEF_KEY_ as taskDefinitionKey
+        HTI.TASK_DEF_KEY_ as taskDefinitionKey,
+        case when HPI.END_TIME_ is null then 'false' else 'true' end as processIsFinished
         FROM
         ACT_HI_TASKINST HTI
 
@@ -55,6 +53,18 @@
                     or (VAR.name_='productModel' and TEXT_ like  #{patternVal})
                 )
             </if>
+            <if test="query.status != null and query.status != 0">
+                <choose>
+                    <when test="query.status == 1">
+                        AND HPI.END_TIME_ is null
+                    </when>
+
+                    <otherwise>
+                        AND HPI.END_TIME_ is not null
+                    </otherwise>
+                </choose>
+            </if>
+
          </where>
         )
         order by HTI.END_TIME_ desc
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java
index 1638ab2..389f3cb 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java
@@ -15,6 +15,7 @@
 import org.flowable.task.api.TaskQuery;
 import org.flowable.task.api.history.HistoricTaskInstance;
 import org.flowable.task.api.history.HistoricTaskInstanceQuery;
+import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
@@ -56,39 +57,32 @@
 	 * @param createTimeEnd
 	 * @param keyword
 	 * @return
-	 */
-	public IPage<FlowVO> selectDonePage(IPage<FlowVO> page, LocalDateTime createTimeBegin, LocalDateTime createTimeEnd, String keyword) {
+ 	 */
+	//public IPage<FlowVO> selectDonePage(IPage<FlowVO> page, LocalDateTime createTimeBegin, LocalDateTime createTimeEnd, String keyword) {
+	public IPage<FlowVO> selectDonePage(DoneQueryVO queryVO) {
 		//宸插姙鏂版煡璇�
 		String userId = "" + AuthUtil.getUserId();
-		DoneQueryVO queryVO = new DoneQueryVO();
-
-		queryVO.setSize(Long.valueOf(page.getSize()).intValue());
-		queryVO.setCurrent(Long.valueOf(page.getCurrent()).intValue());
 		queryVO.setUserId(userId);
-		queryVO.setCreateTimeBegin(createTimeBegin);
-		if(createTimeEnd != null){
-			createTimeEnd = createTimeEnd.plusDays(1);
+		if(queryVO.getCreateTimeEnd() != null){
+			queryVO.setCreateTimeEnd(queryVO.getCreateTimeEnd().plusDays(1));
 		}
-		queryVO.setCreateTimeEnd(createTimeEnd);
-		queryVO.setKeyword(keyword);
-
-		IPage<FlowVO> pageDta = doneMapper.pageQuery(page,queryVO);
+		IPage<FlowVO> pageDta = doneMapper.pageQuery(Condition.getPage(queryVO),queryVO);
 		List<String> instIdList = pageDta.getRecords().stream().map(FlowVO::getProcessInstanceId).toList();
 		if(!instIdList.isEmpty()) {
 			List<HistoricProcessInstance> processList = getHistoricProcessInstances(instIdList);
 			Map<String,Map<String,Object>> varmap = new HashMap<>();
 			for(HistoricProcessInstance inst : processList) {
-
 				varmap.put(inst.getId(),inst.getProcessVariables());
 			}
 
 			pageDta.getRecords().forEach(flowVO->{
 				flowVO.setVariables(varmap.get(flowVO.getProcessInstanceId()));
 				flowVO.setFile(this.getFileString(flowVO.getProcessInstanceId()));
-
+				/*
 				boolean active = flowCommonService.isProcessInstanceActive(flowVO.getProcessInstanceId());
 				flowVO.setProcessIsFinished((Func.toStr(!active)));
-				if(active){
+				 */
+				if(Func.toBoolean(flowVO.getProcessIsFinished())){
 					flowVO.setFlag(getCurrentTaskDefKeys(flowVO.getProcessInstanceId()));
 				}
 			});
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/DoneQueryVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/DoneQueryVO.java
index d6362e5..08ed0ff 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/DoneQueryVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/DoneQueryVO.java
@@ -1,16 +1,27 @@
 package org.springblade.mdm.flow.vo;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Setter;
 import org.springblade.core.mp.support.Query;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.time.LocalDateTime;
 
 @Setter
 @Getter
 public class DoneQueryVO extends Query {
+	@Schema(description = "褰撳墠鐢ㄦ埛id锛屽悗绔缃�")
 	private String userId;
+	@Schema(description = "鍒涘缓鏃堕棿寮�濮�")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private LocalDateTime createTimeBegin;
+
+	@Schema(description = "鍒涘缓鏃堕棿鎴")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private LocalDateTime createTimeEnd;
+	@Schema(description = "鍏抽敭瀛�")
 	private String keyword;
+	@Schema(description = "娴佺▼鐘舵�侊細0:鍏ㄩ儴锛�1:杩涜涓紱2宸茬粨鏉�")
+	private Integer status;
 }
diff --git a/doc/sql/mdm/mdm.mysql.cleandata.sql b/doc/sql/mdm/mdm.mysql.cleandata.sql
index 8704684..18e829b 100644
--- a/doc/sql/mdm/mdm.mysql.cleandata.sql
+++ b/doc/sql/mdm/mdm.mysql.cleandata.sql
@@ -5,9 +5,9 @@
 delete from mdm_flow_program_file;
 delete from mdm_task_dispatch;
 delete from mdm_approve_record;
-delete from mdm_approve_record;
 delete from mdm_nc_program_approved;
 
+
 -- 娓呯┖flowable娴佺▼瀹炰緥鏁版嵁
 
 -- 娓呯┖杩愯鏃舵暟鎹�

--
Gitblit v1.9.3