Exemple #1
0
        /// <summary>
        /// 按表逐个更新属性
        /// </summary>
        /// <param name="CurPropertyObj"></param>
        /// <param name="rdt"></param>
        /// <param name="g3e_fno"></param>
        /// <param name="flag">是否是批量修改公共属性</param>
        private void RefAttribute(XProps CurPropertyObj, RequiredDevTables rdt, int g3e_fno, bool flag)
        {
            var tablename = string.Empty;

            try
            {
                if (rdt.ComObj != null)
                {
                    tablename = rdt.ComObj.GetType().Name;
                    GenerateHelper.PartialCopyFromCAD(CurPropertyObj, rdt.ComObj, g3e_fno);
                    if (GenerateHelper.Atff.com != null && rdt.ComObj.CompareProperties(GenerateHelper.Atff.com).Any())
                    {
                        if (rdt.ComObj.EntityState == EntityState.None)
                        {
                            rdt.ComObj.EntityState = EntityState.Update;
                        }
                        DBManager.Instance.Update(rdt.ComObj);
                    }
                }
                if (!flag)
                {
                    #region  如果是批量修改公共属性表就只针对公共属性表做修改别的表不处理
                    if (rdt.SelfObj != null)
                    {
                        tablename = rdt.SelfObj.GetType().Name;
                        GenerateHelper.PartialCopyFromCAD(CurPropertyObj, rdt.SelfObj, g3e_fno);
                        if (GenerateHelper.Atff.self != null && rdt.SelfObj.CompareProperties(GenerateHelper.Atff.self).Any())
                        {
                            if (rdt.SelfObj.EntityState == EntityState.None)
                            {
                                rdt.SelfObj.EntityState = EntityState.Update;
                            }
                            DBManager.Instance.Update(rdt.SelfObj);
                        }
                    }
                    if (rdt.ConnectObj != null)
                    {
                        tablename = rdt.ConnectObj.GetType().Name;
                        GenerateHelper.PartialCopyFromCAD(CurPropertyObj, rdt.ConnectObj, g3e_fno);
                        if (GenerateHelper.Atff.connectivity != null &&
                            rdt.ConnectObj.CompareProperties(GenerateHelper.Atff.connectivity).Any())
                        {
                            if (rdt.ConnectObj.EntityState == EntityState.None)
                            {
                                rdt.ConnectObj.EntityState = EntityState.Old_Nal_Nal;
                            }
                            DBManager.Instance.Update(rdt.ConnectObj);
                        }
                    }
                    if (rdt.GnwzObj != null)
                    {
                        tablename = rdt.GnwzObj.GetType().Name;
                        GenerateHelper.PartialCopyFromCAD(CurPropertyObj, rdt.GnwzObj, g3e_fno);
                        if (g3e_fno == 199)
                        {
                            rdt.GnwzObj.GNWZ_SSTJ = rdt.ComObj != null ? rdt.ComObj.SBMC : null;
                        }
                        if (g3e_fno == 198)
                        {
                            rdt.GnwzObj.MC = rdt.ComObj != null ? rdt.ComObj.SBMC : null;
                        }
                        if (GenerateHelper.Atff.gnwz != null && rdt.GnwzObj.CompareProperties(GenerateHelper.Atff.gnwz).Any())
                        {
                            if (rdt.GnwzObj.EntityState == EntityState.None)
                            {
                                rdt.GnwzObj.EntityState = EntityState.Update;
                            }
                            DBManager.Instance.Update(rdt.GnwzObj);
                        }
                    }
                    #endregion
                }
                SymbolLabel.ShowSymbolLabel(rdt.Fno, rdt.Fid); //更新的时候自动更新标注
            }
            catch (UpdataArgumentException ee)
            {
                throw new UpdataArgumentException(tablename, ee.FieldName);
            }
            finally
            {
                if (RefreshFeatureAttributeEvent != null)
                {
                    RefreshFeatureAttributeEvent(null, new RefreshAttributeArgs
                    {
                        Rdt = rdt
                    });
                }
            }
        }
