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

import com.prolog.cs.biz.inbound.dto.IsSuperviseDTO;
import com.prolog.cs.biz.inbound.dto.Supervise4CargoChange;
import com.prolog.cs.biz.inbound.dto.Supervise4CargoChangeDetail;
import com.prolog.cs.biz.inbound.dto.SuperviseResultDTO;
import com.prolog.cs.biz.inbound.model.SupervisionCode;
import com.prolog.cs.biz.inbound.vo.SupervisionCodeVO;
import com.prolog.framework.core.pojo.Page;

import java.util.List;

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

public interface SupervisionCodeService {

	public SuperviseResultDTO addSupervisionCode(SupervisionCode dto);

	public SuperviseResultDTO addSupervisionCodes(List<SupervisionCode> dtos);

	public SuperviseResultDTO addSupervisionCodeList(List<SupervisionCode> dtos);

	public void delSupervisionCode(List<SupervisionCode> list);

	public void deleteSupervisionCode(String Id);

	public void addSupervisionCodeCore(SupervisionCode dto);

	public SuperviseResultDTO itemsByBill(String refBillId, String refBillLineId);

	public SuperviseResultDTO itemsByBill1(String refBillId, String refBillLineId);

	public SuperviseResultDTO itemsByBillYj(String refBillId, String refBillLineId);

	SuperviseResultDTO findCodesByAllRefBillLineId(SupervisionCodeVO codeVO);

	public void deleteCodesByBill(List<String> refBillLineIds);

	public List<? extends IsSuperviseDTO> isSupervise(List<? extends IsSuperviseDTO> list,Integer stage);

	Page<SupervisionCode> page(SupervisionCode dto, Integer pageSize, Integer pageNum);

	public void addSupervisionCodeAppendList(List<SupervisionCode> dtoList);

	Boolean isSupervised(List<SupervisionCode> list);

	Boolean isSupervisedReject(List<SupervisionCode> list);

	List<Supervise4CargoChange> findCargoChangeList(String cargoChangeBillNo) throws Exception ;

	void addSupervisionCodeCargoChange(Supervise4CargoChangeDetail dtoList);

	Supervise4CargoChangeDetail findCargoChangeDetail(String resultId) throws Exception ;

	public Page<SupervisionCode> querySupervisionCodedList(List<SupervisionCode> supervisionCodeList);

	void delIds(List<String> pkIdList);

    void addSupervisionCodeRqcRF(List<SupervisionCode> list);

    Object batchAdd(List<SupervisionCode> supervisionCodes);

	void checkSupervisionCode(SupervisionCode dto);
}
