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

import com.prolog.cs.biz.inbound.dto.PageParam;
import com.prolog.cs.biz.inbound.dto.rcv.RcvHAndPDTO;
import com.prolog.cs.biz.inbound.dto.rcv.RcvHDTO;
import com.prolog.cs.biz.inbound.dto.rqc.RqcReDTO;
import com.prolog.cs.biz.inbound.dto.rqc.RqcReHeadersDTO;
import com.prolog.cs.biz.inbound.dto.task.TaskQcRecheckDetailDTO;
import com.prolog.cs.biz.inbound.vo.RcvQueryVO;
import com.prolog.cs.biz.inbound.vo.RqcHQueryVO;
import com.prolog.cs.biz.inbound.vo.TaskQcDQueryVO;
import com.prolog.cs.biz.inbound.vo.task.TaskQcDetailQueryVO;
import com.prolog.framework.core.pojo.Page;

import java.util.List;

/**
 * @Description
 * @Date 2021-04-02
 */

public interface RqcReHeadersService {

	/**
	 * @Description
	 * @Date 2021-04-02 add RqcReHeadersDTO
	 */
	public Object add(RqcReHeadersDTO rqcReHeadersDTO);

	/**
	 * @Description
	 * @Date 2021-04-02 edit RqcReHeadersDTO
	 */
	public Object edit(String pkId, RqcReHeadersDTO rqcReHeadersDTO);

	/**
	 * @Description
	 * @Date 2021-04-02 delete RqcReHeadersDTO
	 */
	public Object deletePkId(String pkId);

	/**
	 * @Description
	 * @Date 2021-04-02 delete RqcReHeadersDTO
	 */
	public Object delIds(List<String> pkIdList);

	/**
	 * @Description
	 * @Date 2021-04-02 page condition search RqcReHeadersDTO
	 */
	public Page<RqcReHeadersDTO> findList(RqcReHeadersDTO rqcReHeadersDTO, PageParam pageParam);

	/**
	 * @Description
	 * @Date 2021-04-02 batchAdd RqcReHeadersDTO
	 */
	public Object batchAdd(List<RqcReHeadersDTO> rqcReHeadersDTOList);

	/**
	 * @Description
	 * @Date 2021-04-02 batchEdit RqcReHeadersDTO
	 */
	public Object batchEdit(List<RqcReHeadersDTO> rqcReHeadersDTOList);

	/**
	 * @Description
	 * @Date 2021-04-02 condition search all RqcReHeadersDTO
	 */
	public List<RqcReHeadersDTO> findAll(RqcReHeadersDTO rqcReHeadersDTO);

	/**
	 * @Description
	 * @Date 2021-04-02 findOne RqcReHeadersDTO
	 */
	public RqcReHeadersDTO findByPkId(String pkId);

	public Page<TaskQcRecheckDetailDTO> extractRqcReTask(TaskQcDQueryVO taskQcDQueryVO, PageParam pageParam);

	public Object addWithRelated(RqcReDTO rqcReDTO);

	public Page<RcvHAndPDTO> extractRcvH(RcvQueryVO rcvQueryVO, PageParam pageParam);

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

	Page<TaskQcRecheckDetailDTO> extractRqcReTask(TaskQcDetailQueryVO taskQcDetailQueryVO);

	public Page<RqcReHeadersDTO> findList(RqcHQueryVO rqcHQueryVO, PageParam pageParam);

}
