From 19f5c982ea9ad8d7aad65b2c9a776b829992d2ca Mon Sep 17 00:00:00 2001
From: fei <791364011@qq.com>
Date: 星期二, 09 九月 2025 17:39:01 +0800
Subject: [PATCH] 新增了代码

---
 archiveManager/src/main/java/com/ruoyi/domain/vo/ArchiveRecordSmall.java                       |   39 +++
 archiveManager/pom.xml                                                                         |   10 +
 archiveManager/src/main/java/com/ruoyi/domain/ArchiveProjectName.java                          |    7 
 archiveManager/src/main/java/com/ruoyi/service/impl/pdfGenerateService.java                    |   28 ++
 archiveManager/src/main/java/com/ruoyi/domain/vo/RecordToUserCount.java                        |   14 +
 archiveManager/src/main/java/com/ruoyi/service/IArchiveRecordsService.java                     |    6 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiverecordstouserController.java |   12 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiveRecordsController.java       |    8 
 archiveManager/src/main/java/com/ruoyi/service/IArchiverecordstouserService.java               |    4 
 archiveManager/src/main/java/com/ruoyi/service/IArchiveDoublePdfGenerateService.java           |    5 
 archiveManager/src/main/java/com/ruoyi/service/impl/IArchiveDoublePdfGenerateServiceImpl.java  |  125 ++++++++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java     |  184 +++++++++++++++++
 archiveManager/src/main/java/com/ruoyi/mapper/ArchiveRecordsMapper.java                        |   11 +
 archiveManager/src/main/java/com/ruoyi/domain/ArchiveRecords.java                              |   11 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DoublePdfGenerateController.java    |   30 +++
 archiveManager/src/main/java/com/ruoyi/service/impl/ArchiverecordstouserServiceImpl.java       |   29 ++
 archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java             |   26 ++
 archiveManager/src/main/java/com/ruoyi/mapper/ArchiverecordstouserMapper.java                  |   14 +
 18 files changed, 549 insertions(+), 14 deletions(-)

diff --git a/archiveManager/pom.xml b/archiveManager/pom.xml
index bf20a81..ecebf4c 100644
--- a/archiveManager/pom.xml
+++ b/archiveManager/pom.xml
@@ -78,6 +78,16 @@
             <scope>compile</scope>
         </dependency>
 
+
+
+
+        <!-- Apache HttpClient渚濊禆 -->
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.14</version>
+        </dependency>
+
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/archiveManager/src/main/java/com/ruoyi/domain/ArchiveProjectName.java b/archiveManager/src/main/java/com/ruoyi/domain/ArchiveProjectName.java
index 82155c3..aad93ff 100644
--- a/archiveManager/src/main/java/com/ruoyi/domain/ArchiveProjectName.java
+++ b/archiveManager/src/main/java/com/ruoyi/domain/ArchiveProjectName.java
@@ -26,6 +26,13 @@
     private String name;
     private Date createTime;
 
