package cn.iocoder.yudao.module.finance.service.asset;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.module.finance.controller.admin.asset.vo.FinIntangibleAssetAmortizeRespVO;
|
import cn.iocoder.yudao.module.finance.controller.admin.asset.vo.FinIntangibleAssetPageReqVO;
|
import cn.iocoder.yudao.module.finance.controller.admin.asset.vo.FinIntangibleAssetSaveReqVO;
|
import cn.iocoder.yudao.module.finance.dal.dataobject.asset.FinIntangibleAssetDO;
|
import jakarta.validation.Valid;
|
|
import java.util.Collection;
|
import java.util.List;
|
|
/**
|
* 无形资产 Service 接口
|
*
|
* @author 超级管理员
|
*/
|
public interface FinIntangibleAssetService {
|
|
/**
|
* 创建无形资产
|
*
|
* @param createReqVO 创建信息
|
* @return 资产编号
|
*/
|
Long createIntangibleAsset(@Valid FinIntangibleAssetSaveReqVO createReqVO);
|
|
/**
|
* 更新无形资产
|
*
|
* 修改原值、摊销年限、残值率时会按新参数重算累计摊销与净值
|
*
|
* @param updateReqVO 更新信息
|
*/
|
void updateIntangibleAsset(@Valid FinIntangibleAssetSaveReqVO updateReqVO);
|
|
/**
|
* 删除无形资产
|
*
|
* @param id 资产编号
|
*/
|
void deleteIntangibleAsset(Long id);
|
|
/**
|
* 批量删除无形资产
|
*
|
* @param ids 资产编号数组
|
*/
|
void deleteIntangibleAssetList(List<Long> ids);
|
|
/**
|
* 计提摊销
|
*
|
* 每个资产计提一个月的摊销:月摊销额 = 原值 × (1 - 残值率 / 100) / (摊销年限 × 12)。
|
* 累计摊销以应摊销总额封顶,最后一期按剩余可摊销额计提;
|
* 净值摊完(为 0)时状态自动置为「已摊销完」
|
*
|
* @param ids 资产编号数组;为空时对所有未失效的无形资产计提
|
* @return 计提结果
|
*/
|
FinIntangibleAssetAmortizeRespVO amortizeIntangibleAssetList(List<Long> ids);
|
|
/**
|
* 获得无形资产
|
*
|
* @param id 资产编号
|
* @return 无形资产
|
*/
|
FinIntangibleAssetDO getIntangibleAsset(Long id);
|
|
/**
|
* 获得无形资产分页
|
*
|
* @param pageReqVO 分页查询
|
* @return 无形资产分页
|
*/
|
PageResult<FinIntangibleAssetDO> getIntangibleAssetPage(FinIntangibleAssetPageReqVO pageReqVO);
|
|
/**
|
* 获得指定编号的无形资产列表
|
*
|
* @param ids 资产编号数组
|
* @return 无形资产列表
|
*/
|
List<FinIntangibleAssetDO> getIntangibleAssetList(Collection<Long> ids);
|
|
/**
|
* 获得全部无形资产列表
|
*
|
* @return 无形资产列表
|
*/
|
List<FinIntangibleAssetDO> getIntangibleAssetList();
|
|
}
|