From a04d29f9ca85d3850af87a7a2166a8a11d0bcb9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83?= <15095123350@163.com> Date: Thu, 8 Aug 2024 13:17:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Khd.Core.Wcs/Global/StaticTaskType.cs | 156 +++++ src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs | 36 +- src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs | 725 ++++++++++----------- src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs | 84 ++- src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs | 197 +++--- src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs | 9 +- src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs | 586 +++++++++-------- src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs | 12 +- src/Khd.Core.Wcs/Wcs/SecondFloorPoint.cs | 14 +- src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs | 36 +- src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs | 2 +- 11 files changed, 996 insertions(+), 861 deletions(-) create mode 100644 src/Khd.Core.Wcs/Global/StaticTaskType.cs diff --git a/src/Khd.Core.Wcs/Global/StaticTaskType.cs b/src/Khd.Core.Wcs/Global/StaticTaskType.cs new file mode 100644 index 0000000..e8fd5b2 --- /dev/null +++ b/src/Khd.Core.Wcs/Global/StaticTaskType.cs @@ -0,0 +1,156 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Khd.Core.Wcs.Global +{ + public class StaticTaskType + { + /// + /// 二楼输送线到小包入口 + /// + public const int SecondLineToSmallPackage = 51; + + /// + /// 二楼废料工位到周转位 + /// + public const int SecondWasteToTransit = 56; + + /// + /// 二楼小包出口到库位 + /// + public const int SecondSmallPackageToStorage = 49; + + /// + /// 二楼周转位到提升机 + /// + public const int SecondTransitToLift = 57; + + /// + /// 二楼库位到提升机 + /// + public const int SecondStorageToLift = 50; + + /// + /// 二楼移库 + /// + public const int SecondRemove = 55; + + /// + /// 二楼提升机到废料工位 + /// + public const int SecondLiftToWaste = 53; + + /// + /// 二楼周转位到废料工位 + /// + public const int SecondTransitToWaste = 54; + + /// + /// 二楼提升机到周转位 + /// + public const int SecondLiftToTransit = 58; + + /// + /// 二楼周转位到小包入口 + /// + public const int SecondTransitToSmallPackage = 59; + + /// + /// 三楼移库 + /// + public const int ThirdRemove = 67; + + /// + /// 三楼原材料入库 + /// + public const int ThirdRawIn = 39; + + /// + /// 三楼原材料到翻转机 + /// + public const int ThirdRawToFlip = 41; + + /// + /// 三楼周转区到托盘收集架 + /// + public const int ThirdTransitToBin = 40; + + /// + /// 三楼翻转机到托盘收集架 + /// + public const int ThirdFlipToBin = 42; + + /// + /// 三楼托盘收集架到周转区 + /// + public const int ThirdBinToTransit = 43; + + /// + /// 三楼周转区到提升机 + /// + public const int ThirdTransitToLift = 44; + + /// + /// 五楼原材料入库 + /// + public const int FiveRawIn = 47; + + /// + /// 五楼原材料到拆分 + /// + public const int FiveRawToSplit = 46; + + /// + /// 五楼原材料拆分返库 + /// + public const int FiveRawSplitReturn = 28; + + /// + /// 五楼移库 + /// + public const int FiveRemove = 66; + + /// + /// 五楼原材料到背板安装 + /// + public const int FiveRawToBack = 33; + + /// + /// 五楼半成品入库 + /// + public const int FiveHalfIn = 34; + + /// + /// 五楼成品出库库 + /// + public const int FiveProductOut = 38; + + /// + /// 五楼辅料入库 + /// + public const int FiveAccessoryIn = 29; + + /// + /// 五楼辅料出库 + /// + public const int FiveAccessoryOut = 30; + + /// + /// 五楼辅料盘库 + /// + public const int FiveAccessoryStorage = 100; + + /// + /// 三楼接驳位转运空托盘到二楼 + /// + public const int ThirdTransitToSecond = 101; + + /// + /// 五楼辅料移库 + /// + public const int FiveAccessoryRemove = 102; + } +} diff --git a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs index aa1e2f9..c9db9ae 100644 --- a/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs +++ b/src/Khd.Core.Wcs/Wcs/CreateTaskByRecord.cs @@ -193,7 +193,7 @@ namespace Khd.Core.Wcs.Wcs createBy = "WCS", createTime = DateTime.Now, isEmpty = "0", - taskType = agvEquip.objid == 28 ? 66 : 55, + taskType = agvEquip.objid == 28 ? StaticTaskType.FiveRemove : StaticTaskType.SecondRemove, qty = 1, }; fromLocationCode.locationStatus = "4"; @@ -307,7 +307,7 @@ namespace Khd.Core.Wcs.Wcs createBy = "WCS", createTime = DateTime.Now, isEmpty = "0", - taskType = agvEquip.objid == 28 ? 66 : 67, + taskType = agvEquip.objid == 28 ? StaticTaskType.FiveRemove : StaticTaskType.ThirdRemove, qty = 1, }; fromLocationCode.locationStatus = "4"; @@ -434,7 +434,7 @@ namespace Khd.Core.Wcs.Wcs newTask.materialId = mesBasePalletInfo.materialId; newTask.objid = StaticData.SnowId.NextId(); newTask.createTime = DateTime.Now; - newTask.taskType = 28; + newTask.taskType = StaticTaskType.FiveRawSplitReturn; newTask.useFlag = 1; wmsBaseLocation.locationStatus = "2"; WmsRawInstockDetail wmsRawInstockDetail = new WmsRawInstockDetail @@ -630,7 +630,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), serialNo = SystemData.GetSerialNo(dbContext), - taskType = 43, + taskType = StaticTaskType.ThirdBinToTransit, nextPointId = agvEquip.objid, nextPointNo = agvEquip.equipNo, endPointId = endEquip.objid, @@ -668,7 +668,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), serialNo = SystemData.GetSerialNo(dbContext), - taskType = 101, + taskType = StaticTaskType.ThirdTransitToSecond, nextPointId = agvEquip.objid, nextPointNo = agvEquip.equipNo, currPointId = startEquip.objid, @@ -700,7 +700,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), serialNo = SystemData.GetSerialNo(dbContext), - taskType = 101, + taskType = StaticTaskType.ThirdTransitToSecond, nextPointId = agvEquip.objid, nextPointNo = agvEquip.equipNo, currPointId = startEquip.objid, @@ -842,7 +842,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), serialNo = SystemData.GetSerialNo(dbContext), - taskType = 34, + taskType = StaticTaskType.FiveHalfIn, endPointId = wmsBaseLocation.locationId, endPointNo = wmsBaseLocation.locationCode, currPointId = endEquip.objid, @@ -1041,7 +1041,7 @@ namespace Khd.Core.Wcs.Wcs var RemoveTask = new WcsTask() { objid = StaticData.SnowId.NextId(), - taskType = 67, + taskType = StaticTaskType.ThirdRemove, containerNo = wmsRawStock1.palletInfoCode, createBy = "WCS", createTime = DateTime.Now.AddSeconds(-10), @@ -1120,7 +1120,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), orderId = wmsRawOutstock.rawOutstockId, - taskType = 41, + taskType = StaticTaskType.ThirdRawToFlip, containerNo = wmsRawStock.palletInfoCode, createBy = "WCS", createTime = DateTime.Now, @@ -1376,7 +1376,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), orderId = item.productOutstockId, - taskType = 66, + taskType = StaticTaskType.FiveRemove, containerNo = wmsProductStock.palletInfoCode, createBy = "WCS", createTime = DateTime.Now.AddSeconds(-10), @@ -1446,7 +1446,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), orderId = item.productOutstockId, - taskType = 38, + taskType = StaticTaskType.FiveProductOut, containerNo = stock.palletInfoCode, createBy = "WCS", createTime = DateTime.Now, @@ -1627,7 +1627,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), orderId = item.productOutstockId, - taskType = 55, + taskType = StaticTaskType.SecondRemove, containerNo = wmsBaseLocation.containerCode, createBy = "WCS", createTime = DateTime.Now.AddSeconds(-10), @@ -1679,7 +1679,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), orderId = item.productOutstockId, - taskType = 50, + taskType = StaticTaskType.SecondStorageToLift, containerNo = stock.palletInfoCode, createBy = "WCS", createTime = DateTime.Now, @@ -2067,7 +2067,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), orderId = wmsRawOutstock.rawOutstockId, - taskType = 30, + taskType = StaticTaskType.FiveAccessoryOut, containerNo = location.containerCode, createBy = "WCS", createTime = DateTime.Now, @@ -2277,7 +2277,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), orderId = item.rawOutstockId, - taskType = 66, + taskType = StaticTaskType.FiveRemove, containerNo = wmsRawStock.palletInfoCode, createBy = "WCS", createTime = DateTime.Now.AddSeconds(-10), @@ -2327,7 +2327,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), orderId = item.rawOutstockId, - taskType = endEquip.equipType == 12 ? 46 : 33,//如果是12那么就是原材料到柜体验收区,如果是13那么就是原材料到背板安装区 + taskType = StaticTaskType.FiveRawToSplit,//如果是12那么就是原材料到柜体验收区,如果是13那么就是原材料到背板安装区 containerNo = location.containerCode, createBy = "WCS", createTime = DateTime.Now, @@ -2467,7 +2467,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), orderId = item.rawOutstockId, - taskType = 66, + taskType = StaticTaskType.FiveRemove, containerNo = wmsRawStock.palletInfoCode, createBy = "WCS", createTime = DateTime.Now.AddSeconds(-10), @@ -2522,7 +2522,7 @@ namespace Khd.Core.Wcs.Wcs { objid = StaticData.SnowId.NextId(), orderId = item.rawOutstockId, - taskType = endEquip.equipType == 12 ? 46 : 33,//如果是12那么就是原材料到柜体验收区,如果是13那么就是原材料到背板安装区 + taskType = StaticTaskType.FiveRawToBack,//如果是12那么就是原材料到柜体验收区,如果是13那么就是原材料到背板安装区 containerNo = location.containerCode, createBy = "WCS", createTime = DateTime.Now, diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs index c8eb583..b06bea3 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs @@ -46,7 +46,6 @@ namespace Khd.Core.Wcs.Wcs { using var scope = _host.Services.CreateScope(); using var dbContext = scope.ServiceProvider.GetRequiredService(); - List taskType = new() { 1, 3, 5, 7 }; BaseEquip baseEquip = StaticData.BaseEquip.First(t => t.objid == agvID); while (true) { @@ -68,7 +67,7 @@ namespace Khd.Core.Wcs.Wcs if (item.taskStatus == 0)//下发任务 { BaseDictionary baseDictionary = StaticData.BaseDictionary.First(t => t.objid == item.taskType); - if (item.taskType == 38)//出库任务 + if (item.taskType == StaticTaskType.FiveProductOut)//出库任务 { BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 5); if (lineEquip.equipStatus == 0) @@ -127,7 +126,7 @@ namespace Khd.Core.Wcs.Wcs } } - else if (item.taskType == 33)//原材料到背板安装 + else if (item.taskType == StaticTaskType.FiveRawToBack)//原材料到背板安装 { BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == 30); RequestAGVTaskDto agvTask = new() @@ -167,7 +166,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 34)//背板安装到半成品 + else if (item.taskType == StaticTaskType.FiveHalfIn)//背板安装到半成品 { BaseEquip currentEquip = StaticData.BaseEquip.First(t => t.objid == 30); var agvTask = new RequestAGVTaskDto @@ -207,7 +206,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 46)//原材料到拆分区 + else if (item.taskType == StaticTaskType.FiveRawToSplit)//原材料到拆分区 { BaseEquip currentEquip = StaticData.BaseEquip.First(t => t.objid == 29); RequestAGVTaskDto agvTask = new() @@ -247,7 +246,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 28)//拆分区返库 + else if (item.taskType == StaticTaskType.FiveRawSplitReturn)//拆分区返库 { BaseEquip currentEquip = StaticData.BaseEquip.First(t => t.objid == 29); RequestAGVTaskDto agvTask = new() @@ -288,7 +287,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 47)//原材料入库 + else if (item.taskType == StaticTaskType.FiveRawIn)//原材料入库 { BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 5); var agvTask = new RequestAGVTaskDto @@ -328,7 +327,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 66)//移库 + else if (item.taskType == StaticTaskType.FiveRemove)//移库 { var agvTask = new RequestAGVTaskDto { @@ -370,412 +369,410 @@ namespace Khd.Core.Wcs.Wcs } else { + if (item.taskStatus == 3) { - if (item.taskStatus == 3) + if (item.currPointId == 5) { - if (item.currPointId == 5) + var lineSignalValue = StaticData.PlcDic[0].Read(LineSignal.plcpointAddress); + if (lineSignalValue == null || Convert.ToInt32(lineSignalValue) == 0) { - var lineSignalValue = StaticData.PlcDic[0].Read(LineSignal.plcpointAddress); - if (lineSignalValue == null || Convert.ToInt32(lineSignalValue) == 0) - { - Console.WriteLine(DateTime.Now + ":五楼Agv:接驳位为空,无法取货"); - _logger.Info("五楼Agv:接驳位为空,无法取货"); - continue; - } - } - else if (item.endPointId == 5) - { - var lineSignalValue = StaticData.PlcDic[0].Read(LineSignal.plcpointAddress); - if (lineSignalValue == null || Convert.ToInt32(lineSignalValue) == 1) - { - Console.WriteLine(DateTime.Now + ":五楼Agv:接驳位有货,无法送货"); - _logger.Info("五楼Agv:接驳位有货,无法送货"); - continue; - } - } - var agvTask = new RequestAGVTaskDto - { - reqCode = StaticData.SnowId.NextId().ToString(), - taskCode = item.taskCode - }; - string message = JsonConvert.SerializeObject(agvTask); - string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); - ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); - if (reponseMessage != null && reponseMessage.message == "成功") - { - _logger.Info("五楼Agv下发继续任务成功:" + message); - Console.WriteLine(DateTime.Now + ":五楼Agv继续任务:" + item.currPointNo + "," + item.endPointNo); - item.taskStatus = 4; - dbContext.Update(item); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); - dbContext.SaveChanges(); + Console.WriteLine(DateTime.Now + ":五楼Agv:接驳位为空,无法取货"); + _logger.Info("五楼Agv:接驳位为空,无法取货"); + continue; } } - else if (item.taskStatus == 5) + else if (item.endPointId == 5) { - if (item.taskType == 66)//移库 + var lineSignalValue = StaticData.PlcDic[0].Read(LineSignal.plcpointAddress); + if (lineSignalValue == null || Convert.ToInt32(lineSignalValue) == 1) { - Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); - _logger.Info("五楼Agv完成任务成功:" + item.ToJsonString()); - using var dbContextTransaction = dbContext.Database.BeginTransaction(); - try + Console.WriteLine(DateTime.Now + ":五楼Agv:接驳位有货,无法送货"); + _logger.Info("五楼Agv:接驳位有货,无法送货"); + continue; + } + } + var agvTask = new RequestAGVTaskDto + { + reqCode = StaticData.SnowId.NextId().ToString(), + taskCode = item.taskCode + }; + string message = JsonConvert.SerializeObject(agvTask); + string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); + ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); + if (reponseMessage != null && reponseMessage.message == "成功") + { + _logger.Info("五楼Agv下发继续任务成功:" + message); + Console.WriteLine(DateTime.Now + ":五楼Agv继续任务:" + item.currPointNo + "," + item.endPointNo); + item.taskStatus = 4; + dbContext.Update(item); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); + dbContext.SaveChanges(); + } + } + else if (item.taskStatus == 5) + { + if (item.taskType == StaticTaskType.FiveRemove)//移库 + { + Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); + _logger.Info("五楼Agv完成任务成功:" + item.ToJsonString()); + using var dbContextTransaction = dbContext.Database.BeginTransaction(); + try + { + var wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == item.currPointNo).FirstOrDefault(); + if (wmsRawStock != null) { - var wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == item.currPointNo).FirstOrDefault(); - if (wmsRawStock != null) + wmsRawStock.locationCode = item.endPointNo; + dbContext.Update(wmsRawStock); + } + else if (wmsRawStock == null) + { + var wmsProductStock = dbContext.WmsProductStock.FirstOrDefault(t => t.locationCode == item.currPointNo); + if (wmsProductStock != null) { - wmsRawStock.locationCode = item.endPointNo; - dbContext.Update(wmsRawStock); - } - else if (wmsRawStock == null) - { - var wmsProductStock = dbContext.WmsProductStock.FirstOrDefault(t => t.locationCode == item.currPointNo); - if (wmsProductStock != null) - { - wmsProductStock.locationCode = item.endPointNo; - dbContext.Update(wmsProductStock); - } - else - { - continue; - } + wmsProductStock.locationCode = item.endPointNo; + dbContext.Update(wmsProductStock); } else { continue; } - WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First(); - WmsBaseLocation toLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.endPointId).First(); - SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); - SystemData.UnLockOutLocation(toLocation, dbContext); + } + else + { + continue; + } + WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First(); + WmsBaseLocation toLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.endPointId).First(); + 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 - }); - dbContext.Remove(item); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); - dbContext.SaveChanges(); - dbContextTransaction.Commit(); - } - catch (Exception ex) + dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).Update(t => new WmsBaseLocation { - dbContextTransaction.Rollback(); - _logger.Error(ex.Message + "\n" + ex.StackTrace); - } + 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 }); + dbContext.SaveChanges(); + dbContextTransaction.Commit(); } - else if (item.taskType == 38)//出库 + catch (Exception ex) { - 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) + dbContextTransaction.Rollback(); + _logger.Error(ex.Message + "\n" + ex.StackTrace); + } + } + else if (item.taskType == StaticTaskType.FiveProductOut)//出库 + { + 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) + { + wmsProductOutstockDetail.executeStatus = "2"; + wmsProductOutstockDetail.endTime = DateTime.Now; + dbContext.Update(wmsProductOutstockDetail); + wmsProductOutstock.outstockQty += 1; + if (wmsProductOutstock.applyQty <= wmsProductOutstock.outstockQty) { - wmsProductOutstockDetail.executeStatus = "2"; - wmsProductOutstockDetail.endTime = DateTime.Now; - dbContext.Update(wmsProductOutstockDetail); - wmsProductOutstock.outstockQty += 1; - if (wmsProductOutstock.applyQty <= wmsProductOutstock.outstockQty) - { - wmsProductOutstock.endTime = DateTime.Now; - wmsProductOutstock.executeStatus = "2"; - } - WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation - .First(t => t.locationId == item.currPointId && t.warehouseFloor == 5); + wmsProductOutstock.endTime = DateTime.Now; + wmsProductOutstock.executeStatus = "2"; + } + WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation + .First(t => t.locationId == item.currPointId && t.warehouseFloor == 5); + wmsBaseLocation.locationStatus = "1"; + wmsBaseLocation.containerCode = null; + wmsBaseLocation.updateTime = DateTime.Now; + wmsBaseLocation.updateBy = "WCS"; + dbContext.Update(wmsBaseLocation); + SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); + dbContext.WmsProductStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete(); + BaseEquip floorLineEquip = StaticData.BaseEquip.First(t => t.equipType == 1 && t.floorNo == 5); + WcsTask newTask = CoreMapper.Map(item); + newTask.createTime = DateTime.Now; + newTask.nextPointId = floorLineEquip.objid; + newTask.nextPointNo = floorLineEquip.equipNo; + newTask.fromFloorNo = 5; + newTask.floorNo = 1; + newTask.taskStatus = 6; + newTask.objid = StaticData.SnowId.NextId(); + dbContext.Remove(item); + dbContext.Add(newTask); + WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask); + dbContext.Add(wcsTaskLog); + dbContext.SaveChanges(); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); + } + } + else if (item.taskType == StaticTaskType.FiveRawToBack)//原材料到背板安装 + { + 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) + { + WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.Where(t => t.rawOutstockId == wmsRawOutstock.rawOutstockId && t.executeStatus == "1").FirstOrDefault(); + if (wmsRawOutstockDetail != null) + { + wmsRawOutstock.realOutstockAmount += 1; + wmsRawOutstockDetail.executeStatus = "2"; + wmsRawOutstock.executeStatus = "2"; + wmsRawOutstock.endTime = DateTime.Now; + wmsRawOutstockDetail.outstockTime = DateTime.Now; + WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId); + SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); + wmsBaseLocation.returnFlag = "0"; wmsBaseLocation.locationStatus = "1"; wmsBaseLocation.containerCode = null; wmsBaseLocation.updateTime = DateTime.Now; wmsBaseLocation.updateBy = "WCS"; + dbContext.Update(wmsRawOutstock); + dbContext.Update(wmsRawOutstockDetail); dbContext.Update(wmsBaseLocation); - SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); - dbContext.WmsProductStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete(); - BaseEquip floorLineEquip = StaticData.BaseEquip.First(t => t.equipType == 1 && t.floorNo == 5); - WcsTask newTask = CoreMapper.Map(item); - newTask.createTime = DateTime.Now; - newTask.nextPointId = floorLineEquip.objid; - newTask.nextPointNo = floorLineEquip.equipNo; - newTask.fromFloorNo = 5; - newTask.floorNo = 1; - newTask.taskStatus = 6; - newTask.objid = StaticData.SnowId.NextId(); - dbContext.Remove(item); - dbContext.Add(newTask); - WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask); - dbContext.Add(wcsTaskLog); + dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete(); + dbContext.WcsTask.Remove(item); dbContext.SaveChanges(); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); } } - else if (item.taskType == 33)//原材料到背板安装 + } + else if (item.taskType == StaticTaskType.FiveHalfIn)//半成品入库 + { + 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; + wmsBaseLocation.updateTime = DateTime.Now; + wmsBaseLocation.updateBy = "WCS"; + var mesBasePalletInfo = dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == item.containerNo).FirstOrDefault(); + var wmsProductInstock = dbContext.WmsProductInstock + .Where(t => t.executeStatus == "1" && t.productType == "2" && t.warehouseId == 521) + .FirstOrDefault(); + if (mesBasePalletInfo != null && wmsProductInstock != null) { - 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) + //WmsProductInstockDetail? wmsProductInstockDetail = dbContext.WmsProductInstockDetail.Where(t => t.productInstockId == wmsProductInstock.productInstockId).FirstOrDefault(); + //if (wmsProductInstockDetail != null) + //{ + wmsProductInstock.executeStatus = "2"; + wmsProductInstock.endTime = DateTime.Now; + dbContext.Update(wmsProductInstock); + WmsProductStock wmsProductStock = new WmsProductStock() { - WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.Where(t => t.rawOutstockId == wmsRawOutstock.rawOutstockId && t.executeStatus == "1").FirstOrDefault(); - if (wmsRawOutstockDetail != null) - { - wmsRawOutstock.realOutstockAmount += 1; - wmsRawOutstockDetail.executeStatus = "2"; - wmsRawOutstock.executeStatus = "2"; - wmsRawOutstock.endTime = DateTime.Now; - wmsRawOutstockDetail.outstockTime = DateTime.Now; - WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId); - SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); - wmsBaseLocation.returnFlag = "0"; - wmsBaseLocation.locationStatus = "1"; - wmsBaseLocation.containerCode = null; - wmsBaseLocation.updateTime = DateTime.Now; - wmsBaseLocation.updateBy = "WCS"; - dbContext.Update(wmsRawOutstock); - dbContext.Update(wmsRawOutstockDetail); - dbContext.Update(wmsBaseLocation); - dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete(); - dbContext.WcsTask.Remove(item); - dbContext.SaveChanges(); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); - } - } + productId = wmsProductInstock.productId, + activeFlag = "1", + updateBy = "WCS", + updateDate = DateTime.Now, + saleorderCode = wmsProductInstock.saleorderCode, + saleOrderId = wmsProductInstock.SaleOrderId == null ? 0 : wmsProductInstock.SaleOrderId, + stockType = "2", + productStockId = wmsProductInstock.productInstockId, + qualityStatus = "0", + createBy = "WCS", + createDate = DateTime.Now, + locationCode = wmsBaseLocation.locationCode, + warehouseFloor = 5, + totalAmount = 1, + instockDate = DateTime.Now, + productBatch = mesBasePalletInfo.materialBarcode, + palletInfoCode = mesBasePalletInfo.palletInfoCode, + frozenAmount = 0, + occupyAmount = 0, + planCode = wmsProductInstock.planCode, + planDetailCode = wmsProductInstock.planDetailCode, + warehouseId = 512 + }; + BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); + //wmsProductInstockDetail.executeStatus = "2"; + //wmsProductInstockDetail.instockDate = DateTime.Now; + startEquip.emptyCount = 0; + //dbContext.Update(wmsProductInstockDetail); + dbContext.Update(startEquip); + dbContext.Add(wmsProductStock); + dbContext.Update(wmsBaseLocation); + dbContext.WcsTask.Remove(item); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); + dbContext.SaveChanges(); + //} + } - else if (item.taskType == 34)//半成品入库 + } + else if (item.taskType == StaticTaskType.FiveRawToSplit)//原材料到柜体拆分 + { + 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) { - Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); - _logger.Info("五楼Agv完成任务成功:" + item.ToJsonString()); - WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId); + wmsRawOutStock.realOutstockAmount += 1; + wmsRawOutstockDetail.executeStatus = "2"; + wmsRawOutStock.executeStatus = "2"; + wmsRawOutStock.endTime = DateTime.Now; + wmsRawOutstockDetail.outstockTime = DateTime.Now; + dbContext.Update(wmsRawOutStock); + dbContext.Update(wmsRawOutstockDetail); + WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId); wmsBaseLocation.locationStatus = "1"; - wmsBaseLocation.containerCode = item.containerNo; + wmsBaseLocation.containerCode = null; wmsBaseLocation.updateTime = DateTime.Now; wmsBaseLocation.updateBy = "WCS"; - var mesBasePalletInfo = dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == item.containerNo).FirstOrDefault(); - var wmsProductInstock = dbContext.WmsProductInstock - .Where(t => t.executeStatus == "1" && t.productType == "2" && t.warehouseId == 521) - .FirstOrDefault(); - if (mesBasePalletInfo != null && wmsProductInstock != null) + SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); + WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).FirstOrDefault(); + if (wmsRawStock != null) { - //WmsProductInstockDetail? wmsProductInstockDetail = dbContext.WmsProductInstockDetail.Where(t => t.productInstockId == wmsProductInstock.productInstockId).FirstOrDefault(); - //if (wmsProductInstockDetail != null) - //{ - wmsProductInstock.executeStatus = "2"; - wmsProductInstock.endTime = DateTime.Now; - dbContext.Update(wmsProductInstock); - WmsProductStock wmsProductStock = new WmsProductStock() + dbContext.Remove(wmsRawStock); + dbContext.Update(wmsBaseLocation); + dbContext.Remove(item); + dbContext.SaveChanges(); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); + } + } + } + else if (item.taskType == StaticTaskType.FiveRawSplitReturn)//柜体拆分到原材料 + { + 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.returnFlag = "1"; + wmsBaseLocation.containerCode = item.containerNo; + wmsBaseLocation.updateTime = DateTime.Now; + wmsBaseLocation.updateBy = "WCS"; + MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == item.containerNo); + if (mesBasePalletInfo != null) + { + MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode); + if (mesBaseBarcodeInfo != null) + { + WmsRawStock wmsRawStock = new() { - productId = wmsProductInstock.productId, + palletInfoCode = mesBasePalletInfo.palletInfoCode, activeFlag = "1", - updateBy = "WCS", - updateDate = DateTime.Now, - saleorderCode = wmsProductInstock.saleorderCode, - saleOrderId = wmsProductInstock.SaleOrderId == null ? 0 : wmsProductInstock.SaleOrderId, - stockType = "2", - productStockId = wmsProductInstock.productInstockId, - qualityStatus = "0", createBy = "WCS", createDate = DateTime.Now, - locationCode = wmsBaseLocation.locationCode, - warehouseFloor = 5, - totalAmount = 1, - instockDate = DateTime.Now, - productBatch = mesBasePalletInfo.materialBarcode, - palletInfoCode = mesBasePalletInfo.palletInfoCode, frozenAmount = 0, + instockDate = DateTime.Now, + locationCode = wmsBaseLocation.locationCode, occupyAmount = 0, - planCode = wmsProductInstock.planCode, - planDetailCode = wmsProductInstock.planDetailCode, - warehouseId = 512 + warehouseFloor = 5, + stockType = "1", + totalAmount = 1, + saleOrderId = mesBaseBarcodeInfo.saleOrderId == null ? 0 : mesBaseBarcodeInfo.saleOrderId, + safeFlag = mesBaseBarcodeInfo.safeFlag, + supplierId = mesBaseBarcodeInfo.manufacturerId, + materialId = mesBasePalletInfo.materialId, + qualityStatus = "0", + rawStockId = StaticData.SnowId.NextId(), + completeFlag = "0", + instockBatch = mesBaseBarcodeInfo.barcodeInfo, + updateBy = "WCS", + updateDate = DateTime.Now, + warehouseId = 511, + }; + WmsRawInstock wmsRawInstock = new WmsRawInstock() + { + beginTime = System.DateTime.Now, + endTime = DateTime.Now, + locationCode = wmsBaseLocation.locationCode, + executeStatus = "2", + instockAmount = 1, + instockType = "2", + materialBatchCode = mesBaseBarcodeInfo.barcodeInfo, + materialId = mesBaseBarcodeInfo.materialId, + operationType = "3", + palletInfoCode = mesBaseBarcodeInfo.palletInfoCode, + poNo = mesBaseBarcodeInfo.poNo, + warehouseId = 511 }; - BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); - //wmsProductInstockDetail.executeStatus = "2"; - //wmsProductInstockDetail.instockDate = DateTime.Now; - startEquip.emptyCount = 0; - //dbContext.Update(wmsProductInstockDetail); - dbContext.Update(startEquip); - dbContext.Add(wmsProductStock); - dbContext.Update(wmsBaseLocation); - dbContext.WcsTask.Remove(item); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); - dbContext.SaveChanges(); - //} - - } - } - else if (item.taskType == 46)//原材料到柜体拆分 - { - 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) - { - wmsRawOutStock.realOutstockAmount += 1; - wmsRawOutstockDetail.executeStatus = "2"; - wmsRawOutStock.executeStatus = "2"; - wmsRawOutStock.endTime = DateTime.Now; - wmsRawOutstockDetail.outstockTime = DateTime.Now; - dbContext.Update(wmsRawOutStock); - dbContext.Update(wmsRawOutstockDetail); - WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId); - wmsBaseLocation.locationStatus = "1"; - wmsBaseLocation.containerCode = null; - wmsBaseLocation.updateTime = DateTime.Now; - wmsBaseLocation.updateBy = "WCS"; SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); - WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).FirstOrDefault(); - if (wmsRawStock != null) - { - dbContext.Remove(wmsRawStock); - dbContext.Update(wmsBaseLocation); - dbContext.Remove(item); - dbContext.SaveChanges(); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); - } + dbContext.Add(wmsRawInstock); + dbContext.Add(wmsRawStock); + BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); + startEquip.emptyCount = 0; + dbContext.Update(startEquip); + dbContext.Update(wmsBaseLocation); + dbContext.Remove(item); + dbContext.SaveChanges(); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); } } - 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.returnFlag = "1"; - wmsBaseLocation.containerCode = item.containerNo; - wmsBaseLocation.updateTime = DateTime.Now; - wmsBaseLocation.updateBy = "WCS"; - MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == item.containerNo); - if (mesBasePalletInfo != null) - { - MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode); - if (mesBaseBarcodeInfo != null) - { - WmsRawStock wmsRawStock = new() - { - palletInfoCode = mesBasePalletInfo.palletInfoCode, - activeFlag = "1", - createBy = "WCS", - createDate = DateTime.Now, - frozenAmount = 0, - instockDate = DateTime.Now, - locationCode = wmsBaseLocation.locationCode, - occupyAmount = 0, - warehouseFloor = 5, - stockType = "1", - totalAmount = 1, - saleOrderId = mesBaseBarcodeInfo.saleOrderId == null ? 0 : mesBaseBarcodeInfo.saleOrderId, - safeFlag = mesBaseBarcodeInfo.safeFlag, - supplierId = mesBaseBarcodeInfo.manufacturerId, - materialId = mesBasePalletInfo.materialId, - qualityStatus = "0", - rawStockId = StaticData.SnowId.NextId(), - completeFlag = "0", - instockBatch = mesBaseBarcodeInfo.barcodeInfo, - updateBy = "WCS", - updateDate = DateTime.Now, - warehouseId = 511, - }; - WmsRawInstock wmsRawInstock = new WmsRawInstock() - { - beginTime = System.DateTime.Now, - endTime = DateTime.Now, - locationCode = wmsBaseLocation.locationCode, - executeStatus = "2", - instockAmount = 1, - instockType = "2", - materialBatchCode = mesBaseBarcodeInfo.barcodeInfo, - materialId = mesBaseBarcodeInfo.materialId, - operationType = "3", - palletInfoCode = mesBaseBarcodeInfo.palletInfoCode, - poNo = mesBaseBarcodeInfo.poNo, - warehouseId = 511 - }; - SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); - dbContext.Add(wmsRawInstock); - dbContext.Add(wmsRawStock); - BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); - startEquip.emptyCount = 0; - dbContext.Update(startEquip); - dbContext.Update(wmsBaseLocation); - dbContext.Remove(item); - dbContext.SaveChanges(); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); - } - } - } - else if (item.taskType == 47)//原材料入库 + } + else if (item.taskType == StaticTaskType.FiveRawIn)//原材料入库 + { + 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; + var mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == item.containerNo); + if (mesBasePalletInfo != null) { - 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; - var mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == item.containerNo); - if (mesBasePalletInfo != null) + var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode); + if (mesBaseBarcodeInfo != null) { - var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode); - if (mesBaseBarcodeInfo != null) + WmsRawStock wmsRawStock = new() { - WmsRawStock wmsRawStock = new() - { - palletInfoCode = mesBasePalletInfo.palletInfoCode, - activeFlag = "1", - createBy = "WCS", - createDate = DateTime.Now, - frozenAmount = 0, - instockDate = DateTime.Now, - locationCode = wmsBaseLocation.locationCode, - occupyAmount = 0, - warehouseFloor = 5, - stockType = "1", - totalAmount = 1, - saleOrderId = mesBaseBarcodeInfo.saleOrderId == null ? 0 : mesBaseBarcodeInfo.saleOrderId, - safeFlag = mesBaseBarcodeInfo.safeFlag, - supplierId = mesBaseBarcodeInfo.manufacturerId, - materialId = mesBasePalletInfo.materialId, - qualityStatus = "0", - rawStockId = StaticData.SnowId.NextId(), - completeFlag = mesBaseBarcodeInfo.completeFlag, - instockBatch = mesBaseBarcodeInfo.barcodeInfo, - updateBy = "WCS", - updateDate = DateTime.Now, - warehouseId = 511, - }; - WmsRawInstock wmsRawInstock = new WmsRawInstock() - { - beginTime = DateTime.Now, - endTime = DateTime.Now, - locationCode = wmsBaseLocation.locationCode, - executeStatus = "2", - instockAmount = 1, - instockType = "1", - materialBatchCode = mesBaseBarcodeInfo.barcodeInfo, - materialId = mesBaseBarcodeInfo.materialId, - operationType = "3", - palletInfoCode = mesBaseBarcodeInfo.palletInfoCode, - poNo = mesBaseBarcodeInfo.poNo, - warehouseId = 511 - }; - SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); - dbContext.Add(wmsRawInstock); - wmsBaseLocation.returnFlag = "0"; - BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 5); - lineEquip.equipStatus = 0; - dbContext.Update(lineEquip); - dbContext.Add(wmsRawStock); - dbContext.Update(wmsBaseLocation); - dbContext.Remove(item); - dbContext.SaveChanges(); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); - } + palletInfoCode = mesBasePalletInfo.palletInfoCode, + activeFlag = "1", + createBy = "WCS", + createDate = DateTime.Now, + frozenAmount = 0, + instockDate = DateTime.Now, + locationCode = wmsBaseLocation.locationCode, + occupyAmount = 0, + warehouseFloor = 5, + stockType = "1", + totalAmount = 1, + saleOrderId = mesBaseBarcodeInfo.saleOrderId == null ? 0 : mesBaseBarcodeInfo.saleOrderId, + safeFlag = mesBaseBarcodeInfo.safeFlag, + supplierId = mesBaseBarcodeInfo.manufacturerId, + materialId = mesBasePalletInfo.materialId, + qualityStatus = "0", + rawStockId = StaticData.SnowId.NextId(), + completeFlag = mesBaseBarcodeInfo.completeFlag, + instockBatch = mesBaseBarcodeInfo.barcodeInfo, + updateBy = "WCS", + updateDate = DateTime.Now, + warehouseId = 511, + }; + WmsRawInstock wmsRawInstock = new WmsRawInstock() + { + beginTime = DateTime.Now, + endTime = DateTime.Now, + locationCode = wmsBaseLocation.locationCode, + executeStatus = "2", + instockAmount = 1, + instockType = "1", + materialBatchCode = mesBaseBarcodeInfo.barcodeInfo, + materialId = mesBaseBarcodeInfo.materialId, + operationType = "3", + palletInfoCode = mesBaseBarcodeInfo.palletInfoCode, + poNo = mesBaseBarcodeInfo.poNo, + warehouseId = 511 + }; + SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); + dbContext.Add(wmsRawInstock); + wmsBaseLocation.returnFlag = "0"; + BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 5); + lineEquip.equipStatus = 0; + dbContext.Update(lineEquip); + dbContext.Add(wmsRawStock); + dbContext.Update(wmsBaseLocation); + dbContext.Remove(item); + dbContext.SaveChanges(); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); } } } diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs index 957a5d1..edcf08e 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorBearAgv.cs @@ -103,56 +103,52 @@ namespace Khd.Core.Wcs.Wcs else { //if (item.useFlag == 1)//接料位-工位默认为1,工位到接料位需Mes通知 + if (item.taskStatus == 4)//通知捡料完成 { + var agvTask = new RequestAGVTaskDto { - if (item.taskStatus == 4)//通知捡料完成 + reqCode = StaticData.SnowId.NextId().ToString(), + taskCode = item.taskCode + }; + string message = JsonConvert.SerializeObject(agvTask); + string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); + ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); + if (reponseMessage != null && reponseMessage.message == "成功") + { + _logger.Info("五楼背负式AGV线程完成任务" + item.objid); + Console.WriteLine(DateTime.Now + ":五楼背负式AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); + item.taskStatus = 5; + dbContext.Update(item); + dbContext.SaveChanges(); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 5 }); + } + } + else if (item.taskStatus == 7)//通知拿料完成 + { + _logger.Info("五楼背负式AGV线程完成任务" + item.objid); + Console.WriteLine(DateTime.Now + ":五楼背负式AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); + var agvTask = new RequestAGVTaskDto + { + reqCode = StaticData.SnowId.NextId().ToString(), + taskCode = item.taskCode + }; + string message = JsonConvert.SerializeObject(agvTask); + string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); + ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); + if (reponseMessage != null && reponseMessage.message == "成功") + { + if (item.taskType == 48) { - var agvTask = new RequestAGVTaskDto + WmsRawReturn? wmsRawReturn = dbContext.WmsRawReturn.Where(t => t.rawReturnId == item.orderId).FirstOrDefault(); + if (wmsRawReturn != null) { - reqCode = StaticData.SnowId.NextId().ToString(), - taskCode = item.taskCode - }; - string message = JsonConvert.SerializeObject(agvTask); - string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); - ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); - if (reponseMessage != null && reponseMessage.message == "成功") - { - _logger.Info("五楼背负式AGV线程完成任务" + item.objid); - Console.WriteLine(DateTime.Now + ":五楼背负式AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); - item.taskStatus = 5; - dbContext.Update(item); - dbContext.SaveChanges(); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 5 }); - } - } - else if (item.taskStatus == 7)//通知拿料完成 - { - _logger.Info("五楼背负式AGV线程完成任务" + item.objid); - Console.WriteLine(DateTime.Now + ":五楼背负式AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); - var agvTask = new RequestAGVTaskDto - { - reqCode = StaticData.SnowId.NextId().ToString(), - taskCode = item.taskCode - }; - string message = JsonConvert.SerializeObject(agvTask); - string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); - ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); - if (reponseMessage != null && reponseMessage.message == "成功") - { - if (item.taskType == 48) - { - WmsRawReturn? wmsRawReturn = dbContext.WmsRawReturn.Where(t => t.rawReturnId == item.orderId).FirstOrDefault(); - if (wmsRawReturn != null) - { - wmsRawReturn.executeStatus = "2"; - dbContext.Update(wmsRawReturn); - } - } - dbContext.Remove(item); - dbContext.SaveChanges(); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); + wmsRawReturn.executeStatus = "2"; + dbContext.Update(wmsRawReturn); } } + dbContext.Remove(item); + dbContext.SaveChanges(); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); } } } diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs index cf2a9e6..82a4e02 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorCTU.cs @@ -120,7 +120,7 @@ namespace Khd.Core.Wcs.Wcs nextPointNo = ctuEquip.equipNo, endPointId = wmsBaseLocation.locationId, endPointNo = wmsBaseLocation.agvPositionCode, - taskType = 29, + taskType = StaticTaskType.FiveAccessoryIn, taskStatus = 0, useFlag = 1, floorNo = 5, @@ -147,7 +147,7 @@ namespace Khd.Core.Wcs.Wcs } else { - if (task.taskType == 30) + if (task.taskType == StaticTaskType.FiveAccessoryOut) { dbContext.WcsTask.Where(t => t.objid == task.objid).Delete(); //根据rfid找到库位 @@ -168,7 +168,7 @@ namespace Khd.Core.Wcs.Wcs useFlag = 1, endPointId = wmsBaseLocation.locationId, endPointNo = wmsBaseLocation.agvPositionCode, - taskType = 29, + taskType = StaticTaskType.FiveAccessoryIn, taskStatus = 0, floorNo = 5, containerNo = rfid.ToString(), @@ -188,7 +188,7 @@ namespace Khd.Core.Wcs.Wcs } } } - else if (task.taskType == 100) + else if (task.taskType == StaticTaskType.FiveAccessoryStorage) { WmsInventoryCheck? wmsInventoryCheck = dbContext.WmsInventoryCheck.Where(t => t.InventoryCheckId == task.orderId).FirstOrDefault(); if (wmsInventoryCheck != null) @@ -219,7 +219,7 @@ namespace Khd.Core.Wcs.Wcs useFlag = 1, endPointId = wmsBaseLocation.locationId, endPointNo = wmsBaseLocation.agvPositionCode, - taskType = 29, + taskType = StaticTaskType.FiveAccessoryIn, taskStatus = 0, floorNo = 5, containerNo = rfid.ToString(), @@ -253,21 +253,6 @@ namespace Khd.Core.Wcs.Wcs { StaticData.PlcDic[1].WriteToPoint(CtuLineWaring.plcpointAddress, false, CtuLineWaring.plcpointLength.ToString()); } - //else if (receiveMaterial != null && Convert.ToInt32(receiveMaterial) == 0) - //{ - // lock (SystemData.outStockLock) - // { - // WcsOutstockLock wcsOutstockLock = dbContext.WcsOutstockLock.Where(t => t.warehouseId == 512).First(); - // bool haveTask = dbContext.WcsTask.Where(t => t.nextPointId == 11).Any(); - // if (!haveTask && wcsOutstockLock.boxStatus == 1) - // { - // wcsOutstockLock.boxStatus = 0; - // wcsOutstockLock.qty = 0; - // dbContext.Update(wcsOutstockLock); - // dbContext.SaveChanges(); - // } - // } - //} } catch (Exception ex) { @@ -373,14 +358,14 @@ namespace Khd.Core.Wcs.Wcs dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); var taskList = dbContext.WcsTask .Where(t => t.useFlag == 1) - .Where(t => t.IsDelete == 0 || t.IsDelete == null) + .Where(t => t.IsDelete == 0 || t.IsDelete == null) .Where(t => t.nextPointId == CTUID).OrderByDescending(t => t.ud1).ToList(); foreach (var item in taskList) { item.updateTime = DateTime.Now; if (item.taskStatus == 0)//CTU会同时生成多个任务,生成就下发? { - if (item.taskType == 30 || item.taskType == 100 || item.taskType == 102)//出库任务 + if (item.taskType == StaticTaskType.FiveAccessoryOut || item.taskType == StaticTaskType.FiveAccessoryStorage || item.taskType == StaticTaskType.FiveAccessoryRemove)//出库任务 { BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId); @@ -421,9 +406,9 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("CTU下发出库任务失败:" + reponseMessage?.message); } } - else if (item.taskType == 29)//入库任务 + else if (item.taskType == StaticTaskType.FiveAccessoryIn)//入库任务 { - bool haveOut = taskList.Where(t => t.taskType == 30).Where(t => t.taskStatus != 6).Any(); + bool haveOut = taskList.Where(t => t.taskType == StaticTaskType.FiveAccessoryOut).Where(t => t.taskStatus != 6).Any(); if (!haveOut && CtuWaitLogic()) { BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); @@ -460,8 +445,8 @@ namespace Khd.Core.Wcs.Wcs dbContext.Update(item); lock (SystemData.outStockLock) { - bool hasTask = dbContext.WcsTask.Where(t => t.nextPointId == 11 && t.taskType == 30).Any(); - int taskCount = dbContext.WcsTask.Where(t => t.nextPointId == 11 && t.taskType == 29).Count(); + bool hasTask = dbContext.WcsTask.Where(t => t.nextPointId == 11 && t.taskType == StaticTaskType.FiveAccessoryOut).Any(); + int taskCount = dbContext.WcsTask.Where(t => t.nextPointId == 11 && t.taskType == StaticTaskType.FiveAccessoryIn).Count(); if ((!hasTask && item.ud3 == "1") || (taskCount >= 6))//如果CTU当前任务数量很多,取消预执行任务,或者出库的任务都生成了入库任务 { ExecuteInTask(baseEquip); @@ -478,115 +463,113 @@ namespace Khd.Core.Wcs.Wcs } else { + if (item.taskStatus == 3) { - if (item.taskStatus == 3) + if (item.taskType == StaticTaskType.FiveAccessoryOut || item.taskType == StaticTaskType.FiveAccessoryStorage || item.taskType == StaticTaskType.FiveAccessoryRemove) { - if (item.taskType == 30 || item.taskType == 100 || item.taskType == 102) - { - var canOut = StaticData.PlcDic[1].Read(isput.plcpointAddress); - if (canOut != null && Convert.ToInt64(canOut) == 0) - { - var agvTask = new - { - reqCode = StaticData.SnowId.NextId().ToString(), - taskCode = item.taskCode, - type = 2 - }; - string message = JsonConvert.SerializeObject(agvTask); - string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/boxApplyPass", message); - ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); - if (reponseMessage != null && reponseMessage.code == "0") - { - _logger.Info("五楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message); - Console.WriteLine(DateTime.Now + ":五楼CTU线程继续任务" + item.currPointId + "," + item.endPointNo); - dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 }); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); - } - else - { - _logger.Info("CTU第一次下发继续任务失败:" + reponseMessage?.message); - } - } - } - if (item.taskType == 29) + var canOut = StaticData.PlcDic[1].Read(isput.plcpointAddress); + if (canOut != null && Convert.ToInt64(canOut) == 0) { var agvTask = new { reqCode = StaticData.SnowId.NextId().ToString(), taskCode = item.taskCode, - type = 1 + type = 2 }; string message = JsonConvert.SerializeObject(agvTask); string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/boxApplyPass", message); ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); if (reponseMessage != null && reponseMessage.code == "0") { - _logger.Info("五楼CTU线程下发任务" + agvTask.ToJsonString() + "\n" + message); - Console.WriteLine(DateTime.Now + ":五楼CTU线程下发任务" + item.currPointId + "," + item.endPointNo); + _logger.Info("五楼AGV线程下发任务" + agvTask.ToJsonString() + "\n" + message); + Console.WriteLine(DateTime.Now + ":五楼CTU线程继续任务" + item.currPointId + "," + item.endPointNo); dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); - dbContext.SaveChanges(); } else { - _logger.Info("CTU第二次下发继续任务失败:" + reponseMessage?.message); + _logger.Info("CTU第一次下发继续任务失败:" + reponseMessage?.message); } } } - else if (item.taskStatus == 5) + if (item.taskType == StaticTaskType.FiveAccessoryIn) { - _logger.Info("五楼CTU线程完成任务" + item.objid); - Console.WriteLine(DateTime.Now + ":五楼CTU线程完成任务" + item.currPointNo + "," + item.endPointNo); - if (item.taskType == 30)//出库任务 + var agvTask = new { - WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.FirstOrDefault(t => t.taskCode == item.objid.ToString()); - if (wmsRawOutstockDetail != null) - { - wmsRawOutstockDetail.executeStatus = "2"; - wmsRawOutstockDetail.updateDate = DateTime.Now; - dbContext.Update(wmsRawOutstockDetail); - } - WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation - .First(t => t.locationId == item.currPointId && t.warehouseFloor == 5); - wmsBaseLocation.locationStatus = "1"; - wmsBaseLocation.ContainerStatus = "2"; - dbContext.Update(wmsBaseLocation); + reqCode = StaticData.SnowId.NextId().ToString(), + taskCode = item.taskCode, + type = 1 + }; + string message = JsonConvert.SerializeObject(agvTask); + string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/boxApplyPass", message); + ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); + if (reponseMessage != null && reponseMessage.code == "0") + { + _logger.Info("五楼CTU线程下发任务" + agvTask.ToJsonString() + "\n" + message); + Console.WriteLine(DateTime.Now + ":五楼CTU线程下发任务" + item.currPointId + "," + item.endPointNo); + dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 }); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); dbContext.SaveChanges(); - dbContext.WmsRawOutstockDetail.Where(t => t.locationCode == wmsBaseLocation.locationCode).Update(t => new WmsRawOutstockDetail { executeStatus = "2" }); - dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 6 }); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); - int wcsTaskCount = dbContext.WcsTask.Where(t => t.taskType == 30 && t.taskStatus != 6).Count(); - if (wcsTaskCount == 0) - { - StaticData.PlcDic[1].WriteToPoint(this.canReceive.plcpointAddress, "1", this.canReceive.plcpointLength?.ToString()); - } } - else if (item.taskType == 29)//入库任务 + else { - WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation - .First(t => t.locationId == item.endPointId && t.warehouseFloor == 5); - wmsBaseLocation.locationStatus = "1"; - wmsBaseLocation.ContainerStatus = "1"; - dbContext.Update(wmsBaseLocation); - dbContext.Remove(item); - dbContext.SaveChanges(); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); + _logger.Info("CTU第二次下发继续任务失败:" + reponseMessage?.message); } - else if (item.taskType == 100 || item.taskType == 102)//出库任务 + } + } + else if (item.taskStatus == 5) + { + _logger.Info("五楼CTU线程完成任务" + item.objid); + Console.WriteLine(DateTime.Now + ":五楼CTU线程完成任务" + item.currPointNo + "," + item.endPointNo); + if (item.taskType == StaticTaskType.FiveAccessoryOut)//出库任务 + { + WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.FirstOrDefault(t => t.taskCode == item.objid.ToString()); + if (wmsRawOutstockDetail != null) { - WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation - .First(t => t.locationId == item.currPointId && t.warehouseFloor == 5); - wmsBaseLocation.locationStatus = "1"; - wmsBaseLocation.ContainerStatus = "2"; - dbContext.Update(wmsBaseLocation); - dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 6 }); - dbContext.SaveChanges(); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); - int wcsTaskCount = dbContext.WcsTask.Where(t => (t.taskType == 30 || t.taskType == 100 || item.taskType == 102) && t.taskStatus != 6).Count(); - if (wcsTaskCount == 0) - { - StaticData.PlcDic[1].WriteToPoint(this.canReceive.plcpointAddress, "1", this.canReceive.plcpointLength?.ToString()); - } + wmsRawOutstockDetail.executeStatus = "2"; + wmsRawOutstockDetail.updateDate = DateTime.Now; + dbContext.Update(wmsRawOutstockDetail); + } + WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation + .First(t => t.locationId == item.currPointId && t.warehouseFloor == 5); + wmsBaseLocation.locationStatus = "1"; + wmsBaseLocation.ContainerStatus = "2"; + dbContext.Update(wmsBaseLocation); + dbContext.SaveChanges(); + dbContext.WmsRawOutstockDetail.Where(t => t.locationCode == wmsBaseLocation.locationCode).Update(t => new WmsRawOutstockDetail { executeStatus = "2" }); + dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 6 }); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); + int wcsTaskCount = dbContext.WcsTask.Where(t => t.taskType == StaticTaskType.FiveAccessoryOut && t.taskStatus != 6).Count(); + if (wcsTaskCount == 0) + { + StaticData.PlcDic[1].WriteToPoint(this.canReceive.plcpointAddress, "1", this.canReceive.plcpointLength?.ToString()); + } + } + else if (item.taskType == StaticTaskType.FiveAccessoryIn)//入库任务 + { + WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation + .First(t => t.locationId == item.endPointId && t.warehouseFloor == 5); + wmsBaseLocation.locationStatus = "1"; + wmsBaseLocation.ContainerStatus = "1"; + dbContext.Update(wmsBaseLocation); + dbContext.Remove(item); + dbContext.SaveChanges(); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); + } + else if (item.taskType == StaticTaskType.FiveAccessoryStorage || item.taskType == StaticTaskType.FiveAccessoryRemove)//出库任务 + { + WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation + .First(t => t.locationId == item.currPointId && t.warehouseFloor == 5); + wmsBaseLocation.locationStatus = "1"; + wmsBaseLocation.ContainerStatus = "2"; + dbContext.Update(wmsBaseLocation); + dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 6 }); + dbContext.SaveChanges(); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); + int wcsTaskCount = dbContext.WcsTask.Where(t => (item.taskType == StaticTaskType.FiveAccessoryOut || item.taskType == StaticTaskType.FiveAccessoryStorage || item.taskType == StaticTaskType.FiveAccessoryRemove) && t.taskStatus != 6).Count(); + if (wcsTaskCount == 0) + { + StaticData.PlcDic[1].WriteToPoint(this.canReceive.plcpointAddress, "1", this.canReceive.plcpointLength?.ToString()); } } } diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs index fe9d247..09f852b 100644 --- a/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs +++ b/src/Khd.Core.Wcs/Wcs/FiveFloorPoint.cs @@ -50,6 +50,7 @@ namespace Khd.Core.Wcs.Wcs using var scope = _host.Services.CreateScope(); using var dbContext = scope.ServiceProvider.GetRequiredService(); List canNotIn = new(); + string lastRFID = string.Empty; while (true) { try @@ -72,6 +73,10 @@ namespace Khd.Core.Wcs.Wcs { if (StaticData.BigContainerCodes.Contains(rfid)) { + if (rfid == lastRFID) + { + continue; + } MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == rfid); if (mesBasePalletInfo != null) { @@ -93,8 +98,8 @@ namespace Khd.Core.Wcs.Wcs dbContext.Remove(wcsTask); dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.SaveChanges(); + lastRFID = rfid; } - continue; } else//小托盘 { @@ -185,7 +190,7 @@ namespace Khd.Core.Wcs.Wcs newTask.endPointNo = wmsBaseLocation.locationCode; newTask.objid = StaticData.SnowId.NextId(); newTask.createTime = DateTime.Now; - newTask.taskType = 47; + newTask.taskType = StaticTaskType.FiveRawIn; if (newTask.fromFloorNo != 1)//如果不是一楼来的,需要通过接口确认入库(质检通过后,点击继续入库) { newTask.useFlag = 0; diff --git a/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs index 63182e6..1d2f278 100644 --- a/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs +++ b/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs @@ -67,7 +67,7 @@ namespace Khd.Core.Wcs.Wcs if (item.taskStatus == 0)//下发任务 { BaseDictionary baseDictionary = StaticData.BaseDictionary.First(t => t.objid == item.taskType); - if (item.taskType == 51)//输送线-小包入口 + if (item.taskType == StaticTaskType.SecondLineToSmallPackage)//输送线-小包入口 { var agvTask = new RequestAGVTaskDto { @@ -106,7 +106,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 56)//废料工位-库位 + else if (item.taskType == StaticTaskType.SecondWasteToTransit)//废料工位-库位 { var endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); var agvTask = new RequestAGVTaskDto @@ -147,7 +147,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 49)//小包出口-库位 + else if (item.taskType == StaticTaskType.SecondSmallPackageToStorage)//小包出口-库位 { BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); var agvTask = new RequestAGVTaskDto @@ -187,7 +187,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("二楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 57)//周转位-提升机 + else if (item.taskType == StaticTaskType.SecondTransitToLift)//周转位-提升机 { var startPoint = StaticData.BaseEquip.First(t => t.objid == item.currPointId); var agvTask = new RequestAGVTaskDto @@ -227,7 +227,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 50)//库位-提升机 + else if (item.taskType == StaticTaskType.SecondStorageToLift)//库位-提升机 { var startPoint = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId); lineEquip = dbContext.BaseEquip.First(t => t.objid == 2); @@ -273,7 +273,7 @@ namespace Khd.Core.Wcs.Wcs } } } - else if (item.taskType == 55)//2F移库 + else if (item.taskType == StaticTaskType.SecondRemove)//2F移库 { var agvTask = new RequestAGVTaskDto { @@ -313,7 +313,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 53)//提升机-废料工位 + else if (item.taskType == StaticTaskType.SecondLiftToWaste)//提升机-废料工位 { var agvTask = new RequestAGVTaskDto { @@ -352,7 +352,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 54)//周转位-废料工位 + else if (item.taskType == StaticTaskType.SecondTransitToWaste)//周转位-废料工位 { var wasteEquipLocation = StaticData.BaseEquip.FirstOrDefault(t => t.objid == item.currPointId); if (wasteEquipLocation != null) @@ -395,7 +395,7 @@ namespace Khd.Core.Wcs.Wcs } } } - else if (item.taskType == 58)//提升机到周转位 + else if (item.taskType == StaticTaskType.SecondLiftToTransit)//提升机到周转位 { var endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); var agvTask = new RequestAGVTaskDto @@ -435,7 +435,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 59)//周转位-小包入口 + else if (item.taskType == StaticTaskType.SecondTransitToSmallPackage)//周转位-小包入口 { BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); @@ -479,69 +479,13 @@ namespace Khd.Core.Wcs.Wcs } else { + if (item.taskStatus == 3) { - if (item.taskStatus == 3) + _logger.Info("二楼AGV线程继续任务" + item.objid); + if (item.currPointId == lineEquip.objid) { - _logger.Info("二楼AGV线程继续任务" + item.objid); - if (item.currPointId == lineEquip.objid) - { - var lineSignal02 = StaticData.PlcDic[0].Read(StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal02").plcpointAddress); - if (lineSignal02 != null && lineSignal02.ToString() == "1") - { - var agvTask = new RequestAGVTaskDto - { - reqCode = StaticData.SnowId.NextId().ToString(), - taskCode = item.taskCode - }; - string message = JsonConvert.SerializeObject(agvTask); - string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); - ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); - if (reponseMessage != null && reponseMessage.message == "成功") - { - dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 }); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); - } - } - } - else if (item.currPointId == wasteEquip.objid) - { - if (true) - { - var agvTask = new RequestAGVTaskDto - { - reqCode = StaticData.SnowId.NextId().ToString(), - taskCode = item.taskCode - }; - string message = JsonConvert.SerializeObject(agvTask); - string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); - ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); - if (reponseMessage != null && reponseMessage.message == "成功") - { - dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 }); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); - } - } - } - else if (item.currPointId == outEquip.objid) - { - if (true) - { - var agvTask = new RequestAGVTaskDto - { - reqCode = StaticData.SnowId.NextId().ToString(), - taskCode = item.taskCode - }; - string message = JsonConvert.SerializeObject(agvTask); - string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); - ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); - if (reponseMessage != null && reponseMessage.message == "成功") - { - dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 }); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); - } - } - } - else + var lineSignal02 = StaticData.PlcDic[0].Read(StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal02").plcpointAddress); + if (lineSignal02 != null && lineSignal02.ToString() == "1") { var agvTask = new RequestAGVTaskDto { @@ -558,261 +502,315 @@ namespace Khd.Core.Wcs.Wcs } } } - else if (item.taskStatus == 5) + else if (item.currPointId == wasteEquip.objid) { - if (item.taskType == 51) + if (true) { - if (true) + var agvTask = new RequestAGVTaskDto { - var agvTask = new RequestAGVTaskDto - { - reqCode = StaticData.SnowId.NextId().ToString(), - taskCode = item.taskCode - }; - string message = JsonConvert.SerializeObject(agvTask); - string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); - ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); - if (reponseMessage != null && reponseMessage.message == "成功") - { - dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 6 }); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); - } + reqCode = StaticData.SnowId.NextId().ToString(), + taskCode = item.taskCode + }; + string message = JsonConvert.SerializeObject(agvTask); + string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); + ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); + if (reponseMessage != null && reponseMessage.message == "成功") + { + dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 }); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); } } } - else if (item.taskStatus == 7) + else if (item.currPointId == outEquip.objid) { - if (item.currPointId == 2) + if (true) { - lineEquip = dbContext.BaseEquip.First(t => t.objid == 2); - lineEquip.equipStatus = 0; - dbContext.Update(lineEquip); - } - if (item.taskType == 49) - { - //WmsProductInstock? wmsProductInstock = dbContext.WmsProductInstock.FirstOrDefault(t => t.productInstockId == item.orderId); - //if (wmsProductInstock != null) - //{ - // WmsProductInstockDetail? wmsProductInstockDetail = dbContext.WmsProductInstockDetail.FirstOrDefault(t => t.productInstockId == wmsProductInstock.productInstockId); - // if (wmsProductInstockDetail != null) - // { - MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == item.containerNo); - if (mesBasePalletInfo != null) + var agvTask = new RequestAGVTaskDto { - MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.palletInfoCode == item.containerNo); - if (mesBaseBarcodeInfo != null) - { - WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId); - wmsBaseLocation.locationStatus = "1"; - wmsBaseLocation.containerCode = item.containerNo; - WmsProductStock wmsProductStock = new WmsProductStock() - { - productId = mesBasePalletInfo.materialId, - activeFlag = "1", - frozenAmount = 0, - createBy = "WCS", - createDate = DateTime.Now, - updateBy = "WCS", - updateDate = DateTime.Now, - instockDate = DateTime.Now, - locationCode = wmsBaseLocation.locationCode, - occupyAmount = 0, - totalAmount = 1, - palletInfoCode = item.containerNo, - planCode = mesBaseBarcodeInfo.planCode, - planDetailCode = mesBaseBarcodeInfo.planDetailCode, - productBatch = mesBasePalletInfo.materialBarcode, - saleorderCode = mesBaseBarcodeInfo.saleorderCode, - productStockId = StaticData.SnowId.NextId(), - saleOrderId = mesBaseBarcodeInfo.saleOrderId, - stockType = "3", - qualityStatus = "0", - warehouseFloor = 2, - warehouseId = wmsBaseLocation.warehouseId - }; - //wmsProductInstockDetail.executeStatus = "2"; - //wmsProductInstock.endTime = DateTime.Now; - //wmsProductInstock.executeStatus = "2"; - //dbContext.Update(wmsProductInstockDetail); - dbContext.Add(wmsProductStock); - dbContext.Update(wmsBaseLocation); - SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); - //dbContext.Update(wmsProductInstock); - dbContext.Remove(item); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); - dbContext.SaveChanges(); - _logger.Info("二楼AGV线程完成任务" + item.objid); - } - // } - //} + reqCode = StaticData.SnowId.NextId().ToString(), + taskCode = item.taskCode + }; + string message = JsonConvert.SerializeObject(agvTask); + string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); + ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); + if (reponseMessage != null && reponseMessage.message == "成功") + { + dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 }); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); } } - else if (item.taskType == 50)//成品出库 + } + else + { + var agvTask = new RequestAGVTaskDto { - WmsProductOutstock? wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == item.orderId); - if (wmsProductOutstock != null) + reqCode = StaticData.SnowId.NextId().ToString(), + taskCode = item.taskCode + }; + string message = JsonConvert.SerializeObject(agvTask); + string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); + ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); + if (reponseMessage != null && reponseMessage.message == "成功") + { + dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 4 }); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); + } + } + } + else if (item.taskStatus == 5) + { + if (item.taskType == StaticTaskType.SecondLineToSmallPackage) + { + if (true) + { + var agvTask = new RequestAGVTaskDto { - WmsProductOutstockDetail? wmsProductOutstockDetail = dbContext.WmsProductOutstockDetail.FirstOrDefault(t => t.productOutstockId == wmsProductOutstock.productOutstockId); - if (wmsProductOutstockDetail != null) - { - var wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First(); - WmsProductStock wmsProductStock = dbContext.WmsProductStock.First(t => t.locationCode == wmsBaseLocation.locationCode); - wmsProductOutstock.outstockQty++; - if (wmsProductOutstock.applyQty <= wmsProductOutstock.outstockQty) - { - wmsProductOutstock.endTime = DateTime.Now; - wmsProductOutstock.executeStatus = "2"; - } - wmsProductOutstockDetail.executeStatus = "2"; - wmsProductOutstockDetail.endTime = DateTime.Now; - wmsBaseLocation.locationStatus = "1"; - wmsBaseLocation.containerCode = null; - item.nextPointId = 2; - item.taskStatus = 8; - SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); - dbContext.Remove(wmsProductStock); - dbContext.Update(wmsBaseLocation); - dbContext.Update(wmsProductOutstockDetail); - dbContext.Update(wmsProductOutstock); - dbContext.Update(item); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); - dbContext.SaveChanges(); - _logger.Info("二楼AGV线程完成任务" + item.objid); - } + reqCode = StaticData.SnowId.NextId().ToString(), + taskCode = item.taskCode + }; + string message = JsonConvert.SerializeObject(agvTask); + string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/continueTask", message); + ReponseMessage? reponseMessage = JsonConvert.DeserializeObject(result); + if (reponseMessage != null && reponseMessage.message == "成功") + { + dbContext.WcsTask.Where(t => t.objid == item.objid).Update(t => new WcsTask() { taskStatus = 6 }); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); } } - else if (item.taskType == 58)//空托盘入周转位 + } + } + else if (item.taskStatus == 7) + { + if (item.currPointId == 2) + { + lineEquip = dbContext.BaseEquip.First(t => t.objid == 2); + lineEquip.equipStatus = 0; + dbContext.Update(lineEquip); + } + if (item.taskType == StaticTaskType.SecondSmallPackageToStorage) + { + //WmsProductInstock? wmsProductInstock = dbContext.WmsProductInstock.FirstOrDefault(t => t.productInstockId == item.orderId); + //if (wmsProductInstock != null) + //{ + // WmsProductInstockDetail? wmsProductInstockDetail = dbContext.WmsProductInstockDetail.FirstOrDefault(t => t.productInstockId == wmsProductInstock.productInstockId); + // if (wmsProductInstockDetail != null) + // { + MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == item.containerNo); + if (mesBasePalletInfo != null) { - BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); - endEquip.equipStatus = 1; - endEquip.emptyCount = item.qty; - dbContext.Update(endEquip); - dbContext.Remove(item); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); - dbContext.SaveChanges(); - _logger.Info("二楼AGV线程完成任务" + item.objid); - } - else if (item.taskType == 53)//提升机到废料口 - { - BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); - startEquip.equipStatus = 0; - BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); - endEquip.equipStatus = 1; - endEquip.emptyCount = 1; - endEquip.containerNo = item.containerNo; - dbContext.Update(endEquip); - dbContext.Update(startEquip); - dbContext.Remove(item); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); - dbContext.SaveChanges(); - _logger.Info("二楼AGV线程完成任务" + item.objid); - } - else if (item.taskType == 51)//输送线到小包入口 - { - BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); - startEquip.equipStatus = 0; - dbContext.Update(startEquip); - dbContext.Remove(item); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); - dbContext.SaveChanges(); - _logger.Info("二楼AGV线程完成任务" + item.objid); - } - else if (item.taskType == 54)//周转位到废料口 - { - BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); - startEquip.equipStatus = 0; - startEquip.emptyCount = 0; - startEquip.containerNo = null; - BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); - endEquip.equipStatus = 1; - endEquip.emptyCount = 1; - endEquip.containerNo = item.containerNo; - dbContext.Update(startEquip); - dbContext.Update(endEquip); - dbContext.Remove(item); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); - dbContext.SaveChanges(); - _logger.Info("二楼AGV线程完成任务" + item.objid); - } - else if (item.taskType == 55)//移库 - { - using var transaction = dbContext.Database.BeginTransaction(); - try + MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.palletInfoCode == item.containerNo); + if (mesBaseBarcodeInfo != null) { - 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 wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.endPointId); + wmsBaseLocation.locationStatus = "1"; + wmsBaseLocation.containerCode = item.containerNo; + WmsProductStock wmsProductStock = new WmsProductStock() + { + productId = mesBasePalletInfo.materialId, + activeFlag = "1", + frozenAmount = 0, + createBy = "WCS", + createDate = DateTime.Now, + updateBy = "WCS", + updateDate = DateTime.Now, + instockDate = DateTime.Now, + locationCode = wmsBaseLocation.locationCode, + occupyAmount = 0, + totalAmount = 1, + palletInfoCode = item.containerNo, + planCode = mesBaseBarcodeInfo.planCode, + planDetailCode = mesBaseBarcodeInfo.planDetailCode, + productBatch = mesBasePalletInfo.materialBarcode, + saleorderCode = mesBaseBarcodeInfo.saleorderCode, + productStockId = StaticData.SnowId.NextId(), + saleOrderId = mesBaseBarcodeInfo.saleOrderId, + stockType = "3", + qualityStatus = "0", + warehouseFloor = 2, + warehouseId = wmsBaseLocation.warehouseId + }; + //wmsProductInstockDetail.executeStatus = "2"; + //wmsProductInstock.endTime = DateTime.Now; + //wmsProductInstock.executeStatus = "2"; + //dbContext.Update(wmsProductInstockDetail); + dbContext.Add(wmsProductStock); + dbContext.Update(wmsBaseLocation); SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); - SystemData.UnLockOutLocation(toLocation, dbContext); - if (wmsProductStock != null) - { - 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.Update(wmsProductInstock); dbContext.Remove(item); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); - transaction.Commit(); dbContext.SaveChanges(); _logger.Info("二楼AGV线程完成任务" + item.objid); } - catch (Exception ex) + // } + //} + } + } + else if (item.taskType == StaticTaskType.SecondStorageToLift)//成品出库 + { + WmsProductOutstock? wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == item.orderId); + if (wmsProductOutstock != null) + { + WmsProductOutstockDetail? wmsProductOutstockDetail = dbContext.WmsProductOutstockDetail.FirstOrDefault(t => t.productOutstockId == wmsProductOutstock.productOutstockId); + if (wmsProductOutstockDetail != null) { - transaction.Rollback(); - _logger.Error(ex.Message + "\n" + ex.StackTrace); + var wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First(); + WmsProductStock wmsProductStock = dbContext.WmsProductStock.First(t => t.locationCode == wmsBaseLocation.locationCode); + wmsProductOutstock.outstockQty++; + if (wmsProductOutstock.applyQty <= wmsProductOutstock.outstockQty) + { + wmsProductOutstock.endTime = DateTime.Now; + wmsProductOutstock.executeStatus = "2"; + } + wmsProductOutstockDetail.executeStatus = "2"; + wmsProductOutstockDetail.endTime = DateTime.Now; + wmsBaseLocation.locationStatus = "1"; + wmsBaseLocation.containerCode = null; + item.nextPointId = 2; + item.taskStatus = 8; + SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); + dbContext.Remove(wmsProductStock); + dbContext.Update(wmsBaseLocation); + dbContext.Update(wmsProductOutstockDetail); + dbContext.Update(wmsProductOutstock); + dbContext.Update(item); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); + dbContext.SaveChanges(); + _logger.Info("二楼AGV线程完成任务" + item.objid); } } - else if (item.taskType == 56)//废料区到周转区 + } + else if (item.taskType == StaticTaskType.SecondLiftToTransit)//空托盘入周转位 + { + BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); + endEquip.equipStatus = 1; + endEquip.emptyCount = item.qty; + dbContext.Update(endEquip); + dbContext.Remove(item); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); + dbContext.SaveChanges(); + _logger.Info("二楼AGV线程完成任务" + item.objid); + } + else if (item.taskType == StaticTaskType.SecondLiftToWaste)//提升机到废料口 + { + BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); + startEquip.equipStatus = 0; + BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); + endEquip.equipStatus = 1; + endEquip.emptyCount = 1; + endEquip.containerNo = item.containerNo; + dbContext.Update(endEquip); + dbContext.Update(startEquip); + dbContext.Remove(item); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); + dbContext.SaveChanges(); + _logger.Info("二楼AGV线程完成任务" + item.objid); + } + else if (item.taskType == StaticTaskType.SecondLineToSmallPackage)//输送线到小包入口 + { + BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); + startEquip.equipStatus = 0; + dbContext.Update(startEquip); + dbContext.Remove(item); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); + dbContext.SaveChanges(); + _logger.Info("二楼AGV线程完成任务" + item.objid); + } + else if (item.taskType == StaticTaskType.SecondTransitToWaste)//周转位到废料口 + { + BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); + startEquip.equipStatus = 0; + startEquip.emptyCount = 0; + startEquip.containerNo = null; + BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId); + endEquip.equipStatus = 1; + endEquip.emptyCount = 1; + endEquip.containerNo = item.containerNo; + dbContext.Update(startEquip); + dbContext.Update(endEquip); + dbContext.Remove(item); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); + dbContext.SaveChanges(); + _logger.Info("二楼AGV线程完成任务" + item.objid); + } + else if (item.taskType == StaticTaskType.SecondRemove)//移库 + { + using var transaction = dbContext.Database.BeginTransaction(); + try { - wasteEquip.emptyCount = 0; - wasteEquip.equipStatus = 0; - BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId); - endEquip.emptyCount = 1; - endEquip.equipStatus = 2; - endEquip.containerNo = item.containerNo; - dbContext.Remove(item); - dbContext.Update(wasteEquip); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); - dbContext.SaveChanges(); - _logger.Info("二楼AGV线程完成任务" + item.objid); - } - else if (item.taskType == 57)//周转位-提升机 - { - BaseEquip emptyEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); - emptyEquip.emptyCount = 0; - emptyEquip.equipStatus = 0; - emptyEquip.containerNo = null; - item.nextPointId = 2; - item.taskStatus = 8; - dbContext.Update(item); - dbContext.Update(emptyEquip); - dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); - dbContext.SaveChanges(); - _logger.Info("二楼AGV线程完成任务" + item.objid); - } - else if (item.taskType == 59)//周转区-小包入口 - { - BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); - startEquip.equipStatus = 0; - startEquip.emptyCount = 0; - startEquip.containerNo = null; - dbContext.Update(startEquip); + 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(); + SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); + SystemData.UnLockOutLocation(toLocation, dbContext); + if (wmsProductStock != null) + { + 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 }); + transaction.Commit(); dbContext.SaveChanges(); _logger.Info("二楼AGV线程完成任务" + item.objid); } + catch (Exception ex) + { + transaction.Rollback(); + _logger.Error(ex.Message + "\n" + ex.StackTrace); + } + } + else if (item.taskType == StaticTaskType.SecondWasteToTransit)//废料区到周转区 + { + wasteEquip.emptyCount = 0; + wasteEquip.equipStatus = 0; + BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId); + endEquip.emptyCount = 1; + endEquip.equipStatus = 2; + endEquip.containerNo = item.containerNo; + dbContext.Remove(item); + dbContext.Update(wasteEquip); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); + dbContext.SaveChanges(); + _logger.Info("二楼AGV线程完成任务" + item.objid); + } + else if (item.taskType == StaticTaskType.SecondTransitToLift)//周转位-提升机 + { + BaseEquip emptyEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); + emptyEquip.emptyCount = 0; + emptyEquip.equipStatus = 0; + emptyEquip.containerNo = null; + item.nextPointId = 2; + item.taskStatus = 8; + dbContext.Update(item); + dbContext.Update(emptyEquip); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 }); + dbContext.SaveChanges(); + _logger.Info("二楼AGV线程完成任务" + item.objid); + } + else if (item.taskType == StaticTaskType.SecondTransitToSmallPackage)//周转区-小包入口 + { + BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); + startEquip.equipStatus = 0; + startEquip.emptyCount = 0; + startEquip.containerNo = null; + dbContext.Update(startEquip); + dbContext.Remove(item); + dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); + dbContext.SaveChanges(); + _logger.Info("二楼AGV线程完成任务" + item.objid); } } } diff --git a/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs b/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs index de4ec36..57b17cc 100644 --- a/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs +++ b/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs @@ -85,7 +85,7 @@ namespace Khd.Core.Wcs.Wcs fromFloorNo = 2, isEmpty = "1", qty = baseEquip.emptyCount,//托盘的数量 - taskType = 59,//任务类型 + taskType = StaticTaskType.SecondTransitToSmallPackage,//任务类型 }; dbContext.Add(wcsTask); WcsTaskLog wcsTaskLog = CoreMapper.Map(wcsTask); @@ -96,7 +96,7 @@ namespace Khd.Core.Wcs.Wcs } else//二楼周转区没有空托盘 { - baseEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.emptyCount == SystemData.maxTray && t.equipStatus == 1);//三楼三个周转区是否存在空托盘 + baseEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.emptyCount == SystemData.maxTray);//三楼三个周转区是否存在空托盘 if (baseEquip != null)//如果三楼有空托盘 { BaseEquip ThirdLineEquip = dbContext.BaseEquip.First(t => t.objid == 3);//三楼接驳位 @@ -114,7 +114,7 @@ namespace Khd.Core.Wcs.Wcs fromFloorNo = 3, isEmpty = "1", qty = SystemData.maxTray, - taskType = 101, + taskType = StaticTaskType.ThirdTransitToSecond, currPointId = baseEquip.objid, currPointNo = baseEquip.equipNo, nextPointId = ThirdAgvEquip.objid, @@ -165,7 +165,7 @@ namespace Khd.Core.Wcs.Wcs fromFloorNo = 1, isEmpty = "1", qty = startEquip.emptyCount, - taskType = 53, + taskType = StaticTaskType.SecondLiftToWaste, }; dbContext.Add(wcsTaskManual); WcsTaskLog wcsTaskLog = CoreMapper.Map(wcsTaskManual); @@ -205,7 +205,7 @@ namespace Khd.Core.Wcs.Wcs fromFloorNo = 1, isEmpty = "1", qty = 1, - taskType = 53, + taskType = StaticTaskType.SecondLiftToWaste, }; dbContext.Add(wcsTaskManual); WcsTaskLog wcsTaskLog = CoreMapper.Map(wcsTaskManual); @@ -310,7 +310,7 @@ namespace Khd.Core.Wcs.Wcs floorNo = 2, fromFloorNo = 2, isEmpty = "0", - taskType = 49, + taskType = StaticTaskType.SecondSmallPackageToStorage, qty = 1, }; SystemData.LockOutLocation(wmsBaseLocation, dbContext); diff --git a/src/Khd.Core.Wcs/Wcs/SecondFloorPoint.cs b/src/Khd.Core.Wcs/Wcs/SecondFloorPoint.cs index 0105964..6e2a317 100644 --- a/src/Khd.Core.Wcs/Wcs/SecondFloorPoint.cs +++ b/src/Khd.Core.Wcs/Wcs/SecondFloorPoint.cs @@ -97,7 +97,7 @@ namespace Khd.Core.Wcs.Wcs newTask.currPointNo = lineEquip.equipNo; newTask.endPointId = inEquip.objid;//终点为小包入口 newTask.endPointNo = inEquip.equipNo; - newTask.taskType = 51;//提升机到小包入口的任务类型 + newTask.taskType = StaticTaskType.SecondLineToSmallPackage;//提升机到小包入口的任务类型 newTask.useFlag = 1; dbContext.WcsTask.Add(newTask); WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask); @@ -124,7 +124,7 @@ namespace Khd.Core.Wcs.Wcs newTask.currPointNo = lineEquip.equipNo; newTask.endPointId = endEquip.objid;//终点为周转位 newTask.endPointNo = endEquip.equipNo; - newTask.taskType = 58;//提升机到周转位的任务类型 + newTask.taskType = StaticTaskType.SecondLiftToTransit;//提升机到周转位的任务类型 newTask.useFlag = 1; dbContext.WcsTask.Add(newTask); WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask); @@ -155,7 +155,7 @@ namespace Khd.Core.Wcs.Wcs newTask.currPointNo = lineEquip.equipNo; newTask.endPointId = inEquip.objid; newTask.endPointNo = inEquip.equipNo; - newTask.taskType = 51;//到小包入口 + newTask.taskType = StaticTaskType.SecondLineToSmallPackage;//到小包入口 newTask.useFlag = 1; dbContext.WcsTask.Add(newTask); WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask); @@ -182,7 +182,7 @@ namespace Khd.Core.Wcs.Wcs newTask.currPointNo = lineEquip.equipNo; newTask.endPointId = endEquip.objid; newTask.endPointNo = endEquip.equipNo; - newTask.taskType = 58;//到周转位 + newTask.taskType = StaticTaskType.SecondLiftToTransit;//到周转位 newTask.useFlag = 1; dbContext.WcsTask.Add(newTask); WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask); @@ -209,7 +209,7 @@ namespace Khd.Core.Wcs.Wcs newTask.containerNo = rfid; newTask.currPointId = lineEquip.objid; newTask.currPointNo = lineEquip.equipNo; - newTask.taskType = 53; + newTask.taskType = StaticTaskType.SecondLiftToWaste; newTask.useFlag = 1; dbContext.WcsTask.Add(newTask); WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask); @@ -236,7 +236,7 @@ namespace Khd.Core.Wcs.Wcs newTask.currPointNo = lineEquip.equipNo; newTask.endPointId = endEquip.objid; newTask.endPointNo = endEquip.equipNo; - newTask.taskType = 58; + newTask.taskType = StaticTaskType.SecondLiftToTransit; newTask.useFlag = 1; dbContext.WcsTask.Add(newTask); WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask); @@ -251,7 +251,7 @@ namespace Khd.Core.Wcs.Wcs } else if (wcsTask.taskStatus == 8)//小车任务完成 { - if (wcsTask.taskType == 50 && wcsTask.containerNo == rfid)//50是成品出库 + if (wcsTask.taskType == StaticTaskType.SecondStorageToLift && wcsTask.containerNo == rfid)//50是成品出库 { BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == 1); dbContext.WcsTask.Remove(wcsTask); diff --git a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs index b0e9db5..a054962 100644 --- a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs +++ b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs @@ -97,7 +97,7 @@ namespace Khd.Core.Wcs.Wcs var getTrayValue = StaticData.PlcDic[2].Read(getTrayPoint.plcpointAddress); if (getTrayValue != null && Convert.ToBoolean(getTrayValue)) { - var task = dbContext.WcsTask.Where(t => t.IsDelete == 0 || t.IsDelete == null).Where(t => t.taskType == 42 && t.useFlag == 0).FirstOrDefault(); + var task = dbContext.WcsTask.Where(t => t.IsDelete == 0 || t.IsDelete == null).Where(t => t.taskType == StaticTaskType.ThirdFlipToBin && t.useFlag == 0).FirstOrDefault(); if (task != null) { BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 35); @@ -106,7 +106,7 @@ namespace Khd.Core.Wcs.Wcs //if (endEquip.emptyCount != (SystemData.maxTray / 2) && endEquip.emptyCount != SystemData.maxTray) if (endEquip.emptyCount < SystemData.maxTray) { - task.taskType = 42; + task.taskType = StaticTaskType.ThirdFlipToBin; task.useFlag = 1; task.taskStatus = 0; task.isEmpty = "1"; @@ -160,7 +160,7 @@ namespace Khd.Core.Wcs.Wcs if (item.taskStatus == 0) { BaseDictionary baseDictionary = StaticData.BaseDictionary.First(t => t.objid == item.taskType); - if (item.taskType == 67)//移库 + if (item.taskType == StaticTaskType.ThirdRemove)//移库 { var agvTask = new RequestAGVTaskDto { @@ -199,7 +199,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("五楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 39)//提升机-库位 + else if (item.taskType == StaticTaskType.ThirdRawIn)//提升机-库位 { BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 3); var agvTask = new RequestAGVTaskDto @@ -239,7 +239,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("三楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 41)//库位-翻转机 + else if (item.taskType == StaticTaskType.ThirdRawToFlip)//库位-翻转机 { BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "putTray"); var callMaterial = StaticData.PlcDic[2].Read(basePlcpoint.plcpointAddress); @@ -293,7 +293,7 @@ namespace Khd.Core.Wcs.Wcs } } } - else if (item.taskType == 40)//周转位-收集架 + else if (item.taskType == StaticTaskType.ThirdTransitToBin)//周转位-收集架 { BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId); @@ -335,7 +335,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("三楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 42)//翻转机-收集架 + else if (item.taskType == StaticTaskType.ThirdFlipToBin)//翻转机-收集架 { BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId); @@ -377,7 +377,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("三楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 43)//收集架-周转区 + else if (item.taskType == StaticTaskType.ThirdBinToTransit)//收集架-周转区 { BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId); @@ -420,7 +420,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Info("三楼Agv下发任务失败" + item.taskType + result); } } - else if (item.taskType == 44)//周转区-提升机 + else if (item.taskType == StaticTaskType.ThirdTransitToLift)//周转区-提升机 { BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 3); @@ -468,7 +468,7 @@ namespace Khd.Core.Wcs.Wcs } } } - else if (item.taskType == 101)//三楼空托盘转运到二楼 + else if (item.taskType == StaticTaskType.ThirdTransitToSecond)//三楼空托盘转运到二楼 { BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 3); BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId); @@ -569,7 +569,7 @@ namespace Khd.Core.Wcs.Wcs lineEquip.equipStatus = 0; dbContext.Update(lineEquip); } - if (item.taskType == 67)//移库 + if (item.taskType == StaticTaskType.ThirdRemove)//移库 { using var transaction = dbContext.Database.BeginTransaction(); try @@ -607,7 +607,7 @@ namespace Khd.Core.Wcs.Wcs _logger.Error(ex.Message + "\n" + ex.StackTrace); } } - if (item.taskType == 39)//入库 + if (item.taskType == StaticTaskType.ThirdRawIn)//入库 { WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation .First(t => t.locationId == item.endPointId && t.warehouseFloor == 3); @@ -669,7 +669,7 @@ namespace Khd.Core.Wcs.Wcs } } } - else if (item.taskType == 40)//周转区-收集架,暂不使用 + else if (item.taskType == StaticTaskType.ThirdTransitToBin)//周转区-收集架,暂不使用 { BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId); @@ -687,7 +687,7 @@ namespace Khd.Core.Wcs.Wcs dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.SaveChanges(); } - else if (item.taskType == 41)//原材料出库 + else if (item.taskType == StaticTaskType.ThirdRawToFlip)//原材料出库 { WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation .First(t => t.locationId == item.currPointId); @@ -724,7 +724,7 @@ namespace Khd.Core.Wcs.Wcs wcsTask.objid = StaticData.SnowId.NextId(); wcsTask.taskStatus = 0; wcsTask.useFlag = 0; - wcsTask.taskType = 42; + wcsTask.taskType = StaticTaskType.ThirdFlipToBin; wcsTask.createBy = "WCS"; wcsTask.createTime = DateTime.Now; dbContext.Remove(item); @@ -735,7 +735,7 @@ namespace Khd.Core.Wcs.Wcs } } } - else if (item.taskType == 42)//翻转机就到收集架 + else if (item.taskType == StaticTaskType.ThirdFlipToBin)//翻转机就到收集架 { MesBasePalletInfo? mesBasePalletInfo = dbContext.MesBasePalletInfo.FirstOrDefault(t => t.palletInfoCode == item.containerNo); if (mesBasePalletInfo != null) @@ -772,7 +772,7 @@ namespace Khd.Core.Wcs.Wcs dbContext.SaveChanges(); } } - else if (item.taskType == 43)//收集架-周转区 + else if (item.taskType == StaticTaskType.ThirdBinToTransit)//收集架-周转区 { BaseEquip emptyEquip = dbContext.BaseEquip.First(t => t.objid == 35); BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId); @@ -789,7 +789,7 @@ namespace Khd.Core.Wcs.Wcs dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.SaveChanges(); } - else if (item.taskType == 44 || item.taskType == 101)//周转区-提升机 + else if (item.taskType == StaticTaskType.ThirdTransitToLift || item.taskType == StaticTaskType.ThirdTransitToSecond)//周转区-提升机 { BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 3); diff --git a/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs b/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs index 33f8b9c..ecbbe53 100644 --- a/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs +++ b/src/Khd.Core.Wcs/Wcs/ThirdFloorPoint.cs @@ -137,7 +137,7 @@ namespace Khd.Core.Wcs.Wcs newTask.nextPointNo = AgvEquip.equipNo; newTask.endPointId = wmsBaseLocation.locationId; newTask.endPointNo = wmsBaseLocation.locationCode; - newTask.taskType = 39; + newTask.taskType = StaticTaskType.ThirdRawIn; newTask.useFlag = 1; wmsBaseLocation.locationStatus = "2"; SystemData.LockOutLocation(wmsBaseLocation, dbContext);