From 702649c6705ec258a607d2886d907139316cd9be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83?= <15095123350@163.com> Date: Tue, 16 Jul 2024 09:10:47 +0800 Subject: [PATCH] 20240716 --- .../Controllers/RecieveRcsController.cs | 6 + .../Interface/IWcsTaskApplication.cs | 1 + .../WcsTaskApplication.cs | 47 ++- src/Khd.Core.Wcs/MainCentralControl.cs | 4 +- src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs | 338 +++++++++--------- src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs | 2 +- src/Khd.Core.Wcs/Wcs/SystemTimer.cs | 35 +- src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs | 4 +- 8 files changed, 253 insertions(+), 184 deletions(-) diff --git a/src/Khd.Core.Api/Controllers/RecieveRcsController.cs b/src/Khd.Core.Api/Controllers/RecieveRcsController.cs index c84fffb..55bebd3 100644 --- a/src/Khd.Core.Api/Controllers/RecieveRcsController.cs +++ b/src/Khd.Core.Api/Controllers/RecieveRcsController.cs @@ -93,5 +93,11 @@ namespace Khd.Core.Api.Controllers LogManager.Info($"CallMaterial 接口收到消息: {callMaterial}"); return _application.CallMaterial(callMaterial); } + + [HttpPost("AgvTaskComplete")] + public ReponseMessage AGVTaskComplete() + { + return _application.AGVTaskComplete(); + } } } \ No newline at end of file diff --git a/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs b/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs index 0420acd..1071720 100644 --- a/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs +++ b/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs @@ -31,5 +31,6 @@ namespace Khd.Core.Application.Interface AgvCompeletedResponse TaskReturn(TaskReturn taskReturn); ReponseagvCallbackDto AgvCallback2(agvCallbackDto agvCallbackDto); ReponseMessage CallMaterial(CallMaterial callMaterial); + ReponseMessage AGVTaskComplete(); } } \ No newline at end of file diff --git a/src/Khd.Core.Application/WcsTaskApplication.cs b/src/Khd.Core.Application/WcsTaskApplication.cs index c15c180..61dacce 100644 --- a/src/Khd.Core.Application/WcsTaskApplication.cs +++ b/src/Khd.Core.Application/WcsTaskApplication.cs @@ -28,6 +28,7 @@ namespace Khd.Core.Application .FirstOrDefault(); return entity; } + public WcsTask Add(WcsTask model) { var entity = _dbContext.Add(model); @@ -35,11 +36,13 @@ namespace Khd.Core.Application return entity.Entity; } + public WcsTask Update(WcsTask model) { var list = _dbContext.WcsTask.Where(t => t.objid == model.objid).Update(a => model); return model; } + /// /// 接收agv接收任务通知接口 /// @@ -153,6 +156,7 @@ namespace Khd.Core.Application return reponseagvCallbackDto; } + /// /// 入库完成 /// @@ -161,6 +165,7 @@ namespace Khd.Core.Application { return ""; } + /// /// 出库完成 /// @@ -184,7 +189,10 @@ namespace Khd.Core.Application BaseEquip baseEquip = _dbContext.BaseEquip.FirstOrDefault(t => t.equipNo == agvCompeletedRequest.endStationCode); if (baseEquip != null) { - var wcsCmd = _dbContext.WcsCmd.Where(t => t.nextPointId == baseEquip.objid).Where(t => t.cmdStatus == 5).FirstOrDefault(); + var wcsCmd = _dbContext.WcsCmd + .Where(t => t.cmdType == 32 || t.cmdType == 48) + .Where(t => t.nextPointId == baseEquip.objid || t.currPointId == baseEquip.objid) + .FirstOrDefault(); if (wcsCmd != null) { WcsTask wcsTask = _dbContext.WcsTask.FirstOrDefault(t => t.objid == wcsCmd.taskId); @@ -192,7 +200,6 @@ namespace Khd.Core.Application { if (wcsTask.taskType != 48) { - wcsCmd.cmdStatus = 7; wcsTask.taskStatus = 7; _dbContext.WcsCmd.Update(wcsCmd); @@ -205,7 +212,6 @@ namespace Khd.Core.Application } else { - wcsCmd.cmdStatus = 4; wcsTask.taskStatus = 4; _dbContext.WcsCmd.Update(wcsCmd); @@ -217,6 +223,11 @@ namespace Khd.Core.Application agvCompeletedResponse.message = "成功"; } } + else + { + agvCompeletedResponse.code = "1"; + agvCompeletedResponse.message = "未找到当前任务"; + } } else { @@ -227,7 +238,7 @@ namespace Khd.Core.Application else { agvCompeletedResponse.code = "1"; - agvCompeletedResponse.message = "未找到当前设备"; + agvCompeletedResponse.message = "未找到当前工位"; } } catch (Exception ex) @@ -277,6 +288,7 @@ namespace Khd.Core.Application } return compeletedResponse; } + /// /// 柜体拆分区通知返库 /// @@ -465,5 +477,32 @@ namespace Khd.Core.Application } return reponseMessage; } + + public ReponseMessage AGVTaskComplete() + { + ReponseMessage reponseMessage = new ReponseMessage(); + try + { + _dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); + bool hasTask = _dbContext.WcsTask.Where(t => t.taskType == 41).Any(); + if (hasTask) + { + reponseMessage.code = "0"; + reponseMessage.message = "成功"; + } + else + { + reponseMessage.code = "1"; + reponseMessage.message = "当前无任务"; + } + } + catch (Exception ex) + { + reponseMessage.code = "1"; + reponseMessage.message = ex.Message; + LogManager.Error(ex); + } + return reponseMessage; + } } } \ No newline at end of file diff --git a/src/Khd.Core.Wcs/MainCentralControl.cs b/src/Khd.Core.Wcs/MainCentralControl.cs index 8faad72..ae9c196 100644 --- a/src/Khd.Core.Wcs/MainCentralControl.cs +++ b/src/Khd.Core.Wcs/MainCentralControl.cs @@ -68,8 +68,8 @@ namespace Khd.Core.Wcs StaticData.PlcDic.TryAdd(plcConfig.Code, plc); } } - SystemTimer systemTimer = new SystemTimer(_host); - systemTimer.Start(); + //SystemTimer systemTimer = new SystemTimer(_host); + //systemTimer.Start(); ////创建任务 //CreateTaskByRecord createTaskByRecord = new(_host); //createTaskByRecord.StartPoint(); diff --git a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs index f0da00e..7724904 100644 --- a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs +++ b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs @@ -227,6 +227,9 @@ namespace Khd.Core.Wcs.Wcs } } + /// + /// 背负式Agv退库 + /// private void BackReturnTaskLogic() { using var scope = _host.Services.CreateScope(); @@ -235,7 +238,7 @@ namespace Khd.Core.Wcs.Wcs { dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); WcsTask? wcsTask = dbContext.WcsTask.Where(t => t.taskType == 28).FirstOrDefault(); - if(wcsTask != null) + if (wcsTask != null) { WmsRawInstock? wmsRawInstock = dbContext.WmsRawInstock.Where(t => t.instockType == "2" && t.warehouseId == 511 && t.executeStatus == "0").FirstOrDefault(); if (wmsRawInstock != null) @@ -247,15 +250,15 @@ namespace Khd.Core.Wcs.Wcs WmsRawInstockDetail wmsRawInstockDetail = new WmsRawInstockDetail() { rawInstockDetailId = StaticData.SnowId.NextId(), - rawInstockId=wmsRawInstock.rawInstockId, + rawInstockId = wmsRawInstock.rawInstockId, instockWay = "2", - activeFlag="1", + activeFlag = "1", stackAmount = 1, createBy = "WCS", createDate = DateTime.Now, materialId = wmsRawInstock.materialId, instockAmount = 1, - executeStatus="0", + executeStatus = "0", }; dbContext.Update(wmsRawInstock); dbContext.Update(wcsTask); @@ -868,7 +871,9 @@ namespace Khd.Core.Wcs.Wcs { var proStock = dbContext.WmsProductStock .Where(t => t.warehouseId == 231) - .Where(t => t.activeFlag == "0").ToList(); + .Where(t => t.activeFlag == "0") + .Where(t => t.totalAmount > t.frozenAmount) + .ToList(); var proOutStock = dbContext.WmsProductOutstock .Where(t => t.outstockQty < t.applyQty) .Where(t => t.auditStatus == "1") @@ -878,197 +883,184 @@ namespace Khd.Core.Wcs.Wcs //获取最早入库时间 foreach (var item in proOutStock) { - task = dbContext.WcsTask.Where(t => t.nextPointId == 8 && t.taskStatus <= 7).Any(); - if (!task) + + BaseEquip endEquip = dbContext.BaseEquip.First(t => t.floorNo == 2 && t.equipType == 1); + var wmsproStocks = proStock + .Where(t => t.productId == item.productId && t.warehouseId == item.warehouseId) + .Select(t => t.palletInfoCode) + .ToList(); + + var wmsBaseLocations = dbContext.WmsBaseLocation + .Where(t => t.activeFlag == "1") + .Where(t => t.delFlag == "0") + .Where(t => t.locationScrapType == "1") + .Where(t => t.instockFlag == "0") + .Where(t => t.outstockFlag == "0") + .Where(t => t.warehouseId == item.warehouseId) + .Where(t => wmsproStocks.Contains(t.containerCode)) + .ToList(); + + decimal needNumber = Convert.ToDecimal(item.applyQty - item.outstockQty); + if (needNumber <= 0) { - BaseEquip endEquip = dbContext.BaseEquip.First(t => t.floorNo == 2 && t.equipType == 1); - var wmsproStocks = proStock - .Where(t => t.productId == item.productId && t.warehouseId == item.warehouseId) - .Select(t => t.palletInfoCode) - .ToList(); + item.executeStatus = "2"; + dbContext.Update(item); + dbContext.SaveChanges(); + continue; + } - var wmsBaseLocations = dbContext.WmsBaseLocation - .Where(t => t.activeFlag == "1") - .Where(t => t.delFlag == "0") - .Where(t => t.locationScrapType == "1") - .Where(t => t.instockFlag == "0") - .Where(t => t.outstockFlag == "0") - .Where(t => t.warehouseId == item.warehouseId) - .Where(t => wmsproStocks.Contains(t.containerCode)) - .ToList(); + var bill = from a in wmsBaseLocations + from b in proStock + where a.containerCode == b.palletInfoCode + select new { a, b }; - decimal needNumber = Convert.ToDecimal(item.applyQty - item.outstockQty); - if (needNumber <= 0) + BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == 8); + BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 2); + foreach (var b in bill) + { + item.executeStatus = "1"; + WmsBaseLocation location = b.a; + WmsProductStock stock = b.b; + WcsTask wcsTask; + int qty = 0; + if (stock.totalAmount - stock.frozenAmount <= needNumber) { - item.executeStatus = "2"; - dbContext.Update(item); - dbContext.SaveChanges(); - continue; - } - - var bill = from a in wmsBaseLocations - from b in proStock - where a.containerCode == b.palletInfoCode - select new { a, b }; - //如果第一列满足需求,则按第一列排序,否则按最后一列排序 - if (bill.Where(t => t.a.locColumn == 1).Select(t => t.b.totalAmount - t.b.frozenAmount).Sum() > needNumber) - { - bill = bill.OrderBy(t => t.a.locColumn).ToList(); + item.outstockQty += stock.totalAmount - stock.frozenAmount; + qty = Convert.ToInt32(stock.totalAmount - stock.frozenAmount); + stock.updateDate = DateTime.Now; } else { - bill = bill.OrderByDescending(t => t.a.locColumn).ToList(); + item.outstockQty += needNumber; + qty = Convert.ToInt32(needNumber); + stock.updateDate = DateTime.Now; } - //做数量限制 - - BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == 8); - BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 2); - foreach (var b in bill) + MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == location.containerCode); + if (mesBasePalletInfo != null) { - item.executeStatus = "1"; - WmsBaseLocation location = b.a; - WmsProductStock stock = b.b; - WcsTask wcsTask; - int qty = 0; - if (stock.totalAmount - stock.frozenAmount <= needNumber)//该料箱全部出 + WmsProductOutstockDetail detail = new() { - item.outstockQty += stock.totalAmount - stock.frozenAmount; - qty = Convert.ToInt32(stock.totalAmount - stock.frozenAmount); - stock.updateDate = DateTime.Now; - } - else + productId = item.productId, + productOutstockId = item.productOutstockId, + locationCode = location.locationCode, + executeStatus = "1", + beginTime = DateTime.Now, + warehouseId = item.warehouseId, + erpAmount = 0, + confirmAmount = 0, + outstockAmount = 1, + planAmount = 1, + productBatch = item.productBatch, + productOutstockDetailId = StaticData.SnowId.NextId(), + productBarcode = mesBasePalletInfo.materialBarcode, + }; + if (location.locDeep == 1)//如果是深库位 { - item.outstockQty += needNumber; - qty = Convert.ToInt32(needNumber); - stock.updateDate = DateTime.Now; - } - MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == location.containerCode); - if (mesBasePalletInfo != null) - { - WmsProductOutstockDetail detail = new() + int? row = 0; + if (location.locRow % 2 == 1) { - productId = item.productId, - productOutstockId = item.productOutstockId, - locationCode = location.locationCode, - executeStatus = "1", - beginTime = DateTime.Now, - warehouseId = item.warehouseId, - erpAmount = 0, - confirmAmount = 0, - outstockAmount = 1, - planAmount = 1, - productBatch = item.productBatch, - productOutstockDetailId = StaticData.SnowId.NextId(), - productBarcode = mesBasePalletInfo.materialBarcode - }; - if (location.locDeep == 1) + row = location.locRow + 1; + } + else { - int? row = 0; - if (location.locRow % 2 == 1) + row = location.locRow - 1; + } + WmsBaseLocation? wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locRow == row) + .Where(t => t.locColumn == location.locColumn) + .Where(t => t.warehouseId == location.warehouseId).FirstOrDefault(); + if (wmsBaseLocation != null && !string.IsNullOrEmpty(wmsBaseLocation.containerCode)) + { + WmsBaseLocation? toLocation = dbContext.WmsBaseLocation.Where(t => t.warehouseId == location.warehouseId) + .Where(t => t.locDeep == 1) + .Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault(); + toLocation ??= dbContext.WmsBaseLocation.Where(t => t.warehouseId == location.warehouseId) + .Where(t => t.warehouseId != location.locationId) + .Where(t => string.IsNullOrEmpty(t.containerCode)) + .FirstOrDefault(); + if (toLocation != null) { - row = location.locRow + 1; + var RemoveTask = new WcsTask() + { + objid = StaticData.SnowId.NextId(), + orderId = item.productOutstockId, + taskType = 38, + containerNo = wmsBaseLocation.containerCode, + createBy = "WCS", + createTime = DateTime.Now.AddSeconds(-10), + taskStatus = 0, + materialId = item.productId, + 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.instockFlag = "1"; + toLocation.updateBy = "WCS"; + toLocation.updateTime = DateTime.Now; + wmsBaseLocation.updateBy = "WCS"; + wmsBaseLocation.updateTime = DateTime.Now; + wmsBaseLocation.outstockFlag = "1"; + wmsBaseLocation.locationStatus = "4"; + dbContext.Update(toLocation); + dbContext.Update(wmsBaseLocation); + dbContext.Add(RemoveTask); + WcsTaskLog wcsTaskLog = CoreMapper.Map(RemoveTask); + dbContext.Add(wcsTaskLog); } else { - row = location.locRow - 1; - } - WmsBaseLocation? wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locRow == row) - .Where(t => t.locColumn == location.locColumn) - .Where(t => t.warehouseId == location.warehouseId).FirstOrDefault(); - if (wmsBaseLocation != null && !string.IsNullOrEmpty(wmsBaseLocation.containerCode)) - { - WmsBaseLocation? toLocation = dbContext.WmsBaseLocation.Where(t => t.warehouseId == location.warehouseId) - .Where(t => t.locDeep == 1) - .Where(t => string.IsNullOrEmpty(t.containerCode)).FirstOrDefault(); - toLocation ??= dbContext.WmsBaseLocation.Where(t => t.warehouseId == location.warehouseId) - .Where(t => t.warehouseId != location.locationId) - .Where(t => string.IsNullOrEmpty(t.containerCode)) - .FirstOrDefault(); - if (toLocation != null) - { - var RemoveTask = new WcsTask() - { - objid = StaticData.SnowId.NextId(), - orderId = item.productOutstockId, - taskType = 38, - containerNo = wmsBaseLocation.containerCode, - createBy = "WCS", - createTime = DateTime.Now.AddSeconds(-10), - taskStatus = 0, - materialId = item.productId, - 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.instockFlag = "1"; - toLocation.updateBy = "WCS"; - toLocation.updateTime = DateTime.Now; - wmsBaseLocation.updateBy = "WCS"; - wmsBaseLocation.updateTime = DateTime.Now; - wmsBaseLocation.outstockFlag = "1"; - wmsBaseLocation.locationStatus = "4"; - dbContext.Update(toLocation); - dbContext.Update(wmsBaseLocation); - dbContext.Add(RemoveTask); - WcsTaskLog wcsTaskLog = CoreMapper.Map(RemoveTask); - dbContext.Add(wcsTaskLog); - } - else - { - continue; - } + continue; } } - wcsTask = new WcsTask() - { - objid = StaticData.SnowId.NextId(), - orderId = item.productOutstockId, - taskType = 38, - containerNo = location.containerCode, - createBy = "WCS", - createTime = DateTime.Now, - taskStatus = 0, - materialId = item.productId, - currPointId = location.locationId, - currPointNo = location.locationCode, - nextPointId = agvEquip.objid, - nextPointNo = agvEquip.equipNo, - endPointId = lineEquip.objid, - endPointNo = lineEquip.equipNo, - equipmentNo = agvEquip.equipNo, - useFlag = 1, - qty = qty - }; - location.outstockFlag = "1"; - location.locationStatus = "6"; - location.updateBy = "WCS"; - location.updateTime = DateTime.Now; - dbContext.Add(detail); - dbContext.Update(location); - dbContext.Add(wcsTask); - dbContext.Update(stock); - dbContext.SaveChanges(); - if (qty >= needNumber) - { - break; - } + } + wcsTask = new WcsTask() + { + objid = StaticData.SnowId.NextId(), + orderId = item.productOutstockId, + taskType = 38, + containerNo = location.containerCode, + createBy = "WCS", + createTime = DateTime.Now, + taskStatus = 0, + materialId = item.productId, + currPointId = location.locationId, + currPointNo = location.locationCode, + nextPointId = agvEquip.objid, + nextPointNo = agvEquip.equipNo, + endPointId = lineEquip.objid, + endPointNo = lineEquip.equipNo, + equipmentNo = agvEquip.equipNo, + useFlag = 1, + qty = qty + }; + location.outstockFlag = "1"; + location.locationStatus = "6"; + location.updateBy = "WCS"; + location.updateTime = DateTime.Now; + dbContext.Add(detail); + dbContext.Update(location); + dbContext.Add(wcsTask); + dbContext.Update(stock); + dbContext.SaveChanges(); + if (qty >= needNumber) + { break; } + break; } - if (item.beginTime == null) - { - item.beginTime = DateTime.Now; - } - dbContext.Update(item); - dbContext.SaveChanges(); } + if (item.beginTime == null) + { + item.beginTime = DateTime.Now; + } + dbContext.Update(item); + dbContext.SaveChanges(); } } } diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs index 9bdbdea..0c76cf9 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs @@ -92,7 +92,7 @@ namespace Khd.Core.Wcs.Wcs { using var scope = _host.Services.CreateScope(); using var dbContext = scope.ServiceProvider.GetRequiredService(); - bool IsStart = false; + //bool IsStart = false; while (true) { try diff --git a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs index 5ff0df7..a8bc84e 100644 --- a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs +++ b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs @@ -207,6 +207,7 @@ namespace Khd.Core.Wcs.Wcs FiveBearAgvLogic(dbContext); CtuCmdLogic(dbContext); SecondAgvLogic(dbContext); + SendTrayMessage(dbContext); UpdatePlcPointValue(dbContext); } catch (Exception ex) @@ -230,10 +231,40 @@ namespace Khd.Core.Wcs.Wcs } } - Thread.Sleep(5000); + Thread.Sleep(1000); } } + private void SendTrayMessage(DefaultDbContext dbContext) + { + BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 40); + BasePlcpoint oneInPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "oneIn"); + BasePlcpoint oneOutPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "oneOut"); + BasePlcpoint someOutPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "someOut"); + BasePlcpoint someInPoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "someIn"); + BasePlc basePlc = StaticData.basePlcs.First(t => t.Name == "托盘库去向"); + BasePlc basePlc2 = StaticData.basePlcs.First(t => t.Name == "托盘库数量"); + string? value = "0"; + if (StaticData.PlcDic[0].Read(oneInPoint.plcpointAddress)?.ToString() == "1") + { + value = "1"; + } + else if (StaticData.PlcDic[0].Read(oneOutPoint.plcpointAddress)?.ToString() == "1") + { + value = "2"; + } + else if (StaticData.PlcDic[0].Read(someOutPoint.plcpointAddress)?.ToString() == "1") + { + value = "3"; + } + else if (StaticData.PlcDic[0].Read(someInPoint.plcpointAddress)?.ToString() == "1") + { + value = "4"; + } + StaticData.PlcDic[2].WriteToPoint(basePlc.Address, value, basePlc.type); + StaticData.PlcDic[2].WriteToPoint(basePlc2.Address, baseEquip.emptyCount.ToString(), basePlc2.type); + } + private void UpdatePlcPointValue(DefaultDbContext dbContext) { try @@ -364,7 +395,7 @@ namespace Khd.Core.Wcs.Wcs this.Plc220.WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type); - basePlcs= StaticData.basePlcs.Where(t => t.Station == "5楼背负式").ToList(); + basePlcs = StaticData.basePlcs.Where(t => t.Station == "5楼背负式").ToList(); cardStatus = reponse.data.First(t => t.RobotCode == "6011"); cardStatus.DateNow = DateTime.Now; quantityPlc = basePlcs.First(t => t.Name.Contains("电量")); diff --git a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs index 633124b..5a08e0c 100644 --- a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs +++ b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs @@ -579,10 +579,10 @@ namespace Khd.Core.Wcs.Wcs }; dbContext.Add(wmsRawStock); dbContext.Update(wmsBaseLocation); - dbContext.WcsTask.Where(t => t.objid == item.objid).Delete(); + dbContext.Remove(wcsCmd); + dbContext.Remove(item); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 }); - dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Delete(); dbContext.SaveChanges(); } }