master
1 year ago
parent 18f4c0a8a1
commit 61f33b95e7

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Khd.Core.Domain.Dto
{
public class LocationPlcDto
{
public int Id { get; set; }
public string Station { get; set; }
public string Address { get; set; }
public string locRow { get; set; }
public string locColumn { get; set; }
public string layerNum { get; set; }
}
}

@ -1,5 +1,6 @@
//using CMS.Model; //using CMS.Model;
using Jc.SnowId; using Jc.SnowId;
using Khd.Core.Domain.Dto;
using Khd.Core.Domain.Models; using Khd.Core.Domain.Models;
namespace Khd.Core.Wcs.Global namespace Khd.Core.Wcs.Global
@ -65,6 +66,7 @@ namespace Khd.Core.Wcs.Global
public static List<PlcConfig> PlcConfigs { get; set; } public static List<PlcConfig> PlcConfigs { get; set; }
public static int DeleteLogDay { get; internal set; } public static int DeleteLogDay { get; internal set; }
public static List<DmsBaseAlarmRule> DmsBaseAlarmRuleList { get; set; } public static List<DmsBaseAlarmRule> DmsBaseAlarmRuleList { get; set; }
public static IEnumerable<LocationPlcDto> LocationToPlcList { get; internal set; }
public static List<string> BigContainerCodes = new List<string>() { "JYHB01020001", "JYHB01020002", "JYHB01020003", "JYHB01020004" }; public static List<string> BigContainerCodes = new List<string>() { "JYHB01020001", "JYHB01020002", "JYHB01020003", "JYHB01020004" };

@ -138,7 +138,7 @@ namespace Khd.Core.Wcs
{ {
} }
} }
@ -149,17 +149,56 @@ namespace Khd.Core.Wcs
var alarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.AlarmRuleId == (long)WaringType).FirstOrDefault(); var alarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.AlarmRuleId == (long)WaringType).FirstOrDefault();
if (alarmTime != null) if (alarmTime != null)
{ {
dbContext.Remove(alarmTime); dbContext.DmsRecordAlarmTime.Where(t=>t.AlarmId==alarmTime.AlarmId).Delete();
dbContext.DmsRecordAlarmInfo.Where(t => t.AlarmId == alarmTime.AlarmId) dbContext.DmsRecordAlarmInfo.Where(t => t.AlarmId == alarmTime.AlarmId)
.Update(t => new DmsRecordAlarmInfo() { AlarmStatus = "2" }); .Update(t => new DmsRecordAlarmInfo() { AlarmStatus = "2" });
dbContext.SaveChanges();
} }
} }
catch catch
{ {
} }
}
public static void SendPlcLocation(WmsBaseLocation wmsBaseLocation)
{
Task.Run(() =>
{
try
{
var locationPlcDto = StaticData.LocationToPlcList.Where(t => t.Id == wmsBaseLocation.locationId).FirstOrDefault();
if (locationPlcDto != null)
{
if (wmsBaseLocation != null && !string.IsNullOrEmpty(wmsBaseLocation.containerCode))
{
if (wmsBaseLocation.warehouseId == 512)
{
if (wmsBaseLocation.ContainerStatus == "1")
{
StaticData.PlcDic[2].Write(locationPlcDto.Address, true);
}
else
{
StaticData.PlcDic[2].Write(locationPlcDto.Address, false);
}
}
else
{
StaticData.PlcDic[2].Write(locationPlcDto.Address, true);
}
}
else
{
StaticData.PlcDic[2].Write(locationPlcDto.Address, false);
}
}
}
catch
{
}
});
} }
public readonly static object SecondTaskLock = new(); public readonly static object SecondTaskLock = new();

