private void RefreshOnlineInfo(Machines machine, DbTableDbContext db) { DateTime now = DateTime.Now; DeviceStatus roomStatus = GlobalVariable.deviceStatusList.Find(item => item.RoomID == machine.RoomID); if (roomStatus == null) { FactoryRoom tempRoom = db.FactoryRoom.Find(machine.RoomID); roomStatus = new DeviceStatus() { FactoryName = tempRoom.FactoryName, MachineCount = tempRoom.MachineCount, RoomID = machine.RoomID, RoomName = machine.RoomName, MachineList = new System.Collections.Generic.Dictionary <string, DateTime>() }; roomStatus.MachineList.Add(machine.Number, now); GlobalVariable.deviceStatusList.Add(roomStatus); } else { if (roomStatus.MachineList.ContainsKey(machine.Number)) { roomStatus.MachineList[machine.Number] = now; } else { roomStatus.MachineList.Add(machine.Number, now); } LastHeartBreak tempHeart = db.LastHeartBreak.FirstOrDefault(item => item.MachineId == machine.ID); db.LastHeartBreak.Attach(tempHeart); tempHeart.DateRefresh = now; db.SaveChanges(); } }
public byte[] HandlerClientData(byte[] buff) { byte[] buffResp = { 0 }; DbTableDbContext db = new DbTableDbContext(); ProductInfo outInfo = this.DecodeData(buff); Models.ProductInfo lastInfo = db.ProductInfo.OrderByDescending(tmpItem => tmpItem.ID).FirstOrDefault(item => item.MachineId == outInfo.MachineId); Machines machine = db.Machines.Find(outInfo.MachineId); Models.ProductInfo innerInfo = this.exchangeData(outInfo, machine); //记录原始数据 db.ProductInfo.Add(innerInfo); db.SaveChanges(); //记录统计表 if (outInfo.MsgStatus == enumProductType.LoginOut) { if (lastInfo == null || lastInfo.MsgType != (byte)enumProductType.LoginIn) { db.RecordErrorInfo(enumSystemErrorCode.ProductOutWithoutIn, innerInfo.ToString(), null); return(buffResp); } if (lastInfo.staffNumber != outInfo.StaffNumber) { db.RecordErrorInfo(enumSystemErrorCode.ProductOutInDiff, lastInfo.ToString() + "\r\n" + innerInfo.ToString(), null); } int currentFinishCount = (outInfo.ChannelFinish1 + outInfo.ChannelFinish2 + outInfo.ChannelFinish3 + outInfo.ChannelFinish4 + outInfo.ChannelFinish5 + outInfo.ChannelFinish6 - lastInfo.ChannelFinish1 - lastInfo.ChannelFinish2 - lastInfo.ChannelFinish3 - lastInfo.ChannelFinish4 - lastInfo.ChannelFinish5 - lastInfo.ChannelFinish6); RecordStatisticsInfo(lastInfo, innerInfo.ID, outInfo, machine, currentFinishCount, db); } buffResp[0] = 0; return(buffResp); }
public byte[] HandlerClientData(byte[] buff) { DbTableDbContext db = new DbTableDbContext(); db.RecordErrorInfo(enumSystemErrorCode.TcpDefaultHandlerErr, "", buff); return(null); }
public byte[] HandlerClientData(byte[] buff) { int resInt = 0, machineId = 0; byte[] byteResp = { 0, 0, 0 }; DbTableDbContext db = new DbTableDbContext(); DeviceSetting outInfo = this.DecodeData(buff); FactoryRoom tempRoom = db.FactoryRoom.FirstOrDefault(item => item.RoomNumber == outInfo.RoomNumber); Machines tempMachine = db.Machines.FirstOrDefault(item => item.Number == outInfo.DeviceNumber); Machines innerInfo; if (outInfo.DeviceId < 1) { resInt = tempRoom == null ? 3 : (tempMachine != null ? 4 : 0); if (resInt != 0) { byteResp[0] = (byte)resInt; return(byteResp); } innerInfo = this.exchangeData(tempRoom, outInfo); db.FactoryRoom.Attach(tempRoom); tempRoom.MachineCount += 1; //记录原始数据 db.Machines.Add(innerInfo); //最近心跳设备记录 db.LastHeartBreak.Add(new LastHeartBreak() { DateRefresh = DateTime.Now, FactoryName = tempRoom.FactoryName, MachineId = innerInfo.ID, RoomID = tempRoom.RoomID, RoomName = tempRoom.RoomName, MachineName = outInfo.DeviceNumber }); } else { innerInfo = db.Machines.FirstOrDefault(item => (item.IpAddress == outInfo.IPAddress || item.Number == outInfo.DeviceNumber) && item.ID != outInfo.DeviceId); if (innerInfo != null) { byteResp[0] = (byte)4; return(byteResp); } innerInfo = db.Machines.Find(outInfo.DeviceId); db.Machines.Attach(innerInfo); this.exchangeData(innerInfo, tempRoom, outInfo); machineId = innerInfo.ID; } db.SaveChanges(); machineId = innerInfo.ID; //生成返回结果 byte[] byteID = ConvertHelper.Int16ToBytes(machineId, true); Array.Copy(byteID, 0, byteResp, 1, 2); return(byteResp); }
public byte[] HandlerClientData(byte[] buff) { DbTableDbContext db = new DbTableDbContext(); HeartBreak outInfo = this.DecodeData(buff); Machines machine = db.Machines.Find(outInfo.MachineId); Models.HeartBreak innerInfo = this.exchangeData(outInfo, machine); //记录原始数据 db.HeartBreak.Add(innerInfo); //记录设备状态 RefreshOnlineInfo(machine, db); db.SaveChanges(); byte[] resp = {}; return(resp); }
public byte[] HandlerClientData(byte[] buff) { byte[] buffResp = { 1 }; DbTableDbContext db = new DbTableDbContext(); try { DateTime currentTime = DateTime.Now; DeviceStartEnd outInfo = this.DecodeData(buff); Machines machine = db.Machines.Find(outInfo.MachineId); Schedules schedule = db.Schedules.FirstOrDefault(item => item.Number == outInfo.ScheduleNumber); UserProfile userInfo = new UsersContext().UserProfiles.FirstOrDefault(item => item.UserName == outInfo.UserNumber); MachineStartEnd innerInfo = this.exchangeData(outInfo, machine, schedule, userInfo); //记录原始数据 if (outInfo.Status == enumDeviceWorkStatus.Start) { innerInfo.DateStart = currentTime; db.MachineStartEnd.Add(innerInfo); } else { MachineStartEnd lastRecord = db.MachineStartEnd.FirstOrDefault(item => item.MachineId == outInfo.MachineId && item.SchueduleNumber == outInfo.ScheduleNumber && item.UserNumber == outInfo.UserNumber && item.Status == enumDeviceWorkStatus.Start); if (lastRecord == null) { innerInfo.DateEnd = currentTime; db.MachineStartEnd.Add(innerInfo); } else { db.MachineStartEnd.Attach(lastRecord); lastRecord.DateEnd = currentTime; lastRecord.Status = enumDeviceWorkStatus.End; } } db.SaveChanges(); buffResp[0] = 0; } catch { } return(buffResp); }
public byte[] HandlerClientData(byte[] buff) { byte[] buffResp = { 1 }; DbTableDbContext db = new DbTableDbContext(); try { int outInfo = this.DecodeData(buff); Machines machine = db.Machines.Find(outInfo); MachineReport innerInfo = this.exchangeData(machine); //记录原始数据 db.MachineReport.Add(innerInfo); db.SaveChanges(); buffResp[0] = 0; } catch { } return(buffResp); }
public byte[] HandlerClientData(byte[] buff) { byte[] buffResp = { 1 }; DbTableDbContext db = new DbTableDbContext(); try { DeviceMaterial outInfo = this.DecodeData(buff); Machines machine = db.Machines.Find(outInfo.MachineId); Schedules schedule = db.Schedules.FirstOrDefault(item => item.Number == outInfo.ScheduleNumber); MachineCallMaterial innerInfo = this.exchangeData(machine, schedule); //记录原始数据 db.MachineCallMaterial.Add(innerInfo); db.SaveChanges(); buffResp[0] = 0; } catch { } return(buffResp); }
private void RecordStatisticsInfo(Models.ProductInfo lastInfo, int currInfoId, ProductInfo outInfo, Machines machine, int finishCount, DbTableDbContext db) { Schedules tempSchedule = db.Schedules.First(item => item.Number == outInfo.ScheduleNumber); StatisticInfo statistics = new StatisticInfo() { ProductIdStart = lastInfo.ID, DateStart = lastInfo.DateCreate, ProductIdOut = currInfoId, DateOut = DateTime.Now, ExceptionCount = outInfo.UnusualCount, FinishCount = finishCount, MachineId = machine.ID, MachineName = machine.Name, OrderNumber = tempSchedule.OrderNumber, ScheduleID = tempSchedule.ID, ScheduleNumber = tempSchedule.Number, StaffName = outInfo.StaffName, StaffNumber = outInfo.StaffNumber, RoomID = machine.RoomID, RoomName = machine.RoomName, Factory = "振德敷料" }; db.Statistics.Add(statistics); //施工单生产记录 db.Schedules.Attach(tempSchedule); tempSchedule.FinishCount += finishCount; tempSchedule.Status = tempSchedule.FinishCount >= tempSchedule.ProductCount ? enumStatus.Finished : enumStatus.Working; //订单生产记录 Orders tempOrder = db.Orders.Find(tempSchedule.OrderId); db.Orders.Attach(tempOrder); tempOrder.ProductFinishedCount += finishCount; tempOrder.Status = tempOrder.ProductFinishedCount >= tempOrder.ProductCount ? enumStatus.Finished : enumStatus.Working; db.SaveChanges(); }