package com.vci.web.service; import com.vci.file.pagemodel.VciFileObjectVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; import com.vci.starter.web.pagemodel.Tree; import com.vci.starter.web.pagemodel.TreeQueryObject; import com.vci.web.pageModel.*; import java.util.List; import java.util.Map; /** * 流程相关定义查询服务 * @author weidy */ public interface WebProcessDefineServiceI { /** * 获取某个分类下的userid可以使用的流程模板 * @param type 流程分类 * @param filterTemplate 指定模板 * @param showAll 是否显示所有版本,false时只显示启用的版本 * @return 可用的流程模版 * @throws VciBaseException */ List getMyTemplates(String type, String filterTemplate,boolean showAll) throws VciBaseException; /** * 获取某个分类下的所有流程模板 * @param type 流程分类 * @return 该分类下的所有的流程模板 * @throws VciBaseException */ List getAllTemplates(String type) throws VciBaseException; /** * 获取流程中定义的所有任务节点 * @param processOid 流程模版的主键 * @param isQueryUser 是否查询节点中的用户 * @param maxSecret 数据中的最大密级值 * @return 该流程模版中所有的任务节点,其中包含所有可以选择的用户 * @throws VciBaseException */ List getAllProcessNode(String processOid, boolean isQueryUser, int maxSecret) throws VciBaseException; /** * 获取流程中定义的所有任务节点名称 * @param processTemplateOid 流程模版的主键 * @return 返回任务节点名称 * @throws VciBaseException */ List getAllProcessNodeName(String processTemplateOid) throws VciBaseException; /** * 获取流程中某个节点的所有可以选择的用户 * @param node 流程模版的主键 * @return 所有可以选择的用户 * @throws VciBaseException */ List getProcessUsersByNode(ProcessNodeVO node, int maxSecret) throws VciBaseException; /** * 获取流程模板中所有节点的负责人 */ List getAllProcessUsersInProcess(String processTemplateOid, String nodeName) throws VciBaseException; /** * 获取部署id * @param executionId 执行主键 * @return * @throws VciBaseException */ String getDeployIdByExecutionId(String executionId) throws VciBaseException; /** * 获取任务中设置的当前处理人 * @param taskOid 任务主键 * @return * @throws VciBaseException */ List getProcessUserByTask(String taskOid) throws VciBaseException; /** * 获取我的待办事项--平台不支持查询数据总条数,不清楚在这种情况下,start和pagesize是用来做什么用的 * @param conditionMap 条件查询 * @param ph 分页和排序 * @return * @throws VciBaseException */ DataGrid getMyUndoProcessTask(Map conditionMap, PageHelper ph) throws VciBaseException; /** * 获取我处理了的任务 * @param conditionMap 查询条件 * @param ph 分页信息 * @return * @throws VciBaseException */ DataGrid getMyDoneProcessTask(Map conditionMap, PageHelper ph) throws VciBaseException; /** * 获取我的已经完成的流程 * @param conditionMap 查询条件 * @param ph 分页信息 * @return * @throws VciBaseException */ DataGrid getMyCompletedProcess(Map conditionMap, PageHelper ph) throws VciBaseException; /** * 获取所有已经完成的流程 * @param conditionMap 查询条件 * @param ph 分页信息 * @return * @throws VciBaseException */ DataGrid getAllCompletedProcess(Map conditionMap, PageHelper ph) throws VciBaseException; /** * 获取我的终止的流程 * @param conditionMap 查询条件 * @param ph 分页信息 * @return * @throws VciBaseException */ DataGrid getMyObsoledtedProcess(Map conditionMap, PageHelper ph) throws VciBaseException; /** * 获取所有终止的流程 * @param conditionMap 查询条件 * @param ph 分页信息 * @return * @throws VciBaseException */ DataGrid getAllObsoledtedProcess(Map conditionMap, PageHelper ph) throws VciBaseException; /** * 获取我的挂起的流程 * @param conditionMap 查询条件 * @param ph 分页信息 * @return * @throws VciBaseException */ DataGrid getMySuspendedProcess(Map conditionMap, PageHelper ph) throws VciBaseException; /** * 获取所有挂起的流程 * @param conditionMap 查询条件 * @param ph 分页信息 * @return * @throws VciBaseException */ DataGrid getAllSuspendedProcess(Map conditionMap, PageHelper ph) throws VciBaseException; /** * 获取我发起的所有正在执行的流程 * @param conditionMap 查询条件 * @param ph 分页信息 * @return * @throws VciBaseException */ DataGrid getMyExecutingProcess(Map conditionMap, PageHelper ph) throws VciBaseException; /** * 获取所有正在执行的流程 * @param conditionMap 查询条件 * @param ph 分页信息 * @return * @throws VciBaseException */ DataGrid getAllExecutingProcess(Map conditionMap, PageHelper ph) throws VciBaseException; /** * 获取我发起的所有流程 * @param conditionMap 查询条件 * @param ph 分页信息 * @return * @throws VciBaseException */ DataGrid getMyCreateProcess(Map conditionMap, PageHelper ph) throws VciBaseException; /** * 获取数据区域显示的表格信息-- * @param executionid 流程的执行主键,executionid * @param taskOid 任务的主键 * @return map,其中btmType为业务类型,tableCode为表格编号 * @throws VciBaseException */ Map getDataTableDefine(String executionid, String taskOid) throws VciBaseException; /** * 获取数据区域显示的数据 * @param taskOid 任务主键,等于workitem里的oid * @param processOid 流程主键,等于workflowinstance里的主键 * @param referColumn 引用的列 * @return * @throws VciBaseException */ DataGrid getDataInProcess(String taskOid, String processOid, String referColumn) throws VciBaseException; /** * 获取流程的历史 * @param executionId 流程实例的主键 * @param showCurrentNode 是否显示当前的节点 * @return 这个流程中所有历史 * @throws VciBaseException */ DataGrid getHistory(String executionId, boolean showCurrentNode) throws VciBaseException; /** * 获取当前流程中的流程图 * @param executionId 当前流程的执行实例id * @param taskOid 当前任务节点主键 * @return * @throws VciBaseException */ byte[] getProcessPicture(String executionId, String taskOid) throws VciBaseException; /** * 获取流程模版中的流程图 * @param executionId 执行ID, * @return * @throws VciBaseException */ byte[] getProcessTemplatePicture(String executionId) throws VciBaseException; /** * 根据主键获取任务信息 * @param taskOid * @return * @throws VciBaseException */ List getTaskByOid(String taskOid) throws VciBaseException; /** * 查询任务的路由 * @param taskId 任务主键 * @param isQueryNextNode 是否查询下一个任务节点的负责人 * @return 所有的路由信息 * @throws VciBaseException */ List getOutCome(String taskId, boolean isQueryNextNode) throws VciBaseException; /** * 获取根据规则产生的流程名称 * @param btmtype 业务类型 * @param data 数据 * @return * @throws VciBaseException */ String getNameFromRule(String btmtype, Map data) throws VciBaseException; /** * 检验任务是否使用同一个流程模板,是否同一个任务节点 * @param taskOids 任务主键 * @return * @throws VciBaseException */ boolean checkUseSameTemplate(String taskOids) throws VciBaseException; /** * 获取流程中关联的数据关联的文件 * @param conditionMap 查询条件 * @param taskOid 任务主键 * @param executionId 流程执行主键 * @param pageHelper 分页信息 * @return */ DataGrid getFilesInProcess(Map conditionMap, String taskOid, String executionId, PageHelper pageHelper) throws VciBaseException; /** * 批量获取流程中的变量信息 * @param executionId 流程标识 * @param keys 流程变量 * @return * @throws VciBaseException */ Map getVariablesInProcess(String executionId, String keys) throws VciBaseException; /** * 根据业务数据,获取正在执行的流程 * @param bussinessOid 业务类型数据 * @param btmName 业务类型名 * @return * @throws VciBaseException */ List listExecutingProcessByBussinessOid(String bussinessOid, String btmName) throws VciBaseException; /** * 获取审批意见文件 * @param taskOids 任务的主键 * @return 文件的信息 */ DataGrid listAuditSuggestFile(String taskOids); /** * 参照流程分类 * @param conditionMap 查询条件 * @param pageHelper 分页对象 * @return 分类的信息 */ DataGrid referGridProcessClassify(Map conditionMap, PageHelper pageHelper); /** * 参照流程的模板 * @param processClassifyId 流程分类的名称 * @param name 模板的名称 * @return 模板的显示对象 */ DataGrid referGridProcessTemplate(String processClassifyId, String name); /** * 参照流程分类树 * @param queryObject 查询对象 * @return 树的信息 */ List referTreeProcessClassify(TreeQueryObject queryObject); /** * 使用模板的主键获取 * @param id 模板的key * @param revisionValue 版本的值 * @return 模板的显示对象 */ ProcessTemplateVO getTemplateById(String id,String revisionValue); /** * 获取某个用户的待办任务个数 * @param username 用户的编号 * @return 总数 */ int getUndoTaskCount(String username); }