package com.chinaweal.aiccs.aiccs.system.service;

import com.chinaweal.aiccs.aiccs.system.entity.TRBaseCode;
import com.chinaweal.youfool.framework.springboot.mybatis.plus.BaseService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 基础代码表 服务类
 * </p>
 *
 * @author <a href="https://blog.lroyia.top">lroyia</a>
 * @since 2021-02-18
 */
public interface TRBaseCodeService extends BaseService<TRBaseCode> {

    /**
     * 从缓存中读取基础代码信息Map
     * @param codeTypeId 码值类型id（对应TRBaseCode的{@code codeid}字段）
     * @return 读取结果
     * @author lroyia
     * @since 2021年2月18日 17:06:26
     */
    Map<String, TRBaseCode> getBaseCodeMapFormCache(String codeTypeId);

    /**
     * 从缓存中读取基础代码信息List
     * @param codeTypeId 码值类型id（对应TRBaseCode的{@code codeid}字段）
     * @return 读取结果
     * @author lroyia
     * @since 2021年2月18日 17:06:26
     */
    List<TRBaseCode> getBaseCodeListFromCache(String codeTypeId);

    /**
     * 刷新缓存
     * @param codeTypeId 定向刷新码值类型id（对应TRBaseCode的{@code codeid}字段）
     * @author lroyia
     * @since 2021年2月18日 17:09:27
     */
    void flushCache(String codeTypeId);

    String getRegorgName(String code);

    String getSuporg(String code);

    Map<String, String> queryOrgName();

    Map<String, String> queryEntType();

    List<TRBaseCode> listXrbasecodes(TRBaseCode query);
}
