package com.steerinfo.appservice.appmeterworkcaractual.service;

import com.steerinfo.appservice.appmeterworkcaractual.model.AppMeterWorkCarActual;
import com.steerinfo.appservice.dto.AppMeterWorkCarActualDemo;
import com.steerinfo.appservice.dto.LoadLinkDemo;
import com.steerinfo.appservice.dto.companyDemo;
import com.steerinfo.baseinfo.combaseinfo.model.ComBaseInfo;
import com.steerinfo.baseinfo.meterbasematterinfo.model.MeterBaseMatterInfo;
import com.steerinfo.framework.service.IBaseService;
import com.steerinfo.framework.service.pagehelper.PageList;
import com.steerinfo.meterwork.meterworkcaractualfirst.model.MeterWorkCarActualFirst;
import com.steerinfo.pretrack.pretrackscale.model.PreTrackScale;

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

/**
 * MeterWorkCarActual服务接口：
 * @author generator
 * @version 1.0-SNAPSHORT 2020-09-17 11:03
 * 类描述
 * 修订历史：
 * 日期：2020-09-17
 * 作者：generator
 * 参考：
 * 描述：MeterWorkCarActual服务接口
 * @see null
 * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
 */
public interface IAppMeterWorkCarActualService extends IBaseService<AppMeterWorkCarActual, String>{
    PageList<AppMeterWorkCarActualDemo> queryForApp(Map<String, Object> parameters, Integer pageNum, Integer pageSize);

    List<ComBaseInfo> selectMeterType(HashMap parmas);

    List<MeterBaseMatterInfo> selectMatter(HashMap parmas);

    PageList<AppMeterWorkCarActual> selectNet(Map<String, Object> parameters,Integer pageNum, Integer pageSize);

    PageList<AppMeterWorkCarActualDemo> selectSumForAppByCar(HashMap parmas, Integer pageNum, Integer pageSize);

    PageList<AppMeterWorkCarActual> selectNetByCar(HashMap parmas, Integer pageNum, Integer pageSize);

    PageList<MeterWorkCarActualFirst> selectForLoad(HashMap parmas, Integer pageNum, Integer pageSize);

    PageList<LoadLinkDemo> selectLoadLinkDemo(HashMap parmas, Integer pageNum, Integer pageSize);

    List<companyDemo> selectReAndFo(HashMap parmas);


    String updateLoadPoint(MeterWorkCarActualFirst model);

    String judgeDuration(MeterWorkCarActualFirst model);

    String abolishData(MeterWorkCarActualFirst model);

    PageList<LoadLinkDemo> selectLoadLinkActual(HashMap parmas, Integer pageNum, Integer pageSize);

    /**
     * 装卸货确认 - 确认
     * @param model
     * @return
     */
    String UpdateForUnLoad(MeterWorkCarActualFirst model,String type);

    /**
     * 装卸货确认  - 取消卸货确认
     * @param model
     * @return
     */
    int updateForUnLoadRecover(MeterWorkCarActualFirst model,String type);


    /**
     * 待卸货数据查询与已卸货数据查询
     * @param parmas
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageList<MeterWorkCarActualFirst> selectToBeDidUnLoad(HashMap parmas, Integer pageNum, Integer pageSize);

    /**
     * 待装货数据查询与已装货数据查询
     * @param parmas
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageList<MeterWorkCarActualFirst> selectToBeDidLoad(HashMap parmas, Integer pageNum, Integer pageSize);

    /**
     * 能否进行出厂
     * @param model
     * @return
     */
    String judgeOutDoor(PreTrackScale model);
}
