This commit is contained in:
那些花儿
2025-09-26 09:26:17 +08:00
parent dd9f161ab9
commit 41cbc8e90b
4 changed files with 25 additions and 28 deletions
@@ -1,6 +1,7 @@
package com.budwk.app.flow.controller;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.result.Result;
import com.budwk.app.flow.entity.ProcessInstance;
@@ -53,7 +54,8 @@ public class FlowTodoCenterController {
ins.state AS instanceState,
ins.id AS instanceId,
ins.businessNo,
cat.`name` categoryName
cat.`name` categoryName,
ins.variable ->> '$.instanceName' AS instanceName
FROM
wf_process_task t
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
@@ -65,6 +67,10 @@ public class FlowTodoCenterController {
Cnd cnd = Cnd.NEW();
cnd.and("t.taskState", "=", ProcessTaskStateEnum.DOING.getCode());
cnd.and("ta.actorId", "=", SecurityUtil.getUserId());
cnd.andEX("def.category","=",category);
if(StrUtil.isNotBlank(searchKeyword)){
cnd.where().andLike("ins.variable ->> '$.instanceName'", searchKeyword);
}
cnd.desc("t.createdAt");
sql.setCondition(cnd);
Pagination pagination = sysUserService.listPageMap(pageNumber, pageSize, sql);
@@ -92,7 +98,8 @@ public class FlowTodoCenterController {
ins.state AS instanceState,
ins.id AS instanceId,
ins.businessNo,
cat.`name` categoryName
cat.`name` categoryName,
ins.variable ->> '$.instanceName' AS instanceName
FROM
wf_process_task t
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
@@ -104,6 +111,10 @@ public class FlowTodoCenterController {
Cnd cnd = Cnd.NEW();
cnd.and("t.taskState", "=", ProcessTaskStateEnum.FINISHED.getCode());
cnd.and("ta.actorId", "=", SecurityUtil.getUserId());
cnd.andEX("def.category","=",category);
if(StrUtil.isNotBlank(searchKeyword)){
cnd.where().andLike("ins.variable ->> '$.instanceName'", searchKeyword);
}
cnd.desc("t.createdAt");
sql.setCondition(cnd);
Pagination pagination = sysUserService.listPageMap(pageNumber, pageSize, sql);
@@ -127,6 +138,7 @@ public class FlowTodoCenterController {
ins.operator,
ins.variable,
ins.createdAt,
ins.variable ->> '$.instanceName' AS instanceName,
GROUP_CONCAT(DISTINCT t.displayName) as taskName,
cat.`name` categoryName
FROM
@@ -138,6 +150,11 @@ public class FlowTodoCenterController {
""");
Cnd cnd = Cnd.NEW();
cnd.and("ins.operator", "=", SecurityUtil.getUserId());
cnd.andEX("def.category","=",category);
if(StrUtil.isNotBlank(searchKeyword)){
cnd.where().andLike("ins.variable ->> '$.instanceName'", searchKeyword);
}
cnd.groupBy("ins.id");
cnd.desc("ins.createdAt");
sql.setCondition(cnd);
Pagination pagination = sysUserService.listPageMap(pageNumber, pageSize, sql);
@@ -88,7 +88,7 @@ const user = {
},
methods: {
handleStatClick(type) {
if (['todo', 'done', 'application'].includes(type)) {
if (['todo', 'done', 'started'].includes(type)) {
window.open('/flow/todoCenter?status=' + type)
} else if (type === 'notification') {
window.open('/platform/v4/msg')
@@ -228,10 +228,7 @@ layout("/layouts/v4/baseLayout.html"){
</el-table-column>
<el-table-column prop="taskName" label="任务节点" min-width="150"
show-overflow-tooltip></el-table-column>
<el-table-column prop="categoryName" label="流程分类" min-width="150" show-overflow-tooltip>
<template slot-scope="{row}">{{categoryOptions.find(item => item.id === row.category)?.name}}
</template>
</el-table-column>
<el-table-column prop="categoryName" label="流程分类" min-width="150" show-overflow-tooltip></el-table-column>
<el-table-column prop="initiatorName" label="申请人" min-width="120">
<template slot-scope="{row}">{{row.variable.initiatorName}}</template>
</el-table-column>
@@ -284,32 +284,12 @@ layout("/layouts/v4/baseLayout.html"){
<!-- 表格展示 -->
<el-table v-loading="loading" :data="tasks" style="width: 100%" :key="activeTab"
:header-cell-style="{backgroundColor: '#f5f7fa'}">
<el-table-column prop="processInstanceName" label="流程名称" min-width="180" show-overflow-tooltip>
<template slot-scope="scope">
<span class="task-title">{{scope.row.variable?.instanceName}}</span>
</template>
</el-table-column>
<el-table-column prop="instanceName" label="流程名称" min-width="180" show-overflow-tooltip></el-table-column>
<el-table-column prop="taskName" label="任务节点" min-width="150" show-overflow-tooltip></el-table-column>
<el-table-column prop="categoryName" label="流程分类" min-width="150" show-overflow-tooltip></el-table-column>
<el-table-column prop="initiatorName" label="申请人" min-width="120">
<template slot-scope="{row}">{{row.variable.initiatorName}}</template>
</el-table-column>
<!-- <el-table-column label="时间" min-width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <div v-if="activeTab === 'todo'">-->
<!-- <i class="el-icon-time"></i>-->
<!-- {{scope.row.createdAt}}-->
<!-- </div>-->
<!-- <div v-else-if="activeTab === 'done'">-->
<!-- <i class="el-icon-check"></i>-->
<!-- {{scope.row.finishTime}}-->
<!-- </div>-->
<!-- <div v-else-if="activeTab === 'started'">-->
<!-- <i class="el-icon-s-promotion"></i>-->
<!-- {{scope.row.createdAt}}-->
<!-- </div>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column v-if="activeTab === 'started'" label="状态" width="100">
<template slot-scope="{row}">{{processStatusMap[row.state]?.text}}</template>
</el-table-column>
@@ -394,6 +374,9 @@ layout("/layouts/v4/baseLayout.html"){
},
created() {
if(GetQueryString("status")){
this.activeTab = GetQueryString("status")
}
this.initData()
},