package cn.iocoder.yudao.module.finance.service.subject;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.module.finance.controller.admin.subject.vo.FinAccountSubjectPageReqVO;
|
import cn.iocoder.yudao.module.finance.controller.admin.subject.vo.FinAccountSubjectSaveReqVO;
|
import cn.iocoder.yudao.module.finance.dal.dataobject.subject.FinAccountSubjectDO;
|
import jakarta.validation.Valid;
|
|
import java.util.Collection;
|
import java.util.List;
|
import java.util.Map;
|
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
|
|
/**
|
* 会计科目 Service 接口
|
*
|
* @author 超级管理员
|
*/
|
public interface FinAccountSubjectService {
|
|
/**
|
* 创建会计科目
|
*
|
* @param createReqVO 创建信息
|
* @return 科目编号
|
*/
|
Long createAccountSubject(@Valid FinAccountSubjectSaveReqVO createReqVO);
|
|
/**
|
* 更新会计科目
|
*
|
* @param updateReqVO 更新信息
|
*/
|
void updateAccountSubject(@Valid FinAccountSubjectSaveReqVO updateReqVO);
|
|
/**
|
* 删除会计科目
|
*
|
* @param id 科目编号
|
*/
|
void deleteAccountSubject(Long id);
|
|
/**
|
* 批量删除会计科目
|
*
|
* @param ids 科目编号数组
|
*/
|
void deleteAccountSubjectList(List<Long> ids);
|
|
/**
|
* 获得会计科目
|
*
|
* @param id 科目编号
|
* @return 会计科目
|
*/
|
FinAccountSubjectDO getAccountSubject(Long id);
|
|
/**
|
* 获得会计科目分页
|
*
|
* @param pageReqVO 分页查询
|
* @return 会计科目分页
|
*/
|
PageResult<FinAccountSubjectDO> getAccountSubjectPage(FinAccountSubjectPageReqVO pageReqVO);
|
|
/**
|
* 获得会计科目列表(全量,按科目编码升序,前端据此构建科目树)
|
*
|
* @return 会计科目列表
|
*/
|
List<FinAccountSubjectDO> getAccountSubjectList();
|
|
/**
|
* 获得指定科目编码的会计科目,不存在时返回 null
|
*
|
* @param subjectCode 科目编码
|
* @return 会计科目
|
*/
|
FinAccountSubjectDO getAccountSubjectByCode(String subjectCode);
|
|
/**
|
* 获得指定科目编码的会计科目 Map
|
*
|
* @param subjectCodes 科目编码数组
|
* @return 会计科目 Map
|
*/
|
default Map<String, FinAccountSubjectDO> getAccountSubjectMap(Collection<String> subjectCodes) {
|
List<FinAccountSubjectDO> list = getAccountSubjectListByCodes(subjectCodes);
|
return convertMap(list, FinAccountSubjectDO::getSubjectCode);
|
}
|
|
/**
|
* 获得指定科目编码的会计科目列表
|
*
|
* @param subjectCodes 科目编码数组
|
* @return 会计科目列表
|
*/
|
List<FinAccountSubjectDO> getAccountSubjectListByCodes(Collection<String> subjectCodes);
|
|
}
|