Exemple #2
0
        private void btSync_Click(object sender, EventArgs e)
        {
            btSync.Enabled = false;
            lbShowSyncData.Refresh();
            LoadNecessarySyncDev();
            if (lbShowSyncData.Items.Count > 0)
            {
                lbShowSyncData.Items.Clear();
            }
            lbShowSyncData.Items.Add("开始同步");
            lbShowSyncData.Refresh();
            WebClient webClient = new WebClient();
            int       index     = 1;//上面已经占用了一个位置

            foreach (var item in recordSyncData)
            {
                try
                {
                    string syncDataUrl    = string.Empty;
                    var    syncDataTables = DevEventHandler.GetDevTables(item.G3E_FNO, item.G3E_FID);
                    if (syncDataTables == null)
                    {
                        var str = string.Format("FID={0}的设备数据获取失败", item.G3E_FID);
                        recorDictionary.Add(index, new ItemOfData()
                        {
                            Fid = item.G3E_FID, Index = index, SyncResult = str, RDT = null
                        });
                        lbShowSyncData.Items.Add(str);
                        continue;
                    }
                    if (CommonHelp.Instance.IsInsertDevice(item.G3E_FNO, item.G3E_FID))
                    {
                        syncDataUrl =
                            string.Format(
                                " http://localhost:9090/emmis/equipGisMappingTemp/cadRestful/synchAttributeToCAD.gis?g3e_fid=a{0}&g3e_fno={1}",
                                item.G3E_FID, item.G3E_FNO);
                    }
                    else
                    {
                        syncDataUrl =
                            string.Format(
                                " http://localhost:9090/emmis/equipGisMappingTemp/cadRestful/synchAttributeToCAD.gis?g3e_fid={0}&g3e_fno={1}",
                                item.G3E_FID, item.G3E_FNO);
                    }
                    byte[] redata = new byte[] { };
                    try
                    {
                        redata = webClient.DownloadData(syncDataUrl);
                    }
                    catch (WebException ex)
                    {
                        lbShowSyncData.Items.Add("下载台账数据失败");
                        return;
                    }
                    string syncRes = System.Text.Encoding.UTF8.GetString(redata);
                    if (string.IsNullOrEmpty(syncRes.Trim()))
                    {
                        var str = string.Format("FID={0}的设备缺少台账录入...", item.G3E_FID);
                        recorDictionary.Add(index, new ItemOfData()
                        {
                            Fid = item.G3E_FID, Index = index, SyncResult = str, RDT = syncDataTables
                        });
                        lbShowSyncData.Items.Add(str);
                        continue;
                    }
                    var tzValues = GetSyncData(syncRes);
                    //开始同步数据
                    if (tzValues.Any())
                    {
                        ShowSyncResultToListBox(index, tzValues, syncDataTables);
                        if (item.G3E_FNO == 148 && syncDataTables.GnwzObj != null)
                        {
                            var azwzValue = GenerateHelper.GetCurrentEntityAzwzByFidAndFno(syncDataTables.Fid, syncDataTables.Fno);
                            if (azwzValue != null && azwzValue.ToString().Equals("台架"))
                            {
                                if (syncDataTables.GnwzObj.HasAttribute("GNWZ_SSTJ"))
                                {
                                    var  tj    = syncDataTables.GnwzObj.GNWZ_SSTJ;
                                    long tjFid = 0;
                                    if (long.TryParse(tj, out tjFid))
                                    {
                                        var value = DevEventHandler.GetDevTables(199, tjFid);
                                        ShowSyncResultToListBox(index, tzValues, value);
                                    }
                                }
                            }
                        }
                    }
                    //更新标注
                    SymbolLabel.ShowSymbolLabel(item.G3E_FNO, item.G3E_FID);
                }
                catch
                {
                }
                finally
                {
                    index++;
                    lbShowSyncData.Refresh();
                }
            }
            lbShowSyncData.Items.Add("同步完成.");
        }