package com.vci.web.dao; import com.vci.corba.omd.data.LinkObject; import com.vci.corba.wf.WFServicePrx; import com.vci.corba.wf.data.TasksAssignedInfo; import com.vci.dto.ProcessTemplateVO; import com.vci.model.WFProcessClassifyDO; import com.vci.model.WFProcessTemplateDO; import com.vci.pagemodel.*; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; import java.util.Collection; import java.util.Date; import java.util.List; import java.util.Map; public interface WebProcessDaoI { /** * 获取流程分类下的流程模板 * @param type 流程分类的名称 * @param filterTemplate 过滤模板 * @param showAll 是否查询全部版本(包含停用) * @return * @throws VciBaseException */ List getTemplatesByType(String type, String filterTemplate, boolean showAll) throws VciBaseException; /** * 获取流程模板下的任务节点,以及任务节点上配置的责任人 * @param processOid 流程模板 * @return * @throws VciBaseException */ List getAllProcessNode(String processOid) throws VciBaseException; /** * 获取流程中的第一个节点的名称 * @param deployId 部署主键 * @return * @throws VciBaseException */ String getFirstNodeName(String deployId) throws VciBaseException; /** * 获取流程模板对应的流程引擎里的部署主键 * @param processOid 流程模板主键 * @return * @throws VciBaseException */ String getJbpmDeploymentId(String processOid) throws VciBaseException; /** * 获取流程模板对应的引擎里的部署主键 * @param executionId * @return * @throws VciBaseException */ String getJbpmDeploymentIdByExecutionId(String executionId) throws VciBaseException; /** * 获取流程模板的xml的内容 * @param jbpmDeploymentId 流程的部署主键 * @return xml的二进制内容 */ byte[] getProcessXmlContent(String jbpmDeploymentId) throws VciBaseException; /** * 获取流程模板中所有的节点名称 * @param processOid 流程模板主键 * @return * @throws VciBaseException */ String[] getAllProcessNodeName(String processOid) throws VciBaseException; /** * 根据流程引擎中的部署主键来获取所有的任务节点 * @param deploymentId * @return * @throws VciBaseException */ String[] getAllProcessNodeNameByDeploy(String deploymentId) throws VciBaseException; /** * 获取模板中节点设置的负责人 * @param deploymentId 引擎中的部署主键 * @param taskName 任务节点名称 * @return * @throws VciBaseException */ ProcessNodeVO getNodePresideUsersByDeploy(String deploymentId, String taskName) throws VciBaseException; /** * 获取模板中的节点设置的负责人 * @param processOid 流程主键 * @param taskName 任务节点 * @return * @throws VciBaseException */ ProcessNodeVO getNodePresideUsers(String processOid, String taskName) throws VciBaseException; /** * 获取任务的处理人 * @param executionid 执行主键 * @param taskName 任务名称 * @return * @throws VciBaseException */ List getNodePresideUsersByTask(String executionid, String taskName) throws VciBaseException; /** * 获取某个用户的待办实现 * @param conditionMap 查询条件 * @param ph * @param userId 用户名-不能为空 * @return * @throws VciBaseException */ DataGrid getUndoTask( Map conditionMap, PageHelper ph, String userId) throws VciBaseException; /** * 使用流程实例获取所有的待办信息 * @param processInstanceId 流程的实例主键 * @param mill 时间 * @return 待办的任务 */ DataGrid getUndoTaskByInstanceId(String processInstanceId,long mill); /** * 获取某个用户已经处理的任务 * @param conditionMap 查询条件 * @param ph * @param userId 用户名-不能为空 * @return * @throws VciBaseException */ DataGrid getDoneProcess(Map conditionMap, PageHelper ph, String userId) throws VciBaseException; /** * 获取已经完成的流程 * @param conditionMap * @param ph * @param userId 用户名,为空表示所有人 * @return * @throws VciBaseException */ DataGrid getCompletedProcess(Map conditionMap, PageHelper ph, String userId) throws VciBaseException; /** * 获取终止的流程 * @param conditionMap * @param ph * @param userId * @return * @throws VciBaseException */ DataGrid getObsoledtedProcess(Map conditionMap, PageHelper ph, String userId) throws VciBaseException; /** * 获取挂起的流程 * @param conditionMap * @param ph * @param userId * @return * @throws VciBaseException */ DataGrid getSuspendedProcess(Map conditionMap, PageHelper ph, String userId) throws VciBaseException; /** * 获取正在执行的流程 * @param conditionMap * @param ph * @param userId * @return * @throws VciBaseException */ DataGrid getExecutingProcess(Map conditionMap, PageHelper ph, String userId) throws VciBaseException; /** * 获取某个用户发起的所有流程信息 * @param conditionMap * @param ph * @param userId 用户名,不能为空 * @return * @throws VciBaseException */ DataGrid getCreateProcess(Map conditionMap, PageHelper ph, String userId) throws VciBaseException; /** * 根据待办任务的主键来获取待办任务对象 * @param oid * @return * @throws VciBaseException */ List getTaskByOid(String oid) throws VciBaseException; /** * 还有任务的主键获取任务CBO对象 * @param oid 主键 * @return CBO对象 * @throws VciBaseException 查询出错会抛出异常 */ List getTaskCBOByOid(String oid) throws VciBaseException; /** * 根据流程的主键来获取流程的对象 * @param oid * @return * @throws VciBaseException */ ProcessInstanceVO getProcessByOid(String oid) throws VciBaseException; /** * 获取流程中的变量,平台只支持字符串..... * @param executionId * @param key * @return * @throws VciBaseException */ String getVariablesInProcess(String executionId, String key) throws VciBaseException; /** * 获取任务中关联的所有数据 * @param taskOid 任务的主键 * @param processOid 流程的主键 * @param referColumns 引用的列 * @return * @throws VciBaseException */ DataGrid getDataByTask(String taskOid, String processOid, String referColumns) throws VciBaseException; /** * 获取任务关联的链接类型 * @param taskOid 任务主键 * @param executionId 流程执行主键 * @return * @throws VciBaseException */ List getDataCloInTask(String taskOid, String executionId) throws VciBaseException; /** * 获取流程中包含的所有数据 * @param executionId 流程执行ID * @param referColumns 参照的列 * @return * @throws VciBaseException */ DataGrid getDataByProcess(String executionId, String referColumns) throws VciBaseException; /** * 获取流程历史 * @param executionId * @return * @throws VciBaseException */ List getHistory(String executionId) throws VciBaseException; /** * 获取流程图的二进制数据 * @param executionId 流程执行主键 * @param taskName 任务名称 * @return */ byte[] getProcessPicture(String executionId, String taskName) throws VciBaseException; /** * 获取流程模板上的流程图的二进制数据 * @param deployId * @return * @throws VciBaseException */ byte[] getProcessTemplatePicture(String deployId) throws VciBaseException; /** * 获取任务的路由 * @param taskoid jbpm中的任务主键 * @return * @throws VciBaseException */ String[] getAllOutComes(String taskoid) throws VciBaseException; /** * 获取下一步的任务 * @param executionid 流程执行主键 * @param taskName 当前任务的名称 * @param outCome 路由名称 * @return 因为有分支的情况,所以下一步任务会有多个 */ String getNextTaskName(String executionid, String taskName, String outCome) throws VciBaseException; /** * 获取平台的流程服务 * @return */ WFServicePrx getWFService() throws VciBaseException; /** * 任务与数据关联的链接类型 * @return */ String getTaskDataLink(); /** * 任务的业务类型 * @return */ String getWorkitemBtmType(); /** * 根据部署主键,获取流程模板对象 * @param deployId 部署主键 * @return * @throws VciBaseException */ ProcessTemplateVO getTemplateByDeployId(String deployId) throws VciBaseException; String getWorkIntanceBtmType(); /** * 添加流程代理--可以设置现在生效还是后续生效 * @param userId 代理人的用户名 * @param startDate 开始日期 * @param endDate 结束日期 * @param isNowEnable 是否立即生效 ----这个参数先都设置为true * @throws VciBaseException */ void beginProxy(String userId, Date startDate, Date endDate, boolean isNowEnable) throws VciBaseException; /** * 停止流程代理 * @throws VciBaseException */ void endProxy() throws VciBaseException; /** * 获取流程代理信息 * @return * @throws VciBaseException */ TasksAssignedInfo getProxy() throws VciBaseException; /** * 结束流程 * @param executionId * @throws VciBaseException */ void endProcess(String executionId) throws VciBaseException; /** * 根据业务类型查询正在执行的流程 * @param bussinessOid 业务类型数据 * @param btmName 业务类型名称 * @return * @throws VciBaseException */ List listExecutingProcessByBussinessOid(String bussinessOid, String btmName) throws VciBaseException; /** * 批量终止流程, * @param executionIds 流程的执行主键 * @param note 终止原因 * @throws VciBaseException */ void batchEndProcess(Collection executionIds, String note) throws VciBaseException; /** * 流程分类的数据对象转换为显示对象 * @param doCollection 数据对象的集合 * @return 显示对象 */ List processClassifyDO2VOs(Collection doCollection); /** * 流程分类的数据对象转换为显示对象 * @param classifyDO 数据对象 * @return 显示对象 */ ProcessClassifyVO processClassifyDO2VO(WFProcessClassifyDO classifyDO); /** * 流程模板的数据对象转换为显示对象 * @param doCollection 数据对象集合 * @return 显示对象 */ List processTemplateDO2VOs(Collection doCollection); /** * 流程模板的数据对象转换为显示对象 * @param templateDO 数据对象 * @return 显示对象 */ ProcessTemplateVO processTemplateDO2VO(WFProcessTemplateDO templateDO); /** * 使用用户名查询待办任务的个数 * @param username 用户名 * @return 个数 */ int countUndoTaskByUsername(String username); }