审批流程预测审批人提醒
This commit is contained in:
parent
944ba17c7e
commit
483b2fc098
|
@ -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<IPreComputorRecordItem> recordItems = record.getPcrData();
|
||||
List<Long> userIds = new ArrayList<>();
|
||||
for (IPreComputorRecordItem recordItem : recordItems) {
|
||||
List<String> nextNodeId = recordItem.getNextNodeId();
|
||||
if (nextNodeId.size() > 0) {
|
||||
//获取下一个节点的审核人
|
||||
List<Long> 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<Long> 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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue