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);