From dc71dc22d8d4ecd93812a90b49b93409803b656a Mon Sep 17 00:00:00 2001 From: "@jyuhsin" <729757837@qq.com> Date: Thu, 26 Mar 2026 14:03:21 +0800 Subject: [PATCH] commit --- .../flow/controller/FlowCommonController.java | 43 +- .../app/flow/service/FlowCommonService.java | 13 +- .../impl/ProcessInstanceServiceImpl.java | 70 +- .../service/impl/ProcessTaskServiceImpl.java | 5 + .../app/web/commons/proc/CspProcessor.java | 4 +- ...roposalSchoolLeaderApprovalController.java | 31 +- .../transact/ProposalSecondedController.java | 5 +- .../ProposalUnSubmitQueryController.java | 4 +- ...ProposalSchoolLeaderAssignmentHandler.java | 35 +- .../ProposalCaseFilingInterceptor.java | 7 + .../components/plugins/sysTableTool/index.vue | 26 +- .../views/platform/flow/define/preview.html | 628 +++++++++--------- .../zhgh/democratic/proposal/common/info.js | 5 + .../transact/committeeFiling/index.html | 8 +- .../transact/committeeFilingUnit/index.html | 28 +- .../proposal/transact/mine/index.html | 2 +- .../proposal/transact/preAudit/index.html | 50 +- .../transact/schoolLeaderApproval/index.html | 5 +- .../proposal/transact/seconded/index.html | 10 +- .../transact/unSubmitQuery/index.html | 24 +- .../proposal/transact/write/index.html | 91 +-- 21 files changed, 585 insertions(+), 509 deletions(-) diff --git a/src/main/java/com/budwk/app/flow/controller/FlowCommonController.java b/src/main/java/com/budwk/app/flow/controller/FlowCommonController.java index c5031cac..9527476a 100644 --- a/src/main/java/com/budwk/app/flow/controller/FlowCommonController.java +++ b/src/main/java/com/budwk/app/flow/controller/FlowCommonController.java @@ -4,6 +4,8 @@ import cn.dev33.satoken.annotation.SaCheckLogin; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.lang.Dict; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.budwk.app.base.result.Result; import com.budwk.app.base.vo.LabelValueVO; import com.budwk.app.flow.constant.FlowConst; @@ -12,14 +14,8 @@ import com.budwk.app.flow.engine.event.ProcessEvent; import com.budwk.app.flow.engine.event.ProcessPublisher; import com.budwk.app.flow.engine.model.ProcessModel; import com.budwk.app.flow.engine.model.TaskModel; -import com.budwk.app.flow.entity.Candidate; -import com.budwk.app.flow.entity.ProcessDefine; -import com.budwk.app.flow.entity.ProcessInstance; -import com.budwk.app.flow.entity.ProcessTask; -import com.budwk.app.flow.enums.ProcessEventTypeEnum; -import com.budwk.app.flow.enums.ProcessInstanceStateEnum; -import com.budwk.app.flow.enums.ProcessTaskPerformTypeEnum; -import com.budwk.app.flow.enums.ProcessTaskStateEnum; +import com.budwk.app.flow.entity.*; +import com.budwk.app.flow.enums.*; import com.budwk.app.flow.service.FlowCommonService; import com.budwk.app.flow.vo.HighLightVO; import com.budwk.app.flow.vo.ProcessInstanceVO; @@ -146,20 +142,25 @@ public class FlowCommonController { @SaCheckLogin @ApiOperation("获取流程定义的审批记录") public Result approvalRecord(Long instanceId) { - List processTaskList = dao.query(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "=", instanceId) - .and(ProcessTask::getTaskState, "not in", List.of(ProcessTaskStateEnum.DOING, ProcessTaskStateEnum.WITHDRAW, ProcessTaskStateEnum.ABANDON)) - .asc(ProcessTask::getUpdatedAt)); - List res = new ArrayList<>(); - processTaskList.forEach(processTask -> { - ProcessTaskVO vo = BeanUtil.toBean(processTask, ProcessTaskVO.class); - if (vo.getTaskState().equals(ProcessTaskStateEnum.FINISHED.getCode()) && StrUtil.isNotBlank(vo.getOperator())) { + List processTaskList = dao.query(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "=", instanceId) + .and(ProcessTask::getTaskState, "not in", List.of(ProcessTaskStateEnum.WITHDRAW, ProcessTaskStateEnum.ABANDON)) + .asc(ProcessTask::getUpdatedAt)); + List res = new ArrayList<>(); + processTaskList.forEach(processTask -> { + ProcessTaskVO vo = BeanUtil.toBean(processTask, ProcessTaskVO.class); + if (vo.getTaskState().equals(ProcessTaskStateEnum.FINISHED.getCode()) && StrUtil.isNotBlank(vo.getOperator())) { - } + } + if(vo.getTaskState().equals(ProcessTaskStateEnum.DOING.getCode())) { + List taskActorList = dao.query(ProcessTaskActor.class, Cnd.where(ProcessTaskActor::getProcessTaskId, "=", processTask.getId())); + List list = JSONUtil.toList(JSONUtil.toJsonStr(taskActorList), JSONObject.class); + vo.setTaskActorList(list); + } - res.add(vo); - }); - return Result.success(res); - } + res.add(vo); + }); + return Result.success(res); + } @At @SaCheckLogin @@ -239,7 +240,7 @@ public class FlowCommonController { @Aop(TransAop.READ_COMMITTED) public Result executeTask(@Param("data") String param) { Dict args = Json.fromJson(Dict.class, param); - flowCommonService.executeTask(args); + flowCommonService.executeTask(args); return Result.success(); } diff --git a/src/main/java/com/budwk/app/flow/service/FlowCommonService.java b/src/main/java/com/budwk/app/flow/service/FlowCommonService.java index 10f18aca..52b9b554 100644 --- a/src/main/java/com/budwk/app/flow/service/FlowCommonService.java +++ b/src/main/java/com/budwk/app/flow/service/FlowCommonService.java @@ -19,6 +19,7 @@ import org.nutz.dao.Dao; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.json.Json; import java.util.List; @@ -37,7 +38,8 @@ public class FlowCommonService { */ public void executeTask(Dict args){ Long processTaskId = args.getLong(FlowConst.PROCESS_TASK_ID_KEY); - String operator = SecurityUtil.getUserId(); + + String operator = SecurityUtil.getUserId(); if (args.containsKey(FlowConst.EXT_ENABLE_OPERATOR)&&args.getBool(FlowConst.EXT_ENABLE_OPERATOR)){ operator = FlowConst.ADMIN_ID; } @@ -46,6 +48,15 @@ public class FlowCommonService { if (submitType == null) { submitType = ProcessSubmitTypeEnum.AGREE.getCode(); } + + ProcessTask processTask = flowEngine.processTaskService().getById(processTaskId); + ProcessTask parentTask = flowEngine.processTaskService().getById(processTask.getTaskParentId()); + Dict taskArgs = Json.fromJson(Dict.class, parentTask.getVariable()); + if(taskArgs.containsKey("tf_sourceTaskKey") && !taskArgs.getBool("tf_audit")) { + submitType = ProcessSubmitTypeEnum.JUMP.getCode(); + args.put(FlowConst.TASK_NAME, taskArgs.getStr("tf_sourceTaskKey")); + } + args.put(FlowConst.SUBMIT_TYPE, submitType); // 设置办理人信息到表单参数 diff --git a/src/main/java/com/budwk/app/flow/service/impl/ProcessInstanceServiceImpl.java b/src/main/java/com/budwk/app/flow/service/impl/ProcessInstanceServiceImpl.java index cbb831c7..d3559ba9 100644 --- a/src/main/java/com/budwk/app/flow/service/impl/ProcessInstanceServiceImpl.java +++ b/src/main/java/com/budwk/app/flow/service/impl/ProcessInstanceServiceImpl.java @@ -270,43 +270,43 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl @Override public HighLightVO highLight(Long processInstanceId) { - HighLightVO vo = new HighLightVO(); - ProcessInstanceVO processInstance = findById(processInstanceId); + HighLightVO vo = new HighLightVO(); + ProcessInstanceVO processInstance = findById(processInstanceId); - FlowEngine flowEngine = ServiceContext.find(FlowEngine.class); + FlowEngine flowEngine = ServiceContext.find(FlowEngine.class); - if (processInstance != null) { - ProcessModel processModel = flowEngine.processDefineService().getProcessModel(processInstance.getProcessDefineId()); - // 拿到正在进行中的任务==>活跃节点 - List processTaskList = flowEngine.processTaskService().getDoingTaskList(processInstanceId, new String[]{}); - // 拿到历史任务-按更新时间倒序 - List hisProcessTaskList = flowEngine.processTaskService().query(Cnd.where(ProcessTask::getProcessInstanceId, "=", processInstanceId).desc(ProcessTask::getUpdatedAt)); - processTaskList.forEach(task -> { - if (!vo.getActiveNodeNames().contains(task.getTaskName())) { - vo.getActiveNodeNames().add(task.getTaskName()); - recursionModel(processModel.getStart(), processInstance, processTaskList, hisProcessTaskList, task.getTaskName(), vo); - } - }); - // 拿到非正常结束的流程实例状态值 - List orderStatusList = Arrays.stream(ProcessInstanceStateEnum.values()).filter(item -> !item.equals(ProcessInstanceStateEnum.DOING) && !item.equals(ProcessInstanceStateEnum.FINISHED)).map(ProcessInstanceStateEnum::getCode).toList(); - // 非正常结束,需要进行特殊处理 - if (orderStatusList.contains(processInstance.getState())) { - if (CollectionUtil.isNotEmpty(hisProcessTaskList)) { - ProcessTask lastProcessTask = hisProcessTaskList.get(hisProcessTaskList.size() - 1); - NodeModel nodeModel = processModel.getNode(lastProcessTask.getTaskName()); - recursionModel(processModel.getStart(), processInstance, processTaskList, hisProcessTaskList, nodeModel.getOutputs().get(0).getTo(), vo); - } - } else { - List endModels = processModel.getModels(EndModel.class); - if (endModels != null) { - endModels.forEach(endModel -> { - recursionModel(processModel.getStart(), processInstance, processTaskList, hisProcessTaskList, endModel.getName(), vo); - }); - } - } - } - return vo; - } + if (processInstance != null) { + ProcessModel processModel = flowEngine.processDefineService().getProcessModel(processInstance.getProcessDefineId()); + // 拿到正在进行中的任务==>活跃节点 + List processTaskList = flowEngine.processTaskService().getDoingTaskList(processInstanceId, new String[]{}); + // 拿到历史任务-按更新时间倒序 + List hisProcessTaskList = flowEngine.processTaskService().query(Cnd.where(ProcessTask::getProcessInstanceId, "=", processInstanceId).desc(ProcessTask::getUpdatedAt)); + processTaskList.forEach(task -> { + if (!vo.getActiveNodeNames().contains(task.getTaskName())) { + vo.getActiveNodeNames().add(task.getTaskName()); + recursionModel(processModel.getStart(), processInstance, processTaskList, hisProcessTaskList, task.getTaskName(), vo); + } + }); + // 拿到非正常结束的流程实例状态值 + List orderStatusList = Arrays.stream(ProcessInstanceStateEnum.values()).filter(item -> !item.equals(ProcessInstanceStateEnum.DOING) && !item.equals(ProcessInstanceStateEnum.FINISHED)).map(ProcessInstanceStateEnum::getCode).toList(); + // 非正常结束,需要进行特殊处理 + if (orderStatusList.contains(processInstance.getState())) { + if (CollectionUtil.isNotEmpty(hisProcessTaskList)) { + ProcessTask lastProcessTask = hisProcessTaskList.get(hisProcessTaskList.size() - 1); + NodeModel nodeModel = processModel.getNode(lastProcessTask.getTaskName()); + recursionModel(processModel.getStart(), processInstance, processTaskList, hisProcessTaskList, nodeModel.getOutputs().get(0).getTo(), vo); + } + } else { + List endModels = processModel.getModels(EndModel.class); + if (endModels != null) { + endModels.forEach(endModel -> { + recursionModel(processModel.getStart(), processInstance, processTaskList, hisProcessTaskList, endModel.getName(), vo); + }); + } + } + } + return vo; + } @Override public List approvalRecord(Long processInstanceId) { diff --git a/src/main/java/com/budwk/app/flow/service/impl/ProcessTaskServiceImpl.java b/src/main/java/com/budwk/app/flow/service/impl/ProcessTaskServiceImpl.java index 39a4e18b..7eb73805 100644 --- a/src/main/java/com/budwk/app/flow/service/impl/ProcessTaskServiceImpl.java +++ b/src/main/java/com/budwk/app/flow/service/impl/ProcessTaskServiceImpl.java @@ -195,6 +195,11 @@ public class ProcessTaskServiceImpl extends BaseServiceImpl impleme // execution.getArgs().remove(key); // } + // 删一下吧,只保证退回的那个任务节点有这两个字段,不然要出问题喔 + if(execution.getArgs().containsKey("tf_sourceTaskKey")) { + execution.getArgs().remove("tf_sourceTaskKey"); + execution.getArgs().remove("tf_audit"); + } processTask.setVariable(JSONUtil.toJsonStr(execution.getArgs())); processTask.setCreatedAt(now); processTask.setUpdatedAt(now); diff --git a/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java b/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java index 02534dba..40051d1d 100644 --- a/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java +++ b/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java @@ -15,7 +15,7 @@ import java.util.Base64; public class CspProcessor extends AbstractProcessor { public void process(ActionContext ac) throws Throwable { - // 1. 生成 nonce + /*// 1. 生成 nonce String nonce = Base64.getEncoder().encodeToString( java.security.SecureRandom.getInstanceStrong().generateSeed(16) ); @@ -34,7 +34,7 @@ public class CspProcessor extends AbstractProcessor { "frame-ancestors 'self'; " + "object-src 'self';"; - ac.getResponse().setHeader("Content-Security-Policy", csp); + ac.getResponse().setHeader("Content-Security-Policy", csp);*/ doNext(ac); } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSchoolLeaderApprovalController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSchoolLeaderApprovalController.java index babd05bc..197d8489 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSchoolLeaderApprovalController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSchoolLeaderApprovalController.java @@ -3,12 +3,15 @@ package com.budwk.app.zhgh.democratic.proposal.controller.transact; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.base.vo.LabelValueVO; import com.budwk.app.flow.constant.FlowConst; +import com.budwk.app.flow.entity.ProcessInstance; import com.budwk.app.flow.entity.ProcessTask; +import com.budwk.app.flow.enums.ProcessSubmitTypeEnum; import com.budwk.app.flow.enums.ProcessTaskStateEnum; import com.budwk.app.flow.service.FlowCommonService; import com.budwk.app.flow.service.ProcessTaskService; @@ -136,13 +139,19 @@ public class ProposalSchoolLeaderApprovalController { return Result.success(); } - - @At @SaCheckPermission("proposal.schoolLeaderApproval") @ApiOperation("执行任务") public Result executeTask(@Param("data") String data) { Dict args = Json.fromJson(Dict.class, data); + + if("back".equals(args.getStr("tf_approval"))) { + args.put("submitType", ProcessSubmitTypeEnum.JUMP.getCode()); + args.put("taskName", "committee"); + flowCommonService.executeTask(args); + return Result.success(); + } + String proposalId = args.getStr("proposalId"); ProcessTask thisTask = dao.fetch(ProcessTask.class, args.getLong(FlowConst.PROCESS_TASK_ID_KEY)); @@ -150,8 +159,20 @@ public class ProposalSchoolLeaderApprovalController { Dict dict = Json.fromJson(Dict.class, parentTask.getVariable()); args.put("tf_caseFilingResult", dict.getStr("tf_caseFilingResult")); + args.put("tf_helpunitreply", dict.getStr("tf_helpunitreply")); + args.put("tf_masterUnitId", dict.getStr("tf_masterUnitId")); + args.put("tf_slaveUnitIds", dict.getObj("tf_slaveUnitIds")); - // 方案流程实例 + ProcessInstance instance = dao.fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getId, "=", thisTask.getProcessInstanceId())); + Dict instanceDict = Json.fromJson(Dict.class, instance.getVariable()); + instanceDict.put("tf_helpunitreply", dict.getStr("tf_helpunitreply")); + instanceDict.put("tf_masterUnitId", dict.getStr("tf_masterUnitId")); + instanceDict.put("tf_slaveUnitIds", dict.getObj("tf_slaveUnitIds")); + instance.setVariable(JSONUtil.toJsonStr(instanceDict)); + + dao.update(instance); + + // 方案流程实例 // 单条审核 List mergeProposalIds = proposalCommonService.mergeProposal(proposalId); @@ -161,7 +182,6 @@ public class ProposalSchoolLeaderApprovalController { } // 并案审核 - List mergeTasks = processTaskService.getDoingTaskByBizIdTaskName(mergeProposalIds, thisTask.getTaskName()); for (ProcessTask mergeTask : mergeTasks) { Dict cloneArgs = args.clone(); @@ -170,7 +190,4 @@ public class ProposalSchoolLeaderApprovalController { } return Result.success(); } - - - } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSecondedController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSecondedController.java index 90d63f92..5232dec5 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSecondedController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalSecondedController.java @@ -114,10 +114,11 @@ public class ProposalSecondedController { LEFT JOIN teacher_congress_delegation tcd on tcd.id = info.delegationId $condition """); + sql.setParam("seconderId", SecurityUtil.getUserId()); + Cnd cnd = Cnd.NEW(); cnd.and("t.taskName", "in", List.of("invite", "second", "delegation", "committee")); - cnd.and(new Static("ps.isAgree is null")); - sql.setParam("seconderId", SecurityUtil.getUserId()); + cnd.and("ps.isAgree", "is", null); if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) { cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnSubmitQueryController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnSubmitQueryController.java index bb1f2759..25dd611d 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnSubmitQueryController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnSubmitQueryController.java @@ -53,8 +53,8 @@ public class ProposalUnSubmitQueryController { tcd.name as delegationName, pt.name as typeName, manner.name as mannerName, - (select count(DISTINCT(seconderId))from proposal_seconded where proposalId = info.id) AS secondedNum, - (select count(DISTINCT(seconderId))from proposal_seconded where proposalId = info.id and isAgree = 1) AS secondedAgreeNum, + (select count(DISTINCT(seconderId))from proposal_second where proposalId = info.id) AS secondedNum, + (select count(DISTINCT(seconderId))from proposal_second where proposalId = info.id and isAgree = 1) AS secondedAgreeNum, IF(info.stateCode <= 200 ,'未审核','已审核') AS delegationAudit FROM proposal_info info diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/handler/ProposalSchoolLeaderAssignmentHandler.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/handler/ProposalSchoolLeaderAssignmentHandler.java index 202e2187..f66b80dd 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/handler/ProposalSchoolLeaderAssignmentHandler.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/handler/ProposalSchoolLeaderAssignmentHandler.java @@ -1,16 +1,24 @@ package com.budwk.app.zhgh.democratic.proposal.handler; import cn.hutool.core.lang.Dict; +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.exception.BaseException; import com.budwk.app.flow.engine.AssignmentHandler; import com.budwk.app.flow.engine.core.Execution; import com.budwk.app.flow.engine.core.ServiceContext; import com.budwk.app.flow.engine.model.TaskModel; import com.budwk.app.flow.entity.Candidate; +import com.budwk.app.sys.models.Sys_role; +import com.budwk.app.sys.models.Sys_user; +import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.sys.services.SysRoleService; +import com.budwk.app.web.controllers.open.commons.service.CommonService; import com.budwk.app.zhgh.democratic.proposal.models.ProposalConfig; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; +import org.nutz.lang.Lang; import org.nutz.lang.util.NutMap; import java.util.List; @@ -22,30 +30,19 @@ public class ProposalSchoolLeaderAssignmentHandler implements AssignmentHandler @Override public List assign(TaskModel model, Execution execution) { - Dao dao = ServiceContext.find(Dao.class); - ProposalConfig proposalConfig = dao.fetch(ProposalConfig.class, Cnd.NEW()); - List unitIds = proposalConfig.getSchoolLeaderUnitIds(); - Sql sql = Sqls.create("select id,username,loginname from vw_user where unitId in (@unitIds)"); - sql.setParam("unitIds", unitIds); - sql.setCallback(Sqls.callback.maps()); - dao.execute(sql); - List list = sql.getList(NutMap.class); + CommonService commonService = ServiceContext.find(CommonService.class); + List users = commonService.findUserInfoByRoleCode(RoleConstant.PROPOSAL_BRANCH_SCHOOL_LEADER.name()); - List candidates = list.stream().map(item -> Candidate.builder() - .userId(item.getString("id")) - .userName(item.getString("username")) - .ext(Dict.of("loginName", item.getString("loginname"))) - .build() - ).toList(); - if(candidates.size() > 0) { - return candidates.stream().map(Candidate::getUserId).toList(); - } - return List.of(); + if(Lang.isEmpty(users)) { + throw new BaseException("未查询到相关审批人"); + } + + return users.stream().map(Sys_user::getId).toList(); } @Override public String getMessage() { - return "指定主管校领导"; + return "获取提案主管校领导"; } @Override diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/interceptor/ProposalCaseFilingInterceptor.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/interceptor/ProposalCaseFilingInterceptor.java index d1b0ab03..958e9456 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/interceptor/ProposalCaseFilingInterceptor.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/interceptor/ProposalCaseFilingInterceptor.java @@ -3,6 +3,7 @@ package com.budwk.app.zhgh.democratic.proposal.interceptor; import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.flow.constant.FlowConst; import com.budwk.app.flow.engine.FlowInterceptor; @@ -100,5 +101,11 @@ public class ProposalCaseFilingInterceptor implements FlowInterceptor { } dao.update(processTaskList,"variable"); + String helpUnitReply = execution.getArgs().getStr(FlowConst.TASK_FORM_DATA_PREFIX + "helpunitreply"); + ProcessTask processTask = execution.getProcessTask(); + Dict dict = JSONUtil.toBean(processTask.getVariable(), Dict.class); + dict.set(FlowConst.TASK_FORM_DATA_PREFIX + "helpunitreply", helpUnitReply); + processTask.setVariable(JSONUtil.toJsonStr(dict)); + dao.update(processTask); } } diff --git a/src/main/resources/static/components/plugins/sysTableTool/index.vue b/src/main/resources/static/components/plugins/sysTableTool/index.vue index 68622c72..0224600b 100644 --- a/src/main/resources/static/components/plugins/sysTableTool/index.vue +++ b/src/main/resources/static/components/plugins/sysTableTool/index.vue @@ -25,31 +25,31 @@
+ :indeterminate="isIndeterminate" + v-model="checkAll" + @change="handleCheckAllChange"> 全选 已选择 {{ checkedColumns.length }} / {{ tempColumns.length }} 列
+ :data="tempColumns" + ref="columnTableRef" + @selection-change="handleSelectionChange" + row-key="prop" + class="column-setting-table" + max-height="500px"> diff --git a/src/main/resources/views/platform/flow/define/preview.html b/src/main/resources/views/platform/flow/define/preview.html index b5bdbf7c..e1a82e0b 100644 --- a/src/main/resources/views/platform/flow/define/preview.html +++ b/src/main/resources/views/platform/flow/define/preview.html @@ -1,350 +1,360 @@ - - - - - 流程设计器 - - - - - - - - - - - - - - -
- + /*!* 分隔线 *!*/ + /*.approval-card .divider {*/ + /* height: 1px;*/ + /* background: #f0f0f0;*/ + /* margin: 12px 0;*/ + /*}*/ + + + +
+ -
-
-

详情

- -
- -
-
-
- 记录{{index + 1}} + > +
+

详情

+ +
+ +
+
+
+ 记录{{index + 1}} +
+
-
-
-
-
-
- 节点类型: - {{approvalInfo.displayName}} -
-
- 审批人: - +
+
+
+ 节点类型: + {{approvalInfo.displayName}} +
+
+ 审批人: + {{approvalInfo.ext?.initiatorName}}({{approvalInfo.ext?.initiatorAccount}}) - {{approvalInfo.taskFormData.userName}}({{approvalInfo.taskFormData?.loginName}}) -
-
- 审核状态: - {{getTaskStateText(approvalInfo.taskState)}} -
-
- 提交结果: - {{getSubmitTypeText(approvalInfo.ext.submitType)}} -
-
- 提交意见: - {{approvalInfo.taskFormData.opinion}} -
- -
- 提交时间: - {{approvalInfo.finishTime}} + + {{ approvalInfo.taskActorList.map(u => u.actorName + '(' + u.actorAccount + ')').join('、') }} + + {{approvalInfo.taskFormData.userName}}({{approvalInfo.taskFormData?.loginName}}) +
+
+ 审核状态: + {{getTaskStateText(approvalInfo.taskState)}} +
+
+ 提交结果: + + {{getSubmitTypeText(approvalInfo.ext.submitType)}} + + + 暂未处理 + +
+
+ 提交意见: + {{approvalInfo.taskFormData.opinion}} + 暂未处理 +
+ +
+ 提交时间: + {{approvalInfo.finishTime || '暂未处理'}} +
+
-
-
- - + }) + diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/common/info.js b/src/main/resources/views/platform/zhgh/democratic/proposal/common/info.js index 8eedeefa..101fddec 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/common/info.js +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/common/info.js @@ -5,6 +5,7 @@ const PROPOSAL_INFO = {
提案基础信息 + 点击查看流程图

{{ viewData.name }} @@ -197,6 +198,7 @@ const PROPOSAL_INFO = { +

`, dicts: ["PROPOSAL_TYPE", "PROPOSAL_CASE_FILING_RESULT", "PROPOSAL_CASE_FILING_TYPE", "PROCESS_TASK_SUBMIT_TYPE", "PROPOSAL_FEEDBACK"], @@ -246,6 +248,9 @@ const PROPOSAL_INFO = { }) }, + openChart(){ + this.$refs.snakerChartRef.onOpenFull(this.row.instanceProcessDefineId, this.row.instanceId) + } }, style: /*language=CSS*/ diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/index.html b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/index.html index ac26cbff..30611b00 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/index.html @@ -68,9 +68,9 @@ layout("/layouts/platform.html"){ v-if="column.visible !== false" >