using Khd.Core.Domain.Models; using Khd.Core.EntityFramework; namespace Khd.Core.Wcs { public class SystemData { public readonly static int maxTray = 5; private static long _serialNo { get; set; } = 1; private static object serialLock = new object(); public static long GetSerialNo(DefaultDbContext dbContext) { lock (serialLock) { List list = dbContext.WcsTask.Select(t => t.serialNo).ToList(); while (list.Contains(_serialNo)) { _serialNo++; if (_serialNo > 9999) { _serialNo = 1; } } return _serialNo; } } public static object outStockLock = new object(); /// /// 出入库锁定浅库位 /// /// /// public static void LockOutLocation(WmsBaseLocation wmsBaseLocation,DefaultDbContext dbContext) { if (wmsBaseLocation.locDeep == 1) { WmsBaseLocation? wmsLocation = dbContext.WmsBaseLocation.Where(t => t.locDeep == 2 && t.locRow == wmsBaseLocation.locRow && t.locColumn == (wmsBaseLocation.locColumn % 2 == 0 ? wmsBaseLocation.locColumn - 1 : wmsBaseLocation.locColumn + 1)).FirstOrDefault(); if(wmsLocation != null) { wmsLocation.locationStatus = "2"; dbContext.Update(wmsLocation); } } } /// /// 出入库解锁浅库位 /// /// /// public static void UnLockOutLocation(WmsBaseLocation wmsBaseLocation, DefaultDbContext dbContext) { if (wmsBaseLocation.locDeep == 1) { WmsBaseLocation? wmsLocation = dbContext.WmsBaseLocation.Where(t => t.locDeep == 2 && t.locRow == wmsBaseLocation.locRow && t.locColumn == (wmsBaseLocation.locColumn % 2 == 0 ? wmsBaseLocation.locColumn - 1 : wmsBaseLocation.locColumn + 1)).FirstOrDefault(); if (wmsLocation != null) { wmsLocation.locationStatus = "1"; dbContext.Update(wmsLocation); } } } } }