yangys
2025-09-06 27c2a530b641a1b4e815b79cd9a9fbd73debd627
已办增加进行中查询条件
已修改5个文件
65 ■■■■■ 文件已修改
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/DoneMapper.xml 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/DoneQueryVO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/sql/mdm/mdm.mysql.cleandata.sql 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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流程实例数据
-- 清空运行时数据