任务类型

master
2 years ago
parent a06110d26b
commit a04d29f9ca

@ -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
{
/// <summary>
/// 二楼输送线到小包入口
/// </summary>
public const int SecondLineToSmallPackage = 51;
/// <summary>
/// 二楼废料工位到周转位
/// </summary>
public const int SecondWasteToTransit = 56;
/// <summary>
/// 二楼小包出口到库位
/// </summary>
public const int SecondSmallPackageToStorage = 49;
/// <summary>
/// 二楼周转位到提升机
/// </summary>
public const int SecondTransitToLift = 57;
/// <summary>
/// 二楼库位到提升机
/// </summary>
public const int SecondStorageToLift = 50;
/// <summary>
/// 二楼移库
/// </summary>
public const int SecondRemove = 55;
/// <summary>
/// 二楼提升机到废料工位
/// </summary>
public const int SecondLiftToWaste = 53;
/// <summary>
/// 二楼周转位到废料工位
/// </summary>
public const int SecondTransitToWaste = 54;
/// <summary>
/// 二楼提升机到周转位
/// </summary>
public const int SecondLiftToTransit = 58;
/// <summary>
/// 二楼周转位到小包入口
/// </summary>
public const int SecondTransitToSmallPackage = 59;
/// <summary>
/// 三楼移库
/// </summary>
public const int ThirdRemove = 67;
/// <summary>
/// 三楼原材料入库
/// </summary>
public const int ThirdRawIn = 39;
/// <summary>
/// 三楼原材料到翻转机
/// </summary>
public const int ThirdRawToFlip = 41;
/// <summary>
/// 三楼周转区到托盘收集架
/// </summary>
public const int ThirdTransitToBin = 40;
/// <summary>
/// 三楼翻转机到托盘收集架
/// </summary>
public const int ThirdFlipToBin = 42;
/// <summary>
/// 三楼托盘收集架到周转区
/// </summary>
public const int ThirdBinToTransit = 43;
/// <summary>
/// 三楼周转区到提升机
/// </summary>
public const int ThirdTransitToLift = 44;
/// <summary>
/// 五楼原材料入库
/// </summary>
public const int FiveRawIn = 47;
/// <summary>
/// 五楼原材料到拆分
/// </summary>
public const int FiveRawToSplit = 46;
/// <summary>
/// 五楼原材料拆分返库
/// </summary>
public const int FiveRawSplitReturn = 28;
/// <summary>
/// 五楼移库
/// </summary>
public const int FiveRemove = 66;
/// <summary>
/// 五楼原材料到背板安装
/// </summary>
public const int FiveRawToBack = 33;
/// <summary>
/// 五楼半成品入库
/// </summary>
public const int FiveHalfIn = 34;
/// <summary>
/// 五楼成品出库库
/// </summary>
public const int FiveProductOut = 38;
/// <summary>
/// 五楼辅料入库
/// </summary>
public const int FiveAccessoryIn = 29;
/// <summary>
/// 五楼辅料出库
/// </summary>
public const int FiveAccessoryOut = 30;
/// <summary>
/// 五楼辅料盘库
/// </summary>
public const int FiveAccessoryStorage = 100;
/// <summary>
/// 三楼接驳位转运空托盘到二楼
/// </summary>
public const int ThirdTransitToSecond = 101;
/// <summary>
/// 五楼辅料移库
/// </summary>
public const int FiveAccessoryRemove = 102;
}
}

@ -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,

@ -46,7 +46,6 @@ namespace Khd.Core.Wcs.Wcs
{
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
List<int?> 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<ReponseMessage>(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<ReponseMessage>(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<WcsTask>(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<WcsTaskLog>(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<WcsTask>(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<WcsTaskLog>(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 });
}
}
}

@ -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<ReponseMessage>(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<ReponseMessage>(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<ReponseMessage>(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<ReponseMessage>(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 });
}
}
}

@ -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<ReponseMessage>(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<ReponseMessage>(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<ReponseMessage>(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());
}
}
}

@ -50,6 +50,7 @@ namespace Khd.Core.Wcs.Wcs
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
List<string> 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;

@ -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<ReponseMessage>(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<ReponseMessage>(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<ReponseMessage>(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<ReponseMessage>(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<ReponseMessage>(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<ReponseMessage>(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<ReponseMessage>(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<ReponseMessage>(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);
}
}
}

@ -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<WcsTaskLog>(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<WcsTaskLog>(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<WcsTaskLog>(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);

@ -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<WcsTaskLog>(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<WcsTaskLog>(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<WcsTaskLog>(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<WcsTaskLog>(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<WcsTaskLog>(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<WcsTaskLog>(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);

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

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

Loading…
Cancel
Save