package com.prolog.rdc.tms.service.planMng;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.planMng.*;
import com.prolog.rdc.tms.model.vo.planMng.TransportPlanBillVO;
import com.prolog.rdc.tms.model.vo.planMng.TransportPlanQueryVO;

import java.util.List;

/**
 * 计划管理-待排计划单服务层
 *
 * @author lhb
 * @since 2023-06-07 09:04:35
 */
public interface TransportPlanBillService {

	/**
	 * 待排计划单分页查询
	 *
	 * @param vo
	 * @return
	 */
	Page<PendingPlanBillQueryDTO> pagePendingPlanBillData(TransportPlanQueryVO vo);


	/**
	 * 计划单保存
	 *
	 * @param vo
	 * @return
	 */
	String savePlanBillData(TransportPlanBillVO vo);

	/**
	 * 计划单修改
	 *
	 * @param vo
	 * @return
	 */
	String updatePlanBillData(TransportPlanBillVO vo);

	/**
	 * 计划单删除
	 *
	 * @param planBillIds
	 * @return
	 */
	void deletePlanBillData(List<String> planBillIds);

	/**
	 * 计划单分页查询
	 *
	 * @param vo
	 * @return
	 */
	Page<PlanBillQueryDTO> pagePlanBillData(TransportPlanQueryVO vo);

	/**
	 * 周日历计划单查询
	 *
	 * @param vo
	 * @return
	 */
	List<PlanBillCalendarDTO> queryWeekPlanBillData(TransportPlanQueryVO vo);

	/**
	 * 月日历计划单查询
	 *
	 * @param vo
	 * @return
	 */
	List<PlanBillCalendarDTO> queryMonthPlanBillData(TransportPlanQueryVO vo);


	/**
	 * 计划单详情查询
	 *
	 * @param vo
	 * @return
	 */
	PlanBillViewQueryDTO queryPlanBillViewData(TransportPlanQueryVO vo);

	/**
	 * 计划单运单明细详情查询
	 *
	 * @param vo
	 * @return
	 */
	List<PlanBillDetailDTO> queryPlanBillDetailViewData(TransportPlanQueryVO vo);

	/**
	 * 所有计划单导出
	 *
	 * @param
	 * @return
	 */
	List<PlanBillExportDTO> export(TransportPlanQueryVO vo) throws Exception;

	/**
	 * 计划单分页导出
	 *
	 * @param
	 * @return
	 */
	List<PlanBillExportDTO> exportPage(TransportPlanQueryVO vo) throws Exception;

	/**
	 * 计划单选择行导出
	 *
	 * @param
	 * @return
	 */
	List<PlanBillExportDTO> exportSelected(List<String> planBillIds)  throws Exception;

}
