手表信息维护
This commit is contained in:
parent
0ac46d2933
commit
be0141e89b
@ -5,6 +5,9 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using ZR.Service.mes.andon;
|
||||||
|
using ZR.Service.mes.andon.Iservice;
|
||||||
|
using static System.Formats.Asn1.AsnWriter;
|
||||||
|
|
||||||
namespace ZR.Service.Utils.MyAlarmLigth
|
namespace ZR.Service.Utils.MyAlarmLigth
|
||||||
{
|
{
|
||||||
@ -28,6 +31,8 @@ namespace ZR.Service.Utils.MyAlarmLigth
|
|||||||
private CancellationTokenSource _cts;
|
private CancellationTokenSource _cts;
|
||||||
private Task _listenTask;
|
private Task _listenTask;
|
||||||
|
|
||||||
|
//private AndonAlarmLevelService andonAlarmLevelService = new AndonAlarmLevelService();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 构造函数(精简参数,日志可选)
|
/// 构造函数(精简参数,日志可选)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -121,32 +126,45 @@ namespace ZR.Service.Utils.MyAlarmLigth
|
|||||||
byte lightUnitId = 0x01; // 警灯站号(可按需替换为ReadAlarmlightNumber)
|
byte lightUnitId = 0x01; // 警灯站号(可按需替换为ReadAlarmlightNumber)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//X1、X2、X3红按钮,X4绿按钮,X5红按钮
|
||||||
|
//Y1蜂鸣器、Y2红灯、Y3黄灯、Y4绿灯
|
||||||
|
//Y1->0; Y2->1; y3->2; y4->3
|
||||||
switch (portNumber)
|
switch (portNumber)
|
||||||
{
|
{
|
||||||
// X1-X4 → 红灯
|
// X1→ 红按钮
|
||||||
case 1:
|
case 1:
|
||||||
_logger?.LogInformation($"✅ X{portNumber}触发:红灯闪烁");
|
_modbusClient.WriteSingleCoil(lightUnitId, 0, true); //0-Y1地址蜂鸣器
|
||||||
_modbusClient.WriteSingleCoil(lightUnitId, 0, true); //0-Y1地址
|
_modbusClient.WriteSingleCoil(lightUnitId, 1, true); //1-Y2地址红灯
|
||||||
|
_modbusClient.WriteSingleCoil(lightUnitId, 2, false); //2-Y3地址黄灯
|
||||||
|
_modbusClient.WriteSingleCoil(lightUnitId, 3, false); //3-Y4地址绿灯
|
||||||
break;
|
break;
|
||||||
|
// X2→ 红按钮
|
||||||
case 2:
|
case 2:
|
||||||
_logger?.LogInformation($"✅ X{portNumber}触发:红灯闪烁");
|
_modbusClient.WriteSingleCoil(lightUnitId, 0, true); //0-Y1地址蜂鸣器
|
||||||
_modbusClient.WriteSingleCoil(lightUnitId, 1, true);
|
_modbusClient.WriteSingleCoil(lightUnitId, 1, true); //1-Y2地址红灯
|
||||||
|
_modbusClient.WriteSingleCoil(lightUnitId, 2, false); //2-Y3地址黄灯
|
||||||
|
_modbusClient.WriteSingleCoil(lightUnitId, 3, false); //3-Y4地址绿灯
|
||||||
break;
|
break;
|
||||||
|
// X3→ 红按钮
|
||||||
case 3:
|
case 3:
|
||||||
_logger?.LogInformation($"✅ X{portNumber}触发:红灯闪烁");
|
_modbusClient.WriteSingleCoil(lightUnitId, 0, true); //0-Y1地址蜂鸣器
|
||||||
_modbusClient.WriteSingleCoil(lightUnitId, 2, true);
|
_modbusClient.WriteSingleCoil(lightUnitId, 1, true); //1-Y2地址红灯
|
||||||
|
_modbusClient.WriteSingleCoil(lightUnitId, 2, false); //2-Y3地址黄灯
|
||||||
|
_modbusClient.WriteSingleCoil(lightUnitId, 3, false); //3-Y4地址绿灯
|
||||||
break;
|
break;
|
||||||
|
// X4→ 绿按钮
|
||||||
case 4:
|
case 4:
|
||||||
_logger?.LogInformation($"✅ X{portNumber}触发:红灯闪烁");
|
_modbusClient.WriteSingleCoil(lightUnitId, 0, false); //0-Y1地址蜂鸣器
|
||||||
_modbusClient.WriteSingleCoil(lightUnitId, 3, true);
|
_modbusClient.WriteSingleCoil(lightUnitId, 1, false); //1-Y2地址红灯
|
||||||
|
_modbusClient.WriteSingleCoil(lightUnitId, 2, false); //2-Y3地址黄灯
|
||||||
|
_modbusClient.WriteSingleCoil(lightUnitId, 3, true); //3-Y4地址绿灯
|
||||||
break;
|
break;
|
||||||
// X5 → 绿灯
|
// X5 → 红按钮
|
||||||
case 5:
|
case 5:
|
||||||
_logger?.LogInformation($"✅ X{portNumber}触发:绿灯常亮");
|
_modbusClient.WriteSingleCoil(lightUnitId, 0, true); //0-Y1地址蜂鸣器
|
||||||
_modbusClient.WriteSingleCoil(lightUnitId, 0, false);
|
_modbusClient.WriteSingleCoil(lightUnitId, 1, true); //1-Y2地址红灯
|
||||||
_modbusClient.WriteSingleCoil(lightUnitId, 1, false);
|
_modbusClient.WriteSingleCoil(lightUnitId, 2, false); //2-Y3地址黄灯
|
||||||
_modbusClient.WriteSingleCoil(lightUnitId, 2, false);
|
_modbusClient.WriteSingleCoil(lightUnitId, 3, false); //3-Y4地址绿灯
|
||||||
_modbusClient.WriteSingleCoil(lightUnitId, 3, false);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -611,8 +611,7 @@ namespace ZR.Service.mes.andon
|
|||||||
model.Receiver4 = typeDic.Receiver4;
|
model.Receiver4 = typeDic.Receiver4;
|
||||||
model.Receiver4Name = typeDic.Receiver4Name;
|
model.Receiver4Name = typeDic.Receiver4Name;
|
||||||
}
|
}
|
||||||
|
string strMessage = model.CreatedTime.ToString() + model.Area1 + model.Area2 + model.AlarmType + model.AlarmInfo;
|
||||||
string strMessage = $"{model.Area1}{model.Area2}{model.AlarmType}{model.AlarmInfo}";
|
|
||||||
|
|
||||||
// 2. 执行核心数据插入(先落库,确保数据不丢失)
|
// 2. 执行核心数据插入(先落库,确保数据不丢失)
|
||||||
var resultEntity = Context.Insertable(model).ExecuteReturnEntity();
|
var resultEntity = Context.Insertable(model).ExecuteReturnEntity();
|
||||||
@ -723,7 +722,7 @@ namespace ZR.Service.mes.andon
|
|||||||
string strOperate = "超时上报";
|
string strOperate = "超时上报";
|
||||||
int timeoutMinutes = 0;
|
int timeoutMinutes = 0;
|
||||||
string ReceiveId = "";
|
string ReceiveId = "";
|
||||||
string strWatchMessage = item.Area1 + item.Area2 + item.AlarmType + item.AlarmInfo;
|
string strWatchMessage = item.CreatedTime.ToString()+item.Area1 + item.Area2 + item.AlarmType + item.AlarmInfo;
|
||||||
//超时未响应,接收人1向接收人2上报
|
//超时未响应,接收人1向接收人2上报
|
||||||
if (item.AutoCount == 0 && item.Receiver2Name != null)
|
if (item.AutoCount == 0 && item.Receiver2Name != null)
|
||||||
{
|
{
|
||||||
@ -874,5 +873,87 @@ namespace ZR.Service.mes.andon
|
|||||||
//LightUp.CheckLightOnStatusAndTurnOn(_modbusClient, Convert.ToByte(15));
|
//LightUp.CheckLightOnStatusAndTurnOn(_modbusClient, Convert.ToByte(15));
|
||||||
return ApiResult.Success("处理成功");
|
return ApiResult.Success("处理成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//public ApiResult createAlarmRecordTiaoQI(string strAlarmType)
|
||||||
|
//{
|
||||||
|
|
||||||
|
// // 1. 核心业务逻辑(新增报警记录)- 优先执行,不受通讯影响
|
||||||
|
// string strDay = DateTime.Now.ToString("yyyyMMdd");
|
||||||
|
// int Sequence = 1;
|
||||||
|
|
||||||
|
// // 兼容无历史记录的情况(避免First()空指针)
|
||||||
|
// var lastItem = Queryable()
|
||||||
|
// .Where(it => it.AlarmCode.Contains(strDay))
|
||||||
|
// .OrderByDescending(it => it.Sequence)
|
||||||
|
// .ToList()
|
||||||
|
// .FirstOrDefault(); // 替换First()为FirstOrDefault(),避免无数据时抛异常
|
||||||
|
// if (lastItem != null)
|
||||||
|
// {
|
||||||
|
// Sequence = (int)lastItem.Sequence + 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// string formattedSequence = Sequence.ToString("D4");
|
||||||
|
// string strAlarmCode = "Alarm" + strDay + formattedSequence;
|
||||||
|
// model.AlarmCode = strAlarmCode;
|
||||||
|
// model.Sequence = Sequence;
|
||||||
|
// model.Status = "待响应";
|
||||||
|
|
||||||
|
// // 获取报警类型配置
|
||||||
|
// var typeDic = andonAlarmTypeDictService.Queryable()
|
||||||
|
// .Where(k => k.TypeCode == model.AlarmTypeCode)
|
||||||
|
// .ToList()
|
||||||
|
// .FirstOrDefault(); // 替换ToList().FirstOrDefault(),减少内存占用
|
||||||
|
// if (typeDic != null)
|
||||||
|
// {
|
||||||
|
// model.Receiver1 = typeDic.Receiver1;
|
||||||
|
// model.Receiver1Name = typeDic.Receiver1Name;
|
||||||
|
// model.Receiver2 = typeDic.Receiver2;
|
||||||
|
// model.Receiver2Name = typeDic.Receiver2Name;
|
||||||
|
// model.Receiver3 = typeDic.Receiver3;
|
||||||
|
// model.Receiver3Name = typeDic.Receiver3Name;
|
||||||
|
// model.Receiver4 = typeDic.Receiver4;
|
||||||
|
// model.Receiver4Name = typeDic.Receiver4Name;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// string strMessage = $"{model.Area1}{model.Area2}{model.AlarmType}{model.AlarmInfo}";
|
||||||
|
|
||||||
|
// // 2. 执行核心数据插入(先落库,确保数据不丢失)
|
||||||
|
// var resultEntity = Context.Insertable(model).ExecuteReturnEntity();
|
||||||
|
|
||||||
|
// // 3. 通讯相关操作(手表推送+三色灯)- 独立try-catch
|
||||||
|
// try
|
||||||
|
// {
|
||||||
|
// // 3.1 手表呼叫报警(注释保留,仅做异常隔离)
|
||||||
|
// if (!string.IsNullOrEmpty(model.Receiver1))
|
||||||
|
// {
|
||||||
|
// List<string> WatchAddressList = GetReceiverWatchAddress(model.Receiver1);
|
||||||
|
// if (WatchAddressList.Any())
|
||||||
|
// {
|
||||||
|
// foreach (string strWatchAddress in WatchAddressList)
|
||||||
|
// {
|
||||||
|
// Watchup.StartPush(strMessage, _socketGateway, strWatchAddress);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// catch (Exception ex)
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
// try
|
||||||
|
// {
|
||||||
|
// // 3.2 三色灯鸣叫报警(核心通讯操作,单独异常捕获)
|
||||||
|
// byte bLightIp = GetLightIp(model.Area1, model.Area2);
|
||||||
|
// if (bLightIp != 0)
|
||||||
|
// {
|
||||||
|
// LightUp.WriteAlarmLightCommand_Red(_modbusClient, bLightIp);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// catch (Exception ex)
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // 4. 返回新增的实体(核心业务结果不受通讯影响)
|
||||||
|
// return null;
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user