Merge branch 'master' of http://47.103.154.90:83/r/IStation/Service.V4.1
| | |
| | | /// </summary> |
| | | [Route("Monitor/MonitorPoint")] |
| | | [ApiDescriptionSettings("Monitor", Name = "çæµç¹", Order = 790)] |
| | | public class MonitorPoint_Controller : IDynamicApiController |
| | | public class MonitorPoint_Controller : IDynamicApiController |
| | | { |
| | | private readonly Service.MonitorPoint _service = new Service.MonitorPoint(); |
| | | |
| | |
| | | |
| | | var signal_rhs_list = new List<Model.Signal>(); |
| | | var signal_list = new Service.Signal().GetByIds(input.CorpID, input.SignalList.Select(x => x.ID).ToList()); |
| | | signal_list.ForEach(x => { |
| | | signal_list.ForEach(x => |
| | | { |
| | | var signal_input = input.SignalList.Find(t => t.ID == x.ID); |
| | | var signal_rhs = new Model.Signal(x); |
| | | signal_input.Adapt(signal_rhs); |
| | |
| | | x.Adapt(monitor_rhs); |
| | | var signal_rhs_list = new List<Model.Signal>(); |
| | | var signal_list = new Service.Signal().GetByIds(x.CorpID, x.SignalList.Select(x => x.ID).ToList()); |
| | | signal_list.ForEach(y => { |
| | | signal_list.ForEach(y => |
| | | { |
| | | var signal_input = x.SignalList.Find(t => t.ID == x.ID); |
| | | var signal_rhs = new Model.Signal(y); |
| | | signal_input.Adapt(signal_rhs); |
| | |
| | | /// </summary> |
| | | [Route("UpdateGroupID@V1.0")] |
| | | [HttpPut] |
| | | public bool UpdateGroupID([Required] UpdateGroupIDUnderCorpInput input) |
| | | public bool UpdateGroupID([Required] UpdateGroupIDUnderCorpInput input) |
| | | { |
| | | var bol = _service.UpdateGroupID(input.CorpID, input.ID, input.GroupID); |
| | | return bol; |
| | |
| | | [HttpPost] |
| | | public bool SetOfObject([Required] SetObjectMonitorPointMappingInput input) |
| | | { |
| | | var list = input.Items.Select(x => new Model.MonitorPointMapping() |
| | | var list = new List<Model.MonitorPointMapping>(); |
| | | if (input.Items != null && input.Items.Count > 0) |
| | | { |
| | | ID = x.ID, |
| | | CorpID = input.CorpID, |
| | | ObjectType = input.ObjectType, |
| | | ObjectID = input.ObjectID, |
| | | MonitorPointID=x.MonitorPointID, |
| | | SortCode = x.SortCode, |
| | | AccordParas = x.AccordParas |
| | | }).ToList(); |
| | | list = input.Items.Select(x => new Model.MonitorPointMapping() |
| | | { |
| | | ID = x.ID, |
| | | CorpID = input.CorpID, |
| | | ObjectType = input.ObjectType, |
| | | ObjectID = input.ObjectID, |
| | | MonitorPointID = x.MonitorPointID, |
| | | SortCode = x.SortCode, |
| | | AccordParas = x.AccordParas |
| | | }).ToList(); |
| | | } |
| | | |
| | | var bol = _service.SetOfObject(input.CorpID, input.ObjectType, input.ObjectID, list); |
| | | return bol; |
| | | } |
| | |
| | | return new DeleteReasonOutput() { Success = bol, Reason = Msg }; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å é¤ |
| | | /// </summary> |
| | | [Route("DeleteByMonitorPointID@V1.0")] |
| | | [HttpDelete] |
| | | public DeleteReasonOutput DeleteByMonitorPointID([FromQuery][Required] MonitorPointIDUnderCorpInput input) |
| | | { |
| | | var bol = _service.DeleteByMonitorPointID(input.CorpID, input.MonitorPointID, out string Msg); |
| | | return new DeleteReasonOutput() { Success = bol, Reason = Msg }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | } |
| | |
| | | //æåè¿è¡ç¶æè®°å½å表 |
| | | var monitor_group_list = new Service.MonitorPointGroup().GetByBelongTypeAndBelongID(CorpID, IStation.ObjectType.Station, station.ID); |
| | | if (monitor_group_list != null && monitor_group_list.Count > 0) |
| | | { |
| | | { |
| | | var monitor_engine_pump_group_list = monitor_group_list.Where |
| | | (x => x.Flags != null && x.Flags.Contains(LogicFlags.æºæ³µ)).OrderBy(x => x.ParentIds == null ? 0 : x.ParentIds.Count).ThenBy(x => x.SortCode).ToList(); |
| | | if (monitor_engine_pump_group_list != null && monitor_engine_pump_group_list.Count > 0) |
| | |
| | | return vm_list; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// éè¿ StationID è·å颿¿ä¿¡æ¯ |
| | |
| | | try |
| | | { |
| | | #region æ³µç«åæ |
| | | //16æ¶åææ³µç«æ°é |
| | | InitialStationList(context, 9); |
| | | //16æ¶ åææ³µç«æ°é |
| | | InitialStationList(context, 10); |
| | | |
| | | if (_allStationContextList == null || _allStationContextList.Count() == 0) |
| | | { |
| | |
| | | |
| | | private IEtaStationAnalyCalculator CreateCalculater4Station(long StationID) |
| | | { |
| | | if (StationID == 24) |
| | | //if (StationID == 24) |
| | | //{ |
| | | // return new IStation.EtaCalculation.SMI.Station.EtaAnalyCalculator4æ¾è±æ±(); |
| | | //} |
| | | |
| | | if (StationID == 1574926275540291584) |
| | | { |
| | | return new IStation.EtaCalculation.SMI.Station.EtaAnalyCalculator4æ¾è±æ±(); |
| | | return new IStation.EtaCalculation.SMI.Station.EtaAnalyCalculator4æ¾è±æ±_shys(); |
| | | } |
| | | |
| | | if (StationID == 25) |
| | |
| | | { |
| | | return new IStation.EtaCalculation.SMI.Station.EtaAnalyCalculator4å叿°´å(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | return null; |
| | | } |
| | | |
| | |
| | | if (context == null) |
| | | { |
| | | error_info = "ä¸ä¸æåæ°ä¸ºç©º"; |
| | | return false ; |
| | | return false; |
| | | } |
| | | this._threshold_flow = 50;//å¦ææ¤æ³µå¼äº, 鲿¢é¶ç¹é£æµ, 夿æµéè®¡å¼æ¯å¦æ£å¸¸ |
| | | this._stationID = context.ID; |
| | | _threshold_flow = 50;//å¦ææ¤æ³µå¼äº, 鲿¢é¶ç¹é£æµ, 夿æµéè®¡å¼æ¯å¦æ£å¸¸ |
| | | _stationID = context.ID; |
| | | |
| | | //åå§åæºæ³µ |
| | | if (!InitialPumpList(context, out error_info)) |
| | | { |
| | | return false ; |
| | | return false; |
| | | } |
| | | |
| | | //æ ¸å¿åæ |
| | | return base.CalculateCore(context, out error_info); |
| | | return CalculateCore(context, out error_info); |
| | | } |
| | | |
| | | |
| | |
| | | /// <param name="context"></param> |
| | | /// <param name="error_info"></param> |
| | | /// <returns></returns> |
| | | protected override bool InitialPumpList(Model.EtaStationAnalyContextItem context, out string error_info) |
| | | protected override bool InitialPumpList(EtaStationAnalyContextItem context, out string error_info) |
| | | { |
| | | var monitor_id_pump_flow_array = new long[] { 1570993889987399680, 1570993917560754176, 1570993945993940992 };// æµé计 |
| | | var monitor_id_run_status_array = new long[] { 1570993890029342720, 1570993917602697216, 1570993946023301120 };//è¿è¡ç¶æ |
| | | var monitor_id_inlet_press_array = new long[] { 1570993889958039552, 1570993917535588352, 1570993945968775168 };//è¿å£åå计 |
| | | var monitor_id_outlet_press_array = new long[] { 1570993889974816768, 1570993917548171264, 1570993945981358080 };//åºå£åå |
| | | var monitor_id_motor_power_array = new long[] { 1570993889890930688, 1570993917468479488, 1570993945901666304 };//ç¬é´åç |
| | | var monitor_id_motor_frequence_array = new long[] { 1570993889878347776, 1570993917455896576, 1570993945889083392 };//é¢ç |
| | | var monitor_id_motor_zhuansu_array = new long[] { 1570993889945456640, 1570993917523005440, 1570993945956192256 };//转é |
| | | var monitor_id_pump_flow_array = new long[] { 1578564388992978944, 1578564390041554944, 1578564391031410688 };// æµé计 |
| | | var monitor_id_run_status_array = new long[] { 1578564388930064384, 1578564389982834688, 1578564390972690432 };//è¿è¡ç¶æ |
| | | var monitor_id_inlet_press_array = new long[] { 1578564388946841600, 1578564389999611904, 1578564390989467648 };//è¿å£åå计 |
| | | var monitor_id_outlet_press_array = new long[] { 1578564388963618816, 1578564390012194816, 1578564391002050560 };//åºå£åå |
| | | var monitor_id_motor_power_array = new long[] { 1578564389034921984, 1578564390083497984, 1578564391073353728 };//ç¬é´åç |
| | | var monitor_id_motor_frequence_array = new long[] { 1578564389005561856, 1578564390058332160, 1578564391043993600 };//é¢ç |
| | | var monitor_id_motor_zhuansu_array = new long[] { 1578564389022339072, 1578564390070915072, 1578564391060770816 };//转é |
| | | var isæ¶²ä½ä»£æ¿è¿å£åå = false; |
| | | |
| | | //åå§åæºæ³µ |
| | | this._machineCount = 3; |
| | | var machine_id_array = new long[] { 427, 430, 433}; |
| | | |
| | | this._allMachineList = InitialPumpMachineList( |
| | | _machineCount = 3; |
| | | var machine_id_array = new long[] { 427, 430, 433 }; |
| | | |
| | | _allMachineList = InitialPumpMachineList( |
| | | context, |
| | | machine_id_array,//æºæ³µID |
| | | monitor_id_run_status_array,//è¿è¡ç¶æ |
| | |
| | | out error_info); |
| | | if (_allMachineList == null) |
| | | { |
| | | IStation.LogHelper.Error(error_info); |
| | | return false ; |
| | | LogHelper.Error(error_info); |
| | | return false; |
| | | } |
| | | |
| | | |
| | |
| | | public class EtaAnalyCalculator4æ¾è±æ± : EtaAnalyCalculatoræ³µç«4齿¯ç¬ç«æµé计_æè¿è¡ç¶æ, IEtaStationAnalyCalculator |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// |
| | | /// </summary> |
| | | /// <param name="context"></param> |
| | | /// <param name="error_info"></param> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using IStation.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace IStation.EtaCalculation.SMI.Station |
| | | { |
| | | /// <summary> |
| | | /// æææ³µï¼é½æ¯å颿³µï¼ ä¸é½æç¬ç«çæµé计 , æ åºå£åå计, æå¼æºç¶ææµç¹ ,æ ç¬ç« è¿å£åå |
| | | /// </summary> |
| | | public class EtaAnalyCalculator4æ¾è±æ±_shys : EtaAnalyCalculatoræ³µç«4齿¯ç¬ç«æµé计_æè¿è¡ç¶æ, IEtaStationAnalyCalculator |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="context"></param> |
| | | /// <param name="error_info"></param> |
| | | /// <returns></returns> |
| | | public override bool Calculate(EtaStationAnalyContextItem context, out string error_info) |
| | | { |
| | | if (context == null) |
| | | { |
| | | error_info = "ä¸ä¸æåæ°ä¸ºç©º"; |
| | | return false; |
| | | } |
| | | this._threshold_flow = 50;//å¦ææ¤æ³µå¼äº, 鲿¢é¶ç¹é£æµ, 夿æµéè®¡å¼æ¯å¦æ£å¸¸ |
| | | this._stationID = context.ID; |
| | | |
| | | //åå§åæºæ³µ |
| | | if (!InitialPumpList(context, out error_info)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | //æ ¸å¿åæ |
| | | return base.CalculateCore(context, out error_info); |
| | | } |
| | | |
| | | |
| | | |
| | | #region åå§åæºæ³µ |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="context"></param> |
| | | /// <param name="error_info"></param> |
| | | /// <returns></returns> |
| | | protected override bool InitialPumpList(Model.EtaStationAnalyContextItem context, out string error_info) |
| | | { |
| | | var monitor_id_pump_flow_array = new long[] { 1574949620377849856, 1574949621795524608, 1574949623238365184, 1574949627050987520, 1574949630179938304, 1574958452210536448 };// æµé计 |
| | | var monitor_id_run_status_array = new long[] { 1574949620306546688, 1574949621728415744, 1574949623171256320, 1574949626979684352, 1574949630112829440, 1574958452147621888 };//è¿è¡ç¶æ |
| | | var monitor_id_inlet_press_array = new long[] { 1574949620327518208, 1574949621745192960, 1574949623188033536, 1574949627000655872, 1574949630129606656, 1574958452164399104 };//è¿å£åå计 |
| | | var monitor_id_outlet_press_array = new long[] { 1574949620344295424, 1574949621761970176, 1574949623204810752, 1574949627017433088, 1574949630146383872, 1574958452181176320 };//åºå£åå |
| | | var monitor_id_motor_power_array = new long[] { 1574949620465930240, 1574949621879410688, 1574949623322251264, 1574949627134873600, 1574949630263824384, 1574958452290228224 };//ç¬é´åç |
| | | var monitor_id_motor_frequence_array = new long[] { 1574949620398821376, 1574949621812301824, 1574949623255142400, 1574949627067764736, 1574949630196715520, 1574958452227313664 };//é¢ç |
| | | var monitor_id_motor_zhuansu_array = new long[] { 1574949620415598592, 1574949621829079040, 1574949623271919616, 1574949627084541952, 1574949630213492736, 1574958452244090880 };//转é |
| | | var isæ¶²ä½ä»£æ¿è¿å£åå = true; |
| | | |
| | | //åå§åæºæ³µ |
| | | this._machineCount = 6; |
| | | var machine_id_array = new long[] { 1574950802215276544, 1574950804064964608, 1574950804903825408, 1574950805696548864, 1574950806522826752, 1574950884763373568 }; |
| | | |
| | | this._allMachineList = InitialPumpMachineList( |
| | | context, |
| | | machine_id_array,//æºæ³µID |
| | | monitor_id_run_status_array,//è¿è¡ç¶æ |
| | | monitor_id_pump_flow_array,// æµé计 |
| | | isæ¶²ä½ä»£æ¿è¿å£åå, |
| | | monitor_id_inlet_press_array,//è¿å£åå计 |
| | | monitor_id_outlet_press_array,//åºå£åå |
| | | monitor_id_motor_power_array,//ç¬é´åç |
| | | monitor_id_motor_frequence_array,//é¢ç |
| | | monitor_id_motor_zhuansu_array,//转é |
| | | null,//çµæµ |
| | | out error_info); |
| | | if (_allMachineList == null) |
| | | { |
| | | IStation.LogHelper.Error(error_info); |
| | | return false ; |
| | | } |
| | | |
| | | |
| | | error_info = null; |
| | | return true; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <PropertyGroup> |
| | | <OutputType>Exe</OutputType> |
| | |
| | | <RootNamespace>IStation.DataProvider</RootNamespace> |
| | | <GenerateDocumentationFile>True</GenerateDocumentationFile> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <Compile Remove="data\DebugRecord.cs" /> |
| | | <Compile Remove="data\JsonStore.cs" /> |
| | | <Compile Remove="data\SrcRecord.cs" /> |
| | | <Compile Remove="job\DataJob.cs" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="System.Text.Encoding.CodePages" Version="6.0.0" /> |
| | |
| | | </None> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Folder Include="data\" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
| | |
| | | /// |
| | | /// </summary> |
| | | public string DataValue { get; set; } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Quartz; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace IStation.DataProvider |
| | | { |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ°æ®ä»»å¡ |
| | | /// </summary> |
| | | [DisallowConcurrentExecution]//æ¤ç¹æ§æ è¯ å¿
é¡»çå¾
è¿æ¬¡ä»»å¡æ§è¡å®æåï¼æè½æ§è¡ä¸æ¬¡ä»»å¡ |
| | | public class DataJob : IJob |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public async Task Execute(IJobExecutionContext context) |
| | | { |
| | | try |
| | | { |
| | | await Task.Run(() => |
| | | { |
| | | var dt_now = DateTime.Now; |
| | | var records = JsonStore.GetCurrentRecord(dt_now); |
| | | if (records == null || records.Count < 1) |
| | | return; |
| | | |
| | | var bllScada = new BaseMsSqlDAL<Entity.SMIDATA>(); |
| | | var allHisDatas = bllScada.GetAll()?.ToList(); |
| | | if (allHisDatas == null) |
| | | allHisDatas = new List<Entity.SMIDATA>(); |
| | | |
| | | //æ·»å |
| | | var records_adds = records.Where(x => |
| | | { |
| | | var hisData = allHisDatas.Find(t => t.TagName == x.TagName); |
| | | return hisData == null; |
| | | }).ToList(); |
| | | |
| | | if (records_adds != null && records_adds.Count > 0) |
| | | { |
| | | var hisdata_adds = records_adds.Select(x => |
| | | { |
| | | var entity = new Entity.SMIDATA(); |
| | | entity.TagName = x.TagName; |
| | | entity.DataTime = x.DataTime; |
| | | entity.DataValue = x.DataValue; |
| | | entity.InsertTime = dt_now; |
| | | return entity; |
| | | }).ToList(); |
| | | bllScada.Inserts(hisdata_adds); |
| | | LogHelper.Info(string.Format("æåæå
¥{0}æ¡æ°æ®ï¼", hisdata_adds.Count)); |
| | | } |
| | | |
| | | //æ´æ° |
| | | var records_updates = records.Where(x => |
| | | { |
| | | var hisData = allHisDatas.Find(t => t.TagName == x.TagName); |
| | | return hisData != null; |
| | | }).ToList(); |
| | | |
| | | if (records_updates != null && records_updates.Count > 0) |
| | | { |
| | | var hisdata_updates = records_updates.Select(x => |
| | | { |
| | | var entity = allHisDatas.Find(t => t.TagName == x.TagName); |
| | | entity.InsertTime = dt_now; |
| | | entity.DataValue = x.DataValue; |
| | | entity.DataTime = x.DataTime; |
| | | return entity; |
| | | }).ToList(); |
| | | bllScada.Updates(hisdata_updates); |
| | | LogHelper.Info(string.Format("æåæ´æ°{0}æ¡æ°æ®ï¼", hisdata_updates.Count)); |
| | | } |
| | | |
| | | |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | var e = new JobExecutionException(ex); |
| | | LogHelper.Error("æ°æ®ä»»å¡", ex); |
| | | throw e; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace IStation.DataProvider |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public class DebugRecord |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string SignId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string SrcTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string SrcValue { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace IStation.DataProvider |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public class JsonData |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public JsonData() { } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public JsonData(DateTime time, List<DebugRecord> records) |
| | | { |
| | | this.DebugTime = time; |
| | | this.DebugRecords = records; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public DateTime DebugTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public List<DebugRecord> DebugRecords { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using IStation.Untity; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace IStation.DataProvider |
| | | { |
| | | /// <summary> |
| | | /// jsonä»åº |
| | | /// </summary> |
| | | public class JsonStore |
| | | { |
| | | |
| | | private static DateTime _debugDay=DateTime.MinValue; |
| | | private static List<JsonData> _dayRecordList = null;//æ°æ®æ¥ç¼å |
| | | |
| | | //è·åç¼å |
| | | private static List<JsonData> GetDebugCache(DateTime dt) |
| | | { |
| | | var debugDay = dt.Date; |
| | | if (debugDay != _debugDay) |
| | | { |
| | | _debugDay = debugDay; |
| | | _dayRecordList = new List<JsonData>(); |
| | | var fullFileName = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigHelper.TestDataFolder, _debugDay.Day.ToString() + ".txt"); |
| | | |
| | | System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); |
| | | var allLines = File.ReadAllLines(fullFileName,Encoding.GetEncoding("GB2312")); |
| | | foreach (var line in allLines) |
| | | { |
| | | if (string.IsNullOrEmpty(line)) |
| | | continue; |
| | | var timeIndex = line.IndexOf(","); |
| | | var timeStr = line.Substring(0, timeIndex); |
| | | var time = DateTime.Parse(timeStr); |
| | | var jsonIndex = line.IndexOf("|"); |
| | | var jsonStr = line.Substring(jsonIndex + 1); |
| | | jsonStr = jsonStr.Substring(0, jsonStr.Length - 1); |
| | | var jsonList = JsonConvert.DeserializeObject<List<DebugRecord>>(jsonStr); |
| | | _dayRecordList.Add(new JsonData(new DateTime(_debugDay.Year,_debugDay.Month,_debugDay.Day,time.Hour,time.Minute,time.Second), jsonList)); |
| | | } |
| | | _dayRecordList = _dayRecordList.OrderBy(x => x.DebugTime).ToList(); |
| | | } |
| | | return _dayRecordList; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åå½åè®°å½ |
| | | /// </summary> |
| | | public static List<SrcRecord> GetCurrentRecord(DateTime dt) |
| | | { |
| | | var debugList = GetDebugCache(dt); |
| | | if (debugList == null || debugList.Count < 1) |
| | | return default; |
| | | |
| | | var debugLast = debugList.FindLast(x => x.DebugTime < dt); |
| | | if (debugLast == null) |
| | | return default; |
| | | var srcList = new List<SrcRecord>(); |
| | | foreach (var debugRecord in debugLast.DebugRecords) |
| | | { |
| | | if (!string.IsNullOrEmpty(debugRecord.SignId)) |
| | | { |
| | | var srcRecord = new SrcRecord(); |
| | | srcRecord.TagName = debugRecord.SignId; |
| | | srcRecord.DataTime = debugRecord.SrcTime; |
| | | srcRecord.DataValue = debugRecord.SrcValue; |
| | | srcList.Add(srcRecord); |
| | | } |
| | | } |
| | | return srcList; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace IStation.DataProvider |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public class SrcRecord |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string TagName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DataTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DataValue { get; set; } |
| | | } |
| | | } |
| | |
| | | <Project> |
| | | <PropertyGroup> |
| | | <_PublishTargetUrl>D:\WorkData\IStation\IStationV4.1\Core\Service.V4.1\Entry\IStation.WebApi.Entry\bin\Release\net6.0\publish\</_PublishTargetUrl> |
| | | <History>True|2022-09-22T05:35:52.6495568Z;True|2022-09-22T13:19:28.3609130+08:00;True|2022-09-22T09:45:29.7312648+08:00;True|2022-09-21T17:11:30.6881814+08:00;True|2022-09-15T16:32:44.8582766+08:00;True|2022-09-04T14:21:59.9156800+08:00;True|2022-09-03T18:27:37.0001278+08:00;True|2022-08-29T10:26:27.0532192+08:00;True|2022-08-24T13:40:25.0333335+08:00;True|2022-08-23T10:20:23.3347504+08:00;True|2022-08-19T15:24:53.5488496+08:00;False|2022-08-19T15:24:15.4430294+08:00;True|2022-08-19T11:51:17.0556654+08:00;True|2022-08-19T11:45:03.9834334+08:00;True|2022-08-19T10:56:27.1184994+08:00;True|2022-08-18T16:31:26.4673400+08:00;True|2022-08-18T10:37:50.8776926+08:00;True|2022-08-17T17:10:09.3527873+08:00;True|2022-08-17T16:04:30.4487827+08:00;True|2022-08-15T13:35:48.4976973+08:00;True|2022-08-15T13:35:34.4046702+08:00;True|2022-08-15T13:31:44.3380038+08:00;True|2022-08-15T13:07:03.2183172+08:00;True|2022-07-25T15:14:36.3659352+08:00;True|2022-07-25T15:10:01.3426246+08:00;True|2022-07-25T13:20:08.1574461+08:00;True|2022-07-19T10:26:17.1257582+08:00;True|2022-07-14T10:30:13.1942620+08:00;True|2022-07-13T14:35:30.0524912+08:00;True|2022-07-08T14:32:42.4327635+08:00;True|2022-07-05T11:08:07.0982998+08:00;True|2022-07-04T10:33:11.4756479+08:00;True|2022-07-01T22:05:04.4907981+08:00;True|2022-07-01T15:57:41.6399584+08:00;True|2022-06-29T10:33:01.2518877+08:00;True|2022-06-29T09:35:04.8176716+08:00;True|2022-06-22T10:29:08.8189250+08:00;True|2022-06-21T20:20:26.7306581+08:00;True|2022-06-21T09:54:59.2174617+08:00;True|2022-06-20T16:05:34.5414017+08:00;True|2022-06-16T13:17:09.9717924+08:00;True|2022-06-16T09:40:45.1175998+08:00;True|2022-06-15T18:01:54.0267150+08:00;False|2022-06-15T18:00:46.8407587+08:00;True|2022-06-15T15:22:18.3048191+08:00;True|2022-06-15T14:10:37.0479735+08:00;False|2022-06-15T14:08:52.7287625+08:00;True|2022-06-15T11:52:36.3090013+08:00;True|2022-06-15T10:29:17.8467709+08:00;True|2022-06-15T09:53:07.0983926+08:00;False|2022-06-15T09:51:02.1269263+08:00;True|2022-06-14T16:42:04.7964854+08:00;True|2022-06-14T14:08:49.4227432+08:00;True|2022-06-14T14:04:00.9153594+08:00;True|2022-06-13T14:57:09.1986107+08:00;True|2022-06-12T10:12:40.2143903+08:00;True|2022-06-12T09:59:01.3527438+08:00;True|2022-06-09T17:47:54.0302121+08:00;True|2022-06-09T17:30:21.7998171+08:00;True|2022-06-09T13:53:49.3251173+08:00;True|2022-06-09T11:06:42.0691794+08:00;True|2022-06-09T10:24:37.1232972+08:00;True|2022-06-09T10:00:30.4180885+08:00;True|2022-06-08T16:55:14.5816280+08:00;True|2022-06-08T16:02:29.3874857+08:00;True|2022-06-08T13:37:33.4098629+08:00;True|2022-06-08T11:05:09.3848401+08:00;True|2022-06-08T10:21:11.6630897+08:00;True|2022-06-08T09:38:48.6605705+08:00;True|2022-06-08T09:38:12.5509843+08:00;True|2022-06-08T09:37:38.2420697+08:00;True|2022-06-08T09:33:06.1943764+08:00;True|2022-06-07T17:26:45.0216506+08:00;True|2022-06-07T17:15:13.6540984+08:00;True|2022-06-07T13:30:54.6796254+08:00;True|2022-06-06T17:33:50.9010674+08:00;True|2022-06-06T17:32:21.9276179+08:00;True|2022-06-06T15:59:31.7116819+08:00;True|2022-06-06T15:29:18.4459191+08:00;True|2022-06-06T14:17:56.0946686+08:00;True|2022-06-02T09:13:02.9635258+08:00;True|2022-06-01T17:15:47.4170975+08:00;True|2022-06-01T14:06:29.6241464+08:00;True|2022-06-01T13:27:18.8319582+08:00;True|2022-06-01T13:14:07.7862232+08:00;True|2022-06-01T09:48:16.4577267+08:00;True|2022-05-30T09:57:00.6017913+08:00;True|2022-05-28T15:54:16.3134700+08:00;True|2022-05-28T11:46:55.8201686+08:00;True|2022-05-28T00:40:34.8169520+08:00;True|2022-05-27T20:45:57.0931886+08:00;True|2022-05-27T20:45:18.6248676+08:00;True|2022-05-27T14:19:14.0927561+08:00;True|2022-05-26T16:52:59.8936895+08:00;True|2022-05-26T13:53:53.4391535+08:00;True|2022-05-25T14:49:54.5116623+08:00;True|2022-05-25T14:23:38.7752497+08:00;True|2022-05-18T00:26:56.5524482+08:00;True|2022-05-17T12:08:45.5933704+08:00;True|2022-05-17T02:14:04.9500075+08:00;True|2022-05-16T12:01:40.6872993+08:00;True|2022-05-12T10:27:07.2614929+08:00;True|2022-05-11T11:02:55.5830630+08:00;True|2022-05-11T10:00:40.6549316+08:00;True|2022-05-11T09:20:32.0973524+08:00;</History> |
| | | <History>True|2022-10-08T01:23:21.6592006Z;True|2022-10-07T15:35:37.7532304+08:00;True|2022-10-07T15:04:51.9161653+08:00;False|2022-10-07T14:58:32.8816319+08:00;False|2022-10-07T14:54:55.4175944+08:00;False|2022-10-07T14:52:46.7215376+08:00;False|2022-10-07T14:51:14.0508027+08:00;False|2022-10-07T14:49:57.6007572+08:00;False|2022-10-07T14:48:56.6085134+08:00;False|2022-10-07T14:47:54.7931315+08:00;True|2022-09-22T13:35:52.6495568+08:00;True|2022-09-22T13:19:28.3609130+08:00;True|2022-09-22T09:45:29.7312648+08:00;True|2022-09-21T17:11:30.6881814+08:00;True|2022-09-15T16:32:44.8582766+08:00;True|2022-09-04T14:21:59.9156800+08:00;True|2022-09-03T18:27:37.0001278+08:00;True|2022-08-29T10:26:27.0532192+08:00;True|2022-08-24T13:40:25.0333335+08:00;True|2022-08-23T10:20:23.3347504+08:00;True|2022-08-19T15:24:53.5488496+08:00;False|2022-08-19T15:24:15.4430294+08:00;True|2022-08-19T11:51:17.0556654+08:00;True|2022-08-19T11:45:03.9834334+08:00;True|2022-08-19T10:56:27.1184994+08:00;True|2022-08-18T16:31:26.4673400+08:00;True|2022-08-18T10:37:50.8776926+08:00;True|2022-08-17T17:10:09.3527873+08:00;True|2022-08-17T16:04:30.4487827+08:00;True|2022-08-15T13:35:48.4976973+08:00;True|2022-08-15T13:35:34.4046702+08:00;True|2022-08-15T13:31:44.3380038+08:00;True|2022-08-15T13:07:03.2183172+08:00;True|2022-07-25T15:14:36.3659352+08:00;True|2022-07-25T15:10:01.3426246+08:00;True|2022-07-25T13:20:08.1574461+08:00;True|2022-07-19T10:26:17.1257582+08:00;True|2022-07-14T10:30:13.1942620+08:00;True|2022-07-13T14:35:30.0524912+08:00;True|2022-07-08T14:32:42.4327635+08:00;True|2022-07-05T11:08:07.0982998+08:00;True|2022-07-04T10:33:11.4756479+08:00;True|2022-07-01T22:05:04.4907981+08:00;True|2022-07-01T15:57:41.6399584+08:00;True|2022-06-29T10:33:01.2518877+08:00;True|2022-06-29T09:35:04.8176716+08:00;True|2022-06-22T10:29:08.8189250+08:00;True|2022-06-21T20:20:26.7306581+08:00;True|2022-06-21T09:54:59.2174617+08:00;True|2022-06-20T16:05:34.5414017+08:00;True|2022-06-16T13:17:09.9717924+08:00;True|2022-06-16T09:40:45.1175998+08:00;True|2022-06-15T18:01:54.0267150+08:00;False|2022-06-15T18:00:46.8407587+08:00;True|2022-06-15T15:22:18.3048191+08:00;True|2022-06-15T14:10:37.0479735+08:00;False|2022-06-15T14:08:52.7287625+08:00;True|2022-06-15T11:52:36.3090013+08:00;True|2022-06-15T10:29:17.8467709+08:00;True|2022-06-15T09:53:07.0983926+08:00;False|2022-06-15T09:51:02.1269263+08:00;True|2022-06-14T16:42:04.7964854+08:00;True|2022-06-14T14:08:49.4227432+08:00;True|2022-06-14T14:04:00.9153594+08:00;True|2022-06-13T14:57:09.1986107+08:00;True|2022-06-12T10:12:40.2143903+08:00;True|2022-06-12T09:59:01.3527438+08:00;True|2022-06-09T17:47:54.0302121+08:00;True|2022-06-09T17:30:21.7998171+08:00;True|2022-06-09T13:53:49.3251173+08:00;True|2022-06-09T11:06:42.0691794+08:00;True|2022-06-09T10:24:37.1232972+08:00;True|2022-06-09T10:00:30.4180885+08:00;True|2022-06-08T16:55:14.5816280+08:00;True|2022-06-08T16:02:29.3874857+08:00;True|2022-06-08T13:37:33.4098629+08:00;True|2022-06-08T11:05:09.3848401+08:00;True|2022-06-08T10:21:11.6630897+08:00;True|2022-06-08T09:38:48.6605705+08:00;True|2022-06-08T09:38:12.5509843+08:00;True|2022-06-08T09:37:38.2420697+08:00;True|2022-06-08T09:33:06.1943764+08:00;True|2022-06-07T17:26:45.0216506+08:00;True|2022-06-07T17:15:13.6540984+08:00;True|2022-06-07T13:30:54.6796254+08:00;True|2022-06-06T17:33:50.9010674+08:00;True|2022-06-06T17:32:21.9276179+08:00;True|2022-06-06T15:59:31.7116819+08:00;True|2022-06-06T15:29:18.4459191+08:00;True|2022-06-06T14:17:56.0946686+08:00;True|2022-06-02T09:13:02.9635258+08:00;True|2022-06-01T17:15:47.4170975+08:00;True|2022-06-01T14:06:29.6241464+08:00;True|2022-06-01T13:27:18.8319582+08:00;True|2022-06-01T13:14:07.7862232+08:00;True|2022-06-01T09:48:16.4577267+08:00;True|2022-05-30T09:57:00.6017913+08:00;True|2022-05-28T15:54:16.3134700+08:00;True|2022-05-28T11:46:55.8201686+08:00;True|2022-05-28T00:40:34.8169520+08:00;</History> |
| | | <LastFailureDetails /> |
| | | </PropertyGroup> |
| | | </Project> |
| | |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.LargeScreen", "Application\IStation.Application.LargeScreen\IStation.Application.LargeScreen.csproj", "{902AABE5-E167-444E-B3C7-8077E1E9BBBB}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Calculation.Plan", "Calculation\IStation.Calculation.Plan\IStation.Calculation.Plan.csproj", "{E7D995AB-A446-4838-8681-DEC5E2EDB962}" |
| | | EndProject |
| | | Global |
| | | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
| | | Debug|Any CPU = Debug|Any CPU |
| | |
| | | {902AABE5-E167-444E-B3C7-8077E1E9BBBB}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {902AABE5-E167-444E-B3C7-8077E1E9BBBB}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {902AABE5-E167-444E-B3C7-8077E1E9BBBB}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {E7D995AB-A446-4838-8681-DEC5E2EDB962}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {E7D995AB-A446-4838-8681-DEC5E2EDB962}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {E7D995AB-A446-4838-8681-DEC5E2EDB962}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {E7D995AB-A446-4838-8681-DEC5E2EDB962}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | EndGlobalSection |
| | | GlobalSection(SolutionProperties) = preSolution |
| | | HideSolutionNode = FALSE |
| | |
| | | {6B1F2F73-E16C-4C85-9D3B-B1872E363653} = {C7614DA2-0679-407D-B9E3-66D448DD7488} |
| | | {73065108-246A-4852-A248-1755B3804DF5} = {C7614DA2-0679-407D-B9E3-66D448DD7488} |
| | | {902AABE5-E167-444E-B3C7-8077E1E9BBBB} = {C7614DA2-0679-407D-B9E3-66D448DD7488} |
| | | {E7D995AB-A446-4838-8681-DEC5E2EDB962} = {B1548C2C-C3C2-47C0-8F6E-B265D0603099} |
| | | EndGlobalSection |
| | | GlobalSection(ExtensibilityGlobals) = postSolution |
| | | SolutionGuid = {18D1EA07-81E5-4443-8512-F303BC79DCF4} |
| | |
| | | var station = new Service.Station().GetByID(CorpID, logicTree.LogicID); |
| | | if (station == null) |
| | | continue; |
| | | //if (station.ID==) |
| | | //{ |
| | | |
| | | //} |
| | | |
| | | //æå»ºæ³µç«ä¸ä¸æ |
| | | logicTreeContextItem.LogicName = station.Name; |
| | |
| | | monitorPointMappingList?.Select(x => x.MonitorPointID).Distinct().ToList(), Model.eMonitorType.General, Model.Monitor.eCronType.Real); |
| | | //æè¿æµç¹è®°å½ |
| | | //var monitorRecordList = new Service.MonitorRealRecord().GetLastNormalRecord(CorpID,monitorPointList?.Select(x=>x.ID).ToList()); |
| | | var monitorRecordList = MonitorRealRecordHelper.GetLastNormalRealRecord(CorpID, |
| | | monitorPointList?.Select(x => x.ID).ToList()); |
| | | var monitorRecordList = MonitorRealRecordHelper.GetLastNormalRealRecord(CorpID, monitorPointList?.Select(x => x.ID).ToList()); |
| | | //éå管路 |
| | | foreach (var pipeLine in pipeLineList) |
| | | { |
| | |
| | | monitorPointContextItem.DataValue = dataValue; |
| | | pipeLineContextItem.MonitorPointContextItems.Add(monitorPointContextItem); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | if (!bol) |
| | | { |
| | | LogHelper.Info($"è½æåæä»»å¡ä¸ï¼å®¢æ·æ è¯ï¼{this.CorpID}, ï¼åï¼è®°å½ä¿å失败ï¼"); |
| | | } |
| | | } |
| | | } |
| | | if (multiList != null && multiList.Count > 0) |
| | | { |
| | |
| | | LogHelper.Info($"è½æåæä»»å¡ä¸ï¼å®¢æ·æ è¯ï¼{this.CorpID}, ï¼ä¸å¡ï¼è®°å½ä¿å失败ï¼"); |
| | | } |
| | | } |
| | | |
| | | if (this.CorpID==5) |
| | | { |
| | | var singleListJson = JsonHelper.Object2Json(singleList); |
| | | LogHelper.Debug("singleListJson:" + singleListJson); |
| | | |
| | | var multiListJson = JsonHelper.Object2Json(multiList); |
| | | LogHelper.Debug("multiListJson:" + multiListJson); |
| | | |
| | | var logicListJson = JsonHelper.Object2Json(logicList); |
| | | LogHelper.Debug("logicListJson:" + logicListJson); |
| | | } |
| | | |
| | | }); |
| | | #endregion |
| | | |
| | | LogHelper.Info($"å®¢æ·æ è¯ï¼{this.CorpID}, ç»æè½æåæï¼ç»è®º:{analyBol.ToString()}"); |
| | | LogHelper.Info($"å®¢æ·æ è¯ï¼{this.CorpID}, ç»æè½æåæï¼"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | /// <summary> |
| | | /// 设置Objectæµç¹æ å° |
| | | /// </summary> |
| | | public bool SetOfObject(long CorpID,string ObjectType,long ObjectID, List<Model.MonitorPointMapping> list) |
| | | public bool SetOfObject(long CorpID, string ObjectType, long ObjectID, List<Model.MonitorPointMapping> list) |
| | | { |
| | | if (list == null || list.Count() < 1) |
| | | return false; |
| | | /*if (list == null || list.Count() < 1) |
| | | return false;*/ |
| | | var dal = new DAL.MonitorPointMapping(); |
| | | var entity_list = Model2Entities(list.ToList()); |
| | | var bol = dal.SetOfObject(CorpID,ObjectType,ObjectID, entity_list); |
| | | var bol = dal.SetOfObject(CorpID, ObjectType, ObjectID, entity_list); |
| | | if (bol) |
| | | { |
| | | UpdateCorpCacheByObjectTypeAndObjectID(CorpID, ObjectType, ObjectID); |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| | | <PropertyGroup> |
| | | <_LastSelectedProfileId>D:\WorkData\IStation\V4.0\Code\Core\TopShelf\IStation.TopShelf.DataProvider4SMI\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId> |
| | | <_LastSelectedProfileId>D:\WorkData\IStation\IStationV4.1\Core\Service.V4.1\TopShelf\IStation.TopShelf.DataProvider4SMI\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <!-- |
| | | https://go.microsoft.com/fwlink/?LinkID=208121. |
| | | --> |
| | | <Project> |
| | | <PropertyGroup> |
| | | <History>True|2022-09-28T05:45:54.8994551Z;</History> |
| | | <LastFailureDetails /> |
| | | </PropertyGroup> |
| | | </Project> |
| | |
| | | --> |
| | | <Project> |
| | | <PropertyGroup> |
| | | <History>True|2022-09-26T07:50:09.2992619Z;True|2022-09-26T15:47:20.6418528+08:00;True|2022-09-25T16:30:19.2053341+08:00;True|2022-09-22T17:08:02.6481758+08:00;True|2022-09-22T10:24:35.0635421+08:00;True|2022-09-16T15:41:38.0594228+08:00;True|2022-09-16T15:23:44.1558393+08:00;True|2022-07-01T21:10:56.8914203+08:00;True|2022-07-01T15:16:47.4260591+08:00;True|2022-06-29T09:41:10.5136306+08:00;True|2022-06-08T10:45:13.3564100+08:00;True|2022-06-08T10:41:35.1533091+08:00;True|2022-06-06T14:07:28.9893476+08:00;True|2022-06-01T09:15:01.3097804+08:00;True|2022-05-29T10:18:06.7001434+08:00;</History> |
| | | <History>True|2022-10-08T02:04:57.3573208Z;True|2022-09-28T16:12:17.1471133+08:00;True|2022-09-28T15:11:17.3924597+08:00;True|2022-09-28T15:07:24.1542712+08:00;True|2022-09-28T15:01:05.9450589+08:00;True|2022-09-28T13:14:26.7038834+08:00;True|2022-09-27T16:32:29.0286484+08:00;True|2022-09-27T14:15:56.0426476+08:00;True|2022-09-26T16:16:45.3404775+08:00;True|2022-09-26T15:50:09.2992619+08:00;True|2022-09-26T15:47:20.6418528+08:00;True|2022-09-25T16:30:19.2053341+08:00;True|2022-09-22T17:08:02.6481758+08:00;True|2022-09-22T10:24:35.0635421+08:00;True|2022-09-16T15:41:38.0594228+08:00;True|2022-09-16T15:23:44.1558393+08:00;True|2022-07-01T21:10:56.8914203+08:00;True|2022-07-01T15:16:47.4260591+08:00;True|2022-06-29T09:41:10.5136306+08:00;True|2022-06-08T10:45:13.3564100+08:00;True|2022-06-08T10:41:35.1533091+08:00;True|2022-06-06T14:07:28.9893476+08:00;True|2022-06-01T09:15:01.3097804+08:00;True|2022-05-29T10:18:06.7001434+08:00;</History> |
| | | <LastFailureDetails /> |
| | | </PropertyGroup> |
| | | </Project> |