package cn.com.countrygarden.bi.main.service.ck;

import cn.com.countrygarden.bi.main.core.Result;
import cn.com.countrygarden.bi.main.dto.advise.ProjectListVO;
import cn.com.countrygarden.bi.main.dto.advise.RegionListVO;
import cn.com.countrygarden.bi.main.dto.ck.CkCleanerFieldConfigVo;
import cn.com.countrygarden.bi.main.dto.ck.CkCleanerQueyr;
import cn.com.countrygarden.bi.main.dto.ck.CkCleanerTableVo;
import cn.com.countrygarden.bi.main.dto.ck.CkCleanerVo;
import cn.com.countrygarden.bi.main.model.AccessToken;
import cn.com.countrygarden.bi.main.model.ck.CkCleanerBasic;
import cn.com.countrygarden.bi.main.model.ck.CkCleanerExternaldisplay;
import cn.com.countrygarden.bi.main.model.ck.CkRegionFiledValueVo;

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

/**
 * @Description:    基础数据表-业务逻辑层
 * @author  木木子
 * @email 944528607@qq.com
 * @date  2020/4/20  9:04
 */
public interface CkCleanerExpandService {
    /**
     * 获取数据维护列表的数据
     * @param cleanerQueyr
     * @param accessToken
     * @return
     */
    Result queryPageList(CkCleanerQueyr cleanerQueyr, AccessToken accessToken);

//    Result queryById(CkCleanerQueyr cleanerQueyr);

    Result addOrEdit(String data, AccessToken accessToken);



    Result del(List<Integer> ids,String dataClassification,AccessToken accessToken);

    /**
     * 构建数据维护列表的表头
     * @param //ckCleanerFieldConfig
     * @param //page
     * @param //size
     * @param accessToken
     * @return
     */
    Result getDTableConfig(String role, AccessToken accessToken);

    List<RegionListVO> getRegionDate(AccessToken accessToken);

    /**
     * 构建数据维护列表的列表数据
     * @param query
     * @param list
     * @return
     */
    List<CkCleanerFieldConfigVo> formulaConfig(CkCleanerVo query, List<CkCleanerFieldConfigVo> list);

    CkCleanerTableVo inheritInfo(CkCleanerBasic ckCleanerBasic);

    int addckexpand(Integer basicId,String data,AccessToken accessToken);

    List<CkCleanerExternaldisplay> ckexpandkedKeys(Integer basicId);

    List<Map<String,String>> ckexpand(Integer[] commId, Integer year, Integer month);

    Result statisticsProject(Integer year,Integer month,String orgCode);

    Result statisProjDetad(Integer year,Integer month,String orgCode,String type,int page,int size);

    List<CkRegionFiledValueVo> getRegionData(CkCleanerQueyr cleanerQueyr, AccessToken accessToken);

    Result allData(Integer year, Integer month, int page, int size, String updateDate);

    List<ProjectListVO> getPojDate(AccessToken accessToken, String organCode);
}