package cn.cecep.talroad.service;

import cn.cecep.talroad.domain.AmProblemFi;
import cn.cecep.talroad.domain.AmProblemFiProcess;
import cn.cecep.talroad.vo.AmProblemFiVo;
import cn.cecep.talroad.vo.EChartsVO;
import cn.cecep.talroad.vo.analysis.FactoryOutletStaticsVo;
import cn.cecep.talroad.vo.query.AmProblemFiQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

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

public interface IAmProblemFiService extends  IService<AmProblemFi>
{
    List<EChartsVO.Sunburst> getChartData(AmProblemFiQuery.ChartDataParam param, String regionCode);

    EChartsVO getTrendData(AmProblemFiQuery.ChartDataParam param);

    List<AmProblemFiVo> selectList(Page<AmProblemFiVo> page, AmProblemFiQuery query);

    AmProblemFiVo.Detail getInfo(String id);

    void updateModelValid(AmProblemFiVo.ModelValidForm form);

    IProductionManageService.FrameDataVo logicExceptionData(String id, String startTime, String endTime, Long pageNum, Long pageSize);

    IProductionManageService.FrameDataVo detail002(String id, String startTime, String endTime, Long pageNum, Long pageSize);

    EChartsVO detail003004(String id, String startTime, String endTime);

    EChartsVO detail003002(String id, String startTime, String endTime);

    IProductionManageService.FrameDataVo dcsElec(String id, String startTime, String endTime, Long pageNum, Long pageSize);

    List<AmProblemFiVo.CountVo> getProblemTypeCount(String problemType);

    List<AmProblemFi> getProblemByTypeAndTime(String problemType,String dateStr,String dateStrEnd);

    void rectifyRequired(AmProblemFiProcess param);

    void rectifySave(AmProblemFiProcess param);

    void auditResult(AmProblemFiProcess param);

    void yjSign(AmProblemFiProcess param);

    Integer countByFactoryId(String factoryId, Integer type);

    EChartsVO elecMerge(String id, String startTime, String endTime);

    Object addCause(AmProblemFi param);

    List<Map<String, Object>> getAListOfAlerts(String type,String topType);

    List<FactoryOutletStaticsVo> selectStatisDataByMonth(Date startTime, Date endTime);

    Boolean rectifyUpdate(AmProblemFiVo param);
}
