diff --git a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java index 7e6d46f..8529add 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; @@ -1556,6 +1555,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 +1581,24 @@ public class TemplateSearchController { emrPdfWaterSet.setIsImg(emrPdfWaterSet.getDownloadIsImg()); 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) { + String pdfPath = detail.getPdfPath(); + if (StringUtils.isNotBlank(pdfPath)) { + filePaths.add(pdfPath); + } + } + 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().trim()+ "_" + formattedDate.format(formattedDate); + 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..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; @@ -285,73 +286,73 @@ 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"); + filename = 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