@xingjs@20250103@优化完善文件上传接口,解决文件上传报错和地址重复问题;优化文件创建模拟过程,添加绘制区域范围检测
已修改1个文件
64 ■■■■ 文件已修改
src/main/java/com/se/simu/controller/SimuController.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/se/simu/controller/SimuController.java
@@ -23,10 +23,7 @@
import javax.annotation.Resource;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
@Api(tags = "仿真管理")
@Slf4j
@@ -213,35 +210,40 @@
        String floodFile = vo.getFloodFile();
        log.info("范围文件地址:{}", floodFile);
        try {
            // 判断地址不为空
            if (StringUtils.isEmpty(floodFile)) {
                return fail("范围文件地址不能为空", false);
            } else {
                // 获取文件的后缀名
                String fileName = floodFile.substring(floodFile.lastIndexOf("."));
                // 判断后缀名是否为.shp
                if (!fileName.equalsIgnoreCase(".shp")) {
                    return fail("范围文件格式不正确", false);
            // 判断是否绘制区域
            if (!StringUtils.isEmpty(vo.getMaxx().toString()) && !Objects.isNull(vo.getMaxx())) {
                rangeVerify(vo.getMinx(), vo.getMaxx(), vo.getMiny(), vo.getMaxy());
                log.info("绘制区域范围验证通过!");
            } else
                // 判断地址不为空
                if (StringUtils.isEmpty(floodFile)) {
                    return fail("范围文件地址不能为空", false);
                } else {
                    // 1 读取shp文件,获取范围值
                    JSONObject jsonObject = ShpToolUtils.readShp(floodFile);
                    // 2 获取jsonObject中的范围值
                    Double minX = jsonObject.getDouble("minY");
                    Double maxX = jsonObject.getDouble("maxY");
                    Double minY = jsonObject.getDouble("minX");
                    Double maxY = jsonObject.getDouble("maxX");
                    // 3 判断范围值是否为空
                    // vo.setMinx(jsonObject.getDouble("minX"));
                    // vo.setMaxx(jsonObject.getDouble("maxX"));
                    // vo.setMiny(jsonObject.getDouble("minY"));
                    // vo.setMaxy(jsonObject.getDouble("maxY"));
                    vo.setMinx(jsonObject.getDouble("minY"));
                    vo.setMaxx(jsonObject.getDouble("maxY"));
                    vo.setMiny(jsonObject.getDouble("minX"));
                    vo.setMaxy(jsonObject.getDouble("maxX"));
                    rangeVerify(minX,maxX, minY, maxY);
                    // 获取文件的后缀名
                    String fileName = floodFile.substring(floodFile.lastIndexOf("."));
                    // 判断后缀名是否为.shp
                    if (!fileName.equalsIgnoreCase(".shp")) {
                        return fail("范围文件格式不正确", false);
                    } else {
                        // 1 读取shp文件,获取范围值
                        JSONObject jsonObject = ShpToolUtils.readShp(floodFile);
                        // 2 获取jsonObject中的范围值
                        Double minX = jsonObject.getDouble("minY");
                        Double maxX = jsonObject.getDouble("maxY");
                        Double minY = jsonObject.getDouble("minX");
                        Double maxY = jsonObject.getDouble("maxX");
                        // 3 判断范围值是否为空
                        // vo.setMinx(jsonObject.getDouble("minX"));
                        // vo.setMaxx(jsonObject.getDouble("maxX"));
                        // vo.setMiny(jsonObject.getDouble("minY"));
                        // vo.setMaxy(jsonObject.getDouble("maxY"));
                        vo.setMinx(jsonObject.getDouble("minY"));
                        vo.setMaxx(jsonObject.getDouble("maxY"));
                        vo.setMiny(jsonObject.getDouble("minX"));
                        vo.setMaxy(jsonObject.getDouble("maxX"));
                        rangeVerify(minX, maxX, minY, maxY);
                    }
                }
            }
            // todo: 解析范围文件 根据不同的的格式文件进行不同的解析,获取需要计算的范围值
            //  上传格式:.shp/.tiff/.img/.geojson
            //  重新给vo赋值