@ -741,7 +741,6 @@ namespace Khd.Core.Wcs.Wcs
transaction.Commit(); transaction.Commit();
} }
} }
SystemData.DeleteWaringLog(dbContext, WaringType.);
break; break;
} }
else else
@ -760,6 +759,7 @@ namespace Khd.Core.Wcs.Wcs
continue; continue;
} }
} }
SystemData.DeleteWaringLog(dbContext, WaringType.);
} }
catch (Exception ex) catch (Exception ex)
{ {

@ -509,6 +509,8 @@ namespace Khd.Core.Wcs.Wcs
dbContext.SaveChanges(); dbContext.SaveChanges();
dbContextTransaction.Commit(); dbContextTransaction.Commit();
SystemData.SendPlcLocation(wmsBaseLocation);
SystemData.SendPlcLocation(toLocation);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -527,10 +529,10 @@ namespace Khd.Core.Wcs.Wcs
{ {
Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo);
_logger.Info("五楼Agv完成任务成功" + item.ToJsonString()); _logger.Info("五楼Agv完成任务成功" + item.ToJsonString());
var wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == item.orderId); var 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);
@ -557,8 +559,8 @@ namespace Khd.Core.Wcs.Wcs
newWmsProductOutstockDetail.updateDate = DateTime.Now; newWmsProductOutstockDetail.updateDate = DateTime.Now;
newWmsProductOutstockDetail.beginTime = DateTime.Now; newWmsProductOutstockDetail.beginTime = DateTime.Now;
newWmsProductOutstockDetail.endTime = DateTime.Now; newWmsProductOutstockDetail.endTime = DateTime.Now;
wmsBaseLocation.locationStatus = "1"; wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = null; wmsBaseLocation.containerCode = null;
@ -585,6 +587,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Add(wcsTaskLog); dbContext.Add(wcsTaskLog);
dbContext.SaveChanges(); dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
SystemData.SendPlcLocation(wmsBaseLocation);
} }
} }
else if (item.taskType == StaticTaskType.FiveRawToBack)//原材料到背板安装 else if (item.taskType == StaticTaskType.FiveRawToBack)//原材料到背板安装
@ -594,26 +597,26 @@ namespace Khd.Core.Wcs.Wcs
WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.Where(t => t.rawOutstockId == item.orderId).FirstOrDefault(); WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.Where(t => t.rawOutstockId == item.orderId).FirstOrDefault();
if (wmsRawOutstock != null) if (wmsRawOutstock != null)
{ {
wmsRawOutstock.realOutstockAmount += 1; wmsRawOutstock.realOutstockAmount += 1;
wmsRawOutstock.executeStatus = "2"; wmsRawOutstock.executeStatus = "2";
wmsRawOutstock.endTime = DateTime.Now; wmsRawOutstock.endTime = DateTime.Now;
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId); WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
wmsBaseLocation.returnFlag = "0"; wmsBaseLocation.returnFlag = "0";
wmsBaseLocation.locationStatus = "1"; wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = null; wmsBaseLocation.containerCode = null;
wmsBaseLocation.updateTime = DateTime.Now; wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS"; wmsBaseLocation.updateBy = "WCS";
dbContext.Update(wmsRawOutstock); dbContext.Update(wmsRawOutstock);
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);
dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete(); dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete();
dbContext.WcsTask.Remove(item); dbContext.WcsTask.Remove(item);
dbContext.SaveChanges(); dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
SystemData.SendPlcLocation(wmsBaseLocation);
} }
} }
else if (item.taskType == StaticTaskType.FiveHalfIn)//半成品入库 else if (item.taskType == StaticTaskType.FiveHalfIn)//半成品入库
@ -674,7 +677,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
dbContext.SaveChanges(); dbContext.SaveChanges();
//} //}
SystemData.SendPlcLocation(wmsBaseLocation);
} }
} }
else if (item.taskType == StaticTaskType.FiveRawToSplit)//原材料到柜体拆分 else if (item.taskType == StaticTaskType.FiveRawToSplit)//原材料到柜体拆分
@ -719,7 +722,7 @@ namespace Khd.Core.Wcs.Wcs
newWmsRawOutstockDetail.createDate = DateTime.Now; newWmsRawOutstockDetail.createDate = DateTime.Now;
newWmsRawOutstockDetail.stackAmount = 1; newWmsRawOutstockDetail.stackAmount = 1;
wmsBaseLocation.locationStatus = "1"; wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = null; wmsBaseLocation.containerCode = null;
@ -733,7 +736,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Remove(item); dbContext.Remove(item);
dbContext.SaveChanges(); dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
SystemData.SendPlcLocation(wmsBaseLocation);
} }
} }
else if (item.taskType == StaticTaskType.FiveRawSplitReturn)//柜体拆分到原材料 else if (item.taskType == StaticTaskType.FiveRawSplitReturn)//柜体拆分到原材料
@ -781,7 +784,7 @@ namespace Khd.Core.Wcs.Wcs
WmsRawInstock.returnFlag = null; WmsRawInstock.returnFlag = null;
WmsRawInstock.executeStatus = "2"; WmsRawInstock.executeStatus = "2";
WmsRawInstock.updateDate = DateTime.Now; WmsRawInstock.updateDate = DateTime.Now;
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
dbContext.Update(WmsRawInstock); dbContext.Update(WmsRawInstock);
dbContext.Add(wmsRawStock); dbContext.Add(wmsRawStock);
@ -792,6 +795,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Remove(item); dbContext.Remove(item);
dbContext.SaveChanges(); dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
SystemData.SendPlcLocation(wmsBaseLocation);
} }
} }
@ -809,12 +813,12 @@ namespace Khd.Core.Wcs.Wcs
var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode); var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == mesBasePalletInfo.materialBarcode);
if (mesBaseBarcodeInfo != null) if (mesBaseBarcodeInfo != null)
{ {
if (mesBaseBarcodeInfo.PurchaseOrderId == -1) if (mesBaseBarcodeInfo.PurchaseOrderId == -1)
{ // 虚拟托盘号,合并的物料分别插入WmsRawInstock { // 虚拟托盘号,合并的物料分别插入WmsRawInstock
List<MesSaleOrderRelate> mesSaleOrderRelates = dbContext.MesSaleOrderRelate.Where(x => x.SaleOrderId == mesBaseBarcodeInfo.saleOrderId).ToList(); List<MesSaleOrderRelate> mesSaleOrderRelates = dbContext.MesSaleOrderRelate.Where(x => x.SaleOrderId == mesBaseBarcodeInfo.saleOrderId).ToList();
List<WmsRawInstock>? wmsRawInstocks = new List<WmsRawInstock>(); List<WmsRawInstock>? wmsRawInstocks = new List<WmsRawInstock>();
foreach(var mesSaleOrderRelate in mesSaleOrderRelates) foreach (var mesSaleOrderRelate in mesSaleOrderRelates)
{ {
WmsRawInstock wmsRawInstock = new WmsRawInstock() WmsRawInstock wmsRawInstock = new WmsRawInstock()
{ {
@ -837,9 +841,9 @@ namespace Khd.Core.Wcs.Wcs
poNo = mesBaseBarcodeInfo.poNo, poNo = mesBaseBarcodeInfo.poNo,
warehouseId = 511 warehouseId = 511
}; };
wmsRawInstocks.Add(wmsRawInstock); wmsRawInstocks.Add(wmsRawInstock);
} }
if(wmsRawInstocks.Count > 0) if (wmsRawInstocks.Count > 0)
{ {
dbContext.WmsRawInstock.AddRange(wmsRawInstocks); dbContext.WmsRawInstock.AddRange(wmsRawInstocks);
} }
@ -897,7 +901,7 @@ namespace Khd.Core.Wcs.Wcs
warehouseId = 511, warehouseId = 511,
}; };
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
wmsBaseLocation.returnFlag = "0"; wmsBaseLocation.returnFlag = "0";
BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 5); BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 5);
lineEquip.equipStatus = 0; lineEquip.equipStatus = 0;
@ -907,6 +911,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Remove(item); dbContext.Remove(item);
dbContext.SaveChanges(); dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
SystemData.SendPlcLocation(wmsBaseLocation);
} }
} }
} }

