From 6687d850b2278615f6c88a7a0d090c4b0409e79b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83?= <15095123350@163.com> Date: Mon, 21 Oct 2024 09:10:24 +0800 Subject: [PATCH] 1 --- .../Controllers/RecieveRcsController.cs | 2 +- .../WcsTaskApplication.cs | 2 +- src/Khd.Core.Wcs/MainCentralControl.cs | 2 +- src/Khd.Core.Wcs/SystemData.cs | 17 +- src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs | 44 +- src/Khd.Core.Wcs/Wcs/FirstFloor.cs | 6 +- src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs | 47 +- src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs | 3 + src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs | 29 +- src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs | 25 +- src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs | 9 +- src/Khd.Core.Wpf/Form/FormBoardT.xaml | 13 +- src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs | 637 +++++++++++++----- .../TaskForm/SelectOutRawForm.xaml.cs | 14 +- 14 files changed, 592 insertions(+), 258 deletions(-) diff --git a/src/Khd.Core.Api/Controllers/RecieveRcsController.cs b/src/Khd.Core.Api/Controllers/RecieveRcsController.cs index ee1df05..73a6a92 100644 --- a/src/Khd.Core.Api/Controllers/RecieveRcsController.cs +++ b/src/Khd.Core.Api/Controllers/RecieveRcsController.cs @@ -67,7 +67,7 @@ namespace Khd.Core.Api.Controllers [HttpPost("taskContinue")] public AgvCompeletedResponse TaskContinue(TaskContinue taskContinue) { - LogManager.Info($"TaskContinue 接口收到消息: {taskContinue}"); + LogManager.Info($"TaskContinue 接口收到消息: {taskContinue.ToJsonString()}"); return _application.TaskContinue(taskContinue); } diff --git a/src/Khd.Core.Application/WcsTaskApplication.cs b/src/Khd.Core.Application/WcsTaskApplication.cs index eb34f6a..8ece717 100644 --- a/src/Khd.Core.Application/WcsTaskApplication.cs +++ b/src/Khd.Core.Application/WcsTaskApplication.cs @@ -231,7 +231,7 @@ namespace Khd.Core.Application _dbContext.ChangeTracker.Clear(); var wcsTask = _dbContext.WcsTask .Where(t => t.taskType == 47) - .Where(t => t.materialId == taskContinue.materialId) + .Where(t => t.containerNo == taskContinue.palletInfoCode) .FirstOrDefault(); if (wcsTask != null) { diff --git a/src/Khd.Core.Wcs/MainCentralControl.cs b/src/Khd.Core.Wcs/MainCentralControl.cs index 4759f26..d4616b1 100644 --- a/src/Khd.Core.Wcs/MainCentralControl.cs +++ b/src/Khd.Core.Wcs/MainCentralControl.cs @@ -38,7 +38,7 @@ namespace Khd.Core.Wcs LoggerUtils logger = new LoggerUtils(); using var scope = _host.Services.CreateScope(); - using var dbContext = scope.ServiceProvider.GetRequiredService(); + var dbContext = scope.ServiceProvider.GetRequiredService(); try { StaticData.BasePlcpointList = dbContext.BasePlcpoint.Where(t => t.isDelete == 0).ToList();//设备交互用 diff --git a/src/Khd.Core.Wcs/SystemData.cs b/src/Khd.Core.Wcs/SystemData.cs index 0b5a4ec..f4ca4e3 100644 --- a/src/Khd.Core.Wcs/SystemData.cs +++ b/src/Khd.Core.Wcs/SystemData.cs @@ -42,7 +42,9 @@ namespace Khd.Core.Wcs { 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(); + WmsBaseLocation? wmsLocation = dbContext.WmsBaseLocation + .Where(t => t.warehouseId == wmsBaseLocation.warehouseId) + .Where(t => t.locDeep == 2 && t.locColumn == wmsBaseLocation.locColumn && t.locRow == (wmsBaseLocation.locRow % 2 == 0 ? wmsBaseLocation.locRow - 1 : wmsBaseLocation.locRow + 1)).FirstOrDefault(); if (wmsLocation != null && wmsLocation.locationStatus == "1") { wmsLocation.locationStatus = "2"; @@ -60,13 +62,16 @@ namespace Khd.Core.Wcs { 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(); + WmsBaseLocation? wmsLocation = dbContext.WmsBaseLocation + .Where(t => t.warehouseId == wmsBaseLocation.warehouseId) + .Where(t => t.locDeep == 2 && t.locColumn == wmsBaseLocation.locColumn && t.locRow == (wmsBaseLocation.locRow % 2 == 0 ? wmsBaseLocation.locRow - 1 : wmsBaseLocation.locRow + 1)).FirstOrDefault(); if (wmsLocation != null && wmsLocation.locationStatus != "3" && wmsLocation.locationStatus != "9") { wmsLocation.locationStatus = "1"; dbContext.Update(wmsLocation); } } + wmsBaseLocation.locationStatus = "1"; } /// @@ -149,7 +154,7 @@ namespace Khd.Core.Wcs var alarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.AlarmRuleId == (long)WaringType).FirstOrDefault(); if (alarmTime != null) { - dbContext.DmsRecordAlarmTime.Where(t=>t.AlarmId==alarmTime.AlarmId).Delete(); + dbContext.DmsRecordAlarmTime.Where(t => t.AlarmId == alarmTime.AlarmId).Delete(); dbContext.DmsRecordAlarmInfo.Where(t => t.AlarmId == alarmTime.AlarmId) .Update(t => new DmsRecordAlarmInfo() { AlarmStatus = "2" }); } @@ -201,6 +206,12 @@ namespace Khd.Core.Wcs } + internal static WmsBaseLocation? GetLowerLocation(WmsBaseLocation wmslocation, DefaultDbContext dbContext) + { + return dbContext.WmsBaseLocation.Where(t => t.warehouseId == wmslocation.warehouseId) + .Where(t => t.locDeep == 2 && t.locColumn == wmslocation.locColumn && t.locRow == (wmslocation.locRow % 2 == 0 ? wmslocation.locRow - 1 : wmslocation.locRow + 1)).FirstOrDefault(); + } + public readonly static object SecondTaskLock = new(); public readonly static object ThirdTaskLock = new(); public readonly static object FiveTaskLock = new(); diff --git a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs index cac3ba6..55e25a4 100644 --- a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs +++ b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs @@ -14,6 +14,7 @@ using Newtonsoft.Json; using SixLabors.ImageSharp; using System.Data; using System.Drawing.Text; +using Thrift.Protocol; using Z.EntityFramework.Plus; namespace Khd.Core.Wcs.Wcs @@ -146,6 +147,24 @@ namespace Khd.Core.Wcs.Wcs { WmsBaseLocation? wmslocation = dbContext.WmsBaseLocation.FirstOrDefault(t => t.locationCode == item.OriLocationCode); WmsBaseLocation? toLocation = dbContext.WmsBaseLocation.FirstOrDefault(t => t.locationCode == item.TargetLocationCode); + if (wmslocation != null && wmslocation.locDeep == 1) + { + //查询浅库位状态 + var lowerLocation = SystemData.GetLowerLocation(wmslocation, dbContext); + if (lowerLocation != null && (lowerLocation == null || lowerLocation.locationStatus != "1" || !string.IsNullOrEmpty(lowerLocation.containerCode))) + { + continue; + } + } + if (toLocation != null && toLocation.locDeep == 1) + { + //查询浅库位状态 + var lowerLocation = SystemData.GetLowerLocation(toLocation, dbContext); + if (lowerLocation != null && (lowerLocation == null || lowerLocation.locationStatus != "1" || !string.IsNullOrEmpty(lowerLocation.containerCode))) + { + continue; + } + } if (wmslocation != null && toLocation != null) { var RemoveTask = new WcsTask() @@ -170,6 +189,8 @@ namespace Khd.Core.Wcs.Wcs WcsTaskLog wcsTaskLog = CoreMapper.Map(RemoveTask); SystemData.LockOutLocation(toLocation, dbContext); SystemData.LockOutLocation(wmslocation, dbContext); + wmslocation.locationStatus = "4"; + toLocation.locationStatus = "4"; dbContext.Add(RemoveTask); dbContext.Add(wcsTaskLog); item.ExecuteStatus = "1"; @@ -177,6 +198,7 @@ namespace Khd.Core.Wcs.Wcs dbContext.Update(item); dbContext.SaveChanges(); Console.WriteLine(DateTime.Now + $":创建移库任务成功:{item.OriLocationCode}--{item.TargetLocationCode}"); + _logger.Info("创建移库任务成功:" + item.OriLocationCode + "--" + item.TargetLocationCode); } } } @@ -535,7 +557,7 @@ namespace Khd.Core.Wcs.Wcs { dbContext.ChangeTracker.Clear(); BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 29); - if (baseEquip.emptyCount == 1) + //if (baseEquip.emptyCount == 1) { WcsTask? wcsTask = dbContext.WcsTask.Where(t => t.nextPointId == 28).FirstOrDefault(); if (wcsTask == null) @@ -1485,6 +1507,8 @@ namespace Khd.Core.Wcs.Wcs using var dbContext = scope.ServiceProvider.GetRequiredService(); while (true) { + var isCreate = false; + string message = ""; try { dbContext.ChangeTracker.Clear(); @@ -1614,8 +1638,8 @@ namespace Khd.Core.Wcs.Wcs .Any(); if (!hasLocation) { - Console.WriteLine(DateTime.Now + $":目标库位{toLocation.locationCode}的浅库位库位状态异常,无法移库"); - _logger.Info($"目标库位{toLocation.locationCode}的浅库位库位状态异常,无法移库"); + Console.WriteLine(DateTime.Now + $":目标库位的浅库位库位状态异常,无法移库"); + _logger.Info($"目标库位的浅库位库位状态异常,无法移库"); continue; } else @@ -1643,7 +1667,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), orderId = item.productOutstockId, - taskType = StaticTaskType.SecondRemove, + taskType = StaticTaskType.FiveRemove, containerNo = wmsBaseLocation.containerCode, createBy = "WCS", createTime = DateTime.Now.AddSeconds(-10), @@ -1743,6 +1767,7 @@ namespace Khd.Core.Wcs.Wcs } else { + message = "创建移库任务失败"; Console.WriteLine(DateTime.Now + $":{wmsBaseLocation.locationCode}库位状态异常,无法移库"); _logger.Info($"{wmsBaseLocation.locationCode}库位状态异常,无法移库"); continue; @@ -1794,6 +1819,7 @@ namespace Khd.Core.Wcs.Wcs dbContext.Update(location); dbContext.Add(wcsTask); dbContext.Update(stock); + isCreate = true; break; } } @@ -1803,6 +1829,7 @@ namespace Khd.Core.Wcs.Wcs } dbContext.Update(item); dbContext.SaveChanges(); + } } } @@ -1810,9 +1837,18 @@ namespace Khd.Core.Wcs.Wcs } catch (Exception ex) { + message += ex.Message; Console.WriteLine(ex.Message + ex.StackTrace); _logger.Error(ex.Message + "\n" + ex.StackTrace); } + if (isCreate) + { + SystemData.DeleteWaringLog(dbContext, WaringType.五楼出库任务创建失败); + } + else + { + SystemData.InsertWaringLog(dbContext, WaringType.五楼出库任务创建失败, message); + } Thread.Sleep(5000); } } diff --git a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs index 453f72b..1ae64a5 100644 --- a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs +++ b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs @@ -203,7 +203,7 @@ namespace Khd.Core.Wcs.Wcs { try { - dbContext.ChangeTracker.Clear(); + dbContext.ChangeTracker.Clear(); var linesignal = StaticData.PlcDic[0].Read(this.linesignal01.plcpointAddress); int taskCount = dbContext.WcsTask.Where(t => t.nextPointId == 6 && t.taskStatus > 0 && t.endPointId == 1).Count(); int firstFloorCount = dbContext.WcsTask.Where(t => t.currPointId == 1).Count(); @@ -286,7 +286,7 @@ namespace Khd.Core.Wcs.Wcs { try { - dbContext.ChangeTracker.Clear();//上次查出1,不加这行,数据库实际2,查出1 + dbContext.ChangeTracker.Clear();//上次查出1,不加这行,数据库实际2,查出1 var RFID001Value = StaticData.PlcDic[0].ReadRFID(this.RFID001.plcpointAddress); //一楼RFID 读 var linesignal01Value = StaticData.PlcDic[0].Read(this.linesignal01.plcpointAddress); //到位信号 读 //正常读到plc值 @@ -532,7 +532,7 @@ namespace Khd.Core.Wcs.Wcs //提升机空闲 if (Convert.ToInt32(equipstate06Value) == 0) { - dbContext.ChangeTracker.Clear(); + dbContext.ChangeTracker.Clear(); var wcsTasks = dbContext.WcsTask.Where(t => t.nextPointId == T01 && t.taskStatus < 5) .OrderBy(t => t.ud1).OrderBy(t => t.createTime).ToList(); foreach (var wcsTask in wcsTasks) diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs index 37d9566..c92f00b 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs @@ -451,20 +451,36 @@ namespace Khd.Core.Wcs.Wcs SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(toLocation, dbContext); - dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).Update(t => new WmsBaseLocation - { - returnFlag = "0", - locationStatus = "1", - containerCode = null, - updateTime = DateTime.Now - }); - dbContext.WmsBaseLocation.Where(t => t.locationId == item.endPointId).Update(t => new WmsBaseLocation - { - locationStatus = "1", - returnFlag = wmsBaseLocation.returnFlag, - containerCode = item.containerNo, - updateTime = DateTime.Now - }); + + toLocation.returnFlag = wmsBaseLocation.returnFlag; + + wmsBaseLocation.returnFlag = "0"; + wmsBaseLocation.locationStatus = "1"; + wmsBaseLocation.containerCode = null; + wmsBaseLocation.updateTime = DateTime.Now; + dbContext.Update(wmsBaseLocation); + dbContext.SaveChanges(); + + toLocation.locationStatus = "1"; + toLocation.containerCode = item.containerNo; + toLocation.updateTime = DateTime.Now; + dbContext.Update(toLocation); + dbContext.SaveChanges(); + //dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).Update(t => new WmsBaseLocation + //{ + // returnFlag = "0", + // locationStatus = "1", + // containerCode = null, + // updateTime = DateTime.Now + //}); + //dbContext.WmsBaseLocation.Where(t => t.locationId == item.endPointId).Update(t => new WmsBaseLocation + //{ + // locationStatus = "1", + // returnFlag = wmsBaseLocation.returnFlag, + // containerCode = item.containerNo, + // updateTime = DateTime.Now + //}); + dbContext.Remove(item); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); #region 插入移库记录 @@ -520,7 +536,6 @@ namespace Khd.Core.Wcs.Wcs dbContext.WmsMoveDetail.Add(wmsMoveDetail); #endregion - dbContext.SaveChanges(); dbContextTransaction.Commit(); SystemData.SendPlcLocation(wmsBaseLocation); @@ -794,7 +809,7 @@ namespace Khd.Core.Wcs.Wcs updateDate = DateTime.Now, warehouseId = 511, }; - var WmsRawInstock = dbContext.WmsRawInstock.FirstOrDefault(t => t.materialBarCode == mesBasePalletInfo.materialBarcode && t.instockType == "2"); + var WmsRawInstock = dbContext.WmsRawInstock.FirstOrDefault(t => t.materialBarCode == mesBasePalletInfo.materialBarcode && (t.instockType == "2"|| t.instockType == "4")); if (WmsRawInstock != null) { WmsRawInstock.returnFlag = null; diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs index a489512..a85977b 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs @@ -228,6 +228,7 @@ namespace Khd.Core.Wcs.Wcs else if (wcsTask.taskStatus == 6) //出库任务,小车任务是完成状态 { BaseEquip nextEquip = StaticData.BaseEquip.First(t => t.equipType == 2);//提升机 + BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == 1);//提升机 dbContext.Remove(wcsTask); WcsTask newTask = CoreMapper.Map(wcsTask); newTask.objid = StaticData.SnowId.NextId(); @@ -236,6 +237,8 @@ namespace Khd.Core.Wcs.Wcs newTask.nextPointNo = nextEquip.equipNo; newTask.currPointId = baseEquip.objid; newTask.currPointNo = baseEquip.equipNo; + newTask.endPointId = endEquip.objid; + newTask.endPointNo = endEquip.equipNo; newTask.ud1 = 30; newTask.fromFloorNo = FloorNo; newTask.taskType = 6;//成品出库 diff --git a/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs index 2325b59..076de81 100644 --- a/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs +++ b/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs @@ -872,6 +872,16 @@ namespace Khd.Core.Wcs.Wcs var wmsProductStock = dbContext.WmsProductStock.FirstOrDefault(t => t.locationCode == item.currPointNo); WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First(); WmsBaseLocation toLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.endPointId).First(); + wmsBaseLocation.ContainerStatus = null; + wmsBaseLocation.updateTime = DateTime.Now; + wmsBaseLocation.locationStatus = "1"; + dbContext.SaveChanges(); + + toLocation.locationStatus = "1"; + toLocation.containerCode = item.containerNo; + toLocation.updateTime = DateTime.Now; + dbContext.SaveChanges(); + SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(toLocation, dbContext); if (wmsProductStock != null) @@ -879,18 +889,8 @@ namespace Khd.Core.Wcs.Wcs wmsProductStock.locationCode = item.endPointNo; dbContext.Update(wmsProductStock); } - dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).Update(t => new WmsBaseLocation - { - locationStatus = "1", - containerCode = null, - updateTime = DateTime.Now - }); - dbContext.WmsBaseLocation.Where(t => t.locationId == item.endPointId).Update(t => new WmsBaseLocation - { - locationStatus = "1", - containerCode = item.endPointNo, - updateTime = DateTime.Now - }); + + dbContext.Remove(item); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); @@ -898,7 +898,7 @@ namespace Khd.Core.Wcs.Wcs var wmsMove = dbContext.WmsMove.Where(t => t.MoveId == item.orderId).FirstOrDefault(); if (wmsMove == null) { - wmsMove = new WmsMove(); + wmsMove = new WmsMove(); wmsMove.MoveId = StaticData.SnowId.NextId(); wmsMove.TaskCode = StaticData.SnowId.NextId().ToString(); wmsMove.WarehouseId = wmsBaseLocation.warehouseId; @@ -948,9 +948,8 @@ namespace Khd.Core.Wcs.Wcs dbContext.WmsMoveDetail.Add(wmsMoveDetail); #endregion - - transaction.Commit(); dbContext.SaveChanges(); + transaction.Commit(); SystemData.SendPlcLocation(wmsBaseLocation); SystemData.SendPlcLocation(toLocation); diff --git a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs index 139b727..8001856 100644 --- a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs +++ b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs @@ -578,6 +578,16 @@ namespace Khd.Core.Wcs.Wcs var wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == item.currPointNo).FirstOrDefault(); WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First(); WmsBaseLocation toLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.endPointId).First(); + wmsBaseLocation.ContainerStatus = null; + wmsBaseLocation.updateTime = DateTime.Now; + wmsBaseLocation.locationStatus = "1"; + dbContext.SaveChanges(); + + toLocation.locationStatus = "1"; + toLocation.containerCode = item.containerNo; + toLocation.updateTime=DateTime.Now; + dbContext.SaveChanges(); + SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(toLocation, dbContext); if (wmsRawStock != null) @@ -585,18 +595,8 @@ namespace Khd.Core.Wcs.Wcs wmsRawStock.locationCode = item.endPointNo; dbContext.Update(wmsRawStock); } - dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).Update(t => new WmsBaseLocation - { - locationStatus = "1", - containerCode = null, - updateTime = DateTime.Now - }); - dbContext.WmsBaseLocation.Where(t => t.locationId == item.endPointId).Update(t => new WmsBaseLocation - { - locationStatus = "1", - containerCode = item.containerNo, - updateTime = DateTime.Now - }); + + dbContext.Remove(item); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); @@ -654,7 +654,6 @@ namespace Khd.Core.Wcs.Wcs dbContext.WmsMoveDetail.Add(wmsMoveDetail); #endregion - dbContext.SaveChanges(); transaction.Commit(); SystemData.SendPlcLocation(wmsBaseLocation); diff --git a/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs b/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs index d8e617e..355efda 100644 --- a/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs +++ b/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs @@ -54,7 +54,7 @@ namespace Khd.Core.Wcs.Wcs { try { - dbContext.ChangeTracker.Clear(); + dbContext.ChangeTracker.Clear(); //入库任务 var rfid = StaticData.PlcDic[0].ReadRFID(LineRFID.plcpointAddress); var isSignal = StaticData.PlcDic[0].Read(LineSignal.plcpointAddress); @@ -101,7 +101,7 @@ namespace Khd.Core.Wcs.Wcs .Where(t => DeepContainerCodes.Contains(t.palletInfoCode)) .Where(t => t.warehouseId == 311).ToList(); if (wmsRawStocks.Count > 0) - { + { //优先找同销售订单的有库存的深库位对应的浅库位 foreach (var wmsRawStock in wmsRawStocks) { @@ -192,7 +192,7 @@ namespace Khd.Core.Wcs.Wcs Console.WriteLine(DateTime.Now + ":三楼楼接驳位调度入库任务,未找到库位"); _logger.Info("三楼接驳位调度入库任务,未找到库位"); // TODO: 没有找到库位,添加报警处理 - SystemData.InsertWaringLog(dbContext,WaringType.二楼入库任务创建失败); + SystemData.InsertWaringLog(dbContext, WaringType.二楼入库任务创建失败); Thread.Sleep(1000 * 5); } @@ -203,6 +203,7 @@ namespace Khd.Core.Wcs.Wcs else if (wcsTask.taskStatus == 6)//小车任务是完成状态,说明是出库 { BaseEquip nextEquip = StaticData.BaseEquip.First(t => t.equipType == 2);//提升机 + BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == wcsTask.floorNo); dbContext.Remove(wcsTask); WcsTask newTask = CoreMapper.Map(wcsTask); newTask.objid = StaticData.SnowId.NextId(); @@ -212,6 +213,8 @@ namespace Khd.Core.Wcs.Wcs newTask.currPointId = baseEquip.objid; newTask.currPointNo = baseEquip.equipNo; newTask.fromFloorNo = FloorNo; + newTask.endPointId= endEquip.objid; + newTask.endPointNo = endEquip.equipNo; newTask.taskStatus = 0; newTask.ud1 = 10; newTask.updateTime = DateTime.Now; diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml b/src/Khd.Core.Wpf/Form/FormBoardT.xaml index a3efaba..783d7d4 100644 --- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml +++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml @@ -6,6 +6,7 @@ xmlns:local="clr-namespace:Khd.Core.Wpf.myConverter" mc:Ignorable="d" WindowStyle="None" + Closing="Window_Closing" WindowStartupLocation="CenterOwner" xmlns:hc="https://handyorg.github.io/handycontrol" WindowState="Maximized" @@ -2348,16 +2349,15 @@ FontSize="25" Width="160" Height="80" VerticalAlignment="Top" HorizontalAlignmen - + - - + @@ -2519,7 +2519,7 @@ FontSize="25" Width="160" Height="80" VerticalAlignment="Top" HorizontalAlignmen - +