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 6e9f07c..c0939eb 100644 --- a/src/main/java/com/budwk/app/flow/service/FlowCommonService.java +++ b/src/main/java/com/budwk/app/flow/service/FlowCommonService.java @@ -2,18 +2,31 @@ package com.budwk.app.flow.service; import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ObjectUtil; +import com.budwk.app.base.result.Result; import com.budwk.app.flow.constant.FlowConst; import com.budwk.app.flow.engine.FlowEngine; -import com.budwk.app.flow.enums.ProcessSubmitTypeEnum; +import com.budwk.app.flow.engine.event.ProcessEvent; +import com.budwk.app.flow.engine.event.ProcessPublisher; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.entity.ProcessTask; +import com.budwk.app.flow.enums.*; import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.Param; + +import java.util.List; @IocBean public class FlowCommonService { @Inject private FlowEngine flowEngine; + @Inject + private Dao dao; /** * 执行任务 @@ -65,4 +78,36 @@ public class FlowCommonService { } } + public void revokeTask(Long taskId) { + // 自己任务 + ProcessTask selfTask = dao.fetch(ProcessTask.class, taskId); + selfTask.setTaskState(ProcessTaskStateEnum.DOING.getCode()); + + // 撤销任务 + List taskList = dao.query(ProcessTask.class, Cnd.where(ProcessTask::getTaskParentId, "=", taskId)); + for (ProcessTask task : taskList) { + task.setTaskState(ProcessTaskStateEnum.WITHDRAW.getCode()); + dao.update(task); + } + // 会签并行任务 撤销后续任务 + if (selfTask.getPerformType().equals(ProcessTaskPerformTypeEnum.COUNTERSIGN.getCode())) { + List doingTasks = dao.query(ProcessTask.class, Cnd.where(ProcessTask::getTaskState, "=", ProcessTaskStateEnum.DOING.getCode()) + .and(ProcessTask::getProcessInstanceId, "=", selfTask.getProcessInstanceId())); + for (ProcessTask doingTask : doingTasks) { + doingTask.setTaskState(ProcessTaskStateEnum.WITHDRAW.getCode()); + dao.update(doingTask); + } + } + + // 激活 + dao.update(selfTask); + + // 流程激活 + dao.update(ProcessInstance.class, Chain.make("state", ProcessInstanceStateEnum.DOING.getCode()),Cnd.where(ProcessInstance::getId, "=", selfTask.getProcessInstanceId())); + + // 发送任务撤回事件 确保上面执行成功 + for (ProcessTask task : taskList) { + ProcessPublisher.notify(ProcessEvent.builder().eventType(ProcessEventTypeEnum.PROCESS_TASK_REVOKE).sourceId(task.getId()).build()); + } + } } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalCommitteeFilingController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalCommitteeFilingController.java index c411adc..16e306d 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalCommitteeFilingController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalCommitteeFilingController.java @@ -6,10 +6,15 @@ 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.flow.constant.FlowConst; -import com.budwk.app.flow.enums.ProcessTaskStateEnum; +import com.budwk.app.flow.engine.event.ProcessEvent; +import com.budwk.app.flow.engine.event.ProcessPublisher; +import com.budwk.app.flow.entity.ProcessInstance; +import com.budwk.app.flow.entity.ProcessTask; +import com.budwk.app.flow.enums.*; import com.budwk.app.flow.service.FlowCommonService; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.democratic.proposal.models.ProposalInfo; import com.budwk.app.zhgh.democratic.proposal.models.ProposalMerge; import com.budwk.app.zhgh.democratic.proposal.param.ProposalSearchParam; import com.budwk.app.zhgh.democratic.proposal.service.ProposalCommitteeFilingService; @@ -17,6 +22,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; @@ -26,6 +32,7 @@ import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.json.Json; import org.nutz.lang.random.R; +import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; @@ -142,4 +149,44 @@ public class ProposalCommitteeFilingController { return Result.success(); } + @At + @SaCheckPermission("proposal.committeeFiling") + @ApiOperation("并案撤回") + @Aop(TransAop.READ_COMMITTED) + public Result revokeTask(@Valid String taskId) { + ProcessTask processTask = dao.fetch(ProcessTask.class, Cnd.where(ProcessTask::getId, "=", taskId)); + + NutMap json = Json.fromJson(NutMap.class, processTask.getVariable()); + + List proposalIds = json.getList("proposalIds", String.class); + + dao.clear(ProposalMerge.class, Cnd.where(ProposalMerge::getProposalId, "in", proposalIds)); + + + List processTaskIds = json.getList("processTaskIds", String.class); + processTaskIds.forEach(processTaskId -> { + // 自己任务 + ProcessTask selfTask = dao.fetch(ProcessTask.class, Cnd.where(ProcessTask::getId, "=", processTaskId)); + selfTask.setTaskState(ProcessTaskStateEnum.DOING.getCode()); + + // 撤销任务 + List taskList = dao.query(ProcessTask.class, Cnd.where(ProcessTask::getTaskParentId, "=", processTaskId)); + for (ProcessTask task : taskList) { + task.setTaskState(ProcessTaskStateEnum.WITHDRAW.getCode()); + dao.update(task); + } + // 激活 + dao.update(selfTask); + + // 流程激活 + dao.update(ProcessInstance.class, Chain.make("state", ProcessInstanceStateEnum.DOING.getCode()), Cnd.where(ProcessInstance::getId, "=", selfTask.getProcessInstanceId())); + + // 发送任务撤回事件 确保上面执行成功 + for (ProcessTask task : taskList) { + ProcessPublisher.notify(ProcessEvent.builder().eventType(ProcessEventTypeEnum.PROCESS_TASK_REVOKE).sourceId(task.getId()).build()); + } + }); + return Result.success(); + } + } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalCommitteeFilingUnitController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalCommitteeFilingUnitController.java index 6fb61a6..0e00af5 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalCommitteeFilingUnitController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalCommitteeFilingUnitController.java @@ -1,6 +1,7 @@ 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.JSONObject; import com.budwk.app.base.annotation.SLog; @@ -11,24 +12,41 @@ import com.budwk.app.base.service.BaseService; import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; import com.budwk.app.bpm.models.BpmProcessTask; import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.flow.constant.FlowConst; +import com.budwk.app.flow.engine.event.ProcessEvent; +import com.budwk.app.flow.engine.event.ProcessPublisher; +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.ProcessTaskStateEnum; +import com.budwk.app.flow.service.FlowCommonService; +import com.budwk.app.flow.service.ProcessTaskService; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.democratic.proposal.controller.vo.ProposalInfoPageVO; +import com.budwk.app.zhgh.democratic.proposal.models.ProposalInfo; +import com.budwk.app.zhgh.democratic.proposal.models.ProposalMerge; import com.budwk.app.zhgh.democratic.proposal.models.ProposalUndertake; import com.budwk.app.zhgh.democratic.proposal.param.ProposalCommitteeFilingUnitApprovalParam; import com.budwk.app.zhgh.democratic.proposal.param.ProposalSearchParam; import com.budwk.app.zhgh.democratic.proposal.service.ProposalCommitteeFilingUnitService; +import com.budwk.app.zhgh.democratic.proposal.service.common.ProposalCommonService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.dao.util.cri.Static; 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 org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; @@ -44,9 +62,15 @@ import java.util.List; public class ProposalCommitteeFilingUnitController { @Inject - private BaseService baseService; + private Dao dao; @Inject - private BpmService bpmService; + private ProposalCommonService proposalCommonService; + @Inject + private ProcessTaskService processTaskService; + @Inject + private FlowCommonService flowCommonService; + @Inject + private BaseService baseService; @Inject private ProposalCommitteeFilingUnitService proposalCommitteeFilingUnitService; @@ -64,58 +88,53 @@ public class ProposalCommitteeFilingUnitController { SELECT info.*, type.name AS typeName, - tcs.fullName AS sessionName, - tcd.`name` AS delegationName, - inst.id processInstanceId, - inst.processInstanceNodeId, - inst.processInstanceNodeName, - inst.processInstanceTaskIds, - inst.processInstanceStatus, - task.id processInstanceTaskId, - task.taskStatus processInstanceTaskStatus, - COUNT(p.consolidationIds) > 0 AS isConsolidation, - EXISTS ( - SELECT 1 - FROM bpm_process_task next_task - WHERE next_task.prevTaskId = task.id - AND next_task.taskStatus = 'COMPLETE' - ) AS nextTaskIsComplete + IF(mer.proposalId IS NOT NULL, 1, 0) AS merge, + tcs.fullName AS sessionName, + tcd.`name` AS delegationName, + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, + IF(rt.id IS NOT NULL OR (ins.state = 20 AND info.caseFilingResult = 'NOT'), 1, 0) AS canRevoke FROM - bpm_process_task task - INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId - INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId - INNER JOIN proposal_info info ON info.id = inst.processInstanceBusinessId - LEFT JOIN proposal_consolidation p ON JSON_CONTAINS(p.consolidationIds, JSON_QUOTE(info.id)) + wf_process_task t + LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10 + LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10 + LEFT JOIN proposal_info info ON info.id = ins.businessNo LEFT JOIN proposal_type type on type.id = info.typeId - LEFT JOIN teacher_congress_session tcs ON tcs.id = info.sessionId - LEFT JOIN teacher_congress_delegation tcd ON tcd.id = info.delegationId - LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + LEFT JOIN proposal_merge mer ON mer.proposalId = info.id + LEFT JOIN teacher_congress_session tcs on tcs.id = info.sessionId + LEFT JOIN teacher_congress_delegation tcd on tcd.id = info.delegationId $condition """); Cnd cnd = Cnd.NEW(); + cnd.and("t.taskName", "=", "committeeFilingUnit"); if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) { - cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); + cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); } - cnd.and("nd.nodeCode", "=", 70); if (approval) { - cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE); + cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode())); } else { - cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.ACTIVE); + cnd.and("t.taskState", "=", ProcessTaskStateEnum.DOING.getCode()); } ProposalSearchParam.buildSearch(cnd, pageForm); - cnd.and(new Static(""" - NOT EXISTS( - SELECT 1 - FROM bpm_process_task t2 - WHERE t2.processInstanceId = task.processInstanceId - AND t2.processTaskNodeCode = task.processTaskNodeCode - AND t2.createdOn > task.createdOn - ) - """)); - cnd.groupBy("info.id"); - cnd.groupBy("task.id"); + cnd.groupBy("t.id"); + cnd.desc("t.createdAt"); sql.setCondition(cnd); - Pagination pagination = baseService.listPageVO(pageForm, sql, ProposalInfoPageVO.class); + Pagination pagination = proposalCommitteeFilingUnitService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); return Result.success(pagination); } @@ -183,4 +202,54 @@ public class ProposalCommitteeFilingUnitController { return Result.success(list); } + @At + @SaCheckPermission("proposal.committeeFilingUnit") + @ApiOperation("执行任务") + public Result executeTask(@Param("data") String data) { + Dict args = Json.fromJson(Dict.class, data); + String proposalId = args.getStr("proposalId"); + + // 查询是否提案 + + // 单条审核 + List mergeProposalIds = proposalCommonService.mergeProposal(proposalId); + if (ObjectUtil.isEmpty(mergeProposalIds)) { + flowCommonService.executeTask(args); + return Result.success(); + } + + // 并案审核 + ProcessTask thisTask = dao.fetch(ProcessTask.class, args.getLong(FlowConst.PROCESS_TASK_ID_KEY)); + List mergeTasks = processTaskService.getDoingTaskByBizIdTaskName(mergeProposalIds, thisTask.getTaskName()); + for (ProcessTask mergeTask : mergeTasks) { + Dict cloneArgs = args.clone(); + cloneArgs.put(FlowConst.PROCESS_TASK_ID_KEY, mergeTask.getId()); + flowCommonService.executeTask(cloneArgs); + } + return Result.success(); + } + + @At + @SaCheckPermission("proposal.committeeFilingUnit") + @ApiOperation("并案撤回") + @Aop(TransAop.READ_COMMITTED) + public Result revokeTask(@Valid String taskId) { + ProcessTask processTask = dao.fetch(ProcessTask.class, Cnd.where(ProcessTask::getId, "=", taskId)); + + NutMap json = Json.fromJson(NutMap.class, processTask.getVariable()); + + List proposalIds = json.getList("proposalIds", String.class); + + List list = dao.query(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "in", proposalIds)); + List list1 = list.stream().map(ProcessInstance::getId).toList(); + + for (Long id : list1) { + ProcessTask task = dao.fetch(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "=", id).and(ProcessTask::getTaskState,"=", 20).limit(1).desc(ProcessTask::getId)); + flowCommonService.revokeTask(task.getId()); + } + dao.update(ProposalInfo.class, Chain.make("caseFilingResult", null), Cnd.where(ProposalInfo::getId, "in", proposalIds)); + return Result.success(); + } + + } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java index 79274ce..79d38d8 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUnderTakeReplyController.java @@ -7,6 +7,7 @@ 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.flow.constant.FlowConst; +import com.budwk.app.flow.entity.ProcessInstance; import com.budwk.app.flow.entity.ProcessTask; import com.budwk.app.flow.enums.ProcessTaskStateEnum; import com.budwk.app.flow.service.FlowCommonService; @@ -17,12 +18,14 @@ import com.budwk.app.sys.services.SysRoleService; import com.budwk.app.sys.services.SysUserService; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.democratic.proposal.models.ProposalInfo; import com.budwk.app.zhgh.democratic.proposal.param.ProposalSearchParam; import com.budwk.app.zhgh.democratic.proposal.service.common.ProposalCommonService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; @@ -77,6 +80,8 @@ public class ProposalUnderTakeReplyController { @SaCheckPermission("proposal.unitReply") @ApiOperation("分页列表") public Result pageData(@Valid ProposalSearchParam pageForm, boolean approval, boolean transfer) { + // 2025-11-19 不知道什么jb意思,先注了 + // CASE WHEN t.taskState = 20 AND ( rt.id IS NULL OR rt.taskState = 10 ) THEN 1 ELSE 0 END AS canRevoke, Sql sql = Sqls.create(""" SELECT info.*, @@ -100,7 +105,7 @@ public class ProposalUnderTakeReplyController { t.variable taskVariable, IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName, IFNULL(GROUP_CONCAT(DISTINCT nt.taskName),'结束') curTaskKey, - CASE WHEN t.taskState = 20 AND ( rt.id IS NULL OR rt.taskState = 10 ) THEN 1 ELSE 0 END AS canRevoke, + IF(rt.id IS NOT NULL, 1, 0) AS canRevoke, t.variable->>'$.underTakeName' AS underTakeName, IF(JSON_EXTRACT(t.variable, '$.underTakeIsMaster') = true, 1, 0) AS underTakeIsMaster, t.variable->>'$.tf_transferUserId' AS tf_transferUserId, @@ -137,7 +142,7 @@ public class ProposalUnderTakeReplyController { sql.setCondition(cnd); Pagination pagination = proposalCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); - List list = pagination.getList(); + /*List list = pagination.getList(); for (NutMap row : list) { if (row.getInt("taskIsMaster") == 1) { boolean b = Stream.of("master_reply", "slave_reply", "school_leader") @@ -148,7 +153,7 @@ public class ProposalUnderTakeReplyController { row.setv("canRevoke", b && row.getInt("taskState") == ProcessTaskStateEnum.FINISHED.getCode()); } } - pagination.setList(list); + pagination.setList(list);*/ return Result.success(pagination); } @@ -234,4 +239,22 @@ public class ProposalUnderTakeReplyController { return Result.success(); } + @At + @SaCheckPermission("proposal.unitReply") + @ApiOperation("并案撤回") + @Aop(TransAop.READ_COMMITTED) + public Result revokeTask(@Valid String taskId, String proposalId) { + + List proposalIds = proposalCommonService.mergeProposal(proposalId); + + List list = dao.query(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "in", proposalIds)); + List list1 = list.stream().map(ProcessInstance::getId).toList(); + + for (Long id : list1) { + ProcessTask task = dao.fetch(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "=", id).and(ProcessTask::getTaskState,"=", 20).limit(1).desc(ProcessTask::getId)); + flowCommonService.revokeTask(task.getId()); + } + return Result.success(); + } + } diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUndertakeSuggestionController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUndertakeSuggestionController.java index 4bfe814..4f68d0f 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUndertakeSuggestionController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalUndertakeSuggestionController.java @@ -87,7 +87,7 @@ public class ProposalUndertakeSuggestionController { """); Cnd cnd = Cnd.NEW(); cnd.and("t.taskState", "=", 10); - cnd.and("t.taskName", "=", "committee"); + cnd.and("t.taskName", "=", "committeeFilingUnit"); if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) { // 查询当前登录用户负责的承办单位 diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalWriteController.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalWriteController.java index ada91b1..eda7206 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalWriteController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/controller/transact/ProposalWriteController.java @@ -95,7 +95,7 @@ public class ProposalWriteController { args.set(FlowConst.FORM_DATA, proposalInfo); args.set(FlowConst.TASK_FORM_DATA_PREFIX + "source", proposalInfo.getSource()); - ProcessInstance instance = flowEngine.startProcessInstanceByKey("JDHTA_NC", proposalInfo.getId(), SecurityUtil.getUserId(), args); + ProcessInstance instance = flowEngine.startProcessInstanceByKey("JDHTA", proposalInfo.getId(), SecurityUtil.getUserId(), args); // 自动完成第一个申请任务 List doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null); 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 934f4fc..09a3330 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 @@ -169,6 +169,34 @@ const PROPOSAL_INFO = {
+ + + {{ task.taskFormData.userName + }}({{task.taskFormData.loginName}}) + + {{ task.finishTime }} + +
+ + + +
+
+ {{task.ext.tf_masterUnitName}} + + {{task?.ext?.tf_slaveUnitNameStr}} + + +
+
+
- - - - - - - - - - - - - - - - - - @@ -55,7 +37,8 @@ layout("/layouts/platform.html"){ - + - - - - {{item.label}} - - - + - - + @@ -164,7 +146,7 @@ layout("/layouts/platform.html"){ @@ -228,28 +210,31 @@ layout("/layouts/platform.html"){ }, handleTaskAction(val) { - this.$confirm("您确定要提交吗?", "提示", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }).then(() => { - const loading = createLoading('提交中') - this.$axios.post("/flow/common/executeTask", { - data: JSON.stringify({ - ...this.formData, - submitType: val, - tf_masterUnitName: this.formData.tf_masterUnitId ? this.underTakeOptions.find(v => v.id === this.formData.tf_masterUnitId)?.name : null, - tf_slaveUnitNames: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name), - tf_slaveUnitNameStr: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name).join(','), + this.$refs.formRef.validate(valid => { + if (!valid) return + this.$confirm("您确定要提交吗?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }).then(() => { + const loading = createLoading('提交中') + this.$axios.post("/flow/common/executeTask", { + data: JSON.stringify({ + ...this.formData, + submitType: val, + tf_masterUnitName: this.formData.tf_masterUnitId ? this.underTakeOptions.find(v => v.id === this.formData.tf_masterUnitId)?.name : null, + tf_slaveUnitNames: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name), + tf_slaveUnitNameStr: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name).join(','), + }) + }).then((res) => { + if (res.code === 0) { + this.$refs.guava.index() + this.$message.success(res.msg) + this.doSearch() + } + }).finally(() => { + loading.close() }) - }).then((res) => { - if (res.code === 0) { - this.$refs.guava.index() - this.$message.success(res.msg) - this.doSearch() - } - }).finally(() => { - loading.close() }) }) }, @@ -277,7 +262,7 @@ layout("/layouts/platform.html"){ cancelButtonText: "取消", type: "info" }).then(() => { - this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => { + this.$axios.post("/platform/proposal/committeeFiling/revokeTask", {taskId: row.taskId}).then((res) => { if (res.code === 0) { this.$message.success(res.msg) this.doSearch() diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/merge.js b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/merge.js index d7bd213..3b134d3 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/merge.js +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFiling/merge.js @@ -22,59 +22,59 @@ const merge = {
{{formData.taskName}}
- - - - {{item.label}} - - - - - - - {{item.label}} - - - - - - - - - - - - - - - - + + + + {{item.label}} + + + + + + + + + + + + + + + + + 取消 @@ -118,29 +118,34 @@ const merge = { }) }, handleTaskAction(val) { - this.$confirm("您确定要提交吗?", "提示", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }).then(() => { - const loading = createLoading('提交中') - this.$axios.post("/platform/proposal/committeeFiling/merge", { - data: JSON.stringify({ - ...this.formData, - proposalIds: this.selection.map(v => v.id), - submitType: val, - tf_masterUnitName: this.formData.tf_masterUnitId ? this.underTakeOptions.find(v => v.id === this.formData.tf_masterUnitId)?.name : null, - tf_slaveUnitNames: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name), - tf_slaveUnitNameStr: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name).join(','), + this.$refs.formRef.validate(valid => { + if (!valid) return + + this.$confirm("您确定要提交吗?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }).then(() => { + const loading = createLoading('提交中') + this.$axios.post("/platform/proposal/committeeFiling/merge", { + data: JSON.stringify({ + ...this.formData, + proposalIds: this.selection.map(v => v.id), + submitType: val, + tf_masterUnitName: this.formData.tf_masterUnitId ? this.underTakeOptions.find(v => v.id === this.formData.tf_masterUnitId)?.name : null, + tf_slaveUnitNames: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name), + tf_slaveUnitNameStr: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name).join(','), + }) + }).then((res) => { + if (res.code === 0) { + this.$emit('close') + this.$emit('refresh') + this.$message.success(res.msg) + this.doSearch() + } + }).finally(() => { + loading.close() }) - }).then((res) => { - if (res.code === 0) { - this.$emit('close') - this.$message.success(res.msg) - this.doSearch() - } - }).finally(() => { - loading.close() }) }) } diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFilingUnit/index.html b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFilingUnit/index.html index 9519426..a54d974 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFilingUnit/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/committeeFilingUnit/index.html @@ -9,32 +9,36 @@ layout("/layouts/platform.html"){ - + - + - - + + @@ -42,56 +46,50 @@ layout("/layouts/platform.html"){ - 重新并案审核 - + 已审核 未审核 - - - - - - -