Browse Source

修复检查合规统计点击合计没有详细数据

qinchaoyue 2 weeks ago
parent
commit
03780a0f39

+ 8 - 2
src/Hotline.Application/Snapshot/BiSnapshotApplication.cs

@@ -765,7 +765,9 @@ public class BiSnapshotApplication : IBiSnapshotApplication, IScopeDependency
         dto.FieldName = dto.FieldName.ToLower();
         var query = _orderSnapshotRepository.Queryable(includeDeleted: true)
             .LeftJoin<Order>((snapshot, order) => order.Id == snapshot.Id)
-            .Where((snapshot, order) => snapshot.CreationTime >= dto.StartTime && snapshot.CreationTime <= dto.EndTime && order.ActualHandleOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")) == dto.OrgCode);
+            .Where((snapshot, order) => snapshot.CreationTime >= dto.StartTime && snapshot.CreationTime <= dto.EndTime)
+            .WhereIF(dto.OrgCode.NotNullOrEmpty(), (snapshot, order) =>
+             order.ActualHandleOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")) == dto.OrgCode);
 
         query = dto.FieldName switch
         {
@@ -776,9 +778,13 @@ public class BiSnapshotApplication : IBiSnapshotApplication, IScopeDependency
             "not" => query.Where(snapshot => snapshot.CompliantType == ECompliantType.Not),
             _ => throw new UserFriendlyException($"入参: {dto.FieldName} 异常")
         };
-        return query.Select((snapshot, order) => new CompliantStatisticsDetailsOutDto
+        var b = query.Select((snapshot, order) => new CompliantStatisticsDetailsOutDto
         {
         }, true);
+#if DEBUG
+        var sql = b.ToSqlString();
+#endif
+        return b;
     }
 
     [ExportExcel("随手拍重办统计")]

+ 1 - 2
src/Hotline.Share/Dtos/Snapshot/StatisticsDto.cs

@@ -2577,8 +2577,7 @@ public record CompliantStatisticsDetailsInDto : PagedRequest
     /// <summary>
     /// 部门编号
     /// </summary>
-    [Required]
-    public string OrgCode { get; set; }
+    public string? OrgCode { get; set; }
 }
 
 public class CompliantStatisticsDetailsOutDto

+ 16 - 0
test/Hotline.Tests/Application/BiSnapshotApplicationTest.cs

@@ -2,6 +2,7 @@
 using Hotline.Application.Snapshot.Contracts;
 using Hotline.Identity.Accounts;
 using Hotline.Identity.Roles;
+using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Settings;
 using Hotline.Share.Dtos.Snapshot;
 using Hotline.Share.Tools;
@@ -110,4 +111,19 @@ public class BiSnapshotApplicationTest : TestBase
         var e = _biSnapshotApplication.GetIndustryStatistics(inDto.Adapt<IndustryStatisticsInDto>());
         e.ShouldNotBeNull();
     }
+
+    [Fact]
+    public async Task GetCompliantStatisticsDetails_Test()
+    {
+        var inDto = new CompliantStatisticsDetailsInDto()
+        {
+            PageIndex = 1,
+            PageSize = 20,
+            StartTime = DateTime.Now.AddDays(-30),
+            EndTime = DateTime.Now,
+            FieldName = "orderCountNum",
+        };
+        var items = await _biSnapshotApplication.GetCompliantStatisticsDetails(inDto).ToPagedListAsync(inDto);
+        items.Total.ShouldNotBe(0);
+    }
 }