|
|
|
|
@ -542,11 +542,15 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
bool isCreate = false;
|
|
|
|
|
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
|
|
|
|
|
bool canCreate = dbContext.WcsTask.Where(t => t.nextPointId == 9).Where(t => t.taskStatus < 5).Any();
|
|
|
|
|
bool canCreate = dbContext.WcsTask.Where(t => t.nextPointId == 9)
|
|
|
|
|
.Where(t => t.useFlag == 1)
|
|
|
|
|
.Where(t => t.taskStatus <= 6).Any();
|
|
|
|
|
if (!canCreate)
|
|
|
|
|
{
|
|
|
|
|
BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 35);
|
|
|
|
|
#region 原逻辑
|
|
|
|
|
//if (baseEquip.emptyCount == (SystemData.maxTray / 2))
|
|
|
|
|
//{
|
|
|
|
|
// var endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.equipStatus == 1 && t.emptyCount == (SystemData.maxTray / 2));
|
|
|
|
|
@ -618,6 +622,7 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
//else
|
|
|
|
|
#endregion
|
|
|
|
|
if (baseEquip.emptyCount == SystemData.maxTray)//达到最大值
|
|
|
|
|
{
|
|
|
|
|
var endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 15 && t.equipStatus == 0 && t.emptyCount == 0);//找周转区
|
|
|
|
|
@ -651,6 +656,80 @@ namespace Khd.Core.Wcs.Wcs
|
|
|
|
|
dbContext.Add(wcsTask);
|
|
|
|
|
dbContext.Add(wcsTaskLog);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
isCreate = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!isCreate)
|
|
|
|
|
{
|
|
|
|
|
var emptyEquip = dbContext.BaseEquip.Where(t => t.equipType == 15).Where(t => t.emptyCount == SystemData.maxTray).ToList();
|
|
|
|
|
var secondEmptyEquip = dbContext.BaseEquip.Where(t => t.equipType == 20).Where(t => t.emptyCount == 0).ToList();
|
|
|
|
|
if (emptyEquip.Count >= 2 && secondEmptyEquip.Count >= 4)//二楼空库位多余4个,三楼空库位大于4个
|
|
|
|
|
{
|
|
|
|
|
BaseEquip startEquip = emptyEquip.First();
|
|
|
|
|
WcsTask wcsTask = new WcsTask()
|
|
|
|
|
{
|
|
|
|
|
objid = StaticData.SnowId.NextId(),
|
|
|
|
|
serialNo = SystemData.GetSerialNo(dbContext),
|
|
|
|
|
taskType = 101,
|
|
|
|
|
nextPointId = agvEquip.objid,
|
|
|
|
|
nextPointNo = agvEquip.equipNo,
|
|
|
|
|
currPointId = startEquip.objid,
|
|
|
|
|
currPointNo = startEquip.equipNo,
|
|
|
|
|
endPointId = secondEmptyEquip.First().objid,
|
|
|
|
|
endPointNo = secondEmptyEquip.First().equipNo,
|
|
|
|
|
equipmentNo = agvEquip.equipNo,
|
|
|
|
|
useFlag = 1,
|
|
|
|
|
qty = startEquip.emptyCount,
|
|
|
|
|
isEmpty = "1",
|
|
|
|
|
taskStatus = 0,
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createTime = DateTime.Now,
|
|
|
|
|
floorNo = 2,
|
|
|
|
|
fromFloorNo = 3,
|
|
|
|
|
masterId = 0,
|
|
|
|
|
orderId = 0,
|
|
|
|
|
materialId = 0,
|
|
|
|
|
};
|
|
|
|
|
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
|
|
|
|
|
dbContext.Add(wcsTask);
|
|
|
|
|
dbContext.Add(wcsTaskLog);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
}
|
|
|
|
|
else if (emptyEquip.Count == 3&& secondEmptyEquip.Count >= 2)
|
|
|
|
|
{
|
|
|
|
|
BaseEquip startEquip = emptyEquip.First();
|
|
|
|
|
WcsTask wcsTask = new WcsTask()
|
|
|
|
|
{
|
|
|
|
|
objid = StaticData.SnowId.NextId(),
|
|
|
|
|
serialNo = SystemData.GetSerialNo(dbContext),
|
|
|
|
|
taskType = 101,
|
|
|
|
|
nextPointId = agvEquip.objid,
|
|
|
|
|
nextPointNo = agvEquip.equipNo,
|
|
|
|
|
currPointId = startEquip.objid,
|
|
|
|
|
currPointNo = startEquip.equipNo,
|
|
|
|
|
endPointId = secondEmptyEquip.First().objid,
|
|
|
|
|
endPointNo = secondEmptyEquip.First().equipNo,
|
|
|
|
|
equipmentNo = agvEquip.equipNo,
|
|
|
|
|
useFlag = 1,
|
|
|
|
|
qty = startEquip.emptyCount,
|
|
|
|
|
isEmpty = "1",
|
|
|
|
|
taskStatus = 0,
|
|
|
|
|
createBy = "WCS",
|
|
|
|
|
createTime = DateTime.Now,
|
|
|
|
|
floorNo = 2,
|
|
|
|
|
fromFloorNo = 3,
|
|
|
|
|
masterId = 0,
|
|
|
|
|
orderId = 0,
|
|
|
|
|
materialId = 0,
|
|
|
|
|
};
|
|
|
|
|
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
|
|
|
|
|
dbContext.Add(wcsTask);
|
|
|
|
|
dbContext.Add(wcsTaskLog);
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//报警
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|