package cn.cecep.talroad.mapper.effective;


import cn.cecep.talroad.domain.effective.QEnvgasAreaTarget;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

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

/**
 * 目标管理Mapper接口
 * create by auto code
 *
 * @author talroad
 * @date 2022-09-19 15:09:25
 */
public interface QEnvgasAreaTargetMapper extends BaseMapper<QEnvgasAreaTarget> {
    /**
     * 查询目标管理
     *
     * @param qEnvgasAreaTarget 目标管理
     */
    public List<QEnvgasAreaTarget> queryQEnvgasAreaTargetList(QEnvgasAreaTarget qEnvgasAreaTarget);


    /**
     * 目标查询
     *
     * @param regionCode 区域编号
     * @param timeType   时间类型
     * @param time       时间
     * @return
     */
    public List<Map<String, Object>> findTargets(@Param("regionCode") String regionCode, @Param("timeType") int timeType, @Param("time") String time);

    /**
     * 月度目标查询
     *
     * @param regionCode 区域编号
     * @param timeType   时间类型
     * @param year       年份
     * @return
     */
    public List<Map<String, Object>> findMonthTarget(@Param("regionCode") String regionCode, @Param("timeType") int timeType, @Param("year") int year);

    /**
     * 查询秋冬防目标值
     *
     * @param regionCode 区域编号
     * @param month       月份数组
     * @param type       时间类型
     * @param factor     因子名称
     * @return
     */
    Map<String, Object> findAutumnWinterTarget(@Param("regionCode") String regionCode, @Param("month") String[] month, @Param("type") int type, @Param("factor") String factor);

    List<Map<String, Object>> findAutumTarget(@Param("regionCode") String regionCode, @Param("year") int year, @Param("type") int type);

    /**
     * 通过regionCode删除历史目标
     *
     * @param regionCode
     */
    void deleteByRegionCode(@Param("regionCode") String regionCode);

    /**
     * 通过regionCode删除 冬防/累计目标
     *
     * @param regionCode
     */
    void deleteAutumnByRegionCode(@Param("regionCode") String regionCode, @Param("field") Integer field);
}
