/// <summary> /// 条码打印请求 /// </summary> /// <param name="_session"></param> /// <param name="_transData"></param> private void ExecutePTR(MesSession _session, TransData _transData) { EmployeeName = "条码打印请求"; //1、参数校验---WorkOrder--------------------------------- string workOrder = string.Empty; if (!EmployeeComm.CheckWorkOrder(_session, _transData, out workOrder, EmployeeName, DataFrom.SQLite)) { return; } if (_transData.DeviceCode == "OP010") { EmployeeName = "产品" + EmployeeName; //2、获取条码 --------------------------------- if (!GetSN(_session, _transData, workOrder)) { return; } //4、开始打印打印 --------------------------------- if (!Print(_session, _transData)) { return; } //5、参数校验---equipmentID--------------------------------- string equipmentID = string.Empty; if (!EmployeeComm.CheckEquipmentID(_session, _transData, out equipmentID, $"EmployeeName <103IN 报工获取设备ID>")) { return; } if (!GlobalData.IsDebug) { //5、首站选择在这里获取条码回来后进行执行报工 EmployeeComm.WorkingEfficiency(_session, _transData, equipmentID, EmployeeName, "103IN"); } } else { EmployeeName = "成品" + EmployeeName; //3、获取条码 --------------------------------- if (!GetFinishSN(_session, _transData, workOrder)) { return; } //4、开始打印打印 --------------------------------- if (!Print(_session, _transData)) { return; } } //5、API执行成功 --------------------------------- EmployeeComm.SendMsg(_session, _transData, CheckResult.OK); }
/// <summary> /// 检验工序过站(值类型) /// </summary> /// <param name="_session"></param> /// <param name="_transData"></param> private void ExecuteTVC(MesSession _session, TransData _transData) { LogInfo log = null; //1、参数校验---EquipmentNumber--------------------------------- string equipmentID = string.Empty; if (!EmployeeComm.CheckEquipmentID(_session, _transData, out equipmentID, EmployeeName)) { return; } //2、参数校验---WorkOrder--------------------------------- string workOrder = string.Empty; if (!EmployeeComm.CheckWorkOrder(_session, _transData, out workOrder, EmployeeName, DataFrom.SQLite)) { return; } //3、参数校验---获取待检验数据并校验有效性 --------------------------------- decimal weight = ConvertHelper.ToDecimal(_transData.ProcessData, 0); if (weight <= 0) { log = new SocketService.LogInfo(_session, LogLevel.Error, $"[{_transData.SN}]执行【{EmployeeName}】之称重检验接口失败>> 协议错误,请检查协议中过程数据是否为有效值(数值需大于0),当前过程数据:{_transData.ProcessData}。"); EmployeeComm.SendMsg(_session, _transData, CheckResult.NG); return; } if (!GlobalData.IsDebug) { //4、执行称重校验 --------------------------------- string apiStatus = string.Empty; CheckWeight(_session, _transData, weight, out apiStatus); //5、执行过站 if (!EmployeeComm.CheckRoute(_session, _transData, workOrder, equipmentID, apiStatus, EmployeeName)) { return; } //5.1、队列方式进行报工(如果记录了不良则无需进行第二次报工,因为记录不良时已经进行第一次报工了) if (apiStatus != "FAIL") { GlobalData.queueServerNDQ.EnqueueItem(new TestItemFlex(_session, _transData, equipmentID, EmployeeName, "103OUT")); } } //6、API执行成功 --------------------------------- EmployeeComm.SendMsg(_session, _transData, CheckResult.OK); }
/// <summary> /// 通用过站 /// </summary> /// <param name="_session"></param> /// <param name="_transData"></param> private void ExecuteNRC(MesSession _session, TransData _transData) { //1、参数校验---equipmentID string equipmentID = string.Empty; if (!EmployeeComm.CheckEquipmentID(_session, _transData, out equipmentID, EmployeeName)) { return; } //2、参数校验---WorkOrder string workOrder = string.Empty; if (_transData.DeviceCode == "OP010") //首站需要校验制令单号 { if (!EmployeeComm.CheckWorkOrder(_session, _transData, out workOrder, $"{EmployeeName}-工单获取", DataFrom.SQLite)) { return; } } //3、参数校验---apiStatus string apiStatus = string.Empty; if (!EmployeeComm.CheckApiStatus(_session, _transData, out apiStatus, EmployeeName)) { return; } if (!GlobalData.IsDebug) { //4、执行过站 if (!EmployeeComm.CheckRoute(_session, _transData, workOrder, equipmentID, apiStatus, EmployeeName)) { return; } //4.1 队列方式进行报工(如果记录了不良则无需进行第二次报工,因为记录不良时已经进行第一次报工了) if (apiStatus != "FAIL") { GlobalData.queueServerNDQ.EnqueueItem(new TestItemFlex(_session, _transData, equipmentID, EmployeeName, "103OUT")); } } //5、API执行成功 --------------------------------- EmployeeComm.SendMsg(_session, _transData, CheckResult.OK); }