using Mesnac.Compressor.Data; using Mesnac.Compressor.Entity; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Mesnac.Compressor.Station { public class FirstStation : Common, IStation { /// /// 只判断是否与计划相同 /// /// /// public bool PrepareWork(StationInfo station) { //主线产品码未扫描到条码下发PLC报警 if (string.IsNullOrEmpty(station.Data.ProductBarcode) || station.Data.ProductBarcode.Equals("ERROR")) { ICSharpCode.Core.LoggingService.Error(station.StationCode + "未收到PLC传递的条码"); this.DaoWeiQingQiuHandle(station, (int)DaoWeiResult.NoBarCode); return false; } ICSharpCode.Core.LoggingService.Error(station.StationCode + ",打印托盘号:"+ station.Data.RFIDNo +",条码号:"+station.Data.ProductBarcode); //未扫描到托盘号也要下发PLC报警 if (string.IsNullOrEmpty(station.Data.RFIDNo) || station.Data.RFIDNo.Equals("A00")) { ICSharpCode.Core.LoggingService.Error(station.StationCode + "未收到PLC传递的托盘号"); this.DaoWeiQingQiuHandle(station, (int)DaoWeiResult.NoBarCode); return false; } if (station.Data.Restart) { //if (string.IsNullOrEmpty(station.Data.ProductBarcode) || station.Data.ProductBarcode.Equals("ERROR")) //{ // ICSharpCode.Core.LoggingService.Error(station.StationCode + "未收到PLC传递的条码"); // this.DaoWeiQingQiuHandle(station, (int)DaoWeiResult.NoBarCode); // return false; //} return Chongtou(station); } //先判断后台开关是否打开在进行逻辑验证 WorkTray tray = new WorkTray(); //这里校验是否与计划匹配,先预留,后期加========== this.DaoWeiQingQiuHandle(station, (int)DaoWeiResult.OK); return true; } public bool HandleData(StationInfo station) { try { station.Data.semibacode = CreatNewSemibarcode(station.barcodeHead, station.lineID); ICSharpCode.Core.LoggingService.Debug("Head:" + station.barcodeHead + "支线ID:" + station.lineID + "生成支线条码:" + station.Data.semibacode +"物料条码:"+ station.Data.ProductBarcode); string mainBarcode = ""; if (station.IfMainline) { //ICSharpCode.Core.LoggingService.Debug("主线"); //创建新的产品 mainBarcode = CreatNewProduct(station); DbHandler db = new DbHandler(); //查询当前的机种型号,不是机种要具体到型号 string machineID = db.GetNowProductionInfo(); db.InsertTrace(mainBarcode, station.Data.semibacode, machineID); InsertBarcodeRelationShip(station.Data.semibacode, station.Data.ProductBarcode, station.Data.semibacode,1); } base.UpdateTray(station.Data.RFIDNo, mainBarcode, station.Data.semibacode, station.stationID, station.Data.ProductOkNg); ICSharpCode.Core.LoggingService.Debug("更新托盘信息:" + station.Data.RFIDNo + "+" + mainBarcode + "+" + station.Data.semibacode); //保存数据 base.SaveStationData(station, StationType.FirstStation); //FinishSavePLCWork(station); } catch(Exception e) { ICSharpCode.Core.LoggingService.Error(e.ToString()); return false; } finally { //这里要加一个OK放行 FinishSavePLCWork(station); } return true; } } }