From 654dc4cc7ffbbd7f1be188f30166540e79784ee4 Mon Sep 17 00:00:00 2001 From: yanglin Date: Sun, 27 Apr 2025 17:39:36 +0800 Subject: [PATCH] REQ-3982: fix bugs --- ...ocessInstanceOfEssAllEventHandlerTest.java | 283 ++++++++++++++++++ .../CompleteVisaChangeStampHandler.java | 27 +- .../ProcessInstanceOfEssAllEventHandler.java | 19 +- 3 files changed, 307 insertions(+), 22 deletions(-) create mode 100644 nanopart-server/src/test/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandlerTest.java diff --git a/nanopart-server/src/test/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandlerTest.java b/nanopart-server/src/test/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandlerTest.java new file mode 100644 index 00000000..4648ebb1 --- /dev/null +++ b/nanopart-server/src/test/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandlerTest.java @@ -0,0 +1,283 @@ +package cn.axzo.nanopart.visa.server.mq.listener.workflow.process; + +import cn.axzo.nanopart.NanopartApplication; +import cn.axzo.workflow.common.model.response.mq.ProcessInstanceDTO; +import com.alibaba.fastjson.JSON; +import lombok.RequiredArgsConstructor; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * @author yanglin + */ +@SpringBootTest(classes = NanopartApplication.class) +@RequiredArgsConstructor(onConstructor_ = @Autowired) +class ProcessInstanceOfEssAllEventHandlerTest { + + private final ProcessInstanceOfEssAllEventHandler processInstanceOfEssAllEventHandler; + + @Test + void exec() { + String json = "{\n" + + " \"businessKey\": \"936\",\n" + + " \"businessProcessInstanceName\": \"变更签证用印审批\",\n" + + " \"category\": \"bgqzyy\",\n" + + " \"currentElementKey\": \"驳回流程实例无节点信息\",\n" + + " \"initiator\": {\n" + + " \"assignee\": null,\n" + + " \"assigneeType\": null,\n" + + " \"assignerName\": \"王自强\",\n" + + " \"avatar\": \"https://axzo-app.oss-cn-chengdu.aliyuncs.com/face/face_test/caee25988c2b421ab5a20a710fe6e7a1.jpg\",\n" + + " \"nodeId\": null,\n" + + " \"ouId\": \"10017\",\n" + + " \"personId\": \"9000400420\",\n" + + " \"tenantId\": \"4777\"\n" + + " },\n" + + " \"lastOperationAssigner\": {\n" + + " \"assignee\": \"2008369\",\n" + + " \"assigneeType\": \"3\",\n" + + " \"assignerName\": \"王自强\",\n" + + " \"avatar\": \"https://axzo-app.oss-cn-chengdu.aliyuncs.com/face/face_test/caee25988c2b421ab5a20a710fe6e7a1.jpg\",\n" + + " \"nodeId\": null,\n" + + " \"ouId\": \"10017\",\n" + + " \"personId\": \"9000400420\",\n" + + " \"tenantId\": \"4777\"\n" + + " },\n" + + " \"noticeConf\": {\n" + + " \"carbonCopy\": {\n" + + " \"carbonCopyMessageId\": \"8733f93de8db49699a78eda5a342763c\",\n" + + " \"viewJson\": \"{\\\"templateName\\\":\\\"审批流抄送通用模板\\\",\\\"templateCode\\\":\\\"8733f93de8db49699a78eda5a342763c\\\"}\"\n" + + " },\n" + + " \"notice\": {\n" + + " \"assigners\": {\n" + + " \"selected\": false,\n" + + " \"viewJson\": null\n" + + " },\n" + + " \"histories\": {\n" + + " \"selected\": false,\n" + + " \"viewJson\": null\n" + + " },\n" + + " \"initiator\": {\n" + + " \"selected\": false,\n" + + " \"viewJson\": null\n" + + " },\n" + + " \"noticeMessageId\": null,\n" + + " \"positions\": {\n" + + " \"selected\": false,\n" + + " \"viewJson\": null\n" + + " },\n" + + " \"roles\": {\n" + + " \"selected\": false,\n" + + " \"viewJson\": null\n" + + " },\n" + + " \"sendMessage\": null,\n" + + " \"triggerEvents\": []\n" + + " },\n" + + " \"pending\": {\n" + + " \"pendingMessageId\": \"95c89a0db50c48fe9956068090b63ffb\",\n" + + " \"viewJson\": \"{\\\"templateName\\\":\\\"变更签证用印审批待办\\\",\\\"templateCode\\\":\\\"95c89a0db50c48fe9956068090b63ffb\\\",\\\"category\\\":\\\"APPROVAL_PENDING_MESSAGE\\\",\\\"title\\\":\\\"变更签证用印申请\\\",\\\"content\\\":\\\"${initiatorName}发起了一个“${visaType}用印申请,请前往审批\\\",\\\"groupNodeNamePaths\\\":[\\\"SaaS待办中心/变更签证管理/用印\\\"],\\\"status\\\":\\\"ENABLE\\\",\\\"createPersonId\\\":290752,\\\"createPersonName\\\":\\\"马翔\\\",\\\"updatePersonId\\\":9100404971,\\\"updatePersonName\\\":\\\"马翔\\\",\\\"styleType\\\":{\\\"code\\\":\\\"FLOW_COMMON\\\",\\\"category\\\":\\\"APPROVAL_PENDING_MESSAGE\\\",\\\"name\\\":\\\"样式2001(审批详情页通用样式)\\\",\\\"url\\\":null},\\\"pushData\\\":{\\\"switchOn\\\":false,\\\"ability\\\":[],\\\"type\\\":\\\"\\\",\\\"voiceType\\\":\\\"\\\"}}\"\n" + + " },\n" + + " \"sms\": {\n" + + " \"smsId\": \"\",\n" + + " \"viewJson\": null\n" + + " }\n" + + " },\n" + + " \"processDefinitionId\": \"bgqzyy:4:202503052021100000009\",\n" + + " \"processDefinitionKey\": \"bgqzyy\",\n" + + " \"processDefinitionVersion\": 4,\n" + + " \"processInstanceId\": \"202504271714100000000\",\n" + + " \"reason\": \"等会儿签署\",\n" + + " \"signConf\": null,\n" + + " \"startTime\": 1745745263543,\n" + + " \"tenantId\": \"4773\",\n" + + " \"type\": \"PROCESS_INSTANCE_REJECTED\",\n" + + " \"variables\": {\n" + + " \"[_ASSIGNEE_INFO_]202504271714100000091\": \"{\\\"ouId\\\":\\\"10017\\\",\\\"personId\\\":\\\"80792\\\",\\\"tenantId\\\":\\\"4773\\\"}\",\n" + + " \"reason\": \"发生原因\",\n" + + " \"no\": \"App发起1\",\n" + + " \"[_INTERNAL_INITIATOR_]\": \"{\\\"assignerName\\\":\\\"王自强\\\",\\\"avatar\\\":\\\"https://axzo-app.oss-cn-chengdu.aliyuncs.com/face/face_test/caee25988c2b421ab5a20a710fe6e7a1.jpg\\\",\\\"ouId\\\":\\\"10017\\\",\\\"personId\\\":\\\"9000400420\\\",\\\"tenantId\\\":\\\"4777\\\"}\",\n" + + " \"initiatorUnitName\": \"北京天健志诚科技有限公司北京天健志诚科技有限公司\",\n" + + " \"[_INITIATOR_SPECIFY_]\": {\n" + + " \"node_289121268979\": [\n" + + " {\n" + + " \"assignee\": null,\n" + + " \"assigneeType\": null,\n" + + " \"assignerName\": null,\n" + + " \"avatar\": null,\n" + + " \"nodeId\": null,\n" + + " \"ouId\": \"10017\",\n" + + " \"personId\": \"9000400420\",\n" + + " \"tenantId\": \"4773\"\n" + + " },\n" + + " {\n" + + " \"assignee\": null,\n" + + " \"assigneeType\": null,\n" + + " \"assignerName\": null,\n" + + " \"avatar\": null,\n" + + " \"nodeId\": null,\n" + + " \"ouId\": \"10017\",\n" + + " \"personId\": \"89511\",\n" + + " \"tenantId\": \"4773\"\n" + + " },\n" + + " {\n" + + " \"assignee\": null,\n" + + " \"assigneeType\": null,\n" + + " \"assignerName\": null,\n" + + " \"avatar\": null,\n" + + " \"nodeId\": null,\n" + + " \"ouId\": \"10017\",\n" + + " \"personId\": \"80792\",\n" + + " \"tenantId\": \"4773\"\n" + + " }\n" + + " ]\n" + + " },\n" + + " \"_TASK_COMPLETE_TYPE202504271714100000105\": \"DELETED\",\n" + + " \"[_INTERNAL_PROCESS_DELETE_REASON_]\": \"等会儿签署\",\n" + + " \"[_ASSIGNEE_LIST_INFO_]node_289121268979\": [\n" + + " \"10017|80792\",\n" + + " \"10017|89511\",\n" + + " \"10017|9000400420\"\n" + + " ],\n" + + " \"stampType\": \"OFFICIAL\",\n" + + " \"[_INTERNAL_PROCESS_BIZ_TYPE]\": \"approval\",\n" + + " \"[_INTERNAL_PROCESS_AGENT]\": false,\n" + + " \"[_PROCESS_OWNERSHIP_APPLICATION_]\": \"nanopart\",\n" + + " \"visaTypeDesc\": \"设计变更\",\n" + + " \"[_ASSIGNEE_INFO_]202504271714100000105\": \"{\\\"ouId\\\":\\\"10017\\\",\\\"personId\\\":\\\"9000400420\\\",\\\"tenantId\\\":\\\"4773\\\"}\",\n" + + " \"[_INTERNAL_DELETE_PROCESS_FLAG_]\": \"[_INTERNAL_PROCESS_TYPE_REJECT_]\",\n" + + " \"[_PROCESS_CLOSING_TYPE]\": \"REJECTED\",\n" + + " \"unitPerson\": [\n" + + " {\n" + + " \"unit\": \"北京天健志诚科技有限公司北京天健志诚科技有限公司(默认单位)\",\n" + + " \"person\": \"尉丽丽-总包测试岗位\"\n" + + " }\n" + + " ],\n" + + " \"stampOuId\": 10017,\n" + + " \"pdfFileUrl\": \"https://axzo-public.oss-cn-chengdu.aliyuncs.com/h5/h5/65b9d572bd224acd847d3da4eb756640.pdf\",\n" + + " \"workspaceName\": \"北京项目部服务包北京项目部服务包北京项目部服务包北京项目部服务包北京项目部服务包\",\n" + + " \"attach\": \"[{\\\"fileName\\\":\\\"壁纸.jpg\\\",\\\"fileUrl\\\":\\\"https://axzo-obs-public.obs.cn-north-4.myhuaweicloud.com/visa/visa_test/1e3274bc767e4267967b442c17866fb4.jpg?response-content-disposition=attachment;filename=%22%25E5%25A3%2581%25E7%25BA%25B8.jpg%22\\\",\\\"fileKey\\\":\\\"1e3274bc767e4267967b442c17866fb4\\\"},{\\\"fileName\\\":\\\"壁纸.jpg\\\",\\\"fileUrl\\\":\\\"https://axzo-obs-public.obs.cn-north-4.myhuaweicloud.com/visa/visa_test/1e3274bc767e4267967b442c17866fb4.jpg?response-content-disposition=attachment;filename=%22%25E5%25A3%2581%25E7%25BA%25B8.jpg%22\\\",\\\"fileKey\\\":\\\"1e3274bc767e4267967b442c17866fb4\\\"},{\\\"fileName\\\":\\\"壁纸 (2).jpg\\\",\\\"fileUrl\\\":\\\"https://axzo-obs-public.obs.cn-north-4.myhuaweicloud.com/visa/visa_test/ff8373dc79a140719a9e3964ac67346f.jpg?response-content-disposition=attachment;filename=%22%25E5%25A3%2581%25E7%25BA%25B8%2B%25282%2529.jpg%22\\\",\\\"fileKey\\\":\\\"ff8373dc79a140719a9e3964ac67346f\\\"}]\",\n" + + " \"stampContractId\": \"yDtBtUUckpxab8cfUEQBPcvyxtAjBMoN\",\n" + + " \"happenTime\": \"2025.04.27\",\n" + + " \"[_ACTIVITY_INFO_SNAPSHOT_]NODE_STARTER\": [\n" + + " {\n" + + " \"assignee\": null,\n" + + " \"assigneeType\": null,\n" + + " \"assignerName\": \"王自强\",\n" + + " \"avatar\": \"https://axzo-app.oss-cn-chengdu.aliyuncs.com/face/face_test/caee25988c2b421ab5a20a710fe6e7a1.jpg\",\n" + + " \"nodeId\": null,\n" + + " \"ouId\": \"10017\",\n" + + " \"personId\": \"9000400420\",\n" + + " \"tenantId\": \"4777\"\n" + + " }\n" + + " ],\n" + + " \"[_ACTIVITY_INFO_SNAPSHOT_]node_289121268979\": [\n" + + " {\n" + + " \"assignee\": null,\n" + + " \"assigneeType\": null,\n" + + " \"assignerName\": null,\n" + + " \"avatar\": null,\n" + + " \"nodeId\": null,\n" + + " \"ouId\": \"10017\",\n" + + " \"personId\": \"80792\",\n" + + " \"tenantId\": \"4773\"\n" + + " },\n" + + " {\n" + + " \"assignee\": null,\n" + + " \"assigneeType\": null,\n" + + " \"assignerName\": null,\n" + + " \"avatar\": null,\n" + + " \"nodeId\": null,\n" + + " \"ouId\": \"10017\",\n" + + " \"personId\": \"89511\",\n" + + " \"tenantId\": \"4773\"\n" + + " },\n" + + " {\n" + + " \"assignee\": null,\n" + + " \"assigneeType\": null,\n" + + " \"assignerName\": null,\n" + + " \"avatar\": null,\n" + + " \"nodeId\": null,\n" + + " \"ouId\": \"10017\",\n" + + " \"personId\": \"9000400420\",\n" + + " \"tenantId\": \"4773\"\n" + + " }\n" + + " ],\n" + + " \"relationArea\": \"民用施工区域 -6层\",\n" + + " \"[_SIGNATURE_COLLECTION_]\": [\n" + + " {\n" + + " \"activityId\": \"NODE_STARTER\",\n" + + " \"activityName\": \"发起人\",\n" + + " \"signatures\": []\n" + + " }\n" + + " ],\n" + + " \"visaId\": 936,\n" + + " \"[_INTERNAL_PROCESS_WORKSPACE_TYPE]\": 1,\n" + + " \"_TASK_COMPLETE_TYPE202504271714100000059\": \"APPROVED\",\n" + + " \"initiatorName\": \"王自强\",\n" + + " \"[_CLOSE_PROCESS_ASSIGNER_]\": {\n" + + " \"assignee\": \"2008369\",\n" + + " \"assigneeType\": \"3\",\n" + + " \"assignerName\": \"王自强\",\n" + + " \"avatar\": \"https://axzo-app.oss-cn-chengdu.aliyuncs.com/face/face_test/caee25988c2b421ab5a20a710fe6e7a1.jpg\",\n" + + " \"nodeId\": null,\n" + + " \"ouId\": \"10017\",\n" + + " \"personId\": \"9000400420\",\n" + + " \"tenantId\": \"4777\"\n" + + " },\n" + + " \"[_CREATE_INSTANCE_PARAMS]\": \"{\\\"processDefinitionKey\\\":\\\"bgqzyy\\\",\\\"tenantId\\\":\\\"4773\\\",\\\"specifyAssignerMap\\\":{\\\"node_289121268979\\\":[{\\\"personId\\\":\\\"9000400420\\\",\\\"tenantId\\\":\\\"4773\\\",\\\"ouId\\\":\\\"10017\\\"},{\\\"personId\\\":\\\"89511\\\",\\\"tenantId\\\":\\\"4773\\\",\\\"ouId\\\":\\\"10017\\\"},{\\\"personId\\\":\\\"80792\\\",\\\"tenantId\\\":\\\"4773\\\",\\\"ouId\\\":\\\"10017\\\"}]},\\\"variables\\\":{\\\"visaId\\\":936,\\\"stampOuId\\\":10017,\\\"topic\\\":\\\"App发起1\\\",\\\"initiatorUnitName\\\":\\\"北京天健志诚科技有限公司北京天健志诚科技有限公司\\\",\\\"stampType\\\":\\\"OFFICIAL\\\",\\\"stampTypeDesc\\\":\\\"公章\\\",\\\"stampRecipient\\\":\\\"yDtBtUUckpxab8c9UEQBPcv8oMBq1LX7\\\",\\\"stampContractId\\\":\\\"yDtBtUUckpxab8cfUEQBPcvyxtAjBMoN\\\",\\\"pdfFileUrl\\\":\\\"https://axzo-public.oss-cn-chengdu.aliyuncs.com/h5/h5/65b9d572bd224acd847d3da4eb756640.pdf\\\",\\\"initiatorName\\\":\\\"王自强\\\",\\\"visaType\\\":\\\"DESIGN_CHANGE\\\",\\\"visaTypeDesc\\\":\\\"设计变更\\\",\\\"[_INTERNAL_PROCESS_WORKSPACE_TYPE]\\\":1,\\\"[_INTERNAL_PROCESS_BIZ_TYPE]\\\":\\\"approval\\\",\\\"[_INTERNAL_INITIATOR_]\\\":\\\"{\\\\\\\"assignerName\\\\\\\":\\\\\\\"王自强\\\\\\\",\\\\\\\"avatar\\\\\\\":\\\\\\\"https://axzo-app.oss-cn-chengdu.aliyuncs.com/face/face_test/caee25988c2b421ab5a20a710fe6e7a1.jpg\\\\\\\",\\\\\\\"ouId\\\\\\\":\\\\\\\"10017\\\\\\\",\\\\\\\"personId\\\\\\\":\\\\\\\"9000400420\\\\\\\",\\\\\\\"tenantId\\\\\\\":\\\\\\\"4777\\\\\\\"}\\\",\\\"[_BIZ_ORG_RELATION_]\\\":{},\\\"[_WORKFLOW_ENGINE_VERSION_]\\\":\\\"1.5.2\\\",\\\"[_PENDING_VARIABLES]\\\":{\\\"visaId\\\":936,\\\"stampOuId\\\":10017,\\\"topic\\\":\\\"App发起1\\\",\\\"initiatorUnitName\\\":\\\"北京天健志诚科技有限公司北京天健志诚科技有限公司\\\",\\\"stampType\\\":\\\"OFFICIAL\\\",\\\"stampTypeDesc\\\":\\\"公章\\\",\\\"stampRecipient\\\":\\\"yDtBtUUckpxab8c9UEQBPcv8oMBq1LX7\\\",\\\"stampContractId\\\":\\\"yDtBtUUckpxab8cfUEQBPcvyxtAjBMoN\\\",\\\"pdfFileUrl\\\":\\\"https://axzo-public.oss-cn-chengdu.aliyuncs.com/h5/h5/65b9d572bd224acd847d3da4eb756640.pdf\\\",\\\"initiatorName\\\":\\\"王自强\\\",\\\"visaType\\\":\\\"DESIGN_CHANGE\\\",\\\"visaTypeDesc\\\":\\\"设计变更\\\"},\\\"[_INTERNAL_PROCESS_AGENT]\\\":false,\\\"[_PROCESS_OWNERSHIP_APPLICATION_]\\\":\\\"nanopart\\\",\\\"[_INITIATOR_SPECIFY_]\\\":{\\\"node_289121268979\\\":[{\\\"personId\\\":\\\"9000400420\\\",\\\"tenantId\\\":\\\"4773\\\",\\\"ouId\\\":\\\"10017\\\"},{\\\"personId\\\":\\\"89511\\\",\\\"tenantId\\\":\\\"4773\\\",\\\"ouId\\\":\\\"10017\\\"},{\\\"personId\\\":\\\"80792\\\",\\\"tenantId\\\":\\\"4773\\\",\\\"ouId\\\":\\\"10017\\\"}]}},\\\"signVariables\\\":{},\\\"pendingVariables\\\":{\\\"visaId\\\":936,\\\"stampOuId\\\":10017,\\\"topic\\\":\\\"App发起1\\\",\\\"initiatorUnitName\\\":\\\"北京天健志诚科技有限公司北京天健志诚科技有限公司\\\",\\\"stampType\\\":\\\"OFFICIAL\\\",\\\"stampTypeDesc\\\":\\\"公章\\\",\\\"stampRecipient\\\":\\\"yDtBtUUckpxab8c9UEQBPcv8oMBq1LX7\\\",\\\"stampContractId\\\":\\\"yDtBtUUckpxab8cfUEQBPcvyxtAjBMoN\\\",\\\"pdfFileUrl\\\":\\\"https://axzo-public.oss-cn-chengdu.aliyuncs.com/h5/h5/65b9d572bd224acd847d3da4eb756640.pdf\\\",\\\"initiatorName\\\":\\\"王自强\\\",\\\"visaType\\\":\\\"DESIGN_CHANGE\\\",\\\"visaTypeDesc\\\":\\\"设计变更\\\"},\\\"cooperationOrg\\\":{},\\\"businessKey\\\":\\\"936\\\",\\\"initiator\\\":{\\\"assignerName\\\":\\\"王自强\\\",\\\"personId\\\":\\\"9000400420\\\",\\\"tenantId\\\":\\\"4777\\\",\\\"ouId\\\":\\\"10017\\\",\\\"avatar\\\":\\\"https://axzo-app.oss-cn-chengdu.aliyuncs.com/face/face_test/caee25988c2b421ab5a20a710fe6e7a1.jpg\\\"},\\\"async\\\":false,\\\"startFormVariables\\\":{\\\"no\\\":\\\"App发起1\\\",\\\"reason\\\":\\\"发生原因\\\",\\\"relationArea\\\":\\\"民用施工区域 -6层\\\",\\\"contractNo\\\":\\\"合同编号1\\\",\\\"unitPerson\\\":[{\\\"unit\\\":\\\"北京天健志诚科技有限公司北京天健志诚科技有限公司(默认单位)\\\",\\\"person\\\":\\\"尉丽丽-总包测试岗位\\\"}],\\\"amountChange\\\":\\\"减少23.00元\\\",\\\"relationProfessional\\\":\\\"给排水,建筑,结构\\\",\\\"relationTaskOrders\\\":[{\\\"no\\\":\\\"1000000700211596\\\",\\\"name\\\":\\\"阀门、仪表及附件安装\\\",\\\"id\\\":\\\"1000000700211596\\\"}],\\\"topic\\\":\\\"App发起1\\\",\\\"contextDescription\\\":[{\\\"context\\\":{\\\"fileName\\\":\\\"image.jpg\\\",\\\"fileUrl\\\":\\\"https://axzo-public.oss-cn-chengdu.aliyuncs.com/h5/h5/6a9f19a3df464184b535d85c7ff81963.jpg\\\",\\\"fileKey\\\":\\\"6a9f19a3df464184b535d85c7ff81963\\\"},\\\"description\\\":\\\"发生内容及说明\\\"}],\\\"workspaceName\\\":\\\"北京项目部服务包北京项目部服务包北京项目部服务包北京项目部服务包北京项目部服务包\\\",\\\"contractName\\\":\\\"合同名称1\\\",\\\"attach\\\":[{\\\"fileName\\\":\\\"壁纸.jpg\\\",\\\"fileUrl\\\":\\\"https://axzo-obs-public.obs.cn-north-4.myhuaweicloud.com/visa/visa_test/1e3274bc767e4267967b442c17866fb4.jpg?response-content-disposition=attachment;filename=%22%25E5%25A3%2581%25E7%25BA%25B8.jpg%22\\\",\\\"fileKey\\\":\\\"1e3274bc767e4267967b442c17866fb4\\\"},{\\\"fileName\\\":\\\"壁纸.jpg\\\",\\\"fileUrl\\\":\\\"https://axzo-obs-public.obs.cn-north-4.myhuaweicloud.com/visa/visa_test/1e3274bc767e4267967b442c17866fb4.jpg?response-content-disposition=attachment;filename=%22%25E5%25A3%2581%25E7%25BA%25B8.jpg%22\\\",\\\"fileKey\\\":\\\"1e3274bc767e4267967b442c17866fb4\\\"},{\\\"fileName\\\":\\\"壁纸 (2).jpg\\\",\\\"fileUrl\\\":\\\"https://axzo-obs-public.obs.cn-north-4.myhuaweicloud.com/visa/visa_test/ff8373dc79a140719a9e3964ac67346f.jpg?response-content-disposition=attachment;filename=%22%25E5%25A3%2581%25E7%25BA%25B8%2B%25282%2529.jpg%22\\\",\\\"fileKey\\\":\\\"ff8373dc79a140719a9e3964ac67346f\\\"}],\\\"happenTime\\\":\\\"2025.04.27\\\",\\\"relationProject\\\":\\\"北京的项目改名为北京的工程\\\"}}\",\n" + + " \"visaType\": \"DESIGN_CHANGE\",\n" + + " \"[_WORKFLOW_ENGINE_VERSION_]\": \"1.5.2\",\n" + + " \"[_BIZ_ORG_RELATION_]\": {\n" + + " \"orgScopes\": [],\n" + + " \"workerTeamScopes\": []\n" + + " },\n" + + " \"stampRecipient\": \"yDtBtUUckpxab8c9UEQBPcv8oMBq1LX7\",\n" + + " \"[_ASSIGNEE_INFO_]202504271714100000059\": \"{\\\"assignerName\\\":\\\"王自强\\\",\\\"avatar\\\":\\\"https://axzo-app.oss-cn-chengdu.aliyuncs.com/face/face_test/caee25988c2b421ab5a20a710fe6e7a1.jpg\\\",\\\"ouId\\\":\\\"10017\\\",\\\"personId\\\":\\\"9000400420\\\",\\\"tenantId\\\":\\\"4777\\\"}\",\n" + + " \"stampTypeDesc\": \"公章\",\n" + + " \"amountChange\": \"减少23.00元\",\n" + + " \"relationProfessional\": \"给排水,建筑,结构\",\n" + + " \"relationTaskOrders\": [\n" + + " {\n" + + " \"no\": \"1000000700211596\",\n" + + " \"name\": \"阀门、仪表及附件安装\",\n" + + " \"id\": \"1000000700211596\"\n" + + " }\n" + + " ],\n" + + " \"contextDescription\": [\n" + + " {\n" + + " \"context\": {\n" + + " \"fileName\": \"image.jpg\",\n" + + " \"fileUrl\": \"https://axzo-public.oss-cn-chengdu.aliyuncs.com/h5/h5/6a9f19a3df464184b535d85c7ff81963.jpg\",\n" + + " \"fileKey\": \"6a9f19a3df464184b535d85c7ff81963\"\n" + + " },\n" + + " \"description\": \"发生内容及说明\"\n" + + " }\n" + + " ],\n" + + " \"topic\": \"App发起1\",\n" + + " \"[_ASSIGNEE_INFO_]202504271714100000098\": \"{\\\"ouId\\\":\\\"10017\\\",\\\"personId\\\":\\\"89511\\\",\\\"tenantId\\\":\\\"4773\\\"}\",\n" + + " \"[_PENDING_VARIABLES]\": {\n" + + " \"visaId\": 936,\n" + + " \"stampOuId\": 10017,\n" + + " \"topic\": \"App发起1\",\n" + + " \"initiatorUnitName\": \"北京天健志诚科技有限公司北京天健志诚科技有限公司\",\n" + + " \"stampType\": \"OFFICIAL\",\n" + + " \"stampTypeDesc\": \"公章\",\n" + + " \"stampRecipient\": \"yDtBtUUckpxab8c9UEQBPcv8oMBq1LX7\",\n" + + " \"stampContractId\": \"yDtBtUUckpxab8cfUEQBPcvyxtAjBMoN\",\n" + + " \"pdfFileUrl\": \"https://axzo-public.oss-cn-chengdu.aliyuncs.com/h5/h5/65b9d572bd224acd847d3da4eb756640.pdf\",\n" + + " \"initiatorName\": \"王自强\",\n" + + " \"visaType\": \"DESIGN_CHANGE\",\n" + + " \"visaTypeDesc\": \"设计变更\"\n" + + " },\n" + + " \"relationProject\": \"北京的项目改名为北京的工程\"\n" + + " },\n" + + " \"workflowEngineVersion\": \"1.5.2\"\n" + + " }"; + ProcessInstanceDTO dto = JSON.parseObject(json, ProcessInstanceDTO.class); + processInstanceOfEssAllEventHandler.changeProcessInstanceOfEss(dto); + } + +} \ No newline at end of file diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/CompleteVisaChangeStampHandler.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/CompleteVisaChangeStampHandler.java index 4d250e9a..4d34de86 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/CompleteVisaChangeStampHandler.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/CompleteVisaChangeStampHandler.java @@ -61,18 +61,14 @@ public class CompleteVisaChangeStampHandler implements ProcessInstanceEventHandl .orElse(null); ChangeRecord changeRecord = changeRecordService.getById(visaId); - VisaProcessPhase phase = Objects.equals(dto.getProcessInstanceId(), changeRecord.getApprovalId()) - ? VisaProcessPhase.PROJECT - : VisaProcessPhase.PAYMENT; - - VisaRelationFieldEnum fieldType = phase == VisaProcessPhase.PROJECT - ? VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS - : VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS_PAY; - VisaRelationDto visaRelationDto = VisaRelationDto.builder() + List allRecordRelations = changeRecordRelationService.findByCondition(VisaRelationDto.builder() .visaId(visaId) - .varName(fieldType.name()) - .build(); - List allRecordRelations = changeRecordRelationService.findByCondition(visaRelationDto); + .varName(VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS.name()) + .build()); + allRecordRelations.addAll(changeRecordRelationService.findByCondition(VisaRelationDto.builder() + .visaId(visaId) + .varName(VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS_PAY.name()) + .build())); List changeRecordRelations = allRecordRelations.stream() .filter(e -> Objects.equals(JSON.parseObject(e.getContent()).getString("approvalId"), dto.getProcessInstanceId())) @@ -82,6 +78,15 @@ public class CompleteVisaChangeStampHandler implements ProcessInstanceEventHandl return; } + String varName = changeRecordRelations.get(0).getVarName(); + VisaProcessPhase phase = varName.equals(VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS.name()) + ? VisaProcessPhase.PROJECT + : VisaProcessPhase.PAYMENT; + + allRecordRelations = allRecordRelations.stream() + .filter(r -> r.getVarName().equals(varName)) + .collect(Collectors.toList()); + if (changeRecordRelations.size() > 1) { log.warn("CompleteVisaChangeStampHandler 用印审核完成数据异常,找到多条对应的用印申请记录,visaId,{}; processInstanceId,{}", visaId, dto.getProcessInstanceId()); } diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandler.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandler.java index 82f47a86..2141f2d7 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandler.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/mq/listener/workflow/process/ProcessInstanceOfEssAllEventHandler.java @@ -12,7 +12,6 @@ import com.alibaba.fastjson.JSON; import cn.axzo.framework.rocketmq.Event; import cn.axzo.framework.rocketmq.EventConsumer; import cn.axzo.framework.rocketmq.EventProducer; -import cn.axzo.nanopart.visa.api.enums.VisaProcessPhase; import cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum; import cn.axzo.nanopart.visa.server.config.RefreshableConfiguration; import cn.axzo.nanopart.visa.server.domain.ChangeRecord; @@ -98,7 +97,7 @@ public class ProcessInstanceOfEssAllEventHandler extends BasicLogSupport impleme changeProcessInstanceOfEss(dto); } - private void changeProcessInstanceOfEss(ProcessInstanceDTO dto) { + public void changeProcessInstanceOfEss(ProcessInstanceDTO dto) { log.info("change process instance of ess: {}, instance result: {}", dto.getProcessInstanceId(), dto.getType().getTag()); Long visaId = Long.valueOf(dto.getBusinessKey()); Long operatorId = Optional.ofNullable(dto.getLastOperationAssigner()) @@ -110,16 +109,14 @@ public class ProcessInstanceOfEssAllEventHandler extends BasicLogSupport impleme log.error("visa not found, visaId: {}", visaId); return; } - VisaProcessPhase phase = Objects.equals(dto.getProcessInstanceId(), visa.getApprovalId()) - ? VisaProcessPhase.PROJECT - : VisaProcessPhase.PAYMENT; - VisaRelationFieldEnum fieldType = phase == VisaProcessPhase.PROJECT - ? VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS - : VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS_PAY; - List essInstances = changeRecordRelationService.findByCondition(VisaRelationDto.builder() - .visaId(visaId) - .varName(fieldType.name()) + List essInstances = changeRecordRelationService.findByCondition(VisaRelationDto.builder() // + .visaId(visaId) // + .varName(VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS.name()) // .build()); + essInstances.addAll(changeRecordRelationService.findByCondition(VisaRelationDto.builder() // + .visaId(visaId) // + .varName(VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS_PAY.name()) // + .build())); essInstances.forEach(e -> { String approvalId = JSON.parseObject(e.getContent(), RelationEssContextDto.class).getApprovalId(); e.setUpdateBy(operatorId);