Dun.Jason 4 mesi fa
parent
commit
183578b267

+ 6 - 5
src/Hotline.Application/Orders/OrderApplication.cs

@@ -1668,7 +1668,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     public async Task<List<VisitAndOrgSatisfactionStatisticsDto>> VisitAndOrgSatisfactionStatistics(PagedKeywordSonRequest dto)
     {
         bool IsCenter = _sessionContextProvider.SessionContext.OrgIsCenter;
-
+        int orgLevel = _sessionContextProvider.SessionContext.OrgLevel;
+        string orgLevelStr = ((orgLevel+1) * 3).ToString();
         var list = _orderVisitDetailRepository.Queryable()
             .Where(x => x.OrderVisit.VisitTime >= dto.StartTime.Value && x.OrderVisit.VisitTime <= dto.EndTime.Value &&
                         x.VisitTarget == EVisitTarget.Org && x.OrderVisit.VisitState == EVisitState.Visited && !string.IsNullOrEmpty(x.VisitOrgCode))
@@ -1736,13 +1737,13 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         {
             data = await list.GroupBy(x => new
             {
-                x.VisitOrgCode
+                VisitOrgCode = x.VisitOrgCode//.Substring(SqlFunc.MappingColumn<int>("0"),SqlFunc.MappingColumn<int>(orgLevelStr))
             })
                 .Select(x => new VisitAndOrgSatisfactionStatisticsDto()
                 {
-                    OrgCode = x.VisitOrgCode,
+                    OrgCode = x.VisitOrgCode,//.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(orgLevelStr)),
                     TotalSumCount =
-                        SqlFunc.AggregateCount(x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6"))),
+                        SqlFunc.AggregateCount(x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(orgLevelStr))),
                     VerySatisfiedCount = SqlFunc.IIF(dto.TypeId == 1,
                         SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "5", 1, 0)),
                         SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "5", 1, 0))), //非常满意数
@@ -1766,7 +1767,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                         SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "6", 1, 0))), //未接通
                 })
                 .MergeTable()
-                .LeftJoin<SystemOrganize>((it, o) => it.OrgCode == o.Id)
+                .LeftJoin<SystemOrganize>((it, o) => it.OrgCode == o.Id && (o.Level == orgLevel || o.Level == (orgLevel+1)))
                 .Select((it, o) => new VisitAndOrgSatisfactionStatisticsDto()
                 {
                     OrgName = o.Name,

+ 3 - 3
src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

@@ -1327,9 +1327,9 @@ namespace Hotline.Repository.SqlSugar.Orders
                 //.WhereIF(dto.IsOnlyMy == true, x => x.VisitOrgCode == dto.OrgCode)
                 //.WhereIF(IsCenter == true && dto.IsOnlyMy == true, x => x.VisitOrgCode == dto.OrgCode)
                 //.WhereIF(IsCenter == true && dto.IsOnlyMy == null, x => x.VisitOrgCode.StartsWith(dto.OrgCode))
-                //.WhereIF(IsCenter == true , x=> x.VisitOrgCode.StartsWith(dto.OrgCode))
-                //.WhereIF(IsCenter == false, x => x.VisitOrgCode == dto.OrgCode)
-                .WhereIF(!string.IsNullOrEmpty(dto.OrgCode), x => x.VisitOrgCode.StartsWith(dto.OrgCode))
+                .WhereIF(IsCenter == true , x=> x.VisitOrgCode.StartsWith(dto.OrgCode))
+                .WhereIF(IsCenter == false, x => x.VisitOrgCode == dto.OrgCode)
+                //.WhereIF(!string.IsNullOrEmpty(dto.OrgCode), x => x.VisitOrgCode.StartsWith(dto.OrgCode))
                 .WhereIF(dto.TypeId is 1, x => SqlFunc.JsonField(x.OrgProcessingResults, "Key") == dto.DateValue)
                 .WhereIF(dto.TypeId is 2, x => SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == dto.DateValue)
                 .WhereIF(!string.IsNullOrEmpty(dto.LineNum), x => x.OrderVisit.Order.CallRecord.Gateway == dto.LineNum)