+    @Excel(name = "鍏徃鍚嶇О")
+
+    private String companyName;
+    @Excel(name = "椤圭洰璐熻矗浜�")
+
+    private String createPerson;
+
     @Override
     public void setCreateTime(Date createTime) {
         this.createTime = createTime;
diff --git a/archiveManager/src/main/java/com/ruoyi/domain/ArchiveRecords.java b/archiveManager/src/main/java/com/ruoyi/domain/ArchiveRecords.java
index b9bc66f..5aed5c0 100644
--- a/archiveManager/src/main/java/com/ruoyi/domain/ArchiveRecords.java
+++ b/archiveManager/src/main/java/com/ruoyi/domain/ArchiveRecords.java
@@ -125,11 +125,22 @@
     @TableField(exist = false)
 
     private String archiveRecordsId;
+
+    public Long[] getIds() {
+        return ids;
+    }
+
+    public void setIds(Long[] ids) {
+        this.ids = ids;
+    }
+
     @TableField(exist = false)
 
 
   //  private String archiveStatus
     private Long userId;
+    @TableField(exist = false)
+    private Long [] ids;
 
     @Override
     public Date getCreateTime() {
diff --git a/archiveManager/src/main/java/com/ruoyi/domain/vo/ArchiveRecordSmall.java b/archiveManager/src/main/java/com/ruoyi/domain/vo/ArchiveRecordSmall.java
new file mode 100644
index 0000000..71be790
--- /dev/null
+++ b/archiveManager/src/main/java/com/ruoyi/domain/vo/ArchiveRecordSmall.java
@@ -0,0 +1,39 @@
+package com.ruoyi.domain.vo;
+
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+@Data
+public class ArchiveRecordSmall {
+
+    /** 妗f鍙� */
+    @Excel(name = "搴忓彿")
+    private Long num;
+
+
+    @Excel(name = "绔嬫鍙�")
+    private String filingNumber;
+    /** 妗f绠�(瀹�)鍙� */
+    @Excel(name = "妗f鍙戞枃鍙穇妗e彿")
+    private String inqrid;
+
+
+    /** 妗堝嵎棰樺悕 */
+    @Excel(name = "妗堝嵎棰樺悕")
+    private String caseTitle;
+
+
+
+    @Excel(name = "鍏紑灞炴��")
+    private String publicAttribute;
+    /** 缂╁井鍙� */
+
+
+    @Excel(name = "鐢靛瓙鏂囦欢涓暟")
+    private Long cnt;
+
+    @Excel(name = "澶囨敞")
+
+    private String remarks;
+
+}
diff --git a/archiveManager/src/main/java/com/ruoyi/domain/vo/RecordToUserCount.java b/archiveManager/src/main/java/com/ruoyi/domain/vo/RecordToUserCount.java
new file mode 100644
index 0000000..fdb44a3
--- /dev/null
+++ b/archiveManager/src/main/java/com/ruoyi/domain/vo/RecordToUserCount.java
@@ -0,0 +1,14 @@
+package com.ruoyi.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class RecordToUserCount {
+    private Long userId;
+    private String userName;
+    private Long cnt;
+
+    private Long swlr;
+
+    private Long ylr; 
+}
diff --git a/archiveManager/src/main/java/com/ruoyi/mapper/ArchiveRecordsMapper.java b/archiveManager/src/main/java/com/ruoyi/mapper/ArchiveRecordsMapper.java
index 3a9a890..e4a8772 100644
--- a/archiveManager/src/main/java/com/ruoyi/mapper/ArchiveRecordsMapper.java
+++ b/archiveManager/src/main/java/com/ruoyi/mapper/ArchiveRecordsMapper.java
@@ -7,6 +7,7 @@
 import com.ruoyi.domain.ArchiveRecords;
 import com.ruoyi.domain.vo.AnalysisResult;
 import com.ruoyi.domain.vo.ArchiveInfoVo;
+import com.ruoyi.domain.vo.ArchiveRecordSmall;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -19,7 +20,7 @@
 
     @Select({
             "<script>",
-            "SELECT distinct c.*,a.archive_records_id,b.user_id, if(a.user_id=#{userId}, TRUE, FALSE) as tst FROM archiverecordstouser a inner join sys_user b ON a.user_id = b.user_id right join archive_records c on c.record_id=a.archive_records_id ${ew.customSqlSegment} ",
+            "SELECT distinct c.*,a.archive_records_id, if(a.user_id=#{userId}, TRUE, FALSE) as tst FROM archiverecordstouser a inner join sys_user b ON a.user_id = b.user_id right join archive_records c on c.record_id=a.archive_records_id ${ew.customSqlSegment} ",
             "<if test= \"userId !=1 \">",
             "order by tst desc",
             "</if>",
@@ -40,4 +41,12 @@
             "(select count(*) from archive_records as ac where ac.every_project_name=ar.every_project_name and record_status='褰曞叆瀹屾垚') as finished \n" +
             " from archive_records as ar GROUP BY every_project_name")
     List<AnalysisResult> statisticAyasis();
+
+
+    @Select("update archive_records set record_status='褰曞叆瀹屾垚' where id=#{id}")
+    public void updateStatusById(@Param("id")Long id);
+
+    @Select("select ROW_NUMBER() OVER (ORDER BY record_id) AS num, filing_number, concat_ws(\" \", inquiry_number,record_id) as inqrid, case_title, public_attribute, (select count(*) as cnt from document_materials where record_id=ar.id) as cnt, remarks from archive_records as ar \n" +
+            "${ew.customSqlSegment}")
+    public List<ArchiveRecordSmall> selectByIds(@Param("ew") LambdaQueryWrapper<ArchiveRecords> queryWrapper);
 }
diff --git a/archiveManager/src/main/java/com/ruoyi/mapper/ArchiverecordstouserMapper.java b/archiveManager/src/main/java/com/ruoyi/mapper/ArchiverecordstouserMapper.java
index 2a24e07..bef280b 100644
--- a/archiveManager/src/main/java/com/ruoyi/mapper/ArchiverecordstouserMapper.java
+++ b/archiveManager/src/main/java/com/ruoyi/mapper/ArchiverecordstouserMapper.java
@@ -2,11 +2,14 @@
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.domain.ArchiveRecords;
 import com.ruoyi.domain.Archiverecordstouser;
+import com.ruoyi.domain.vo.RecordToUserCount;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 /**
@@ -16,7 +19,12 @@
  * @date 2025-07-20
  */
 @Mapper
-public interface ArchiverecordstouserMapper extends BaseMapper<Archiverecordstouser>
-{
+public interface ArchiverecordstouserMapper extends BaseMapper<Archiverecordstouser> {
 
-}
+    @Select("select ad.user_id, user_name, count(*) as cnt, (select count(*) from archive_records as ar,archiverecordstouser as ats, sys_user as su where ar.record_id= ats.archive_records_id and ats.user_id=su.user_id and su.user_id=sy.user_id and\n" +
+            "record_status='鏈綍鍏�') as swlr,(select count(*) from archive_records as ar,archiverecordstouser as ats, sys_user as su where ar.record_id= ats.archive_records_id and ats.user_id=su.user_id and su.user_id=sy.user_id and\n" +
+            "record_status='褰曞叆瀹屾垚') as ylr from archiverecordstouser as ad, sys_user as sy,archive_records as ard where ad.user_id=sy.user_id and ard.record_id=ad.archive_records_id  ${ew.customSqlSegment} group by user_id, user_name")
+    Page<RecordToUserCount> selectRecordToUserPage(Page<RecordToUserCount> page,  @Param("ew") LambdaQueryWrapper<RecordToUserCount> queryWrapper);
+
+
+}
\ No newline at end of file
diff --git a/archiveManager/src/main/java/com/ruoyi/service/IArchiveDoublePdfGenerateService.java b/archiveManager/src/main/java/com/ruoyi/service/IArchiveDoublePdfGenerateService.java
new file mode 100644
index 0000000..ba5e50a
--- /dev/null
+++ b/archiveManager/src/main/java/com/ruoyi/service/IArchiveDoublePdfGenerateService.java
@@ -0,0 +1,5 @@
+package com.ruoyi.service;
+
+public interface IArchiveDoublePdfGenerateService {
+    public void testConnection();
+}
diff --git a/archiveManager/src/main/java/com/ruoyi/service/IArchiveRecordsService.java b/archiveManager/src/main/java/com/ruoyi/service/IArchiveRecordsService.java
index a491de2..1178a83 100644
--- a/archiveManager/src/main/java/com/ruoyi/service/IArchiveRecordsService.java
+++ b/archiveManager/src/main/java/com/ruoyi/service/IArchiveRecordsService.java
@@ -4,6 +4,7 @@
 import com.ruoyi.domain.ArchiveRecords;
 import com.ruoyi.domain.vo.AnalysisResult;
 import com.ruoyi.domain.vo.ArchiveInfoVo;
+import com.ruoyi.domain.vo.ArchiveRecordSmall;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
@@ -82,4 +83,9 @@
 
     List<AnalysisResult> statisticAya();
 
+
+    public int updateArchiveById(Long id);
+
+
+    public List<ArchiveRecordSmall> findByIds(ArchiveRecords archiveRecords);
 }
diff --git a/archiveManager/src/main/java/com/ruoyi/service/IArchiverecordstouserService.java b/archiveManager/src/main/java/com/ruoyi/service/IArchiverecordstouserService.java
index 400661b..bead0b4 100644
--- a/archiveManager/src/main/java/com/ruoyi/service/IArchiverecordstouserService.java
+++ b/archiveManager/src/main/java/com/ruoyi/service/IArchiverecordstouserService.java
@@ -3,6 +3,7 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.domain.ArchiveRecords;
 import com.ruoyi.domain.Archiverecordstouser;
+import com.ruoyi.domain.vo.RecordToUserCount;
 
 import java.util.List;
 
@@ -74,4 +75,7 @@
 
 
     public int queryArchiverecordstouserByRecordId(String recordId, Long userId);
+
+
+    public AjaxResult countStatistic(String username, int pageNum, int pageSize);
 }
