package com.nantian.cloud.jljc.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nantian.cloud.jljc.entity.EnterpriseInfo;
import com.nantian.cloud.jljc.entity.TSuperviseTask;
import com.nantian.cloud.jljc.vo.Query;
import com.nantian.cloud.jljc.vo.TSuperviseTaskOrganizationVo;
import com.nantian.sc.cloud.common.data.datascope.DataScope;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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

/**
 * 节能监察任务表 Mapper 接口
 *
 * @author stz
 * @since 2020-09-21
 */
@Mapper
public interface TSuperviseTaskMapper extends BaseMapper<TSuperviseTask> {

    //分页获取企业信息表
    //IPage<EnterpriseInfo> getPageCom(Page page, @Param("query") Query q, DataScope dataScope);
    IPage<EnterpriseInfo> getPageCom(Page page, @Param("query") Query q, DataScope dataScope);

    //分页获取 节能监察任务表（政府端）
    IPage<TSuperviseTaskOrganizationVo> getPageScope(Page page, @Param("query") Query query, DataScope dataScope);
    //IPage<TSuperviseTaskOrganizationVo> getPageScope(Page page, @Param("query") Query query);

    //查询企业未完成的下达任务，只需判断书面监察
    List<TSuperviseTask> haveTaskRelease(@Param("epc") String epc);

    //根据id获取 节能监察任务表
    TSuperviseTaskOrganizationVo getTaskById(@Param("id") Long id);

    //根据tSuperviseTask对象的id清空节能监察任务表中的附加文件名称
    int updateTask(TSuperviseTask task);

    //分页获取 节能监察任务表（企业端）
    IPage<TSuperviseTaskOrganizationVo> getTSuperviseTask(Page page, @Param("query") Query query);

    //工业硅企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary1(@Param("query") Query query);

    //水泥企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary2(@Param("query") Query query);

    //建筑卫陶企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary3(@Param("query") Query query);

    //黄磷企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary4_1(@Param("query") Query query);

    //磷化工（磷酸一铵、磷酸二铵）企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary4_2(@Param("query") Query query);

    //电解铝企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary5(@Param("query") Query query);

    //钢铁企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary6(@Param("query") Query query);

    //再生铅企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary7(@Param("query") Query query);

    //铁合金企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary8(@Param("query") Query query);

    //铅冶炼企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary9(@Param("query") Query query);

    //铜冶炼企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary10_1(@Param("query") Query query);

    //铜冶炼企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary10_2(@Param("query") Query query);

    //铜冶炼企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary10_3(@Param("query") Query query);

    //铜冶炼企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary10_4(@Param("query") Query query);

    //铜冶炼企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary10_5(@Param("query") Query query);

    //铜冶炼企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary10_6(@Param("query") Query query);

    //锌冶炼企业单位产品 汇总表
    List<Map<String, Object>> getSuperviseTaskSummary11(@Param("query") Query query);

    //节能监察任务完成情况汇总
    Map<String, Object> totalByTask(@Param("query") Query query);

    //分页获取节能监察任务表（手机端）
    IPage<Map<String, Object>> pageByWX(@Param("page") Page page,@Param("query") Query query);

    //获取监察任务情况首页通知（加监察编号）
    List<Map<String, Object>> noticeListByJnjc(@Param("query") Query query, @Param("deptId") String deptId, @Param("inspectorsid") String inspectorsid);

    List<Map<String, Object>> jnjcSummary(@Param("query") Query query);

    List<Map<String, Object>> jnjcPersonal(@Param("query") Query query);

    Integer isExistMonitorId(@Param("monitorId") String monitorId);

    Map<String, Object> taskInfo(@Param("query") TSuperviseTask query);

    List<Map<String, Object>> getHistoryData(@Param("query") Query query);
    String getHistoryColumns(@Param("item") String item);
}
