package com.steerinfo.meterwork.meterworkrailwayactual.service;

import com.steerinfo.framework.controller.RESTfulResult;
import com.steerinfo.framework.service.IBaseService;
import com.steerinfo.framework.service.pagehelper.PageList;
import com.steerinfo.meterwork.meterworkcaractual.model.MeterWorkCarActual;
import com.steerinfo.meterwork.meterworkrailwayactfirst.model.MeterWorkRailwayActFirst;
import com.steerinfo.meterwork.meterworkrailwayactual.model.MeterWorkRailwayActual;
import com.steerinfo.pretrack.prerailwayscale.model.PreRailwayScale;
import com.steerinfo.util.CommonPage;

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

/**
 * MeterWorkRailwayActual服务接口：
 * @author generator
 * @version 1.0-SNAPSHORT 2020-09-18 08:18
 * 类描述
 * 修订历史：
 * 日期：2020-09-18
 * 作者：generator
 * 参考：
 * 描述：MeterWorkRailwayActual服务接口
 * @see null
 * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
 */
public interface IMeterWorkRailwayActualService extends IBaseService<MeterWorkRailwayActual, String>{

    int audit(List<MeterWorkRailwayActual> model);

    int unaudit(List<MeterWorkRailwayActual> model);

    int cancel(MeterWorkRailwayActual model);
    RESTfulResult batchCancel(List<MeterWorkRailwayActual> model);
    RESTfulResult deleteList(List<MeterWorkRailwayActual> models);

    int publish(MeterWorkRailwayActual model);
    RESTfulResult batchPublish(List<MeterWorkRailwayActual> models);

    MeterWorkRailwayActual clean(String actualFirstNo, String dataNo, String predictionNo);

    RESTfulResult cleanByfirstNoAndNotes(String actFirstNo01, String actFirstNo02, String PredictionNo, String Notes);

    MeterWorkRailwayActual matchPrediction(String actualNo, String predictionNo, String note);

    MeterWorkRailwayActual cleanPrediction(MeterWorkRailwayActual model);

    int remove(List<MeterWorkRailwayActual> models);
    RESTfulResult removeDynamicModel(MeterWorkRailwayActual model);

    MeterWorkRailwayActual termclean(String actualFirstNo, String dataNo);

    int addData(MeterWorkRailwayActual model);

    List<String> distinctRailwayNo(HashMap<String, Object> param);
    List<String> distinctLcNo(HashMap<String, Object> param);
    RESTfulResult distinctLcNoAndRailwayNo(HashMap<String, Object> param);

    PageList<MeterWorkRailwayActual> selectView(HashMap parmas, Integer pageNum, Integer pageSize);

    PageList<MeterWorkRailwayActual> selectDiff(HashMap parmas, Integer pageNum, Integer pageSize);

    RESTfulResult doQueryWf(CommonPage<MeterWorkRailwayActual> oci);

    RESTfulResult updateList(List<MeterWorkRailwayActual> actual);

    RESTfulResult updatePre(MeterWorkRailwayActual model);

    RESTfulResult updatePreCancel(List<MeterWorkRailwayActual> models);
    RESTfulResult resolveList(List<MeterWorkRailwayActual> model);

    PageList<MeterWorkRailwayActual> doQueryActWf(HashMap parmas, Integer pageNum, Integer pageSize);

    int removeDt(List<MeterWorkRailwayActual> models);

    //批量修改二次计量数据
    int batchEditActual(List<MeterWorkRailwayActual> actual, List<MeterWorkRailwayActFirst> actualFirst, List<PreRailwayScale> scales);

    //批量修改预报的数据
    int batchEditScales(List<PreRailwayScale> scales);

    //批量修改二次计量数据
    int batchEditActuals(List<MeterWorkRailwayActual> actuals);

    //批量修改一次计量数据
    int batchEditActFirsts(List<MeterWorkRailwayActFirst> actualFirsts);

    double getGrossAvg(HashMap actual);

    int checkandadditional(MeterWorkRailwayActual model);

    RESTfulResult supplementaryData(MeterWorkRailwayActual model);
    //根据实绩id获取一次计量信息和委托信息
    RESTfulResult firstAndEntrustById(String actualNo);

    RESTfulResult specialRemove(HashMap map);
    RESTfulResult commonRemove(HashMap map);

    PageList<MeterWorkRailwayActual> likeByDesc(Map<String, Object> parameters, Integer pageNum, Integer pageSize);
    PageList<MeterWorkRailwayActual> railwayPrintLikeByDesc(Map<String, Object> parameters, Integer pageNum, Integer pageSize);
    //静轨物料车型重量范围配置限制显示
    PageList<MeterWorkRailwayActual> staticLimitByDesc(Map<String, Object> parameters, Integer pageNum, Integer pageSize);
    //动轨物料车型重量范围配置限制显示
    PageList<MeterWorkRailwayActual> dynamicLimitByDesc(Map<String, Object> parameters, Integer pageNum, Integer pageSize);
    List<MeterWorkRailwayActual> carActualDataDetail(HashMap<String, Object> params);
    List<MeterWorkRailwayActual> webByLikeDesc(HashMap<String, Object> parameters);
    List<MeterWorkRailwayActual> noPage(Map<String, Object> params);

    RESTfulResult batchUpdateLcNo(List<MeterWorkRailwayActual> models);
    RESTfulResult autoPrintRailway(HashMap<String, Object> map);

    String subStr(String str, String flag);

    RESTfulResult batchMatchActualView(HashMap<String, Object> param);
    RESTfulResult batchRailwayActual(List<HashMap> models);


    RESTfulResult copyActual(List<MeterWorkRailwayActual> models);

    RESTfulResult Upload(List<MeterWorkRailwayActual> models);

    RESTfulResult Unload(List<MeterWorkRailwayActual> models);

    //铁水吊钩秤web端
    List<String> distinctHookRailwayNo(HashMap<String, Object> param);
    List<MeterWorkRailwayActual> hookActualByDesc(HashMap<String, Object> parameters);
    PageList<MeterWorkRailwayActual> hookActualPageList(HashMap parmas, Integer pageNum, Integer pageSize);
    //根据实绩id获取一次计量信息和委托信息
    RESTfulResult hookFirstAndEntrustById(String actualNo);
    RESTfulResult cleanByHookFirstNo(String actFirstNo01, String actFirstNo02, String PredictionNo);

    int updateCar(MeterWorkRailwayActual model);

    PageList<HashMap> dynamicAndStaticCompare(HashMap<String, Object> parameters, Integer pageNum, Integer pageSize);
    RESTfulResult auditRailwayActual(List<MeterWorkRailwayActual> models, String memo);

    RESTfulResult autoPrintRailway2(HashMap<String, Object> map);

    PageList<HashMap> getNetFilterCheck(HashMap params);

    PageList<HashMap> getNetFilterCheckWeightReversal(HashMap params);

    RESTfulResult getConfigQuery(HashMap parmas, Integer pageNum, Integer pageSize);
}