@ -193,6 +193,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Add(wcsTaskLog); dbContext.Add(wcsTaskLog);
dbContext.SaveChanges(); dbContext.SaveChanges();
StaticData.PlcDic[1].WriteToPoint(CtuLineWaring.plcpointAddress, false, CtuLineWaring.plcpointLength.ToString()); StaticData.PlcDic[1].WriteToPoint(CtuLineWaring.plcpointAddress, false, CtuLineWaring.plcpointLength.ToString());
SystemData.SendPlcLocation(wmsBaseLocation);
} }
} }
} }
@ -244,6 +245,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Add(wcsTaskLog); dbContext.Add(wcsTaskLog);
dbContext.SaveChanges(); dbContext.SaveChanges();
StaticData.PlcDic[1].WriteToPoint(CtuLineWaring.plcpointAddress, false, CtuLineWaring.plcpointLength.ToString()); StaticData.PlcDic[1].WriteToPoint(CtuLineWaring.plcpointAddress, false, CtuLineWaring.plcpointLength.ToString());
SystemData.SendPlcLocation(wmsBaseLocation);
} }
} }
} }

@ -746,6 +746,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 });
dbContext.SaveChanges(); dbContext.SaveChanges();
_logger.Info("二楼AGV线程完成任务" + item.objid); _logger.Info("二楼AGV线程完成任务" + item.objid);
SystemData.SendPlcLocation(wmsBaseLocation);
} }
// } // }
//} //}
@ -796,7 +797,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 });
dbContext.SaveChanges(); dbContext.SaveChanges();
_logger.Info("二楼AGV线程完成任务" + item.objid); _logger.Info("二楼AGV线程完成任务" + item.objid);
SystemData.SendPlcLocation(wmsBaseLocation);
} }
} }
else if (item.taskType == StaticTaskType.SecondLiftToTransit)//空托盘入周转位 else if (item.taskType == StaticTaskType.SecondLiftToTransit)//空托盘入周转位
@ -933,6 +934,9 @@ namespace Khd.Core.Wcs.Wcs
transaction.Commit(); transaction.Commit();
dbContext.SaveChanges(); dbContext.SaveChanges();
SystemData.SendPlcLocation(wmsBaseLocation);
SystemData.SendPlcLocation(toLocation);
_logger.Info("二楼AGV线程完成任务" + item.objid); _logger.Info("二楼AGV线程完成任务" + item.objid);
} }
catch (Exception ex) catch (Exception ex)

