package com.hotent.runtime.manager; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.hotent.base.model.CommonResult; import com.hotent.base.query.PageList; import com.hotent.base.query.QueryFilter; import com.hotent.bpm.api.model.process.nodedef.BpmNodeDef; import com.hotent.bpm.persistence.model.BpmInstDeleteLog; import com.hotent.bpm.persistence.model.BpmReadRecord; import com.hotent.bpm.persistence.model.BpmTaskUrgent; import com.hotent.bpm.persistence.model.DefaultBpmDefinition; import com.hotent.bpm.persistence.model.DefaultBpmProcessInstance; import com.hotent.runtime.model.RelatedInformation; import com.hotent.runtime.params.CopyToParam; import com.hotent.runtime.params.InfoboxVo; import com.hotent.runtime.params.StartFlowParamObject; import com.hotent.runtime.params.ToCopyToVo; import com.hotent.runtime.vo.BpmInstDeleteVo; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Optional; public interface InstanceService { /** * 抄送转发 * @param copyToParam * @return * @throws Exception */ CommonResult transToMore(CopyToParam copyToParam) throws Exception; /** * 流程审批历史 * @param instId * @param taskId * @param isCommu * @param isRelFlow * @param isRequest * @return */ List opinionHistory(Optional instId, Optional taskId, Optional isCommu, Optional isRelFlow, Optional isRequest) throws Exception; /** * 删除流程实例 * @param ids * @return */ Object remove(String ids) throws Exception; /** * 信息盒子 * @return */ List getDefaultInfobox(); /** * 信息盒子 * @return */ Map getDefaultInfoMap(); /** * 获取节点表单 * @param defId * @param nodeId * @param procInstId * @return * @throws Exception */ ObjectNode printBoAndFormKey(String defId, String nodeId, String procInstId) throws Exception; /** * 获取新闻公告 * @param queryFilter * @return */ ArrayNode getNewsAndBulletin(Optional queryFilter) throws Exception; /** * 根据流程实例获取关联数据 * @param params * @return * @throws Exception */ List getBusLink(ObjectNode params) throws Exception; /** * 获取流程运行时的变量 * @param instanceId * @return */ List getInstRunDataList(String instanceId) throws Exception; /** * 查询流程实例列表 * @param queryFilter * @param defId * @return */ PageList getInstDetailList(QueryFilter queryFilter, Optional defId) throws Exception; /** * 根据流程实例id判断是否允许发起人撤回 * @param instId * @return */ CommonResult getSponsorRevokeByInstId(String instId) throws Exception; /** * 保存表单数据 * @param startFlowParamObject * @return */ CommonResult saveFormData(StartFlowParamObject startFlowParamObject); /** * 获取有权限的流程并将其按照分类名称进行分组 * @param queryFilter * @return */ List getHasAuthFlowList(QueryFilter queryFilter) throws Exception; /** * 根据申请人获取相关流程 * @param queryFilter * @return */ PageList relatedProcess(QueryFilter queryFilter); /** * 发送人工催办 * @param bpmTaskUrgent * @return */ CommonResult sendUrgentByInstId(BpmTaskUrgent bpmTaskUrgent); /** * 发送人工催办 * @param bpmTaskUrgent * @return */ CommonResult sendBpmTaskUrgent(BpmTaskUrgent bpmTaskUrgent); /** * 获取流程key * @param defId * @param procInstId * @param taskId * @return */ CommonResult getFlowKey(Optional defId, Optional procInstId, Optional taskId) throws Exception; /** * 待办信息 * @param map * @return */ Map getDefaultInfoTodo(Map map); /** * 业务数据模板中 启动流程实例 * @param defKey * @param businessKey * @param boAlias * @return */ CommonResult startForm(String defKey, String businessKey, String boAlias); List nodeUsers(String defId, String nodeId) throws Exception; ToCopyToVo toCopyTo(String proInstId, String taskId, String copyToType); Map getFlowsMap(); void publishMsgNews(String params) throws IOException; RelatedInformation getRelatedInformationById(String id); PageList getByRecordInstId(QueryFilter queryFilter); CommonResult doEndProcessById(String id, Optional reason); /** * 彻底删除流程实例 * @param ids * @param isRemoveBo * @return */ Object completelyRemove(List bpmInstDeleteVos,String content,Boolean isRemoveBo) throws Exception; PageList getInstDeleteLog(QueryFilter queryFilter); }