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/ZipHelper.java | 7 ++- data/db_fn.sql | 22 +++++------ src/main/java/com/lf/server/controller/data/DataLoaderController.java | 15 ++++++- src/main/java/com/lf/server/service/data/DataLoaderService.java | 31 ++++++++------- src/main/java/com/lf/server/extend/InsertBatchMethod.java | 10 ++++- src/main/java/com/lf/server/helper/GdbHelper.java | 35 ++++++++--------- 6 files changed, 69 insertions(+), 51 deletions(-) diff --git a/data/db_fn.sql b/data/db_fn.sql index dc71fd9..c634d60 100644 --- a/data/db_fn.sql +++ b/data/db_fn.sql @@ -339,8 +339,9 @@ select ST_AsText(geom) from bd.dlg_25w_resa limit 1; -- MultiLineString MultiPolygon Point -select GeometryType(geom) from bd.dlg_25w_boul; -select st_srid(geom) from bd.dlg_25w_boul limit 1; +select GeometryType(geom) from bd.dlg_25w_boul where gid=20; +select st_srid(geom) from bd.dlg_25w_boul where gid=20 limit 1; +select ST_AsText(geom) from bd.dlg_agnp where gid=20; select * from lf.sys_dict where ns='bd' and tab='dlg_25w_boul' and field='geom'; select * from lf.sys_meta; -- delete from lf.sys_meta; @@ -348,17 +349,14 @@ select * from lf.sys_meta_file a where metaid in (99,100,101) alter sequence bd.dlg_agnp_gid_seq restart with 4000; -select * from bd.dlg_agnp; +select max(gid) from bd.dlg_agnp; +--to_char(now(),'yyyy-mm-dd hh24:MI:SS') +select create_time,to_char(create_time,'yyyy-mm-dd hh24:mi:ss') from lf.sys_menu where id=1; -select tab,count(*) from lf.sys_dict d where field='classes' group by tab order by tab - - - - - - - - +select * from bd.dlg_25w_boul where gid<11; -- delete from bd.dlg_25w_boul where gid>10; alter sequence bd.dlg_25w_boul_gid_seq restart with 20; +select * from bd.dlg_25w_resa where gid<12; -- delete from bd.dlg_25w_resa where gid>11; alter sequence bd.dlg_25w_resa_gid_seq restart with 20; +select * from bd.dlg_agnp where gid<13; -- delete from bd.dlg_agnp where gid>12; alter sequence bd.dlg_agnp_gid_seq restart with 20; +select gb,name,classes,pinyin,pac,bsm,geom,eventid,dirid,depid,verid,createtime,createuser,updateuser,updatetime from bd.dlg_agnp diff --git a/src/main/java/com/lf/server/controller/data/DataLoaderController.java b/src/main/java/com/lf/server/controller/data/DataLoaderController.java index 21fdafe..1317a43 100644 --- a/src/main/java/com/lf/server/controller/data/DataLoaderController.java +++ b/src/main/java/com/lf/server/controller/data/DataLoaderController.java @@ -162,12 +162,21 @@ @SysLog() @ApiOperation(value = "鏌ヨ琛ㄤ腑鏁版嵁") @ApiImplicitParams({ - @ApiImplicitParam(name = "metaid", value = "鍏冩暟鎹甀D", dataType = "Integer", paramType = "1") + @ApiImplicitParam(name = "id", value = "鍏冩暟鎹甀D", dataType = "Integer", paramType = "1") }) @GetMapping(value = "/selectDbData") - public ResponseMsg<Object> selectDbData(Integer metaid) { + public ResponseMsg<Object> selectDbData(Integer id) { try { - // + if (null == id || id < 0) { + return fail("鍏冩暟鎹甀D涓嶈兘涓虹┖鎴栧皬浜�0", null); + } + + MetaEntity meta = metaService.selectById(id); + if (null == meta || null == meta.getTab() || meta.getTab().indexOf(".") < 0) { + return fail("鎵句笉鍒板厓鏁版嵁淇℃伅", null); + } + + String entity = meta.getTab().split(".")[1].replace("_", "").toLowerCase(); return success(null); } catch (Exception ex) { diff --git a/src/main/java/com/lf/server/extend/InsertBatchMethod.java b/src/main/java/com/lf/server/extend/InsertBatchMethod.java index ec2d00a..06a1971 100644 --- a/src/main/java/com/lf/server/extend/InsertBatchMethod.java +++ b/src/main/java/com/lf/server/extend/InsertBatchMethod.java @@ -8,12 +8,18 @@ import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.SqlSource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * 鎵归噺鎻掑叆鏂规硶 * @author WWW */ @SuppressWarnings("ALL") public class InsertBatchMethod extends AbstractMethod { + private static List<String> excludeFields = new ArrayList<>(Arrays.asList("gid", "objectid", "updateuser", "updatetime", "shape_leng", "shape_area")); + /** * insert into user(id, name, age) values (1, "a", 17), (2, "b", 18); * <script> @@ -41,7 +47,7 @@ // fieldSql.append(tableInfo.getKeyColumn()).append(",") // tableInfo.getFieldList().forEach(x -> fieldSql.append(x.getColumn()).append(",")) for (TableFieldInfo f : tableInfo.getFieldList()) { - if (GdbHelper.excludeFields.contains(f.getColumn())) { + if (excludeFields.contains(f.getColumn())) { continue; } @@ -61,7 +67,7 @@ // valueSql.append("#{item.").append(tableInfo.getKeyProperty()).append("},") // tableInfo.getFieldList().forEach(x -> valueSql.append("#{item.").append(x.getProperty()).append("},")) for (TableFieldInfo f : tableInfo.getFieldList()) { - if (GdbHelper.excludeFields.contains(f.getColumn())) { + if (excludeFields.contains(f.getColumn())) { continue; } 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: diff --git a/src/main/java/com/lf/server/helper/ZipHelper.java b/src/main/java/com/lf/server/helper/ZipHelper.java index 3f1f8fa..9522053 100644 --- a/src/main/java/com/lf/server/helper/ZipHelper.java +++ b/src/main/java/com/lf/server/helper/ZipHelper.java @@ -30,9 +30,13 @@ public static boolean unzip(String filePath, String zipDir) { ZipFile zipFile = null; try { + File dir = new File(zipDir); + if (!dir.exists() || !dir.isDirectory()) { + dir.mkdirs(); + } + int count; zipFile = new ZipFile(filePath); - Enumeration e = zipFile.entries(); while (e.hasMoreElements()) { ZipEntry entry = (ZipEntry) e.nextElement(); @@ -47,7 +51,6 @@ BufferedInputStream is = new BufferedInputStream(zipFile.getInputStream(entry)); FileOutputStream fos = new FileOutputStream(zipDir + File.separator + entry.getName()); BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER_SIZE); - while ((count = is.read(BUFFER, 0, BUFFER_SIZE)) != -1) { dest.write(BUFFER, 0, count); } diff --git a/src/main/java/com/lf/server/service/data/DataLoaderService.java b/src/main/java/com/lf/server/service/data/DataLoaderService.java index efe5704..6229f84 100644 --- a/src/main/java/com/lf/server/service/data/DataLoaderService.java +++ b/src/main/java/com/lf/server/service/data/DataLoaderService.java @@ -242,11 +242,11 @@ case "shp": case "gdb": case "mdb": - insertDb(type, temp, mf, tab); + insertDb(type, temp, entity, mf, tab); break; // case "xls": default: - insertXls(temp, mf, tab); + insertXls(temp, entity, mf, tab); break; } if (0 == tab.getRows()) { @@ -354,7 +354,7 @@ /** * 鎻掑叆Excel */ - private void insertXls(String root, MetaFileEntity mf, TabMapperEntity tab) { + private void insertXls(String root, MetaEntity me, MetaFileEntity mf, TabMapperEntity tab) { BasicMapper basicMapper = ClassHelper.getBasicMapper(tab.getEntity()); if (null == basicMapper) { return; @@ -371,7 +371,7 @@ if (list.isEmpty()) { return; } - setCreateInfo(list, mf); + setCreateInfo(list, me); int rows = 0; for (int i = 0, c = list.size(); i < c; i++) { @@ -388,16 +388,19 @@ /** * 璁剧疆鍒涘缓淇℃伅 */ - private <T> void setCreateInfo(List<T> list, MetaFileEntity mf) { + private <T> void setCreateInfo(List<T> list, MetaEntity me) { try { - for (T t : list) { - Field cuField = t.getClass().getDeclaredField("createuser"); - cuField.setAccessible(true); - cuField.set(t, mf.getCreateUser()); + if (!(list.get(0) instanceof BaseEntity)) { + return; + } - Field ctField = t.getClass().getDeclaredField("createtime"); - ctField.setAccessible(true); - ctField.set(t, mf.getCreateTime()); + for (T t : list) { + BaseEntity be = (BaseEntity) t; + be.setCreateuser(me.getCreateUser()); + be.setCreatetime(me.getCreateTime()); + be.setDirid(me.getDirid()); + be.setDepid(me.getDepid()); + be.setVerid(me.getVerid()); } } catch (Exception ex) { log.error(ex.getMessage(), ex); @@ -433,7 +436,7 @@ /** * 鎻掑叆DB */ - private void insertDb(String type, String root, MetaFileEntity mf, TabMapperEntity tab) { + private void insertDb(String type, String root, MetaEntity me, MetaFileEntity mf, TabMapperEntity tab) { BasicMapper basicMapper = ClassHelper.getBasicMapper(tab.getEntity()); if (null == basicMapper) { return; @@ -464,7 +467,7 @@ if (null == list || list.isEmpty()) { return; } - setCreateInfo(list, mf); + setCreateInfo(list, me); int rows = basicMapper.insertBatch(list); tab.setTab(tabName); -- Gitblit v1.9.3