From 483b2fc0989c079cabc1acc797e5bda631f68a4c Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Thu, 27 Mar 2025 16:03:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=89=B9=E6=B5=81=E7=A8=8B=E9=A2=84?= =?UTF-8?q?=E6=B5=8B=E5=AE=A1=E6=89=B9=E4=BA=BA=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/SendMessageWorkFlowPlugin.java | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/workflow/SendMessageWorkFlowPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/workflow/SendMessageWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/workflow/SendMessageWorkFlowPlugin.java new file mode 100644 index 0000000..2cef683 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/workflow/SendMessageWorkFlowPlugin.java @@ -0,0 +1,75 @@ +package zcgj.zcdev.zcdev.fs.plugin.workflow; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.message.api.MessageChannels; +import kd.bos.metadata.dao.MetaCategory; +import kd.bos.metadata.dao.MetadataDao; +import kd.bos.metadata.form.FormMetadata; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.bos.servicehelper.workflow.WorkflowServiceHelper; +import kd.bos.workflow.api.AgentExecution; +import kd.bos.workflow.engine.extitf.IWorkflowPlugin; +import kd.bos.workflow.engine.impl.persistence.entity.runtime.ExecutionEntityImpl; +import kd.bos.workflow.engine.precomputor.IPreComputorRecord; +import kd.bos.workflow.engine.precomputor.IPreComputorRecordItem; +import kd.bos.servicehelper.workflow.MessageCenterServiceHelper; +import kd.bos.workflow.engine.msg.info.MessageInfo; + +import java.util.ArrayList; +import java.util.List; +import kd.bos.dataentity.entity.LocaleString; + +/** + * 审批流程预测审批人提醒 + */ +public class SendMessageWorkFlowPlugin implements IWorkflowPlugin { + + @Override + public void notify(AgentExecution execution) { + String businessKey = execution.getBusinessKey(); + String entityNumber = execution.getEntityNumber(); + long processId = WorkflowServiceHelper.getProcessInstanceIdByBusinessKey(businessKey); + IPreComputorRecord record = WorkflowServiceHelper.getPreComputorRecord(processId); + List recordItems = record.getPcrData(); + List userIds = new ArrayList<>(); + for (IPreComputorRecordItem recordItem : recordItems) { + List nextNodeId = recordItem.getNextNodeId(); + if (nextNodeId.size() > 0) { + //获取下一个节点的审核人 + List assignee = recordItem.getAssignee(); + if (assignee.size() > 0) { + for (Long userId : assignee) { + userIds.add(userId); + } + } + } + } + if (!userIds.isEmpty()) { + sendMessage(userIds,entityNumber); + } + IWorkflowPlugin.super.notify(execution); + } + + public void sendMessage(List userIds,String entityNumber) { + String id = MetadataDao.getIdByNumber(entityNumber, MetaCategory.Form); + FormMetadata formMeta = (FormMetadata) MetadataDao.readRuntimeMeta(id, MetaCategory.Form); +//单据名称: + String billName = formMeta.getName().getLocaleValue(); + //messageinfo 使用工作流包下的对象 + MessageInfo messageInfo = new MessageInfo(); + messageInfo.setTitle(billName+"-审批提醒"); + LocaleString localeString = new LocaleString(); + localeString.setLocaleValue_zh_CN(billName+"待审批提醒"); + messageInfo.setMessageContent(localeString); + messageInfo.setUserIds(userIds); + //messageInfo.setType(MessageInfo.TYPE_TASK); + messageInfo.setType(MessageInfo.TYPE_MESSAGE); + messageInfo.setTag(billName+"-审批提醒"); + messageInfo.setEntityNumber(entityNumber); + messageInfo.setNotifyType(MessageChannels.MC.getNumber()); + MessageCenterServiceHelper.sendMessage(messageInfo); + } +}