From 26db19198dc2d4924a2424b0b53e0b4995544b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E8=AF=9A?= <1009578407@qq.com> Date: Fri, 11 Sep 2026 15:36:54 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E5=B7=A5=E4=BC=9A=E4=B8=B4=E6=97=B6=E6=8A=A5=E9=94=80=E4=BA=BA?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActivityReimbursementApplyController.java | 12 +- src/main/resources/flow/HDBX.json | 929 ++++++++++++++++++ 2 files changed, 940 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/flow/HDBX.json diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementApplyController.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementApplyController.java index bc56371..b3c19e9 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/reimbursement/controller/ActivityReimbursementApplyController.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; 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.annotation.SLog; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; @@ -160,7 +161,9 @@ public class ActivityReimbursementApplyController { args.set(FlowConst.FORM_DATA, activityReimbursementInfo); args.set("outlayManageSource", activityReimbursementInfo.getOutlayManageSource()); args.set("actualMoney", activityReimbursementInfo.getActualMoney()); - args.set("next", activityReimbursementInfo.getReimbursementIdentity()); + // 临时报销人通过流程图中的“分工会代报销”独立分支进入财务审核,保留表单的分工会身份。 + args.set("next", AuthUtil.hasRole(RoleConstant.UNION_TEMP_REIMBURSEMENT_APPLICANT.name()) + ? "unionTemp" : activityReimbursementInfo.getReimbursementIdentity()); args.set("clubId",activityReimbursementInfo.getClubId()); ProcessInstance instance = flowEngine.startProcessInstanceByKey("HDBX", activityReimbursementInfo.getId(), SecurityUtil.getUserId(), args); @@ -204,6 +207,13 @@ public class ActivityReimbursementApplyController { Dict dict = Dict.create(); dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId); dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode()); + if (AuthUtil.hasRole(RoleConstant.UNION_TEMP_REIMBURSEMENT_APPLICANT.name())) { + ProcessTask processTask = flowEngine.processTaskService().getById(taskId); + ProcessInstance processInstance = flowEngine.processInstanceService().getById(processTask.getProcessInstanceId()); + String originalNext = JSONUtil.parseObj(processInstance.getVariable()).getStr("next"); + // 新申请重提沿用独立分支;旧实例仍绑定旧定义,继续使用其已有的财务分支。 + dict.set("next", Objects.equals(originalNext, "unionTemp") ? "unionTemp" : "school"); + } flowCommonService.executeTask(dict); return Result.success(); } diff --git a/src/main/resources/flow/HDBX.json b/src/main/resources/flow/HDBX.json new file mode 100644 index 0000000..1072986 --- /dev/null +++ b/src/main/resources/flow/HDBX.json @@ -0,0 +1,929 @@ +{ + "name": "HDBX", + "category": "3", + "displayName": "费用报销管理", + "instanceUrl": "/platform/activityReimbursement/apply", + "h5InstanceUrl": "/platform/activityReimbursement/apply/h5", + "nodes": [ + { + "id": "686d23b6-707f-40d4-ab7c-1987616e4ae0", + "type": "snaker:start", + "x": 220, + "y": 240, + "properties": { + "postInterceptors": "" + }, + "text": { + "x": 220, + "y": 280, + "value": "开始" + } + }, + { + "id": "startTask", + "type": "snaker:task", + "x": 360, + "y": 240, + "properties": { + "form": "/platform/activityReimbursement/mine", + "h5form": "/platform/activityReimbursement/mine/h5", + "assignee": "initiator", + "assigneeMode": "initiator", + "assigneeText": "流程发起人", + "buttonConfig": [ + { + "value": 0, + "visible": true, + "disabled": false, + "originalText": "提交" + } + ], + "postInterceptors": "" + }, + "text": { + "x": 360, + "y": 240, + "value": "提交申请" + } + }, + { + "id": "5afcf810-7a8b-4896-9aa7-c99995e0856b", + "type": "snaker:task", + "x": 700, + "y": 240, + "properties": { + "form": "/platform/activityReimbursement/clubPrincipal", + "h5form": "/platform/activityReimbursement/clubPrincipal/h5", + "assignee": "", + "assigneeMode": "manual", + "assigneeText": "", + "buttonConfig": [ + { + "value": 0, + "originalText": "发起申请" + }, + { + "theme": "primary", + "value": 1, + "visible": true, + "originalText": "同意申请" + }, + { + "theme": "danger", + "value": 2, + "visible": true, + "originalText": "拒绝申请" + }, + { + "value": 3, + "originalText": "退回上一步" + }, + { + "value": 4, + "originalText": "跳转" + }, + { + "value": 5, + "originalText": "重新提交" + }, + { + "theme": "danger", + "value": 6, + "visible": true, + "originalText": "退回发起人" + }, + { + "value": 20, + "originalText": "会签拒绝申请" + } + ], + "assignmentHandler": "com.budwk.app.flow.handler.FlowClubPresidentByArgsAssignmentHandler" + }, + "text": { + "x": 700, + "y": 240, + "value": "协会负责人审核" + } + }, + { + "id": "182768cf-ff70-4b59-8f5d-8523831380e8", + "type": "snaker:decision", + "x": 520, + "y": 240, + "properties": {} + }, + { + "id": "1e4cc473-beae-427d-b9dc-c1c4d0eb07c8", + "type": "snaker:task", + "x": 700, + "y": 100, + "properties": { + "form": "/platform/activityReimbursement/branchUnion", + "h5form": "/platform/activityReimbursement/branchUnion/h5", + "assignee": "", + "assigneeMode": "manual", + "assigneeText": "", + "buttonConfig": [ + { + "value": 0, + "originalText": "发起申请" + }, + { + "theme": "primary", + "value": 1, + "visible": true, + "originalText": "同意申请" + }, + { + "theme": "danger", + "value": 2, + "visible": true, + "originalText": "拒绝申请" + }, + { + "value": 3, + "originalText": "退回上一步" + }, + { + "value": 4, + "originalText": "跳转" + }, + { + "value": 5, + "originalText": "重新提交" + }, + { + "theme": "danger", + "value": 6, + "visible": true, + "originalText": "退回发起人" + }, + { + "value": 20, + "originalText": "会签拒绝申请" + } + ], + "assignmentHandler": "com.budwk.app.flow.handler.FlowFghzxAssignmentHandler" + }, + "text": { + "x": 700, + "y": 100, + "value": "分工会审核" + } + }, + { + "id": "6dd2e8b3-fd0d-4b35-bb2a-1eef227cba96", + "type": "snaker:task", + "x": 1120, + "y": 240, + "properties": { + "form": "/platform/activityReimbursement/schoolPrincipal", + "h5form": "/platform/activityReimbursement/schoolPrincipal/h5", + "assignee": "2c8b9143b5cd491ba49dd4b52a844b10", + "assigneeMode": "select", + "assigneeText": "陈曦", + "buttonConfig": [ + { + "value": 0, + "originalText": "发起申请" + }, + { + "theme": "primary", + "value": 1, + "visible": true, + "originalText": "同意申请" + }, + { + "theme": "danger", + "value": 2, + "visible": true, + "originalText": "拒绝申请" + }, + { + "theme": "danger", + "value": 3, + "visible": true, + "originalText": "退回上一步" + }, + { + "value": 4, + "originalText": "跳转" + }, + { + "value": 5, + "originalText": "重新提交" + }, + { + "theme": "danger", + "value": 6, + "visible": true, + "originalText": "退回发起人" + }, + { + "value": 20, + "originalText": "会签拒绝申请" + } + ] + }, + "text": { + "x": 1120, + "y": 240, + "value": "校工会预审" + } + }, + { + "id": "47bfdf53-288c-4352-a403-0653483b54eb", + "type": "snaker:task", + "x": 1540, + "y": 240, + "properties": { + "form": "/platform/activityReimbursement/schoolUnion", + "h5form": "/platform/activityReimbursement/schoolUnion/h5", + "assignee": "fd76781c09c04147b5170179be127240", + "assigneeMode": "select", + "assigneeText": "张红萍", + "buttonConfig": [ + { + "value": 0, + "originalText": "发起申请" + }, + { + "theme": "primary", + "value": 1, + "visible": true, + "originalText": "同意申请" + }, + { + "theme": "danger", + "value": 2, + "visible": true, + "originalText": "拒绝申请" + }, + { + "theme": "danger", + "value": 3, + "visible": true, + "originalText": "退回上一步" + }, + { + "value": 4, + "originalText": "跳转" + }, + { + "value": 5, + "originalText": "重新提交" + }, + { + "theme": "danger", + "value": 6, + "visible": true, + "originalText": "退回发起人" + }, + { + "value": 20, + "originalText": "会签拒绝申请" + } + ] + }, + "text": { + "x": 1540, + "y": 240, + "value": "校工会主席审核" + } + }, + { + "id": "776311f1-b016-4090-9112-1b4a11fb0d4a", + "type": "snaker:end", + "x": 1920, + "y": 240, + "properties": {}, + "text": { + "x": 1920, + "y": 280, + "value": "结束" + } + }, + { + "id": "ba496ac7-abb3-4e6d-8c8e-212863a0d6ee", + "type": "snaker:task", + "x": 900, + "y": 240, + "properties": { + "form": "/platform/activityReimbursement/schoolFinance", + "h5form": "/platform/activityReimbursement/schoolFinance/h5", + "assignee": "5b8880eeee384eb4be20084735aac6e6", + "assigneeMode": "select", + "assigneeText": "丁彩华", + "buttonConfig": [ + { + "value": 0, + "originalText": "发起申请" + }, + { + "value": 1, + "originalText": "同意申请" + }, + { + "value": 2, + "originalText": "拒绝申请" + }, + { + "value": 3, + "originalText": "退回上一步" + }, + { + "value": 4, + "originalText": "跳转" + }, + { + "value": 5, + "originalText": "重新提交" + }, + { + "value": 6, + "originalText": "退回发起人" + }, + { + "value": 20, + "originalText": "会签拒绝申请" + } + ] + }, + "text": { + "x": 900, + "y": 240, + "value": "校工会财务审核" + } + }, + { + "id": "f9b8379f-f348-4985-ba58-b6ba28deb9af", + "type": "snaker:task", + "x": 1320, + "y": 240, + "properties": { + "form": "/platform/activityReimbursement/deputySchoolUnion", + "h5form": "/platform/activityReimbursement/deputySchoolUnion/h5", + "assignee": "b472656183e6408697b8ada687cad442", + "assigneeMode": "select", + "assigneeText": "张蕴梅", + "buttonConfig": [ + { + "value": 0, + "originalText": "发起申请" + }, + { + "value": 1, + "originalText": "同意申请" + }, + { + "value": 2, + "originalText": "拒绝申请" + }, + { + "value": 3, + "originalText": "退回上一步" + }, + { + "value": 4, + "originalText": "跳转" + }, + { + "value": 5, + "originalText": "重新提交" + }, + { + "value": 6, + "originalText": "退回发起人" + }, + { + "value": 20, + "originalText": "会签拒绝申请" + } + ] + }, + "text": { + "x": 1320, + "y": 240, + "value": "校工会副主席审核" + } + }, + { + "id": "409e8fad-6bd5-485a-8b3e-e1d58688e05a", + "type": "snaker:decision", + "x": 1320, + "y": 420, + "properties": {} + }, + { + "id": "e283f33f-4ac7-4c66-9b16-e0653e8dc452", + "type": "snaker:task", + "x": 1760, + "y": 240, + "properties": { + "form": "/platform/activityReimbursement/cashier", + "h5form": "/platform/activityReimbursement/cashier/h5", + "assignee": "762206d35f7041178e66956d859b823d", + "assigneeMode": "select", + "assigneeText": "嵇蓉静", + "buttonConfig": [ + { + "value": 0, + "originalText": "发起申请" + }, + { + "value": 1, + "originalText": "同意申请" + }, + { + "value": 2, + "originalText": "拒绝申请" + }, + { + "value": 3, + "originalText": "退回上一步" + }, + { + "value": 4, + "originalText": "跳转" + }, + { + "value": 5, + "originalText": "重新提交" + }, + { + "value": 6, + "originalText": "退回发起人" + }, + { + "value": 20, + "originalText": "会签拒绝申请" + } + ] + }, + "text": { + "x": 1760, + "y": 240, + "value": "出纳支付" + } + } + ], + "edges": [ + { + "id": "7eab997d-639c-49a8-bb1a-f6a0a9983eb7", + "type": "snaker:transition", + "sourceNodeId": "182768cf-ff70-4b59-8f5d-8523831380e8", + "targetNodeId": "ba496ac7-abb3-4e6d-8c8e-212863a0d6ee", + "startPoint": { + "x": 508, + "y": 253 + }, + "endPoint": { + "x": 940, + "y": 280 + }, + "properties": { + "expr": "{next=='unionTemp'}" + }, + "text": { + "x": 700, + "y": 480, + "value": "分工会代报销" + }, + "pointsList": [ + { + "x": 508, + "y": 253 + }, + { + "x": 460, + "y": 253 + }, + { + "x": 460, + "y": 480 + }, + { + "x": 940, + "y": 480 + }, + { + "x": 940, + "y": 280 + } + ] + }, + { + "id": "876385a3-18eb-4022-864b-068053ec9e06", + "type": "snaker:transition", + "sourceNodeId": "182768cf-ff70-4b59-8f5d-8523831380e8", + "targetNodeId": "1e4cc473-beae-427d-b9dc-c1c4d0eb07c8", + "startPoint": { + "x": 520, + "y": 215 + }, + "endPoint": { + "x": 640, + "y": 100 + }, + "properties": { + "expr": "{next=='union'}" + }, + "text": { + "x": 520, + "y": 157.5, + "value": "分工会" + }, + "pointsList": [ + { + "x": 520, + "y": 215 + }, + { + "x": 520, + "y": 100 + }, + { + "x": 640, + "y": 100 + } + ] + }, + { + "id": "add1a8a8-1bb5-4bb3-adf7-ef4868d4972c", + "type": "snaker:transition", + "sourceNodeId": "182768cf-ff70-4b59-8f5d-8523831380e8", + "targetNodeId": "5afcf810-7a8b-4896-9aa7-c99995e0856b", + "startPoint": { + "x": 545, + "y": 240 + }, + "endPoint": { + "x": 640, + "y": 240 + }, + "properties": { + "expr": "{next=='club'}" + }, + "text": { + "x": 592.5, + "y": 240, + "value": "协会" + }, + "pointsList": [ + { + "x": 545, + "y": 240 + }, + { + "x": 640, + "y": 240 + } + ] + }, + { + "id": "4c288069-d042-4070-9afd-4902baf148b0", + "type": "snaker:transition", + "sourceNodeId": "startTask", + "targetNodeId": "182768cf-ff70-4b59-8f5d-8523831380e8", + "startPoint": { + "x": 420, + "y": 240 + }, + "endPoint": { + "x": 495, + "y": 240 + }, + "properties": {}, + "pointsList": [ + { + "x": 420, + "y": 240 + }, + { + "x": 495, + "y": 240 + } + ] + }, + { + "id": "de8ae26f-8660-4cd2-9507-ef573bdbef6c", + "type": "snaker:transition", + "sourceNodeId": "686d23b6-707f-40d4-ab7c-1987616e4ae0", + "targetNodeId": "startTask", + "startPoint": { + "x": 238, + "y": 240 + }, + "endPoint": { + "x": 300, + "y": 240 + }, + "properties": {}, + "pointsList": [ + { + "x": 238, + "y": 240 + }, + { + "x": 300, + "y": 240 + } + ] + }, + { + "id": "b36a46d0-05ff-486c-9cbf-b6f9e4e50217", + "type": "snaker:transition", + "sourceNodeId": "182768cf-ff70-4b59-8f5d-8523831380e8", + "targetNodeId": "ba496ac7-abb3-4e6d-8c8e-212863a0d6ee", + "startPoint": { + "x": 519, + "y": 265 + }, + "endPoint": { + "x": 902, + "y": 280 + }, + "properties": { + "expr": "{next=='school'}" + }, + "text": { + "x": 710.5, + "y": 376, + "value": "校工会" + }, + "pointsList": [ + { + "x": 519, + "y": 265 + }, + { + "x": 519, + "y": 376 + }, + { + "x": 902, + "y": 376 + }, + { + "x": 902, + "y": 280 + } + ] + }, + { + "id": "bfb971df-c94b-46f5-9dc2-e0e0624b1f0f", + "type": "snaker:transition", + "sourceNodeId": "ba496ac7-abb3-4e6d-8c8e-212863a0d6ee", + "targetNodeId": "6dd2e8b3-fd0d-4b35-bb2a-1eef227cba96", + "startPoint": { + "x": 960, + "y": 240 + }, + "endPoint": { + "x": 1060, + "y": 240 + }, + "properties": {}, + "pointsList": [ + { + "x": 960, + "y": 240 + }, + { + "x": 1060, + "y": 240 + } + ] + }, + { + "id": "aae8eac1-3613-49f9-8bdf-5e054de9a78d", + "type": "snaker:transition", + "sourceNodeId": "5afcf810-7a8b-4896-9aa7-c99995e0856b", + "targetNodeId": "ba496ac7-abb3-4e6d-8c8e-212863a0d6ee", + "startPoint": { + "x": 760, + "y": 240 + }, + "endPoint": { + "x": 840, + "y": 240 + }, + "properties": {}, + "pointsList": [ + { + "x": 760, + "y": 240 + }, + { + "x": 840, + "y": 240 + } + ] + }, + { + "id": "ae58c15a-1a76-4201-9633-cfbdb47b3b2f", + "type": "snaker:transition", + "sourceNodeId": "1e4cc473-beae-427d-b9dc-c1c4d0eb07c8", + "targetNodeId": "ba496ac7-abb3-4e6d-8c8e-212863a0d6ee", + "startPoint": { + "x": 760, + "y": 100 + }, + "endPoint": { + "x": 900, + "y": 200 + }, + "properties": {}, + "pointsList": [ + { + "x": 760, + "y": 100 + }, + { + "x": 900, + "y": 100 + }, + { + "x": 900, + "y": 200 + } + ] + }, + { + "id": "b3549e56-d9d4-4a40-ae41-f49f57b20fd4", + "type": "snaker:transition", + "sourceNodeId": "6dd2e8b3-fd0d-4b35-bb2a-1eef227cba96", + "targetNodeId": "f9b8379f-f348-4985-ba58-b6ba28deb9af", + "startPoint": { + "x": 1180, + "y": 240 + }, + "endPoint": { + "x": 1260, + "y": 240 + }, + "properties": {}, + "pointsList": [ + { + "x": 1180, + "y": 240 + }, + { + "x": 1260, + "y": 240 + } + ] + }, + { + "id": "809cebae-3520-42b9-b781-a4e99f8e8493", + "type": "snaker:transition", + "sourceNodeId": "f9b8379f-f348-4985-ba58-b6ba28deb9af", + "targetNodeId": "409e8fad-6bd5-485a-8b3e-e1d58688e05a", + "startPoint": { + "x": 1315, + "y": 280 + }, + "endPoint": { + "x": 1315, + "y": 395 + }, + "properties": {}, + "pointsList": [ + { + "x": 1315, + "y": 280 + }, + { + "x": 1315, + "y": 395 + } + ] + }, + { + "id": "d6c1ad28-0a92-463d-b8eb-3566cb996748", + "type": "snaker:transition", + "sourceNodeId": "409e8fad-6bd5-485a-8b3e-e1d58688e05a", + "targetNodeId": "47bfdf53-288c-4352-a403-0653483b54eb", + "startPoint": { + "x": 1345, + "y": 420 + }, + "endPoint": { + "x": 1574, + "y": 280 + }, + "properties": { + "expr": "{actualMoney>=10000}" + }, + "text": { + "x": 1459.5, + "y": 420, + "value": "金额超过一万" + }, + "pointsList": [ + { + "x": 1345, + "y": 420 + }, + { + "x": 1574, + "y": 420 + }, + { + "x": 1574, + "y": 280 + } + ] + }, + { + "id": "4749adda-4a3a-4fd4-a655-94007ce9eec6", + "type": "snaker:transition", + "sourceNodeId": "47bfdf53-288c-4352-a403-0653483b54eb", + "targetNodeId": "e283f33f-4ac7-4c66-9b16-e0653e8dc452", + "startPoint": { + "x": 1600, + "y": 240 + }, + "endPoint": { + "x": 1700, + "y": 240 + }, + "properties": {}, + "pointsList": [ + { + "x": 1600, + "y": 240 + }, + { + "x": 1700, + "y": 240 + } + ] + }, + { + "id": "c68c6814-bd8f-4f4d-9dcb-0b79bf9af5c1", + "type": "snaker:transition", + "sourceNodeId": "e283f33f-4ac7-4c66-9b16-e0653e8dc452", + "targetNodeId": "776311f1-b016-4090-9112-1b4a11fb0d4a", + "startPoint": { + "x": 1820, + "y": 240 + }, + "endPoint": { + "x": 1902, + "y": 240 + }, + "properties": {}, + "pointsList": [ + { + "x": 1820, + "y": 240 + }, + { + "x": 1902, + "y": 240 + } + ] + }, + { + "id": "218593d1-f31b-4c05-bf21-6da6110dc9dd", + "type": "snaker:transition", + "sourceNodeId": "409e8fad-6bd5-485a-8b3e-e1d58688e05a", + "targetNodeId": "e283f33f-4ac7-4c66-9b16-e0653e8dc452", + "startPoint": { + "x": 1320, + "y": 445 + }, + "endPoint": { + "x": 1760, + "y": 280 + }, + "properties": { + "expr": "{actualMoney<10000}" + }, + "text": { + "x": 1540, + "y": 541, + "value": "金额没有超过一万" + }, + "pointsList": [ + { + "x": 1320, + "y": 445 + }, + { + "x": 1320, + "y": 541 + }, + { + "x": 1760, + "y": 541 + }, + { + "x": 1760, + "y": 280 + } + ] + } + ] +} \ No newline at end of file