Browse Source

修编删除和相关附件下载完善
解压zip采用ProcessBuilder
一张图资源目录兼容supermap参数格式

wanger 3 tháng trước cách đây
mục cha
commit
fff3554605

+ 41 - 14
onemap-common/onemap-common-core/src/main/java/com/onemap/common/core/utils/UnPackageUtils.java

@@ -31,7 +31,29 @@ public class UnPackageUtils {
             String system = getSystem();
             String command = "";
             if (system.equals("windows")) {
-                command = String.format("\"%s\" x \"%s\" \"%s\"", "C:\\Program Files\\WinRAR\\WinRAR.exe", zipFile.getAbsolutePath(), destPath);
+                command = String.format("\"%s\" x \"%s\"  -o+ -p-  \"%s\"", "C:\\Program Files\\WinRAR\\WinRAR.exe", zipFile.getAbsolutePath(), destPath);
+                // 构建命令
+                ProcessBuilder processBuilder = new ProcessBuilder(
+                        "C:\\Program Files\\WinRAR\\WinRAR.exe", "x", zipFile.getAbsolutePath(), destPath
+                );
+                processBuilder.redirectErrorStream(true);
+                // 启动进程
+                Process process = processBuilder.start();
+                // 读取输出
+                BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
+                String line;
+                while ((line = reader.readLine()) != null) {
+                    System.out.println(line);
+                }
+                // 等待命令执行完成
+                int exitCode = process.waitFor();
+                if (exitCode == 0) {
+                    System.out.println("unPackZip Success: " + exitCode);
+                } else {
+                    System.out.println("unPackZip Error: " + exitCode);
+                }
+                System.out.println("unPackZip End");
+                return;
             } else {
                 command = String.format("%s \"%s\" -d \"%s\"", "sudo unzip", zipFile.getAbsolutePath(), destPath);
                 // 创建ProcessBuilder对象
@@ -58,19 +80,24 @@ public class UnPackageUtils {
                 System.out.println("Exited with code: " + exitCode);
                 return;
             }
-            System.out.println("开始执行解压命令");
-            System.out.println(command);
-            // 执行命令
-            Process process = Runtime.getRuntime().exec(command);
-            InputStream inputStream = process.getInputStream();
-            // 读取输出
-            int ch;
-            while ((ch = inputStream.read()) != -1) {
-                System.out.print((char) ch);
-            }
-            int exitCode = process.waitFor();
-            System.out.println("Exit code: " + exitCode);
-            System.out.println("结束执行解压命令");
+//            System.out.println("开始执行解压命令");
+//            System.out.println(command);
+//            // 执行命令
+//            Process process = Runtime.getRuntime().exec(command);
+//            InputStream inputStream = process.getInputStream();
+//            // 读取输出
+//            int ch;
+//            while ((ch = inputStream.read()) != -1) {
+//                System.out.print((char) ch);
+//            }
+//            int exitCode = process.waitFor();
+//            if (exitCode == 0) {
+//                System.out.println("unPackZip Success: " + exitCode);
+//            } else {
+//                System.out.println("unPackZip Error: " + exitCode);
+//            }
+//            System.out.println("Exit code: " + exitCode);
+//            System.out.println("结束执行解压命令");
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 1 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/FzxzChscDTO.java

@@ -92,6 +92,7 @@ public class FzxzChscDTO {
                 || StringUtils.isEmpty(ydbpzbwj)
                 || StringUtils.isEmpty(sbdw)
                 || StringUtils.isEmpty(lxdh)
+                || sbsj == null
         ) {
             return false;
         }

+ 1 - 9
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/ChscServiceImpl.java

@@ -299,15 +299,7 @@ public class ChscServiceImpl implements IChscService {
             String txtjson = StringUtils.readJSONFile(geojsonPath);
             return WebResult.success("操作成功", txtjson);
         }
-
-//        if (type == EnumJgType.ShpFile) {
-//            ZipHelper.ZipDir(Path.GetDirectoryName(shpfile), zipfile);
-//            return FileManage.Instance.ToRelativePath(zipfile);
-//        }
-//        if (!File.Exists(jsonfile))
-//            throw new UseArgumentException("导出GeoJson数据异常");
-//        return File.ReadAllText(jsonfile);
-        return null;
+        return WebResult.error("操作失败", "不支持的type参数值");
     }
 
     public void checkAndMakeFolder(String path) {

+ 1 - 2
onemap-modules/onemap-api/src/main/java/com/onemap/api/controller/ZhxzController.java

@@ -95,8 +95,7 @@ public class ZhxzController extends BaseController {
     /**
      * 接口9:生成选择报告
      *
-     * @param bsm   项目标识码
-     * @param xzbsm 所选择的意向地块标识码
+     * @param params 生成选择报告参数
      * @return
      */
     @PostMapping("/CreateXzbg")

+ 11 - 0
onemap-modules/onemap-api/src/main/java/com/onemap/api/domain/tCgglRevise.java

@@ -25,6 +25,17 @@ public class tCgglRevise {
     private String remark;
     private String instid;
 
+    private String uuid;
+
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
+
     public String getId() {
         return id;
     }

+ 1 - 0
onemap-modules/onemap-api/src/main/java/com/onemap/api/service/impl/ResultSearchServiceImpl.java

@@ -186,6 +186,7 @@ public class ResultSearchServiceImpl implements ResultSearchService {
             dto.setXzqdm(user.getXzqdm());
             dto.setXzqmc(user.getXzqmc());
             dto.setShzt("0");
+            dto.setUuid(StringUtils.getUUID());
 //        dto.setShyh("");
 //        dto.setShsj(new Date());
 //        dto.setPlantype("村庄规划");

+ 23 - 13
onemap-modules/onemap-api/src/main/java/com/onemap/api/service/impl/ResultsServiceImpl.java

@@ -218,6 +218,9 @@ public class ResultsServiceImpl implements ResultsService {
         } else if (StringUtils.isEmpty(filename)) {
             return RequestResult.error("文件名称不能为空");
         }
+        System.out.println("filename===" + completeParams.getFilename());
+        System.out.println("fileName===" + completeParams.getFileName());
+        System.out.println("filenamelast===" + filename);
         TSysOpenUser user = getOpenUser();
         if (user == null) {
             return RequestResult.error("未获取到登录用户信息");
@@ -254,7 +257,7 @@ public class ResultsServiceImpl implements ResultsService {
 //            qxsbcg.setRwzt(rwzt.getHbsb());
             qxcgsbrwMapper.update(qxsbcg, sbrwwrapper);
 //            deleteQxsbrw(md5);
-            return RequestResult.error("1------合包失败,合包失败---");
+            return RequestResult.error("1:合包失败");
         }
         File targetfile = new File(targetfilepath);
 //        String fileMd5 = getMD5(targetfile);
@@ -275,20 +278,27 @@ public class ResultsServiceImpl implements ResultsService {
         }
         //TODO wanger 处理zip文件名和规划成果包名称不一致的情况
         String firstFolderName = FirstDirectoryName(folder);
+        if (StringUtils.isEmpty(firstFolderName)) {
+            qxcgsbrwMapper.update(qxsbcg, sbrwwrapper);
+            return RequestResult.error("999:合包成功,但解压后没有检索到有效文件夹,请检查后重试!");
+        }
+        System.out.println("firstFolderName===" + firstFolderName);
         String unzippath = folder + "" + firstFolderName;
         File unzipfile = new File(unzippath);
+        System.out.println("unzippath===" + unzippath);
         if (!unzipfile.exists()) {
             deleteQxsbrw(md5);
             deleteCurDirectory(targetfile.getParent());
-            return RequestResult.error("3---压缩包解压后没有文件夹,请检查!");
+            return RequestResult.error("3压缩包解压后没有文件夹,请检查!");
         }
         //TODO wanger 重命名压缩包文件
-        String renamePath = folder + "" + firstFolderName + ".zip";
-        System.out.println("renamePath ===  " + renamePath);
-        renameFile(targetfilepath, renamePath);
-        targetfilepath = renamePath;
-        targetfile = null;
-        targetfile = new File(targetfilepath);
+        if (!fileRelName.equals(firstFolderName)) {
+            String renamePath = folder + "" + firstFolderName + ".zip";
+            System.out.println("renamePath ===  " + renamePath);
+            renameFile(targetfilepath, renamePath);
+            targetfilepath = renamePath;
+            targetfile = new File(targetfilepath);
+        }
         //TODO wanger 判断报批项目成果  非常重要
         if ("6".equals(qxsbcg.getGhlx())) {
             String fileuuid = StringUtils.getUUID();
@@ -328,7 +338,7 @@ public class ResultsServiceImpl implements ResultsService {
             if (StringUtils.isEmpty(txtFilePath)) {
                 deleteQxsbrw(md5);
                 deleteCurDirectory(targetfile.getParent());
-                return RequestResult.error("4----成果包中必须包含“xxx基本信息.txt”文件,同时注意成果包中应包含“xxx规划成果”的根目录");
+                return RequestResult.error("4成果包中必须包含“xxx基本信息.txt”文件,同时注意成果包中应包含“xxx规划成果”的根目录");
             }
             System.out.println("txtFilePath===" + txtFilePath);
             Map<String, String> txtMap = null;
@@ -338,7 +348,7 @@ public class ResultsServiceImpl implements ResultsService {
                 e.printStackTrace();
                 deleteQxsbrw(md5);
                 deleteCurDirectory(targetfile.getParent());
-                return RequestResult.error("4----解析规划文本txt错误,请检查格式!");
+                return RequestResult.error("4解析规划文本txt错误,请检查格式!");
             }
             System.out.println("txtMap===" + txtMap);
             String xmmc = txtMap.get("xmmc") != null ? txtMap.get("xmmc") : fileRelName;
@@ -378,7 +388,7 @@ public class ResultsServiceImpl implements ResultsService {
             if (sjbzlist.size() == 0) {
                 deleteQxsbrw(md5);
                 deleteCurDirectory(targetfile.getParent());
-                return RequestResult.error(String.format("5-----未授权的数据类型:%s,请联系管理人员!", sjbz_bsm));
+                return RequestResult.error(String.format("5未授权的数据类型:%s,请联系管理人员!", sjbz_bsm));
             }
             //TODO wanger 处理那些根目录带有“_报审”等的数据项
             if (fileRelName.contains("_")) {
@@ -405,7 +415,7 @@ public class ResultsServiceImpl implements ResultsService {
             if (missfiles.size() > 0) {
                 deleteQxsbrw(md5);
                 deleteCurDirectory(targetfile.getParent());
-                return RequestResult.error(String.format("6------成果数据缺少以下目录或文件:%s", String.join("\n", missfiles)), missfiles);
+                return RequestResult.error(String.format("6成果数据缺少以下目录或文件:%s", String.join("\n", missfiles)), missfiles);
             }
             qxsbcg.setRwzt(rwzt.getWc());
             qxsbcg.setCglj(unzippath);
@@ -465,7 +475,7 @@ public class ResultsServiceImpl implements ResultsService {
                 escalationMapper.insert(escalationDTO);
             }
         }
-        return RequestResult.success("7----操作成功", 1);
+        return RequestResult.success("操作成功", 1);
     }
 
 

+ 12 - 0
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/controller/cggl/CgglController.java

@@ -447,6 +447,18 @@ public class CgglController extends BaseController {
         return getRecordDataTable(list);
     }
 
+    /**
+     * 删除旗县修编申请
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping("/xbdelete")
+    public RequestResult xbdelete(String id) {
+        RequestResult res = cgglService.xbdelete(id);
+        return res;
+    }
+
     /**
      * 下载修编文件
      *

+ 10 - 0
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/domain/cggl/TCgglRevise.java

@@ -24,6 +24,16 @@ public class TCgglRevise {
     private String shzt;
     private String remark;
     private String instid;
+    private String uuid;
+
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
 
     public String getId() {
         return id;

+ 2 - 0
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/service/cggl/CgglService.java

@@ -56,4 +56,6 @@ public interface CgglService {
     List<TCgglRevise> xblist(String subject, String divisionCode, String id, String instid);
 
     RequestResult xbfiledownload(String id, HttpServletResponse response);
+
+    RequestResult xbdelete(String id);
 }

+ 12 - 1
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/service/impl/cggl/CgglServiceImpl.java

@@ -1027,13 +1027,24 @@ public class CgglServiceImpl implements CgglService {
         return res;
     }
 
+    @Override
+    public RequestResult xbdelete(String id) {
+        if (StringUtils.isEmpty(id)) {
+            return RequestResult.error("id参数未传递!");
+        }
+        QueryWrapper<TCgglRevise> wrapper = new QueryWrapper();
+        wrapper.eq("uuid", id);
+        tCgglReviseMapper.delete(wrapper);
+        return RequestResult.success("操作成功!", 1);
+    }
+
     @Override
     public RequestResult xbfiledownload(String id, HttpServletResponse response) {
         if (StringUtils.isEmpty(id)) {
             return RequestResult.error("id参数不允许为空!");
         }
         QueryWrapper<TCgglRevise> wrapper = new QueryWrapper();
-        wrapper.eq("id", id);
+        wrapper.eq("uuid", id);
         TCgglRevise tCgglRevise = tCgglReviseMapper.selectOne(wrapper);
         if (tCgglRevise == null) {
             return RequestResult.error("id参数有问题!");

+ 6 - 3
onemap-modules/onemap-apply/src/main/resources/mapper/oracle/yzt/ZymlMapper.xml

@@ -21,15 +21,18 @@
         connect by prior cou.bsm = cou.pbsm ) as "count",
         t.bsm as "bsm",
         t.name as "name",
-        case when t.sde is null then t.type else to_char(dblayer.servicetype) end as "type",
+        --case when t.sde is null then t.type else to_char(dblayer.servicetype) end as "type",
+        t.type  as "type",
         t.pbsm as "pbsm",
         t.icon as "icon",
-        case when t.sde is null then t.url else to_char(dblayer.address) end as "url",
+        --case when t.sde is null then t.url else to_char(dblayer.address) end as "url",
+        t.url  as "url",
         t.lev as "lev",
         t.sort as "sort",
         t.state as "state",
         t.parent as "parent",
-        case when t.sde is null then t.server_type else 'Arcgis' end as "server_type",
+        --case when t.sde is null then t.server_type else 'Arcgis' end as "server_type",
+         t.server_type as "server_type",
         t.sflssj as "sflssj",
         t.sfdbfx as "sfdbfx",
         t.sfjl as "sfjl",