@ -1,4 +1,5 @@
using AngleSharp.Common; using AngleSharp.Common;
using Khd.Core.Domain.Dto;
using Khd.Core.Domain.Dto.waring; using Khd.Core.Domain.Dto.waring;
using Khd.Core.Domain.Dto.webapi; using Khd.Core.Domain.Dto.webapi;
using Khd.Core.Domain.Models; using Khd.Core.Domain.Models;
@ -92,19 +93,19 @@ namespace Khd.Core.Wcs.Wcs
using var scope = host.Services.CreateScope(); using var scope = host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>(); using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
List<BasePlc> basePlcs = dbContext.BasePlc.Where(t => t.Station.Contains("库位")).ToList(); List<BasePlc> basePlcs = dbContext.BasePlc.Where(t => t.Station.Contains("库位")).ToList();
var list = basePlcs.Select(t => new StaticData.LocationToPlcList = basePlcs.Select(t => new
{ {
t.Id, t.Id,
Station = t.Station.Replace("库位", ""), Station = t.Station.Replace("库位", ""),
t.Address, t.Address,
locRow = t.Name.Substring(t.Name.IndexOf('[') + 1, 1), locRow = t.Name.Substring(t.Name.IndexOf('[') + 1, 1),
locColumn = t.Name.Substring(t.Name.IndexOf(',') + 1).Replace("]", "").Replace("五楼半成品[", ""), locColumn = t.Name.Substring(t.Name.IndexOf(',') + 1).Replace("]", "").Replace("五楼半成品[", ""),
}).Select(t => new }).Select(t => new LocationPlcDto
{ {
t.Id, Id= t.Id,
t.Station, Station= t.Station,
t.Address, Address= t.Address,
t.locRow, locRow= t.locRow,
locColumn = t.locColumn.Substring(0, t.locColumn.IndexOf(',') == -1 ? t.locColumn.Length : t.locColumn.IndexOf(',')), locColumn = t.locColumn.Substring(0, t.locColumn.IndexOf(',') == -1 ? t.locColumn.Length : t.locColumn.IndexOf(',')),
layerNum = t.locColumn.IndexOf(',') == -1 ? "1" : t.locColumn.Substring(t.locColumn.IndexOf(',') == -1 ? 0 : t.locColumn.IndexOf(',') + 1) layerNum = t.locColumn.IndexOf(',') == -1 ? "1" : t.locColumn.Substring(t.locColumn.IndexOf(',') == -1 ? 0 : t.locColumn.IndexOf(',') + 1)
}); });
@ -114,7 +115,7 @@ namespace Khd.Core.Wcs.Wcs
try try
{ {
var locations = dbContext.WmsBaseLocation.OrderBy(t => t.locRow).OrderBy(t => t.locColumn).ToList(); var locations = dbContext.WmsBaseLocation.OrderBy(t => t.locRow).OrderBy(t => t.locColumn).ToList();
foreach (var item in list) foreach (var item in StaticData.LocationToPlcList)
{ {
WmsBaseLocation? wmsBaseLocation = locations.Where(t => t.locRow.ToString() == item.locRow) WmsBaseLocation? wmsBaseLocation = locations.Where(t => t.locRow.ToString() == item.locRow)
.Where(t => t.locColumn.ToString() == item.locColumn) .Where(t => t.locColumn.ToString() == item.locColumn)
@ -369,7 +370,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
try try
{ {
if (errorCount > 20) if (errorCount > 3)
{ {
_logger.Error($"Plc220短线重连失败超过{errorCount}次"); _logger.Error($"Plc220短线重连失败超过{errorCount}次");
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
@ -396,25 +397,9 @@ namespace Khd.Core.Wcs.Wcs
//} //}
} }
StaticData.PlcDic[2].Read(HeartBeat30.plcpointAddress); StaticData.PlcDic[2].Read(HeartBeat30.plcpointAddress);
if (errorCount > 0 && isOver) dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
{ SystemData.DeleteWaringLog(dbContext, WaringType.Plc);
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
SystemData.DeleteWaringLog(dbContext, WaringType.Plc);
//var dmsRecordAlarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.CreateBy == "WCS" && t.DeviceId == 15).FirstOrDefault();
//if (dmsRecordAlarmTime != null)
//{
// dbContext.DmsRecordAlarmTime.Remove(dmsRecordAlarmTime);
// dbContext.DmsRecordAlarmInfo.Where(t => t.AlarmId == dmsRecordAlarmTime.AlarmId).Update(t => new DmsRecordAlarmInfo
// {
// AlarmEndTime = DateTime.Now,
// AlarmStatus = "1",
// UpdateBy = "WCS",
// UpdateTime = DateTime.Now
// });
// dbContext.SaveChanges();
// errorCount = 0;
//}
}
} }
catch catch
{ {
@ -450,7 +435,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
try try
{ {
if (errorCount > 20) if (errorCount > 3)
{ {
_logger.Error($"Plc30短线重连失败超过{errorCount}次"); _logger.Error($"Plc30短线重连失败超过{errorCount}次");
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
@ -479,25 +464,8 @@ namespace Khd.Core.Wcs.Wcs
} }
heartBeatCount = !heartBeatCount; heartBeatCount = !heartBeatCount;
StaticData.PlcDic[0].WriteToPoint(HeartBeat30.plcpointAddress, heartBeatCount, HeartBeat30.plcpointLength?.ToString()); StaticData.PlcDic[0].WriteToPoint(HeartBeat30.plcpointAddress, heartBeatCount, HeartBeat30.plcpointLength?.ToString());
if (errorCount > 0 && isOver) dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
{ SystemData.DeleteWaringLog(dbContext, WaringType.Plc);
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
SystemData.DeleteWaringLog(dbContext, WaringType.Plc);
//var dmsRecordAlarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.CreateBy == "WCS" && t.DeviceId == 13).FirstOrDefault();
//if (dmsRecordAlarmTime != null)
//{
// dbContext.DmsRecordAlarmTime.Remove(dmsRecordAlarmTime);
// dbContext.DmsRecordAlarmInfo.Where(t => t.AlarmId == dmsRecordAlarmTime.AlarmId).Update(t => new DmsRecordAlarmInfo
// {
// AlarmEndTime = DateTime.Now,
// AlarmStatus = "1",
// UpdateBy = "WCS",
// UpdateTime = DateTime.Now
// });
// dbContext.SaveChanges();
// errorCount = 0;
//}
}
} }
catch catch
{ {
@ -533,7 +501,7 @@ namespace Khd.Core.Wcs.Wcs
{ {
try try
{ {
if (errorCount > 20) if (errorCount > 3)
{ {
_logger.Error($"Plc31短线重连失败超过{errorCount}次"); _logger.Error($"Plc31短线重连失败超过{errorCount}次");
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
@ -561,25 +529,8 @@ namespace Khd.Core.Wcs.Wcs
} }
heartBeatCount = !heartBeatCount; heartBeatCount = !heartBeatCount;
StaticData.PlcDic[1].WriteToPoint(HeartBeat31.plcpointAddress, heartBeatCount, HeartBeat31.plcpointLength?.ToString()); StaticData.PlcDic[1].WriteToPoint(HeartBeat31.plcpointAddress, heartBeatCount, HeartBeat31.plcpointLength?.ToString());
if (errorCount > 0 && isOver) dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
{ SystemData.DeleteWaringLog(dbContext, WaringType.U线Plc);
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
SystemData.DeleteWaringLog(dbContext, WaringType.U线Plc);
//var dmsRecordAlarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.CreateBy == "WCS" && t.DeviceId == 14).FirstOrDefault();
//if (dmsRecordAlarmTime != null)
//{
// dbContext.DmsRecordAlarmTime.Remove(dmsRecordAlarmTime);
// dbContext.DmsRecordAlarmInfo.Where(t => t.AlarmId == dmsRecordAlarmTime.AlarmId).Update(t => new DmsRecordAlarmInfo
// {
// AlarmEndTime = DateTime.Now,
// AlarmStatus = "1",
// UpdateBy = "WCS",
// UpdateTime = DateTime.Now
// });
// dbContext.SaveChanges();
// errorCount = 0;
//}
}
} }
catch (Exception ex) catch (Exception ex)
{ {

@ -645,6 +645,9 @@ namespace Khd.Core.Wcs.Wcs
dbContext.SaveChanges(); dbContext.SaveChanges();
transaction.Commit(); transaction.Commit();
SystemData.SendPlcLocation(wmsBaseLocation);
SystemData.SendPlcLocation(toLocation);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -725,6 +728,8 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Remove(item); dbContext.Remove(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
dbContext.SaveChanges(); dbContext.SaveChanges();
SystemData.SendPlcLocation(wmsBaseLocation);
} }
} }
} }
@ -812,6 +817,8 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Add(wcsTask); dbContext.Add(wcsTask);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
dbContext.SaveChanges(); dbContext.SaveChanges();
SystemData.SendPlcLocation(wmsBaseLocation);
} }
} }
@ -850,6 +857,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Remove(item); dbContext.Remove(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
dbContext.SaveChanges(); dbContext.SaveChanges();
} }
} }
else if (item.taskType == StaticTaskType.ThirdBinToTransit)//收集架-周转区 else if (item.taskType == StaticTaskType.ThirdBinToTransit)//收集架-周转区

@ -161,7 +161,6 @@ namespace Khd.Core.Wcs.Wcs
if (wmsBaseLocation != null) if (wmsBaseLocation != null)
{ {
dbContext.Remove(wcsTask); dbContext.Remove(wcsTask);
WcsTask newTask = CoreMapper.Map<WcsTask>(wcsTask); WcsTask newTask = CoreMapper.Map<WcsTask>(wcsTask);
newTask.objid = StaticData.SnowId.NextId(); newTask.objid = StaticData.SnowId.NextId();

@ -15,14 +15,14 @@
// "Slot": 1, // "Slot": 1,
// "Code": 0 // "Code": 0
//}, // //}, //
{ //{
"IP": "192.168.2.31", // "IP": "192.168.2.31",
"Port": 102, //102 // "Port": 102, //102
"CpuType": 40, // "CpuType": 40,
"Rack": 0, // "Rack": 0,
"Slot": 1, // "Slot": 1,
"Code": 1 // "Code": 1
}, //U线 //}, //U线
{ {
"IP": "192.168.2.220", "IP": "192.168.2.220",
"Port": 102, //102 "Port": 102, //102

Loading…
Cancel
Save