From 0756b2664bbd89b229af1494a9ca9cb656bc80f3 Mon Sep 17 00:00:00 2001 From: liuwf Date: Tue, 15 Oct 2024 11:11:58 +0800 Subject: [PATCH] =?UTF-8?q?change-=E5=AE=8C=E5=96=845F=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs | 136 +++++++++++---------- 1 file changed, 72 insertions(+), 64 deletions(-) diff --git a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs index 779e059..db2cd03 100644 --- a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs +++ b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs @@ -2475,7 +2475,7 @@ namespace Khd.Core.Wcs.Wcs .Where(t => t.locRow == row) .Where(t => t.locColumn == location.locColumn) .Where(t => t.warehouseId == location.warehouseId).FirstOrDefault(); - if (!string.IsNullOrEmpty(wmsBaseLocation.containerCode) && wmsBaseLocation.locationStatus == "1") + if ( wmsBaseLocation.locationStatus == "1") { WmsRawStock? wmsRawStock = dbContext.WmsRawStock.FirstOrDefault(t => t.locationCode == wmsBaseLocation.locationCode); if (wmsRawStock != null) @@ -2565,7 +2565,8 @@ namespace Khd.Core.Wcs.Wcs } else { - continue; + // 可以出库 + // continue; } } else if (wmsBaseLocation != null && wmsBaseLocation.locationStatus != "1") @@ -2697,35 +2698,43 @@ namespace Khd.Core.Wcs.Wcs .Where(t => t.locColumn == location.locColumn) .Where(t => t.warehouseId == location.warehouseId).FirstOrDefault(); - if (!string.IsNullOrEmpty(wmsBaseLocation.containerCode) && wmsBaseLocation.locationStatus == "1") + if (wmsBaseLocation.locationStatus == "1") { // 浅库位有库存 WmsRawStock? wmsRawStock = dbContext.WmsRawStock.FirstOrDefault(t => t.locationCode == wmsBaseLocation.locationCode); - - - // 寻找移库目的库位 - WmsBaseLocation? toLocation = null; - - - var moveLocationList = AllWmsBaseLocations.Where(t => t.warehouseId == location.warehouseId) - .Where(t => t.warehouseId != location.locationId) - .Where(t => string.IsNullOrEmpty(t.containerCode) && t.locationStatus == "1").OrderBy(t => t.locDeep).ToList(); - - foreach (WmsBaseLocation itemLocation in moveLocationList) + if (wmsRawStock != null) { + // 寻找移库目的库位 + WmsBaseLocation? toLocation = null; - if (itemLocation.locDeep == 1) + + var moveLocationList = AllWmsBaseLocations.Where(t => t.warehouseId == location.warehouseId) + .Where(t => t.warehouseId != location.locationId) + .Where(t => string.IsNullOrEmpty(t.containerCode) && t.locationStatus == "1").OrderBy(t => t.locDeep).ToList(); + + foreach (WmsBaseLocation itemLocation in moveLocationList) { - bool hasLocation = AllWmsBaseLocations - .Where(t => t.locRow == (itemLocation.locRow % 2 == 1 ? (itemLocation.locRow + 1) : (itemLocation.locRow - 1))) - .Where(t => t.locColumn == itemLocation.locColumn) - .Where(t => t.locationStatus == "1" && string.IsNullOrEmpty(t.containerCode)) - .Any(); - if (!hasLocation) + + if (itemLocation.locDeep == 1) { - Console.WriteLine(DateTime.Now + $":目标库位{toLocation.locationCode}的浅库位库位状态异常,无法移库"); - _logger.Info($"目标库位{toLocation.locationCode}的浅库位库位状态异常,无法移库"); - continue; + bool hasLocation = AllWmsBaseLocations + .Where(t => t.locRow == (itemLocation.locRow % 2 == 1 ? (itemLocation.locRow + 1) : (itemLocation.locRow - 1))) + .Where(t => t.locColumn == itemLocation.locColumn) + .Where(t => t.locationStatus == "1" && string.IsNullOrEmpty(t.containerCode)) + .Any(); + if (!hasLocation) + { + Console.WriteLine(DateTime.Now + $":目标库位{toLocation.locationCode}的浅库位库位状态异常,无法移库"); + _logger.Info($"目标库位{toLocation.locationCode}的浅库位库位状态异常,无法移库"); + continue; + } + else + { + // 找到可以移库的目标库位 + toLocation = itemLocation; + break; + } + } else { @@ -2735,52 +2744,51 @@ namespace Khd.Core.Wcs.Wcs } } - else + if (toLocation == null) { - // 找到可以移库的目标库位 - toLocation = itemLocation; - break; + // TODO : 没有找到可以移库的目标库位,添加报警 + SystemData.InsertWaringLog(dbContext, WaringType.五楼移库任务创建失败); + Console.WriteLine("5F原材料前往背板安装需要先移库,没有找到可以移库的目标库位,添加报警"); + continue; } + var RemoveTask = new WcsTask() + { + objid = StaticData.SnowId.NextId(), + orderId = item.rawOutstockId, + taskType = StaticTaskType.FiveRemove, + containerNo = wmsRawStock.palletInfoCode, + createBy = "WCS", + createTime = DateTime.Now.AddSeconds(-10), + taskStatus = 0, + materialId = item.materialId, + currPointId = wmsBaseLocation.locationId, + currPointNo = wmsBaseLocation.locationCode, + nextPointId = agvEquip.objid, + nextPointNo = agvEquip.equipNo, + endPointId = toLocation.locationId, + endPointNo = toLocation.locationCode, + equipmentNo = agvEquip.equipNo, + useFlag = 1, + qty = qty + }; + toLocation.locationStatus = "4"; + toLocation.updateBy = "WCS"; + toLocation.updateTime = DateTime.Now; + wmsBaseLocation.updateBy = "WCS"; + wmsBaseLocation.updateTime = DateTime.Now; + wmsBaseLocation.locationStatus = "4"; + dbContext.Update(toLocation); + dbContext.Update(wmsBaseLocation); + dbContext.Add(RemoveTask); + WcsTaskLog wcsTaskLog = CoreMapper.Map(RemoveTask); + dbContext.Add(wcsTaskLog); } - if (toLocation == null) + else { - // TODO : 没有找到可以移库的目标库位,添加报警 - SystemData.InsertWaringLog(dbContext, WaringType.五楼移库任务创建失败); - Console.WriteLine("5F原材料前往背板安装需要先移库,没有找到可以移库的目标库位,添加报警"); - continue; + //直接出 } - var RemoveTask = new WcsTask() - { - objid = StaticData.SnowId.NextId(), - orderId = item.rawOutstockId, - taskType = StaticTaskType.FiveRemove, - containerNo = wmsRawStock.palletInfoCode, - createBy = "WCS", - createTime = DateTime.Now.AddSeconds(-10), - taskStatus = 0, - materialId = item.materialId, - currPointId = wmsBaseLocation.locationId, - currPointNo = wmsBaseLocation.locationCode, - nextPointId = agvEquip.objid, - nextPointNo = agvEquip.equipNo, - endPointId = toLocation.locationId, - endPointNo = toLocation.locationCode, - equipmentNo = agvEquip.equipNo, - useFlag = 1, - qty = qty - }; - toLocation.locationStatus = "4"; - toLocation.updateBy = "WCS"; - toLocation.updateTime = DateTime.Now; - wmsBaseLocation.updateBy = "WCS"; - wmsBaseLocation.updateTime = DateTime.Now; - wmsBaseLocation.locationStatus = "4"; - dbContext.Update(toLocation); - dbContext.Update(wmsBaseLocation); - dbContext.Add(RemoveTask); - WcsTaskLog wcsTaskLog = CoreMapper.Map(RemoveTask); - dbContext.Add(wcsTaskLog); + } else if (wmsBaseLocation.locationStatus != "1")