package cn.ey.biz.module.system.service.codeblock;

import cn.ey.biz.common.pojo.PageResult;
import cn.ey.biz.module.system.api.codeblock.dto.*;
import cn.ey.biz.module.system.controller.admin.codeblock.vo.CodeBlockCodeValueVO;
import cn.ey.biz.module.system.controller.admin.codeblock.vo.CodeBlockLegalEntityCreateReqVO;
import cn.ey.biz.module.system.controller.admin.codeblock.vo.CodeBlockLegalEntityDetailRespVO;
import cn.ey.biz.module.system.controller.admin.codeblock.vo.CodeBlockLegalEntityPageReqVO;
import cn.ey.biz.module.system.dal.dataobject.codeblock.CodeBlockDO;
import cn.ey.biz.module.system.dal.dataobject.codeblock.CodeBlockLegalEntityDO;

import java.util.List;

public interface CodeBlockLegalEntityService {

    List<Long> createLegalEntity(CodeBlockLegalEntityCreateReqVO reqVO);

    void deleteLegalEntity(List<Long> id);

    CodeBlockLegalEntityDetailRespVO getLegalEntity(Long ids);

    PageResult<CodeBlockLegalEntityDO> getDictDataPage(CodeBlockLegalEntityPageReqVO reqVO);

    List<String> pullDown();

    List<CodeBlockCodeValueVO> pullDownSl(String legalEntityCode);

    List<CodeBlockCodeValueVO> pullDownSlList(List<String> legalEntityCode);

    List<CodeBlockCodeValueVO> pullDownSmu(String legalEntityCode, String slCode,String sslCode);

    List<CodeBlockCodeValueVO> pullDownSmuList(List<String> legalEntityCode, List<String> slCode,List<String> sslCode);

    List<CodeBlockCodeValueVO> pullDownSslCodeList(List<String> legalEntityCode, List<String> slCode);

    CodeBlockWideTableDTO filterList(CodeBlockWideTableReqDTO vo);

    CodeBlockWideTableDTO financeFilterList(CodeBlockWideTableReqDTO vo);

    CodeBlockWideTableDTO getCodeBlockList(CodeBlockWideTableReqDTO vo);

    CodeBlockWideTableDTO financeFilterFirmList(CodeBlockWideTableReqDTO vo);

    CodeBlockLegalRespDTO getLegalEffective(CodeBlockReqDTO dto);

    CodeBlockInfoRespDTO getCodeBlockInfo(String codeBlock);
}
