From 1e5043a978a1f8fb417545395eef37c3dff1a390 Mon Sep 17 00:00:00 2001 From: zpc Date: Wed, 22 Apr 2026 15:27:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Business/OdfCableFaultsController.cs | 68 +++++++++++++++++-- .../IOdfCableFaultsService.cs | 5 ++ .../Business/OdfCableFaultsService.cs | 11 +++ 3 files changed, 78 insertions(+), 6 deletions(-) diff --git a/server/ZR.Admin.WebApi/Controllers/Business/OdfCableFaultsController.cs b/server/ZR.Admin.WebApi/Controllers/Business/OdfCableFaultsController.cs index e4131fb..ba88aed 100644 --- a/server/ZR.Admin.WebApi/Controllers/Business/OdfCableFaultsController.cs +++ b/server/ZR.Admin.WebApi/Controllers/Business/OdfCableFaultsController.cs @@ -70,11 +70,13 @@ namespace ZR.Admin.WebApi.Controllers.Business try { var newRecord = _OdfCableFaultsService.GetFirst(f => f.Id == response); + var cableName = _OdfCableFaultsService.GetCableNameByFaultId(response); string newData = BuildAuditJson(new Dictionary { ["Id"] = newRecord.Id, ["关联光缆ID"] = newRecord.CableId, - ["故障时间"] = newRecord.FaultTime, + ["所属光缆"] = cableName, + ["故障时间"] = newRecord.FaultTime.ToString("yyyy-MM-dd HH:mm:ss"), ["人员"] = newRecord.Personnel, ["故障原因"] = newRecord.FaultReason, ["表显故障里程"] = newRecord.Mileage, @@ -106,13 +108,17 @@ namespace ZR.Admin.WebApi.Controllers.Business [Log(Title = "干线故障", BusinessType = BusinessType.UPDATE)] public IActionResult IncrementFaultCount(int id) { - // 记录旧数据 + // 记录旧数据(含故障时间列表和所属光缆名称) var oldFault = _OdfCableFaultsService.GetFirst(f => f.Id == id); + var oldFaultTimes = _OdfCableFaultsService.GetFaultTimesByFaultIds(new List { id }); + var oldTimesStr = BuildFaultTimesDisplay(oldFault.FaultTime, oldFaultTimes.ContainsKey(id) ? oldFaultTimes[id] : new List()); + var cableName = _OdfCableFaultsService.GetCableNameByFaultId(id); string oldData = BuildAuditJson(new Dictionary { ["Id"] = oldFault.Id, ["关联光缆ID"] = oldFault.CableId, - ["故障时间"] = oldFault.FaultTime, + ["所属光缆"] = cableName, + ["故障时间"] = oldTimesStr, ["人员"] = oldFault.Personnel, ["故障原因"] = oldFault.FaultReason, ["表显故障里程"] = oldFault.Mileage, @@ -130,13 +136,16 @@ namespace ZR.Admin.WebApi.Controllers.Business // 执行更新 var response = _OdfCableFaultsService.IncrementFaultCount(id); - // 记录新数据 + // 记录新数据(含更新后的故障时间列表) var newFault = _OdfCableFaultsService.GetFirst(f => f.Id == id); + var newFaultTimes = _OdfCableFaultsService.GetFaultTimesByFaultIds(new List { id }); + var newTimesStr = BuildFaultTimesDisplay(newFault.FaultTime, newFaultTimes.ContainsKey(id) ? newFaultTimes[id] : new List()); string newData = BuildAuditJson(new Dictionary { ["Id"] = newFault.Id, ["关联光缆ID"] = newFault.CableId, - ["故障时间"] = newFault.FaultTime, + ["所属光缆"] = cableName, + ["故障时间"] = newTimesStr, ["人员"] = newFault.Personnel, ["故障原因"] = newFault.FaultReason, ["表显故障里程"] = newFault.Mileage, @@ -174,10 +183,27 @@ namespace ZR.Admin.WebApi.Controllers.Business { // 查旧数据 var oldRecord = _OdfCableFaultsService.GetFirst(f => f.Id == id); + var oldFaultTimes = _OdfCableFaultsService.GetFaultTimesByFaultIds(new List { id }); + var oldTimesStr = BuildFaultTimesDisplay(oldRecord.FaultTime, oldFaultTimes.ContainsKey(id) ? oldFaultTimes[id] : new List()); + var cableName = _OdfCableFaultsService.GetCableNameByFaultId(id); string oldData = BuildAuditJson(new Dictionary { + ["Id"] = oldRecord.Id, + ["关联光缆ID"] = oldRecord.CableId, + ["所属光缆"] = cableName, + ["故障时间"] = oldTimesStr, + ["人员"] = oldRecord.Personnel, + ["故障原因"] = oldRecord.FaultReason, + ["表显故障里程"] = oldRecord.Mileage, ["表显里程矫正"] = oldRecord.MileageCorrection, + ["地点描述"] = oldRecord.Location, + ["纬度"] = oldRecord.Latitude, + ["经度"] = oldRecord.Longitude, + ["备注"] = oldRecord.Remark, + ["提交人用户ID"] = oldRecord.UserId, + ["创建时间"] = oldRecord.CreatedAt, ["更新时间"] = oldRecord.UpdatedAt, + ["故障发生频次"] = oldRecord.FaultCount, }); // 执行更新 @@ -185,10 +211,26 @@ namespace ZR.Admin.WebApi.Controllers.Business // 查新数据 var newRecord = _OdfCableFaultsService.GetFirst(f => f.Id == id); + var newFaultTimes = _OdfCableFaultsService.GetFaultTimesByFaultIds(new List { id }); + var newTimesStr = BuildFaultTimesDisplay(newRecord.FaultTime, newFaultTimes.ContainsKey(id) ? newFaultTimes[id] : new List()); string newData = BuildAuditJson(new Dictionary { + ["Id"] = newRecord.Id, + ["关联光缆ID"] = newRecord.CableId, + ["所属光缆"] = cableName, + ["故障时间"] = newTimesStr, + ["人员"] = newRecord.Personnel, + ["故障原因"] = newRecord.FaultReason, + ["表显故障里程"] = newRecord.Mileage, ["表显里程矫正"] = newRecord.MileageCorrection, + ["地点描述"] = newRecord.Location, + ["纬度"] = newRecord.Latitude, + ["经度"] = newRecord.Longitude, + ["备注"] = newRecord.Remark, + ["提交人用户ID"] = newRecord.UserId, + ["创建时间"] = newRecord.CreatedAt, ["更新时间"] = newRecord.UpdatedAt, + ["故障发生频次"] = newRecord.FaultCount, }); // 写入审计日志 @@ -227,11 +269,15 @@ namespace ZR.Admin.WebApi.Controllers.Business foreach (var id in idList) { var oldRecord = _OdfCableFaultsService.GetFirst(f => f.Id == id); + var delFaultTimes = _OdfCableFaultsService.GetFaultTimesByFaultIds(new List { id }); + var delTimesStr = BuildFaultTimesDisplay(oldRecord.FaultTime, delFaultTimes.ContainsKey(id) ? delFaultTimes[id] : new List()); + var delCableName = _OdfCableFaultsService.GetCableNameByFaultId(id); string oldData = BuildAuditJson(new Dictionary { ["Id"] = oldRecord.Id, ["关联光缆ID"] = oldRecord.CableId, - ["故障时间"] = oldRecord.FaultTime, + ["所属光缆"] = delCableName, + ["故障时间"] = delTimesStr, ["人员"] = oldRecord.Personnel, ["故障原因"] = oldRecord.FaultReason, ["表显故障里程"] = oldRecord.Mileage, @@ -431,5 +477,15 @@ namespace ZR.Admin.WebApi.Controllers.Business } return mileage ?? ""; } + + /// + /// 构建故障时间显示字符串(首次故障时间 + 频次时间列表) + /// + private static string BuildFaultTimesDisplay(DateTime faultTime, List faultTimes) + { + var times = new List { faultTime.ToString("yyyy-MM-dd HH:mm:ss") }; + times.AddRange(faultTimes.Select(t => t.ToString("yyyy-MM-dd HH:mm:ss"))); + return string.Join(", ", times); + } } } diff --git a/server/ZR.Service/Business/IBusinessService/IOdfCableFaultsService.cs b/server/ZR.Service/Business/IBusinessService/IOdfCableFaultsService.cs index 6fc48d1..5fc3ad0 100644 --- a/server/ZR.Service/Business/IBusinessService/IOdfCableFaultsService.cs +++ b/server/ZR.Service/Business/IBusinessService/IOdfCableFaultsService.cs @@ -53,5 +53,10 @@ namespace ZR.Service.Business.IBusinessService /// 更新表显里程矫正 /// int UpdateMileageCorrection(int id, string mileageCorrection); + + /// + /// 根据故障ID获取所属光缆名称 + /// + string GetCableNameByFaultId(int faultId); } } diff --git a/server/ZR.Service/Business/OdfCableFaultsService.cs b/server/ZR.Service/Business/OdfCableFaultsService.cs index 13ad308..685e535 100644 --- a/server/ZR.Service/Business/OdfCableFaultsService.cs +++ b/server/ZR.Service/Business/OdfCableFaultsService.cs @@ -481,5 +481,16 @@ namespace ZR.Service.Business fault.UpdatedAt = DateTime.Now; return Update(fault, true); } + + /// + /// 根据故障ID获取所属光缆名称 + /// + public string GetCableNameByFaultId(int faultId) + { + var fault = GetFirst(f => f.Id == faultId); + if (fault == null) return ""; + var cable = Context.Queryable().Where(c => c.Id == fault.CableId).First(); + return cable?.CableName ?? ""; + } } }