/// <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 }); } } }
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("同步完成."); }