xf 10 月之前
父節點
當前提交
98cab48b37

+ 1 - 0
src/DataSharing.Application/ApplicationStartupExtensions.cs

@@ -1,4 +1,5 @@
 using DataSharing.Application.Mappers;
+using DataSharing.Police110;
 using Mapster;
 using Microsoft.Extensions.DependencyInjection;
 

+ 30 - 7
src/DataSharing.Host/StartupExtensions.cs

@@ -1,4 +1,7 @@
-using DataSharing.Repository.Extensions;
+using DataSharing.Police110;
+using DataSharing.Police110.DaoShu110;
+using DataSharing.Police110.DCJT110;
+using DataSharing.Repository.Extensions;
 using DataSharing.SendTask;
 using FluentValidation;
 using FluentValidation.AspNetCore;
@@ -34,6 +37,19 @@ internal static class StartupExtensions
         services.Configure<ChannelConfiguration>(d => configuration.GetSection(nameof(ChannelConfiguration)).Bind(d));
         services.Configure<SharingConfiguration>(d => configuration.GetSection(nameof(SharingConfiguration)).Bind(d));
 
+        //根据市州编码判断属于哪个市州,启用对应的推送服务
+        var sharingConfig = configuration.GetSection("SharingConfiguration").Get<SharingConfiguration>();
+        if (sharingConfig.CityCode == ConfigurationConsts.YiBin)
+        {
+            services.AddScoped<ISendTaskDataService, DataSharing.YiBin.YiBinSendTaskDataService>();
+            services.AddScoped<IPolice110Service, DaoShuService>();
+        }
+        else if (sharingConfig.CityCode == ConfigurationConsts.ZiGong)
+        {
+            services.AddScoped<ISendTaskDataService, DataSharing.ZiGong.ZiGongSendTaskDataService>();
+            services.AddScoped<IPolice110Service, DcjtService>();
+        }
+
         // Add services to the container.
         services
             .BatchInjectServices()
@@ -103,12 +119,19 @@ internal static class StartupExtensions
         //        //.AddTimeout(TimeSpan.FromSeconds(5));
         //});
 
-        //根据市州编码判断属于哪个市州,启用对应的推送服务
-        var sharingConfig = configuration.GetSection("SharingConfiguration").Get<SharingConfiguration>();
-        if (sharingConfig.CityCode == ConfigurationConsts.YiBin)
-            services.AddScoped<ISendTaskDataService, DataSharing.YiBin.YiBinSendTaskDataService>();
-        else if (sharingConfig.CityCode == ConfigurationConsts.ZiGong)
-            services.AddScoped<ISendTaskDataService, DataSharing.ZiGong.ZiGongSendTaskDataService>();
+        ////根据市州编码判断属于哪个市州,启用对应的推送服务
+        //var sharingConfig = configuration.GetSection("SharingConfiguration").Get<SharingConfiguration>();
+        //if (sharingConfig.CityCode == ConfigurationConsts.YiBin)
+        //{
+        //    services.AddScoped<ISendTaskDataService, DataSharing.YiBin.YiBinSendTaskDataService>();
+        //    services.AddScoped<IPolice110Service, DaoShuService>();
+        //}
+        //else if (sharingConfig.CityCode == ConfigurationConsts.ZiGong)
+        //{
+        //    services.AddScoped<ISendTaskDataService, DataSharing.ZiGong.ZiGongSendTaskDataService>();
+        //    services.AddScoped<IPolice110Service, DcjtService>();
+        //}
+
 
         //job
         services.RegisterJob();

+ 1 - 1
src/DataSharing.Host/config/appsettings.Development.json

@@ -96,7 +96,7 @@
   //地市系统配置
   "SharingConfiguration": {
     //系统市州编码
-    "CityCode": "511500",
+    "CityCode": "510300", //"511500",
     "CityName": "宜宾市",
 
     //宜宾

+ 1 - 1
src/DataSharing.Police110/DCJT110/DcjtService.cs

@@ -8,7 +8,7 @@ using XF.Domain.Repository;
 
 namespace DataSharing.Police110.DCJT110
 {
-    public class DcjtService : IDcjtService, IScopeDependency
+    public class DcjtService : IPolice110Service
     {
         private readonly IMapper _mapper;
         private readonly ILogger<DcjtService> _logger;

+ 1 - 1
src/DataSharing.Police110/DaoShu110/DaoShuService.cs

@@ -12,7 +12,7 @@ namespace DataSharing.Police110.DaoShu110
     /// <summary>
     /// 道枢110
     /// </summary>
-    public class DaoShuService : IDaoShuService, IScopeDependency
+    public class DaoShuService : IPolice110Service
     {
         private readonly IMapper _mapper;
         private readonly ILogger<DaoShuService> _logger;

+ 36 - 0
src/DataSharing.Police110/IPolice110Service.cs

@@ -0,0 +1,36 @@
+using Hotline.Share.Dtos.Order;
+
+namespace DataSharing.Police110;
+
+public interface IPolice110Service
+{
+    /// <summary>
+    /// 组装110数据,12345警情工单推送到110
+    /// </summary>
+    /// <param name="orderDto"></param>
+    /// <returns></returns>
+    Task InitPoliceSendChainAlarmDsAsync(OrderDto orderDto, CancellationToken cancellationToken);
+
+    /// <summary>
+    /// 110的非警情工单获取办理信息
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    Task InitPoliceSendChainDealDsAsync(OrderFlowDto dto, CancellationToken cancellationToken);
+
+    /// <summary>
+    /// 110警情工单退回
+    /// </summary>
+    /// <param name="orderDto"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    Task ReturnPoliceAsync(OrderDto orderDto, CancellationToken cancellationToken);
+
+    /// <summary>
+    /// 110回访数据
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    Task Visit(PublishVisitDto dto, CancellationToken cancellationToken);
+}

+ 7 - 4
src/DataSharing.Repository/Extensions/SqlSugarStartupExtensions.cs

@@ -93,10 +93,13 @@ namespace DataSharing.Repository.Extensions
             if (dbOptions.ApplyDbMigrations)
             {
                 context.Db.DbMaintenance.CreateDatabase();
-
-                var types = typeof(DsOrder).Assembly.GetTypes()
-                    .Where(d => d.GetInterfaces().Any(x => x == typeof(ITable) && !d.IsAbstract))
-                    .Distinct()
+                
+                var types = AppDomain.CurrentDomain.GetAssemblies()
+                    .SelectMany(d => d.GetTypes())
+                    .Where(d => !d.IsInterface
+                                && !d.IsAbstract
+                                && d.IsClass
+                                && d.GetInterfaces().Any(x => x == typeof(ITable)))
                     .ToArray();
 
                 context.Db.CodeFirst.InitTables(types);//根据types创建表