public async Task <IActionResult> CompletePart(int?id) { var entity = _context.Workstations .Include(w => w.CurrentUser) .Include(w => w.CurrentUnit).Include(u => u.CurrentUnit.UnitType) .FirstOrDefaultAsync(w => w.ID == id).Result; DateTime workStart = _context.UnitLogs.Where(u => u.Unit == entity.CurrentUnit).OrderByDescending(u => u.EventDate).First(u => u.Event == "CHECKIN").EventDate; DateTime unitStart = _context.UnitLogs.Where(u => u.Unit == entity.CurrentUnit).OrderBy(u => u.EventDate).First().EventDate; double valueAdd = TimeDifference(workStart); double completionTime = TimeDifference(unitStart); double eff = completionTime / entity.CurrentUnit.UnitType.StandardRate; var newLog = new UnitLog { ApplicationUser = entity.CurrentUser, Unit = entity.CurrentUnit, Workstation = entity, EventDate = DateTime.Now, ValueAddedTime = valueAdd, CompletionTime = completionTime, Efficiency = eff, Event = "COMPLETE" }; await _context.AddAsync(newLog); entity.CurrentUnit = null; _context.SaveChanges(); return(RedirectToAction("Index")); }
public async Task <IActionResult> RemoveHold(WorkstationKioskViewModel model) { var userTry = _context.Users.Where(u => u.Email == model.ApplicationUser.Email).FirstOrDefault(); if (userTry.UserRole == "QA" && userTry != null) { var entity = _context.Workstations .Include(w => w.CurrentUser) .Include(w => w.CurrentUnit) .FirstOrDefaultAsync(w => w.ID == model.Workstation.ID).Result; DateTime holdStart = _context.UnitLogs.Where(u => u.Unit == entity.CurrentUnit).OrderByDescending(u => u.EventDate).First(u => u.Event == "QA HOLD").EventDate; double nonValueAdd = TimeDifference(holdStart); var newLog = new UnitLog { ApplicationUser = entity.CurrentUser, Unit = entity.CurrentUnit, Workstation = entity, EventDate = DateTime.Now, NonValueAddedTime = nonValueAdd, Event = "GREEN TAG" }; await _context.AddAsync(newLog); entity.CurrentUnit.QA = false; _context.SaveChanges(); return(RedirectToAction("Index")); } return(RedirectToAction("Index")); }
public async Task <IActionResult> HoldPart(int?id) { var entity = _context.Workstations .Include(w => w.CurrentUser) .Include(w => w.CurrentUnit) .FirstOrDefaultAsync(w => w.ID == id).Result; DateTime workStart = _context.UnitLogs.Where(u => u.Unit == entity.CurrentUnit).OrderByDescending(u => u.EventDate).First(u => u.Event == "CHECKIN").EventDate; double valueAdd = TimeDifference(workStart); var newLog = new UnitLog { ApplicationUser = entity.CurrentUser, Unit = entity.CurrentUnit, Workstation = entity, EventDate = DateTime.Now, ValueAddedTime = valueAdd, Event = "QA HOLD" }; await _context.AddAsync(newLog); entity.CurrentUnit.QA = true; _context.SaveChanges(); return(RedirectToAction("Index")); }
/// <summary> /// 记录,收到的消息会丢失换行 /// </summary> /// <param name="key"></param> /// <param name="text"></param> public void UnitLog(String key, String text) { if (String.IsNullOrWhiteSpace(key) || String.IsNullOrWhiteSpace(text)) { return; } UnitLog unitLog = new UnitLog { Time = DateTimeOffset.Now.ToUnixTimeSeconds(), Key = key, Text = text }; this.UnitLogQueue.Enqueue(unitLog); }
public async Task <IActionResult> CheckInPart([Bind("ID,UnitNumber")] Unit unit) { var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); var UnitHistory = _context.Units.Any(u => u.UnitNumber == unit.UnitNumber); if (UnitHistory == false) { unit.UnitType = _context.UnitTypes.Where(u => u.Prefix == unit.UnitNumber.Substring(0, 4)).FirstOrDefault(); _context.Workstations.Where(w => w.CurrentUser.Id == userId).FirstOrDefault().CurrentUnit = unit; if (ModelState.IsValid) { _context.Add(unit); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View()); } var workstation = _context.Workstations .Include(w => w.CurrentUser) .Include(w => w.CurrentUnit) .FirstOrDefaultAsync(w => w.CurrentUser.Id == userId).Result; var startedUnit = _context .Units .Include(u => u.UnitType) .Where(u => u.UnitNumber == unit.UnitNumber).FirstOrDefault(); DateTime workStart = _context.UnitLogs.Where(u => u.Unit == startedUnit).OrderByDescending(u => u.EventDate).First(u => u.Event == "CHECKOUT").EventDate; double nonValueAdd = TimeDifference(workStart); var newLog = new UnitLog { ApplicationUser = workstation.CurrentUser, Unit = startedUnit, Workstation = workstation, EventDate = DateTime.Now, InventoryTime = nonValueAdd, Event = "CHECKIN" }; _context.Workstations.Where(w => w.CurrentUser.Id == userId).FirstOrDefault().CurrentUnit = startedUnit; await _context.AddAsync(newLog); _context.SaveChanges(); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> CreateLog(WorkstationKioskViewModel model, string logEvent) { UnitLog unitLog = new UnitLog { ApplicationUser = model.ApplicationUser, Unit = model.Workstation.CurrentUnit, Workstation = model.Workstation, EventDate = DateTime.Now, Event = logEvent }; await _context.AddAsync(unitLog); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); }
public UnitLog SaveUnitLog(UnitLog unitLog) { _unitLogsRepository.SaveOrUpdate(unitLog); return(unitLog); }
public async Task <UnitLog> SaveUnitLogAsync(UnitLog unitLog, CancellationToken cancellationToken = default(CancellationToken)) { return(await _unitLogsRepository.SaveOrUpdateAsync(unitLog, cancellationToken)); }