From 0e2078537d64d14f81b373093d6756a326138797 Mon Sep 17 00:00:00 2001 From: liuwf Date: Wed, 11 Sep 2024 13:47:55 +0800 Subject: [PATCH] =?UTF-8?q?change-=E7=9B=98=E5=BA=93=E6=9C=AA=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs | 2 +- src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs | 2 +- src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs | 93 ++++++----- src/Khd.Core.Wpf/Khd.Core.Wpf.csproj | 5 + .../WindowPage/InventoryMaterialWindow.xaml | 149 ++++++++++++++++++ .../InventoryMaterialWindow.xaml.cs | 112 +++++++++++++ 6 files changed, 322 insertions(+), 41 deletions(-) create mode 100644 src/Khd.Core.Wpf/WindowPage/InventoryMaterialWindow.xaml create mode 100644 src/Khd.Core.Wpf/WindowPage/InventoryMaterialWindow.xaml.cs diff --git a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs index 377611c..0e679ea 100644 --- a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs +++ b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs @@ -2206,7 +2206,7 @@ namespace Khd.Core.Wcs.Wcs tasks.Add(wcsTask); location.locationStatus = "6"; location.updateBy = "WCS"; - location.ContainerStatus = "2"; + // location.ContainerStatus = "2"; location.updateTime = DateTime.Now; dbContext.Update(location); dbContext.Update(stock); diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs index be1df5a..9c06d7c 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs @@ -532,7 +532,7 @@ namespace Khd.Core.Wcs.Wcs { _logger.Info("五楼CTU线程完成任务" + item.objid); Console.WriteLine(DateTime.Now + ":五楼CTU线程完成任务" + item.currPointNo + "," + item.endPointNo); - if (item.taskType == StaticTaskType.FiveAccessoryOut)//出库任务 + if (item.taskType == StaticTaskType.FiveAccessoryOut || item.taskType == StaticTaskType.FiveAccessoryStorage || item.taskType == StaticTaskType.FiveAccessoryRemove)//出库任务 { WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.FirstOrDefault(t => t.taskCode == item.objid.ToString()); if (wmsRawOutstockDetail != null) diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs index ab903ce..bd589f4 100644 --- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs +++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs @@ -2903,30 +2903,41 @@ namespace Khd.Core.Wpf.Form hasTask = dbContext.WcsTaskManual.Where(t => t.taskType == 100).Any(); if (!hasTask) { + List? locationCodeList = null; if (InventoryCheck.MaterialId != null) { // 盘点某个型号的物料库存的库位 - // List locationCodeList = dbContext.WmsRawStock.Where(t => t.warehouseId == 512 && t.materialId == InventoryCheck.MaterialId).Select(x=>x.locationCode).ToList(); - + locationCodeList = dbContext.WmsRawStock.Where(t => t.warehouseId == 512 && t.materialId == InventoryCheck.MaterialId ).Select(x=>x.locationCode).ToList(); + } - + //所有满足条件的需要盘库的库位 var wmsBaseLocations = dbContext.WmsBaseLocation .Where(t => t.ContainerStatus == "1") .Where(t => t.locationStatus == "1") .OrderBy(t => t.locRow) .ThenBy(t => t.locColumn) .ToList(); + if(locationCodeList != null && locationCodeList.Count > 0) + { + wmsBaseLocations = wmsBaseLocations.Where(x=>locationCodeList.Contains(x.locationCode)).ToList(); + } + var wmsInventoryCheckDetails = dbContext.WmsInventoryCheckDetail .Where(t => t.InventoryCheckId == InventoryCheck.InventoryCheckId).ToList(); + // 已经盘点过的库位 List locationCodes = wmsInventoryCheckDetails.Select(t => t.LocationCode).Distinct().ToList(); wmsBaseLocations.RemoveAll(t => locationCodes.Contains(t.locationCode)); if (wmsBaseLocations.Count > 0) { List locations = wmsBaseLocations.Select(t => t.locationCode).ToList(); - List wmsRawStocks = dbContext.WmsRawStock.Where(t => t.warehouseId == 512).ToList(); - var wmsRawStock = wmsRawStocks - .Where(t => locations.Contains(t.locationCode)).ToList(); - List codes = wmsRawStock.Select(t => t.locationCode).Distinct().ToList(); + + List wmsRawStocks = dbContext.WmsRawStock.Where(t => t.warehouseId == 512) + .Where(t => locations.Contains(t.locationCode)) + .WhereIf(InventoryCheck.MaterialId!=null,t => t.materialId == InventoryCheck.MaterialId).ToList(); + + // 过滤后需要满足条件的有库存的库位 + List codes = wmsRawStocks.Select(t => t.locationCode).Distinct().ToList(); + var bill = from a in wmsBaseLocations from b in codes where a.locationCode == b @@ -2937,7 +2948,8 @@ namespace Khd.Core.Wpf.Form { WmsBaseLocation startBaseLocation = item.a; startBaseLocation.locationStatus = "6"; - startBaseLocation.ContainerStatus = "2"; + //startBaseLocation.ContainerStatus = "2"; + addList.Add(new WcsTaskManual() { objid = Global.SnowId.NextId(), @@ -2959,37 +2971,37 @@ namespace Khd.Core.Wpf.Form }); dbContext.Update(startBaseLocation); } - for (int i = addList.Count + 1; i <= 6; i++) - { - List list = addList.Select(t => t.currPointId).ToList(); - WmsBaseLocation? startBaseLocation = wmsBaseLocations.Where(t => !list.Contains(t.locationId)).FirstOrDefault(); - if (startBaseLocation != null) - { - startBaseLocation.locationStatus = "6"; - startBaseLocation.ContainerStatus = "2"; - addList.Add(new WcsTaskManual() - { - objid = Global.SnowId.NextId(), - taskType = 100, - orderId = InventoryCheck.InventoryCheckId, - containerNo = startBaseLocation.containerCode, - currPointId = startBaseLocation.locationId, - currPointNo = startBaseLocation.locationCode, - nextPointId = agvEquip.objid, - nextPointNo = agvEquip.equipNo, - endPointId = lineEquip.objid, - endPointNo = lineEquip.equipNo, - createTime = DateTime.Now, - ud1 = startBaseLocation.locColumn, - taskStatus = 0, - remark = "CTU盘点任务", - floorNo = 5, - fromFloorNo = 5, - useFlag = 1, - }); - dbContext.Update(startBaseLocation); - } - } + //for (int i = addList.Count + 1; i <= 6; i++) + //{ + // List list = addList.Select(t => t.currPointId).ToList(); + // WmsBaseLocation? startBaseLocation = wmsBaseLocations.Where(t => !list.Contains(t.locationId)).FirstOrDefault(); + // if (startBaseLocation != null) + // { + // startBaseLocation.locationStatus = "6"; + // startBaseLocation.ContainerStatus = "2"; + // addList.Add(new WcsTaskManual() + // { + // objid = Global.SnowId.NextId(), + // taskType = 100, + // orderId = InventoryCheck.InventoryCheckId, + // containerNo = startBaseLocation.containerCode, + // currPointId = startBaseLocation.locationId, + // currPointNo = startBaseLocation.locationCode, + // nextPointId = agvEquip.objid, + // nextPointNo = agvEquip.equipNo, + // endPointId = lineEquip.objid, + // endPointNo = lineEquip.equipNo, + // createTime = DateTime.Now, + // ud1 = startBaseLocation.locColumn, + // taskStatus = 0, + // remark = "CTU盘点任务", + // floorNo = 5, + // fromFloorNo = 5, + // useFlag = 1, + // }); + // dbContext.Update(startBaseLocation); + // } + //} List addCheckDetail = new List(); foreach (var item in addList) { @@ -4281,6 +4293,9 @@ namespace Khd.Core.Wpf.Form /// private void AddInventoryButton_Click(object sender, RoutedEventArgs e) { + InventoryMaterialWindow window = new InventoryMaterialWindow(_host); + window.ShowDialog(); + return; try { using var scope = _host.Services.CreateScope(); diff --git a/src/Khd.Core.Wpf/Khd.Core.Wpf.csproj b/src/Khd.Core.Wpf/Khd.Core.Wpf.csproj index 3a5adee..0822264 100644 --- a/src/Khd.Core.Wpf/Khd.Core.Wpf.csproj +++ b/src/Khd.Core.Wpf/Khd.Core.Wpf.csproj @@ -478,6 +478,11 @@ Always + + + Code + + PreserveNewest diff --git a/src/Khd.Core.Wpf/WindowPage/InventoryMaterialWindow.xaml b/src/Khd.Core.Wpf/WindowPage/InventoryMaterialWindow.xaml new file mode 100644 index 0000000..954501e --- /dev/null +++ b/src/Khd.Core.Wpf/WindowPage/InventoryMaterialWindow.xaml @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +