package com.vci.web.service; import com.vci.corba.omd.lcm.LifeCycle; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.web.pageModel.OsERVO; import com.vci.web.pageModel.OsLifeCycleLineVO; import com.vci.web.pageModel.OsLifeCycleVO; import com.vci.web.pageModel.OsStatusVO; import java.util.Collection; import java.util.List; import java.util.Map; /*** * 生命周期服务 * @author weidy * */ public interface OsLifeCycleServiceI extends OsBaseServiceI{ /*** * 获取生命周期的状态对应的中文值 * @param status 状态 * @return 状态的显示名称 * @throws VciBaseException 不存在生命周期 */ String getStatusText(String status) throws VciBaseException; /** * 跃迁生命周期状态,注意调用此方法就会被持久化,不受事务控制 * @param bo 业务类型的数据对象 * @param targetStatus 目标的生命周期状态,不区分大小 * @throws VciBaseException 如果目标生命周期和当前生命周期状态没有连接线时抛出异常 */ void transStatus(com.vci.corba.omd.data.BusinessObject bo, String targetStatus) throws VciBaseException; /** * 批量跃迁生命周期状态,这些数据中的当前状态必须都是一样。或者是当前状态都可以连接到目标状态 * @param boList 业务类型对象数据 * @param targetStatus 目标状态,不区分大小写 * @throws VciBaseException 转换生命周期出错的时候抛出异常 */ void transStatus(List boList, String targetStatus) throws VciBaseException; /** * 批量跃迁生命周期状态,这些数据中的当前状态必须都是一样,或者是当前状态都可以连接到目标状态 * @param bos 业务类型对象数据 * @param targetStatus 目标状态,不区分大小写 * @throws VciBaseException 转换生命周期出错的时候抛出异常 */ void transStatus(com.vci.corba.omd.data.BusinessObject[] bos, String targetStatus) throws VciBaseException; /** * 批量跃迁生命周期状态,这些数据中的当前状态必须都是一样,或者是当前状态都可以连接到目标状态 * @param cboList 业务类型对象数据 * @param targetStatus 目标状态,不区分大小写 * @throws VciBaseException 转换生命周期出错的时候抛出异常 */ void transCboStatus(List cboList, String targetStatus) throws VciBaseException; /** * 通过编号获取生命周期状态对象, * @param lctId 生命周期编号 * @return 生命周期的显示对象 */ OsLifeCycleVO getLifeCycleById(String lctId) ; /** * 生命周期的数据对象转换为显示对象 * @param lifeCycles 数据对象 * @return 显示对象 */ List lifeCycleDO2VOs(Collection lifeCycles); /** * 生命周期的数据对象转换为显示对象 * @param lifeCyle 数据对象 * @return 显示对象 */ OsLifeCycleVO lifeCycleDO2VO(LifeCycle lifeCyle); /** * 生命周期显示对象转换为数据对象 * @param lifeCycleVO 显示对象 * @return 数据对象 */ LifeCycle lifeCycleVO2DO(OsLifeCycleVO lifeCycleVO); /** * 查询所有生命周期状态 * @return 生命周期状态的对象 * @throws VciBaseException 查询的时候出错会抛出异常 */ List selectAllLifeCycle() throws VciBaseException; /** * 查询所有生命周期状态的映射 * @return key 是生命周期的编号的英文小写 * @throws VciBaseException 查询的时候出错会抛出异常 */ Map selectAllLifeCycleMap() throws VciBaseException; /** * 获取连接线 * @param lcid 生命周期的编号 * @param currentStatus 当前的状态 * @param targetStatus 目标的状态 * @return 连接线 * @throws VciBaseException 读取出错的时候会抛出异常 */ OsLifeCycleLineVO getTransVO(String lcid, String currentStatus, String targetStatus) throws VciBaseException; /** * 跃迁业务类型的生命周期状态 * @param obj 业务类型数据对象 * @param lineVO 跃迁路由 * @throws VciBaseException 跃迁出错的是会抛出异常 */ void doTransVO(com.vci.corba.omd.data.BusinessObject obj, OsLifeCycleLineVO lineVO) throws VciBaseException; /** * 批量执行跃迁操作,要求必须是同一个业务类型下的 * @param bos 业务类型数据对象 * @param lineVOs 跃迁对象 * @param releaseStatus 发布状态,如果目标状态是发布状态时传递这个值 * @throws VciBaseException 跃迁出错的是会抛出异常 */ void batchTransVo(com.vci.corba.omd.data.BusinessObject[] bos, OsLifeCycleLineVO[] lineVOs, String[] releaseStatus) throws VciBaseException; /** * 批量执行跃迁操作 * @param bos 业务类型数据 * @param vos 跃迁对象 * @throws VciBaseException 跃迁出错的是会抛出异常 */ void batchTransVo(com.vci.corba.omd.data.BusinessObject[] bos, OsLifeCycleLineVO[] vos) throws VciBaseException; /** * 使用生命周期的编号获取包含的状态显示对象 * @param lifeCycleId 生命周期的编号 * @return 状态的显示对象 */ List listStatusById(String lifeCycleId); /** * 批量添加生命周期 * @param lifeCyleList 生命周期的内容 */ void batchAddLifeCycle(List lifeCyleList); /** * 批量修改生命周期 * @param lifeCycleList 生命周期的内容 */ void batchEditLifeCycle(List lifeCycleList); /** * 状态在生命周期中使用的勤快 * @param statusOid 状态的主键 * @return 生命周期的信息 */ DataGrid listStatusUsed(String statusOid); /** * 判断状态是否被引用 * @param statusVO 状态的显示对象 * @return true表示被引用 */ boolean checkStatusUsed(OsStatusVO statusVO); /** * 生命周期列表 * @param baseQueryObject 查询对象,分页对象 * @return 生命周期显示对象 */ DataGrid gridLifeCycle(BaseQueryObject baseQueryObject); /** * 生命周期的链接线 * @param id 编号 * @return ER图内容 */ OsERVO listLinesPic(String id); }