diff --git a/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs
index 50d0bd44..c66bf0ae 100644
--- a/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs
+++ b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs
@@ -4,14 +4,15 @@ using ZR.Admin.WebApi.Filters;
using ZR.Model.MES.andon;
using ZR.Model.MES.andon.Dto;
using ZR.Service.mes.andon.Iservice;
-//创建时间:2025-12-10
+
+//创建时间:2025-12-11
namespace ZR.Admin.WebApi.Controllers.andon
{
///
/// 报警记录
///
- [Route("mes/AndonAlarmRecord")]
- [AllowAnonymous]
+ [Verify]
+ [Route("business/AndonAlarmRecord")]
public class AndonAlarmRecordController : BaseController
{
///
diff --git a/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordProcessController.cs b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordProcessController.cs
new file mode 100644
index 00000000..4559c3ad
--- /dev/null
+++ b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordProcessController.cs
@@ -0,0 +1,109 @@
+using Microsoft.AspNetCore.Mvc;
+using ZR.Admin.WebApi.Extensions;
+using ZR.Admin.WebApi.Filters;
+using ZR.Model.MES.andon;
+using ZR.Model.MES.andon.Dto;
+using ZR.Service.mes.andon.Iservice;
+
+//创建时间:2025-12-11
+namespace ZR.Admin.WebApi.Controllers.andon
+{
+ ///
+ /// 安灯报警处理过程
+ ///
+ [Verify]
+ [Route("business/AndonAlarmRecordProcess")]
+ public class AndonAlarmRecordProcessController : BaseController
+ {
+ ///
+ /// 安灯报警处理过程接口
+ ///
+ private readonly IAndonAlarmRecordProcessService _AndonAlarmRecordProcessService;
+
+ public AndonAlarmRecordProcessController(IAndonAlarmRecordProcessService AndonAlarmRecordProcessService)
+ {
+ _AndonAlarmRecordProcessService = AndonAlarmRecordProcessService;
+ }
+
+ ///
+ /// 查询安灯报警处理过程列表
+ ///
+ ///
+ ///
+ [HttpGet("list")]
+ [ActionPermissionFilter(Permission = "business:andonalarmrecordprocess:list")]
+ public IActionResult QueryAndonAlarmRecordProcess([FromQuery] AndonAlarmRecordProcessQueryDto parm)
+ {
+ var response = _AndonAlarmRecordProcessService.GetList(parm);
+ return SUCCESS(response);
+ }
+
+
+ ///
+ /// 查询安灯报警处理过程详情
+ ///
+ ///
+ ///
+ [HttpGet("{Id}")]
+ [ActionPermissionFilter(Permission = "business:andonalarmrecordprocess:query")]
+ public IActionResult GetAndonAlarmRecordProcess(int Id)
+ {
+ var response = _AndonAlarmRecordProcessService.GetInfo(Id);
+
+ var info = response.Adapt();
+ return SUCCESS(info);
+ }
+
+ ///
+ /// 添加安灯报警处理过程
+ ///
+ ///
+ [HttpPost]
+ [ActionPermissionFilter(Permission = "business:andonalarmrecordprocess:add")]
+ [Log(Title = "安灯报警处理过程", BusinessType = BusinessType.INSERT)]
+ public IActionResult AddAndonAlarmRecordProcess([FromBody] AndonAlarmRecordProcessDto parm)
+ {
+ var modal = parm.Adapt().ToCreate(HttpContext);
+
+ var response = _AndonAlarmRecordProcessService.AddAndonAlarmRecordProcess(modal);
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 更新安灯报警处理过程
+ ///
+ ///
+ [HttpPut]
+ [ActionPermissionFilter(Permission = "business:andonalarmrecordprocess:edit")]
+ [Log(Title = "安灯报警处理过程", BusinessType = BusinessType.UPDATE)]
+ public IActionResult UpdateAndonAlarmRecordProcess([FromBody] AndonAlarmRecordProcessDto parm)
+ {
+ var modal = parm.Adapt().ToUpdate(HttpContext);
+ var response = _AndonAlarmRecordProcessService.UpdateAndonAlarmRecordProcess(modal);
+
+ return ToResponse(response);
+ }
+
+ ///
+ /// 删除安灯报警处理过程
+ ///
+ ///
+ [HttpDelete("{ids}")]
+ [ActionPermissionFilter(Permission = "business:andonalarmrecordprocess:delete")]
+ [Log(Title = "安灯报警处理过程", BusinessType = BusinessType.DELETE)]
+ public IActionResult DeleteAndonAlarmRecordProcess(string ids)
+ {
+ int[] idsArr = Tools.SpitIntArrary(ids);
+ if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
+
+ var response = _AndonAlarmRecordProcessService.Delete(idsArr);
+
+ return ToResponse(response);
+ }
+
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-安灯报警处理过程-1211104819.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-安灯报警处理过程-1211104819.zip
new file mode 100644
index 00000000..a20234a4
Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-安灯报警处理过程-1211104819.zip differ
diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警记录-1211104814.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警记录-1211104814.zip
new file mode 100644
index 00000000..b25cec73
Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警记录-1211104814.zip differ
diff --git a/ZR.Model/MES/andon/AndonAlarmRecord.cs b/ZR.Model/MES/andon/AndonAlarmRecord.cs
index bcd33450..5894cd52 100644
--- a/ZR.Model/MES/andon/AndonAlarmRecord.cs
+++ b/ZR.Model/MES/andon/AndonAlarmRecord.cs
@@ -13,52 +13,30 @@ namespace ZR.Model.MES.andon
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
+ ///
+ /// 报警编码
+ ///
+ [SugarColumn(ColumnName = "alarm_code")]
+ public string AlarmCode { get; set; }
+
///
/// 产线
///
[SugarColumn(ColumnName = "line_code")]
public string LineCode { get; set; }
+ ///
+ /// 产线名称
+ ///
+ [SugarColumn(ColumnName = "line_name")]
+ public string LineName { get; set; }
+
///
/// 报警类型
///
[SugarColumn(ColumnName = "alarm_type")]
public string AlarmType { get; set; }
- ///
- /// 发送方
- ///
- public string Sender { get; set; }
-
- ///
- /// 发送时间
- ///
- [SugarColumn(ColumnName = "send_time")]
- public DateTime? SendTime { get; set; }
-
- ///
- /// 接收方
- ///
- public string Receiver { get; set; }
-
- ///
- /// 响应时间
- ///
- [SugarColumn(ColumnName = "response_time")]
- public DateTime? ResponseTime { get; set; }
-
- ///
- /// 处理结束时间
- ///
- [SugarColumn(ColumnName = "handle_time")]
- public DateTime? HandleTime { get; set; }
-
- ///
- /// 持续时间
- ///
- [SugarColumn(ColumnName = "duration_time")]
- public int? DurationTime { get; set; }
-
///
/// 报警级别
///
@@ -71,6 +49,45 @@ namespace ZR.Model.MES.andon
[SugarColumn(ColumnName = "alarm_info")]
public string AlarmInfo { get; set; }
+ ///
+ /// 发送方ID
+ ///
+ public string Sender { get; set; }
+
+ ///
+ /// 发送方名称
+ ///
+ [SugarColumn(ColumnName = "sender_name")]
+ public string SenderName { get; set; }
+
+ ///
+ /// 发送时间
+ ///
+ [SugarColumn(ColumnName = "send_time")]
+ public DateTime? SendTime { get; set; }
+
+ ///
+ /// 接收方
+ ///
+ public string Receiver { get; set; }
+
+ ///
+ /// 接收方名称
+ ///
+ [SugarColumn(ColumnName = "receiver_name")]
+ public string ReceiverName { get; set; }
+
+ ///
+ /// 序号
+ ///
+ public int? Sequence { get; set; }
+
+ ///
+ /// 持续时间
+ ///
+ [SugarColumn(ColumnName = "duration_time")]
+ public int? DurationTime { get; set; }
+
///
/// 状态(未处理、已处理、上报、超时)
///
@@ -82,6 +99,11 @@ namespace ZR.Model.MES.andon
[SugarColumn(ColumnName = "handle_result")]
public string HandleResult { get; set; }
+ ///
+ /// 备注
+ ///
+ public string Remarks { get; set; }
+
///
/// 创建人
///
diff --git a/ZR.Model/MES/andon/AndonAlarmRecordProcess.cs b/ZR.Model/MES/andon/AndonAlarmRecordProcess.cs
new file mode 100644
index 00000000..e472f4bf
--- /dev/null
+++ b/ZR.Model/MES/andon/AndonAlarmRecordProcess.cs
@@ -0,0 +1,74 @@
+
+namespace ZR.Model.MES.andon
+{
+ ///
+ /// 安灯报警处理过程
+ ///
+ [SugarTable("andon_alarm_record_process")]
+ public class AndonAlarmRecordProcess
+ {
+ ///
+ /// 主键
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 报警记录编码
+ ///
+ [SugarColumn(ColumnName = "alarm_code")]
+ public string AlarmCode { get; set; }
+
+ ///
+ /// 操作
+ ///
+ public string Operate { get; set; }
+
+ ///
+ /// 操作人
+ ///
+ public string Operator { get; set; }
+
+ ///
+ /// 操作人名称
+ ///
+ [SugarColumn(ColumnName = "operator_name")]
+ public string OperatorName { get; set; }
+
+ ///
+ /// 操作时间
+ ///
+ [SugarColumn(ColumnName = "operate_time")]
+ public DateTime? OperateTime { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string Remarks { get; set; }
+
+ ///
+ /// 创建人
+ ///
+ [SugarColumn(ColumnName = "cREATED_BY")]
+ public string CreatedBy { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "cREATED_TIME")]
+ public DateTime? CreatedTime { get; set; }
+
+ ///
+ /// 更新人
+ ///
+ [SugarColumn(ColumnName = "uPDATED_BY")]
+ public string UpdatedBy { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ [SugarColumn(ColumnName = "uPDATED_TIME")]
+ public DateTime? UpdatedTime { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs b/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs
index 8f5ab71c..be096eaa 100644
--- a/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs
+++ b/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs
@@ -17,30 +17,38 @@ namespace ZR.Model.MES.andon.Dto
[Required(ErrorMessage = "主键不能为空")]
public int Id { get; set; }
+ public string AlarmCode { get; set; }
+
public string LineCode { get; set; }
+ public string LineName { get; set; }
+
public string AlarmType { get; set; }
- public string Sender { get; set; }
-
- public DateTime? SendTime { get; set; }
-
- public string Receiver { get; set; }
-
- public DateTime? ResponseTime { get; set; }
-
- public DateTime? HandleTime { get; set; }
-
- public int? DurationTime { get; set; }
-
public string AlarmLevel { get; set; }
public string AlarmInfo { get; set; }
+ public string Sender { get; set; }
+
+ public string SenderName { get; set; }
+
+ public DateTime? SendTime { get; set; }
+
+ public string Receiver { get; set; }
+
+ public string ReceiverName { get; set; }
+
+ public int? Sequence { get; set; }
+
+ public int? DurationTime { get; set; }
+
public string Status { get; set; }
public string HandleResult { get; set; }
+ public string Remarks { get; set; }
+
public string CreatedBy { get; set; }
public DateTime? CreatedTime { get; set; }
diff --git a/ZR.Model/MES/andon/Dto/AndonAlarmRecordProcessDto.cs b/ZR.Model/MES/andon/Dto/AndonAlarmRecordProcessDto.cs
new file mode 100644
index 00000000..3c81f56f
--- /dev/null
+++ b/ZR.Model/MES/andon/Dto/AndonAlarmRecordProcessDto.cs
@@ -0,0 +1,43 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace ZR.Model.MES.andon.Dto
+{
+ ///
+ /// 安灯报警处理过程查询对象
+ ///
+ public class AndonAlarmRecordProcessQueryDto : PagerInfo
+ {
+ }
+
+ ///
+ /// 安灯报警处理过程输入输出对象
+ ///
+ public class AndonAlarmRecordProcessDto
+ {
+ [Required(ErrorMessage = "主键不能为空")]
+ public int Id { get; set; }
+
+ public string AlarmCode { get; set; }
+
+ public string Operate { get; set; }
+
+ public string Operator { get; set; }
+
+ public string OperatorName { get; set; }
+
+ public DateTime? OperateTime { get; set; }
+
+ public string Remarks { get; set; }
+
+ public string CreatedBy { get; set; }
+
+ public DateTime? CreatedTime { get; set; }
+
+ public string UpdatedBy { get; set; }
+
+ public DateTime? UpdatedTime { get; set; }
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/ZR.Service/mes/andon/AndonAlarmRecordProcessService.cs b/ZR.Service/mes/andon/AndonAlarmRecordProcessService.cs
new file mode 100644
index 00000000..7ae18e24
--- /dev/null
+++ b/ZR.Service/mes/andon/AndonAlarmRecordProcessService.cs
@@ -0,0 +1,83 @@
+using Infrastructure.Attribute;
+using SqlSugar;
+using ZR.Model;
+using ZR.Model.MES.andon;
+using ZR.Model.MES.andon.Dto;
+using ZR.Repository;
+using ZR.Service.mes.andon.Iservice;
+
+namespace ZR.Service.mes.andon
+{
+ ///
+ /// 安灯报警处理过程Service业务层处理
+ ///
+ [AppService(ServiceType = typeof(IAndonAlarmRecordProcessService), ServiceLifetime = LifeTime.Transient)]
+ public class AndonAlarmRecordProcessService : BaseService, IAndonAlarmRecordProcessService
+ {
+ ///
+ /// 查询安灯报警处理过程列表
+ ///
+ ///
+ ///
+ public PagedInfo GetList(AndonAlarmRecordProcessQueryDto parm)
+ {
+ var predicate = Expressionable.Create();
+
+ var response = Queryable()
+ .Where(predicate.ToExpression())
+ .ToPage(parm);
+
+ return response;
+ }
+
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ public AndonAlarmRecordProcess GetInfo(int Id)
+ {
+ var response = Queryable()
+ .Where(x => x.Id == Id)
+ .First();
+
+ return response;
+ }
+
+ ///
+ /// 添加安灯报警处理过程
+ ///
+ ///
+ ///
+ public AndonAlarmRecordProcess AddAndonAlarmRecordProcess(AndonAlarmRecordProcess model)
+ {
+ return Context.Insertable(model).ExecuteReturnEntity();
+ }
+
+ ///
+ /// 修改安灯报警处理过程
+ ///
+ ///
+ ///
+ public int UpdateAndonAlarmRecordProcess(AndonAlarmRecordProcess model)
+ {
+ //var response = Update(w => w.Id == model.Id, it => new AndonAlarmRecordProcess()
+ //{
+ // AlarmCode = model.AlarmCode,
+ // Operate = model.Operate,
+ // Operator = model.Operator,
+ // OperatorName = model.OperatorName,
+ // OperateTime = model.OperateTime,
+ // Remarks = model.Remarks,
+ // CreatedBy = model.CreatedBy,
+ // CreatedTime = model.CreatedTime,
+ // UpdatedBy = model.UpdatedBy,
+ // UpdatedTime = model.UpdatedTime,
+ //});
+ //return response;
+ return Update(model, true);
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/ZR.Service/mes/andon/AndonAlarmRecordService.cs b/ZR.Service/mes/andon/AndonAlarmRecordService.cs
index da87cbb7..1d34fcdf 100644
--- a/ZR.Service/mes/andon/AndonAlarmRecordService.cs
+++ b/ZR.Service/mes/andon/AndonAlarmRecordService.cs
@@ -6,7 +6,6 @@ using ZR.Model.MES.andon.Dto;
using ZR.Repository;
using ZR.Service.mes.andon.Iservice;
-
namespace ZR.Service.mes.andon
{
///
@@ -65,18 +64,22 @@ namespace ZR.Service.mes.andon
{
//var response = Update(w => w.Id == model.Id, it => new AndonAlarmRecord()
//{
+ // AlarmCode = model.AlarmCode,
// LineCode = model.LineCode,
+ // LineName = model.LineName,
// AlarmType = model.AlarmType,
- // Sender = model.Sender,
- // SendTime = model.SendTime,
- // Receiver = model.Receiver,
- // ResponseTime = model.ResponseTime,
- // HandleTime = model.HandleTime,
- // DurationTime = model.DurationTime,
// AlarmLevel = model.AlarmLevel,
// AlarmInfo = model.AlarmInfo,
+ // Sender = model.Sender,
+ // SenderName = model.SenderName,
+ // SendTime = model.SendTime,
+ // Receiver = model.Receiver,
+ // ReceiverName = model.ReceiverName,
+ // Sequence = model.Sequence,
+ // DurationTime = model.DurationTime,
// Status = model.Status,
// HandleResult = model.HandleResult,
+ // Remarks = model.Remarks,
// CreatedBy = model.CreatedBy,
// CreatedTime = model.CreatedTime,
// UpdatedBy = model.UpdatedBy,
diff --git a/ZR.Service/mes/andon/IService/IAndonAlarmRecordProcessService.cs b/ZR.Service/mes/andon/IService/IAndonAlarmRecordProcessService.cs
new file mode 100644
index 00000000..74d76231
--- /dev/null
+++ b/ZR.Service/mes/andon/IService/IAndonAlarmRecordProcessService.cs
@@ -0,0 +1,23 @@
+using System;
+using ZR.Model;
+using System.Collections.Generic;
+using ZR.Model.MES.andon;
+using ZR.Model.MES.andon.Dto;
+
+namespace ZR.Service.mes.andon.Iservice
+{
+ ///
+ /// 安灯报警处理过程service接口
+ ///
+ public interface IAndonAlarmRecordProcessService : IBaseService
+ {
+ PagedInfo GetList(AndonAlarmRecordProcessQueryDto parm);
+
+ AndonAlarmRecordProcess GetInfo(int Id);
+
+ AndonAlarmRecordProcess AddAndonAlarmRecordProcess(AndonAlarmRecordProcess parm);
+
+ int UpdateAndonAlarmRecordProcess(AndonAlarmRecordProcess parm);
+
+ }
+}
diff --git a/ZR.Service/mes/andon/ScheduledBackgroundService.cs b/ZR.Service/mes/andon/ScheduledBackgroundService.cs
new file mode 100644
index 00000000..92d6eff2
--- /dev/null
+++ b/ZR.Service/mes/andon/ScheduledBackgroundService.cs
@@ -0,0 +1,61 @@
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace ZR.Service.mes.andon
+{
+ public class ScheduledBackgroundService:BackgroundService
+ {
+ private readonly ILogger _logger;
+ private readonly IServiceScopeFactory _scopeFactory;
+ private readonly TimeSpan _interval = TimeSpan.FromMinutes(5);
+
+ public ScheduledBackgroundService(
+ ILogger logger,
+ IServiceScopeFactory scopeFactory)
+ {
+ _logger = logger;
+ _scopeFactory = scopeFactory;
+ }
+
+ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
+ {
+ _logger.LogInformation($"定时后台服务启动,执行间隔: {_interval.TotalMinutes}分钟");
+
+ // 延迟启动,等待应用完全初始化
+ await Task.Delay(TimeSpan.FromSeconds(10), stoppingToken);
+
+ while (!stoppingToken.IsCancellationRequested)
+ {
+ try
+ {
+ _logger.LogInformation($"开始执行定时任务: {DateTime.Now:HH:mm:ss}");
+
+ //// 使用 Scope 获取 Scoped 服务
+ //using (var scope = _scopeFactory.CreateScope())
+ //{
+ // var myService = scope.ServiceProvider.GetRequiredService();
+ // await myService.ProcessDataAsync();
+ //}
+
+ _logger.LogInformation($"定时任务完成");
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "定时任务执行异常");
+ }
+
+ // 等待指定间隔
+ await Task.Delay(_interval, stoppingToken);
+ }
+
+ _logger.LogInformation("定时后台服务停止");
+ }
+ }
+}