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

import com.prolog.cs.biz.inbound.dto.PageParam;
import com.prolog.cs.biz.inbound.dto.rqc.RcvLineResult;
import com.prolog.cs.biz.inbound.dto.rqc.RqcHeadersDTO;
import com.prolog.cs.biz.inbound.dto.rqc.RqcLinesDTO;
import com.prolog.cs.biz.inbound.vo.RqcDQueryVO;
import com.prolog.framework.authority.core.dto.UserDTO;
import com.prolog.framework.core.pojo.Page;

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

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

public interface RqcLinesService {

	/**
 	* @Description   
 	* @Date 2021-03-24 
 	* add RqcLinesDTO 
 	*/
	public Object add(RqcLinesDTO rqcLinesDTO);

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

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

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

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

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

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

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

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

	public Object batchAdd(List<RqcLinesDTO> rqcLinesDTOList, String masterId, UserDTO userDTO, Date now);

	public Page<RqcLinesDTO> findList(RqcDQueryVO rqcDQueryVO);

	public Object batchAdd(List<RqcLinesDTO> rqcLinesDTOList, RqcHeadersDTO rqcHeadersDTO, UserDTO userDTO, Date now, boolean isPad);

	public Object batchAddAuto(List<RqcLinesDTO> rqcLinesDTOList, RqcHeadersDTO rqcHeadersDTO, UserDTO userDTO,
			Date date, boolean isPad);

	Map<RqcLinesDTO,List<RcvLineResult>> recommendRoom(List<RqcLinesDTO> dto) throws Exception;

    void checkRfRqcQty(List<RqcLinesDTO> list);
}
