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 a3670f22..733fb9de 100644 --- a/src/main/java/com/budwk/app/flow/controller/FlowCommonController.java +++ b/src/main/java/com/budwk/app/flow/controller/FlowCommonController.java @@ -3,7 +3,6 @@ package com.budwk.app.flow.controller; import cn.dev33.satoken.annotation.SaCheckLogin; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.lang.Dict; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.budwk.app.base.result.Result; import com.budwk.app.base.vo.LabelValueVO; @@ -18,8 +17,8 @@ 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.ProcessSubmitTypeEnum; import com.budwk.app.flow.enums.ProcessTaskStateEnum; +import com.budwk.app.flow.service.FlowCommonService; import com.budwk.app.flow.vo.HighLightVO; import com.budwk.app.flow.vo.ProcessInstanceVO; import com.budwk.app.flow.vo.ProcessTaskVO; @@ -49,6 +48,8 @@ public class FlowCommonController { private FlowEngine flowEngine; @Inject private Dao dao; + @Inject + private FlowCommonService flowCommonService; @At("/approval/form") @SaCheckLogin @@ -235,46 +236,47 @@ public class FlowCommonController { @Aop(TransAop.READ_COMMITTED) public Result executeTask(@Param("data") String param) { Dict args = Json.fromJson(Dict.class, param); - Long processTaskId = args.getLong(FlowConst.PROCESS_TASK_ID_KEY); - String operator = SecurityUtil.getUserId(); - args.remove(FlowConst.PROCESS_TASK_ID_KEY); - Integer submitType = args.getInt(FlowConst.SUBMIT_TYPE); - if (submitType == null) { - submitType = ProcessSubmitTypeEnum.AGREE.getCode(); - } - args.put(FlowConst.SUBMIT_TYPE, submitType); - - // 设置办理人信息到表单参数 - args.put(FlowConst.TASK_FORM_DATA_PREFIX + "userName", SecurityUtil.getUserUsername()); - args.put(FlowConst.TASK_FORM_DATA_PREFIX + "loginName", SecurityUtil.getUserLoginname()); - args.put(FlowConst.TASK_FORM_DATA_PREFIX + "unitId", SecurityUtil.getUnitId()); - args.put(FlowConst.TASK_FORM_DATA_PREFIX + "unitName", SecurityUtil.getUnitId()); - args.put(FlowConst.TASK_FORM_DATA_PREFIX + "unionId", SecurityUtil.getUnionId()); - - if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.ROLLBACK.getCode())) { - // 退回上一个节点 - flowEngine.executeAndJumpTask(processTaskId, operator, args, null); - } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.REJECT.getCode())) { - // 拒绝,跳转到结束节点 - flowEngine.executeAndJumpToEnd(processTaskId, operator, args); - } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.JUMP.getCode())) { - // 跳转到指定节点 - String taskName = args.getStr(FlowConst.TASK_NAME); - flowEngine.executeAndJumpTask(processTaskId, operator, args, taskName); - } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.ROLLBACK_TO_OPERATOR.getCode())) { - // 退回发起人 - flowEngine.executeAndJumpToFirstTaskNode(processTaskId, operator, args); - } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.COUNTERSIGN_DISAGREE.getCode())) { - // 会签不同意,追加不同意标识 - args.put(FlowConst.COUNTERSIGN_DISAGREE_FLAG, 1); - flowEngine.executeProcessTask(processTaskId, operator, args); - } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.RE_APPLY.getCode())) { - // 重新提交 - flowEngine.executeProcessTask(processTaskId, operator, args); - } else { - // 默认执行 - flowEngine.executeProcessTask(processTaskId, operator, args); - } +// Long processTaskId = args.getLong(FlowConst.PROCESS_TASK_ID_KEY); +// String operator = SecurityUtil.getUserId(); +// args.remove(FlowConst.PROCESS_TASK_ID_KEY); +// Integer submitType = args.getInt(FlowConst.SUBMIT_TYPE); +// if (submitType == null) { +// submitType = ProcessSubmitTypeEnum.AGREE.getCode(); +// } +// args.put(FlowConst.SUBMIT_TYPE, submitType); +// +// // 设置办理人信息到表单参数 +// args.put(FlowConst.TASK_FORM_DATA_PREFIX + "userName", SecurityUtil.getUserUsername()); +// args.put(FlowConst.TASK_FORM_DATA_PREFIX + "loginName", SecurityUtil.getUserLoginname()); +// args.put(FlowConst.TASK_FORM_DATA_PREFIX + "unitId", SecurityUtil.getUnitId()); +// args.put(FlowConst.TASK_FORM_DATA_PREFIX + "unitName", SecurityUtil.getUnitId()); +// args.put(FlowConst.TASK_FORM_DATA_PREFIX + "unionId", SecurityUtil.getUnionId()); +// +// if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.ROLLBACK.getCode())) { +// // 退回上一个节点 +// flowEngine.executeAndJumpTask(processTaskId, operator, args, null); +// } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.REJECT.getCode())) { +// // 拒绝,跳转到结束节点 +// flowEngine.executeAndJumpToEnd(processTaskId, operator, args); +// } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.JUMP.getCode())) { +// // 跳转到指定节点 +// String taskName = args.getStr(FlowConst.TASK_NAME); +// flowEngine.executeAndJumpTask(processTaskId, operator, args, taskName); +// } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.ROLLBACK_TO_OPERATOR.getCode())) { +// // 退回发起人 +// flowEngine.executeAndJumpToFirstTaskNode(processTaskId, operator, args); +// } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.COUNTERSIGN_DISAGREE.getCode())) { +// // 会签不同意,追加不同意标识 +// args.put(FlowConst.COUNTERSIGN_DISAGREE_FLAG, 1); +// flowEngine.executeProcessTask(processTaskId, operator, args); +// } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.RE_APPLY.getCode())) { +// // 重新提交 +// flowEngine.executeProcessTask(processTaskId, operator, args); +// } else { +// // 默认执行 +// flowEngine.executeProcessTask(processTaskId, operator, 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 new file mode 100644 index 00000000..9518c8d3 --- /dev/null +++ b/src/main/java/com/budwk/app/flow/service/FlowCommonService.java @@ -0,0 +1,65 @@ +package com.budwk.app.flow.service; + +import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.ObjectUtil; +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.web.commons.auth.utils.SecurityUtil; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; + +@IocBean +public class FlowCommonService { + + @Inject + private FlowEngine flowEngine; + + /** + * 执行任务 + * @param args + */ + public void executeTask(Dict args){ + Long processTaskId = args.getLong(FlowConst.PROCESS_TASK_ID_KEY); + String operator = SecurityUtil.getUserId(); + args.remove(FlowConst.PROCESS_TASK_ID_KEY); + Integer submitType = args.getInt(FlowConst.SUBMIT_TYPE); + if (submitType == null) { + submitType = ProcessSubmitTypeEnum.AGREE.getCode(); + } + args.put(FlowConst.SUBMIT_TYPE, submitType); + + // 设置办理人信息到表单参数 + args.put(FlowConst.TASK_FORM_DATA_PREFIX + "userName", SecurityUtil.getUserUsername()); + args.put(FlowConst.TASK_FORM_DATA_PREFIX + "loginName", SecurityUtil.getUserLoginname()); + args.put(FlowConst.TASK_FORM_DATA_PREFIX + "unitId", SecurityUtil.getUnitId()); + args.put(FlowConst.TASK_FORM_DATA_PREFIX + "unitName", SecurityUtil.getUnitId()); + args.put(FlowConst.TASK_FORM_DATA_PREFIX + "unionId", SecurityUtil.getUnionId()); + + if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.ROLLBACK.getCode())) { + // 退回上一个节点 + flowEngine.executeAndJumpTask(processTaskId, operator, args, null); + } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.REJECT.getCode())) { + // 拒绝,跳转到结束节点 + flowEngine.executeAndJumpToEnd(processTaskId, operator, args); + } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.JUMP.getCode())) { + // 跳转到指定节点 + String taskName = args.getStr(FlowConst.TASK_NAME); + flowEngine.executeAndJumpTask(processTaskId, operator, args, taskName); + } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.ROLLBACK_TO_OPERATOR.getCode())) { + // 退回发起人 + flowEngine.executeAndJumpToFirstTaskNode(processTaskId, operator, args); + } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.COUNTERSIGN_DISAGREE.getCode())) { + // 会签不同意,追加不同意标识 + args.put(FlowConst.COUNTERSIGN_DISAGREE_FLAG, 1); + flowEngine.executeProcessTask(processTaskId, operator, args); + } else if (ObjectUtil.equals(submitType, ProcessSubmitTypeEnum.RE_APPLY.getCode())) { + // 重新提交 + flowEngine.executeProcessTask(processTaskId, operator, args); + } else { + // 默认执行 + flowEngine.executeProcessTask(processTaskId, operator, args); + } + } + +} diff --git a/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionBoxMineController.java b/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionBoxMineController.java index 085ec124..f8abefab 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionBoxMineController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionBoxMineController.java @@ -57,7 +57,7 @@ public class SuggestionBoxMineController { ins.id AS instanceId, ins.businessNo, ins.state instanceState, - ins.variable instanceVariale, + ins.variable instanceVariable, ins.processDefineId instanceProcessDefineId, t.id taskId, t.taskName AS taskKey, @@ -67,7 +67,7 @@ public class SuggestionBoxMineController { t.taskState, t.finishTime, t.taskParentId, - t.variable taskVariale, + t.variable taskVariable, IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke, (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId FROM diff --git a/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionBoxQueryController.java b/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionBoxQueryController.java new file mode 100644 index 00000000..b380e0c6 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionBoxQueryController.java @@ -0,0 +1,99 @@ +package com.budwk.app.zhgh.democratic.suggestionBox.controller; + +import cn.dev33.satoken.annotation.SaCheckLogin; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.result.Result; +import com.budwk.app.flow.engine.FlowEngine; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.democratic.suggestionBox.service.SuggestionBoxService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +@IocBean +@At("/platform/suggestionBox/query") +@Ok("json:full") +@Api("意见箱-查询统计") +public class SuggestionBoxQueryController { + + @Inject + private Dao dao; + @Inject + private FlowEngine flowEngine; + @Inject + private SuggestionBoxService suggestionBoxService; + + @At("") + @Ok("beetl:/platform/zhgh/democratic/suggestionBox/query/index.html") + @SaCheckLogin + public void index() { + + } + + + @At + @SaCheckLogin + public Result pageData(Integer pageNumber, Integer pageSize) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.title, + info.userName, + info.loginName, + info.unitName, + info.unionName, + info.submitTime, + 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, + IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke, + (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId + FROM + suggestion_box info + LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id + LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10 + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("info.createdBy", "=", SecurityUtil.getUserId()); + cnd.desc("info.submitTime"); + sql.setCondition(cnd); + Pagination pagination = suggestionBoxService.listPageMap(pageNumber, pageSize, sql); + return Result.success(pagination); + } + + @At + @SaCheckLogin + @Aop(TransAop.READ_COMMITTED) + @ApiOperation("删除") + public Result delete(@Param("id") String id) { + suggestionBoxService.delete(id); + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); + return Result.success(); + } + + +} diff --git a/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionBoxWriteController.java b/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionBoxWriteController.java index 2e279796..1d34b14f 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionBoxWriteController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionBoxWriteController.java @@ -8,11 +8,14 @@ import com.budwk.app.flow.engine.FlowEngine; 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.service.FlowCommonService; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.democratic.suggestionBox.models.SuggestionBox; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.nutz.aop.interceptor.ioc.TransAop; 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.mvc.annotation.At; @@ -31,6 +34,8 @@ public class SuggestionBoxWriteController { private Dao dao; @Inject private FlowEngine flowEngine; + @Inject + private FlowCommonService flowCommonService; @At("") @Ok("beetl:/platform/zhgh/democratic/suggestionBox/write/index.html") @@ -67,6 +72,20 @@ public class SuggestionBoxWriteController { return Result.success(); } + @At + @SaCheckLogin + @ApiOperation("重新提交申请") + @Aop(TransAop.READ_COMMITTED) + public Result submitAgain(@Param("data") SuggestionBox suggestionBox, @Param("taskId") Long taskId) { + dao.insertOrUpdate(suggestionBox); + + Dict dict = Dict.create(); + dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId); + dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode()); + flowCommonService.executeTask(dict); + return Result.success(); + } + @At @SaCheckLogin diff --git a/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionXghController.java b/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionXghController.java index 49346cc9..cfc20fa5 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionXghController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/suggestionBox/controller/SuggestionXghController.java @@ -52,7 +52,7 @@ public class SuggestionXghController { ins.id AS instanceId, ins.businessNo, ins.state instanceState, - ins.variable instanceVariale, + ins.variable instanceVariable, ins.processDefineId instanceProcessDefineId, t.id taskId, t.taskName AS taskKey, diff --git a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/write/index.html b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/write/index.html index 625049fe..0e554633 100644 --- a/src/main/resources/views/platform/zhgh/democratic/proposal/transact/write/index.html +++ b/src/main/resources/views/platform/zhgh/democratic/proposal/transact/write/index.html @@ -7,12 +7,7 @@ layout("/layouts/platform.html"){