管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-03-18 cb9fbcd27a288d0c61d85fa13ff5fc8eb1f4deab
1
已修改3个文件
66 ■■■■ 文件已修改
data/db_cx.sql 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/data/PublishController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/PublishService.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/db_cx.sql
@@ -18,7 +18,7 @@
select * from lf.sys_download where position('管道基础大数据平台' in descr)>0 order by id desc;
select * from lf.sys_meta_pub; -- delete from lf.sys_meta_pub where id = 3;
select ST_AsText(geom),a.* from lf.sys_publish a; -- delete from lf.sys_publish where id = 1;
select * from lf.sys_publish a; -- delete from lf.sys_publish where id = 1;
select count(gid) from bd.b_rg20w_anna where 1=1;
select ST_AsText(geom) "geom", a.*, fn_get_fullname(a.depid, 1) depName, fn_get_fullname(a.dirid, 2) dirName, fn_uname(create_user) createName, fn_uname(update_user) updateName
src/main/java/com/lf/server/controller/data/PublishController.java
@@ -137,7 +137,7 @@
            @ApiImplicitParam(name = "entity", value = "实体类", dataType = "PubEntity", paramType = "body")
    })
    @PostMapping(value = "/insert", produces = "application/json; charset=UTF-8")
    public ResponseMsg<Integer> insertForPub(@RequestBody PubEntity entity, HttpServletRequest req) {
    public ResponseMsg<Object> insertForPub(@RequestBody PubEntity entity, HttpServletRequest req) {
        try {
            if (null == entity || null == entity.getIds() || entity.getIds().isEmpty()) {
                return fail("实体类为空或找不到元数据ID", 0);
@@ -153,7 +153,7 @@
            }
            String method = getConvertMethod(entity.getType());
            int count = publishService.postForPub(entity, method, req);
            long count = publishService.postForPub(entity, method, req);
            return success(count);
        } catch (Exception ex) {
@@ -167,12 +167,12 @@
    private String getConvertMethod(String type) throws Exception {
        switch (type) {
            case "DOM":
                return "Convert/ToTiles";
                return "/Convert/ToTiles";
            case "MPT":
            case "3DML":
                return "Convert/ToSG";
                return "/Convert/ToSG";
            case "BIM":
                return "Convert/ToTileset";
                return "/Convert/ToTileset";
            default:
                throw new Exception("数据类型不匹配");
        }
src/main/java/com/lf/server/service/data/PublishService.java
@@ -1,15 +1,25 @@
package com.lf.server.service.data;
import com.alibaba.fastjson.JSON;
import com.lf.server.entity.all.ResponseMsg;
import com.lf.server.entity.all.StaticData;
import com.lf.server.entity.ctrl.PubEntity;
import com.lf.server.entity.data.MetaEntity;
import com.lf.server.entity.data.PublishEntity;
import com.lf.server.entity.show.ExportEntity;
import com.lf.server.helper.RestHelper;
import com.lf.server.helper.StringHelper;
import com.lf.server.mapper.data.PublishMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 数据发布
@@ -17,6 +27,9 @@
 */
@Service
public class PublishService implements PublishMapper {
    @Value("${sys.exportServer}")
    private String exportServer;
    @Autowired
    PublishMapper publishMapper;
@@ -95,9 +108,44 @@
    /**
     * 发送发布请求
     */
    public int postForPub(PubEntity entity, String method, HttpServletRequest req) throws Exception {
        Thread.sleep(30000);
    public long postForPub(PubEntity entity, String method, HttpServletRequest req) throws Exception {
        Map<String, Object> map = getMapData(entity);
        return 0;
        String str = RestHelper.postForRest(exportServer + method, map);
        if (StringHelper.isEmpty(str)) {
            return 0;
        }
        ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class);
        if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) {
            return 0;
        }
        return msg.getCount();
    }
    /**
     * 获取Map数据
     */
    private Map<String, Object> getMapData(PubEntity entity) {
        Map<String, Object> map = new HashMap<>(3);
        Field[] fields = entity.getClass().getDeclaredFields();
        for (Field field : fields) {
            try {
                if ("serialVersionUID".equals(field.getName())) {
                    continue;
                }
                field.setAccessible(true);
                Object obj = field.get(entity);
                map.put(field.getName(), obj);
            } catch (Exception ex) {
                //
            }
        }
        return map;
    }
}