From 6e15fb58d1530c5dc28be872f950b2d5758246f8 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期日, 27 十一月 2022 08:50:48 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/helper/GdbHelper.java | 35 +++++++++++++++++------------------ 1 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/lf/server/helper/GdbHelper.java b/src/main/java/com/lf/server/helper/GdbHelper.java index 115776a..707110f 100644 --- a/src/main/java/com/lf/server/helper/GdbHelper.java +++ b/src/main/java/com/lf/server/helper/GdbHelper.java @@ -18,7 +18,7 @@ public class GdbHelper { private final static Log log = LogFactory.getLog(GdbHelper.class); - public static List<String> excludeFields = new ArrayList<>(Arrays.asList("gid", "shape_leng")); + private static List<String> excludeFields = new ArrayList<>(Arrays.asList("gid", "objectid", "dirid", "depid", "verid","createtime", "createuser", "updateuser", "updatetime", "shape_leng", "shape_area")); /** * 閿�姣佽祫婧� @@ -139,11 +139,10 @@ public static <T> void readLayer(Class clazz, Layer layer, List<T> list) { try { Field gField = getGeomField(clazz); - Map<Integer, Field> map = getFieldMapper(clazz, layer); - if (map.size() == 0) { - return; - } - if (1 > layer.GetFeatureCount()) { + + Map<Integer, Field> map = new HashMap<>(3); + getFieldMapper(clazz, layer, map); + if (map.isEmpty() || 0 == layer.GetFeatureCount()) { return; } @@ -182,16 +181,14 @@ /** * 鑾峰彇瀛楁鏄犲皠 */ - private static <T> Map<Integer, Field> getFieldMapper(Class clazz, Layer layer) { - Map<Integer, Field> map = new HashMap<>(3); - + private static <T> void getFieldMapper(Class clazz, Layer layer, Map<Integer, Field> map) { try { FeatureDefn fd = layer.GetLayerDefn(); for (int i = 0, count = fd.GetFieldCount(); i < count; i++) { FieldDefn fieldDefn = fd.GetFieldDefn(i); try { String name = fieldDefn.GetName().toLowerCase(); - if (excludeFields.contains(name)){ + if (excludeFields.contains(name)) { continue; } @@ -203,11 +200,13 @@ // } } + + if ("java.lang.Object" != clazz.getSuperclass().getName()) { + getFieldMapper(clazz.getSuperclass(), layer, map); + } } catch (Exception ex) { // } - - return map; } /** @@ -234,21 +233,21 @@ * 璁剧疆鍊� */ private static <T> void setValue(T t, Feature f, Field field, Integer i) throws Exception { - switch (field.getType().toString()) { - case "class java.math.BigDecimal": - case "class java.lang.Double": + switch (field.getType().getName()) { + case "java.math.BigDecimal": + case "java.lang.Double": case "double": field.set(t, f.GetFieldAsDouble(i)); break; - case "class java.lang.Long": + case "java.lang.Long": case "long": field.set(t, f.GetFieldAsInteger64(i)); break; - case "class java.lang.Integer": + case "java.lang.Integer": case "int": field.set(t, f.GetFieldAsInteger(i)); break; - case "class java.sql.Timestamp": + case "java.sql.Timestamp": field.set(t, getTimestamp(f, i)); break; default: -- Gitblit v1.9.3