管道基础大数据平台系统开发-【后端】-Server
13693261870
2023-09-18 830461f183a5e1d24cc96dc9b74ab29573d4d9ae
添加kml数据入库功能
已修改1个文件
44 ■■■■ 文件已修改
src/main/java/com/lf/server/service/data/UploadService.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/UploadService.java
@@ -701,8 +701,9 @@
            return;
        }
        String stage = getPipeStage(tabName);
        String name = FileHelper.getName(mf.getPath());
        List<?> list = createKmlEntity(clazz, wkt, name);
        List<?> list = createKmlEntity(clazz, wkt, name, mf, stage);
        if (null == list || list.isEmpty()) {
            return;
        }
@@ -720,17 +721,15 @@
    /**
     * 创建KML实体类
     */
    private <T> List<T> createKmlEntity(Class clazz, String wkt, String name) {
    private <T> List<T> createKmlEntity(Class clazz, String wkt, String name, MetaFileEntity mf, String stage) {
        try {
            T t = (T) clazz.newInstance();
            Field gField = clazz.getSuperclass().getDeclaredField("geom");
            gField.setAccessible(true);
            gField.set(t, null == wkt ? "null" : String.format("ST_GeomFromText('%s')", wkt));
            Field pField = clazz.getDeclaredField("pipename");
            pField.setAccessible(true);
            pField.set(t, name);
            setEntityVal(clazz.getSuperclass(), t, "geom", null == wkt ? "null" : String.format("ST_GeomFromText('%s')", wkt));
            setEntityVal(clazz, t, "pipename", name);
            setEntityVal(clazz, t, "projname", name);
            setEntityVal(clazz, t, "medium", mf.getMedium());
            setEntityVal(clazz, t, "pipestage", stage);
            List<T> list = new ArrayList<>();
            list.add(t);
@@ -741,4 +740,31 @@
            return null;
        }
    }
    /**
     * 设置实体值
     */
    private <T> void setEntityVal(Class clazz, T t, String field, String val) throws Exception {
        Field pField = clazz.getDeclaredField(field);
        pField.setAccessible(true);
        pField.set(t, val);
    }
    /**
     * 获取管道阶段
     */
    private String getPipeStage(String tab) {
        switch (tab) {
            case "si.pl_pipeline_f":
                return "可研阶段";
            case "si.pl_pipeline_b":
                return "初设阶段";
            case "si.pl_pipeline_d":
                return "施工图阶段";
            case "si.pl_pipeline_a":
                return "竣工图阶段";
            default:
                return null;
        }
    }
}