lixiaojun
2022-12-01 45dd9816ec46d67193825a60a135a8ffd2881769
Application/IStation.Application.Run/data_docking/DataDocking_StandardController.cs
@@ -24,6 +24,9 @@
    [ApiDescriptionSettings("Run", Name = "标准数据对接", Order = 1100)]
    public class DataDocking_StandardController : IDynamicApiController
    {
        //配置列表
        private static List<Model.DataDockingConfigureExStandard> _standardConfigureList = null;
        /// <summary>
        /// 插入
        /// </summary>
@@ -31,16 +34,16 @@
        [HttpPost]
        public bool Insert([Required] DataDockingStandardCorpRecordInput input)
        {
            LogHelper.Info($"客户:{input.CorpId},注册码:{input.RegisterCode},插入数据记录:{input.Records.Count}.");
            var corpration = new Service.Corpration().GetByTerminalId(input.CorpId);
            if (corpration == null)
            LogHelper.Info($"注册码:{input.RegisterCode},插入数据记录数量:{input.Records.Count}.");
            var corpIds = DataDockingCorpHelper.GetCorpIds();
            if (corpIds == null || corpIds.Count < 1)
            {
                throw new Exception("未检索到客户信息!");
                throw new Exception("未检索到客户标识配置信息!");
            }
            var standardConfigureList = DataDockingStandardCacheHelper.GetCache(corpration.ID);
            if (standardConfigureList == null||standardConfigureList.Count<1)
            if (_standardConfigureList == null)
            {
                var configureList = new Service.DataDockingConfigure().GetByCorpID(corpration.ID);
                var configureList = new Service.DataDockingConfigure().GetByCorpIds(corpIds);
                if (configureList == null || configureList.Count < 1)
                {
                    throw new Exception("未检索到数据对接配置信息!");
@@ -50,11 +53,9 @@
                {
                    throw new Exception("未检索到数据对接标准配置信息!");
                }
                standardConfigureList = configureList.Select(x => new Model.DataDockingConfigureExStandard(x)).ToList();
                DataDockingStandardCacheHelper.SetCache(corpration.ID, standardConfigureList);
                _standardConfigureList = configureList.Select(x => new Model.DataDockingConfigureExStandard(x)).ToList();
            }
            var standardConfigure = standardConfigureList.Find(x => x.ConfigureParas != null && x.ConfigureParas.RegisterCode == input.RegisterCode);
            var standardConfigure = _standardConfigureList.Find(x => x.ConfigureParas != null && x.ConfigureParas.RegisterCode == input.RegisterCode);
            if (standardConfigure == null)
            {
                throw new Exception("未检索到数据对接标准配置信息!");
@@ -62,12 +63,13 @@
            if (standardConfigure.Mappers == null || standardConfigure.Mappers.Count < 1)
            {
                throw new Exception("数据对接标准配置信息中,未配置有效映射关系!");
            }
            }
            var records = new List<Model.MonitorDataDockingReceiveRecord>();
            var inputRecords = input.Records.OrderByDescending(x=>x.RecordTime).ToList();
            foreach (var mapper in standardConfigure.Mappers)
            {
                var inputRecord = input.Records.Find(x=>x.RecordId==mapper.SignId);
                var inputRecord = inputRecords.Find(x => x.RecordId == mapper.SignId);
                if (inputRecord != null)
                {
                    var record = new Model.MonitorDataDockingReceiveRecord();
@@ -86,15 +88,15 @@
            }
            var queueHelper = new RabbitMqQueueHelper();
            var bol = queueHelper.Push(ConfigHelper.DataDockingQueueName, new Model.MonitorDataDockingCorpRecord()
            var bol = queueHelper.Push(Settings.Queue.DataDockingQueueName, new Model.MonitorDataDockingCorpRecord()
            {
                CorpID = corpration.ID,
                CorpID = standardConfigure.CorpID,
                ConfigureID = standardConfigure.ID,
                Records = records
            });
            if (bol)
            {
                LogHelper.Info($"客户:{corpration.ID},标准数据对接配置:{standardConfigure.ID},推入通道记录数量:{records.Count}.");
                LogHelper.Info($"客户:{standardConfigure.CorpID},标准数据对接配置:{standardConfigure.ID},推入通道记录数量:{records.Count}.");
                return true;
            }
            return false;
@@ -102,9 +104,99 @@
        /// <summary>
        /// 补录多条
        /// </summary>
        //[Route("InsertsSupplement@V1.0")]
        //[HttpPost]
        //public bool InsertsSupplement([Required] List<SupplementMonitorRealRecordInput> list)
        //{
        //    var corpIds = list.Select(x => x.CorpID).Distinct().ToList();
        //    if (corpIds.Count > 1)
        //    {
        //        return false;
        //    }
        //    var record_list = new List<Model.MonitorRealRecordPure>();
        //    foreach (var item in list)
        //    {
        //        var monitor = new Service.MonitorPoint().GetExSignalWithSignalTypeByID(item.CorpID, item.MonitorPointID);
        //        if (monitor == null)
        //        {
        //            continue;
        //        }
        //        if (monitor.CronType != Model.Monitor.eCronType.Real)
        //        {
        //            continue;
        //        }
        //        switch (monitor.MonitorType)
        //        {
        //            case Model.eMonitorType.General:
        //                {
        //                    var signal = monitor.SignalList?.FirstOrDefault();
        //                    if (signal != null)
        //                    {
        //                        var data_status = new List<string>();
        //                        var data_value = MonitorHandleHelper.Handle(monitor, signal, lastRecord: null, item.SrcTime, item.SrcValue, data_status);
        //                        if (!string.IsNullOrEmpty(data_value))
        //                        {
        //                            var record = new Model.MonitorRealRecordPure();
        //                            record.CorpID = item.CorpID;
        //                            record.MonitorPointID = item.MonitorPointID;
        //                            record.SignalID = signal.ID;
        //                            record.RecordType = monitor.MonitorType;
        //                            record.SrcTime = item.SrcTime;
        //                            record.SrcValue = item.SrcValue;
        //                            record.DataTime = item.DataTime;
        //                            record.DataValue = data_value;
        //                            record.DataStatus = data_status;
        //                            record_list.Add(record);
        //                        }
        //                    }
        //                }
        //                break;
        //            case Model.eMonitorType.Vibration:
        //                {
        //                    var sub_record_list = AddMonitorSubRecordInput.ToList(item.SrcValue);
        //                    if (sub_record_list != null && sub_record_list.Count > 0)
        //                    {
        //                        foreach (var sub_record in sub_record_list)
        //                        {
        //                            var signal = monitor.SignalList?.FirstOrDefault(x => x.ID == sub_record.SignalID);
        //                            if (signal == null)
        //                                continue;
        //                            var data_status = new List<string>();
        //                            var data_value = MonitorHandleHelper.Handle(monitor, signal, lastRecord: null, item.SrcTime, sub_record.SrcValue, data_status);
        //                            if (string.IsNullOrEmpty(data_value))
        //                                continue;
        //                            var record = new Model.MonitorRealRecordPure();
        //                            record.CorpID = item.CorpID;
        //                            record.MonitorPointID = item.MonitorPointID;
        //                            record.SignalID = signal.ID;
        //                            record.RecordType = monitor.MonitorType;
        //                            record.SrcTime = item.SrcTime;
        //                            record.SrcValue = item.SrcValue;
        //                            record.DataTime = item.DataTime;
        //                            record.DataValue = data_value;
        //                            record.DataStatus = data_status;
        //                            record_list.Add(record);
        //                        }
        //                    }
        //                }
        //                break;
        //            default: break;
        //        }
        //    }
        //    if (record_list.Count < 1)
        //    {
        //        return false;
        //    }
        //    var bol = _service.InsertsSupplement(record_list);
        //    return bol;
        //}