/*
 * Copyright [2022] [https://www.xiaonuo.vip]
 *
 * Snowy采用APACHE LICENSE 2.0开源协议，您在使用过程中，需要注意以下几点：
 *
 * 1.请不要删除和修改根目录下的LICENSE文件。
 * 2.请不要删除和修改Snowy源码头部的版权声明。
 * 3.本项目代码可免费商业使用，商业使用请保留源码和相关描述文件的项目出处，作者声明等。
 * 4.分发源码时候，请注明软件出处 https://www.xiaonuo.vip
 * 5.不可二次分发开源参与同类竞品，如有想法可联系团队xiaonuobase@qq.com商议合作。
 * 6.若您的项目无法满足以上几点，需要更多功能代码，获取Snowy商业授权许可，请在官网购买授权，地址为 https://www.xiaonuo.vip
 */
package com.unis.basic.info.modular.grainPriceCollectProvinceSum.mapper;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.unis.basic.info.modular.grainPriceCollectProvinceSum.entity.GrainPriceCollectProvinceSum;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

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

/**
 * 省级粮食价格采集汇总Mapper接口
 *
 * @author TS
 * @date  2024/04/03 10:39
 **/
public interface GrainPriceCollectProvinceSumMapper extends BaseMapper<GrainPriceCollectProvinceSum> {
    /**
     *获取所有市州本周上报数据情况
     * @param status
     * @param monday
     * @param sunday
     * @return
     */
    @Select("SELECT a.id as \"id\",a. NAME AS \"orgName\",IF(IFNULL(b. STATUS,'-1') = '-1','-1','0') AS \"status\"  FROM  sys_org  a LEFT JOIN biz_grain_price_collect_city_sum b ON b.sys_org_id = a.id  and date_format(b.sum_time,'%Y-%m-%d') BETWEEN #{monday} and #{sunday} " +
            " WHERE a.PARENT_ID = '1774729858638458882'  " +
            " and IFNULL(b.STATUS,0) = #{status} " +
            " ")
    List<Map<String,Object>> getOrgUploads(@Param("status")String status,  @Param("monday")String monday, @Param("sunday") String sunday);
    /**
     * 取得本省本期间内同粮油不同价格类型平均值
     * @param type
     * @param monday
     * @param sunday
     * @return
     */
    List<Map<String,Object>> getAvgPriceByCity(
                                         @Param("type") String type,
                                         @Param("monday") String monday,
                                         @Param("sunday") String sunday
    );

    /**
     * 取得本省上周/上月/上年同粮油同类型价格值，以便比较
     * @param type
     * @param monday
     * @param sunday
     * @param priceType
     * @param firstLevel
     * @param secondLevel
     * @param threeLevel
     * @return
     */
    List<Map<String,Object>> getOffAvgPriceByProvince(
                                            @Param("type") String type,
                                            @Param("monday") String monday,
                                            @Param("sunday") String sunday,
                                            @Param("priceType") String priceType,
                                            @Param("firstLevel") String firstLevel,
                                            @Param("secondLevel") String secondLevel,
                                            @Param("threeLevel") String threeLevel
    );

    /**
     * 自定义sql分页
     * @param page
     * @param queryWrapper 看这里看这里，如果自定义的方法中需要用到wrapper查询条件，需要这样写
     * @return
     */
    IPage<Map<String,Object>> selectMyMapsPage(Page<GrainPriceCollectProvinceSum> page, @Param(Constants.WRAPPER)QueryWrapper<GrainPriceCollectProvinceSum> queryWrapper);

    /**
     * 通过条件修改市级价格采集汇总对应的省级汇总表Id
     * @param orgId
     * @param monday
     * @param sunday
     */
    void updateGrainPriceCollectCitySum(@Param("orgId")String orgId,@Param("provincId") String cityId,@Param("monday")String monday,@Param("sunday")String sunday);

}
