Ejemplo n.º 1
0
        //#endregion

        private void ExAsynTime(string session, Wlst.mobile.MsgWithMobile args)
        {
            if (args.WstRtuOrders == null || args.WstRtuOrders.Op != 21)
            {
                return;
            }

            var lst = args.WstRtuOrders.RtuIds;

            if (lst == null)
            {
                return;
            }

            var ar = new PublishEventArgs
            {
                EventId   = Cr.CoreOne.CoreIdAssign.EventIdAssign.AsyncTimeEventId,
                EventType = PublishEventType.Core
            };

            ar.AddParams(lst);
            EventPublish.PublishEvent(ar);

            foreach (var f in lst)
            {
                string tmlName = "Reserve";
                var    g       = Wlst.Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.GetInfoById(f);
                if (g != null)
                {
                    tmlName = g.RtuName;
                }
                Wlst.Cr.CoreMims.ShowMsgInfo.ShowNewMsg.AddNewShowMsg(
                    f, tmlName, Wlst.Cr.CoreMims.ShowMsgInfo.OperatrType.ServerReply, "对时成功");
            }
        }
Ejemplo n.º 2
0
        private void RequestTmlExistFaultsLnData(string session, Wlst.mobile.MsgWithMobile infos)
        {
            if (infos.WstFaultCurrUpdate.ItemsUpdate.Count == 0)
            {
                return;
            }
            var t  = infos.WstFaultCurrUpdate.ItemsUpdate[0];
            var ss =
                (from tt in Info.Values
                 where
                 tt.FaultId == t.FaultId && tt.RtuId == t.RtuId && tt.LoopId == t.LoopId &&
                 tt.LampId == t.LampId
                 select tt).ToList();

            if (ss.Count == 0)
            {
                return;
            }



            ss[0].V      = t.Ahx;
            ss[0].A      = t.Alx;
            ss[0].AUpper = t.Adiff;
            ss[0].Remark = infos.Head.Why;
        }
Ejemplo n.º 3
0
        private void action(string session, Wlst.mobile.MsgWithMobile infos)
        {
            DtClientHeatBeatingLastTime = DateTime.Now;

            if (ClientHeatBeating != null)
            {
                ClientHeatBeating(null, EventArgs.Empty);
            }
        }
Ejemplo n.º 4
0
 private void MsgAction(string session, Wlst.mobile.MsgWithMobile infos)
 {
     if (infos.WstSysSvrToCntInfo == null)
     {
         return;
     }
     AddNewRecordItem(infos.WstSysSvrToCntInfo.RtuId, infos.WstSysSvrToCntInfo.RtuName, OperatrType.SystemInfo,
                      infos.WstSysSvrToCntInfo.Msg);
 }
