管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-12-20 f31782b273aeb8752b25d5467502e8ea38e083c7
1
已修改7个文件
82 ■■■■ 文件已修改
src/main/java/com/lf/server/config/InitConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/entity/all/BaseEntity.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/entity/all/StaticData.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/GdbHelper.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/mapper/all/GeomBaseMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/DataLoaderService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/show/DataLibService.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/config/InitConfig.java
@@ -96,11 +96,11 @@
    private void testBatchUpdate() {
        DlgagnpEntity d1 = new DlgagnpEntity();
        d1.setGid(56);
        d1.setGid(56L);
        d1.setGb("10");
        d1.setName("a01");
        DlgagnpEntity d2 = new DlgagnpEntity();
        d2.setGid(57);
        d2.setGid(57L);
        d2.setGb("20");
        d2.setName("a02");
src/main/java/com/lf/server/entity/all/BaseEntity.java
@@ -13,7 +13,7 @@
 */
public class BaseEntity implements Serializable {
    @TableId(type = IdType.AUTO)
    private Integer gid;
    private Long gid;
    private String eventid;
@@ -49,11 +49,11 @@
    public BaseEntity() {
    }
    public Integer getGid() {
    public Long getGid() {
        return gid;
    }
    public void setGid(Integer gid) {
    public void setGid(Long gid) {
        this.gid = gid;
    }
src/main/java/com/lf/server/entity/all/StaticData.java
@@ -92,5 +92,5 @@
    /**
     * GDB排除字段
     */
    public final static List<String> GDB_EXCLUDE_FIELDS= new ArrayList<>(Arrays.asList("geom", "objectid", "shape_leng", "shape_area"));
    public final static List<String> GDB_EXCLUDE_FIELDS= new ArrayList<>(Arrays.asList("geom", "objectid", "shape_leng", "shape_area", "serialVersionUID", "dirName", "depName", "verName", "createName", "updateName"));
}
src/main/java/com/lf/server/helper/GdbHelper.java
@@ -330,12 +330,11 @@
        Driver driver = null;
        DataSource dataSource = null;
        try {
            driver = ogr.GetDriverByName("OpenFileGDB");
            driver = ogr.GetDriverByName("FileGDB");
            if (null == driver) {
                return;
            }
            dataSource = driver.CreateDataSource(filePath);
            dataSource = driver.CreateDataSource(filePath, null);
            if (null == dataSource) {
                return;
            }
@@ -354,12 +353,12 @@
                    String className = ClassHelper.getClassName(baseMapper);
                    Class clazz = ClassHelper.getEntityClass(className);
                    Field gField = getGeomField(clazz);
                    if (null == gField) {
                    if (null == clazz) {
                        continue;
                    }
                    List<Field> fields = new ArrayList<>();
                    fields.add(getGeomField(clazz));
                    getFields(clazz, fields);
                    addLayerField(layer, fields);
@@ -454,22 +453,14 @@
     * 添加图层字段
     */
    private static void addLayerField(Layer layer, List<Field> list) {
        for (int i = 0, c = list.size(); i < c; i++) {
        for (int i = 1, c = list.size(); i < c; i++) {
            Field f = list.get(i);
            FieldDefn fd = getLayerField(f);
            int fieldType = getFieldType(f);
            FieldDefn fd = new FieldDefn(f.getName(), fieldType);
            layer.CreateField(fd, i);
        }
    }
    private static FieldDefn getLayerField(Field f ) {
        int fieldType = getFieldType(f);
        FieldDefn fd = new FieldDefn(f.getName(), fieldType);
        if (fieldType == ogr.OFTString) {
            // fd.SetWidth(100)
        }
        return fd;
    }
    /**
@@ -505,36 +496,40 @@
            Geometry geom = Geometry.CreateFromWkt(geoEntity.getGeom());
            f.SetGeometry(geom);
            for (int i = 0, c = fields.size(); i < c; i++) {
            for (int i = 1, c = fields.size(); i < c; i++) {
                Field field = fields.get(i);
                Object val = field.get(t);
                if (null == val) {
                    continue;
                }
                switch (field.getType().getName()) {
                    case "java.math.BigDecimal":
                    case "java.lang.Double":
                    case "double":
                        Double d = field.getDouble(t);
                        double d = (double) val;
                        f.SetField(i, d);
                        break;
                    case "java.lang.Long":
                    case "long":
                        Long l = field.getLong(t);
                        long l = (long) val;
                        f.SetField(i, l);
                        break;
                    case "java.lang.Integer":
                    case "int":
                        Integer n = field.getInt(t);
                        int n = (int) val;
                        f.SetField(i, n);
                        break;
                    case "java.sql.Timestamp":
                        Timestamp time = null == field.get(t) ? null : (Timestamp) field.get(t);
                        Timestamp time = (Timestamp) field.get(t);
                        setTimestamp(f, i, time);
                        break;
                    default:
                        String str = null == field.get(t) ? null : (String) field.get(t);
                        String str = (String) val;
                        f.SetField(i, str);
                        break;
                }
            }
            layer.CreateFeature(f);
        }
    }
src/main/java/com/lf/server/mapper/all/GeomBaseMapper.java
@@ -47,5 +47,5 @@
     * @return 影响行数
     */
    @Update("update ${tab} set geom = ST_GeomFromText('${wkt}') where gid = #{gid}")
    public Integer updateGeom(@Param("tab") String tab, @Param("gid") Integer gid, @Param("wkt") String wkt);
    public Integer updateGeom(@Param("tab") String tab, @Param("gid") Long gid, @Param("wkt") String wkt);
}
src/main/java/com/lf/server/service/data/DataLoaderService.java
@@ -423,7 +423,7 @@
                double y = (double) yField.get(t);
                BaseEntity baseEntity = (BaseEntity) t;
                Integer gid = baseEntity.getGid();
                Long gid = baseEntity.getGid();
                String wkt = String.format("POINT(%f %f)", x, y);
                geomBaseMapper.updateGeom(tabName, gid, wkt);
@@ -482,7 +482,7 @@
            String tabName = BaseQueryService.getTabName(geomBaseMapper);
            for (T t : list) {
                BaseEntity baseEntity = (BaseEntity) t;
                Integer gid = baseEntity.getGid();
                Long gid = baseEntity.getGid();
                Field gField = t.getClass().getDeclaredField("geom");
                gField.setAccessible(true);
src/main/java/com/lf/server/service/show/DataLibService.java
@@ -39,9 +39,20 @@
            return null;
        }
        String tempName = StringHelper.YMDHMS2_FORMAT.format(new Date());
        String tempPath = pathHelper.getTempPath(tempName);
        String filePath = tempPath + File.separator + tempName + ".gdb";
        //String tempName = StringHelper.YMDHMS2_FORMAT.format(new Date());
        //String tempPath = pathHelper.getTempPath(tempName);
        //String filePath = tempPath + File.separator + tempName + ".gdb";
        String filePath = "D:\\LF\\temp\\20221219202706\\20221219202705.gdb";
        File file = new File(filePath);
        if (!file.exists() || !file.isDirectory()) {
            file.mkdirs();
        }
        filePath = "D:\\LF\\temp\\20221219202706\\2022.gdb";
        if (file.exists() && file.isDirectory()) {
            FileHelper.deleteDir(filePath);
        }
        GdbHelper.createGdb(filePath, map);
        return null;
@@ -81,7 +92,7 @@
     */
    private QueryWrapper createWrapper(GeomBaseMapper baseMapper, String wkt) {
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.select("ST_AsText(geom) as geom");
        wrapper.select("ST_AsText(geom) as geom, *");
        Integer srid = baseQueryService.getSrid(baseMapper);
        wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", wkt, srid));