diff --git a/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java b/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
index 94c8977..d8af78a 100644
--- a/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
+++ b/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
@@ -16,6 +16,7 @@
 import com.ruoyi.domain.Archiverecordstouser;
 import com.ruoyi.domain.vo.AnalysisResult;
 import com.ruoyi.domain.vo.ArchiveInfoVo;
+import com.ruoyi.domain.vo.ArchiveRecordSmall;
 import com.ruoyi.mapper.ArchiveRecordsMapper;
 import com.ruoyi.mapper.ArchiverecordstouserMapper;
 import com.ruoyi.service.IArchiveRecordsService;
@@ -44,10 +45,18 @@
     private LambdaQueryWrapper<ArchiveRecords> buildCondition(ArchiveRecords archiveRecords, Long userId){
         LambdaQueryWrapper<ArchiveRecords> lqw = new LambdaQueryWrapper<>();
 
+        System.out.println(archiveRecords.getIds());
         lqw.like(!StringUtils.isEmpty(archiveRecords.getProjectName()), ArchiveRecords::getProjectName, archiveRecords.getProjectName())
                 .like(!StringUtils.isEmpty(archiveRecords.getFilingNumber()), ArchiveRecords::getFilingNumber, archiveRecords.getFilingNumber())
                 .like(!StringUtils.isEmpty(archiveRecords.getArchiveRoomNumber()), ArchiveRecords::getArchiveRoomNumber, archiveRecords.getArchiveRoomNumber())
-                        .like(!StringUtils.isEmpty(archiveRecords.getRecordId()), ArchiveRecords::getRecordId, archiveRecords.getRecordId());
+                        .like(!StringUtils.isEmpty(archiveRecords.getRecordId()), ArchiveRecords::getRecordId, archiveRecords.getRecordId())
+                .eq(!StringUtils.isEmpty(archiveRecords.getRecordStatus()), ArchiveRecords::getRecordStatus, archiveRecords.getRecordStatus())
+             ;
+        if(archiveRecords.getIds()!=null)
+                lqw.in(ArchiveRecords::getId,new ArrayList<>(Arrays.asList(archiveRecords.getIds())));
+
+
+
         //                .like(!StringUtils.isEmpty(zfProperty.getLocation()), ZfProperty::getLocation, zfProperty.getLocation())
 //                .like(!StringUtils.isEmpty(zfProperty.getHolder()), ZfProperty::getHolder, zfProperty.getHolder())
 //                .like(!StringUtils.isEmpty(zfProperty.getAddress()), ZfProperty::getAddress, zfProperty.getAddress())
@@ -257,6 +266,21 @@
         return this.baseMapper.statisticAyasis();
     }
 
