Procházet zdrojové kódy

Merge branch 'release' of http://110.188.24.182:10023/Fengwo/hotline into release

田爽 před 8 měsíci
rodič
revize
f6737446c6

+ 69 - 25
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -1347,20 +1347,44 @@ namespace Hotline.Api.Controllers.Bi
 
             #region 信件分布情况
             //市直部门
+
             var listOrgStatisticsCityAll = await _orderRepository.Queryable()
-              .LeftJoin<SystemOrganize>((it, o) => it.OrgLevelOneCode == o.Id)
-              .Where((it, o) => (o.OrgType == EOrgType.City || o.OrgType == EOrgType.Province) && it.CreationTime >= StartTime && it.CreationTime <= EndTime)
-             .GroupBy((it, o) => new
-             {
-                 it.OrgLevelOneCode,
-                 o.Name
-             })
-              .Select((it, o) => new OrgStatistics
-              {
-                  CountNum = SqlFunc.AggregateCount(it.OrgLevelOneCode),
-
-                  OrgName = it.OrgLevelOneCode == "001" ? "市民热线服务中心" : o.Name
-              }).ToListAsync();
+                .Where(o => o.CreationTime >= StartTime && o.CreationTime <= EndTime)
+                .Select(o => new
+                {
+                    OrgCode = o.ActualHandleOrgCode == null || o.ActualHandleOrgCode == "" ? "001" : o.ActualHandleOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
+                })
+                .MergeTable()
+                .LeftJoin<SystemOrganize>((o, s) => o.OrgCode == s.Id)
+                 .Where((o, s) => s.OrgType == EOrgType.City || s.OrgType == EOrgType.Province)
+                .GroupBy((o, s) => new
+                {
+                    o.OrgCode,
+                    s.Name
+                })
+                .Select((o, s) => new OrgStatistics
+                {
+                    CountNum = SqlFunc.AggregateCount(o.OrgCode),
+
+                    OrgName = s.Name
+                }).ToListAsync();
+
+
+
+            //var listOrgStatisticsCityAll = await _orderRepository.Queryable()
+            //  .LeftJoin<SystemOrganize>((it, o) => it.OrgLevelOneCode == o.Id)
+            //  .Where((it, o) => (o.OrgType == EOrgType.City || o.OrgType == EOrgType.Province) && it.CreationTime >= StartTime && it.CreationTime <= EndTime)
+            // .GroupBy((it, o) => new
+            // {
+            //     it.OrgLevelOneCode,
+            //     o.Name
+            // })
+            //  .Select((it, o) => new OrgStatistics
+            //  {
+            //      CountNum = SqlFunc.AggregateCount(it.OrgLevelOneCode),
+
+            //      OrgName = it.OrgLevelOneCode == "001" ? "市民热线服务中心" : o.Name
+            //  }).ToListAsync();
 
             centerReportStatisticsDto.OrgStatisticsCityAll = new OrgStatisticsAll
             {
@@ -1369,18 +1393,38 @@ namespace Hotline.Api.Controllers.Bi
 
             //区县部门
             var listOrgStatisticsAreaAll = await _orderRepository.Queryable()
-             .LeftJoin<SystemOrganize>((it, o) => it.OrgLevelOneCode == o.Id)
-             .Where((it, o) => o.OrgType == EOrgType.County && it.CreationTime >= StartTime && it.CreationTime <= EndTime)
-            .GroupBy((it, o) => new
-            {
-                it.OrgLevelOneCode,
-                o.Name
-            })
-             .Select((it, o) => new OrgStatistics
-             {
-                 CountNum = SqlFunc.AggregateCount(it.OrgLevelOneCode),
-                 OrgName = it.OrgLevelOneCode == "001" ? "市民热线服务中心" : o.Name
-             }).ToListAsync();
+                .Where(o => o.CreationTime >= StartTime && o.CreationTime <= EndTime)
+                .Select(o => new
+                {
+                    OrgCode = o.ActualHandleOrgCode == null || o.ActualHandleOrgCode == "" ? "001" : o.ActualHandleOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
+                })
+                .MergeTable()
+                .LeftJoin<SystemOrganize>((o, s) => o.OrgCode == s.Id)
+                 .Where((o, s) => s.OrgType == EOrgType.County)
+                .GroupBy((o, s) => new
+                {
+                    o.OrgCode,
+                    s.Name
+                })
+                .Select((o, s) => new OrgStatistics
+                {
+                    CountNum = SqlFunc.AggregateCount(o.OrgCode),
+
+                    OrgName = s.Name
+                }).ToListAsync();
+            //var listOrgStatisticsAreaAll = await _orderRepository.Queryable()
+            // .LeftJoin<SystemOrganize>((it, o) => it.OrgLevelOneCode == o.Id)
+            // .Where((it, o) => o.OrgType == EOrgType.County && it.CreationTime >= StartTime && it.CreationTime <= EndTime)
+            //.GroupBy((it, o) => new
+            //{
+            //    it.OrgLevelOneCode,
+            //    o.Name
+            //})
+            // .Select((it, o) => new OrgStatistics
+            // {
+            //     CountNum = SqlFunc.AggregateCount(it.OrgLevelOneCode),
+            //     OrgName = it.OrgLevelOneCode == "001" ? "市民热线服务中心" : o.Name
+            // }).ToListAsync();
 
             centerReportStatisticsDto.OrgStatisticsAreaAll = new OrgStatisticsAll
             {

+ 29 - 28
src/Hotline.Api/Controllers/QualityController.cs

@@ -38,15 +38,17 @@ namespace Hotline.Api.Controllers
         //private readonly IRepository<TrCallRecord> _trCallRecordRepository;
         private readonly IQualityApplication _qualityApplication;
         private readonly IOrderRepository _orderRepository;
-		//private readonly IAiQualityService _aiQualityService;
-		private readonly IServiceScopeFactory _serviceScopeFactory;
+
+        private readonly IServiceProvider _serviceProvider;
+        //private readonly IAiQualityService _aiQualityService;
+
         private readonly ILogger<QualityController> _logger;
         private readonly ISystemSettingCacheManager _systemSettingCacheManager;
         private readonly ICallApplication _callApplication;
         private readonly IOptionsSnapshot<AppConfiguration> _appOptions;
         private readonly IRepository<SystemLog> _logRepository;
 
-		public QualityController(
+        public QualityController(
             ISessionContext sessionContext,
             IMapper mapper,
             IQualityRepository qualitey,
@@ -59,9 +61,9 @@ namespace Hotline.Api.Controllers
             //IRepository<TrCallRecord> trCallRecordRepository,
             IQualityApplication qualityApplication,
             IOrderRepository orderRepository,
-			//IAiQualityService aiQualityService,
-			IServiceScopeFactory serviceScopeFactory,
-			ILogger<QualityController> logger,
+            //IAiQualityService aiQualityService,
+            IServiceProvider serviceProvider,
+            ILogger<QualityController> logger,
             ISystemSettingCacheManager systemSettingCacheManager,
             ICallApplication callApplication,
             IOptionsSnapshot<AppConfiguration> appOptions,
@@ -79,14 +81,14 @@ namespace Hotline.Api.Controllers
             //_trCallRecordRepository = trCallRecordRepository;
             _qualityApplication = qualityApplication;
             _orderRepository = orderRepository;
+            _serviceProvider = serviceProvider;
             //_aiQualityService = aiQualityService;
-            _serviceScopeFactory = serviceScopeFactory;
-			_logger = logger;
+            _logger = logger;
             _systemSettingCacheManager = systemSettingCacheManager;
             _callApplication = callApplication;
             _appOptions = appOptions;
             _logRepository = logRepository;
-		}
+        }
         #region 质检管理
         /// <summary>
         /// 删除质检
@@ -214,7 +216,7 @@ namespace Hotline.Api.Controllers
                         qualityDto.Order.RecordingAbsolutePath = call.AudioFile;
                     }
                 }
