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.TaskRejectedDetailDTO;
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 TaskRejectedDetailService {

	/**
	 * @Description
	 * @Date 2021-03-24 add TaskRejectedDetailDTO
	 */
	public Object add(TaskRejectedDetailDTO taskRejectedDetailDTO);

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

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

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

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

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

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

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

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

	/**
	 * 收货拒收
	 * @param rcvLinesDTO
	 * @param warehouseId 
	 * @param mtlOwnerId 
	 * @param isAuto 
	 * @return
	 */
	public Object excuteTask(List<RcvLinesDTO> rcvLinesDTO, String mtlOwnerId, String warehouseId, boolean isAuto);

	/**
	 * 质检拒收
	 * @param rqcLinesList
	 * @param isAuto 
	 * @return
	 */
	public Object excuteTask2(List<RqcLinesDTO> rqcLinesList, boolean isAuto);

	/**
	 * 验收拒收
	 * @param rqcLinesList
	 * @param isAuto
	 * @return
	 */
	public Object excuteTask3(List<RqcLinesDTO> rqcLinesList, boolean isAuto);

	/**
	 * 复检1拒收
	 * @param rqcRechekLinesList
	 * @return
	 */
	public Object excuteTask33(List<RqcRechekLinesDTO> rqcRechekLinesList);

	/**
	 * 复检1拒收
	 * @param rqcReLinesList
	 * @param isAuto
	 * @param regValue
	 * @return
	 */
	public Object excuteTask3(List<RqcReLinesDTO> rqcReLinesList, boolean isAuto, String regValue, String warehouserId);

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

	public Page<TaskRejectedDetailDTO> extractTaskWithNativeSql(TaskQueryVO queryVO, PageParam pageParam);
}
