This commit is contained in:
@jyuhsin
2026-01-14 09:23:36 +08:00
parent ce9f815cf0
commit c7593dcb35
8 changed files with 26 additions and 12 deletions
@@ -80,7 +80,7 @@ public class CountersignHandler implements IHandler {
}
if (!isMerged && CountersignTypeEnum.PARALLEL.toString().equalsIgnoreCase(countersignType)) {
// 是否所有会签任务已完成
isMerged = execution.getEngine().processTaskService().getDoingTaskList(execution.getProcessInstanceId(), new String[]{taskModel.getName()}).size() == 0;
boolean finished = execution.getEngine().processTaskService().getDoingTaskList(execution.getProcessInstanceId(), new String[]{taskModel.getName()}).size() == 0;
if (!isMerged) {
// 未通过,更新已完成实例数量
Dict addVariable = Dict.create();
@@ -88,6 +88,9 @@ public class CountersignHandler implements IHandler {
addVariable.put(prefix + FlowConst.NR_OF_COMPLETED_AGREE_INSTANCES, execution.getArgs().get(prefix + FlowConst.NR_OF_COMPLETED_AGREE_INSTANCES));
execution.getEngine().processInstanceService().addVariable(execution.getProcessInstanceId(), addVariable);
}
if(finished) {
execution.getEngine().processTaskService().rejectTask(execution.getProcessModel(), execution.getProcessTask());
}
}
if (isMerged) {
// 获取所有会签参数键值
@@ -168,7 +168,7 @@ public class SysClubServiceImpl extends BaseServiceImpl<SysClub> implements SysC
SysClub sysClub = dao().insertWith(club, "sponsors");
if(ObjectUtil.isNotEmpty(managePerson)){
List<ClubUser> clubUsers = managePerson.stream().map(person -> {
List<ClubUser> clubUsers = managePerson.stream().filter(o -> StrUtil.isNotBlank(o.getString("userId"))).map(person -> {
ClubUser clubUser = new ClubUser();
clubUser.setClubId(club.getId());
clubUser.setRoleCode(List.of(person.getString("roleCode")));
@@ -193,7 +193,7 @@ public class SysClubServiceImpl extends BaseServiceImpl<SysClub> implements SysC
dao().clear(ClubUser.class, Cnd.where(ClubUser::getClubId, "=", club.getId()));
if (ObjectUtil.isNotEmpty(managePerson)) {
List<ClubUser> clubUsers = managePerson.stream().map(person -> {
List<ClubUser> clubUsers = managePerson.stream().filter(o -> StrUtil.isNotBlank(o.getString("userId"))).map(person -> {
ClubUser clubUser = new ClubUser();
clubUser.setClubId(club.getId());
clubUser.setRoleCode(List.of(person.getString("roleCode")));
@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HtmlUtil;
import cn.hutool.json.JSONUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.PageForm;
@@ -44,6 +45,7 @@ import org.nutz.mvc.annotation.Param;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@IocBean
@At("/platform/proposal/mine")
@@ -262,15 +264,25 @@ public class ProposalMineController {
.desc(ProcessTask::getCreatedAt));
// 已完成附议的代表
List<ProcessTask> taskList = dao.query(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "=", processInstance.getId())
/*List<ProcessTask> taskList = dao.query(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "=", processInstance.getId())
.and(ProcessTask::getTaskName, "=", "second")
.and(ProcessTask::getTaskState, "in", List.of(ProcessTaskStateEnum.DOING.getCode(), ProcessTaskStateEnum.FINISHED.getCode()))
.and(ProcessTask::getId, ">", inviteTask.getId())
);
);*/
List<ProcessTask> taskList = dao.query(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "=", processInstance.getId())
.and(ProcessTask::getTaskName, "=", "second")
.and(ProcessTask::getTaskState, "in", List.of(ProcessTaskStateEnum.DOING.getCode(), ProcessTaskStateEnum.FINISHED.getCode()))
);
List<ProcessTask> tasks = taskList.stream().filter(o -> {
Dict args = JSONUtil.toBean(o.getVariable(), Dict.class);
return Objects.equals(args.getInt("submitType"), ProcessSubmitTypeEnum.AGREE.getCode());
}).toList();
ProposalConfig proposalConfig = dao.fetch(ProposalConfig.class, Cnd.NEW());
if (taskList.size() + seconders.length < proposalConfig.getSeconderNum()) {
if (tasks.size() + seconders.length < proposalConfig.getSeconderNum()) {
return Result.error("至少邀请" + proposalConfig.getSeconderNum() + "个附议人");
}
@@ -91,6 +91,7 @@ module.exports = {
if (res.code === 0) {
this.$message.success("设置成功")
this.dialogVisible = false
this.listOpinion()
}
})
},
@@ -96,7 +96,7 @@ layout("/layouts/platform.html"){
</el-radio-group>
</el-form-item>
<el-form-item label="基础类型备注" label-width="110px" prop="note">
<el-input maxlength="100" placeholder="请输入基础类型备注" type="textarea" v-model="formData.note"></el-input>
<el-input maxlength="50" placeholder="请输入基础类型备注" type="textarea" v-model="formData.note"></el-input>
</el-form-item>
</el-row>
</el-form>
@@ -71,7 +71,7 @@ layout("/layouts/platform.html"){
code="UserType"></dict-select>
</div>-->
<el-button type="primary" size="small" icon="el-icon-printer" @click="exportExcel">导出会员名单</el-button>
<!--<el-button type="primary" size="small" icon="el-icon-printer" @click="exportExcel">导出会员名单</el-button>-->
<el-popover
placement="bottom"
@@ -71,7 +71,7 @@ layout("/layouts/platform_h5.html"){
</van-form>
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
<van-button type="danger" block @click="handleTaskAction(20)">不同意</van-button>
<van-button type="danger" block @click="handleTaskAction(2)">不同意</van-button>
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
</div>
</div>
@@ -46,9 +46,7 @@ const todo = {
title="variable.instanceName">
<template v-slot="{index,row}">
<table-column label="任务节点">{{row.taskName}}</table-column>
<table-column label="流程分类">{{categoryOptions.find(item => item.id === row.category)?.name ||
'未知分类'}}
</table-column>
<table-column label="流程分类">{{row.categoryName}}</table-column>
<table-column label="申请人">{{row.variable?.initiatorName || '未知'}}</table-column>
<table-column label="状态" v-if="activeTab === 'started'">{{processStatusMap[row.state]?.text ||
'未知状态'}}