package com.steerinfo.meterwork.meterworkrailwayactualbak.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.meterworkrailwayactfirstbak.model.MeterWorkRailwayActFirstBak;
import com.steerinfo.meterwork.meterworkrailwayactual.model.MeterWorkRailwayActual;
import com.steerinfo.meterwork.meterworkrailwayactualbak.model.MeterWorkRailwayActualBak;
import com.steerinfo.pretrack.prerailwayscale.model.PreRailwayScale;
import com.steerinfo.util.CommonPage;

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

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

    int audit(List<MeterWorkRailwayActualBak> model);

    int unaudit(List<MeterWorkRailwayActualBak> model);

    int cancel(MeterWorkRailwayActualBak model);

    int publish(MeterWorkRailwayActualBak model);

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

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

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

    MeterWorkRailwayActualBak cleanPrediction(MeterWorkRailwayActualBak model);

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

    MeterWorkRailwayActualBak termclean(String actualFirstNo, String dataNo);

    int addData(MeterWorkRailwayActualBak model);

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

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

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

    RESTfulResult doQueryWf(CommonPage<MeterWorkRailwayActualBak> oci);

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

    int removeDt(List<MeterWorkRailwayActualBak> models);

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

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

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

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

    double getGrossAvg(HashMap actual);

    int checkandadditional(MeterWorkRailwayActualBak model);

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

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

    PageList<MeterWorkRailwayActualBak> likeByDesc(Map<String, Object> parameters, Integer pageNum, Integer pageSize);
    List<MeterWorkRailwayActualBak> webByLikeDesc(HashMap<String, Object> parameters);
    List<MeterWorkRailwayActualBak> noPage(Map<String, Object> params);

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

    String subStr(String str, String flag);

    RESTfulResult CopyToActual(List<String> ids, String railwayNo)throws Exception;

    RESTfulResult addNetEmergencyList(List<MeterWorkRailwayActualBak> lt) throws Exception;
}