package com.vci.web.service; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.omd.lcm.LifeCycle; import com.vci.pagemodel.OsLifeCycleLineVO; import com.vci.pagemodel.OsLifeCycleVO; import com.vci.pagemodel.OsStatusVO; import com.vci.starter.web.exception.VciBaseException; import java.util.Collection; import java.util.List; import java.util.Map; /** * @Description 生命周期服务接口 * @Author dangsn * @Date 2024/11/28 10:38 */ public interface WebLifeCycleServiceI { /** * 跃迁生命周期状态,注意调用此方法就会被持久化,不受事务控制 * @param bo 业务类型的数据对象 * @param targetStatus 目标的生命周期状态,不区分大小 * @throws VciBaseException 如果目标生命周期和当前生命周期状态没有连接线时抛出异常 */ void transStatus(BusinessObject bo, String targetStatus); /** * 批量跃迁生命周期状态,这些数据中的当前状态必须都是一样,或者是当前状态都可以连接到目标状态 * @param bos 业务类型对象数据 * @param targetStatus 目标状态,不区分大小写 * @throws VciBaseException 转换生命周期出错的时候抛出异常 */ void transStatus(BusinessObject[] bos, String targetStatus); /** * 批量跃迁生命周期状态,这些数据中的当前状态必须都是一样,或者是当前状态都可以连接到目标状态 * @param cboList 业务类型对象数据 * @param targetStatus 目标状态,不区分大小写 * @throws VciBaseException 转换生命周期出错的时候抛出异常 */ void transCboStatus(List cboList, String targetStatus); /** * 获取连接线 * @param lcid 生命周期的编号 * @param currentStatus 当前的状态 * @param targetStatus 目标的状态 * @return 连接线 * @throws VciBaseException 读取出错的时候会抛出异常 */ OsLifeCycleLineVO getTransVO(String lcid, String currentStatus, String targetStatus); /** * 跃迁业务类型的生命周期状态 * @param obj 业务类型数据对象 * @param lineVO 跃迁路由 * @throws VciBaseException 跃迁出错的是会抛出异常 */ void doTransVO(BusinessObject obj, OsLifeCycleLineVO lineVO); /** * 批量执行跃迁操作 * @param bos 业务类型数据 * @param vos 跃迁对象 * @throws VciBaseException 跃迁出错的是会抛出异常 */ void batchTransVo(BusinessObject[] bos, OsLifeCycleLineVO[] vos); /** * 批量执行跃迁操作,要求必须是同一个业务类型下的 * @param bos 业务类型数据对象 * @param lineVOs 跃迁对象 * @param releaseStatus 发布状态,如果目标状态是发布状态时传递这个值 * @throws VciBaseException 跃迁出错的是会抛出异常 */ void batchTransVo(BusinessObject[] bos, OsLifeCycleLineVO[] lineVOs, String[] releaseStatus); /** * 通过编号获取生命周期状态对象, * @param lctId 生命周期编号 * @return 生命周期的显示对象 */ OsLifeCycleVO getLifeCycleById(String lctId); /** * 查询所有生命周期状态的映射 * @return key 是生命周期的编号的英文小写 * @throws VciBaseException 查询的时候出错会抛出异常 */ Map selectAllLifeCycleMap(); /** * 查询所有生命周期状态 * @return 生命周期状态的对象 * @throws VciBaseException 查询的时候出错会抛出异常 */ List selectAllLifeCycle(); /** * 生命周期的数据对象转换为显示对象 * @param lifeCycles 数据对象 * @return 显示对象 */ List lifeCycleDO2VOs(Collection lifeCycles); /** * 生命周期的数据对象转换为显示对象 * @param lifeCyle 数据对象 * @return 显示对象 */ OsLifeCycleVO lifeCycleDO2VO(LifeCycle lifeCyle); /** * 使用生命周期的编号获取包含的状态显示对象 * @param lifeCycleId 生命周期的编号 * @return 状态的显示对象 */ List listStatusById(String lifeCycleId); }