From b81c466cd32be4307e3df35312a492d882d46b29 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 30 六月 2023 20:27:53 +0800 Subject: [PATCH] 解决CPT数据重复发布失败 --- ExportMap/cs/SGUtils.cs | 41 +++++++++++++++++++++++++++++++++++++---- ExportMap/export.html | 2 +- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/ExportMap/cs/SGUtils.cs b/ExportMap/cs/SGUtils.cs index 21d1d7e..37b7c31 100644 --- a/ExportMap/cs/SGUtils.cs +++ b/ExportMap/cs/SGUtils.cs @@ -73,12 +73,14 @@ Tools.SetIsModel(args, list); MoveFiles(list); - string names = GetNames(list); + //string names = GetNames(list); + string sql = getSql(list); for (int i = 0; i < 61; i++) { Thread.Sleep(3000); - List<SpatialItem> items = SelectItems(names); + //List<SpatialItem> items = SelectItems(names); + List<SpatialItem> items = SelectItemsBySql(sql); if (null == items || items.Count == 0) continue; return InsertInto(list, items, args); @@ -87,6 +89,35 @@ return null; } + /// <summary> + /// 鑾峰彇鏌ヨSQL + /// </summary> + private string getSql(List<SysMeta> metas) + { + List<string> list = new List<string>(); + foreach (SysMeta meta in metas) + { + list.Add("Name like '%_" + meta.name + "'"); + } + + string filters = string.Join(" or ", list); + + + return string.Format("select id, Name, RelativePath, LayerName, DataSourceId, Description from SpatialItems where {0} order by id desc", filters); + } + + /// <summary> + /// 鏌ヨSG鏁版嵁椤� + /// </summary> + private List<SpatialItem> SelectItemsBySql(string sql) + { + DataTable dt = SQLiteHelper.GetDataTable(sql); + List<SpatialItem> list = ModelHandler.FillModel<SpatialItem>(dt); + + return list; + } + + #region 搴熷純 * /// <summary> /// 鏌ヨSG鏁版嵁椤� /// </summary> @@ -113,6 +144,7 @@ return string.Join(",", list); } + #endregion /// <summary> /// 绉婚櫎绌烘枃浠� @@ -155,8 +187,9 @@ List<int> ids = new List<int>(); foreach (SysMeta meta in list) { - IEnumerable<SpatialItem> iterator = from item in items where item.Name.Equals(meta.id + "_" + meta.name) select item; - if (null == iterator) return ids; + //IEnumerable<SpatialItem> iterator = from item in items where item.Name.Equals(meta.id + "_" + meta.name) select item; + IEnumerable<SpatialItem> iterator = from item in items where item.Name.Contains("_" + meta.name) select item; + if (null == iterator || 0 == iterator.Count()) return ids; meta.verid = iterator.First().id; int pubid = InsertToDB(meta, args); diff --git a/ExportMap/export.html b/ExportMap/export.html index fc56e07..2b83814 100644 --- a/ExportMap/export.html +++ b/ExportMap/export.html @@ -118,7 +118,7 @@ // 娴嬭瘯SG function toSG() { - var data = { token: token, ids: [1523, 1525], depcode: "000305", dircode: "0102", userId: 1 }; + var data = { token: token, ids: [10516], depcode: "000305", dircode: "0102", userId: 1 }; // [1523, 1525] ajax("Convert/ToSG", "POST", JSON.stringify(data), null, null, function (rs) { alert("code = " + rs.code + ", msg = " + rs.msg + ", result = " + rs.result); console.log(rs); -- Gitblit v1.9.3