From 59fd24f97c2e87f955f30184dbc490aadae6e34f Mon Sep 17 00:00:00 2001 From: linjj <850658129@qq.com> Date: Wed, 16 Jul 2025 11:46:01 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=BD=AE=E5=B7=9E=E4=BA=BA=E5=8C=BB?= =?UTF-8?q?=E5=B8=B8=E7=94=A8=E6=9F=A5=E8=AF=A2=E6=97=A0=E6=B3=95=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E4=B8=8B=E8=BD=BDPDF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TemplateSearchController.java | 14 +++++++ src/main/java/com/emr/util/Jpg2PdfUtil.java | 37 +++++++++---------- .../resources/mapper/Archive_DetailMapper.xml | 4 +- 3 files changed, 33 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java index 90a625d..7f6cf24 100644 --- a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java +++ b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java @@ -1556,6 +1556,7 @@ public class TemplateSearchController { @ResponseBody public void downloadPdfBlood(HttpServletResponse response, String patientIds, String assortIds, Integer typeId, String flag) { if (StringUtils.isNoneBlank(patientIds)) { + List filePaths = new ArrayList<>(); try { if (StringUtils.isNotBlank(assortIds)) { String[] assortIdStr = assortIds.split(","); @@ -1581,6 +1582,19 @@ public class TemplateSearchController { emrPdfWaterSet.setIsImg(emrPdfWaterSet.getDownloadIsImg()); EmrPdfWaterSet emrPdfWaterSet1 = commomService.getEmrPdfWaterSet(emrPdfWaterSet); imgToPdfUtil.imageToPdf(response, scanPathVos, pdfName, emrPdfWaterSet,emrPdfWaterSet1); + }else { + List archiveDetails = archiveDetailMapper.selectPdfPathByPatient(patientIds, assortIds); + if (null != archiveDetails && !archiveDetails.isEmpty()) { + for (Archive_Detail detail : archiveDetails) { + String pdfPath = detail.getPdfPath(); + if (StringUtils.isNotBlank(pdfPath)) { + filePaths.add(pdfPath); + } + } + SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd"); + String filename = fmt.format(new Date()); + Jpg2PdfUtil.mulFile2One3(response, filePaths, filename); + } } } catch (Exception e) { ExceptionPrintUtil.printException(e); diff --git a/src/main/java/com/emr/util/Jpg2PdfUtil.java b/src/main/java/com/emr/util/Jpg2PdfUtil.java index 185ddbc..de8e250 100644 --- a/src/main/java/com/emr/util/Jpg2PdfUtil.java +++ b/src/main/java/com/emr/util/Jpg2PdfUtil.java @@ -285,73 +285,72 @@ public class Jpg2PdfUtil { } } - public static void mulFile2One3(HttpServletResponse response, List filePaths, String filename, EmrPdfWaterSet emrPdfWaterSet) { - String waterMarkName = ""; - SimpleDateFormat fmt= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + public static void mulFile2One3(HttpServletResponse response,List filePaths,String filename) { + String waterMarkName=""; + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //遍历删除,除去损坏,文件不存在,抛异常就是空白页 Iterator iterator = filePaths.iterator(); while (iterator.hasNext()) { String fileStr = iterator.next(); File file = new File(fileStr); - if (file.isFile()) { + if(file.isFile()){ boolean flag = check(fileStr); - if (!flag) { + if(!flag){ iterator.remove(); - System.out.println(fmt.format(new Date()) + ":" + file + "文件损坏"); + System.out.println(fmt.format(new Date())+":"+file+"文件损坏"); } - } else { + }else{ iterator.remove(); - System.out.println(fmt.format(new Date()) + ":" + file + "文件不存在"); + System.out.println(fmt.format(new Date())+":"+file+"文件不存在"); } } - if (!filePaths.isEmpty()) { + if(!filePaths.isEmpty()){ // pdf合并工具类 Document document = null; PdfCopy copy = null; try { - filename = java.net.URLEncoder.encode(filename, "UTF-8"); response.reset(); response.setCharacterEncoding("utf-8"); response.setContentType("application/pdf"); response.setHeader("Content-Disposition", "attachment; filename=" + filename + ".pdf"); document = new Document(new PdfReader(filePaths.get(0)).getPageSize(1)); - copy = new PdfCopy(document, response.getOutputStream()); + copy = new PdfCopy(document,response.getOutputStream()); document.open(); for (String file : filePaths) { PdfReader reader = new PdfReader(file); ByteArrayOutputStream bos = new ByteArrayOutputStream(); PdfReader pdfReader = null; //判断是否加水印 - if (emrPdfWaterSet.getDownloadEffective() == 1) { - setWatermark(bos, reader, emrPdfWaterSet.getText(), null); + if (StringUtils.isNotBlank(waterMarkName)) { + setWatermark(bos, reader, waterMarkName, null); pdfReader = new PdfReader(bos.toByteArray()); } int n = reader.getNumberOfPages(); for (int j = 1; j <= n; j++) { document.newPage(); PdfImportedPage page = null; - if (emrPdfWaterSet.getDownloadEffective() == 1) { + if (StringUtils.isNotBlank(waterMarkName)) { page = copy.getImportedPage(pdfReader, j); } else { page = copy.getImportedPage(reader, j); } copy.addPage(page); } - if (null != pdfReader) { + if(null != pdfReader){ pdfReader.close(); } reader.close(); try { bos.flush(); bos.close(); - } catch (Exception e) { + }catch (Exception e){ //e.printStackTrace(); } } - } catch (Exception e) { + }catch (Exception e){ //e.printStackTrace(); - } finally { - if (null != document) { + }finally { + if(null != document){ document.close(); } } diff --git a/src/main/resources/mapper/Archive_DetailMapper.xml b/src/main/resources/mapper/Archive_DetailMapper.xml index c2a8cec..40ebbac 100644 --- a/src/main/resources/mapper/Archive_DetailMapper.xml +++ b/src/main/resources/mapper/Archive_DetailMapper.xml @@ -100,9 +100,7 @@ LEFT JOIN zd_assort ON archive_detail.AssortID = zd_assort.assort_id WHERE - MasterID = ${patientId} and flag != 1 - AND - AssortID in (${assortIds}) + MasterID = #{patientId} ORDER BY zd_assort.assort_sort,UpLoadDateTime From 5481df324518ffe9bed817a7064daebd9f951d57 Mon Sep 17 00:00:00 2001 From: linjj <850658129@qq.com> Date: Wed, 16 Jul 2025 12:32:26 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=BD=AE=E5=B7=9E=E4=BA=BA=E5=8C=BB?= =?UTF-8?q?=E5=B8=B8=E7=94=A8=E6=9F=A5=E8=AF=A2=E4=B8=8B=E8=BD=BDPDF,?= =?UTF-8?q?=E4=B8=8B=E8=BD=BDPDF=E6=97=B6=E8=A7=84=E8=8C=83=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E6=96=87=E4=BB=B6=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templateSearch/TemplateSearchController.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java index 08e4358..5dfcf4e 100644 --- a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java +++ b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java @@ -5,10 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.emr.annotation.OptionalLog; import com.emr.controller.FormTokenFlagUtil; import com.emr.controller.JAXDynamicClientFactory; -import com.emr.dao.Archive_DetailMapper; -import com.emr.dao.CommomMapper; -import com.emr.dao.EmrComomSetMapper; -import com.emr.dao.Emr_DictionaryMapper; +import com.emr.dao.*; import com.emr.dao.approve.Emr_Apply_ApproveMapper; import com.emr.dao.commomSearch.ScanPathMapper; import com.emr.dao.emrPdfWaterSet.EmrPdfWaterSetMapper; @@ -121,6 +118,8 @@ public class TemplateSearchController { private CommomService commomService; @Autowired private Archive_DetailMapper archiveDetailMapper; + @Autowired + private Archive_MasterMapper archiveMasterMapper; @Value("${export_pdf_hospital_info}") private String hospitaInfo; @@ -1583,6 +1582,8 @@ public class TemplateSearchController { EmrPdfWaterSet emrPdfWaterSet1 = commomService.getEmrPdfWaterSet(emrPdfWaterSet); imgToPdfUtil.imageToPdf(response, scanPathVos, pdfName, emrPdfWaterSet,emrPdfWaterSet1); }else { + //查询患者信息 + List merInfo = scanPathMapper.selectFilaname(patientIds); List archiveDetails = archiveDetailMapper.selectPdfPathByPatient(patientIds, assortIds); if (null != archiveDetails && !archiveDetails.isEmpty()) { for (Archive_Detail detail : archiveDetails) { @@ -1591,8 +1592,11 @@ public class TemplateSearchController { filePaths.add(pdfPath); } } - SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd"); - String filename = fmt.format(new Date()); + SimpleDateFormat originalFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat targetFormat = new SimpleDateFormat("yyyyMMdd"); + Date date = originalFormat.parse(merInfo.get(0).getDisDate()); + String formattedDate = targetFormat.format(date); + String filename = hospitaInfo+ "_" +merInfo.get(0).getInpatientNo()+ "_" + formattedDate.format(formattedDate); Jpg2PdfUtil.mulFile2One3(response, filePaths, filename); } } From 09c4796afcf912aeb94f5f6406fc9ea1605ed492 Mon Sep 17 00:00:00 2001 From: linjj <850658129@qq.com> Date: Wed, 16 Jul 2025 12:50:48 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=BD=AE=E5=B7=9E=E4=BA=BA=E5=8C=BB?= =?UTF-8?q?=E5=B8=B8=E7=94=A8=E6=9F=A5=E8=AF=A2=E4=B8=8B=E8=BD=BDPDF?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=90=8D=E4=BD=8F=E9=99=A2=E5=8F=B7=E5=90=8E?= =?UTF-8?q?=E6=9C=89=E7=A9=BA=E6=A0=BC=E5=8E=BB=E6=8E=89=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../emr/controller/templateSearch/TemplateSearchController.java | 2 +- src/main/java/com/emr/util/Jpg2PdfUtil.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java index 5dfcf4e..8529add 100644 --- a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java +++ b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java @@ -1596,7 +1596,7 @@ public class TemplateSearchController { SimpleDateFormat targetFormat = new SimpleDateFormat("yyyyMMdd"); Date date = originalFormat.parse(merInfo.get(0).getDisDate()); String formattedDate = targetFormat.format(date); - String filename = hospitaInfo+ "_" +merInfo.get(0).getInpatientNo()+ "_" + formattedDate.format(formattedDate); + String filename = hospitaInfo+ "_" +merInfo.get(0).getInpatientNo().trim()+ "_" + formattedDate.format(formattedDate); Jpg2PdfUtil.mulFile2One3(response, filePaths, filename); } } diff --git a/src/main/java/com/emr/util/Jpg2PdfUtil.java b/src/main/java/com/emr/util/Jpg2PdfUtil.java index de8e250..56be938 100644 --- a/src/main/java/com/emr/util/Jpg2PdfUtil.java +++ b/src/main/java/com/emr/util/Jpg2PdfUtil.java @@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletResponse; import java.awt.*; import java.io.*; import java.net.URL; +import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; @@ -309,6 +310,7 @@ public class Jpg2PdfUtil { Document document = null; PdfCopy copy = null; try { + filename = URLEncoder.encode(filename, "UTF-8"); response.reset(); response.setCharacterEncoding("utf-8"); response.setContentType("application/pdf");