Browse Source

第三方厂商数据推送记录

jeremy 8 months ago
parent
commit
65c832a17c

+ 1 - 1
src/VitalMixtureService/DBService/Entities/FacturyPostHistoryEntity.cs

@@ -30,7 +30,7 @@
         /// 接口类型
         /// </summary>
         /// <value></value>
-        public int ApiType { get; set; }
+        public string ApiType { get; set; }
 
         /// <summary>
         /// 状态 1:待发送;2:发送成功;3:发送失败

+ 20 - 4
src/VitalMixtureService/Factury/JingQiApiHelper.cs

@@ -7,6 +7,22 @@ namespace VitalService.Factury
     {
         private string _serverUrl;
 
+        public string RegisterUrl
+        {
+            get
+            {
+                return $"{_serverUrl}/phyreginf";
+            }
+        }
+
+        public string DeleteRegisterUrl
+        {
+            get
+            {
+                return $"{_serverUrl}/phyregmod";
+            }
+        }
+
         public JingQiApiHelper(string serverUrl, double seconds = 30) : base(seconds)
         {
             _serverUrl = serverUrl;
@@ -22,7 +38,7 @@ namespace VitalService.Factury
         public async Task<JingQiResult<JingQiExamRegisterResult>> ExamRegisterAsync(JingQiExamRegisterRequest request, Dictionary<string, string> headers)
         {
             Logger.WriteLineInfo($"VitalMixtureService JingQiApiHelper ExamRegisterAsync start, request:{request}");
-            return await GetJingQiResult<JingQiExamRegisterResult>(JsonConvert.SerializeObject(request), headers);
+            return await GetJingQiResult<JingQiExamRegisterResult>(RegisterUrl, JsonConvert.SerializeObject(request), headers);
         }
 
         /// <summary>
@@ -34,14 +50,14 @@ namespace VitalService.Factury
         public async Task<JingQiResult<JingQiExamDeleteResult>> ExamDeleteAsync(JingQiExamDeleteRequest request, Dictionary<string, string> headers)
         {
             Logger.WriteLineInfo($"VitalMixtureService JingQiApiHelper ExamDeleteAsync start, request:{request}");
-            return await GetJingQiResult<JingQiExamDeleteResult>(JsonConvert.SerializeObject(request), headers);
+            return await GetJingQiResult<JingQiExamDeleteResult>(DeleteRegisterUrl, JsonConvert.SerializeObject(request), headers);
         }
 
-        private async Task<JingQiResult<TResult>> GetJingQiResult<TResult>(string request, Dictionary<string, string> headers)
+        private async Task<JingQiResult<TResult>> GetJingQiResult<TResult>(string url, string request, Dictionary<string, string> headers)
         {
             try
             {
-                var res = await GetResult(_serverUrl, request, headers);
+                var res = await GetResult(url, request, headers);
                 Logger.WriteLineInfo($"VitalMixtureService JingQiApiHelper GetJingQiResult success, res:{res}");
                 var jingQiResult = JsonConvert.DeserializeObject<JingQiResult<TResult>>(res);
                 if (jingQiResult.status == "0")

+ 2 - 0
src/VitalMixtureService/FrontService/Service/BaseService.cs

@@ -75,6 +75,7 @@ namespace VitalService.Service
         private IVitalPrescriptionDBService _prescriptionDBService;
         private IVitalOrganizationDBService _vitalOrganizationDBService;
         private IVitalFacturyUserDBService _vitalFacturyUserDBService;
+        private IVitalFacturyPostHistoryDBService _vitalFacturyPostHistoryDBService;
         private PigeonUpload _pigeonUpload;
         private List<string> _appsettingCrowdLabels = new List<string>();
         private JingQiApiHelper _jingQiApiHelper;
@@ -130,6 +131,7 @@ namespace VitalService.Service
             _vitalHealthExamBookingService = GetProxy<IVitalHealthExamBookingService>();
             _vitalOrganizationDBService = GetProxy<IVitalOrganizationDBService>();
             _vitalFacturyUserDBService = GetProxy<IVitalFacturyUserDBService>();
+            _vitalFacturyPostHistoryDBService = GetProxy<IVitalFacturyPostHistoryDBService>();
             _prescriptionDBService = GetProxy<IVitalPrescriptionDBService>();
             AnalyzeStrategy.StorageHandler = UploadData;
             StartApi();

+ 31 - 4
src/VitalMixtureService/FrontService/Service/FacturyUserService.cs

@@ -5,6 +5,7 @@ using WingInterfaceLibrary.Request.DBVitalRequest;
 using WingInterfaceLibrary.DTO.Vital;
 using WingInterfaceLibrary.Request;
 using WingInterfaceLibrary.Enum;
+using Newtonsoft.Json;
 
 namespace VitalService.Service
 {
@@ -164,13 +165,26 @@ namespace VitalService.Service
                 }
                 else
                 {
-                    var jingQiRes = await _jingQiApiHelper.ExamRegisterAsync(new Factury.JingQiExamRegisterRequest
+                    var jingQiReq = new Factury.JingQiExamRegisterRequest
                     {
                         identity = request.Identity,
                         orgcode = facturyOrg.FacturyCode,
                         usrcode = facturyUser.FacturyCode,
                         phydatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
-                    }, facturyOrg.FacturyData);
+                    };
+                    var jingQiRes = await _jingQiApiHelper.ExamRegisterAsync(jingQiReq, facturyOrg.FacturyData);
+                    await _vitalFacturyPostHistoryDBService.CreateFacturyPostHistoryDBAsync(new CreateFacturyPostHistoryDBRequest
+                    {
+                        ApiType = "ExamRegisterAsync",
+                        FacturyUrl = _jingQiApiHelper.RegisterUrl,
+                        IDCardNo = request.Identity,
+                        PatientName = request.PatientName,
+                        Status = jingQiRes.status == "0" ? 2 : 3,
+                        PostTime = DateTime.UtcNow,
+                        Headers = facturyOrg.FacturyData,
+                        Content = JsonConvert.SerializeObject(jingQiReq),
+                        Result = JsonConvert.SerializeObject(jingQiRes),
+                    });
                     return new FacturyExamRegisterResult
                     {
                         Status = jingQiRes.status,
@@ -228,10 +242,23 @@ namespace VitalService.Service
                 }
                 else
                 {
-                    var jingQiRes = await _jingQiApiHelper.ExamDeleteAsync(new Factury.JingQiExamDeleteRequest
+                    var jingQiReq = new Factury.JingQiExamDeleteRequest
                     {
                         phyid = request.PhyId,
-                    }, facturyOrg.FacturyData);
+                    };
+                    var jingQiRes = await _jingQiApiHelper.ExamDeleteAsync(jingQiReq, facturyOrg.FacturyData);
+                    await _vitalFacturyPostHistoryDBService.CreateFacturyPostHistoryDBAsync(new CreateFacturyPostHistoryDBRequest
+                    {
+                        ApiType = "ExamDeleteAsync",
+                        FacturyUrl = _jingQiApiHelper.DeleteRegisterUrl,
+                        IDCardNo = request.Identity,
+                        PatientName = request.PatientName,
+                        Status = jingQiRes.status == "0" ? 2 : 3,
+                        PostTime = DateTime.UtcNow,
+                        Headers = facturyOrg.FacturyData,
+                        Content = JsonConvert.SerializeObject(jingQiReq),
+                        Result = JsonConvert.SerializeObject(jingQiRes),
+                    });
                     return new FacturyExamDeleteResult
                     {
                         Status = jingQiRes.status,