tangjiang 3 months ago
parent
commit
28835476c1

+ 5 - 0
src/DataSharing.Host/config/appsettings.Development.json

@@ -315,6 +315,11 @@
         "IsSend": true
       },
 
+      //泸州110推送工单数据
+      "LuZhou110": {
+        "SendDataAddress": "http://59.213.83.7:8123"
+      },
+
       //110对接--大成均图
       "PoliceDCJT": {
         "GXDWDM": "510300000000",

+ 12 - 0
src/DataSharing.LuZhou/LZ110/IDataShareRequest.cs

@@ -0,0 +1,12 @@
+namespace DataSharing.LuZhou.LZ110
+{
+    public interface IDataShareRequest
+    {
+        public string GetRequestUrl();
+    }
+
+    public interface IDataShareRequest<TResponse> : IDataShareRequest
+    {
+
+    }
+}

+ 7 - 0
src/DataSharing.LuZhou/LZ110/ILZ110RequestBase.cs

@@ -0,0 +1,7 @@
+namespace DataSharing.LuZhou.LZ110
+{
+    public interface ILZ110RequestBase<TResponse> : IDataShareRequest<TResponse>
+    {
+
+    }
+}

+ 19 - 0
src/DataSharing.LuZhou/LZ110/JsonPascalNamingPolicy.cs

@@ -0,0 +1,19 @@
+using System.Text.Json;
+
+namespace DataSharing.LuZhou.LZ110
+{
+    public class JsonPascalNamingPolicy : JsonNamingPolicy
+    {
+        /// <summary>When overridden in a derived class, converts the specified name according to the policy.</summary>
+        /// <param name="name">The name to convert.</param>
+        /// <returns>The converted name.</returns>
+        public override string ConvertName(string name)
+        {
+            if (string.IsNullOrEmpty(name) || char.IsUpper(name[0]))
+                return name;
+            var chars = name.ToCharArray();
+            chars[0] = char.ToUpperInvariant(chars.First());
+            return new string(chars);
+        }
+    }
+}

+ 57 - 0
src/DataSharing.LuZhou/LZ110/LZ110Invoker.cs

@@ -0,0 +1,57 @@
+using Fw.Utility.UnifyResponse;
+using MapsterMapper;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http.Json;
+using System.Text;
+using System.Text.Json;
+using System.Threading.Tasks;
+
+namespace DataSharing.LuZhou.LZ110
+{
+    public class LZ110Invoker
+    {
+        private readonly IHttpClientFactory _httpClientFactory;
+        private readonly IMapper _mapper;
+        private readonly ILogger<LZ110Invoker> _logger;
+
+        public LZ110Invoker(
+            IHttpClientFactory httpClientFactory,
+            IMapper mapper,
+            ILogger<LZ110Invoker> logger)
+        {
+            _httpClientFactory = httpClientFactory;
+            _mapper = mapper;
+            _logger = logger;
+        }
+
+        public async Task<ApiResponse<TResponse>> InvokeAsync<TRequest, TResponse>(TRequest request,
+            CancellationToken cancellationToken)
+            where TRequest : ILZ110RequestBase<TResponse>
+            where TResponse : class
+        {
+            using var client = _httpClientFactory.CreateClient();
+            client.BaseAddress = new Uri(_address.Value.LuZhou110);
+            client.DefaultRequestHeaders.Add("User-Identify", "12345rexian");
+            var serializeOptions = new JsonSerializerOptions
+            {
+                PropertyNamingPolicy = new JsonPascalNamingPolicy(),
+            };
+
+            //_logger.LogInformation($"发起请求LZ110:{request.GetRequestUrl()}");
+            var result = await client.PostAsJsonAsync(request.GetRequestUrl(), request, serializeOptions, cancellationToken);
+
+            if (result is null || !result.IsSuccessStatusCode)
+            {
+                _logger.LogError($"泸州110接口请求失败,request: {request}");
+                return new ApiResponse<TResponse> { Code = 1, Message = $"泸州110接口请求失败,request: {request}" };
+            }
+            var response = await result.Content.ReadFromJsonAsync<TResponse>();
+            return new ApiResponse<TResponse> { Code = 0, Data = response };
+        }
+
+    }
+}

+ 25 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110BasicInfoMessage.cs

@@ -0,0 +1,25 @@
+namespace DataSharing.Share.Dtos.LuZhou
+{
+    public class LZ110BasicInfoMessage
+    {
+        public string FlowID { get; set; }
+        public string Code { get; set; }
+        public string PoliceCode { get; set; }
+        public string AreaName { get; set; }
+        public DateTime AddDate { get; set; }
+        public string FromTel { get; set; }
+        public string CallerName { get; set; }
+        public string Gender { get; set; }
+        public string ContactTel { get; set; }
+        public string IDCard { get; set; }
+        public string TelHome { get; set; }
+        public string Address { get; set; }
+        public string WorkUnit { get; set; }
+        public string Title { get; set; }
+        public string PurTypeName { get; set; }
+        public string FromName { get; set; }
+        public string ConTypeName { get; set; }
+        public string Content { get; set; }
+        public string IsSecrecy { get; set; }
+    }
+}

+ 15 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110CallBackMessage.cs

@@ -0,0 +1,15 @@
+namespace DataSharing.Share.Dtos.LuZhou;
+
+public class LZ110CallBackMessage
+{
+    public DateTime VisitTime { get; set; }
+    public string SeatsContent { get; set; }
+    public string FlowID { get; set; }
+    public string SeatsResult { get; set; }
+    public string Code { get; set; }
+    public string UserName { get; set; }
+    public string VisitID { get; set; }
+    public string BMContent { get; set; }
+    public string VisitMethod { get; set; }
+    public string BMResult { get; set; }
+}

+ 14 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110ExtensionRequestMessage.cs

@@ -0,0 +1,14 @@
+namespace DataSharing.Share.Dtos.LuZhou;
+
+public class LZ110ExtensionRequestMessage
+{
+    public string Code { get; set; }
+    public string ApplyUserName { get; set; }
+    public string ApplyBMName { get; set; }
+    public string FPID { get; set; }
+    public DateTime ApplyTime { get; set; }
+    public string RunID { get; set; }
+    public string ApplyTimeLimit { get; set; }
+    public string ApplyContent { get; set; }
+    public string FlowID { get; set; }
+}

+ 17 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110FlowedMessage.cs

@@ -0,0 +1,17 @@
+namespace DataSharing.Share.Dtos.LuZhou;
+
+public class LZ110FlowedMessage
+{
+    public string RunID { get; set; }
+    public string FlowID { get; set; }
+    public string Code { get; set; }
+    public string NodeName { get; set; }
+    public string NodeType { get; set; }
+    public string HandleBMName { get; set; }
+    public string HandleUserName { get; set; }
+    public DateTime HandleTime { get; set; }
+    public string HandleOpinion { get; set; }
+    public string IsPolice { get; set; }
+    public string PoliceCode { get; set; }
+    public string HandleState { get; set; }
+}

+ 13 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110HandResultMessage.cs

@@ -0,0 +1,13 @@
+namespace DataSharing.Share.Dtos.LuZhou;
+
+public class LZ110HandResultMessage
+{
+    public string Code { get; set; }
+    public string HandleUserName { get; set; }
+    public string HandleState { get; set; }
+    public string HandleBMName { get; set; }
+    public string HandleOpinion { get; set; }
+    public DateTime HandleTime { get; set; }
+    public string PoliceCode { get; set; }
+}
+

+ 9 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110UpdateStatusMessage.cs

@@ -0,0 +1,9 @@
+namespace DataSharing.Share.Dtos.LuZhou;
+
+public class LZ110UpdateStatusMessage
+{
+    public string Code { get; set; }
+    public string FlowID { get; set; }
+    public string PoliceCode { get; set; }
+    public string HandleState { get; set; }
+}

+ 25 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110ZBasicInfoMessage.cs

@@ -0,0 +1,25 @@
+namespace DataSharing.Share.Dtos.LuZhou
+{
+    public class LZ110ZBasicInfoMessage
+    {
+        public string FlowID { get; set; }
+        public string Code { get; set; }
+        public string PoliceCode { get; set; }
+        public string AreaName { get; set; }
+        public DateTime AddDate { get; set; }
+        public string FromTel { get; set; }
+        public string CallerName { get; set; }
+        public string Gender { get; set; }
+        public string ContactTel { get; set; }
+        public string IDCard { get; set; }
+        public string TelHome { get; set; }
+        public string Address { get; set; }
+        public string WorkUnit { get; set; }
+        public string Title { get; set; }
+        public string PurTypeName { get; set; }
+        public string FromName { get; set; }
+        public string ConTypeName { get; set; }
+        public string Content { get; set; }
+        public string IsSecrecy { get; set; }
+    }
+}

+ 20 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110ZCallBackMessage.cs

@@ -0,0 +1,20 @@
+namespace DataSharing.Share.Dtos.LuZhou
+{
+    /// <summary>
+    /// 12345工单回访信息
+    /// </summary>
+    public class LZ110ZCallBackMessage
+    {
+        public DateTime VisitTime { get; set; }
+        public string SeatsContent { get; set; }
+        public string FlowID { get; set; }
+        public string SeatsResult { get; set; }
+        public string Code { get; set; }
+        public string UserName { get; set; }
+        public string VisitID { get; set; }
+        public string BMContent { get; set; }
+        public string VisitMethod { get; set; }
+        public string BMResult { get; set; }
+        public string PoliceCode { get; set; }
+    }
+}

+ 19 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110ZExtensionRequestMessage.cs

@@ -0,0 +1,19 @@
+namespace DataSharing.Share.Dtos.LuZhou
+{
+    /// <summary>
+    /// 12345工单延期申请
+    /// </summary>
+    public class LZ110ZExtensionRequestMessage
+    {
+        public string Code { get; set; }
+        public string ApplyUserName { get; set; }
+        public string ApplyBMName { get; set; }
+        public string FPID { get; set; }
+        public DateTime ApplyTime { get; set; }
+        public string RunID { get; set; }
+        public string ApplyTimeLimit { get; set; }
+        public string ApplyContent { get; set; }
+        public string FlowID { get; set; }
+        public string PoliceCode { get; set; }
+    }
+}

+ 21 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110ZFlowedMessage.cs

@@ -0,0 +1,21 @@
+namespace DataSharing.Share.Dtos.LuZhou
+{
+    /// <summary>
+    /// 12345工单流转办理
+    /// </summary>
+    public class LZ110ZFlowedMessage
+    {
+        public string RunID { get; set; }
+        public string FlowID { get; set; }
+        public string Code { get; set; }
+        public string NodeName { get; set; }
+        public string NodeType { get; set; }
+        public string HandleBMName { get; set; }
+        public string HandleUserName { get; set; }
+        public DateTime HandleTime { get; set; }
+        public string HandleOpinion { get; set; }
+        public string IsPolice { get; set; }
+        public string PoliceCode { get; set; }
+        public string HandleState { get; set; }
+    }
+}

+ 16 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110ZHandResultMessage.cs

@@ -0,0 +1,16 @@
+namespace DataSharing.Share.Dtos.LuZhou
+{
+    /// <summary>
+    /// 12345工单办理结果
+    /// </summary>
+    public class LZ110ZHandResultMessage
+    {
+        public string Code { get; set; }
+        public string HandleUserName { get; set; }
+        public string HandleState { get; set; }
+        public string HandleBMName { get; set; }
+        public string HandleOpinion { get; set; }
+        public DateTime HandleTime { get; set; }
+        public string PoliceCode { get; set; }
+    }
+}

+ 13 - 0
src/DataSharing.Share/Dtos/LuZhou/LZ110ZUpdateStatusMessage.cs

@@ -0,0 +1,13 @@
+namespace DataSharing.Share.Dtos.LuZhou
+{
+    /// <summary>
+    /// 12345工单办理状态
+    /// </summary>
+    public class LZ110ZUpdateStatusMessage
+    {
+        public string Code { get; set; }
+        public string FlowID { get; set; }
+        public string PoliceCode { get; set; }
+        public string HandleState { get; set; }
+    }
+}

+ 11 - 0
src/DataSharing/ChannelConfiguration.cs

@@ -402,4 +402,15 @@
     {
         public string DbConnectionString { get; set; }
     }
+
+    /// <summary>
+    /// 泸州110推送工单数据
+    /// </summary>
+    public class LuZhou110Configuration
+    {
+        /// <summary>
+        /// 请求的址
+        /// </summary>
+        public string SendDataAddress { get; set; } = string.Empty;
+    }
 }

+ 5 - 0
src/DataSharing/SharingConfiguration.cs

@@ -137,5 +137,10 @@
         /// 新老数据交换
         /// </summary>
         public ConfigurationSendDataOld SendDataOld { get; set; }
+
+        /// <summary>
+        /// 泸州110推送工单数据
+        /// </summary>
+        public LuZhou110Configuration LuZhou110 { get; set; }
     }
 }