Ejemplo n.º 5
0
 private void ExSaveWeek(string session, Wlst.mobile.MsgWithMobile infos)
 {
     GetTimeTableParameter();
     if (LuxEffective == int.MinValue)
     {
         LuxEffective   = 60;
         LightOnOffSet  = 0;
         LightOffOffSet = 0;
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="session"></param>
        /// <param name="infos"></param>
        public void ActionRcvLnSetting(string session, Wlst.mobile.MsgWithMobile infos)
        {
            if (infos.WstFaultHlbphLevel == null)
            {
                return;
            }
            try
            {
                if (infos.WstFaultHlbphLevel.Op == 1)
                {
                    foreach (var f in HLbphUpper)
                    {
                        f.Value2 = "--";
                    }

                    var strlst = "";
                    //List<double > tmp = new List<double>();
                    var ntg =
                        (from t in infos.WstFaultHlbphLevel.Levels where t > 0.001 orderby t ascending select t).ToList();
                    for (int i = 0; i < ntg.Count; i++)
                    {
                        if (i > 9)
                        {
                            break;
                        }
                        HLbphUpper[i].Value2 = ntg[i].ToString("f2");
                        strlst = string.IsNullOrEmpty(strlst) ? ntg[i].ToString("f2") + "" : strlst + "," + ntg[i].ToString("f2");
                    }


                    this.HLbphLower = infos.WstFaultHlbphLevel.Axj;
                    //  this.HLbphUpper = tmp;
                    this.HlbphUpdateAlarm = infos.WstFaultHlbphLevel.AupdateDiff;
                    this.HLbphTimer       = infos.WstFaultHlbphLevel.TimesCheckBeforAlarm;



                    var dicOp   = new Dictionary <int, string>();
                    var dicDesc = new Dictionary <int, string>();
                    dicOp.Add(4, strlst);
                    dicDesc.Add(4, "火零不平衡档位");

                    Wlst.Cr.CoreOne.Services.OptionXmlSvr.SaveXml(3601, dicOp, dicDesc);
                }
            }
            catch (Exception ex)
            {
                Wlst.Cr.Core.UtilityFunction.WriteLog.WriteLogError("Error:" + ex);
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 具体执行
        /// </summary>
        // private void ExExecuteOpenLight(List< int > lst,object data,int guid)
        private void ExExecuteOpenLight(string session, Wlst.mobile.MsgWithMobile args)
        {
            //if (IsControlCenterManagDemo2TakeOverOcOrderShow) return;

            var datax = args.WstRtuSvrAnsCntOrderOpenCloseLight;
            var lst   = args.Args.Addr;

            if (lst == null)
            {
                return;
            }


            //var info = data as RfData;
            //if (info == null) return;

            ////发布事件,控制中心共享数据
            //var ar = new PublishEventArgs()
            //{
            //    EventId = Cr.CoreOne.CoreIdAssign.EventIdAssign.OpenOrCloseLightReceiveEventId,
            //    EventType = PublishEventType.Core
            //};
            //ar.AddParams(datax.RtuId);
            //ar.AddParams(datax.LoopId);
            //ar.AddParams(datax.IsOpen);
            //EventPublish.PublishEvent(ar);

            string strisk = datax.IsSingle == false ? "组合开关灯命令" : datax.IsOpen ? "开灯" : "关灯";

            //  string str = strisk+"终端回复:终端地址:";
            foreach (var f in lst)
            {
                string tmlName = "Reserve";
                // str += f;
                var g = Wlst.Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.GetInfoById(f);
                if (g != null)
                {
                    //  str += ":" + g.RtuName + ";";
                    tmlName = g.RtuName;
                }
                //  else str += ";";
                //if(info !=null )

                Wlst.Cr.CoreMims.ShowMsgInfo.ShowNewMsg.AddNewShowMsg(
                    f, tmlName, Wlst.Cr.CoreMims.ShowMsgInfo.OperatrType.ServerReply, strisk + "成功");
            }
            //str = str.Substring(0, str.Length - 1);
            //str = str + "" +strisk+ "执行回复。";
            //  LogInfo.Log(str);
        }
Ejemplo n.º 8
0
        private void MsgAction(string session, Wlst.mobile.MsgWithMobile xgt)
        {
            var infos = xgt.WstRtutimeRequestTimetableXReportRecord;

            if (infos == null)
            {
                return;
            }
            if (infos.Op != 1)
            {
                return;
            }
            foreach (var f in infos.Items)
            {
                if (HoldInfo.ContainsKey(f.TimeTableId))
                {
                    HoldInfo[f.TimeTableId] = f;
                }
                else
                {
                    HoldInfo.Add(f.TimeTableId, f);
                }
            }
            //UpdateInfo(infos.Data);

            bool bolfind = false;

            foreach (var t in TimeNameItems)
            {
                if (t.Value == infos.TimeTableId)
                {
                    bolfind = true;
                    break;
                }
            }
            if (!bolfind)
            {
                TimeNameItems.Add(new NameValueInt()
                {
                    Name = infos.TimeTableId + "", Value = infos.TimeTableId
                });
            }
            if (_currentSelectTimeTableId == 0 || _currentSelectTimeTableId == infos.TimeTableId)
            {
                _currentSelectTimeTableId = infos.TimeTableId;
                OnSelectChanged(_currentSelectTimeTableId);
            }
        }
Ejemplo n.º 9
0
        private const int Packagelength = 8096; //一个包 8096字节

        /// <summary>
        /// 请求文件信息
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private void OnReqFileBriefInfo(string session, Wlst.mobile.MsgWithMobile obj)
        {
            // var pe = obj as ProtocolEncoding;
            if (obj == null || obj.WstSysFileBiefInfo == null)
            {
                return;
            }
            if (obj.WstSysFileBiefInfo.Op == 1) //客户端下载
            {
                var nt = Wlst.Sr.ProtocolPhone.LxSys.wst_sys_file_brief_info;
                nt.WstSysFileBiefInfo.FileFullNameInSrcPc = obj.WstSysFileBiefInfo.FileFullNameInSrcPc;
                nt.WstSysFileBiefInfo.Op     = 2;
                nt.WstSysFileBiefInfo.Length = 0;
                if (System.IO.File.Exists(obj.WstSysFileBiefInfo.FileFullNameInSrcPc))
                {
                    using (
                        var fs = new FileStream(obj.WstSysFileBiefInfo.FileFullNameInSrcPc, System.IO.FileMode.Open))
                    {
                        nt.WstSysFileBiefInfo.Name   = fs.Name;
                        nt.WstSysFileBiefInfo.Length = (int)fs.Length;
                    }
                }
                SndOrderServer.OrderSnd(nt);
                return;
            }
            if (obj.WstSysFileBiefInfo.Op == 2) //服务向客户端请求的  需要下载的本地的
            {
                if (obj.WstSysFileBiefInfo.Length == 0)
                {
                    return;                                                         //该文件无法查阅
                }
                int addOnePack = obj.WstSysFileBiefInfo.Length % 8096 == 0 ? 0 : 1; //最后一个包 是否存在
                var nt         = Wlst.Sr.ProtocolPhone.LxSys.wst_sys_request_file;  //发送给客户端请求协议
                nt.WstSysRequestFile.Op            = 2;                             //标记 来自服务器下载事件
                nt.WstSysRequestFile.PackageLength = Packagelength;
                nt.WstSysRequestFile.PackageSum    = (obj.WstSysFileBiefInfo.Length / Packagelength) + addOnePack;
                for (int i = 0; i < nt.WstSysRequestFile.PackageSum; i++)
                {
                    nt.WstSysRequestFile.RquPackages.Add(i);
                }
                nt.WstSysRequestFile.FileFullNameInSrcPc = obj.WstSysFileBiefInfo.FileFullNameInSrcPc;

                SndOrderServer.OrderSnd(nt); //请求文件
            }
        }
Ejemplo n.º 10
0
        public void LuxDataMeasureEvent(string session, Wlst.mobile.MsgWithMobile infos)
        {
            var info = infos.WstAlsSvrAnsOrderZcOrSet;

            if (info == null)
            {
                return;
            }
            if (info.Op == 1)
            {
                if (Wj1080Module.Services.Common.IsLuxOnTabShowd == false)
                {
                    return;
                }

                UpdateLuxData(info.SuggestedLuxId, info.LuxValue);
            }
        }
Ejemplo n.º 11
0
        /// 请求文件数据 返回
        private void OnReqFileInfoBack(string session, Wlst.mobile.MsgWithMobile obj)
        {
            if (obj == null || obj.WstSysAnsRequestFile == null)
            {
                return;
            }

            if (_data.ContainsKey(obj.WstSysAnsRequestFile.FileFullNameInSrcPc) == false)
            {
                return;
            }

            var  ntg  = (from t in _data[obj.WstSysAnsRequestFile.FileFullNameInSrcPc] select t.Item2).ToList();
            bool find = ntg.Contains(obj.WstSysAnsRequestFile.CurrentPackageIndex);



            if (find)
            {
                return;
            }
            _data[obj.WstSysAnsRequestFile.FileFullNameInSrcPc].Add(
                new Tuple <int, int>(obj.WstSysAnsRequestFile.PackageSum, obj.WstSysAnsRequestFile.CurrentPackageIndex));

            queue.Enqueue(new Tuple <string, RquFileInfoBack>(obj.WstSysAnsRequestFile.FileFullNameInSrcPc,
                                                              obj.WstSysAnsRequestFile));

            //using (System.IO.FileStream stream = System.IO.File.OpenWrite(obj.WstSysAnsRequestFile.FileFullNameInSrcPc))
            //{
            //    stream.Seek((long)obj.WstSysAnsRequestFile.CurrentPackageIndex * (long)obj.WstSysAnsRequestFile.PackageLength, System.IO.SeekOrigin.Begin);
            //    var buf = System.Convert.FromBase64String(obj.WstSysAnsRequestFile.Data);
            //    stream.Write(buf, 0, buf.Length);
            //    stream.Flush();
            //}
            //if (_data[obj.WstSysAnsRequestFile.FileFullNameInSrcPc][0].Item1 == _data[obj.WstSysAnsRequestFile.FileFullNameInSrcPc].Count)
            //{
            //    _data[obj.WstSysAnsRequestFile.FileFullNameInSrcPc].Clear();
            //    List<Tuple<int, int>> tmp = null;
            //    _data.TryRemove(obj.WstSysAnsRequestFile.FileFullNameInSrcPc, out tmp);
            //}
        }
Ejemplo n.º 12
0
        public void Request(string session, Wlst.mobile.MsgWithMobile infos)
        {
            if (DateTime.Now.Ticks - dtsnd < 100000000)
            {
                Msg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "  保存成功.";
            }

            TreeTabRtuSet.TabRtuHolding.Info.Clear();
            foreach (var f in infos.WstSpeGroupClassInfo.Item)
            {
                if (TabRtuHolding.Info.ContainsKey(f.GrpId))
                {
                    TabRtuHolding.Info.Remove(f.GrpId);
                }
                var mtpx = new TabRtuInfo()
                {
                    Id = f.GrpId, Name = f.GrpName
                };
                mtpx.GrpOrRtus.AddRange(f.RtuOrGrpLst);
                TabRtuHolding.Info.Add(f.GrpId, mtpx);
            }
            TreeTabRtuSet.TabRtuHolding.OnUpdaetAll();
        }
        private void RequestSystemInfo(string session, Wlst.mobile.MsgWithMobile infos)
        {
            var data = infos.SysRepSh;

            if (data.Op == 1)
            {
                if (updateflg)
                {
                    WlstMessageBox.Show("提示", "设置信息更新成功。", WlstMessageBoxType.Ok);
                }
                updateflg = false;

                Idf                 = data.Idf.ToString();
                ProjectDeAddr       = data.Info1.ProjectDeAddr;
                ProjectName         = data.Info1.ProjectName;
                PhoneThatProjectCat = data.Info1.PhoneThatProjectCat;
                DtSystemInstal      = (new DateTime(data.Idf)).ToString("yyyy年MM月dd日");
                TvCnt1              = data.Info1.TvCnt1;
                TvSvr               = data.Info1.TvSvr;
                VerProCom4          = "v" + data.Info1.VerProCom4;
                VerProCnt5          = data.Info1.VerProCnt5;
                MiddleTime          = new DateTime(data.Info1.DtMiddleStart);
            }
        }
Ejemplo n.º 14
0
        ///  请求文件数据
        private void OnReqFileInfo(string session, Wlst.mobile.MsgWithMobile obj)
        {
            // var pe = obj as ProtocolEncoding;
            if (obj == null || obj.WstSysRequestFile == null || obj.WstSysRequestFile.RquPackages.Count == 0)
            {
                return;
            }
            if (System.IO.File.Exists(obj.WstSysRequestFile.FileFullNameInSrcPc) == false)
            {
                return;
            }
            try
            {
                using (var fs = new FileStream(obj.WstSysRequestFile.FileFullNameInSrcPc, System.IO.FileMode.Open))
                {
                    //var fs = new FileStream(obj.WstSysRequestFile.FileFullNameInSrcPc, System.IO.FileMode.Open);
                    // var br = new BinaryReader((Stream)fs);
                    int length = (int)fs.Length;
                    int len1   = obj.WstSysRequestFile.PackageLength;

                    foreach (var g in obj.WstSysRequestFile.RquPackages)
                    {
                        var nt = Wlst.Sr.ProtocolPhone.LxSys.wst_sys_request_file_back;
                        nt.WstSysAnsRequestFile.FileFullNameInSrcPc = obj.WstSysRequestFile.FileFullNameInSrcPc;
                        nt.WstSysAnsRequestFile.Op                  = 1;
                        nt.WstSysAnsRequestFile.PackageLength       = len1;
                        nt.WstSysAnsRequestFile.PackageSum          = obj.WstSysRequestFile.PackageSum;
                        nt.WstSysAnsRequestFile.CurrentPackageIndex = g;



                        if (g * len1 >= length)
                        {
                            nt.WstSysAnsRequestFile.Data = "";
                        }
                        else
                        {
                            var intLength = len1;

                            if (g * len1 + len1 > length)
                            {
                                intLength = length - g * len1;
                            }

                            var bytContent = new byte[intLength];
                            fs.Seek(g * len1, SeekOrigin.Begin);
                            fs.Read(bytContent, 0, bytContent.Length);
                            var snd = System.Convert.ToBase64String(bytContent);
                            nt.WstSysAnsRequestFile.Data = snd;
                        }

                        SndOrderServer.OrderSnd(nt);
                        Thread.Sleep(3);
                    }
                    fs.Close();
                }
            }
            catch (Exception ex)
            {
                Wlst.Cr.Core.UtilityFunction.WriteLog.WriteLogError("发送数据 OnReqFileInfo 出错");
            }
        }
        //private List<Tuple<int, long>> recordsKeys = new List<Tuple<int, long>>();
        public void RecordDataRequest(string session, Wlst.mobile.MsgWithMobile infos)
        {
            if (!_thisViewActive)
            {
                return;
            }
            if (infos == null || infos.WstRtuElecStatsData == null)
            {
                return;
            }
            //中间层计算较慢,如果连续点击,会导致延迟应答,判一下报表类型,如果已经不是当下选的报表类型,则不处理.
            if (infos.WstRtuElecStatsData.Type != SelectTpyeId)
            {
                return;
            }


            Records.Clear();
            //recordsKeys.Clear();

            var list = infos.WstRtuElecStatsData.Items;

            foreach (var g in list)
            {
                var item = new ElectricityStatisticsOneItem();
                item.LngDateCreate = g.DateCreate;
                item.Days          = g.Days;
                item.Aelec         = g.Aelec;
                item.Belec         = g.Belec;
                item.Celec         = g.Celec;
                item.Abcelec       = g.Abcelec;
                item.Index         = Records.Count + 1;
                item.RtuNums       = g.RtuId == 0? GetRtusLst().Count + "":"---";
                item.RtuId         = g.RtuId;

                if (SelectTpyeId == 1 || SelectTpyeId == 4) //日表
                {
                    item.DateCreate = new DateTime(g.DateCreate).ToString("yyyy-MM-dd");
                    item.Days       = 1;
                }
                else if (SelectTpyeId == 2 || SelectTpyeId == 5) //月表
                {
                    item.DateCreate = new DateTime(g.DateCreate).ToString("yyyy-MM");
                }
                else if (SelectTpyeId == 3 || SelectTpyeId == 6) // 年表
                {
                    item.DateCreate = new DateTime(g.DateCreate).ToString("yyyy");
                }

                if (QueryMode == 3)                             //批量统计时,days 才用理论值
                {
                    if (SelectTpyeId == 2 || SelectTpyeId == 5) //月表
                    {
                        int dtMonth = DateTime.DaysInMonth(new DateTime(g.DateCreate).Year,
                                                           new DateTime(g.DateCreate).Month);
                        item.Days = dtMonth;
                    }
                    if (SelectTpyeId == 3 || SelectTpyeId == 6) //年表
                    {
                        var             date1 = new DateTime(new DateTime(g.DateCreate).Year, 1, 1);
                        var             date2 = new DateTime(new DateTime(g.DateCreate).Year, 12, 31);
                        System.TimeSpan diff  = date2.Subtract(date1);
                        item.Days = diff.Days + 1;
                    }
                }

                Records.Add(item);
                //if (recordsKeys.Contains(tu) == false) recordsKeys.Add(tu);
            }
            if (Records.Count % 100 == 0)
            {
                Wlst.Cr.Core.UtilityFunction.UiHelper.UiDoOtherUserEvent();
            }
            Remind = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 数据统计成功,共计" + Records.Count +
                     " 条数据.";



            ////  Remind = "数据已反馈,查询命令已结束,请查看数据!";
            //var tmp = Wlst.Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.GetInfoById(info.RtuId);
            //Remind = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " --" +
            //         (tmp == null ? info.RtuId + "" : tmp.RtuName) + "--终端数据查询成功,共计" + Records.Count + "条数据.";
            ////info.Items .Count + " 条数据.";
        }
Ejemplo n.º 16
0
        /// 请求文件列表
        private void OnReqFileLst(string session, Wlst.mobile.MsgWithMobile obj)
        {
            // var pe = obj as ProtocolEncoding;
            if (obj == null || obj.WstSysFileInfoLst == null)
            {
                return;
            }
            if (obj.WstSysFileInfoLst.Op == 1) //客户端请求
            {
                var nt = Wlst.Sr.ProtocolPhone.LxSys.wst_sys_file_lst;
                nt.WstSysFileInfoLst.Op = 2;

                if (System.IO.Directory.Exists(obj.WstSysFileInfoLst.FileDir) == false)
                {
                    System.IO.Directory.CreateDirectory(obj.WstSysFileInfoLst.FileDir);
                }


                //在指定目录及子目录下查找文件,在list中列出子目录及文件
                DirectoryInfo Dir = new DirectoryInfo(obj.WstSysFileInfoLst.FileDir);
                nt.WstSysFileInfoLst.FileDir = obj.WstSysFileInfoLst.FileDir; //20180123
                foreach (FileInfo f in Dir.GetFiles())                        //查找文件
                {
                    if (f.Name.Contains("EnsureThisFileHasContent_xx"))
                    {
                        if (f.Length == 0)
                        {
                            return;
                        }
                    }
                    nt.WstSysFileInfoLst.FileFullNameInSrcPc.Add(f.FullName);
                }
                SndOrderServer.OrderSnd(nt);
            }
            else if (obj.WstSysFileInfoLst.Op == 2) //服务器端请求 应答
            {
                if (System.IO.Directory.Exists(obj.WstSysFileInfoLst.FileDir) == false)
                {
                    System.IO.Directory.CreateDirectory(obj.WstSysFileInfoLst.FileDir);
                }

                long time = 0;
                //在指定目录及子目录下查找文件,在list中列出子目录及文件
                DirectoryInfo Dir = new DirectoryInfo(obj.WstSysFileInfoLst.FileDir);
                foreach (FileInfo f in Dir.GetFiles()) //查找文件
                {
                    if (f.Name.Contains("EnsureThisFileHasContent_xx"))
                    {
                        var spr = f.Name.Replace(".txt", "").Replace("EnsureThisFileHasContent_xx", "");
                        Int64.TryParse(spr, out time);
                    }
                }
                long time1 = 0;
                foreach (var f in obj.WstSysFileInfoLst.FileFullNameInSrcPc)
                {
                    if (f.Contains("EnsureThisFileHasContent_xx"))
                    {
                        var sp  = f.Substring(f.IndexOf("EnsureThisFileHasContent_xx"));
                        var spr = sp.Replace(".txt", "").Replace("EnsureThisFileHasContent_xx", "");
                        Int64.TryParse(spr, out time1);
                    }
                }
                if (time1 > time)
                {
                    //load
                    var files = (from t in Dir.GetFiles() select t.FullName).ToList();
                    foreach (var f in files)
                    {
                        if (File.Exists(f))
                        {
                            File.Delete(f);
                        }
                    }

                    foreach (var f in obj.WstSysFileInfoLst.FileFullNameInSrcPc)
                    {
                        if (_data.ContainsKey(f))
                        {
                            continue;
                        }
                        _data.TryAdd(f, new List <Tuple <int, int> >());

                        //注册时间  每个5分钟检测一下 是否接受完毕 接受完毕则清理
                        Wlst.Cr.Coreb.AsyncTask.Qtz.AddQtz("nt", 0, DateTime.Now.AddMinutes(5).Ticks,
                                                           OnLoadOver,
                                                           180, f, 6);
                        //间隔35分钟执行清理操作 即清除队列
                        Wlst.Cr.Coreb.AsyncTask.Qtz.AddQtz("nt", 0, DateTime.Now.AddMinutes(24).Ticks,
                                                           OnLoadOver1,
                                                           10, f, 1);


                        var nt = Wlst.Sr.ProtocolPhone.LxSys.wst_sys_file_brief_info;
                        nt.WstSysFileBiefInfo.Op = 1;
                        nt.WstSysFileBiefInfo.FileFullNameInSrcPc = f;
                        nt.WstSysFileBiefInfo.Length = 0;
                        SndOrderServer.OrderSnd(nt);
                    }
                }
            }
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 处理函数
        /// </summary>
        /// <param name="session"></param>
        /// <param name="args"></param>
        private void ResponseUserOcInfo(string session, Wlst.mobile.MsgWithMobile args)
        {
            var datax = args.WstRtuUserOcInfo;

            if (datax == null || datax.Items == null)
            {
                return;
            }
            var lst = datax.Items;

            if (lst.Count == 0)
            {
                return;
            }

            //1 请求全部  先全清记录,重新添加
            if (datax.Op == 1)
            {
                //var lst = datax.Items;
                Records.Clear();
                ocinfos.Clear();

                foreach (var g in lst)
                {
                    var tu = new Tuple <int, int>(g.RtuId, g.LoopId);

                    var info = new OcInfoItems()
                    {
                        RtuId      = g.RtuId,
                        DateCreate = new DateTime(g.DateCreate).ToString("yyyy-MM-dd HH:mm:ss"),
                        Op         = g.Op,
                        UserName   = g.UserName,
                        LoopId     = g.LoopId,
                        Color      =
                            g.UserName != Wlst.Cr.CoreMims.Services.UserInfo.UserLoginInfo.UserName
                                               ? "Red"
                                               : "Black",
                    };
                    ////记录缓存
                    //if (!ocinfos.ContainsKey(tu))
                    //{
                    ocinfos.Add(tu, info);
                    //}

                    Records.Insert(0, info);
                }
            }
            else if (datax.Op == 2)  //op2   添加,先检查是否已经存在,存在先删除 再添加
            {
                foreach (var g in lst)
                {
                    var tu = new Tuple <int, int>(g.RtuId, g.LoopId);
                    //如果存在,先删除
                    if (ocinfos.ContainsKey(tu))
                    {
                        Records.Remove(ocinfos[tu]); //totest
                        ocinfos.Remove(tu);
                        //删除原来记录
                        //foreach (var f in Records)
                        //{
                        //    if (f.RtuId == g.RtuId && f.LoopId == g.LoopId)
                        //    {
                        //        Records.Remove(f);

                        //        break;
                        //    }
                        //}
                    }
                    var info = new OcInfoItems()
                    {
                        RtuId      = g.RtuId,
                        DateCreate = new DateTime(g.DateCreate).ToString("yyyy-MM-dd HH:mm:ss"),
                        Op         = g.Op,
                        UserName   = g.UserName,
                        LoopId     = g.LoopId,
                        Color      =
                            g.UserName != Wlst.Cr.CoreMims.Services.UserInfo.UserLoginInfo.UserName
                                               ? "Red"
                                               : "Black",
                    };

                    ocinfos.Add(tu, info);
                    Records.Insert(0, info);
                }
            }
            else if (datax.Op == 3) //op3  删除
            {
                //var lst = datax.Items;
                foreach (var g in lst)
                {
                    var tu = new Tuple <int, int>(g.RtuId, g.LoopId);
                    if (ocinfos.ContainsKey(tu))
                    {
                        Records.Remove(ocinfos[tu]);
                        ocinfos.Remove(tu);
                    }
                }
            }
        }
        private void RequestOrUpdateUserIndividuationFault(string session, Wlst.mobile.MsgWithMobile infos)
        {
            var tmlInfoExchangeforUpdatetmlinfo = infos.WstFaultUserDefineFaultAlarms;

            if (infos.WstFaultUserDefineFaultAlarms == null)
            {
                return;
            }

            //管理级别 集中修改
            if (string.IsNullOrEmpty(infos.WstFaultUserDefineFaultAlarms.RequestOrSetUserName) == false)
            {
                //和自己无关的
                if (
                    Wlst.Cr.CoreMims.Services.UserInfo.UserLoginInfo.UserName.Equals(
                        infos.WstFaultUserDefineFaultAlarms.RequestOrSetUserName) == false)
                {
                    return;
                }
            }

            IsShieldAlarmsThatUserOcLightCause = infos.WstFaultUserDefineFaultAlarms.IsShieldAlarmsThatUserOcLightCause;

            try
            {
                Info.Clear();
                foreach (var t in tmlInfoExchangeforUpdatetmlinfo.Items)
                {
                    try
                    {
                        if (Info.ContainsKey(t.FaultCode))
                        {
                            Info[t.FaultCode] = t;
                        }
                        else
                        {
                            Info.Add(t.FaultCode, t);
                        }
                    }
                    catch (Exception ex)
                    {
                        WriteLog.WriteLogError("Add tml falut type info error:" +
                                               ex.ToString());
                    }
                }

                InfoAlarmGroups.Clear();
                foreach (var f in tmlInfoExchangeforUpdatetmlinfo.ItemsAlarmGroup)
                {
                    InfoAlarmGroups.Add(f);
                }
            }
            catch (Exception ex)
            {
                WriteLog.WriteLogError("Error to update tml falut type ,ex:" + ex);
            }

            var ar = new PublishEventArgs()
            {
                EventId   = EventIdAssign.UserDisplayErrorSelfSetInfoUpdated,
                EventType = PublishEventType.Core
            };

            EventPublish.PublishEvent(ar);


            TmlExistFaultsInfoServices.OnUserInviOrTypeChange();
        }
Ejemplo n.º 19
0
        public void UpdateSimAck(string session, Wlst.mobile.MsgWithMobile infos)
        {
            if (infos.WstSpeZcSim.Op == 5)
            {
                Msg = DateTime.Now + " 更新成功!";

                Data.Clear();

                int index = 1;
                foreach (var t in infos.WstSpeZcSim.Items)
                {
                    var tmp = Wlst.Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.GetInfoById(t.RtuId);
                    //var d = ConvertLongDateTime(t.Value.DtKt);
                    //var x = d;
                    Data.Add(new SimItemModel()
                    {
                        ActivateTime  = new DateTime(t.DtKt),
                        ChargeTime    = new DateTime(t.DtXf),
                        Id            = index++,
                        IP            = t.IpAddr.Trim(),
                        NodeId        = t.RtuId,
                        NodeName      = tmp != null ? tmp.RtuName : "",
                        State         = StateLst,
                        TelNum        = t.SimNum.ToString("D1"),
                        SelectedState = StateLst[t.State - 1]
                    });
                }
            }
            else if (infos.WstSpeZcSim.Op == 1)
            {
                if (infos.WstSpeZcSim.Items != null)
                {
                    Data.Clear();

                    int index = 1;
                    foreach (var t in infos.WstSpeZcSim.Items)
                    {
                        var tmp = Wlst.Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.GetInfoById(t.RtuId);
                        //var d = ConvertLongDateTime(t.Value.DtKt);
                        //var x = d;
                        Data.Add(new SimItemModel()
                        {
                            ActivateTime  = new DateTime(t.DtKt),
                            ChargeTime    = new DateTime(t.DtXf),
                            Id            = index++,
                            IP            = t.IpAddr.Trim(),
                            NodeId        = t.RtuId,
                            NodeName      = tmp != null ? tmp.RtuName : "",
                            State         = StateLst,
                            TelNum        = t.SimNum.ToString("D1"),
                            SelectedState = StateLst[t.State - 1]
                        });
                    }

                    int maxidx = 1;
                    if (Data != null)
                    {
                        foreach (var f in this.Data)
                        {
                            if (f.Id >= maxidx)
                            {
                                maxidx = f.Id + 1;
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 20
0
        private void OnRcvSvrFaultHappenData(string session, Wlst.mobile.MsgWithMobile info)
        {
            if (info == null || info.WstFaultOccuData == null)
            {
                return;
            }
            if (info.WstFaultOccuData.RtuNewData != null && info.WstFaultOccuData.RtuNewData.RtuId > 0)
            {
                var args = new PublishEventArgs
                {
                    EventType = PublishEventType.Core,
                    EventId   =
                        Sr.EquipmentInfoHolding.Services.EventIdAssign.
                        RtuDataQueryDataInfoNeedShowInTab,
                };
                args.AddParams(info.WstFaultOccuData.RtuNewData);
                EventPublish.PublishEvent(args);
                EventPublish.PublishEvent(new PublishEventArgs()
                {
                    EventType = "MainWindow.Measure.show"
                });
                Wlst.Cr.CoreMims.Services.ShowNewDataServices.ShowNewDataView(1102809);
                return;
            }
            if (info.WstFaultOccuData.LineData != null && info.WstFaultOccuData.LineData.LduId > 0)
            {
                var args = new PublishEventArgs
                {
                    EventType = PublishEventType.Core,
                    EventId   =
                        Sr.EquipmentInfoHolding.Services.EventIdAssign.
                        RtuDataQueryDataInfoNeedShowInTab,
                };
                args.AddParams(info.WstFaultOccuData.LineData);
                EventPublish.PublishEvent(args);
                //EventPublish.PublishEvent(new PublishEventArgs() { EventType = "MainWindow.Measure.show" });
                Wlst.Cr.CoreMims.Services.ShowNewDataServices.ShowNewDataView(1102709);
                return;
            }

            if (info.WstFaultOccuData.RtuId > 1100000 && info.WstFaultOccuData.RtuId < 1200000)
            {
                var args = new PublishEventArgs
                {
                    EventType = PublishEventType.Core,
                    EventId   =
                        Sr.EquipmentInfoHolding.Services.EventIdAssign.
                        RtuDataQueryDataInfoNeedShowInTab,
                };
                if (info.WstFaultOccuData.LineData == null)
                {
                    return;
                }
                if (info.WstFaultOccuData.LineData.LduId == 0)
                {
                    info.WstFaultOccuData.LineData.LduId = info.WstFaultOccuData.RtuId;
                }
                args.AddParams(info.WstFaultOccuData.LineData);
                EventPublish.PublishEvent(args);
                Wlst.Cr.CoreMims.Services.ShowNewDataServices.ShowNewDataView(1102709);
                return;
            }

            if (info.WstFaultOccuData.SluCtrlData != null && info.WstFaultOccuData.SluCtrlData.Info != null && info.WstFaultOccuData.SluCtrlData.Info.SluId > 0)
            {
                var args = new PublishEventArgs
                {
                    EventType = PublishEventType.Core,
                    EventId   =
                        Sr.EquipmentInfoHolding.Services.EventIdAssign.
                        RtuDataQueryDataInfoNeedShowInTab,
                };
                args.AddParams(info.WstFaultOccuData.SluCtrlData);
                EventPublish.PublishEvent(args);
                EventPublish.PublishEvent(new PublishEventArgs()
                {
                    EventType = "MainWindow.Measure.show"
                });
                //   Wlst.Cr.CoreMims.Services.ShowNewDataServices.ShowNewDataView(1102709);
                return;
            }

            if (info.WstFaultOccuData.RtuId > 1000000 && info.WstFaultOccuData.RtuId < 1100000)
            {
                var args = new PublishEventArgs
                {
                    EventType = PublishEventType.Core,
                    EventId   =
                        Sr.EquipmentInfoHolding.Services.EventIdAssign.
                        RtuDataQueryDataInfoNeedShowInTab,
                };
                args.AddParams(null);
                EventPublish.PublishEvent(args);
                EventPublish.PublishEvent(new PublishEventArgs()
                {
                    EventType = "MainWindow.Measure.show"
                });
                Wlst.Cr.CoreMims.Services.ShowNewDataServices.ShowNewDataView(1102809);
                return;
            }
        }
Ejemplo n.º 21
0
        private void RequestOrUpdateFaultTypeInfo(string session, Wlst.mobile.MsgWithMobile infos)
        {
            if (isViewActive == false)
            {
                return;
            }
            var data = infos.WstRtuLdlSxxAvgSet;

            if (data == null)
            {
                return;
            }
            MyTextboxShow mtest = new MyTextboxShow();

            if (data.Op != 14)
            {
                return;
            }



            //var dic = new Dictionary<int, List<RtuSets.RtuLoopSxx>>();
            //foreach (var f in data .SxxItems ){
            //    if (dic.ContainsKey(f.RtuId) == false) dic.Add(f.RtuId, new List<RtuSets.RtuLoopSxx>());
            //    dic[f.RtuId].Add(f);
            //}

            //foreach (var f in dic)
            //{
            //    var tmpequ = Wlst.Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.GetInfoById(f.Key);
            //    var tmpequ2 = tmpequ as Wlst.Sr.EquipmentInfoHolding.Model.Wj3005Rtu;
            //    if (tmpequ2 == null) continue;
            //    foreach (var g in f.Value)
            //    {
            //        if (tmpequ2.WjLoops.ContainsKey(g.LoopId))
            //        {
            //            tmpequ2.WjLoops[g.LoopId].CurrentAlarmUpperlimit = g.SxDefault;
            //            tmpequ2.WjLoops[g.LoopId].CurrentAlarmLowerlimit = g.XxDefault;

            //        }
            //    }
            //}


            var ntg = (from t in data.SxxItems where t.RtuId == RtuId orderby t.LoopId select t).ToList();

            if (ntg.Count == 0)
            {
                return;
            }
            foreach (var g in ntg)
            {
                if (Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info.ContainsKey(g.RtuId) == false)
                {
                    return;
                }

                //if (Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info[g.RtuId].RtuNewData.LstNewLoopsData.Count <= g.LoopId - 1)
                //    return;

                //lvf 2019年3月27日08:44:40  更新最新数据中的上下限和额定电流
                foreach (var t in Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info[g.RtuId].RtuNewData.LstNewLoopsData)
                {
                    if (t.LoopId == g.LoopId)
                    {
                        t.Upper       = g.SxDefault;
                        t.Lower       = g.XxDefault;
                        t.AvgOf7daysA = g.Avg;
                    }
                }



                //Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info[g.RtuId].RtuNewData.LstNewLoopsData[ g.LoopId-1]
                //    .Upper = g.SxDefault;
                //Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info[g.RtuId].RtuNewData.LstNewLoopsData[g.LoopId-1]
                //    .Lower = g.XxDefault;
                //Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info[g.RtuId].RtuNewData.LstNewLoopsData[
                //    g.LoopId - 1]
                //    .AvgOf7daysA = g.Avg;
            }


            //var run = Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.GetRunInfo(RtuIdNeedUpdate);
            //if (run != null && run.RtuNewData != null)
            //{
            //    foreach (var t in ntg)
            //    {
            //       run.RtuNewData.LstNewLoopsData[0].Upper
            //    }
            //}
            if (DateTime.Now.Ticks - lastSavetime < 10 * 10000000L)
            {
                tbremark.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 终端额定电流、上下限设置成功.";
            }
            else
            {
                tbremark.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 终端额定电流、上下限设置已经更新,若需设置,请重新进入该界面";
                foreach (var f in Items)
                {
                    f.isCanEdit = false;
                }
            }



            //var dirc = new Dictionary<Tuple<int, int>, Tuple<double, int, int>>();
            //var dirc2 = new Dictionary<Tuple<int, int>, Tuple<double, int, int>>();
            //foreach (var f in data.SxxItems)
            //{
            //    var tu = new Tuple<int, int>(f.RtuId, f.LoopId);
            //    if (dirc.ContainsKey(tu)) continue;
            //    var tu2 = new Tuple<double, int, int>(f.Avg, f.SxDefault, f.XxDefault);
            //    dirc.Add(tu, tu2);

            //    if (f.Avg2 > 0)
            //    {
            //        if (dirc2.ContainsKey(tu)) continue;
            //        var tu3 = new Tuple<double, int, int>(f.Avg2, f.Sx1, f.Xx1);
            //        dirc2.Add(tu, tu3);
            //    }
            //}

            //foreach (var f in this.Items)
            //{
            //    ////if (f.ValueString2.Contains("屏蔽")) continue;
            //    //var flg = false;
            //    //var flg2 = false;
            //    //foreach (var t in f.ChildTreeItems)
            //    //{
            //    //    var tu = new Tuple<int, int>(t.Rtuid, t.ValueInt1);
            //    //    if (dirc.ContainsKey(tu))
            //    //    {
            //    //        t.ValueString3 = dirc[tu].Item1.ToString("f2");
            //    //        t.ValueInt3 = dirc[tu].Item2;
            //    //        t.ValueInt2 = dirc[tu].Item3;
            //    //        flg = true;
            //    //        cancmdupdatecurrent = true;
            //    //    }
            //    //    if (dirc2.ContainsKey(tu))
            //    //    {
            //    //        t.ValueString4 = dirc2[tu].Item1.ToString("f2");
            //    //        t.ValueInt5 = dirc2[tu].Item2;
            //    //        t.ValueInt4 = dirc2[tu].Item3;
            //    //        flg2 = true;
            //    //    }
            //    //}
            //    //if (flg) f.ValueString3 = "√";
            //    //if (flg2) f.ValueString4 = "√";
            //}
        }
Ejemplo n.º 22
0
        public void OnRtuSDReplay(string session, Wlst.mobile.MsgWithMobile infos)
        {
            bool add = false;

            RecordTotalCount++;

            if (infos.WstRtuSdReply.RecordStatus == 0)
            {
                //Console.WriteLine("RecordIdx:" + infos.WstRtuSdReply.RecordIdx);
                //Console.WriteLine("RecordTotal:" + infos.WstRtuSdReply.RecordTotal);
                //Console.WriteLine("RecordCount:" + infos.WstRtuSdReply.DataInfo.Count);

                if (infos.WstRtuSdReply.RecordType == 1)
                {
                    int  insertIndex = 0;
                    bool res         = IfIndexExist(infos.WstRtuSdReply.RecordIdx, ref insertIndex);

                    if (res)
                    {
                        Records.RemoveAt(insertIndex);
                    }

                    foreach (var t in infos.WstRtuSdReply.DataInfo)
                    {
                        var f = new TmlNewDataViewModelExtend(t);
                        f.Index = infos.WstRtuSdReply.RecordIdx;
                        Records.Insert(insertIndex, f);
                    }

                    Remind = "共传输" + RecordTotalCount + "条数据, 其中" + Records.Count + "正确, " + (RecordTotalCount - Records.Count) + "接收错误!";
                }
                else if (infos.WstRtuSdReply.RecordType == 2)
                {
                    int loopCount = infos.WstRtuSdReply.DataMax[0].LoopCount;

                    var terInfo = Wlst.Sr.EquipmentInfoHolding.Services.EquipmentDataInfoHold.GetInfoById(infos.WstRtuSdReply.RtuId);

                    if (terInfo != null)
                    {
                        var tmps = terInfo as Wlst.Sr.EquipmentInfoHolding.Model.Wj3005Rtu;

                        var loopName = new string[loopCount];

                        if (tmps != null)
                        {
                            int m = 0;

                            foreach (var tt in tmps.WjLoops)
                            {
                                if (m < loopCount)
                                {
                                    loopName[m++] = tt.Value.LoopName;
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }

                        for (int i = 0; i < loopCount; i++)
                        {
                            MaxRecords.Add(new MaxCurrentRecords
                            {
                                Index         = i + 1,
                                RtuId         = infos.WstRtuSdReply.RtuId,
                                LoopId        = i + 1,
                                LoopName      = loopName[i],
                                DtGetDataTime = (new DateTime(infos.WstRtuSdReply.DataMax[0].MaxDataField[i].DtRecord)).ToString("yyyy-MM-dd HH:mm:ss"),
                                MaxCurrent    = infos.WstRtuSdReply.DataMax[0].MaxDataField[i].CurrentMax.ToString("f2")
                            });
                        }
                    }



                    Remind = "数据传输完成,共" + MaxRecords.Count + "条数据!";
                }
            }
            else
            {
                if ((infos.WstRtuSdReply.RecordStatus >= 1) && (infos.WstRtuSdReply.RecordStatus <= 6))
                {
                    Remind = "当前第" + RecordTotalCount + "条数据错误!SD卡功能错误!";
                }
                else if (infos.WstRtuSdReply.RecordStatus == 7)
                {
                    Remind = "当前第" + RecordTotalCount + "条数据错误!无SD卡!";
                }
                else if (infos.WstRtuSdReply.RecordStatus == 8)
                {
                    Remind = "当前第" + RecordTotalCount + "条数据错误!记录时间错误!";
                    //if (infos.WstRtuSdReply.RecordType == 1)
                    //{
                    //    Remind = "共传输" + RecordTotalCount + "条数据, 其中" + Records.Count + "正确, " +
                    //             (RecordTotalCount - Records.Count) + "接收错误!";
                    //}
                    //else
                    //{
                    //    Remind = "共传输" + RecordTotalCount + "条数据, 其中" + MaxRecords.Count + "正确, " +
                    //             (RecordTotalCount - MaxRecords.Count) + "接收错误!";
                    //}
                }
                else if (infos.WstRtuSdReply.RecordStatus == 9)
                {
                    Remind = "当前第" + RecordTotalCount + "条数据错误!查询开始时间错误!";
                }
                else if (infos.WstRtuSdReply.RecordStatus == 10)
                {
                    Remind = "当前第" + RecordTotalCount + "条数据错误!查询截止时间错误!";
                }
                else if (infos.WstRtuSdReply.RecordStatus == 11)
                {
                    Remind = "当前第" + RecordTotalCount + "条数据错误!时间间隔错误!";
                }
                else if (infos.WstRtuSdReply.RecordStatus == 12)
                {
                    Remind = "当前第" + RecordTotalCount + "条数据错误!记录类型错误!";
                }
                else if (infos.WstRtuSdReply.RecordStatus == 13)
                {
                    Remind = "当前第" + RecordTotalCount + "条数据错误!记录数据错误!";
                    //if (infos.WstRtuSdReply.RecordType == 1)
                    //{
                    //    Remind = "共传输" + RecordTotalCount + "条数据, 其中" + Records.Count + "正确, " +
                    //             (RecordTotalCount - Records.Count) + "接收错误!";
                    //}
                    //else
                    //{
                    //    Remind = "共传输" + RecordTotalCount + "条数据, 其中" + MaxRecords.Count + "正确, " +
                    //             (RecordTotalCount - MaxRecords.Count) + "接收错误!";
                    //}
                }
                else
                {
                    Remind = "当前第" + RecordTotalCount + "条数据错误!未知错误!";
                }
            }
        }
Ejemplo n.º 23
0
 private void RequestOrUpdateTmlExistFaultsData1(string session, Wlst.mobile.MsgWithMobile infos)
 {
     SpeRtus.Clear();
     SpeRtus.AddRange(infos.Args.Addr);
 }
Ejemplo n.º 24
0
        private void MyAction(string session, Wlst.mobile.MsgWithMobile infos)
        {
            // Records.Clear();
            if (infos == null)
            {
                return;
            }
            if (infos.WstRtutimeRequestTimetableXReportRecord == null)
            {
                return;
            }
            if (infos.WstRtutimeRequestTimetableXReportRecord.Op == 1)
            {
                return;
            }

            var tmpitems    = new ObservableCollection <OpenCloseReportItem>();
            var tmpitemsout = new ObservableCollection <OpenCloseReportItem>();

            var tmps = (from t in infos.WstRtutimeRequestTimetableXReportRecord.Items orderby t.DateCreate select t).ToList();

            foreach (var t in tmps)
            {
                if (Wlst.Cr.CoreMims.Services.UserInfo.UserLoginInfo.D || Wlst.Cr.CoreMims.Services.UserInfo.UserLoginInfo.AreaR.Contains(t.AreaId))
                {
                    if (t.TheXTimes > 100)
                    {
                        tmpitemsout.Add(new OpenCloseReportItem(t.AreaId, t));
                    }
                    else
                    {
                        tmpitems.Add(new OpenCloseReportItem(t.AreaId, t));
                    }
                }
            }

            if (tmpitems.Count != 0)
            {
                this.Records           = tmpitems;
                this.CurrentSelectItem = this.Records.First();
                ShowOrderInfo          = "数据已反馈请查看数据,点击左边列表时将在右边列表中显示详细信息!!!";
            }
            else if (Wlst.Sr.EquipmentInfoHolding.Services.Others.IsShowTimeTableOnTime)
            {
                if (OpenCloseReportQueryWindow == null)
                {
                    OpenCloseReportQueryWindow = new OpenCloseReportQueryForWin();
                }

                var failedopen  = new ObservableCollection <OpenCloseReportRtuItem>();
                var successopen = new ObservableCollection <OpenCloseReportRtuItem>();
                var flg         = new bool();

                foreach (var t in tmpitemsout)
                {
                    failedopen.Clear();
                    successopen.Clear();
                    foreach (var tt in t.Records)
                    {
                        flg = true;
                        foreach (var ttt in tt.Records)
                        {
                            if (ttt.Value == "失败" && flg)
                            {
                                failedopen.Add(tt);
                                flg = false;
                            }
                        }

                        if (flg)
                        {
                            successopen.Add(tt);
                        }
                    }

                    t.Records.Clear();
                    foreach (var tt in failedopen)
                    {
                        t.Records.Add(tt);
                    }
                    foreach (var tt in successopen)
                    {
                        t.Records.Add(tt);
                    }
                }



                if (OpenCloseReportQueryWindow.Visibility == Visibility.Visible)
                {
                    foreach (var t in tmpitemsout)
                    {
                        ItemsOut.Add(t);
                    }
                }
                else
                {
                    ItemsOut = tmpitemsout;
                }

                OpenCloseReportQueryWindow.SetContext(ItemsOut);

                OpenCloseReportQueryWindow.Visibility = Visibility.Visible;

                OpenCloseReportQueryWindow.Show();
                OpenCloseReportQueryWindow.Focus();
            }
        }
Ejemplo n.º 25
0
        private void RequestOrUpdateTmlExistFaultsData(string session, Wlst.mobile.MsgWithMobile infos)
        {
            //todo
            var tmlInfoExchangeforUpdatetmlinfo = infos.WstFaultCurr;

            if (tmlInfoExchangeforUpdatetmlinfo == null)
            {
                return;
            }

            ////清空缓存 如果op==1 lvf 2018年8月8日10:33:54
            //if( tmlInfoExchangeforUpdatetmlinfo.Op ==1)
            //{
            //    Info.Clear();
            //    FaultNotShow.Clear();
            //}


            //如果型号发生变化 需要进一步修改
            if (tmlInfoExchangeforUpdatetmlinfo.FaultItemsAdd == null ||
                tmlInfoExchangeforUpdatetmlinfo.FaultItemsDelete == null)
            {
                return;
            }

            if (tmlInfoExchangeforUpdatetmlinfo.FaultItemsAdd.Count == 0 &&
                tmlInfoExchangeforUpdatetmlinfo.FaultItemsDelete.Count == 0)
            {
                return;
            }
            //   var lstUpdatesss = new List<int>();

            //    var lstUpdatRtus = new List<int>();

            var lstUpdateStates = new List <Tuple <int, bool> >();
            var lstaddindex     = new List <int>();
            var lstdeleteindex  = new List <int>();
            var rtus            = new List <int>();

            try
            {
                foreach (var t in tmlInfoExchangeforUpdatetmlinfo.FaultItemsAdd)
                {
                    if (rtus.Contains(t.RtuId) == false)
                    {
                        rtus.Add(t.RtuId);
                    }
                    try
                    {
                        while (Info.ContainsKey(_index) || FaultNotShow.ContainsKey(_index))
                        {
                            _index++;
                        }
                        //t.Id = _index;
                        var tmp = new FaultInfoBase(t, _index);
                        if (tmp.IsThisUserShow)
                        {
                            var ss =
                                (from tt in Info.Values
                                 where
                                 tt.FaultId == t.FaultId && tt.RtuId == t.RtuId && tt.LoopId == t.LoopId &&
                                 tt.LampId == t.LampId
                                 select tt).ToList();
                            if (ss.Count == 0)
                            {
                                //   var tmp = new Model.EquipmentFaultCnt(t);
                                Info.TryAdd(_index, tmp);
                                lstaddindex.Add(_index);
                                lstUpdateStates.Add(new Tuple <int, bool>(t.RtuId, true));
                                //if (!lstUpdatesss.Contains(t.RtuId))
                                //    lstUpdatesss.Add(t.RtuId);
                            }
                        }
                        else
                        {
                            var ss =
                                (from tt in FaultNotShow.Values
                                 where
                                 tt.FaultId == t.FaultId && tt.RtuId == t.RtuId && tt.LoopId == t.LoopId &&
                                 tt.LampId == t.LampId
                                 select tt).ToList();
                            if (ss.Count == 0)
                            {
                                FaultNotShow.TryAdd(_index, tmp);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        WriteLog.WriteLogError("Add tml faults info error:" +
                                               ex.ToString());
                    }
                }
                foreach (var t in tmlInfoExchangeforUpdatetmlinfo.FaultItemsDelete)
                {
                    if (rtus.Contains(t.RtuId) == false)
                    {
                        rtus.Add(t.RtuId);
                    }
                    try
                    {
                        var ss =
                            (from tt in Info.Values
                             where
                             tt.FaultId == t.FaultId && tt.RtuId == t.RtuId && tt.LoopId == t.LoopId &&
                             tt.LampId == t.LampId
                             select tt).ToList();

                        if (ss.Count > 0)
                        {
                            FaultInfoBase outx;
                            //  if (!lstUpdatesss.Contains(ss[0].RtuId)) lstUpdatesss.Add(ss[0].RtuId);
                            Info.TryRemove(ss[0].Id, out outx);
                            lstdeleteindex.Add(ss[0].Id);
                            lstUpdateStates.Add(new Tuple <int, bool>(t.RtuId, false));
                            break;
                        }

                        var gga =
                            (from tt in FaultNotShow.Values
                             where
                             tt.FaultId == t.FaultId && tt.RtuId == t.RtuId && tt.LoopId == t.LoopId &&
                             tt.LampId == t.LampId
                             select tt).ToList();

                        if (gga.Count > 0)
                        {
                            FaultInfoBase outx;
                            FaultNotShow.TryRemove(gga[0].Id, out outx);
                            break;
                        }
                    }
                    catch (Exception ex)
                    {
                        WriteLog.WriteLogError("Add tml faults info error:" +
                                               ex.ToString());
                    }
                }

                //如果是全部请求 不发布添加事件
                if (lstaddindex.Count > 0)
                {
                    var ar = new PublishEventArgs()
                    {
                        EventId   = EventIdAssign.EquipmentExistFaultAddId,
                        EventType = PublishEventType.Core
                    };
                    ar.AddParams(lstaddindex);
                    EventPublish.PublishEvent(ar);
                }


                if (lstdeleteindex.Count > 0)
                {
                    var ar = new PublishEventArgs()
                    {
                        EventId   = EventIdAssign.EquipementExistFaultDeleteId,
                        EventType = PublishEventType.Core
                    };
                    ar.AddParams(lstdeleteindex);
                    EventPublish.PublishEvent(ar);
                }


                //var arg = new PublishEventArgs()
                //              {
                //                  EventId = EventIdAssign.RtuErrorStateChanged,
                //                  EventType = PublishEventType.Core
                //              };
                //arg.AddParams(lstUpdateStates);
                //EventPublish.PublishEvent(arg);
                // EquipmentIsHasErrors.RtuErrorsChange(lstUpdatRtus);
                //TmlExistFaultsInfoServices.RtuErrorsChangeAttachShowError(
                //    (from t in lstUpdateStates select t.Item1).ToList());

                foreach (var l in rtus)
                {
                    var xcount = (from t in Info where t.Value.RtuId == l && t.Value.IsThisUserShow select t).Count();
                    if (Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info.ContainsKey(l) == false)
                    {
                        Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info.TryAdd(l,
                                                                                          new RunInfo(l)
                        {
                            ErrorCount = xcount
                        });
                    }
                    else
                    {
                        Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info[l].ErrorCount = xcount;
                    }
                }
                Sr.EquipmentInfoHolding.Services.RunningInfoHold.PublishEventForOut(rtus, false);

                //foreach (var l in  lstdelete )
                //{
                //    var xcount = (from t in Info where t.Value.RtuId == l && t.Value.IsThisUserShow select t).Count();
                //    if (Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info.ContainsKey(l) == false)
                //    {
                //        Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info.TryAdd(l,
                //                                                                          new RunInfo(l) { ErrorCount = xcount });
                //    }
                //    else
                //    {
                //        Wlst.Sr.EquipmentInfoHolding.Services.RunningInfoHold.Info[l].ErrorCount = xcount;
                //    }
                //}
            }
            catch (Exception ex)
            {
                WriteLog.WriteLogError("Error to update tml faults ,ex:" + ex);
            }
        }