package com.nantian.cloud.jljc.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
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.core.util.R;
import org.apache.xmlbeans.impl.piccolo.io.FileFormatException;
import org.springframework.web.multipart.MultipartFile;

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

/**
 * 节能监察任务表 服务类
 *
 * @author stz
 * @since 2020-09-21
 */
public interface TSuperviseTaskService extends IService<TSuperviseTask> {

    //分页获取企业信息表
    IPage<EnterpriseInfo> getPageCom(Page page, Query map);

    //分页获取 节能监察任务表
    IPage<TSuperviseTaskOrganizationVo> getPageScope(Page page, Query query);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    //节能监察任务完成情况汇总
    Map<String, Object> totalByTask(Query query);
    //根据监察编号获取节能监察任务信息
    Map<String,Object> taskInfo(TSuperviseTask query);
    //分页获取节能监察任务表（手机端）
    IPage<Map<String, Object>> pageByWX(Page page, Query query);

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

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

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

    //导入excel
    R excelImport(MultipartFile file) throws FileFormatException;

    Integer isExistMonitorId(String monitorId);

    Map<String, Object> getHistoryData(Query query);
}
