From af414d27c9a096cc2560b5e64caddf4cc8271ff7 Mon Sep 17 00:00:00 2001 From: quowingwang Date: Thu, 11 Dec 2025 11:11:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=AD=A6=E8=AE=B0=E5=BD=95=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=BF=87=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/andon/AndonAlarmRecordController.cs | 7 +- .../AndonAlarmRecordProcessController.cs | 109 ++++++++++++++++++ ...rAdmin.NET-安灯报警处理过程-1211104819.zip | Bin 0 -> 8483 bytes .../ZrAdmin.NET-报警记录-1211104814.zip | Bin 0 -> 9384 bytes ZR.Model/MES/andon/AndonAlarmRecord.cs | 90 +++++++++------ ZR.Model/MES/andon/AndonAlarmRecordProcess.cs | 74 ++++++++++++ ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs | 32 +++-- .../andon/Dto/AndonAlarmRecordProcessDto.cs | 43 +++++++ .../andon/AndonAlarmRecordProcessService.cs | 83 +++++++++++++ .../mes/andon/AndonAlarmRecordService.cs | 17 +-- .../IAndonAlarmRecordProcessService.cs | 23 ++++ .../mes/andon/ScheduledBackgroundService.cs | 61 ++++++++++ 12 files changed, 483 insertions(+), 56 deletions(-) create mode 100644 ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordProcessController.cs create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-安灯报警处理过程-1211104819.zip create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警记录-1211104814.zip create mode 100644 ZR.Model/MES/andon/AndonAlarmRecordProcess.cs create mode 100644 ZR.Model/MES/andon/Dto/AndonAlarmRecordProcessDto.cs create mode 100644 ZR.Service/mes/andon/AndonAlarmRecordProcessService.cs create mode 100644 ZR.Service/mes/andon/IService/IAndonAlarmRecordProcessService.cs create mode 100644 ZR.Service/mes/andon/ScheduledBackgroundService.cs 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 0000000000000000000000000000000000000000..a20234a43ff9433620a09b6ccebee2f39371899b GIT binary patch literal 8483 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 atCVEnU#E}$VfluhE+hYsxBmgJYvj2A literal 0 HcmV?d00001 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("定时后台服务停止"); + } + } +}