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

import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProcessCell;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProduceSnExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.RepairRequestModel;
import cn.estsh.i3plus.pojo.mes.bean.MesDefect;
import io.swagger.annotations.ApiOperation;

import java.util.List;
import java.util.Map;

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

    /**
     * 扫描条码验证
     * @param serialNumber 过程条码
     * @param organizeCode 工作代码
     * @return 条码信息
     */
    @ApiOperation(value = "扫描条码验证", notes = "扫描条码验证")
    Map<String, Object> doCheckSerialNumberExt(String serialNumber, String organizeCode, String workCenterCode);

    /**
     * 扫描条码验证
     * @param serialNumber 过程条码
     * @param organizeCode 工作代码
     * @return 条码信息
     */
    @ApiOperation(value = "扫描条码验证", notes = "扫描条码验证")
    MesProduceSnExt doCheckSerialNumber(String serialNumber, String organizeCode, String workCenterCode);

    /**
     * 获取不良信息中的数据
     * @param organizeCode 工作代码
     * @return 不良信息集合
     */
    @ApiOperation(value = "获取不良信息中的数据", notes = "获取不良信息中的数据")
    Map<String,List<MesDefect>> findMesDefect(String organizeCode);

    /**
     * 新增不良明细数据
     * @param repairRequestModel 工位不良信息
     * @return
     */
    @ApiOperation(value = "新增不良明细数据", notes = "新增不良明细数据")
    void insertMesBadCellAndDetail(RepairRequestModel repairRequestModel);

    /**
     * 解冻
     * @param repairRequestModel 工位不良信息
     * @return
     */
    @ApiOperation(value = "解冻", notes = "解冻")
    void doUnfreeze(RepairRequestModel repairRequestModel);

    /**
     * 获取工位工序关系的数据
     * @param organizeCode 工厂
     * @param workCenterCode 产线代码
     * @param workCellCode 工位代码
     * @return 工位工序关系信息
     */
    @ApiOperation(value = "获取工位工序关系的数据", notes = "获取工位工序关系的数据")
    MesProcessCell getMesProcessCell(String workCenterCode, String workCellCode, String organizeCode);
}
