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

import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesCellEquipContext;
import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesEquipSpotCheckContext;
import cn.estsh.i3plus.pojo.mes.bean.*;
import io.swagger.annotations.ApiOperation;

import java.util.List;

public interface IMesEquipmentExtService {

    @ApiOperation(value = "根据生产线代码,工位代码查询工位设备集合")
    List<MesCellEquipContext> getCellEquipmentList(String organizeCode, String workCenterCode, String workCellCode);

    @ApiOperation(value = "根据生产线代码,工位代码查询工位设备集合")
    List<MesWcEquipment> getWcEquipmentList(String organizeCode, String workCenterCode, String workCellCode);

    @ApiOperation(value = "根据生产线代码,工位代码查询工位设备")
    MesWcEquipment getWcEquipment(String organizeCode, String workCenterCode, String workCellCode);

    @ApiOperation(value = "根据设备变量配置类型查询设备数据变量接口逻辑集合")
    List<MesEquipmentVariableCfg> getEquipmentVariableCfgList(String organizeCode, String variableCfgType);

    @ApiOperation(value = "根据设备代码,变量类型查询设备数据变量集合")
    List<MesEquipmentVariable> getEquipmentVariableList(String organizeCode, String equipmentCode, Integer variableType);

    @ApiOperation(value = "根据设备代码查询设备通道集合")
    List<MesEquipmentChannel> getEquipmentChannelList(String organizeCode, String equipmentCode);

    @ApiOperation(value = "根据设备代码查询生产设备信息")
    MesEquipment getMesEquipment(String organizeCode, String equipmentCode);

    @ApiOperation(value = "根据设备数据变量ID集合查询设备数据变量信息")
    List<MesEquipmentVariable> getEquipmentVariableList(String organizeCode, List<Long> equipVariableIdList);

    @ApiOperation(value = "根据设备代码和设备变量ID查询设备变量")
    MesEquipmentVariable getMesEquipmentVariable(String organizeCode, String equipmentCode,long equipmentVariableId);

    @ApiOperation(value = "根据设备代码和通道查询设备通道信息")
    MesEquipmentChannel getMesEquipmentChannel(String organizeCode, String equipmentCode,String channel);

    @ApiOperation(value = "根据ID查询设备信息")
    MesEquipment getMesEquipmentByEquipId(String organizeCode, Integer equipId);

    @ApiOperation(value = "根据设备代码查询设备点检上下文")
    MesEquipSpotCheckContext getEquipSpotCheckContext(String organizeCode, String workCenterCode, String equipmentCode);

    @ApiOperation(value = "根据设备代码查询加工不可用规则信息")
    List<MesProdRuleIgnoreCfg> getProdRuleIgnoreCfgListByEquip(String organizeCode, String equipmentCode);

    @ApiOperation(value = "根据设备代码集合查询加工不可用规则信息")
    List<MesProdRuleIgnoreCfg> getProdRuleIgnoreCfgListByWcEquips(String organizeCode, List<MesWcEquipment> wcEquipmentList);

    @ApiOperation(value = "根据设备代码集合查询加工不可用规则信息")
    List<MesProdRuleIgnoreCfg> getProdRuleIgnoreCfgListByEquips(String organizeCode, List<String> equipmentCodeList);

    @ApiOperation(value = "根据生产线代码查询加工不可用规则信息")
    List<MesProdRuleIgnoreCfg> getProdRuleIgnoreCfgListByCenter(String organizeCode, String workCenterCode);

    @ApiOperation(value = "根据工位代码查询加工不可用规则信息")
    List<MesProdRuleIgnoreCfg> getProdRuleIgnoreCfgListByCell(String organizeCode, String workCenterCode, String workCellCode);

    @ApiOperation(value = "根据设备代码, 来源信息查询加工不可用规则信息")
    List<MesProdRuleIgnoreCfg> getProdRuleIgnoreCfgList(String organizeCode, String equipmentCode, Integer dataSource, Long sourceId);

}
