package com.energy.manage.service.mappers.windexceptioncount;

import com.energy.manage.common.mapper.MyMapper;
import com.energy.manage.common.po.windexceptioncount.WindExceptionCountPo;
import com.energy.manage.service.domain.dto.windexceptioncount.WindExceptionCountDto;
import com.energy.manage.service.domain.vo.analysis.AnalysisErrorCodeVo;
import com.energy.manage.service.domain.vo.windexceptioncount.WindExceptionCountVo;
import com.energy.manage.service.domain.vo.windexceptioncount.WindExceptionDescVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author chy
 * @date 2024/5/23 17:38
 * @desc
 */
@Repository
public interface WindExceptionCountMapper extends MyMapper<WindExceptionCountPo>{

    /**
     * 根据批次号、风机编号、分析类型编码 查询所有异常描述
     * @param windExceptionCountDto
     * @return
     */
    List<WindExceptionCountVo> selectByCondition(WindExceptionCountDto windExceptionCountDto);


    /**
     * 添加异常描述
     * @param windExceptionCountDto
     * @return
     */
    int insertPoSelective(WindExceptionCountDto windExceptionCountDto);


    /**
     * 修改异常描述 只改异常数 处理异常数 更新人
     * @param analysisResultDto
     * @return
     */
    int updatePoSelecttive(WindExceptionCountDto analysisResultDto);


    /**
     * 根据风场查询异常描述
     * @param fieldCodes
     * @return
     */
    List<WindExceptionCountVo> selectByfieldCodes(@Param("fieldCodes") List<String> fieldCodes,
                                                  @Param("startTime") String startTime,
                                                  @Param("endTime") String endTime);

    /**
     * 通过批次查询有异常的风机信息
     * @param batchCode
     * @return
     */
    List<AnalysisErrorCodeVo> selectExceptionCountBybatchCode(@Param("batchCode") String batchCode);

    /**
     * 查询风机异常信息
     * @param batchCode
     * @param engineCode
     * @return
     */
    List<WindExceptionDescVo> selectByBatchAndEngine(@Param("batchCode") String batchCode, @Param("engineCode") String engineCode);

}
