liuwf 8 months ago
parent 9fb9f5266f
commit a6f9b55c33

@ -21,21 +21,20 @@ namespace Khd.Core.Wcs.Wcs
{ {
private readonly IHost _host; private readonly IHost _host;
private readonly LoggerUtils _logger = new LoggerUtils(); private readonly LoggerUtils _logger = new LoggerUtils();
int FloorNo { get; set; } private int FloorNo { get; set; }
int EquipID = 8; //2楼AGV private int EquipID = 8; //2楼AGV
public SecondFloorAGV(IHost host, int floor) public SecondFloorAGV(IHost host, int floor)
{ {
this._host = host; this._host = host;
FloorNo = floor; FloorNo = floor;
} }
/// <summary> /// <summary>
/// 启动上件扫描监听 /// 启动上件扫描监听
/// </summary> /// </summary>
public void StartPoint() public void StartPoint()
{ {
Thread FlowPointThread = new Thread(MonitorInLocatorPoint); Thread FlowPointThread = new Thread(MonitorInLocatorPoint);
FlowPointThread.IsBackground = true; FlowPointThread.IsBackground = true;
FlowPointThread.Name = "SecondFloorAGV"; FlowPointThread.Name = "SecondFloorAGV";
@ -44,7 +43,6 @@ namespace Khd.Core.Wcs.Wcs
_logger.Info("二楼AGV上件扫描监听启动成功"); _logger.Info("二楼AGV上件扫描监听启动成功");
} }
/// <summary> /// <summary>
/// 开启线程监听2分钟小包出口光电信号如果小包出口到位信号消失即取托盘完成发送信号通知线体 /// 开启线程监听2分钟小包出口光电信号如果小包出口到位信号消失即取托盘完成发送信号通知线体
/// </summary> /// </summary>
@ -92,8 +90,6 @@ namespace Khd.Core.Wcs.Wcs
}).Wait(); }).Wait();
} }
public void MonitorInLocatorPoint() public void MonitorInLocatorPoint()
{ {
using var scope = _host.Services.CreateScope(); using var scope = _host.Services.CreateScope();
@ -357,7 +353,6 @@ namespace Khd.Core.Wcs.Wcs
positionCode = item.endPointNo, positionCode = item.endPointNo,
type = "00" type = "00"
} }
}, },
taskTyp = baseDictionary.dicValue, taskTyp = baseDictionary.dicValue,
ctnrTyp = "2", ctnrTyp = "2",
@ -622,7 +617,6 @@ namespace Khd.Core.Wcs.Wcs
var ConnectStatus2F = StaticData.PlcDic[2].Read(ConnectStatus2FPoint.plcpointAddress);//2F托盘库产线数据通讯情况 var ConnectStatus2F = StaticData.PlcDic[2].Read(ConnectStatus2FPoint.plcpointAddress);//2F托盘库产线数据通讯情况
var PalletInIsHas2F = StaticData.PlcDic[2].Read(PalletInIsHas2FPoint.plcpointAddress);//2F托盘库入口上料光电 var PalletInIsHas2F = StaticData.PlcDic[2].Read(PalletInIsHas2FPoint.plcpointAddress);//2F托盘库入口上料光电
if (agvPutValue != null && ConnectStatus2F != null && PalletInIsHas2F != null && Convert.ToInt32(agvPutValue) == 1 && Convert.ToInt32(ConnectStatus2F) == 1 && Convert.ToInt32(PalletInIsHas2F) == 0) if (agvPutValue != null && ConnectStatus2F != null && PalletInIsHas2F != null && Convert.ToInt32(agvPutValue) == 1 && Convert.ToInt32(ConnectStatus2F) == 1 && Convert.ToInt32(PalletInIsHas2F) == 0)
{ {
// 托盘库叫料信号,并且通讯正常,并且小包入口无料 ,才可放托盘 // 托盘库叫料信号,并且通讯正常,并且小包入口无料 ,才可放托盘
@ -645,7 +639,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
var agvGetPoint = StaticData.BasePlcpointList.First(t => t.id == 53); var agvGetPoint = StaticData.BasePlcpointList.First(t => t.id == 53);
var agvGetValue = StaticData.PlcDic[2].Read(agvGetPoint.plcpointAddress);//小包出口的到位 var agvGetValue = StaticData.PlcDic[2].Read(agvGetPoint.plcpointAddress);//小包出口的到位
if (agvGetValue != null && (bool)agvGetValue==true) if (agvGetValue != null && (bool)agvGetValue == true)
{ {
var agvTask = new RequestAGVTaskDto var agvTask = new RequestAGVTaskDto
{ {
@ -662,13 +656,9 @@ namespace Khd.Core.Wcs.Wcs
// 开启线程监听2分钟小包出口光电信号如果小包出口到位信号消失即取托盘完成发送信号通知线体 // 开启线程监听2分钟小包出口光电信号如果小包出口到位信号消失即取托盘完成发送信号通知线体
ListenForSignal(2); ListenForSignal(2);
} }
} }
} }
else else
{ {
var agvTask = new RequestAGVTaskDto var agvTask = new RequestAGVTaskDto
@ -685,8 +675,6 @@ namespace Khd.Core.Wcs.Wcs
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 4 });
} }
} }
} }
else if (item.taskStatus == 5) else if (item.taskStatus == 5)
{ {
@ -724,7 +712,6 @@ namespace Khd.Core.Wcs.Wcs
var ConnectStatus2F = StaticData.PlcDic[2].Read(ConnectStatus2FPoint.plcpointAddress);//2F托盘库产线数据通讯情况 var ConnectStatus2F = StaticData.PlcDic[2].Read(ConnectStatus2FPoint.plcpointAddress);//2F托盘库产线数据通讯情况
var PalletInIsHas2F = StaticData.PlcDic[2].Read(PalletInIsHas2FPoint.plcpointAddress);//2F托盘库入口上料光电 var PalletInIsHas2F = StaticData.PlcDic[2].Read(PalletInIsHas2FPoint.plcpointAddress);//2F托盘库入口上料光电
if (agvPutValue != null && ConnectStatus2F != null && PalletInIsHas2F != null && Convert.ToInt32(agvPutValue) == 1 && Convert.ToInt32(ConnectStatus2F) == 1 && Convert.ToInt32(PalletInIsHas2F) == 0) if (agvPutValue != null && ConnectStatus2F != null && PalletInIsHas2F != null && Convert.ToInt32(agvPutValue) == 1 && Convert.ToInt32(ConnectStatus2F) == 1 && Convert.ToInt32(PalletInIsHas2F) == 0)
{ {
// 托盘库叫料信号,并且通讯正常,并且小包入口无料 ,才可放托盘 // 托盘库叫料信号,并且通讯正常,并且小包入口无料 ,才可放托盘
@ -743,7 +730,6 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
} }
} }
else if (item.taskStatus == 7) else if (item.taskStatus == 7)
{ {
@ -772,7 +758,6 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation.containerCode = item.containerNo; wmsBaseLocation.containerCode = item.containerNo;
WmsProductStock wmsProductStock = new WmsProductStock() WmsProductStock wmsProductStock = new WmsProductStock()
{ {
productId = mesBasePalletInfo.materialId, productId = mesBasePalletInfo.materialId,
activeFlag = "1", activeFlag = "1",
frozenAmount = 0, frozenAmount = 0,
@ -796,6 +781,7 @@ namespace Khd.Core.Wcs.Wcs
warehouseFloor = 2, warehouseFloor = 2,
warehouseId = wmsBaseLocation.warehouseId warehouseId = wmsBaseLocation.warehouseId
}; };
#region 插入WmsProductInstock表 #region 插入WmsProductInstock表
WmsProductInstock wmsProductInstock = new WmsProductInstock(); WmsProductInstock wmsProductInstock = new WmsProductInstock();
@ -823,7 +809,9 @@ namespace Khd.Core.Wcs.Wcs
wmsProductInstock.beginTime = DateTime.Now; wmsProductInstock.beginTime = DateTime.Now;
wmsProductInstock.endTime = DateTime.Now; wmsProductInstock.endTime = DateTime.Now;
dbContext.Add(wmsProductInstock); dbContext.Add(wmsProductInstock);
#endregion
#endregion 插入WmsProductInstock表
//wmsProductInstockDetail.executeStatus = "2"; //wmsProductInstockDetail.executeStatus = "2";
//wmsProductInstock.endTime = DateTime.Now; //wmsProductInstock.endTime = DateTime.Now;
//wmsProductInstock.executeStatus = "2"; //wmsProductInstock.executeStatus = "2";
@ -847,7 +835,6 @@ namespace Khd.Core.Wcs.Wcs
WmsProductOutstock? wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == item.orderId); WmsProductOutstock? wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == item.orderId);
if (wmsProductOutstock != null) if (wmsProductOutstock != null)
{ {
var wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First(); var wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First();
WmsProductStock wmsProductStock = dbContext.WmsProductStock.First(t => t.locationCode == wmsBaseLocation.locationCode); WmsProductStock wmsProductStock = dbContext.WmsProductStock.First(t => t.locationCode == wmsBaseLocation.locationCode);
@ -857,7 +844,7 @@ namespace Khd.Core.Wcs.Wcs
wmsProductOutstock.endTime = DateTime.Now; wmsProductOutstock.endTime = DateTime.Now;
wmsProductOutstock.executeStatus = "2"; wmsProductOutstock.executeStatus = "2";
} }
WmsProductOutstockDetail? wmsProductOutstockDetail = dbContext.WmsProductOutstockDetail.FirstOrDefault(x=>x.productOutstockId== wmsProductOutstock.productOutstockId && x.locationCode== item.currPointId.ToString()); WmsProductOutstockDetail? wmsProductOutstockDetail = dbContext.WmsProductOutstockDetail.FirstOrDefault(x => x.productOutstockId == wmsProductOutstock.productOutstockId && x.locationCode == item.currPointId.ToString());
if (wmsProductOutstockDetail != null) if (wmsProductOutstockDetail != null)
{ //人工出库mes会自动插入wcs只需要更新即可 { //人工出库mes会自动插入wcs只需要更新即可
wmsProductOutstockDetail.outstockAmount = 1; wmsProductOutstockDetail.outstockAmount = 1;
@ -875,7 +862,7 @@ namespace Khd.Core.Wcs.Wcs
wmsProductOutstockDetail.productBarcode = wmsProductStock.productBatch; wmsProductOutstockDetail.productBarcode = wmsProductStock.productBatch;
wmsProductOutstockDetail.productId = wmsProductStock.productId; wmsProductOutstockDetail.productId = wmsProductStock.productId;
wmsProductOutstockDetail.planAmount = wmsProductOutstock.applyQty; wmsProductOutstockDetail.planAmount = wmsProductOutstock.applyQty;
wmsProductOutstockDetail.outstockAmount = wmsProductOutstock.outstockQty; wmsProductOutstockDetail.outstockAmount = 1;
wmsProductOutstockDetail.executeStatus = "2"; wmsProductOutstockDetail.executeStatus = "2";
wmsProductOutstockDetail.updateBy = "WCS"; wmsProductOutstockDetail.updateBy = "WCS";
wmsProductOutstockDetail.updateDate = DateTime.Now; wmsProductOutstockDetail.updateDate = DateTime.Now;
@ -883,7 +870,7 @@ namespace Khd.Core.Wcs.Wcs
wmsProductOutstockDetail.endTime = DateTime.Now; wmsProductOutstockDetail.endTime = DateTime.Now;
dbContext.Add(wmsProductOutstockDetail); dbContext.Add(wmsProductOutstockDetail);
} }
wmsBaseLocation.locationStatus = "1"; wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = null; wmsBaseLocation.containerCode = null;
item.nextPointId = 2; item.nextPointId = 2;
@ -891,7 +878,7 @@ namespace Khd.Core.Wcs.Wcs
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
dbContext.Remove(wmsProductStock); dbContext.Remove(wmsProductStock);
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);
dbContext.Update(wmsProductOutstock); dbContext.Update(wmsProductOutstock);
dbContext.Update(item); dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
@ -937,7 +924,6 @@ namespace Khd.Core.Wcs.Wcs
//放托盘确认信号DB4.DBX310.0写true //放托盘确认信号DB4.DBX310.0写true
BasePlcpoint SecondInPutOverPoint = StaticData.BasePlcpointList.First(t => t.id == 72); BasePlcpoint SecondInPutOverPoint = StaticData.BasePlcpointList.First(t => t.id == 72);
StaticData.PlcDic[2].WriteToPoint(SecondInPutOverPoint.plcpointAddress, true, SecondInPutOverPoint.plcpointLength.ToString()); StaticData.PlcDic[2].WriteToPoint(SecondInPutOverPoint.plcpointAddress, true, SecondInPutOverPoint.plcpointLength.ToString());
}); });
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId); BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
@ -988,6 +974,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 8 });
#region 插入移库记录 #region 插入移库记录
var wmsMove = dbContext.WmsMove.Where(t => t.MoveId == item.orderId).FirstOrDefault(); var wmsMove = dbContext.WmsMove.Where(t => t.MoveId == item.orderId).FirstOrDefault();
if (wmsMove == null) if (wmsMove == null)
{ {
@ -1039,7 +1026,8 @@ namespace Khd.Core.Wcs.Wcs
wmsMoveDetail.UpdateDate = DateTime.Now; wmsMoveDetail.UpdateDate = DateTime.Now;
dbContext.WmsMoveDetail.Add(wmsMoveDetail); dbContext.WmsMoveDetail.Add(wmsMoveDetail);
#endregion
#endregion 插入移库记录
dbContext.SaveChanges(); dbContext.SaveChanges();
SystemData.SendPlcLocation(wmsBaseLocation); SystemData.SendPlcLocation(wmsBaseLocation);
@ -1100,7 +1088,6 @@ namespace Khd.Core.Wcs.Wcs
{ {
if (ex is PlcException) if (ex is PlcException)
{ {
} }
else else
{ {
@ -1113,6 +1100,5 @@ namespace Khd.Core.Wcs.Wcs
} }
} }
} }
} }
} }
Loading…
Cancel
Save