From 914fc7d33ccef6d90e41a6122f668ee1f84e71fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83?= <15095123350@163.com> Date: Wed, 24 Jul 2024 09:17:14 +0800 Subject: [PATCH] 20240724 --- .../WcsTaskApplication.cs | 3 +- src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs | 9 +- src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs | 17 +++- src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs | 82 +++++++-------- src/Khd.Core.Wpf/Form/FormBoardT.xaml | 99 +------------------ src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs | 58 +++++++---- src/Khd.Core.Wpf/appsettings.json | 16 +-- 7 files changed, 115 insertions(+), 169 deletions(-) diff --git a/src/Khd.Core.Application/WcsTaskApplication.cs b/src/Khd.Core.Application/WcsTaskApplication.cs index b7a2000..e5c7408 100644 --- a/src/Khd.Core.Application/WcsTaskApplication.cs +++ b/src/Khd.Core.Application/WcsTaskApplication.cs @@ -163,8 +163,7 @@ namespace Khd.Core.Application if (baseEquip != null) { var wcsTask = _dbContext.WcsTask - .Where(t => t.taskType == 32 || t.taskType == 48) - .Where(t => t.nextPointId == baseEquip.objid || t.currPointId == baseEquip.objid) + .Where(t => (t.taskType == 32 || t.taskType == 48)&&(t.endPointId == baseEquip.objid || t.currPointId == baseEquip.objid)) .FirstOrDefault(); if (wcsTask != null) { diff --git a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs index ea7f4e5..2e93420 100644 --- a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs +++ b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs @@ -608,7 +608,7 @@ namespace Khd.Core.Wcs.Wcs try { dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); - bool task = dbContext.WcsTask.Where(t => t.nextPointId == 28 && t.taskStatus <= 5).Any(); + bool task = dbContext.WcsTask.Where(t => t.nextPointId == 28 && t.useFlag == 1 && t.taskStatus <= 5).Any(); if (!task) { var wmsProductInstock = dbContext.WmsProductInstock @@ -1690,9 +1690,10 @@ namespace Khd.Core.Wcs.Wcs decimal? needNumber = order.TotalAmount - order.realOutstockAmount; foreach (var task in tasks) { - WmsRawStock wmsRawStock = rawStock.Where(t => t.palletInfoCode == task.containerNo).First(); - needNumber -= wmsRawStock.totalAmount - wmsRawStock.frozenAmount; - WmsBaseLocation wmsBaseLocation = AllWmsBaseLocations.Where(t => t.locationCode == wmsRawStock.locationCode).First(); + var wmsRawStock = rawStock.Where(t => t.palletInfoCode == task.containerNo && t.materialId == order.MaterialId && t.saleOrderId == order.SaleOrderId).ToList(); + decimal? total = wmsRawStock.Sum(t => t.totalAmount - t.frozenAmount); + needNumber -= total; + WmsBaseLocation wmsBaseLocation = AllWmsBaseLocations.Where(t => t.locationCode == task.currPointNo).First(); index = wmsBaseLocation.locRow; } if (needNumber <= 0) diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs index 4b98623..55861c2 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs @@ -423,10 +423,11 @@ namespace Khd.Core.Wcs.Wcs } else if (item.taskStatus == 5) { - Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); - _logger.Info("五楼Agv完成任务成功:" + item.ToJsonString()); + if (item.taskType == 66)//移库 { + Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); + _logger.Info("五楼Agv完成任务成功:" + item.ToJsonString()); using var dbContextTransaction = dbContext.Database.BeginTransaction(); try { @@ -470,6 +471,8 @@ namespace Khd.Core.Wcs.Wcs } else if (item.taskType == 38)//出库 { + Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); + _logger.Info("五楼Agv完成任务成功:" + item.ToJsonString()); var wmsProductOutstockDetail = dbContext.WmsProductOutstockDetail.FirstOrDefault(t => t.productOutstockId == item.orderId&&t.executeStatus == "1" && t.locationCode == item.currPointNo); var wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == item.orderId); if (wmsProductOutstockDetail != null && wmsProductOutstock != null) @@ -509,6 +512,8 @@ namespace Khd.Core.Wcs.Wcs } else if (item.taskType == 33)//原材料到背板安装 { + Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); + _logger.Info("五楼Agv完成任务成功:" + item.ToJsonString()); WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.Where(t => t.rawOutstockId == item.orderId).FirstOrDefault(); if (wmsRawOutstock != null) { @@ -535,6 +540,8 @@ namespace Khd.Core.Wcs.Wcs } else if (item.taskType == 34)//半成品入库 { + Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); + _logger.Info("五楼Agv完成任务成功:" + item.ToJsonString()); WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId); wmsBaseLocation.locationStatus = "1"; wmsBaseLocation.containerCode = item.containerNo; @@ -592,6 +599,8 @@ namespace Khd.Core.Wcs.Wcs } else if (item.taskType == 46)//该任务结束后,立刻生成一个新的返库任务,但是是否使用标志未0,等待mes通知 { + Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); + _logger.Info("五楼Agv完成任务成功:" + item.ToJsonString()); var wmsRawOutStock = dbContext.WmsRawOutstock.Where(t => t.rawOutstockId == item.orderId).FirstOrDefault(); WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.Where(t => t.rawOutstockId == item.orderId).FirstOrDefault(); if (wmsRawOutStock != null && wmsRawOutstockDetail != null) @@ -658,6 +667,8 @@ namespace Khd.Core.Wcs.Wcs } else if (item.taskType == 28)//柜体拆分到原材料 { + Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); + _logger.Info("五楼Agv完成任务成功:" + item.ToJsonString()); WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId); wmsBaseLocation.locationStatus = "1"; wmsBaseLocation.containerCode = item.containerNo; @@ -703,6 +714,8 @@ namespace Khd.Core.Wcs.Wcs } else if (item.taskType == 47) { + Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); + _logger.Info("五楼Agv完成任务成功:" + item.ToJsonString()); WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId); wmsBaseLocation.locationStatus = "1"; wmsBaseLocation.containerCode = item.containerNo; diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs index e09d1eb..ff271d0 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs @@ -427,12 +427,12 @@ namespace Khd.Core.Wcs.Wcs { new() { - positionCode = wmsBaseLocation.agvPositionCode, + positionCode = startEquip.agvPositionCode , type = "05"//设备 }, new() { - positionCode = startEquip.agvPositionCode, + positionCode = wmsBaseLocation.agvPositionCode, type = "05"//库位 }, }, @@ -470,45 +470,45 @@ namespace Khd.Core.Wcs.Wcs } } } - else if (item.taskType == 100)//盘库 - { - BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); - WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId); - var agvTask = new RequestAGVTaskDto - { - reqCode = StaticData.SnowId.NextId().ToString(), - positionCodePath = new List - { - new() - { - positionCode =wmsBaseLocation.agvPositionCode, - type = "05" - }, - new() - { - positionCode =endEquip.agvPositionCode, - type = "00" - }, - }, - ctnrTyp = "1", - taskTyp = "F504" - }; - string message = JsonConvert.SerializeObject(agvTask); - string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/genAgvSchedulingTask", message); - var reponseMessage = JsonConvert.DeserializeObject(result); - if (reponseMessage != null && reponseMessage.code == "0") - { - item.taskCode = reponseMessage.data; - item.taskStatus = 1; - dbContext.Update(item); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 }); - dbContext.SaveChanges(); - } - else - { - _logger.Info("CTU下发出库任务失败:" + reponseMessage?.message); - } - } + //else if (item.taskType == 100)//盘库 + //{ + // BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); + // WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId); + // var agvTask = new RequestAGVTaskDto + // { + // reqCode = StaticData.SnowId.NextId().ToString(), + // positionCodePath = new List + // { + // new() + // { + // positionCode =wmsBaseLocation.agvPositionCode, + // type = "05" + // }, + // new() + // { + // positionCode =endEquip.agvPositionCode, + // type = "00" + // }, + // }, + // ctnrTyp = "1", + // taskTyp = "F504" + // }; + // string message = JsonConvert.SerializeObject(agvTask); + // string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/genAgvSchedulingTask", message); + // var reponseMessage = JsonConvert.DeserializeObject(result); + // if (reponseMessage != null && reponseMessage.code == "0") + // { + // item.taskCode = reponseMessage.data; + // item.taskStatus = 1; + // dbContext.Update(item); + // dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 }); + // dbContext.SaveChanges(); + // } + // else + // { + // _logger.Info("CTU下发出库任务失败:" + reponseMessage?.message); + // } + //} } else { diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml b/src/Khd.Core.Wpf/Form/FormBoardT.xaml index f396d9a..265e0f5 100644 --- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml +++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml @@ -1746,7 +1746,7 @@ - + @@ -1942,100 +1942,6 @@