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); } 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 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())); } }); 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; } 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流程实例数据 -- 清空运行时数据