package cn.estsh.i3plus.ext.mes.pcn.api.busi;

import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProduceSnRepair;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * @Author: wangjie
 * @CreateDate: 2021/01/19 15:06 下午
 * @Description:
 **/
public interface IProduceSnRepairService {

    /**
     * 根据工单号,产品条码查询条码返工信息
     * @param organizeCode 组织代码
     * @param serialNumber 产品条码
     * @param workOrderNo  生成工单号
     * @return 条码返工信息
     */
    @ApiOperation(value = "根据工单号,产品条码查询条码返工信息", notes = "根据工单号,产品条码查询条码返工信息")
    MesProduceSnRepair getProduceSnRepairBySnAndOrderNo(String organizeCode, String serialNumber, String workOrderNo);

    /**
     * 根据产品条码查询最新的条码返工信息
     * @param organizeCode 组织代码
     * @param serialNumber 产品条码
     * @return 最新的条码返工信息
     */
    MesProduceSnRepair getProduceSnRepairBySn(String organizeCode, String serialNumber);

    /**
     * 根据工单号查询条码返工信息集合
     * @param organizeCode 组织代码
     * @param workOrderNo  生成工单号
     * @return 条码返工信息集合
     */
    @ApiOperation(value = "根据工单号查询条码返工信息集合", notes = "根据工单号查询条码返工信息集合")
    List<MesProduceSnRepair> getProduceSnRepairListByOrderNo(String organizeCode, String workOrderNo);

    /**
     * 根据产品条码查询条码返工信息集合
     * @param organizeCode 组织代码
     * @param serialNumber  产品条码
     * @return 条码返工信息集合
     */
    @ApiOperation(value = "根据工单号查询条码返工信息集合", notes = "根据工单号查询条码返工信息集合")
    List<MesProduceSnRepair> getProduceSnRepairListBySn(String organizeCode, String serialNumber);

    /**
     * 根据生产工单号,生产日期,班次代码查询条码返工信息集合
     * @param organizeCode 组织代码
     * @param workOrderNo  生成工单号
     * @param workTime  生产日期
     * @param shiftCode  班次代码
     * @return 条码返工信息集合
     */
    @ApiOperation(value = "根据生产工单号,生产日期,班次代码查询条码返工信息集合", notes = "根据生产工单号,生产日期,班次代码查询条码返工信息集合")
    List<MesProduceSnRepair> getProduceSnRepairListByOrderNoAndWorkTime(String organizeCode, String workOrderNo, String workTime, String shiftCode);

}
