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