From ee98daf76231cb373d20803dfa1a309fefd82644 Mon Sep 17 00:00:00 2001
From: fei <791364011@qq.com>
Date: 星期四, 27 十一月 2025 23:33:07 +0800
Subject: [PATCH] 修改了对应代码
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DocumentMaterialsController.java | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 153 insertions(+), 27 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DocumentMaterialsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DocumentMaterialsController.java
index 23498b4..beff88c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DocumentMaterialsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/DocumentMaterialsController.java
@@ -2,9 +2,14 @@
+import java.awt.*;
import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
+import java.io.*;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
@@ -18,13 +23,16 @@
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.domain.ArchiveCategory;
+import com.ruoyi.domain.ArchiveRecords;
import com.ruoyi.domain.DocumentMaterials;
import com.ruoyi.domain.vo.DocumentMaterialFileSmallVo;
import com.ruoyi.framework.config.ServerConfig;
+import com.ruoyi.framework.web.domain.server.Sys;
import com.ruoyi.service.IDocumentMaterialsService;
import com.sun.xml.internal.ws.api.addressing.WSEndpointReference;
import org.apache.commons.imaging.ImageInfo;
import org.apache.commons.imaging.Imaging;
+import org.springframework.mock.web.MockMultipartFile;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -56,6 +64,33 @@
@Autowired
private IDocumentMaterialsService documentMaterialsService;
+
+ /**
+ * 鍒ゆ柇PageNumber鏄惁杩炵画
+ */
+ @PreAuthorize("@ss.hasPermi('system:materials:list')")
+ @GetMapping("/isPageNubLegal/{recordId}")
+ public AjaxResult judgePageLegal(@PathVariable("recordId") Integer recordId)
+ {
+
+ boolean res = documentMaterialsService.isPageNumberIslegal(recordId);
+ int cnt = documentMaterialsService.getFileCount(recordId);
+ HashMap<String, Object> data = new HashMap<>();
+ data.put("res",res);
+ data.put("total",cnt);
+ return AjaxResult.success(data);
+ }
+ /**
+ * 鎷垮埌闄や簡鍏跺畠绫诲瀷鏉愭枡鐨勪釜鏁�
+ */
+ @PreAuthorize("@ss.hasPermi('system:materials:list')")
+ @GetMapping("/getFileCount/{recordId}")
+ public AjaxResult getFileCount(@PathVariable("recordId") Integer recordId)
+ {
+
+ int cnt = documentMaterialsService.getFileCount(recordId);
+ return AjaxResult.success(cnt);
+ }
/**
* 鏌ヨ銆愭枃浠舵潗鏂欑患鍚堜俊鎭�戝垪琛�
*/
@@ -63,7 +98,6 @@
@GetMapping("/list")
public AjaxResult list(DocumentMaterials documentMaterials)
{
-
Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
return documentMaterialsService.selectDataList(documentMaterials, pageNum, pageSize);
@@ -75,9 +109,17 @@
@PreAuthorize("@ss.hasPermi('system:materials:export')")
@Log(title = "銆愭枃浠舵潗鏂欑患鍚堜俊鎭��", businessType = BusinessType.EXPORT)
@PostMapping("/export")
- public void export(HttpServletResponse response, DocumentMaterials documentMaterials)
+ public void export(HttpServletResponse response, DocumentMaterials documentMaterials, @RequestParam(value = "ids", required = false) Long[] ids)
{
- List<DocumentMaterials> list = documentMaterialsService.selectDocumentMaterialsList(documentMaterials);
+ List<DocumentMaterials> list;
+ System.out.println(ids);
+ // 濡傛灉鎻愪緵浜唅ds鍙傛暟锛屽垯鏍规嵁ids瀵煎嚭鎸囧畾璁板綍
+ if (ids != null && ids.length > 0) {
+ list = documentMaterialsService.selectDocumentMaterialsByIds(ids);
+ } else {
+ list = documentMaterialsService.selectDocumentMaterialsList(documentMaterials);
+
+ }
ExcelUtil<DocumentMaterials> util = new ExcelUtil<DocumentMaterials>(DocumentMaterials.class);
util.exportExcel(response, list, "銆愭枃浠舵潗鏂欑患鍚堜俊鎭�戞暟鎹�");
}
@@ -143,8 +185,8 @@
return "A0";
}
- @PostMapping("/upload")
- public AjaxResult uploadFile(MultipartFile file, Long recordId) throws Exception
+ @PostMapping("/upload/{recordId}")
+ public AjaxResult uploadFile(MultipartFile file, @PathVariable Long recordId) throws Exception
{
// System.out.println("sdfd9999999999999999999999999999999");
try
@@ -163,30 +205,112 @@
//鍒嗗壊鏂囦欢鍚�
String [] nams = fname.split("\\.");
Long nam = Long.parseLong(nams[0]);
- //鏂囦欢鍚嶇О
- String pname = nams[1];
- ajax.put("url", url);
- //鎷垮埌鍥惧儚灞炴��
- BufferedImage bufferedImage = ImageIO.read(file.getInputStream());
- int wid = bufferedImage.getWidth();
- int hei = bufferedImage.getHeight();
- double sz = Double.parseDouble(String.format("%.2f", file.getSize()*1.0/1024));
- System.out.println(wid+":"+hei+":"+sz);
- //鎷垮埌鍥惧儚鐨刣pi淇℃伅
+ //鏍规嵁椤靛彿鎷垮埌妗堝嵎鐨勮缁嗕俊鎭�
+ System.out.println("0-------------");
+ System.out.println(recordId);
+ DocumentMaterials doc = documentMaterialsService.selectByPageNumber(nam, Math.toIntExact(recordId));
+ if(doc==null)
+ return AjaxResult.error("鏃犲搴旈〉鍙凤紝璇锋鏌ユ竻妤氶檮浠朵互鍙婂搴旂殑杈撳叆锛�");
+ else{
+ if(doc.getSecurityLevel().equals("璇ラ〉鍙﹀瓨"))
+ {
- ImageInfo info = Imaging.getImageInfo(file.getBytes());
+ //鏇挎崲涓轰簡鍑嗗濂界殑鍥惧儚
+ //璇诲彇鏈嶅姟鍣ㄤ笂鐨勫浘鍍�
+ // new InputStream();
+ String fp = filePath + "\\glc.jpg";
+ Path path = Paths.get(fp);
+ File fil = new File(fp);
+ //鎷垮埌鍥惧儚灞炴��
+ BufferedImage bufferedImage = ImageIO.read(Files.newInputStream(path));
+ int wid = bufferedImage.getWidth();
+ int hei = bufferedImage.getHeight();
+ double sz = Double.parseDouble(String.format("%.2f", Files.size(path)*1.0/1024));
+ System.out.println("ddsdsdsd");
+ System.out.println(wid+":"+hei+":"+sz);
+
+ //鎷垮埌鍥惧儚鐨刣pi淇℃伅
+
+ ImageInfo info = Imaging.getImageInfo(Files.readAllBytes(path));
- int wdpi = info.getPhysicalWidthDpi() ;
- int hdpi = info.getPhysicalHeightDpi();
- System.out.println("DPI: " + info.getPhysicalWidthDpi());
- //璁$畻fileNumber
- Long fileNumber = documentMaterialsService.getFiNum(nam);
- //璁$畻sizeType
- String sizeType = getPageSize(wid*hei);
- //鎻掑叆鏁版嵁搴撳搴旂殑url褰撲腑
- documentMaterialsService.updateByPageNumber(nam, sizeType, fileNumber,wid, hei,wdpi, hdpi, sz, fileName, pname, recordId);
-// System.out.println(url);
+ int wdpi = info.getPhysicalWidthDpi() ;
+ int hdpi = info.getPhysicalHeightDpi();
+ System.out.println("DPI: " + info.getPhysicalWidthDpi());
+ //璁$畻fileNumber
+ Long fileNumber = documentMaterialsService.getFiNum(nam,recordId);
+ //璁$畻sizeType
+ String sizeType = getPageSize(wid*hei);
+
+
+ Graphics2D g2d = bufferedImage.createGraphics(); // 鑾峰彇Graphics2D瀵硅薄鐢ㄤ簬缁樺埗
+ g2d.setFont(new Font("Arial", Font.BOLD, 80)); // 璁剧疆瀛椾綋鏍峰紡鍜屽ぇ灏�
+ g2d.setColor(Color.black); // 璁剧疆瀛椾綋棰滆壊涓虹櫧鑹诧紝鍙牴鎹渶瑕佽皟鏁撮鑹插拰瀛椾綋鏍峰紡
+ String pageNumber = doc.getPageNumber()+""; // 椤电爜瀛楃涓诧紝鍙互鏍规嵁闇�瑕佷慨鏀规垨鍔ㄦ�佺敓鎴�
+ int fontHeight = g2d.getFontMetrics().getHeight(); // 鑾峰彇瀛椾綋楂樺害锛岀敤浜庡畾浣嶆枃鏈綅缃�
+ int x = bufferedImage.getWidth() - g2d.getFontMetrics().stringWidth(pageNumber) - 80; // 璁$畻鏂囨湰X鍧愭爣浣嶇疆锛岀‘淇濆湪鍙充笅瑙掗檮杩�
+ int y = bufferedImage.getHeight() - fontHeight / 2 - 100; // 璁$畻鏂囨湰Y鍧愭爣浣嶇疆锛屽瀭鐩村眳涓樉绀烘枃鏈�
+ g2d.drawString(pageNumber, x, y); // 鍦ㄥ浘鐗囦笂缁樺埗椤电爜鏂囨湰
+
+
+ System.out.println(pageNumber+"[[[[[[[[[[[[[[[");
+ g2d.dispose(); // 閲婃斁Graphics2D璧勬簮
+// File outputFile = new File(filePath+"/output_image.jpg"); // 杈撳嚭鏂囦欢璺緞
+// ImageIO.write(bufferedImage, "jpg", outputFile); // 淇�
+ //寰楀埌BufferedImage瀵硅薄
+ MultipartFile multipartFile = null;
+ try {
+ //鍒涘缓涓�涓狟yteArrayOutputStream
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ //鎶夿ufferedImage鍐欏叆ByteArrayOutputStream
+ ImageIO.write(bufferedImage, "jpg", os);
+ //ByteArrayOutputStream杞垚InputStream
+ InputStream input = new ByteArrayInputStream(os.toByteArray());
+ //InputStream杞垚MultipartFile
+ multipartFile = new MockMultipartFile(pageNumber, pageNumber+".jpg", "text/plain", input);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ // 涓婁紶骞惰繑鍥炴柊鏂囦欢鍚嶇О
+ String fileName1 = FileUploadUtils.upload(filePath, multipartFile);
+ String url1 = serverConfig.getUrl() + fileName;
+
+
+ String us = "/profile/upload/0071.jpg";
+ documentMaterialsService.updateByPageNumber(nam, sizeType, fileNumber,wid, hei,wdpi, hdpi, sz, fileName1, "jpg", recordId);
+
+
+ }
+ else
+ {
+ //鏂囦欢鍚嶇О
+ String pname = nams[1];
+ ajax.put("url", url);
+ //鎷垮埌鍥惧儚灞炴��
+ BufferedImage bufferedImage = ImageIO.read(file.getInputStream());
+ int wid = bufferedImage.getWidth();
+ int hei = bufferedImage.getHeight();
+ double sz = Double.parseDouble(String.format("%.2f", file.getSize()*1.0/1024));
+ System.out.println(wid+":"+hei+":"+sz);
+ //鎷垮埌鍥惧儚鐨刣pi淇℃伅
+
+ ImageInfo info = Imaging.getImageInfo(file.getBytes());
+
+
+ int wdpi = info.getPhysicalWidthDpi() ;
+ int hdpi = info.getPhysicalHeightDpi();
+ System.out.println("DPI: " + info.getPhysicalWidthDpi());
+ //璁$畻fileNumber
+ Long fileNumber = documentMaterialsService.getFiNum(nam, recordId);
+ //璁$畻sizeType
+ String sizeType = getPageSize(wid*hei);
+ //鎻掑叆鏁版嵁搴撳搴旂殑url褰撲腑
+ documentMaterialsService.updateByPageNumber(nam, sizeType, fileNumber,wid, hei,wdpi, hdpi, sz, fileName, pname, recordId);
+//
+ }
+ }
+ System.out.println(url);
// System.out.println(fileName);
ajax.put("fileName", fileName);
// System.out.println(FileUtils.getName(fileName));
@@ -216,4 +340,6 @@
ExcelUtil<DocumentMaterialFileSmallVo> util = new ExcelUtil<>(DocumentMaterialFileSmallVo.class);
util.exportExcel(response,list,"妗f璇︾粏淇℃伅瀵煎叆妯℃澘");
}
+
+ //瀵煎嚭material
}
--
Gitblit v1.9.1