package com.steerinfo.meterwork.meterworkcaractualfirst.mapper;

import com.steerinfo.framework.mapper.IBaseMapper;
import com.steerinfo.meterwork.dto.*;
import com.steerinfo.meterwork.meterworkcaractual.model.MeterWorkCarActual;
import com.steerinfo.meterwork.meterworkcaractualfirst.model.MeterWorkCarActualFirst;
import feign.Param;
import io.micrometer.core.instrument.Meter;
import org.apache.ibatis.annotations.Mapper;

import java.util.*;

@Mapper
public interface MeterWorkCarActualFirstMapper extends IBaseMapper<MeterWorkCarActualFirst, String> {
    String getNewID(@Param(value = "afl") String afl);

    List<MeterWorkCarActualFirst> selectView(Map<Objects, String> parmas);

    MeterWorkCarActualFirst selectAndMatch(@Param(value = "actualFirstNo") String actualFirstNo, @Param(value = "predictionNo") String predictionNo);

    MeterWorkCarActualFirst selectAndRemove(@Param(value = "actualFirstNo") String actualFirstNo);

    List<MeterWorkCarActualFirst> selectTa(Map<String, Object> parmas);

    List<MeterWorkCarActualFirst> selectByCarNo(@Param(value = "carNo") String carNo);

    List<MeterWorkCarActualFirst> selectNet(@Param(value = "weightType") String weightType, @Param(value = "carNo") String carNo);

    List<StaffPerformanceAnalysis> analysis(HashMap<String, Object> obj);

    List<UtensilDto> utensil(HashMap<String, Object> obj);

    List<MeterTypeDto> meterType(HashMap<String, Object> obj);

    List<TimesDto> daily(HashMap<String, Object> obj);

    List<TimesDto> period(HashMap<String, Object> obj);

    List<MeterWorkCarActualFirst> detailed(HashMap<String, Object> obj);

    List<AbnormalDto> abnormal(HashMap<String, Object> obj);

    List<MeterWorkCarActualFirst> getByAbnormal(HashMap<String, Object> obj);

    /*List<MeterWorkCarActualFirst> selectForAppLoad(ArrayList<String> id);*/

    List<MeterWorkCarActualFirst> selectForAppLoad(Map<String, Object> parmas);

    /**
     * 已确认但是未结净的卸货数据
     * @param map
     * @return
     */
    List<MeterWorkCarActualFirst> selectForAppLoadFirst(Map<String, Object> map);

    /**
     * 查询当天未使用的液碱的销售出厂的预报数据
     * @return
     */
    List<MeterWorkCarActualFirst> selectInvalidNaOHData();

    /**
     * 查询：按时间排序
     * @param parmas
     * @return
     */
    List<MeterWorkCarActualFirst> queryOrderByTime(HashMap parmas);

    /**
     * 根据传入时间和车号，查询给定时间段去重车号
     * @param obj
     * @return
     */
    List<MeterWorkCarActualFirst> distinctCarNo(HashMap<String, Object> obj);

    void repairPre(Map<String, Object> map);

    List<MeterWorkCarActualFirst> likeByDesc(Map<String, Object> params);
    List<MeterWorkCarActualFirst> ApplikeByDesc(Map<String, Object> params);

    List<MeterWorkCarActualFirst> queryForTimeInterval(Map<String, Object> params);

    List<MeterWorkCarActualFirst> selectById(List<String> actualNoList);

    int countFirstByCar(HashMap params);

    //根据时间查询所有秤点的一次毛重、一次皮重、一次期限皮、一次有效、一次作废
    List<MeterWorkCarActualFirst> countAllState(Map<String, Object> params);
    List<MeterWorkCarActualFirst> allStateView(Map<String, Object> params);
}