人机交互页面

This commit is contained in:
quowingwang
2025-12-12 17:14:20 +08:00
parent 9f620c70c1
commit d36e48b532
6 changed files with 219 additions and 23 deletions

View File

@@ -1,5 +1,8 @@
using Infrastructure.Attribute;
using Infrastructure.Model;
using JinianNet.JNTemplate.Parsers;
using SqlSugar;
using SqlSugar.Extensions;
using System;
using ZR.Model;
using ZR.Model.MES.andon;
@@ -15,6 +18,8 @@ namespace ZR.Service.mes.andon
[AppService(ServiceType = typeof(IAndonAlarmRecordService), ServiceLifetime = LifeTime.Transient)]
public class AndonAlarmRecordService : BaseService<AndonAlarmRecord>, IAndonAlarmRecordService
{
private AndonAlarmLevelService andonAlarmLevelService = new AndonAlarmLevelService();
private AndonAlarmRecordProcessService andonAlarmRecordProcessService = new AndonAlarmRecordProcessService();
/// <summary>
/// 查询报警记录列表
/// </summary>
@@ -114,5 +119,157 @@ namespace ZR.Service.mes.andon
return Update(model, true);
}
public ApiResult AlarmResponse(AndonAlarmRecordDto parm)
{
try
{
var response = new ApiResult();
if (parm != null)
{
var record = Queryable()
.Where(x => x.Id == parm.Id)
.First();
if (record != null)
{
if (record.AlarmLevel != null && record.AlarmLevel.Length > 0)
{
int minute = 0;
var levelInfo = andonAlarmLevelService.Queryable()
.Where(x => x.LevelName == record.AlarmLevel).First();
if (levelInfo != null && levelInfo.HandleTimeout != null)
{
minute = (int)levelInfo.HandleTimeout;
}
// 提前计算超时时间,提高可读性
var createdTime = record.CreatedTime.ObjToDate();
var timeoutTime = createdTime.AddMinutes(minute);
var isTimeout = DateTime.Now > timeoutTime;
record.Status = isTimeout ? "超时响应" : "及时响应";
}
else
{
record.Status = "及时响应";
}
record.Remarks = parm.Remarks;
record.UpdatedBy = parm.UserId;
record.UpdatedTime = DateTime.Now;
UpdateAndonAlarmRecord(record);
AndonAlarmRecordProcess andonAlarmRecordProcess = new AndonAlarmRecordProcess();
andonAlarmRecordProcess.AlarmCode = record.AlarmCode;
andonAlarmRecordProcess.Operate = record.Status;
andonAlarmRecordProcess.CreatedBy = parm.UserId;
andonAlarmRecordProcess.CreatedName = parm.UserName;
andonAlarmRecordProcess.CreatedTime = DateTime.Now;
andonAlarmRecordProcess.UpdatedBy = parm.UserId;
andonAlarmRecordProcess.UpdatedName = parm.UserName;
andonAlarmRecordProcess.UpdatedTime = DateTime.Now;
int iResult = andonAlarmRecordProcessService.Insert(andonAlarmRecordProcess);
return ApiResult.Success("成功",andonAlarmRecordProcess);
}
}
else
{
response.Code = 500;
response.Msg = "参数不能为空";
}
return response;
}
catch (Exception ex)
{
return ApiResult.Error(500, ex.Message);
}
}
public ApiResult AlarmHandle(AndonAlarmRecordDto parm)
{
try
{
if (parm == null)
{
return ApiResult.Error(500, "参数不能为空");
}
if (parm.Status == "及时响应" || parm.Status == "超时响应")
{
var record = Queryable()
.Where(x => x.Id == parm.Id)
.First();
if(parm.Status == "及时响应")
{
record.Status = "及时处理";
}
else
{
record.Status = "超时处理";
}
record.HandleResult = parm.HandleResult;
record.Remarks = parm.Remarks;
record.UpdatedBy = parm.UserId;
record.UpdatedTime = DateTime.Now;
UpdateAndonAlarmRecord(record);
AndonAlarmRecordProcess andonAlarmRecordProcess = new AndonAlarmRecordProcess();
andonAlarmRecordProcess.AlarmCode = record.AlarmCode;
andonAlarmRecordProcess.Operate = record.Status;
andonAlarmRecordProcess.CreatedBy = parm.UserId;
andonAlarmRecordProcess.CreatedName = parm.UserName;
andonAlarmRecordProcess.CreatedTime = DateTime.Now;
andonAlarmRecordProcess.UpdatedBy = parm.UserId;
andonAlarmRecordProcess.UpdatedName = parm.UserName;
andonAlarmRecordProcess.UpdatedTime = DateTime.Now;
int iResult = andonAlarmRecordProcessService.Insert(andonAlarmRecordProcess);
return ApiResult.Success("成功", andonAlarmRecordProcess);
}
else
{
return ApiResult.Error(500, "只能处理响应状态数据");
}
}
catch (Exception ex)
{
return ApiResult.Error(500, ex.Message);
}
}
public ApiResult AlarmReportHand(AndonAlarmRecordDto parm)
{
try
{
if (parm == null)
{
return ApiResult.Error(500, "参数不能为空");
}
if (parm.Status == "待响应" || parm.Status == "及时响应" || parm.Status == "超时响应")
{
var record = Queryable()
.Where(x => x.Id == parm.Id)
.First();
record.Status = "主动上报";
record.Remarks = parm.Remarks;
record.UpdatedBy = parm.UserId;
record.UpdatedTime = DateTime.Now;
UpdateAndonAlarmRecord(record);
AndonAlarmRecordProcess andonAlarmRecordProcess = new AndonAlarmRecordProcess();
andonAlarmRecordProcess.AlarmCode = record.AlarmCode;
andonAlarmRecordProcess.Operate = record.Status;
andonAlarmRecordProcess.CreatedBy = parm.UserId;
andonAlarmRecordProcess.CreatedName = parm.UserName;
andonAlarmRecordProcess.CreatedTime = DateTime.Now;
andonAlarmRecordProcess.UpdatedBy = parm.UserId;
andonAlarmRecordProcess.UpdatedName = parm.UserName;
andonAlarmRecordProcess.UpdatedTime = DateTime.Now;
int iResult = andonAlarmRecordProcessService.Insert(andonAlarmRecordProcess);
return ApiResult.Success("成功", andonAlarmRecordProcess);
}
else
{
return ApiResult.Error(500, "只能处理响应状态数据");
}
}
catch (Exception ex)
{
return ApiResult.Error(500, ex.Message);
}
}
}
}

View File

@@ -3,6 +3,7 @@ using ZR.Model;
using System.Collections.Generic;
using ZR.Model.MES.andon;
using ZR.Model.MES.andon.Dto;
using Infrastructure.Model;
namespace ZR.Service.mes.andon.Iservice
{
@@ -19,5 +20,10 @@ namespace ZR.Service.mes.andon.Iservice
AndonAlarmRecord AddAndonAlarmRecord(AndonAlarmRecord parm);
int UpdateAndonAlarmRecord(AndonAlarmRecord parm);
ApiResult AlarmResponse(AndonAlarmRecordDto parm);
ApiResult AlarmHandle(AndonAlarmRecordDto parm);
ApiResult AlarmReportHand(AndonAlarmRecordDto parm);
}
}