From 3568a502e43160f73ceee02dc13aea947aa370a5 Mon Sep 17 00:00:00 2001 From: quowingwang Date: Mon, 29 Dec 2025 16:23:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AD=A6=E6=8A=A5=E9=A2=86=E5=9F=9F=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZR.Service/mes/andon/AndonAlarmAreaService.cs | 2 ++ .../mes/andon/AndonAlarmRecordService.cs | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/ZR.Service/mes/andon/AndonAlarmAreaService.cs b/ZR.Service/mes/andon/AndonAlarmAreaService.cs index c3c60f5a..9f708b01 100644 --- a/ZR.Service/mes/andon/AndonAlarmAreaService.cs +++ b/ZR.Service/mes/andon/AndonAlarmAreaService.cs @@ -41,6 +41,8 @@ namespace ZR.Service.mes.andon UpdatedBy = t.UpdatedBy, UpdatedTime = t.UpdatedTime }) + .OrderByDescending(t => t.ParentId) + .OrderByDescending (t => t.Area) .ToPage(parm); return response; diff --git a/ZR.Service/mes/andon/AndonAlarmRecordService.cs b/ZR.Service/mes/andon/AndonAlarmRecordService.cs index 0b9968d7..29477d87 100644 --- a/ZR.Service/mes/andon/AndonAlarmRecordService.cs +++ b/ZR.Service/mes/andon/AndonAlarmRecordService.cs @@ -5,6 +5,7 @@ using Infrastructure.Attribute; using Infrastructure.Helper; using Infrastructure.Model; using JinianNet.JNTemplate.Parsers; +using Microsoft.AspNetCore.Server.Kestrel.Core; using SqlSugar; using SqlSugar.Extensions; using System; @@ -235,6 +236,15 @@ namespace ZR.Service.mes.andon record.Remarks = parm.Remarks; record.UpdatedBy = parm.UserId; record.UpdatedTime = DateTime.Now; + //获取设备停机持续时间 + if (record.CreatedTime != null) + { + record.DurationTime = getDurationTime((DateTime)record.CreatedTime); + } + else + { + record.DurationTime = 0; + } UpdateAndonAlarmRecord(record); AndonAlarmRecordProcess andonAlarmRecordProcess = new AndonAlarmRecordProcess(); andonAlarmRecordProcess.AlarmCode = record.AlarmCode; @@ -272,6 +282,27 @@ namespace ZR.Service.mes.andon } } + private int getDurationTime(DateTime alarmStartTime) + { + try + { + int duration = 0; + // 假设 MinDateValue 是 DateTime.MinValue 或某个最小日期 + DateTime MinDateValue = DateTime.MinValue; + if (alarmStartTime > MinDateValue && alarmStartTime < DateTime.Now) + { + // 将当前时间减去创建时间,作为报警持续时间(返回分钟数) + TimeSpan timeSpan = DateTime.Now - alarmStartTime; + duration = (int)timeSpan.TotalMinutes; + } + return duration; + } + catch (Exception ex) + { + return 0; + } + } + public ApiResult AlarmReportHand(AndonAlarmRecordDto parm) { try