package com.prolog.cs.biz.inbound.service.failure;

import com.prolog.cs.biz.inbound.dto.PageParam;
import com.prolog.cs.biz.inbound.dto.failure.*;
import com.prolog.cs.biz.inbound.dto.rcv.RcvHDTO;
import com.prolog.cs.biz.inbound.dto.task.TaskExceptionDetailDTO;
import com.prolog.cs.biz.inbound.vo.RcvQueryVO;
import com.prolog.cs.biz.inbound.vo.task.TaskQueryVO;
import com.prolog.framework.core.pojo.Page;

import java.util.List;

/**
 * @Description
 * @Date 2021-03-24
 */

public interface ExceptionHeadersService {

	/**
	 * @Description
	 * @Date 2021-03-24 add ExceptionHeadersDTO
	 */
	public Object add(ExceptionHeadersDTO exceptionHeadersDTO);

	/**
	 * @Description
	 * @Date 2021-03-24 edit ExceptionHeadersDTO
	 */
	public Object edit(String pkId, ExceptionHeadersDTO exceptionHeadersDTO);

	/**
	 * @Description
	 * @Date 2021-03-24 delete ExceptionHeadersDTO
	 */
	public Object deletePkId(String pkId);

	/**
	 * @Description
	 * @Date 2021-03-24 delete ExceptionHeadersDTO
	 */
	public Object delIds(List<String> pkIdList);

	/**
	 * @Description
	 * @Date 2021-03-24 page condition search ExceptionHeadersDTO
	 */
	public Page<ExceptionHeadersDTO> findList(ExceptionHeadersDTO exceptionHeadersDTO, PageParam pageParam);

	/**
	 * @Description
	 * @Date 2021-03-24 batchAdd ExceptionHeadersDTO
	 */
	public Object batchAdd(List<ExceptionHeadersDTO> exceptionHeadersDTOList);

	/**
	 * @Description
	 * @Date 2021-03-24 batchEdit ExceptionHeadersDTO
	 */
	public Object batchEdit(List<ExceptionHeadersDTO> exceptionHeadersDTOList);

	/**
	 * @Description
	 * @Date 2021-03-24 condition search all ExceptionHeadersDTO
	 */
	public List<ExceptionHeadersDTO> findAll(ExceptionHeadersDTO exceptionHeadersDTO);

	/**
	 * @Description
	 * @Date 2021-03-24 findOne ExceptionHeadersDTO
	 */
	public ExceptionHQueryDTO findByPkId(String pkId);

	public Object addWithRelated(ExceptionCascadeDTO cascadeDTO);

	/**
	 * 条件分页查询
	 * 
	 * @param queryVO
	 * @return
	 */
	public Page<ExceptionHQueryDTO> findPage(ExceptionHQueryVO queryVO);

	public Page<TaskExceptionDetailDTO> extractTask(TaskQueryVO taskQueryVO, PageParam pageParam);

	public Page<RcvHDTO> extractRcvHAndPro(RcvQueryVO rcvQueryVO, PageParam pageParam);

	public Object rejectLotNo(List<ExceptionLinesDTO> exceptionLineList);

	public Object cancel(List<ExceptionLinesDTO> exceptionLineList);

	public Object hasInstock(String batchIdOld, String warehouseId);
}
