diff --git a/server/ZR.Admin.WebApi/Filters/OdfAuditLogFilter.cs b/server/ZR.Admin.WebApi/Filters/OdfAuditLogFilter.cs index d3b2355..9218e7c 100644 --- a/server/ZR.Admin.WebApi/Filters/OdfAuditLogFilter.cs +++ b/server/ZR.Admin.WebApi/Filters/OdfAuditLogFilter.cs @@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc.Filters; using SqlSugar; +using SqlSugar.IOC; using System.Text.Json; using ZR.Model.Business; using ZR.Service.Business.IBusinessService; @@ -310,7 +311,7 @@ namespace ZR.Admin.WebApi.Filters { try { - var db = App.GetService(); + var db = DbScoped.SugarScope; if (db == null) return null; var data = await db.Queryable() diff --git a/server/ZR.Model/Business/Dto/OdfMarkerPolesDto.cs b/server/ZR.Model/Business/Dto/OdfMarkerPolesDto.cs index eb42ace..a83b2e0 100644 --- a/server/ZR.Model/Business/Dto/OdfMarkerPolesDto.cs +++ b/server/ZR.Model/Business/Dto/OdfMarkerPolesDto.cs @@ -80,6 +80,8 @@ namespace ZR.Model.Business.Dto public string? ActualMileage { get; set; } public string? DeptName { get; set; } + + public string? CableName { get; set; } } /// @@ -107,6 +109,8 @@ namespace ZR.Model.Business.Dto public string? DeptName { get; set; } + public string? CableName { get; set; } + public long? UserId { get; set; } public DateTime? CreatedAt { get; set; } diff --git a/server/ZR.Service/Business/OdfMarkerPolesService.cs b/server/ZR.Service/Business/OdfMarkerPolesService.cs index a6bd54c..8d2e90a 100644 --- a/server/ZR.Service/Business/OdfMarkerPolesService.cs +++ b/server/ZR.Service/Business/OdfMarkerPolesService.cs @@ -29,28 +29,32 @@ namespace ZR.Service.Business // 按 CableId 过滤 predicate = predicate.AndIF(parm.CableId != null, it => it.CableId == parm.CableId); + // 按名称关键字过滤 + predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Keyword), it => it.Name.Contains(parm.Keyword)); + var total = 0; var list = Queryable() + .LeftJoin((mp, c) => mp.CableId == c.Id) .Where(predicate.ToExpression()) - .OrderByDescending(it => it.RecordTime) + .OrderByDescending((mp, c) => mp.RecordTime) + .Select((mp, c) => new OdfMarkerPoleListDto + { + Id = mp.Id, + CableId = mp.CableId, + Name = mp.Name, + RecordTime = mp.RecordTime, + Personnel = mp.Personnel, + Latitude = mp.Latitude, + Longitude = mp.Longitude, + ActualMileage = mp.ActualMileage, + DeptName = mp.DeptName, + CableName = c.CableName + }) .ToPageList(parm.PageNum, parm.PageSize, ref total); - var result = list.Select(it => new OdfMarkerPoleListDto - { - Id = it.Id, - CableId = it.CableId, - Name = it.Name, - RecordTime = it.RecordTime, - Personnel = it.Personnel, - Latitude = it.Latitude, - Longitude = it.Longitude, - ActualMileage = it.ActualMileage, - DeptName = it.DeptName - }).ToList(); - return new PagedInfo { - Result = result, + Result = list, TotalNum = total, PageIndex = parm.PageNum, PageSize = parm.PageSize @@ -68,6 +72,10 @@ namespace ZR.Service.Business throw new CustomException("标石记录不存在"); } + var cable = Context.Queryable() + .Where(c => c.Id == entity.CableId) + .First(); + var images = Context.Queryable() .Where(img => img.MarkerPoleId == id) .OrderBy(img => img.Id) @@ -85,7 +93,11 @@ namespace ZR.Service.Business Longitude = entity.Longitude, ActualMileage = entity.ActualMileage, DeptId = entity.DeptId, - DeptName = entity.DeptName, + DeptName = entity.DeptName ?? Context.Queryable() + .Where(d => d.DeptId == entity.DeptId) + .Select(d => d.DeptName) + .First(), + CableName = cable?.CableName, UserId = entity.UserId, CreatedAt = entity.CreatedAt, UpdatedAt = entity.UpdatedAt, @@ -113,10 +125,21 @@ namespace ZR.Service.Business throw new CustomException("请至少上传一张图片"); } - // 查询部门名称 - var dept = Context.Queryable() - .Where(d => d.DeptId == deptId) - .First(); + // 查询部门名称;若当前用户无部门(如超级管理员 DeptId=0),从光缆继承 + var actualDeptId = deptId; + string actualDeptName = null; + if (deptId > 0) + { + var dept = Context.Queryable() + .Where(d => d.DeptId == deptId) + .First(); + actualDeptName = dept?.DeptName; + } + else + { + actualDeptId = cable.DeptId; + actualDeptName = cable.DeptName; + } var model = new OdfMarkerPoles { @@ -127,8 +150,8 @@ namespace ZR.Service.Business Latitude = dto.Latitude, Longitude = dto.Longitude, ActualMileage = dto.ActualMileage, - DeptId = deptId, - DeptName = dept?.DeptName, + DeptId = actualDeptId, + DeptName = actualDeptName, UserId = dto.UserId, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now diff --git a/server/ZR.Vue/src/views/business/OdfAuditLogs.vue b/server/ZR.Vue/src/views/business/OdfAuditLogs.vue index 34702f6..db09154 100644 --- a/server/ZR.Vue/src/views/business/OdfAuditLogs.vue +++ b/server/ZR.Vue/src/views/business/OdfAuditLogs.vue @@ -58,7 +58,11 @@ {{ scope.row.sourceClient }} - + + +