From 181a565385536977a322abc03aef078b8822bdc9 Mon Sep 17 00:00:00 2001 From: H Vs Date: Fri, 13 Oct 2023 15:46:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=AE=BE=E5=A4=87=E8=A1=80?= =?UTF-8?q?=E5=8E=8B=E6=A0=87=E5=AE=9A=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resolver/BloodpressResolver.cs | 49 +++++++++++++++++-- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/HealthMonitor.Service/Resolver/BloodpressResolver.cs b/HealthMonitor.Service/Resolver/BloodpressResolver.cs index 33753cb..4855796 100644 --- a/HealthMonitor.Service/Resolver/BloodpressResolver.cs +++ b/HealthMonitor.Service/Resolver/BloodpressResolver.cs @@ -1,5 +1,6 @@  using HealthMonitor.Common; +using HealthMonitor.Common.helper; using HealthMonitor.Service.Biz.db; using HealthMonitor.Service.Cache; using HealthMonitor.Service.Resolver.Interface; @@ -27,15 +28,18 @@ namespace HealthMonitor.Service.Resolver private readonly TDengineService _serviceTDengine; private readonly BloodPressReferenceValueCacheManager _bpRefValCacheManager; + private readonly HttpHelper _httpHelper = default!; + private readonly AsyncLocal _messageId = new(); private readonly AsyncLocal _msgData = new(); public BloodpressResolver( TDengineService serviceDengine, BloodPressReferenceValueCacheManager bpRefValCacheManager, - PersonCacheManager personCacheMgr, + PersonCacheManager personCacheMgr, HttpHelper httpHelper, ILogger logger) { + _httpHelper = httpHelper; _serviceTDengine = serviceDengine; _bpRefValCacheManager = bpRefValCacheManager; _logger = logger; @@ -110,7 +114,7 @@ namespace HealthMonitor.Service.Resolver var diastolicAggregate = await _serviceTDengine.GetAggregateValueAsync("diastolic_value", "stb_hm_bloodpress", $"ts>='{startTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and ts <='{endTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and serialno='{bp.Serialno}'"); //var systolicAggregate = _serviceTDengine.GetAggregateValue("systolic_value", "hm_bloodpress", $"ts>='{startTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and ts <='{endTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and serialno='{bp.Serialno}'"); //var diastolicAggregate = _serviceTDengine.GetAggregateValue("diastolic_value", "hm_bloodpress", $"ts>='{startTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and ts <='{endTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and serialno='{bp.Serialno}'"); - + // 最大值 var systolicMax = systolicAggregate.Max; var diastolicMax = diastolicAggregate.Max; @@ -123,7 +127,7 @@ namespace HealthMonitor.Service.Resolver var systolicAvg = await _serviceTDengine.GetAvgExceptMaxMinValueAsync("systolic_value", "stb_hm_bloodpress", $"ts>='{startTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and ts <='{endTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and serialno='{bp.Serialno}' and systolic_value < {systolicRefValue} "); var diastolicAvg = await _serviceTDengine.GetAvgExceptMaxMinValueAsync("diastolic_value", "stb_hm_bloodpress", $"ts>='{startTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and ts <='{endTime:yyyy-MM-ddTHH:mm:ss.fffZ}' and serialno='{bp.Serialno}' and diastolic_value < {diastolicRefValue}"); - if (systolicAvg.Equals(0)|| diastolicAvg.Equals(0)) + if (systolicAvg.Equals(0) || diastolicAvg.Equals(0)) { _logger.LogWarning("平均值为0不保存"); return; @@ -151,7 +155,7 @@ namespace HealthMonitor.Service.Resolver - + #region 插入BP增量值 hm_bloodpress_stats_inc // 自动建表 @@ -189,6 +193,43 @@ namespace HealthMonitor.Service.Resolver $"{isHypertension})"; _serviceTDengine.ExecuteInsertSQL(sql); + // 发送到 设置设备血压标定参数 + var url = $"http://id.ssjlai.com/webapi/api/Command/SetBloodPressCalibrationConfig"; + List> headers = new() + { + new KeyValuePair("AuthKey", "key1") + }; + + + // 生效 + if (DateTime.Now.Hour == 1) + { + var data = new + { + imei = bp.Serialno, + systolicCalibrationValue = systolicRefValue, //收缩压标定值,值为0 表示不生效 + diastolicCalibrationValue = diastolicRefValue, //舒张压标定值,值为0表示不生效 + systolicIncValue = systolicInc, //收缩压显示增量,值为0 表示不生效 + diastolicIncValue = diastolicInc //舒张压显示增量,值为0 表示不生效 + }; + var result = await _httpHelper.HttpToPostAsync(url, data, headers).ConfigureAwait(false); + _logger.LogInformation($"将 {JsonConvert.SerializeObject(data)}发送到 {url} 并且返回 {JsonConvert.SerializeObject(result)}"); + } + // 不生效 + else if (DateTime.Now.Hour == 3) + { + var data = new + { + imei = bp.Serialno, + systolicCalibrationValue = 0, //收缩压标定值,值为0 表示不生效 + diastolicCalibrationValue = 0, //舒张压标定值,值为0表示不生效 + systolicIncValue = 0, //收缩压显示增量,值为0 表示不生效 + diastolicIncValue = 0 //舒张压显示增量,值为0 表示不生效 + }; + var result = await _httpHelper.HttpToPostAsync(url, data, headers).ConfigureAwait(false); + _logger.LogInformation($"将 {JsonConvert.SerializeObject(data)}发送到 {url} 并且返回 {JsonConvert.SerializeObject(result)}"); + } + #endregion }