package com.clx.performance.service.collect;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.model.collect.CollectLineReport;
import com.clx.performance.param.app.collect.*;
import com.clx.performance.param.pc.carrier.*;
import com.clx.performance.vo.pc.collect.CollectLineReportVO;

public interface CollectLineReportService {

    void saveSendAddressReport(CollectLineReportSendAddressSaveParam param);

    void saveAbnormalReport(CollectLineReportAbnormalSaveParam param);
    CollectLineReport saveSendAddressAbnormalReport(CollectLineReportSendAddressAbnormalSaveParam param);
    CollectLineReport saveLoadAbnormalReport(CollectLineReportLoadAbnormalSaveParam param);
    CollectLineReport saveReceiveAddressAbnormalReport(CollectLineReportReceiveAddressAbnormalSaveParam param);
    void saveNoTakeOrderAbnormalReport(CollectLineReportNoTakeOrderAbnormalSaveParam param);
    CollectLineReport saveLoadUnloadAbnormalReport(CollectLineReportLoadUnloadAbnormalSaveParam param);


    void saveOtherReport(CollectLineReportOtherSaveParam param);
    void saveQualityReport(CollectLineReportQualitySaveParam param);

    CollectLineReportVO getReportInfo(Integer id);

    IPage<CollectLineReportVO> pageLineReport(PageCollectLineReportParam param);

    void updateSendAddressReportAudit(CollectLineReportSendAddressAuditParam param);
    void updateAbnormalReportAudit(CollectLineReportSendAddressAuditParam param);
    void updateNoTakeOrderReportAudit(CollectLineReportSendAddressAuditParam param);
    void updateQualityReportAudit(CollectLineReportSendAddressAuditParam param);

    IPage<CollectLineReportVO> carrierPageSendAddressReport(CarrierPageCollectSendAddressReportParam param);

    IPage<CollectLineReportVO> carrierPageAbnormalReport(CarrierPageCollectAbnormalReportParam param);
    IPage<CollectLineReportVO> carrierPageNoTakeOrderReport(CarrierPageCollectNoTakeOrderReportParam param);
    IPage<CollectLineReportVO> carrierPageQualityReport(CarrierPageCollectQualityReportParam param);
    IPage<CollectLineReportVO> carrierPageOtherReport(CarrierPageCollectOtherReportParam param);


}
