From 6f31a7ec7b9c1d7d8190900b22e861eae2851200 Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期三, 11 六月 2025 09:31:01 +0800 Subject: [PATCH] 0611 --- ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java | 317 ++++++++++++++++++++++------------------------------ 1 files changed, 133 insertions(+), 184 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java index c7cd8a3..af8ff5f 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java @@ -33,6 +33,7 @@ import com.ltkj.system.service.ISysUserService; import com.ltkj.web.config.pdfutils.PdfUtils; import com.ltkj.web.controller.system.SysDeptController; +import jodd.util.StringUtil; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -92,8 +93,8 @@ private LtkjHysqdService ltkjHysqdService; @Autowired private LtkjGetexamreportinfoService ltkjGetexamreportinfoService; - @Value("${path.filePath}") - private String value; +// @Value("${path.filePath}") +// private String value; @Value("${path.reportServer}") private String urlValue; @Autowired @@ -124,6 +125,8 @@ private TjOrderYcxmService ycxmService; @Resource private TjXdtgmdjgService xdtgmdjgService; + @Autowired + private TjReportSpecialProjectService tjReportSpecialProjectService; private Integer pdfPage = 0; @@ -872,6 +875,7 @@ String s2 = sysConfigService.selectConfigByKey("tjreport_font_size_second_page_title"); String s3 = sysConfigService.selectConfigByKey("tjreport_font_size_result_title"); String s4 = sysConfigService.selectConfigByKey("tjreport_font_size_zongjian"); + String value = sysConfigService.selectConfigByKey("path_filePath"); // String hospName = sysDeptController.getdangqiandengluyuanqu().get("msg").toString(); if (StrUtil.isNotBlank(s1) && Integer.parseInt(s1) > 10) DEFAULT_FONT_SIZE = Integer.parseInt(s1); else DEFAULT_FONT_SIZE = 10; @@ -1342,10 +1346,16 @@ } - LambdaQueryWrapper<TjXdtgmdjg> wqq=new LambdaQueryWrapper<>(); - wqq.eq(TjXdtgmdjg::getTjh,tjOrder.getTjNumber()); - wqq.isNotNull(TjXdtgmdjg::getUrl); - List<TjXdtgmdjg> xdtgmdjgList = xdtgmdjgService.list(wqq); + String isPdfFujianPro = sysConfigService.selectConfigByKey("is_pdf_fujian_pro"); + List<TjXdtgmdjg> xdtgmdjgList; + if (StrUtil.isNotBlank(isPdfFujianPro) && isPdfFujianPro.equalsIgnoreCase("Y")){ + xdtgmdjgList = xdtgmdjgService.xdtGlAttProByTjNum(tjOrder.getTjNumber()); + }else { + LambdaQueryWrapper<TjXdtgmdjg> wqq=new LambdaQueryWrapper<>(); + wqq.eq(TjXdtgmdjg::getTjh,tjOrder.getTjNumber()); + wqq.isNotNull(TjXdtgmdjg::getUrl); + xdtgmdjgList = xdtgmdjgService.list(wqq); + } int index=1; for (TjXdtgmdjg xdtgmdjg : xdtgmdjgList) { @@ -1675,6 +1685,7 @@ */ private void savePDFFile(String outputFileName1, TjOrder tjOrder, TjCustomer customer, ByteArrayOutputStream finalOutPut) throws IOException, DocumentException, InterruptedException { // 绗竴姝ワ細鐢熸垚鏂囦欢骞朵繚瀛� + String value = sysConfigService.selectConfigByKey("path_filePath"); String outputPath1 = value + File.separator; File file = new File(outputPath1 + outputFileName1); BufferedOutputStream outputStream = null; @@ -1787,6 +1798,7 @@ * @throws DocumentException */ private void notHuaYanTable(Document document1, Map<TjOrderRemark, List<TjPdfVO>> printReport, DictHosp dictHosp, String colorStr, boolean isPacs) throws DocumentException { + List<TjReportSpecialProject> tjReportSpecialProjects = tjReportSpecialProjectService.list(); for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) { LambdaQueryWrapper<TjProject> wqqq = new LambdaQueryWrapper<>(); wqqq.eq(TjProject::getProId, entry.getKey().getProId()); @@ -1834,43 +1846,12 @@ // if (dictHosp.getHospName().equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌") && !value.isEmpty()){ if (!value.isEmpty()) { if (value.size() > 1) { - if (value.get(0).getPid().equals("1862852701533012001")) { - Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); - Paragraph ppp = new Paragraph("闃虫�у弬鑰冨�硷細", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph("DOB鍊硷細 鈮� 4.0 HP-闃虫��", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph(" < 4.0 姝e父", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - - ppp = new Paragraph("妫�娴嬬粨鏋滐細 DOB=" + value.get(0).getProResult(), remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph("", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - ppp = new Paragraph("", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - if (StrUtil.isNotBlank(entry.getKey().getRemark())) { - ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - } + Long pid = Long.valueOf(value.get(0).getPid()); + Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream() + .filter(item -> item.getProId().equals(pid)) + .findFirst(); + if (match.isPresent()) { + reportSpecialProject(document1, entry, paragraph, value,match.get()); } else { String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉", "鍗曚綅"}; Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); @@ -1899,43 +1880,12 @@ // paragraph.setLeading(5f); // document1.add(ppp); } else { - if (value.get(0).getPid().equals("1862852701533012001")) { - remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); - Paragraph ppp = new Paragraph("闃虫�у弬鑰冨�硷細", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph("DOB鍊硷細 鈮� 4.0 HP-闃虫��", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph(" < 4.0 姝e父", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - - ppp = new Paragraph("妫�娴嬬粨鏋滐細 DOB=" + value.get(0).getProResult(), remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph("", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - ppp = new Paragraph("", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - if (StrUtil.isNotBlank(entry.getKey().getRemark())) { - ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - } + Long pid = Long.valueOf(value.get(0).getPid()); + Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream() + .filter(item -> item.getProId().equals(pid)) + .findFirst(); + if (match.isPresent()) { + reportSpecialProject(document1, entry, paragraph, value,match.get()); } else { String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉"}; Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); @@ -2022,43 +1972,12 @@ // if (dictHosp.getHospName().equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌") && !value.isEmpty()){ if (!value.isEmpty()) { if (value.size() > 1) { - if (value.get(0).getPid().equals("1862852701533012001")) { - Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); - Paragraph ppp = new Paragraph("闃虫�у弬鑰冨�硷細", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph("DOB鍊硷細 鈮� 4.0 HP-闃虫��", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph(" < 4.0 姝e父", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - - ppp = new Paragraph("妫�娴嬬粨鏋滐細 DOB=" + value.get(0).getProResult(), remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph("", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - ppp = new Paragraph("", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - if (StrUtil.isNotBlank(entry.getKey().getRemark())) { - ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - } + Long pid = Long.valueOf(value.get(0).getPid()); + Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream() + .filter(item -> item.getProId().equals(pid)) + .findFirst(); + if (match.isPresent()) { + reportSpecialProject(document1, entry, paragraph, value,match.get()); } else { String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉", "鍗曚綅"}; Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); @@ -2073,26 +1992,36 @@ if (isPacs) { Paragraph pp; Paragraph ppp; - String key = sysConfigService.selectConfigByKey("makepdfuseorderdetailproresult"); - if (StrUtil.isNotBlank(key) && !key.equals("Y")){ - if (StrUtil.isNotBlank(value.get(0).getSj())) { - pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ墍瑙侊細"); - document1.add(pp); - ppp = new Paragraph(value.get(0).getSj(), remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - } - }else { - if (StrUtil.isNotBlank(value.get(0).getSj()) && StrUtil.isNotBlank(value.get(0).getProResult())) { - pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ墍瑙侊細"); - document1.add(pp); - ppp = new Paragraph(value.get(0).getSj() != null ? value.get(0).getSj() : value.get(0).getProResult(), remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - } +// String key = sysConfigService.selectConfigByKey("makepdfuseorderdetailproresult"); +// if (StrUtil.isNotBlank(key) && !key.equals("Y")){ +// if (StrUtil.isNotBlank(value.get(0).getSj())) { +// pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ墍瑙侊細"); +// document1.add(pp); +// ppp = new Paragraph(value.get(0).getSj(), remarkFonts); +// paragraph.setAlignment(Element.ALIGN_LEFT); +// paragraph.setLeading(5f); +// document1.add(ppp); +// } +// }else { +// if (StrUtil.isNotBlank(value.get(0).getSj()) || StrUtil.isNotBlank(value.get(0).getProResult())) { +// pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ墍瑙侊細"); +// document1.add(pp); +// ppp = new Paragraph(value.get(0).getSj() != null ? value.get(0).getSj() : value.get(0).getProResult(), remarkFonts); +// paragraph.setAlignment(Element.ALIGN_LEFT); +// paragraph.setLeading(5f); +// document1.add(ppp); +// } +// } + + if (StrUtil.isNotBlank(value.get(0).getSj()) || StrUtil.isNotBlank(value.get(0).getProResult())) { + pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ墍瑙侊細"); + document1.add(pp); + ppp = new Paragraph(value.get(0).getSj() != null ? value.get(0).getSj() : value.get(0).getProResult(), remarkFonts); + paragraph.setAlignment(Element.ALIGN_LEFT); + paragraph.setLeading(5f); + document1.add(ppp); } + pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ彁绀猴細"); document1.add(pp); ppp = new Paragraph((value.get(0).getTs() != null ? value.get(0).getTs() : value.get(0).getProResult()), remarkFonts); @@ -2104,43 +2033,12 @@ // paragraph.setLeading(5f); // document1.add(ppp); } else { - if (value.get(0).getPid().equals("1862852701533012001")) { - remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); - Paragraph ppp = new Paragraph("闃虫�у弬鑰冨�硷細", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph("DOB鍊硷細 鈮� 4.0 HP-闃虫��", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph(" < 4.0 姝e父", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - - ppp = new Paragraph("妫�娴嬬粨鏋滐細 DOB=" + value.get(0).getProResult(), remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - - ppp = new Paragraph("", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - ppp = new Paragraph("", remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - if (StrUtil.isNotBlank(entry.getKey().getRemark())) { - ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); - } + Long pid = Long.valueOf(value.get(0).getPid()); + Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream() + .filter(item -> item.getProId().equals(pid)) + .findFirst(); + if (match.isPresent()) { + reportSpecialProject(document1, entry, paragraph, value,match.get()); } else { String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉"}; Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); @@ -2198,6 +2096,57 @@ } } } + } + } + + /** + * 鐩墠鍐欐 鍙湁纰�13銆�14 妯℃澘閮芥槸涓�鏍风殑鍙笉杩囧弬鑰冨�间笉鍚� + * 鍑屼簯锛歿"dy":"4.0","xy":"4.0","title":"闃虫�у弬鑰冨�硷細","dystr":"DOB鍊硷細 鈮� ${dy} HP-闃虫��","xystr":" < ${xy} 姝e父","en":"DOB"} + * 娉惧窛鍘垮尰闄細{"dy":"100","xy":"100","title":"鍙傝�冨��(DPM)锛�","dystr":"DPM鍊硷細 鈮� ${dy} 闃虫��","xystr":" < ${xy} 闃存��","en":"DPM"} + * @param document1 + * @param entry + * @param paragraph + * @param value + * @param tjReportSpecialProject + * @throws DocumentException + */ + private static void reportSpecialProject(Document document1, Map.Entry<TjOrderRemark, List<TjPdfVO>> entry, Paragraph paragraph, List<TjPdfVO> value,TjReportSpecialProject tjReportSpecialProject) throws DocumentException { + JSONObject entries = JSONUtil.parseObj(tjReportSpecialProject.getParams()); + Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); + Paragraph ppp = new Paragraph(entries.getStr("title"), remarkFonts); + paragraph.setAlignment(Element.ALIGN_LEFT); + paragraph.setLeading(5f); + document1.add(ppp); + + ppp = new Paragraph(entries.getStr("dystr").replace("${dy}",entries.getStr("dy")), remarkFonts); + paragraph.setAlignment(Element.ALIGN_LEFT); + paragraph.setLeading(5f); + document1.add(ppp); + + ppp = new Paragraph(entries.getStr("xystr").replace("${xy}",entries.getStr("xy")), remarkFonts); + paragraph.setAlignment(Element.ALIGN_LEFT); + paragraph.setLeading(5f); + document1.add(ppp); + + + ppp = new Paragraph("妫�娴嬬粨鏋滐細 "+entries.getStr("en")+"=" + value.get(0).getProResult(), remarkFonts); + paragraph.setAlignment(Element.ALIGN_LEFT); + paragraph.setLeading(5f); + document1.add(ppp); + + ppp = new Paragraph("", remarkFonts); + paragraph.setAlignment(Element.ALIGN_LEFT); + paragraph.setLeading(5f); + document1.add(ppp); + ppp = new Paragraph("", remarkFonts); + paragraph.setAlignment(Element.ALIGN_LEFT); + paragraph.setLeading(5f); + document1.add(ppp); + if (StrUtil.isNotBlank(entry.getKey().getRemark())) { + ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts); + paragraph.setAlignment(Element.ALIGN_LEFT); + paragraph.setLeading(5f); + document1.add(ppp); } } @@ -2561,7 +2510,7 @@ // List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.list(wqq); List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.notHuaYanData(tjNumber); for (TjOrderRemark tjOrderRemark : tjOrderRemarks) { - printReport.put(tjOrderRemark, null); + printReport.put(tjOrderRemark,null); } for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) { List<TjPdfVO> tjPdfVOS = new ArrayList<>(); @@ -2656,8 +2605,16 @@ if (null != list && !list.isEmpty()) { LtkjExamJcbgd jcbgd = list.get(0); if (jcbgd != null) { - tjPdfVO.setTs(jcbgd.getYxbx()); - tjPdfVO.setSj(jcbgd.getBgNr()); + String yxbx = jcbgd.getYxbx(); + String bgNr = jcbgd.getBgNr(); + // 姝e垯琛ㄨ揪寮忥細鍖归厤鏁板瓧鍚庤窡 '.' 鎴� '銆�' + String regex = "\\d+[\\.,銆乚"; + // 浣跨敤姝e垯鏇挎崲锛屽尮閰嶇殑鏁板瓧鍚庢坊鍔犳崲琛岀 + if(StringUtil.isNotBlank(yxbx)) yxbx = yxbx.replaceAll(regex, "\n$0"); + if(StringUtil.isBlank(bgNr)) bgNr = ""; + if(StringUtil.isBlank(yxbx)) yxbx = ""; + tjPdfVO.setTs(yxbx); + tjPdfVO.setSj(bgNr); tjPdfVO.setShys(jcbgd.getShysxm()); tjPdfVO.setProName(jcbgd.getXmmc()); ids += "|" + jcbgd.getXmdm(); @@ -2667,14 +2624,6 @@ } } } -// if(!tjPdfVOS.isEmpty()){ -// tjPdfVOS=tjPdfVOS.stream().sorted(Comparator.comparing(TjPdfVO::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList()); -// tjPdfVOS = tjPdfVOS.stream() -// .sorted(Comparator.comparingInt( -// tjPdfVO -> tjPdfVO.getProName().length() // 鏍规嵁鍚嶅瓧鐨勯暱搴︽帓搴� -// )) -// .collect(Collectors.toList()); -// } printReport.put(entry.getKey(), tjPdfVOS); } } -- Gitblit v1.8.0