+    @Override
+    public int updateArchiveById(Long id) {
+        this.baseMapper.updateStatusById(id);
+        return 0;
+    }
+
+    @Override
+    public List<ArchiveRecordSmall> findByIds(ArchiveRecords archiveRecords) {
+
+        LambdaQueryWrapper<ArchiveRecords> lqw = new LambdaQueryWrapper<>();
+        if(archiveRecords.getIds()!=null)
+            lqw.in(ArchiveRecords::getId,new ArrayList<>(Arrays.asList(archiveRecords.getIds())));
+        return this.baseMapper.selectByIds(lqw);
+    }
+
 
     public AjaxResult mySave(ArchiveRecords archiveRecords) {
 
diff --git a/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiverecordstouserServiceImpl.java b/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiverecordstouserServiceImpl.java
index aa4d0cb..f8ae642 100644
--- a/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiverecordstouserServiceImpl.java
+++ b/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiverecordstouserServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.service.impl;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -13,7 +14,9 @@
 import com.ruoyi.common.utils.MapUtils;
 
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.domain.ArchiveRecords;
 import com.ruoyi.domain.Archiverecordstouser;
+import com.ruoyi.domain.vo.RecordToUserCount;
 import com.ruoyi.mapper.ArchiverecordstouserMapper;
 import com.ruoyi.service.IArchiverecordstouserService;
 import com.ruoyi.system.mapper.SysUserMapper;
@@ -210,4 +213,30 @@
         else
             return 0;
     }
+
+    @Override
+    public AjaxResult countStatistic(String username, int pageNum, int pageSize) {
+        LambdaQueryWrapper<RecordToUserCount> lqw = new LambdaQueryWrapper<>();
+
+        if(username!=null)
+            lqw.like(!StringUtils.isEmpty(username), RecordToUserCount::getUserName, username);
+
+
+
+
+
+
+        Page<RecordToUserCount> page = new Page<>(pageNum, pageSize);
+
+        // 浣跨敤鑷畾涔夌殑鍒嗛〉鏌ヨ鏂规硶锛屽厛杩炴帴鍐嶅垎椤�
+        Page<RecordToUserCount> pageResult = this.baseMapper.selectRecordToUserPage(page, lqw);
+
+        List<RecordToUserCount> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹�
+
+        HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
+
+
+        return AjaxResult.success(data);
+
+    }
 }
