change-废料区代码修复,增加废料口抓夹信号判断

master
liuwf 1 year ago
parent 7efd796e9d
commit f6183b7a08

@ -227,7 +227,7 @@ namespace Khd.Core.Wcs.Wcs
_logger.Info("二楼接驳位生成任务入库成功,托盘号:" + rfid);
Console.WriteLine(DateTime.Now + ":二楼接驳位生成任务入库成功,托盘号:" + rfid);
}
else
else // 废料区有托盘找周转区
{
endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 20 && t.useFlag == 1 && t.equipStatus == 0 && t.emptyCount == 0);//周转位
if (endEquip != null)
@ -247,6 +247,7 @@ namespace Khd.Core.Wcs.Wcs
newTask.endPointNo = endEquip.equipNo;
newTask.taskType = StaticTaskType.SecondLiftToTransit;
newTask.useFlag = 1;
newTask.qty = 1;
dbContext.Add(newTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(newTask);
dbContext.Add(wcsTaskLog);
@ -289,7 +290,35 @@ namespace Khd.Core.Wcs.Wcs
_logger.Info("二楼接驳位生成任务出库成功,托盘号:" + rfid);
Console.WriteLine(DateTime.Now + ":二楼接驳位生成任务出库成功,托盘号:" + rfid);
}
else//一般情况下是废料的任务
{
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == wcsTask.endPointId);
dbContext.Remove(wcsTask);
WcsTask newTask = CoreMapper.Map<WcsTask>(wcsTask);
newTask.serialNo = SystemData.GetSerialNo(dbContext);
newTask.taskStatus = 0;
newTask.objid = StaticData.SnowId.NextId();
newTask.nextPointId = tsjEquip.objid;
newTask.nextPointNo = tsjEquip.equipNo;
newTask.createTime = DateTime.Now;
newTask.updateTime = DateTime.Now;
newTask.ud1 = 30;
newTask.endPointId = endEquip.objid;
newTask.endPointNo = endEquip.equipNo;
newTask.containerNo = rfid;
newTask.currPointId = lineEquip.objid;
newTask.currPointNo = lineEquip.equipNo;
newTask.useFlag = 1;
newTask.fromFloorNo = 2;
newTask.floorNo = endEquip.floorNo;
dbContext.Add(newTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(newTask);
dbContext.Add(wcsTaskLog);
dbContext.SaveChanges();
_logger.Info("二楼接驳位生成任务出库成功,托盘号:" + rfid);
Console.WriteLine(DateTime.Now + ":二楼接驳位生成任务出库成功,托盘号:" + rfid);
}
}
}

