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

import com.prolog.cs.biz.inbound.dto.PageParam;
import com.prolog.cs.biz.inbound.dto.rcv.RcvHDTO;
import com.prolog.cs.biz.inbound.dto.rcv.RcvLinesDTO;
import com.prolog.cs.biz.inbound.dto.rqc.RqcLinesDTO;
import com.prolog.cs.biz.inbound.dto.rqc.RqcReLinesDTO;
import com.prolog.cs.biz.inbound.dto.rqc.RqcRechekLinesDTO;
import com.prolog.cs.biz.inbound.dto.task.TaskQcRecheckDetailDTO;
import com.prolog.cs.biz.inbound.model.task.TaskQcRecheckDetail;
import com.prolog.cs.biz.inbound.vo.RcvQueryVO;
import com.prolog.cs.biz.inbound.vo.task.TaskQcDetailQueryVO;
import com.prolog.framework.core.pojo.Page;

import java.util.List;

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

public interface TaskQcRecheckDetailService {

	/**
 	* @Description   
 	* @Date 2021-03-24 
 	* add TaskQcRecheckDetailDTO 
 	*/
	public Object add(TaskQcRecheckDetailDTO taskQcRecheckDetailDTO);

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

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

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

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

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

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

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

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

	/**
	 * 质检入复检
	 * @param rqcLinesList
	 * @param isAuto 
	 * @return
	 */
	public Object excuteTask(List<RqcLinesDTO> rqcLinesList, boolean isAuto, String regValue, String warehouserId);

	/**
	 * 二次复检
	 * @param rqcRechekLinesList
	 * @param times
	 * @return
	 */
	public Object excuteTask22(List<RqcRechekLinesDTO> rqcRechekLinesList, int times);
	/**
	 * 二次复检
	 * @param rqcRechekLinesList
	 * @param times
	 * @return
	 */
	public Object excuteTask2(List<RqcReLinesDTO> rqcReLinesList, int times);

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

	public Page<TaskQcRecheckDetailDTO> extractTaskWithNativeSql(TaskQcDetailQueryVO taskQcDetailQueryVO);

	public Object excuteTask(List<RcvLinesDTO> list, String mtlOwnerId, String warehouseId, boolean isAuto);

	/**
	 * 依据id列表查询数据
	 *
	 * @param ids
	 * @return
	 */
	List<TaskQcRecheckDetail> findByIds(List<String> ids);

}