diff --git a/archiveManager/src/main/java/com/ruoyi/service/impl/IArchiveDoublePdfGenerateServiceImpl.java b/archiveManager/src/main/java/com/ruoyi/service/impl/IArchiveDoublePdfGenerateServiceImpl.java
new file mode 100644
index 0000000..248e725
--- /dev/null
+++ b/archiveManager/src/main/java/com/ruoyi/service/impl/IArchiveDoublePdfGenerateServiceImpl.java
@@ -0,0 +1,125 @@
+package com.ruoyi.service.impl;
+
+import com.ruoyi.service.IArchiveDoublePdfGenerateService;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpResponse;
+import org.apache.http.ParseException;
+import org.apache.http.client.ClientProtocolException;
+
+
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.util.EntityUtils;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.net.URI;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.UUID;
+
+@Service
+public class IArchiveDoublePdfGenerateServiceImpl implements IArchiveDoublePdfGenerateService {
+    private final  String OCRServer = "http://127.0.0.1:1224/";
+    private  String MUL_LAYER_PDF_URL = OCRServer + "api/doc/upload";
+    private  String MUL_LAYER_PDF_STATE_URL = OCRServer + "api/doc/result";
+    private  String MUL_LAYER_PDF_DOWNLOAD_URL = OCRServer + "api/doc/download";
+
+
+
+
+    public void testConnection()
+    {
+        // 鑾峰緱Http瀹㈡埛绔�(鍙互鐞嗚В涓�:浣犲緱鍏堟湁涓�涓祻瑙堝櫒;娉ㄦ剰:瀹為檯涓奌ttpClient涓庢祻瑙堝櫒鏄笉涓�鏍风殑)
+        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
+        // 鍒涘缓Get璇锋眰
+        HttpGet httpGet = new HttpGet(OCRServer);
+
+        // 鍝嶅簲妯″瀷
+        CloseableHttpResponse response = null;
+        try {
+            // 鐢卞鎴风鎵ц(鍙戦��)Get璇锋眰
+            response = httpClient.execute(httpGet);
+            // 浠庡搷搴旀ā鍨嬩腑鑾峰彇鍝嶅簲瀹炰綋
+            HttpEntity responseEntity = response.getEntity();
+            System.out.println("鍝嶅簲鐘舵�佷负:" + response.getStatusLine());
+            if (responseEntity != null) {
+                System.out.println("鍝嶅簲鍐呭闀垮害涓�:" + responseEntity.getContentLength());
+                System.out.println("鍝嶅簲鍐呭涓�:" + EntityUtils.toString(responseEntity));
+            }
+        } catch (ClientProtocolException e) {
+            e.printStackTrace();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                // 閲婃斁璧勬簮
+                if (httpClient != null) {
+                    httpClient.close();
+                }
+                if (response != null) {
+                    response.close();
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+
+    }
+
+    public void doublePdfGenerate() throws IOException {
+        // 鏋勫缓璇锋眰URL鍜屾枃浠惰矾寰�
+        String url = "http://127.0.0.1:1224/api/doc/upload";
+        String path = "娴嬭瘯鏂囦欢.pdf";
+        String options_json = "{\"doc.extractionMode\": \"fullPage\"}";
+
+// 鍒涘缓HttpClient瀹炰緥
+//        HttpClient client = HttpClient.newHttpClient();
+
+//// 鐢熸垚boundary鐢ㄤ簬鍒嗛殧琛ㄥ崟鏁版嵁
+//        String boundary = UUID.randomUUID().toString();
+//
+//// 鏋勫缓multipart/form-data璇锋眰浣�
+//        StringBuilder sb = new StringBuilder();
+//// 娣诲姞JSON鍙傛暟閮ㄥ垎
+//        sb.append("--").append(boundary).append("\r\n");
+//        sb.append("Content-Disposition: form-data; name=\"json\"\r\n");
+//        sb.append("Content-Type: application/json\r\n");
+//        sb.append("\r\n");
+//        sb.append(options_json).append("\r\n");
+//
+//// 娣诲姞鏂囦欢閮ㄥ垎
+//        sb.append("--").append(boundary).append("\r\n");
+//        sb.append("Content-Disposition: form-data; name=\"file\"; filename=\"")
+//                .append(Paths.get(path).getFileName()).append("\"\r\n");
+//        sb.append("Content-Type: application/pdf\r\n"); // 鏄庣‘鎸囧畾PDF绫诲瀷
+//        sb.append("\r\n");
+//
+//// 璇诲彇鏂囦欢鍐呭骞舵瀯寤哄畬鏁磋姹備綋
+//        byte[] fileBytes = Files.readAllBytes(Paths.get(path));
+//        byte[] requestBody = new byte[sb.toString().getBytes().length + fileBytes.length
+//                + ("\r\n--" + boundary + "--\r\n").getBytes().length];
+//        System.arraycopy(sb.toString().getBytes(), 0, requestBody, 0, sb.toString().getBytes().length);
+//        System.arraycopy(fileBytes, 0, requestBody, sb.toString().getBytes().length, fileBytes.length);
+//        System.arraycopy(("\r\n--" + boundary + "--\r\n").getBytes(), 0, requestBody,
+//                sb.toString().getBytes().length + fileBytes.length,
+//                ("\r\n--" + boundary + "--\r\n").getBytes().length);
+//
+//// 鍒涘缓骞跺彂閫佽姹�
+//        HttpRequest request = HttpRequest.newBuilder()
+//                .uri(URI.create(url))
+//                .header("Content-Type", "multipart/form-data; boundary=" + boundary)
+//                .POST(HttpRequest.BodyPublishers.ofByteArray(requestBody))
+//                .build();
+//
+//// 澶勭悊鍝嶅簲
+//        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
+//        System.out.println("鍝嶅簲鐘舵�佺爜: " + response.statusCode());
+//        System.out.println("鍝嶅簲鍐呭: " + response.body());
+    }
+}
diff --git a/archiveManager/src/main/java/com/ruoyi/service/impl/pdfGenerateService.java b/archiveManager/src/main/java/com/ruoyi/service/impl/pdfGenerateService.java
index c1081b0..e97a4cd 100644
--- a/archiveManager/src/main/java/com/ruoyi/service/impl/pdfGenerateService.java
+++ b/archiveManager/src/main/java/com/ruoyi/service/impl/pdfGenerateService.java
@@ -12,9 +12,11 @@
 import com.itextpdf.text.pdf.PdfPTable;
 import com.itextpdf.text.pdf.PdfWriter;
 import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.domain.ArchiveRecords;
 import com.ruoyi.domain.vo.DocumentMaterialFileStyle;
 import com.ruoyi.domain.vo.DocumentMaterialsVo;
 import com.ruoyi.domain.vo.DocumentMaterialsVoSmall;
+import com.ruoyi.service.IArchiveRecordsService;
 import com.ruoyi.service.IDocumentMaterialsService;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.*;
@@ -28,6 +30,9 @@
 import java.io.*;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
 import java.util.List;
 
 @Service
@@ -36,6 +41,9 @@
     private BarcodeService barcodeService;
     @Autowired
     private IDocumentMaterialsService documentMaterialsService;
+
+    @Autowired
+    private IArchiveRecordsService iArchiveRecordsService;
     //鐢熶骇浜岀淮鐮�
     public byte[] createQrCodeN(String content, int width, int height) throws IOException {
         QrConfig config = new QrConfig(width, height);
@@ -475,7 +483,7 @@
 
    }
 
-    public void generatePdf(String pdfPath) throws IOException, DocumentException {
+    public void generatePdf(String pdfPath, Long id) throws IOException, DocumentException {
 
         Document document = new Document();
         PdfWriter.getInstance(document, new FileOutputStream(pdfPath));
@@ -483,7 +491,23 @@
 
         String [] tits = {"妗�        鍙�:","妗f棣�(瀹�)鍙�:","缂�  寰�  鍙�: ","鍙�  鏂�  鍙�:",
                 "妗�  鍗�  棰�  鍚�:","缂�  鍒�  鏃�  鏈�:","缂�  鍒�  鍗�  浣�:","淇�  绠�  鏈�  闄�:","瀵�     绾�:"};
-        String [] cons = {"D3.4.1-05-2024-0002","","","绌楄鍒掕祫婧愬缓璇併��2024銆�2033鍙�","骞垮窞甯傝嚜鏉ユ按鏈夐檺鍏徃鐧戒簯鍖烘睙楂橀晣姹熼珮闀囨斂搴滆タ渚с�佹睙搴滆矾鍖椾晶鐧戒簯鍖烘睙楂橀晣姹熼珮闀囨斂搴滆タ渚с�佹睙搴滆矾鍖椾晶鏂拌渚涙按绠″伐绋�","2024-04-23","骞垮窞甯傝鍒掑拰鑷劧璧勬簮灞�鐧戒簯鍖哄垎灞�","姘镐箙",""};
+        ArchiveRecords ard = iArchiveRecordsService.selectArchiveRecordsById(id);
+
+
+        String formattedDate = "";
+        if(ard.getPreparationDate()!=null) {
+            LocalDate date = ard.getPreparationDate().toInstant()
+                    .atZone(ZoneId.systemDefault())
+                    .toLocalDate();
+            ;
+            System.out.println("褰撳墠鏃ユ湡: " + date);
+
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
+      formattedDate = date.format(formatter);
+        }
+
+        String [] cons = {ard.getRecordId(),ard.getArchiveRoomNumber(),ard.getMicrofilmNumber(),ard.getInquiryNumber(),ard.getCaseTitle(),formattedDate,ard.getPreparationUnit(),
+                ard.getRetentionPeriod(),ard.getSecurityClassification()};
 
         //鎶婂浘鐗囧姞鍏ュ埌pdf褰撲腑
         Image img = Image.getInstance(createQrCodeN(cons[0], 80, 80));
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiveRecordsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiveRecordsController.java
index 14c340f..a8dcced 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiveRecordsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiveRecordsController.java
@@ -144,4 +144,12 @@
         return archiveRecordsService.importExcel(file);
     }
 
+
+    @PreAuthorize("@ss.hasPermi('system:records:edit')")
+    @Log(title = "淇敼鐘舵��", businessType = BusinessType.IMPORT)
+    @GetMapping(value = "/updateStatusById/{id}")
+    public AjaxResult updateStatusById(@PathVariable("id") String id)
+    {
+        return new AjaxResult(200, archiveRecordsService.updateArchiveById(Long.parseLong(id))+"");
+    }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiverecordstouserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiverecordstouserController.java
index 132c6f0..c5bf908 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiverecordstouserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/ArchiverecordstouserController.java
@@ -77,6 +77,18 @@
 
     }
 
+
+    @PreAuthorize("@ss.hasPermi('system:archiverecordstouser:list')")
+    @GetMapping("/listArToUser")
+    public AjaxResult listAllUserRecord(String userName )
+    {
+        Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
+        Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
+        System.out.println(userName);
+        return  archiverecordstouserService.countStatistic(userName,pageNum, pageSize);
+
+    }
+
     /**
      * 瀵煎嚭銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛�
      */
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DoublePdfGenerateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DoublePdfGenerateController.java
new file mode 100644
index 0000000..614d7d4
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DoublePdfGenerateController.java
@@ -0,0 +1,30 @@
+package com.ruoyi.web.controller.archive;
+
+import com.ruoyi.common.annotation.Anonymous;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.domain.ArchiveCategory;
+import com.ruoyi.service.IArchiveDoublePdfGenerateService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM;
+import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE;
+@Anonymous
+@RestController
+@RequestMapping("/doublePdf")
+
+public class DoublePdfGenerateController {
+    @Autowired
+    private IArchiveDoublePdfGenerateService iArchiveDoublePdfGenerateService;
+
+    @GetMapping("/testConn")
+    public AjaxResult testCon()
+    {
+        iArchiveDoublePdfGenerateService.testConnection();
+        return AjaxResult.success("2134");
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java
index 7936234..3978688 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java
@@ -12,11 +12,9 @@
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.utils.poi.ExcelUtilManySheet;
 import com.ruoyi.common.utils.poi.ExcelUtilManySheetSecond;
+import com.ruoyi.domain.ArchiveRecords;
 import com.ruoyi.domain.DocumentMaterials;
-import com.ruoyi.domain.vo.ArchiveInfoVo;
-import com.ruoyi.domain.vo.DocumentMaterialsVo;
-import com.ruoyi.domain.vo.DocumentMaterialsVoLarge;
-import com.ruoyi.domain.vo.DocumentMaterialsVoSmall;
+import com.ruoyi.domain.vo.*;
 import com.ruoyi.framework.web.domain.server.Sys;
 import com.ruoyi.service.IArchiveRecordsService;
 import com.ruoyi.service.IDocumentMaterialsService;
@@ -30,6 +28,7 @@
 import org.apache.poi.xssf.usermodel.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -43,6 +42,8 @@
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -121,7 +122,173 @@
 
 
 
+    @PostMapping("/exportChooseArchive/{ids}")
+    public void exportChooseArchive(HttpServletResponse response,  @PathVariable Long[] ids)throws Exception
+    {
+        System.out.println("092939932");
+        String zipFileName ="test" +".zip";
+        //鐢熸垚鍘嬬缉鍖呭瓨鍌ㄥ湴鍧�锛堟渶鍚庝細鍒犳帀锛�
+        String fileZip = RuoYiConfig.getProfile() + "/download/" + zipFileName;
+        OutputStream os=null;
+        ZipOutputStream zos = null ;
+        System.out.println("==============_______________");
+        System.out.println(ids.length);
+        File file = new File(fileZip);
+        try {
+            if (!file.getParentFile().exists()) {
+                file.getParentFile().mkdirs();
+            }
+            os = new FileOutputStream(file);
+            //鍘嬬缉鏂囦欢
+            zos = new ZipOutputStream(os);
+            //鎷垮埌褰撳墠鐨勬椂闂�
+            LocalDate date = LocalDate.now();
+            System.out.println("褰撳墠鏃ユ湡: " + date);
 
+
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
+            String formattedDate = date.format(formatter);
+            System.out.println(formattedDate);
+            String fna = "GH"+20250908+"/";
+            zos.putNextEntry(new ZipEntry(fna));
+
+
+            //娣诲姞ids鐨勫叏閮ㄦ暟鎹埌excel
+            ArchiveRecords archiveRecords = new ArchiveRecords();
+            archiveRecords.setIds(ids);
+            List<ArchiveRecords> lis = iArchiveRecordsService.selectArchiveRecordsList(archiveRecords);
+            //妗堝嵎鐩綍瀵煎嚭
+            ZipEntry entry = new ZipEntry("妗堝嵎鐩綍" + ".xls");
+            ExcelUtil<ArchiveRecords> util = new ExcelUtil<ArchiveRecords>(ArchiveRecords.class);
+
+            zos.putNextEntry(entry);
+            ByteOutputStream bos = new ByteOutputStream();
+            util.byteOutputStreamExcel(bos, lis,"妗堝嵎鐩綍", "");
+            bos.writeTo(zos);
+
+            //绉讳氦娓呭崟
+            List<ArchiveRecordSmall> lrs = iArchiveRecordsService.findByIds(archiveRecords);
+            System.out.println(lrs);
+            ZipEntry entry1 = new ZipEntry("绉讳氦娓呭崟" + ".xls");
+            ExcelUtil<ArchiveRecordSmall> util1 = new ExcelUtil<ArchiveRecordSmall>(ArchiveRecordSmall.class);
+
+            zos.putNextEntry(entry1);
+            ByteOutputStream bos1 = new ByteOutputStream();
+            util1.byteOutputStreamExcel(bos1, lrs,"绉讳氦娓呭崟", "");
+            bos1.writeTo(zos);
+            for(int i = 0; i < ids.length; i++) {
+
+                // 鑾峰彇鏂囦欢鐨勪繚瀛樹綅缃�,璇诲彇鏁版嵁搴�,
+                DocumentMaterials documentMaterials = new DocumentMaterials();
+                documentMaterials.setRecordId(ids[i]);
+                List<DocumentMaterialsVoLarge> docs = documentMaterialsService.selectDocumentMaterialsAllByRecordId(ids[i]);
+                System.out.println(docs.size()+"----009");
+
+
+                //.selectDocumentMaterialsList(documentMaterials);
+                List<DocumentMaterialsVo> dsvs = documentMaterialsService.findArchMInfo(ids[i].toString());
+                ArchiveInfoVo aIV = iArchiveRecordsService.selectByRecordId(ids[i]);
+
+                String adir = aIV.getInquiryNumber() + " " + aIV.getRecordId();
+                System.out.println(fna+adir);
+                zos.putNextEntry(new ZipEntry(fna + adir + "/"));
+
+                //鍦ㄩ噷闈㈡坊鍔犳枃浠�
+                boolean res = true;
+                if(res) {
+                    zos.putNextEntry(new ZipEntry(fna + adir + "/01-鐢宠鏉愭枡/"));
+                    zos.putNextEntry(new ZipEntry(fna + adir + "/02-鍔炴杩囩▼鏉愭枡/"));
+                    zos.putNextEntry(new ZipEntry(fna + adir + "/03-缁撹鎬ф枃浠�/"));
+                    zos.putNextEntry(new ZipEntry(fna + adir + "/04-鍏朵粬鏉愭枡/"));
+                    zos.putNextEntry(new ZipEntry(fna + adir + "/05-妗f鍙樻洿鏉愭枡/"));
+                    zos.putNextEntry(new ZipEntry(fna + adir + "/06-涓氬姟鏁版嵁/"));
+                    res = false;
+                }
+                //娣诲姞07  鐨刾df
+                //pdf鐩綍灏侀潰
+                String pdfPathF = "07-鍗烽潰灏侀潰.pdf";
+                pdfGenerateService.generatePdf(pdfPathF, ids[i]);
+                // 2. 鍘嬬缉PDF鍒癦IP鏂囦欢
+                // 娣诲姞PDF鏂囦欢鍒癦IP
+                ZipEntry zipEntry2 = new ZipEntry(fna + adir +"/"+pdfPathF);
+                zos.putNextEntry(zipEntry2);
+
+                // 璇诲彇PDF鏂囦欢鍐呭骞跺啓鍏IP
+                try (FileInputStream fis = new FileInputStream(pdfPathF)) {
+                    byte[] buffer = new byte[1024];
+                    int len;
+                    while ((len = fis.read(buffer)) > 0) {
+                        zos.write(buffer, 0, len);
+                    }
+                }
+                byte[] buf = new byte[1024];
+                for (DocumentMaterialsVoLarge dc : docs) {
+                    String filePath = dc.getUrl();
+                    if(filePath==null)
+                        continue;
+                    filePath = filePath.replace("/profile/", RuoYiConfig.getProfile() + "/");
+
+                    System.out.println(filePath);
+                    File tempFile = new File(filePath);
+
+                    //鍦ㄥ帇缂╁寘涓坊鍔犳枃浠跺す
+
+                    //寰楀埌鏂囦欢鍚峟rontCompWithZore(4, dc.get)+
+                    String fname = frontCompWithZore(4, dc.getFileNumber().intValue())+"-"+dc.getTitle()+"-"+frontCompWithZore(4,dc.getPageNumber().intValue())+"."
+                            +dc.getUrl().split("\\.")[1];
+                    if(dc.getStage().equals("01-鐢宠鏉愭枡"))
+                        zos.putNextEntry(new ZipEntry(fna + adir + "/01-鐢宠鏉愭枡/"+fname));
+                    else if(dc.getStage().equals("02-鍔炴杩囩▼鏉愭枡"))
+                        zos.putNextEntry(new ZipEntry(fna + adir + "/02-鍔炴杩囩▼鏉愭枡/"+fname));
+                    else if(dc.getStage().equals("03-缁撹鎬ф枃浠�"))
+                        zos.putNextEntry(new ZipEntry(fna + adir + "/03-缁撹鎬ф枃浠�/"+fname));
+                    else if(dc.getStage().equals("04-鍏朵粬鏉愭枡")) {
+                        zos.putNextEntry(new ZipEntry(fna + adir + "/04-鍏朵粬鏉愭枡/" + fname));
+                    }
+                    else if(dc.getStage().equals("05-妗f鍙樻洿鏉愭枡"))
+                        zos.putNextEntry(new ZipEntry(fna + adir + "/05-妗f鍙樻洿鏉愭枡/"+fname));
+                    else if(dc.getStage().equals("06-涓氬姟鏁版嵁"))
+                        zos.putNextEntry(new ZipEntry(fna + adir + "/06-涓氬姟鏁版嵁/"+fname));
+                    else
+                        zos.putNextEntry(new ZipEntry(fna + adir + "/"+fname));
+
+
+
+                    int len;
+                    FileInputStream in = new FileInputStream(tempFile);
+                    while ((len = in.read(buf)) != -1){
+                        zos.write(buf, 0, len);
+                    }
+                    //  zos.putNextEntry(new ZipEntry("04-鍏朵粬鏉愭枡"));
+                    zos.closeEntry();
+                    in.close();
+                }
+            }
+            System.out.println(file.getName());
+            writeFileToRes(response, file.getName(), file);
+
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }finally {
+            //鍏抽棴娴�
+            if(zos != null){
+                try {
+                    zos.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            //鍏抽棴娴�
+            if(os!= null){
+                try {
+                    os.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+
+    }
 
 
 
@@ -133,9 +300,9 @@
      * @param response
      * @param
      */
-    @PostMapping("/export")
+    @PostMapping("/export/{id}")
 
-    public void packDownload(HttpServletResponse response, Long id) throws Exception {
+    public void packDownload(HttpServletResponse response,  @PathVariable Long id) throws Exception {
         // 鑾峰彇鏂囦欢鐨勪繚瀛樹綅缃�,璇诲彇鏁版嵁搴�,
         DocumentMaterials documentMaterials = new DocumentMaterials();
         documentMaterials.setRecordId(id);
@@ -170,6 +337,7 @@
             System.out.println(file.getName());
 
             String fileName =aIV.getRecordId()+".zip";
+
             //杈撳嚭鏂囦欢娴�
             writeFileToRes(response, file.getName(), file);
             //鍒犻櫎鍘嬬缉鍖�
@@ -253,7 +421,7 @@
 
             //pdf鐩綍灏侀潰
             String pdfPathF = "07-鍗烽潰灏侀潰.pdf";
-            pdfGenerateService.generatePdf(pdfPathF);
+            pdfGenerateService.generatePdf(pdfPathF, 55L);
             // 2. 鍘嬬缉PDF鍒癦IP鏂囦欢
                 // 娣诲姞PDF鏂囦欢鍒癦IP
                 ZipEntry zipEntry = new ZipEntry(pdfPathF);
@@ -374,6 +542,8 @@
             byte[] buf = new byte[1024];
             for (DocumentMaterialsVoLarge dc : docs) {
                 String filePath = dc.getUrl();
+                if(filePath==null)
+                    continue;
                 filePath = filePath.replace("/profile/", RuoYiConfig.getProfile() + "/");
 
                 System.out.println(filePath);

--
Gitblit v1.9.1