@ -4580,51 +4580,68 @@ namespace Khd.Core.Wpf.Form
{
try
{
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
var baseEquip = dbContext.BaseEquip.First(t => t.objid == 38);
var agvEquip = SystemData.BaseEquip.First(t => t.objid == 8);
bool hasTask = dbContext.WcsTask.Where(t => t.endPointId == baseEquip.objid || t.currPointId == baseEquip.objid).Any();
bool hasTaskManual = dbContext.WcsTaskManual.Where(t => t.endPointId == baseEquip.objid || t.currPointId == baseEquip.objid).Any();
if (hasTask || hasTaskManual)
//判断PLC绳子抱夹信号 fcSignal1-2F废料机抱夹信号 fcSignal2-2F废料机钩子信号
BasePlcpoint fcSignal1 = SystemData.BasePlcpoints.First(t => t.plcpointNo == "fcSignal1");
BasePlcpoint fcSignal2 = SystemData.BasePlcpoints.First(t => t.plcpointNo == "fcSignal2");
var fcSignal1Value = SystemData.PlcDic[2].Read(fcSignal1.plcpointAddress);
var fcSigna12Value = SystemData.PlcDic[2].Read(fcSignal2.plcpointAddress);
if (fcSignal1Value != null && fcSigna12Value != null && Convert.ToInt32(fcSignal1Value) == 0 && Convert.ToInt32(fcSigna12Value) == 0)
{
HandyControl.Controls.MessageBox.Show("有任务正在执行,请等待任务完成后再执行此操作!");
return;
}
else
{
var endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 20 && t.equipStatus == 0 && t.emptyCount == 0 && t.useFlag == 1);
if (endEquip == null)
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
var baseEquip = dbContext.BaseEquip.First(t => t.objid == 38);
var agvEquip = SystemData.BaseEquip.First(t => t.objid == 8);
bool hasTask = dbContext.WcsTask.Where(t => t.endPointId == baseEquip.objid || t.currPointId == baseEquip.objid).Any();
bool hasTaskManual = dbContext.WcsTaskManual.Where(t => t.endPointId == baseEquip.objid || t.currPointId == baseEquip.objid).Any();
if (hasTask || hasTaskManual)
{
HandyControl.Controls.MessageBox.Show("没有空箱库位!");
HandyControl.Controls.MessageBox.Show("有任务正在执行,请等待任务完成后再执行此操作!");
return;
}
else
{
WcsTaskManual task = new()
var endEquip = dbContext.BaseEquip.FirstOrDefault(t => t.equipType == 20 && t.equipStatus == 0 && t.emptyCount == 0 && t.useFlag == 1);
if (endEquip == null)
{
objid = Global.SnowId.NextId(),
taskType = 56,
containerNo = baseEquip.containerNo,
currPointId = baseEquip.objid,
currPointNo = baseEquip.equipNo,
nextPointId = agvEquip.objid,
nextPointNo = agvEquip.equipNo,
endPointId = endEquip.objid,
endPointNo = endEquip.equipNo,
createTime = DateTime.Now,
taskStatus = 0,
useFlag = 1,
floorNo = 2,
fromFloorNo = 2,
createBy = "WPF",
isEmpty = "0",
};
dbContext.Add(task);
dbContext.SaveChanges();
HandyControl.Controls.MessageBox.Show("任务生成成功!");
HandyControl.Controls.MessageBox.Show("没有空箱库位!");
return;
}
else
{
WcsTaskManual task = new()
{
objid = Global.SnowId.NextId(),
taskType = 56,
containerNo = baseEquip.containerNo,
currPointId = baseEquip.objid,
currPointNo = baseEquip.equipNo,
nextPointId = agvEquip.objid,
nextPointNo = agvEquip.equipNo,
endPointId = endEquip.objid,
endPointNo = endEquip.equipNo,
createTime = DateTime.Now,
taskStatus = 0,
useFlag = 1,
floorNo = 2,
fromFloorNo = 2,
createBy = "WPF",
isEmpty = "0",
};
dbContext.Add(task);
dbContext.SaveChanges();
HandyControl.Controls.MessageBox.Show("任务生成成功!");
}
}
}
else
{
HandyControl.Controls.MessageBox.Show("请先检查废料口袋子抓夹是否没有释放!");
return;
}
}
catch (Exception ex)
{
@ -4762,6 +4779,16 @@ namespace Khd.Core.Wpf.Form
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == equip.objid);
if (baseEquip.objid ==38)
{
HandyControl.Controls.MessageBox.Show("废料区禁止直接出到楼层,请点击 废料区出托盘到周转区 按钮");
return;
}
if (baseEquip.ud3 !="2")
{
HandyControl.Controls.MessageBox.Show("不是废料禁止出到1楼或3楼");
return;
}
bool hastask = dbContext.WcsTask.Where(t => t.endPointId == baseEquip.objid || t.currPointId == baseEquip.objid).Any();
bool hasTaskManual = dbContext.WcsTaskManual.Where(t => t.currPointId == baseEquip.objid || t.endPointId == baseEquip.objid).Any();
if (hastask || hasTaskManual)

Loading…
Cancel
Save