-                if (!string.IsNullOrEmpty(qualityDto.Visit.CallId))
+                if (!string.IsNullOrEmpty(qualityDto?.Visit?.CallId))
                 {
                     var call = await _callApplication.GetCallAsync(qualityDto.Visit.CallId, HttpContext.RequestAborted);
                     if (call != null)
@@ -681,24 +683,23 @@ namespace Hotline.Api.Controllers
                 }
                 if (_appOptions.Value.IsYiBin)
                 {
-	                using var scope = _serviceScopeFactory.CreateScope();
-	                var aiser = scope.ServiceProvider.GetRequiredService<IAiQualityService>();
-	                var setting = _systemSettingCacheManager.GetSetting(SettingConstants.ViteRecordPrefix);
-	                try
-	                {
-		                aiser.CreateAiOrderQualityTask(
-			                quality.Id,
-			                audioFile,
-			                fromNo,
-			                callStartTime,
-			                setting?.SettingValue[0], quality.Source.ToString(), HttpContext.RequestAborted);
-	                }
-	                catch (Exception e)
-	                {
-		                _logger.LogError($"写入智能质检异常!, \r\n{e.Message}");
-	                }
-				}
-				await _qualitey.UpdateAsync(quality, HttpContext.RequestAborted);
+                    var aiQualityService = _serviceProvider.GetRequiredService<IAiQualityService>();
+                    var setting = _systemSettingCacheManager.GetSetting(SettingConstants.ViteRecordPrefix);
+                    try
+                    {
+                        await aiQualityService.CreateAiOrderQualityTask(
+                              quality.Id,
+                              audioFile,
+                              fromNo,
+                              callStartTime,
+                              setting?.SettingValue[0], quality.Source.ToString(), HttpContext.RequestAborted);
+                    }
+                    catch (Exception e)
+                    {
+                        _logger.LogError($"写入智能质检异常!, \r\n{e.Message}");
+                    }
+                }
+                await _qualitey.UpdateAsync(quality, HttpContext.RequestAborted);
             }
         }
 

+ 1 - 1
src/Hotline.Api/config/appsettings.Development.json

@@ -65,7 +65,7 @@
     "Host": "110.188.24.182",
     "Port": 50179,
     "Password": "fengwo123!$!$",
-    "Database": 5 //release:3, dev:5
+    "Database": 3 //release:3, dev:5
   },
   "Swagger": true,
   "Cors": {