package pwc.taxtech.atms.service; import java.util.List; import pwc.taxtech.atms.dpo.EnterpriseAccountDto; import pwc.taxtech.atms.dto.OperationResultDto; import pwc.taxtech.atms.dto.epaccount.AccountMapDto; import pwc.taxtech.atms.dto.epaccount.AccountMappingDto; import pwc.taxtech.atms.dto.epaccount.EnterpriseAccountAndValidateInfo; import pwc.taxtech.atms.dto.epaccount.EnterpriseAccountSetDto; import pwc.taxtech.atms.entity.EnterpriseAccount; public interface EnterpriseAccountService { /** * Get EnterpriseAccount * @param enterpriseAccountCode * @param accountSetId * @return EnterpriseAccount */ EnterpriseAccount getEnterpriseAccount(String enterpriseAccountCode, String enterpriseAccountSetId); /** * 获取标准科目列表 * @param enterpriseAccountSetId * @return EnterpriseAccountAndValidateInfo */ EnterpriseAccountAndValidateInfo getListByEnterpriseAccountSetId(String enterpriseAccountSetId); /** * 根据企业科目Id获取企业科目信息 * @param enterpriseAccountId * @return The identifier. */ EnterpriseAccountDto getEnterpriseAccount(String enterpriseAccountId); /** * 新增企业科目 * @param enterpriseAccountDto * @return OperationResultDto<List<EnterpriseAccountDto>> */ OperationResultDto<List<EnterpriseAccountDto>> addEnterpriseAccount(EnterpriseAccountDto enterpriseAccountDto); /** * 更新企业科目 * @param enterpriseAccountDto * @return OperationResultDto<List<EnterpriseAccountDto>> */ OperationResultDto<List<EnterpriseAccountDto>> updateEnterpriseAccount(EnterpriseAccountDto enterpriseAccountDto); /** * 手动对应或者取消的时候更新父级以及以上的状态, 对应父级科目 * @param enterpriseAccountCodeList - 当前操作的企业科目代码的列表 * @param enterpriseAccountSetId - 当前企业科目所在的企业账套Id * @param industryId - 机构下的行业,主要用于区分标准科目 * @param orgId - 机构Id * @param isToUpdateEvenExists - 是否覆盖 */ void mapAccountUpdateParent(List<String> enterpriseAccountCodeList, String enterpriseAccountSetId, String industryId, String orgId, Boolean isToUpdateEvenExists); /** * validate import excel format, data * @param filePath * @return */ OperationResultDto<List<EnterpriseAccountDto>> validateImportEnterpriseAccount(String filePath); /** * create enterprise account set and import list of enterprise accounts * @param enterpriseAccountSetName - Name of the enterprise account set * @param enterpriseAccountSetCode - Code of the enterprise account set * @param importData * @return */ @SuppressWarnings("rawtypes") OperationResultDto addEnterpriseAccountSetAndImportData(String enterpriseAccountSetName, String enterpriseAccountSetCode, List<EnterpriseAccountDto> importData); /** * Import enterprise accounts * @param enterpriseAccountSetDto * @param importData * @return OperationResultDto */ @SuppressWarnings("rawtypes") OperationResultDto repeatImportEnterpriseAccountSet(EnterpriseAccountSetDto enterpriseAccountSetDto, List<EnterpriseAccountDto> importData); /** * 删除重复企业科目 * @param enterpriseAccountSetDto * @return */ @SuppressWarnings("rawtypes") OperationResultDto clearRepeatEnterpriseAccountList(EnterpriseAccountSetDto enterpriseAccountSetDto); List<AccountMappingDto> getAccountMappingOrg(String organizationId); List<EnterpriseAccountSetDto> getEnterpriseAccountSetListByOrgId(String orgId); List<EnterpriseAccountDto> getList(String epAccountSetId, String orgId, String filterType); OperationResultDto autoMap(String orgId, String accountSetId); OperationResultDto mapAccount(AccountMapDto accountMapDto); OperationResultDto clearMap(String[] epAccountIds, String orgId); }