| | |
| | | |
| | | |
| | | |
| | | import java.awt.*; |
| | | import java.awt.image.BufferedImage; |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.File; |
| | | import java.io.InputStream; |
| | | import java.io.*; |
| | | import java.nio.file.Files; |
| | | import java.nio.file.Path; |
| | | import java.nio.file.Paths; |
| | |
| | | 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.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.*; |
| | |
| | | @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); |
| | | return AjaxResult.success(res); |
| | | } |
| | | /** |
| | | * 查询【文件材料综合信息】列表 |
| | | */ |
| | |
| | | @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); |
| | |
| | | @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); |
| | | // 如果提供了ids参数,则根据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, "【文件材料综合信息】数据"); |
| | | } |
| | |
| | | else{ |
| | | if(doc.getSecurityLevel().equals("该页另存")) |
| | | { |
| | | |
| | | //替换为了准备好的图像 |
| | | //读取服务器上的图像 |
| | | // new InputStream(); |
| | | String fp = filePath + "\\0071.jpg"; |
| | | String fp = filePath + "\\glc.jpg"; |
| | | Path path = Paths.get(fp); |
| | | File fil = new File(fp); |
| | | //拿到图像属性 |
| | |
| | | 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 { |
| | | //创建一个ByteArrayOutputStream |
| | | ByteArrayOutputStream os = new ByteArrayOutputStream(); |
| | | //把BufferedImage写入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, us, "jpg", recordId); |
| | | documentMaterialsService.updateByPageNumber(nam, sizeType, fileNumber,wid, hei,wdpi, hdpi, sz, fileName1, "jpg", recordId); |
| | | |
| | | |
| | | } |
| | |
| | | ExcelUtil<DocumentMaterialFileSmallVo> util = new ExcelUtil<>(DocumentMaterialFileSmallVo.class); |
| | | util.exportExcel(response,list,"档案详细信息导入模板"); |
| | | } |
| | | |
| | | //导出material |
| | | } |