package com.prolog.rdc.tms.app.service.business;

import java.util.Date;
import java.util.List;

import com.prolog.framework.core.pojo.Page;
import com.prolog.product.core.framework.entity.UserEntity;
import com.prolog.rdc.tms.app.model.dto.business.DispatchCheckQueryDTO;
import com.prolog.rdc.tms.app.model.dto.business.SendCarQueryDTO;
import com.prolog.rdc.tms.app.model.vo.SendCarUndoAuditVO;
import com.prolog.rdc.tms.app.model.vo.business.SendCarDeleteDetailVO;
import com.prolog.rdc.tms.app.model.vo.business.SendCarQueryVO;
import com.prolog.rdc.tms.app.model.vo.business.ShipbillQueryVO;

/**
 * 已派车服务层
 *
 * @author zhangsj
 * @since 2022-04-13 14:32:31
 */
public interface SendCarService {

	/**
	 * 已派车查询
	 * 
	 * @param sendCarVO
	 * @return
	 */
	Page<SendCarQueryDTO> loadingBillQuery(SendCarQueryVO sendCarVO);

	/**
	 * 已派车运单撤销
	 * 
	 * @param ids
	 */
	void sendcarUndoData(List<String> ids);

	/**
	 * 已派车审核
	 * 
	 * @param ids
	 */
	void sendcarAuditData(List<String> ids);

	/**
	 * 自动已派车审核
	 *
	 * @param ids
	 */
	void autoSendcarAuditData(List<String> ids, UserEntity user, Date date);

	/**
	 * 运单查询
	 *
	 * @param shipbillQueryVO
	 */
	Page<DispatchCheckQueryDTO> shipbillQuery(ShipbillQueryVO shipbillQueryVO);

	/**
	 * 已派车配载运单剔除
	 *
	 * @param sendCarDeleteDetailVO
	 */
	void deleteDetailSendCarData(SendCarDeleteDetailVO sendCarDeleteDetailVO);

	/**
	 * 反审核
	 *
	 * @param vo
	 */
	void undoAuditSendCarData(SendCarUndoAuditVO sendCarUndoAuditVO);
}
