From 63211c7592b9c7b814de2756d338ffd33ac0c58f Mon Sep 17 00:00:00 2001
From: zhai <1528081232@qq.com>
Date: 星期一, 19 一月 2026 16:37:38 +0800
Subject: [PATCH] 1、提交验收按钮新增判断是否关联附件 2、借阅暂存添加不可外借新增提醒 3、成果表单借阅管理修改为借阅记录 4、合格资料模块,导出文件按钮需要添加日志 5、装盒按钮调整:需要一个确认按钮并且可以更改盒号,调整盒号时能同步展示盒号容量 6、对接斑马打印机 7、利用用户修改

---
 src/main/java/com/zbooksoft/gdmis/controller/CatAjjxxController.java |   98 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 84 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zbooksoft/gdmis/controller/CatAjjxxController.java b/src/main/java/com/zbooksoft/gdmis/controller/CatAjjxxController.java
index 572172a..555e5e0 100644
--- a/src/main/java/com/zbooksoft/gdmis/controller/CatAjjxxController.java
+++ b/src/main/java/com/zbooksoft/gdmis/controller/CatAjjxxController.java
@@ -37,12 +37,14 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.zip.ZipFile;
 
+import static cn.hutool.core.util.ZipUtil.unzip;
 import static com.zbooksoft.gdmis.common.XmlUtil.getDocument;
 
 
 /**
- * @author 15280
+ * @author 15280  secretLedger
  */
 @Controller
 @RequestMapping("/catAjjxx")
@@ -58,6 +60,10 @@
     ReadXml2017Service readXml2017Service;
     @Autowired
     ReadXml2023Service readXml2023Service;
+    @Autowired
+    UpdateXml2017Service updateXml2017Service;
+    @Autowired
+    UpdateXml2023Service updateXml2023Service;
     @Autowired
     XmlService xmlService;
 
@@ -97,10 +103,34 @@
     @RequiresUser
     public Object importXML(@RequestParam(value = "file", required = false) MultipartFile file, String startData, String endData) {
         try {
-            Document document = getDocument(file);
-            Element rootElement = document.getRootElement();
-            String rootName = rootElement.getName();
-            xmlService.readXml(document, startData, endData);
+            ArchivesCustomConfig archivesCustomConfig = customConfigUtil.getConfigObj(ArchivesCustomConfig.class);
+            String uploadPath = archivesCustomConfig.getOriginalPath();
+            //鍒ゆ柇浼犺繃鏉ョ殑鏂囦欢鏄笉鏄帇缂╁寘
+            if (file.getOriginalFilename().endsWith(".zip")) {
+                String tempDir = System.getProperty("java.io.tmpdir");
+                String extractPath = tempDir + File.separator + "temp_" + System.currentTimeMillis();
+                File extractDir = new File(extractPath);
+                extractDir.mkdirs();
+                String originalFilename = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf("."));
+                try {
+                    // 淇濆瓨涓婁紶鐨� ZIP 鏂囦欢鍒颁复鏃朵綅缃�
+                    File zipFile = new File(extractPath + File.separator + file.getOriginalFilename());
+                    file.transferTo(zipFile);
+                    // 瑙e帇 ZIP 鏂囦欢
+                    unzip(zipFile.getAbsolutePath(), uploadPath);
+
+                    String xmlPath = uploadPath + File.separator + originalFilename + File.separator + "绠$悊鎬ф枃浠�" + File.separator + "璧勬枡鏂囦欢鐩綍.xml";
+                    Document document = getDocument(xmlPath);
+                    xmlService.readXml(document, startData, endData);
+                } finally {
+                    // 娓呯悊涓存椂鏂囦欢
+                    deleteDir(extractDir);
+                }
+
+            } else {
+                Document document = getDocument(file);
+                xmlService.readXml(document, startData, endData);
+            }
             return new AjaxResponse(true);
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
@@ -117,7 +147,7 @@
     @RequestMapping(value = "/updateXmlIndex")
     @RequiresUser
     public ModelAndView updateXmlIndex() {
-        ModelAndView mv = new ModelAndView("hn/catAjjxx/updateXmlIndex");
+        ModelAndView mv = new ModelAndView("gh/catAjjxx/updateXmlIndex");
         return mv;
     }
 
@@ -140,9 +170,9 @@
             Element rootElement = document.getRootElement();
             String rootName = rootElement.getName();
             if ("AJXX".equals(rootName)) {
-//                updateXml2017Service.updateXml(document, checkData, updateId);
+                updateXml2017Service.updateXml(document, checkData, updateId);
             } else if ("DZZLXX".equals(rootName)) {
-//                updateXml2023Service.updateXml(document, checkData, updateId);
+                updateXml2023Service.updateXml(document, checkData, updateId);
             }
             if (checkData != null && !"".equals(checkData)) {
                 QueryWrapper<CatCheck> catCheckQueryWrapper = new QueryWrapper<>();
@@ -374,16 +404,13 @@
                     }
 
                     File file = new File(yswjPath);
-                    if (file.exists() && file.isFile()) {
-                        long fileSize = file.length();
-                        double fileSizeMB = fileSize / (1024.0 * 1024.0);
+                    if (file.exists()) {
+                        Long folderSize = getFolderSize(file);
+                        double fileSizeMB = (double) folderSize / 1024 / 1024;
                         String fileSizeStr = String.format("%.2f", fileSizeMB);
                         catYswjxx.setWjdx(fileSizeStr);
-//                        catYswjxx.setWjgs("pdf");
                         catYswjxx.setWjlj(yswjPath);
                         ysSuccess++;
-                    } else {
-                        ysFailed++;
                     }
                     catYswjxx.setWjm(wjtm);
                     catYswjxxService.saveOrUpdate(catYswjxx);
@@ -571,5 +598,48 @@
             return new AjaxResponse(new ErrorInfo(e.getMessage()), false);
         }
     }
+
+    public static void main(String[] args) {
+        File file = new File("E:\\Desktop\\DD20240091\\DD20240091");
+        long folderSize = getFolderSize(file);
+        long l = folderSize / 1024 / 1024;
+        long folder = (folderSize / 1024 / 1024);
+        System.out.println(folderSize / 1024 / 1024);
+    }
+
+    public static Long getFolderSize(File folder) {
+        if (!folder.exists()) {
+            return 0L;
+        }
+
+        if (folder.isFile()) {
+            return folder.length();
+        }
+
+        Long totalSize = 0L;
+        File[] files = folder.listFiles();
+        if (files != null) {
+            for (File file : files) {
+                if (file.isFile()) {
+                    totalSize += file.length();
+                } else if (file.isDirectory()) {
+                    totalSize += getFolderSize(file);
+                }
+            }
+        }
+        return totalSize;
+    }
+
+    private void deleteDir(File dir) {
+        if (dir.isDirectory()) {
+            File[] files = dir.listFiles();
+            if (files != null) {
+                for (File file : files) {
+                    deleteDir(file);
+                }
+            }
+        }
+        dir.delete();
+    }
 }
 

--
Gitblit v1.9.1