|
@@ -357,48 +357,17 @@ public class MdbUtil {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 判断两个List<Map<String, Object>>中的数据是否完全一致
|
|
|
|
|
- * (排除map中的geom字段和valid_flag字段的比较,针对其他字段做比较)
|
|
|
|
|
|
|
+ * 判断两个List<Map<String, Object>>中的数据是否完全一致
|
|
|
|
|
+ * (排除map中的geom字段和valid_flag字段的比较,针对其他字段值做比较)
|
|
|
|
|
+ * @param dbDataList 之前图层数据列表 (从数据库查询出来的图层数据列表)
|
|
|
|
|
+ * @param layerDataList 图层数据列表
|
|
|
|
|
+ * @return
|
|
|
*/
|
|
*/
|
|
|
- private boolean validMapSameData(List<Map<String, Object>> dataList1, List<Map<String, Object>> dataList2) {
|
|
|
|
|
- if (dataList1 == null && dataList2 == null) {
|
|
|
|
|
- return true;
|
|
|
|
|
- }
|
|
|
|
|
- if (dataList1 == null || dataList2 == null) {
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
- if (dataList1.size() != dataList2.size()) {
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- for (int i = 0; i < dataList1.size(); i++) {
|
|
|
|
|
- Map<String, Object> map1 = dataList1.get(i);
|
|
|
|
|
- Map<String, Object> map2 = dataList2.get(i);
|
|
|
|
|
|
|
+ private boolean validMapSameData(List<Map<String, Object>> dbDataList, List<Map<String, Object>> layerDataList) {
|
|
|
|
|
|
|
|
- if (map1 == null && map2 == null) continue;
|
|
|
|
|
- if (map1 == null || map2 == null) return false;
|
|
|
|
|
|
|
|
|
|
- // 获取所有唯一的键
|
|
|
|
|
- Set<String> keys = new HashSet<>(map1.keySet());
|
|
|
|
|
- keys.addAll(map2.keySet());
|
|
|
|
|
|
|
|
|
|
- for (String key : keys) {
|
|
|
|
|
- // 排除 geom 相关字段和 valid_flag 字段
|
|
|
|
|
- if ("geom".equalsIgnoreCase(key) || "wkt_geom".equalsIgnoreCase(key) || "valid_flag".equalsIgnoreCase(key)) {
|
|
|
|
|
- continue;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- Object v1 = map1.get(key);
|
|
|
|
|
- Object v2 = map2.get(key);
|
|
|
|
|
-
|
|
|
|
|
- // 使用 Objects.deepEquals 处理 null 和数组 (如 byte[])
|
|
|
|
|
- if (!Objects.deepEquals(v1, v2)) {
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
|
|
|