public ActionResult Create(StaffInfo staffInfo) { if (ModelState.IsValid) { IEnumerable <StaffInfo> tempStaff = from item in db.StaffInfo where item.Number == staffInfo.Number select item; if (tempStaff.Count() > 0) { ViewData["error"] = "【工号】 重复"; return(View(staffInfo)); } FactoryRoom roomItem = db.FactoryRoom.Single(item => item.RoomID == staffInfo.DeptId); staffInfo.DeptName = roomItem.RoomName; staffInfo.DeptNumber = roomItem.RoomNumber; //用户资料库 db.StaffInfo.Add(staffInfo); //同步管理账户 WebSecurity.CreateUserAndAccount(staffInfo.Number, staffInfo.Password); db.SaveChanges(); } return(View("Detail", staffInfo)); }
public ActionResult Assign(int id = 0) { Schedules schedules = null; int userId = Convert.ToInt32(Session["UserID"]); using (var t = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted })) { schedules = db.Schedules.Find(id); if (schedules == null) { return(HttpNotFound()); } if (!roomControl.CheckUserInRoom(userId, schedules.RoomId)) { return(RedirectToAction("Login", "Account")); } } db.Schedules.Attach(schedules); schedules.DetailInfo = schedules.DetailInfo == null ? string.Empty : schedules.DetailInfo; schedules.NoticeInfo = schedules.NoticeInfo == null ? string.Empty : schedules.NoticeInfo; byte[] buff = null; App_Start.Coder.EncodeSchedule(schedules, out buff); enumErrorCode result = this.SendScheduleHandler(schedules.MachineId, buff, userId, PRE_INFO_TYPE_CREATE); if (result == enumErrorCode.HandlerSuccess) { schedules.Status = enumStatus.Assigned; db.SaveChanges(); } return(RedirectToAction("Details", new { id = id, error = result })); }
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) { 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(); }
public ActionResult MachineEdit(int id, string Name, string RemarkInfo) { Machines machine = db.Machines.Find(id); db.Machines.Attach(machine); machine.Name = Name; machine.RemarkInfo = RemarkInfo; db.SaveChanges(); string strName = client.Get <string>(PRE_MACHINE_NAME_NUMBER + machine.Number); if (strName != null && strName != string.Empty) { client.Set <string>(PRE_MACHINE_NAME_NUMBER + machine.Number, Name); } return(RedirectToAction("Machines")); }
public JsonResult GetOrderInfo(string order) { JsonResult result = new JsonResult(); using (var t = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted })) { Orders tempCurrentOrder = db.Orders.FirstOrDefault(item => item.OrderNumber == order); if (tempCurrentOrder != null) { result.Data = new { error = ORDER_EXISTS_ERROR }; return(result); } } result.Data = new { error = ORDER_RIGHT_ERROR }; //获取订单数据 List <OrderSystemDetail> orderDetails; if (!this.CheckOrder(order, out orderDetails)) { return(result); } //物料保存 List <string> matList = new List <string>(); bool insertFlag = false; foreach (OrderSystemDetail item in orderDetails) { matList.Add(string.Format(App_Start.Constants.MACHINE_MATERIAL_STRUCTURE, item.Childitemcode, item.ChildnvntryUom, item.Childitemname)); Materials tempMat = db.Materials.FirstOrDefault(m => m.Code == item.Childitemcode); if (tempMat == null) { db.Materials.Add(new Materials() { Code = item.Childitemcode, Unit = item.ChildnvntryUom, DetailInfo = item.Childitemname }); insertFlag = true; } } if (insertFlag) { db.SaveChanges(); } //返回前台显示 OrderSystemDetail orderItem = orderDetails[0]; result.Data = new { orderCode = orderItem.docnum, roomName = orderItem.roomName, roomNumber = orderItem.ocrcode, dateFinish = orderItem.duedate.ToString("yyyy年MM月dd日"), productCode = orderItem.Fatheritemcode, productUnit = orderItem.FatherInvntryUom, productInfo = orderItem.Fatheritemname, materialInfo = matList.ToArray(), detail = orderItem.U_WL_PACK == null ? "" : orderItem.U_WL_PACK, notice = orderItem.U_htyq }; return(result); }