From eb5cbad5c42e0d1b709996106275358b840e7c42 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期五, 18 七月 2025 18:09:40 +0800 Subject: [PATCH] zjh20250718 --- ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java | 1015 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 737 insertions(+), 278 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 b24b97e..5ab0002 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 @@ -34,8 +34,10 @@ 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 net.sf.ehcache.search.aggregator.Count; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -47,6 +49,9 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.math.BigDecimal; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.text.Collator; import java.text.SimpleDateFormat; import java.util.*; @@ -90,8 +95,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 @@ -120,6 +125,8 @@ private ITjProAdvicerulesService tjProAdvicerulesService; @Autowired private TjOrderYcxmService ycxmService; + @Resource + private TjXdtgmdjgService xdtgmdjgService; private Integer pdfPage = 0; @@ -868,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; @@ -995,137 +1003,177 @@ // List<Map<String, Object>> jiancha = new ArrayList<>(); - paragraph = PdfUtils.setParagraph(defaultTitleFont, "妫�鏌ョ患杩帮細"); - paragraph.setSpacingBefore(3f); - paragraph.setSpacingAfter(2f); - document2.add(paragraph); int xmXh = 1; - -// orderDetails=orderDetails.stream().sorted(Comparator.comparing(TjOrderDetail::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList()); -// orderDetails = orderDetails.stream() -// .sorted(Comparator.comparingInt( -// tjPdfVO -> tjPdfVO.getProName().length() // 鏍规嵁鍚嶅瓧鐨勯暱搴︽帓搴� -// )) -// .collect(Collectors.toList()); - Map<Long, List<TjOrderDetail>> collect = orderDetails.stream().collect(Collectors.groupingBy(TjOrderDetail::getProId)); - for (Map.Entry<String, List<CsProVo>> deptEntry : listMap.entrySet()) { - List<CsProVo> proVos = deptEntry.getValue(); - if (proVos.size() > 1) { - proVos = proVos.stream() - .sorted(Comparator.comparingLong(CsProVo::getProId)) - .collect(Collectors.toList()); - } - // 宸茬粡閬嶅巻杩囩殑 - ArrayList<String> jianYanYiDa = new ArrayList<>(); - for (CsProVo proVo : proVos) { + LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>(); + wq.eq(TjOrderYcxm::getTjh, tjOrder.getTjNumber()); + List<TjOrderYcxm> ycxms = ycxmService.list(wq); + boolean isBr = false; + if (null != ycxms && !ycxms.isEmpty()) { - // 妫�鏌� - for (Map.Entry<Long, List<TjOrderDetail>> entry : collect.entrySet()) { - if (!entry.getKey().equals(proVo.getProId())) continue; - List<TjOrderDetail> details = entry.getValue(); - String xmmc = proVo.getProName(); -// String xmmc = details.get(0).getProName(); - boolean isXmWrite = false; + paragraph = PdfUtils.setParagraph(defaultTitleFont, "妫�鏌ョ患杩帮細"); + paragraph.setSpacingBefore(3f); + paragraph.setSpacingAfter(2f); + document2.add(paragraph); + isBr = true; -// details=details.stream().sorted(Comparator.comparing(TjOrderDetail::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList()); -// details = details.stream() -// .sorted(Comparator.comparingInt( -// tjPdfVO -> tjPdfVO.getProName().length() // 鏍规嵁鍚嶅瓧鐨勯暱搴︽帓搴� -// )) -// .collect(Collectors.toList()); - int index = 1; - for (TjOrderDetail detail : details) { -// if (!entry.getKey().equals(detail.getProId())) continue; - if (!isXmWrite) { - paragraph = new Paragraph(xmXh + ". " + xmmc, defaultFont); - paragraph.setAlignment(Element.ALIGN_LEFT); - document2.add(paragraph); - isXmWrite = true; - } - String result = detail.getProResult(); - if (StrUtil.isNotBlank(result)) { - result = result.replaceAll("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", ""); -// result = result.replaceAll("", ""); -// String[] split = result.split("\n"); -// StringBuilder builder = new StringBuilder(); -// for (String s : split) { -// if (StrUtil.isBlank(s.replaceAll("\n", "").trim())) continue; -// builder.append(" (").append(index).append(")").append(s).append("\n"); -// index++; -// } - StringBuilder builder = new StringBuilder(); - if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue; - builder.append(" (").append(index).append(")").append(detail.getProName()).append(": ").append(result).append("\n"); - index++; + Map<String, List<TjOrderYcxm>> stringListMap = ycxms.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName)); - result = builder.toString(); - } - paragraph = new Paragraph(result, defaultFont); + for (Map.Entry<String, List<TjOrderYcxm>> entry : stringListMap.entrySet()) { + List<TjOrderYcxm> details = entry.getValue(); + String xmmc = entry.getKey(); + boolean isXmWrite = false; + int index = 1; + for (TjOrderYcxm detail : details) { + if (!isXmWrite) { + paragraph = new Paragraph(xmXh + ". " + xmmc, defaultFont); paragraph.setAlignment(Element.ALIGN_LEFT); document2.add(paragraph); + isXmWrite = true; } - if (isXmWrite) { - paragraph = PdfUtils.setParagraph(defaultFont, ""); - paragraph.setLeading(0f); - paragraph.setSpacingBefore(0f); - paragraph.setSpacingAfter(5f); - document2.add(paragraph); - xmXh++; - } - } + String result = detail.getJcjg(); + if (StrUtil.isNotBlank(result)) { + result = result.replaceAll("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", ""); + StringBuilder builder = new StringBuilder(); + if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue; - // 妫�楠� - for (Map.Entry<String, Object> item : map.entrySet()) { - String xmmc = item.getKey(); - HashMap<String, Object> entryValue = (HashMap<String, Object>) item.getValue(); - ArrayList<List<String>> lists = (ArrayList<List<String>>) entryValue.get("data"); - boolean isXmWrite = false; - int index = 1; - for (List<String> i : lists) { - if (!i.get(6).contains(String.valueOf(proVo.getProId()))) continue; - if (i.contains("鈫�") || i.contains("鈫�")) { - if (jianYanYiDa.contains(i.get(5))) continue; - jianYanYiDa.add(i.get(5)); + builder.append(" (").append(index).append(")").append(detail.getJcxm()).append(": ") + .append(result.replaceAll("\n", "").trim()).append("\n"); + index++; + + result = builder.toString(); + } + paragraph = new Paragraph(result, defaultFont); + paragraph.setAlignment(Element.ALIGN_LEFT); + document2.add(paragraph); + } + if (isXmWrite) { + paragraph = PdfUtils.setParagraph(defaultFont, ""); + paragraph.setLeading(0f); + paragraph.setSpacingBefore(0f); + paragraph.setSpacingAfter(5f); + document2.add(paragraph); + xmXh++; + } + } + } + /* else { + + if (!collect.isEmpty() || !map.isEmpty()){ + paragraph = PdfUtils.setParagraph(defaultTitleFont, "妫�鏌ョ患杩帮細"); + paragraph.setSpacingBefore(3f); + paragraph.setSpacingAfter(2f); + document2.add(paragraph); + isBr = true; + } + + for (Map.Entry<String, List<CsProVo>> deptEntry : listMap.entrySet()) { + List<CsProVo> proVos = deptEntry.getValue(); + if (proVos.size() > 1) { + proVos = proVos.stream() + .sorted(Comparator.comparingLong(CsProVo::getProId)) + .collect(Collectors.toList()); + } + // 宸茬粡閬嶅巻杩囩殑 + ArrayList<String> jianYanYiDa = new ArrayList<>(); + for (CsProVo proVo : proVos) { + + // 妫�鏌� + for (Map.Entry<Long, List<TjOrderDetail>> entry : collect.entrySet()) { + if (!entry.getKey().equals(proVo.getProId())) continue; + List<TjOrderDetail> details = entry.getValue(); + String xmmc = proVo.getProName(); +// String xmmc = details.get(0).getProName(); + boolean isXmWrite = false; + int index = 1; + for (TjOrderDetail detail : details) { +// if (!entry.getKey().equals(detail.getProId())) continue; if (!isXmWrite) { paragraph = new Paragraph(xmXh + ". " + xmmc, defaultFont); paragraph.setAlignment(Element.ALIGN_LEFT); document2.add(paragraph); isXmWrite = true; } - String content = " (" + index + ") " + i.get(0) + "锛�" + i.get(1) + " " + i.get(3) + " " + i.get(4) + " " + i.get(2); - paragraph = new Paragraph(content, defaultFont); + String result = detail.getProResult(); + if (StrUtil.isNotBlank(result)) { + result = result.replaceAll("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", ""); + StringBuilder builder = new StringBuilder(); + if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue; + builder.append(" (").append(index).append(")").append(detail.getProName()).append(": ").append(result).append("\n"); + index++; + + result = builder.toString(); + } + paragraph = new Paragraph(result, defaultFont); paragraph.setAlignment(Element.ALIGN_LEFT); document2.add(paragraph); - index++; + } + if (isXmWrite) { + paragraph = PdfUtils.setParagraph(defaultFont, ""); + paragraph.setLeading(0f); + paragraph.setSpacingBefore(0f); + paragraph.setSpacingAfter(5f); + document2.add(paragraph); + xmXh++; } } - if (isXmWrite) { - paragraph = PdfUtils.setParagraph(defaultFont, ""); - paragraph.setSpacingBefore(0f); - paragraph.setSpacingAfter(5f); - document2.add(paragraph); - xmXh++; + + // 妫�楠� + for (Map.Entry<String, Object> item : map.entrySet()) { + String xmmc = item.getKey(); + HashMap<String, Object> entryValue = (HashMap<String, Object>) item.getValue(); + ArrayList<List<String>> lists = (ArrayList<List<String>>) entryValue.get("data"); + boolean isXmWrite = false; + int index = 1; + for (List<String> i : lists) { + if (!i.get(6).contains(String.valueOf(proVo.getProId()))) continue; + if (i.contains("鈫�") || i.contains("鈫�")) { + if (jianYanYiDa.contains(i.get(5))) continue; + jianYanYiDa.add(i.get(5)); + if (!isXmWrite) { + paragraph = new Paragraph(xmXh + ". " + xmmc, defaultFont); + paragraph.setAlignment(Element.ALIGN_LEFT); + document2.add(paragraph); + isXmWrite = true; + } + String content = " (" + index + ") " + i.get(0) + "锛�" + i.get(1) + " " + i.get(3) + " " + i.get(4) + " " + i.get(2); + paragraph = new Paragraph(content, defaultFont); + paragraph.setAlignment(Element.ALIGN_LEFT); + document2.add(paragraph); + index++; + } + } + if (isXmWrite) { + paragraph = PdfUtils.setParagraph(defaultFont, ""); + paragraph.setSpacingBefore(0f); + paragraph.setSpacingAfter(5f); + document2.add(paragraph); + xmXh++; + } } } } + } */ + + + + if(isBr) { + paragraph = PdfUtils.setParagraph(defaultFont, ""); + paragraph.setLeading(0f); + paragraph.setSpacingBefore(10f); + paragraph.setSpacingAfter(10f); + document2.add(paragraph); } - paragraph = PdfUtils.setParagraph(defaultFont, ""); - paragraph.setLeading(0f); - paragraph.setSpacingBefore(10f); - paragraph.setSpacingAfter(10f); - document2.add(paragraph); - paragraph = PdfUtils.setParagraph(defaultTitleFont, "鍖荤敓寤鸿锛�"); - paragraph.setSpacingBefore(3f); - paragraph.setSpacingAfter(2f); - document2.add(paragraph); + xmXh = 0; - LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>(); - wq.eq(TjOrderYcxm::getTjh, tjOrder.getTjNumber()); - List<TjOrderYcxm> ycxms = ycxmService.list(wq); if (null != ycxms && !ycxms.isEmpty()) { + + paragraph = PdfUtils.setParagraph(defaultTitleFont, "鍖荤敓寤鸿锛�"); + paragraph.setSpacingBefore(3f); + paragraph.setSpacingAfter(2f); + document2.add(paragraph); Map<String, List<TjOrderYcxm>> stringListMap = ycxms.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName)); @@ -1151,7 +1199,8 @@ if (StrUtil.isNotBlank(result)) { StringBuilder builder = new StringBuilder(); if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue; - builder.append(" (").append(index1).append(")").append(detail.getJcxm()).append(": ").append(result).append("\n"); + builder.append(" (").append(index1).append(")").append(detail.getJcxm()).append(": ") + .append(result.replaceAll("\n", "").trim()).append("\n"); index1++; result = builder.toString(); @@ -1350,7 +1399,16 @@ } } }*/ - } else { + } + /* else { + + if (!collect.isEmpty() || !map.isEmpty()){ + paragraph = PdfUtils.setParagraph(defaultTitleFont, "鍖荤敓寤鸿锛�"); + paragraph.setSpacingBefore(3f); + paragraph.setSpacingAfter(2f); + document2.add(paragraph); + } + for (Map.Entry<String, List<CsProVo>> deptEntry : listMap.entrySet()) { List<CsProVo> proVos = deptEntry.getValue(); if (proVos.size() > 1) { @@ -1377,9 +1435,6 @@ } String result = detail.getProResult(); if (StrUtil.isNotBlank(result)) { -// result = result.replaceAll(" ","").replaceAll("\t",""); -// result = result.replaceAll("\n鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", ""); -// result = "\n " + result.replaceAll("\n", "\n "); int index1 = 1; String[] split = result.split("\n"); // boolean contains = result.contains("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�"); @@ -1390,15 +1445,8 @@ builder.append(" (").append(index1).append(")").append(s).append("\n"); index1++; } -// if (!contains) builder.append(" (").append(index1).append(")").append("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�"); -// if (!contains) builder.append(" (").append(index1).append(")").append(" "); -// else builder.substring(0,builder.length() - 1); result = builder.toString(); } -// String content = " (" + index + ") " + detail.getProName() + "锛�" + result; -// content = content.replaceAll("[\\n\\r]+$", ""); -// content = content.replaceAll("\\s+$", ""); -// paragraph = new Paragraph(content, defaultFont); if (StrUtil.isNotBlank(result)) { paragraph = new Paragraph(result, defaultFont); paragraph.setAlignment(Element.ALIGN_LEFT); @@ -1409,15 +1457,11 @@ document2.add(paragraph); } String str = " "; -// List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(entry.getKey().toString(),"", -// detail.getYcbz(),tjOrder.getTjNumber(),detail.getProName().replaceAll("[锛�(][^锛�)]*[锛�)]", "") -// .replaceAll("[ 娴嬪畾妫�娴媇",""),detail.getProResult()); List<Map<String, Object>> maps = new ArrayList<>(); if (detail.getDeptId().equals("2")) { String[] split = result.split("銆倈,|锛�"); for (String s : split) { s = s.replaceAll("\n", "").replaceAll("[锛�(][^锛�)]*[锛�)]", ""); -// Map<String,Object> mapss= tjRulesService.getyichangxiangmujianyiguizeJianCha(s); Map<String, Object> mapss = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(detail.getKs(), s, "0"); if (null != mapss) { Object bt = mapss.get("bt"); @@ -1430,7 +1474,6 @@ for (Map<String, Object> objectMap : collect1) { String content = str + objectMap.get("bt").toString() + objectMap.get("nr").toString(); -// if (StrUtil.isBlank(content)) content = " 鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�"; if (StrUtil.isBlank(content)) content = " "; paragraph = new Paragraph(content, defaultFont); paragraph.setAlignment(Element.ALIGN_LEFT); @@ -1467,38 +1510,14 @@ paragraph = new Paragraph(content, defaultFont); paragraph.setAlignment(Element.ALIGN_LEFT); document2.add(paragraph); - // 绗叚浣嶆槸lis椤圭洰id -// LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>(); -// wrapper.eq(TjProject::getLisXmbm,i.get(5)); -// TjProject project = projectService.getOne(wrapper); -// if (project != null) { -// LambdaQueryWrapper<TjRules> queryWrapper = new LambdaQueryWrapper<>(); -// queryWrapper.eq(TjRules::getProId,project.getProId()); -// List<TjRules> rules = tjRulesService.list(queryWrapper); -// if (!rules.isEmpty()){ -// -// } String str = " "; - List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(i.get(5), "", - i.get(2), tjOrder.getTjNumber(), i.get(0).replaceAll("[锛�(][^锛�)]*[锛�)]", "") - .replaceAll("[ 娴嬪畾妫�娴媇", ""), i.get(1)); + List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(i.get(5), i.get(0).replaceAll("[锛�(][^锛�)]*[锛�)]", "") + .replaceAll("[ 娴嬪畾妫�娴媇", "").replaceAll("\\[.*?\\]", ""), + i.get(2), tjOrder.getTjNumber(), i.get(0).replaceAll("[锛�(][^锛�)]*[\u4e00-\u9fa5]+[^锛�)]*[锛�)]", "") + .replaceAll("[ 娴嬪畾妫�娴媇", "").replaceAll("\\[.*?\\]", ""), i.get(1)); + if (!maps.isEmpty()) { for (Map<String, Object> objectMap : maps) { -// paragraph = new Paragraph(str+"寤鸿鏍囬",defaultFont); -// paragraph.setAlignment(Element.ALIGN_LEFT); -// document2.add(paragraph); -// -// paragraph = new Paragraph(str+objectMap.get("bt").toString(),defaultFont); -// paragraph.setAlignment(Element.ALIGN_LEFT); -// document2.add(paragraph); -// -// paragraph = new Paragraph(str+"寤鸿鍐呭",defaultFont); -// paragraph.setAlignment(Element.ALIGN_LEFT); -// document2.add(paragraph); -// -// paragraph = new Paragraph(str+objectMap.get("nr").toString(),defaultFont); -// paragraph.setAlignment(Element.ALIGN_LEFT); -// document2.add(paragraph); Object bt = objectMap.get("bt"); Object nr = objectMap.get("nr"); if (null != bt && null != nr) { @@ -1506,7 +1525,6 @@ if (StrUtil.isBlank(content)) content1 = " "; paragraph = new Paragraph(content1, defaultFont); } -// if (StrUtil.isBlank(content)) content1 = " 鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�"; paragraph.setAlignment(Element.ALIGN_LEFT); document2.add(paragraph); } @@ -1528,7 +1546,7 @@ } } } - } + } */ for (int i = 0; i < 1; i++) { paragraph = PdfUtils.setParagraph(defaultFont, ""); @@ -1610,7 +1628,7 @@ tableQz.addCell(cell); String keyId = DataSourceContextHolder.getDataSourceKey(); - keyId = keyId.replace("typeis10_",""); + keyId = keyId.replace("ltkjpeis10_",""); File file = new File(value + File.separator + keyId + File.separator + "yinzhang.png"); cell = new PdfPCell(); @@ -1704,6 +1722,7 @@ document.setMargins(70, 70, 40, 40); document.open(); + // Map<TjOrderRemark, List<TjPdfVO>> printReport = new HashMap<>(); notHuaYanData(tjOrder.getTjNumber(), printReport, tjOrder, customer); try { @@ -1725,6 +1744,46 @@ log.error(String.valueOf(e)); return AjaxResult.error(); } + + LambdaQueryWrapper<TjXdtgmdjg> wqq=new LambdaQueryWrapper<>(); + wqq.eq(TjXdtgmdjg::getTjh,tjOrder.getTjNumber()); + wqq.isNotNull(TjXdtgmdjg::getUrl); + List<TjXdtgmdjg> xdtgmdjgList = xdtgmdjgService.list(wqq); + + int index=1; + for (TjXdtgmdjg xdtgmdjg : xdtgmdjgList) { + document.newPage(); + cell = new PdfPCell(); + PdfPTable tablefj = new PdfPTable(new float[]{100f}); + tablefj.setTotalWidth(PageSize.A4.getWidth() - 100); + tablefj.setLockedWidth(true); + tablefj.setHorizontalAlignment(Element.ALIGN_LEFT); + tablefj.getDefaultCell().setBorder(0); + tablefj.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT); + + cell.setBorder(Rectangle.NO_BORDER); + cell.setVerticalAlignment(Element.ALIGN_MIDDLE); + cell.setHorizontalAlignment(Element.ALIGN_CENTER); + cell.setPaddingTop(10); + cell.setPaddingBottom(10); + cell.setPhrase(new Phrase("闄勪欢"+index+": "+ xdtgmdjg.getProName(), zongJianFont)); + Path path = Paths.get(xdtgmdjg.getUrl()); + byte[] bytesfj = null; + try { + bytesfj = Files.readAllBytes(path); + } catch (IOException e) { + throw new RuntimeException(e); + } + Image image = Image.getInstance(bytesfj); + image.scaleToFit(500, 2500); + tablefj.addCell(cell); + cell = new PdfPCell(); + cell.addElement(image); + tablefj.addCell(cell); + document.add(tablefj); + index++; + } + document.close(); @@ -1749,7 +1808,7 @@ AcroFields acroFields = pdfStamper.getAcroFields(); BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); acroFields.addSubstitutionFont(bf); - HashMap<String, Object> data = new HashMap<>(); +// HashMap<String, Object> data = new HashMap<>(); Long cusSex = customer.getCusSex(); String tjtype; if (cusSex == 0) { @@ -1769,10 +1828,6 @@ if (StrUtil.isNotBlank(tjOrder.getFirmName())) { hashMap.put("work", tjOrder.getFirmName()); } else { -// LambdaQueryWrapper<DictComp> wq111 = new LambdaQueryWrapper<>(); -// wq111.eq(DictComp::getDrugManufacturerId, tjOrder.getFirmId()); -// DictComp dictComp = dictCompService.getOne(wq111); - if (StrUtil.isBlank(tjOrder.getFirmName())) { hashMap.put("work", "鏃�"); } else { @@ -1793,6 +1848,44 @@ acroFields.setField(key, hashMap.get(key)); } pdfStamper.setFormFlattening(true); + + String isOpenSfzImg = sysConfigService.selectConfigByKey("pdf_isOpenSfzImg"); + String pathSfzfilePath = sysConfigService.selectConfigByKey("path_sfzfilePath"); + if (StrUtil.isNotBlank(isOpenSfzImg) && isOpenSfzImg.equalsIgnoreCase("y")){ + if (StrUtil.isNotBlank(pathSfzfilePath)){ + String key = DataSourceContextHolder.getDataSourceKey(); + key = key.replace("ltkjpeis10_",""); + if (new File(pathSfzfilePath + File.separator + key + File.separator+customer.getCusId()+".png").exists()) { + String pdfSfzimgwidth = sysConfigService.selectConfigByKey("pdf_sfzimgwidth"); + String pdfSfzimgheight = sysConfigService.selectConfigByKey("pdf_sfzimgheight"); + String pdfSfzimgy = sysConfigService.selectConfigByKey("pdf_sfzimgy"); + String pdfSfzimgx = sysConfigService.selectConfigByKey("pdf_sfzimgx"); + int width = 100,height = 100,x = 90,y = 180; + if (StrUtil.isNotBlank(pdfSfzimgwidth)) { + width = Integer.parseInt(pdfSfzimgwidth); + } + if (StrUtil.isNotBlank(pdfSfzimgheight)) { + height = Integer.parseInt(pdfSfzimgheight); + } + if (StrUtil.isNotBlank(pdfSfzimgy)) { + y = Integer.parseInt(pdfSfzimgy); + } + if (StrUtil.isNotBlank(pdfSfzimgx)) { + x = Integer.parseInt(pdfSfzimgx); + } + Image image = Image.getInstance(pathSfzfilePath + File.separator + key + File.separator+customer.getCusId()+".png"); + // 璁剧疆鍥剧墖浣嶇疆鍜屽ぇ灏� + // image.setAbsolutePosition(90, 190); // 琛ㄥ崟宸﹁竟 + // image.setAbsolutePosition(495, 742); // 鍙充笂瑙� + // image.setAbsolutePosition(250, 50); // 涓笅 + image.setAbsolutePosition(x, y); + image.scaleAbsolute(width, height); // 璁剧疆鍥剧墖瀹藉害鍜岄珮搴� + PdfContentByte content = pdfStamper.getOverContent(1); + content.addImage(image); + } + } + } + pdfStamper.close(); reader4.close(); // 灏嗕慨鏀瑰悗鐨凱DF鍐呭鍐欏叆 @@ -1816,6 +1909,9 @@ PdfImportedPage page = copy.getImportedPage(reader2, i); copy.addPage(page); } + + + reader2.close(); PdfReader reader1 = new PdfReader(byteArrayOutputStream.toByteArray()); @@ -2019,6 +2115,7 @@ */ private void savePDFFile(String outputFileName1, TjOrder tjOrder, TjCustomer customer, ByteArrayOutputStream finalOutPut) throws IOException, DocumentException, InterruptedException { // 绗竴姝ワ細鐢熸垚鏂囦欢骞朵繚瀛� + String value = sysConfigService.selectConfigByKey("path_filePath"); String key = DataSourceContextHolder.getDataSourceKey(); key = key.replace("ltkjpeis10_",""); String outputPath1 = value + File.separator + key + File.separator; @@ -2137,7 +2234,7 @@ LambdaQueryWrapper<TjProject> wqqq = new LambdaQueryWrapper<>(); wqqq.eq(TjProject::getProId, entry.getKey().getProId()); TjProject one11 = projectService.getOne(wqqq); - if (entry.getValue() == null || entry.getValue().isEmpty()) continue; + if (entry.getValue() == null || entry.getValue().isEmpty() || entry.getValue().equals("null")) continue; //鍒ゆ柇璇ラ」鐩槸鍚﹂渶瑕佹墦鍗版姤鍛� if (null != one11 && "Y".equals(one11.getNeedReport())) { TjOrderRemark orderRemark = entry.getKey(); @@ -2212,12 +2309,66 @@ paragraph.setLeading(5f); document1.add(ppp); if (StrUtil.isNotBlank(entry.getKey().getRemark())) { - ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark(), remarkFonts); + ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts); paragraph.setAlignment(Element.ALIGN_LEFT); paragraph.setLeading(5f); document1.add(ppp); } - } else { + } + // 纰�14 +// else if (value.get(0).getPid().equals("1870371396991955967")){ +// Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); +// Paragraph ppp = new Paragraph("闃虫�у弬鑰冨��(Delta Over Baseline(DPM))锛�", remarkFonts); +// paragraph.setAlignment(Element.ALIGN_LEFT); +// paragraph.setLeading(5f); +// document1.add(ppp); +// +// LineSeparator objectName = new LineSeparator(); +// objectName.setOffset(-5); +// document1.add(objectName); +// +// ppp = new Paragraph("DPM鍊硷細 > 149 闃虫��", remarkFonts); +// paragraph.setAlignment(Element.ALIGN_LEFT); +// paragraph.setLeading(5f); +// document1.add(ppp); +// +// ppp = new Paragraph(" 猢� 99 闃存��", remarkFonts); +// paragraph.setAlignment(Element.ALIGN_LEFT); +// paragraph.setLeading(5f); +// document1.add(ppp); +// +// objectName.setOffset(-5); +// document1.add(objectName); +// +// +// int result = Integer.parseInt(value.get(0).getProResult()); +// String after = ""; +// if (result > 149){ +// after = "闃虫��"; +// }else { +// after = "闃存��"; +// } +// ppp = new Paragraph("妫�娴嬬粨鏋滐細 DPM=" + result, 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(), remarkFonts); +// paragraph.setAlignment(Element.ALIGN_LEFT); +// paragraph.setLeading(5f); +// document1.add(ppp); +// } +// } + else { String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉", "鍗曚綅"}; Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); Font textFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); @@ -2228,15 +2379,19 @@ Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); if (isPacs) { - Paragraph pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ墍瑙侊細"); - document1.add(pp); - Paragraph ppp = new Paragraph(value.get(0).getSj(), 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(), remarkFonts); + Paragraph pp; + Paragraph ppp; + if (StrUtil.isNotBlank(value.get(0).getSj())) { + pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ墍瑙侊細"); + document1.add(pp); + ppp = new Paragraph(value.get(0).getSj().replaceAll("\n",""), remarkFonts); + paragraph.setAlignment(Element.ALIGN_LEFT); + paragraph.setLeading(5f); + document1.add(ppp); + } +// pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ彁绀猴細"+value.get(0).getTs().replaceAll("\n","")); +// document1.add(pp); + ppp = new Paragraph("妫�鏌ユ彁绀猴細"+value.get(0).getTs().replaceAll("\n",""), remarkFonts); paragraph.setAlignment(Element.ALIGN_LEFT); paragraph.setLeading(5f); document1.add(ppp); @@ -2273,7 +2428,7 @@ paragraph.setLeading(5f); document1.add(ppp); if (StrUtil.isNotBlank(entry.getKey().getRemark())) { - ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark(), remarkFonts); + ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts); paragraph.setAlignment(Element.ALIGN_LEFT); paragraph.setLeading(5f); document1.add(ppp); @@ -2396,7 +2551,7 @@ paragraph.setLeading(5f); document1.add(ppp); if (StrUtil.isNotBlank(entry.getKey().getRemark())) { - ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark(), remarkFonts); + ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts); paragraph.setAlignment(Element.ALIGN_LEFT); paragraph.setLeading(5f); document1.add(ppp); @@ -2413,18 +2568,42 @@ Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); if (isPacs) { - Paragraph pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ墍瑙侊細"); + 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().replaceAll("\n",""), 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().replaceAll("\n","") + : value.get(0).getProResult().replaceAll("\n",""), remarkFonts); + paragraph.setAlignment(Element.ALIGN_LEFT); + paragraph.setLeading(5f); + document1.add(ppp); + } + } +// pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ彁绀猴細"+ (value.get(0).getTs() != null ? value.get(0).getTs() : value.get(0).getProResult())); +// document1.add(pp); + pp = PdfUtils.setParagraph(remarkFonts, "妫�鏌ユ彁绀猴細"); document1.add(pp); - Paragraph ppp = new Paragraph(value.get(0).getSj() != null ? value.get(0).getSj() : value.get(0).getProResult(), remarkFonts); + ppp = new Paragraph((value.get(0).getTs() != null ? value.get(0).getTs().replaceAll("\n","") + : value.get(0).getProResult().replaceAll("\n","")), 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); - paragraph.setAlignment(Element.ALIGN_LEFT); - paragraph.setLeading(5f); - document1.add(ppp); +// ppp = new Paragraph(value.get(0).getTs() != null ? value.get(0).getTs() : value.get(0).getProResult(), remarkFonts); +// paragraph.setAlignment(Element.ALIGN_LEFT); +// paragraph.setLeading(5f); +// document1.add(ppp); } else { if (value.get(0).getPid().equals("1862852701533012001")) { remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); @@ -2458,7 +2637,7 @@ paragraph.setLeading(5f); document1.add(ppp); if (StrUtil.isNotBlank(entry.getKey().getRemark())) { - ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark(), remarkFonts); + ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null","").replaceAll("\n",""), remarkFonts); paragraph.setAlignment(Element.ALIGN_LEFT); paragraph.setLeading(5f); document1.add(ppp); @@ -2520,6 +2699,142 @@ } } } + } + } + + private void pacsTable(Document document1, Map<TjOrderRemark, List<TjPdfVO>> printReport, DictHosp dictHosp, String colorStr, boolean isPacs)throws DocumentException{ + try { + + for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) { + + if (entry.getValue() == null || entry.getValue().isEmpty()) continue; + //鍒ゆ柇璇ラ」鐩槸鍚﹂渶瑕佹墦鍗版姤鍛� + + TjOrderRemark orderRemark = entry.getKey(); + List<TjPdfVO> value = entry.getValue().stream().distinct().collect(Collectors.toList()); + if (StrUtil.isBlank(value.get(0).getProResult()) && (StrUtil.isBlank(value.get(0).getTs()) && StrUtil.isBlank(value.get(0).getSj()))) { + continue; + } + String titleName = null; + + if (entry.getValue().get(0).getProName().contains(";")) + titleName = entry.getValue().get(0).getProName(); + else titleName = orderRemark.getProName(); + // 璁剧疆鏍囬瀛椾綋鏍峰紡 + Font titleFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); + Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName); + + if (StrUtil.isBlank(value.get(0).getProResult()) && (StrUtil.isBlank(value.get(0).getTs().replaceAll("\n","")) + && StrUtil.isBlank(value.get(0).getSj().replaceAll("\n","")))) { + continue; + } + Font titleFont = PdfUtils.setFont(DEFAULT_TITLE_FONT_SIZE); + titleFont.setStyle(Font.BOLD); + PdfPCell cellTitle = new PdfPCell(PdfUtils.setParagraph(titleFont, titleName)); + cellTitle.setBorder(Rectangle.NO_BORDER); + Color color = Color.decode("#B4CDCD"); + cellTitle.setBackgroundColor(new BaseColor(color.getRed(), color.getGreen(), color.getBlue())); // 璁剧疆鑳屾櫙棰滆壊锛堝崄鍏繘鍒� RGB锛� + // 鍒涘缓琛ㄦ牸骞舵坊鍔犲崟鍏冩牸 + PdfPTable tableTitle = new PdfPTable(1); + tableTitle.setWidthPercentage(100); + tableTitle.addCell(cellTitle); + // 灏嗚〃鏍兼坊鍔犲埌鏂囨。涓� + document1.add(tableTitle); + + if (!value.isEmpty()) { + if (value.size() > 1) { + Long pid = Long.valueOf(value.get(0).getPid()); + String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉", "鍗曚綅"}; + Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); + Font textFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); + PdfPTable table = PdfUtils.setTable2(headFont, textFont, titles, value, isPacs, new float[]{240, 240, 240}); + document1.add(table); + + } else { + Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); + + if (isPacs) { + Paragraph pp; + Paragraph 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().replaceAll("\n","") : value.get(0).getProResult().replaceAll("\n",""), 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().replaceAll("\n","") : value.get(0).getProResult().replaceAll("\n","")), remarkFonts); + paragraph.setAlignment(Element.ALIGN_LEFT); + paragraph.setLeading(5f); + document1.add(ppp); + + } else { + Long pid = Long.valueOf(value.get(0).getPid()); + String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉"}; + Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); + Font textFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); + PdfPTable table = PdfUtils.setTable2(headFont, textFont, titles, value, false, new float[]{240, 300}); + document1.add(table); + } + + } + } else { + String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉", "鍗曚綅"}; + Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); + Font textFont = PdfUtils.setFont(DEFAULT_FONT_SIZE); + PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value, isPacs); + document1.add(table); + } + + + //鍒ゆ柇澶囨敞鏄惁涓虹┖ 绌轰笉鑳芥樉绀簄ull + if (entry.getKey().getRemark() == null) { + entry.getKey().setRemark(""); + } + // if (!dictHosp.getHospName().equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌")){ + if (!true) { + String remark = "澶囨敞锛�" + entry.getKey().getRemark(); + if (entry.getKey().getRemark().length() > 50) { + int j = 0; + for (int i = 0; i < remark.length() / 50; i++) { + String substring = remark.substring(j, j + 50); + Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); + Paragraph pp = PdfUtils.setParagraph(remarkFonts, substring); + document1.add(pp); + j = j + 50; + } + if (remark.length() % 50 != 0) { + String substring = remark.substring((remark.length() / 50) * 50, remark.length() - 1); + Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); + Paragraph pp = PdfUtils.setParagraph(remarkFonts, substring); + document1.add(pp); + } + } else { + Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE); + Paragraph pp = PdfUtils.setParagraph(remarkFonts, remark); + document1.add(pp); + } + } + //鍒ゆ柇涓绘鍖诲笀鏄惁涓虹┖ 绌轰笉鑳芥樉绀簄ull + zhuJianYiShi(document1, entry, orderRemark.getCreateTime(), dictHosp); + // if (!dictHosp.getHospName().equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌")) { + if (!true) { + //鍒嗗壊绾� + LineSeparator objectName = new LineSeparator(); + document1.add(objectName); + } + + + } + } catch (NumberFormatException e) { + throw new RuntimeException(e); + } catch (DocumentException e) { + throw new RuntimeException(e); } } @@ -2606,10 +2921,32 @@ List<LtkjHysqd> list = ltkjHysqdService.list(ltkjHysqdLambdaQueryWrapper); HashMap<String, Object> data = new HashMap<>(); for (LtkjHysqd hysqd : list) { - LambdaQueryWrapper<LtkjHybgd> ltkjHybgdLambdaQueryWrapper = new LambdaQueryWrapper<>(); - ltkjHybgdLambdaQueryWrapper.eq(LtkjHybgd::getTmh, hysqd.getTmh()); - List<LtkjHybgd> hybgds = ltkjHybgdService.list(ltkjHybgdLambdaQueryWrapper); +// LambdaQueryWrapper<LtkjHybgd> ltkjHybgdLambdaQueryWrapper = new LambdaQueryWrapper<>(); +// ltkjHybgdLambdaQueryWrapper.eq(LtkjHybgd::getTmh, hysqd.getTmh()); +// List<LtkjHybgd> hybgds = ltkjHybgdService.list(ltkjHybgdLambdaQueryWrapper); + List<LtkjHybgd> hybgds = ltkjHybgdService.getReportJianYanBaoGaoDanList(hysqd.getTmh()); if(null !=hybgds && !hybgds.isEmpty()){ +// hybgds = hybgds.stream().distinct().collect(Collectors.toList()); + hybgds = new ArrayList<>(hybgds.stream() + .collect(Collectors.toMap(LtkjHybgd::getJcxm, p -> p, (existing, replacement) -> existing)) + .values()); + + + Map<String, List<LtkjHybgd>> listMap = hybgds.stream().collect(Collectors.groupingBy(LtkjHybgd::getJyjg)); + boolean isGroupOnce = false; + String groupOnceProResult = ""; + if (listMap.size()==1){ + String firstKey = listMap.keySet().stream().findFirst().orElse(null); + LambdaQueryWrapper<SysDictData> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysDictData::getDictType,"qj_type"); + wrapper.eq(SysDictData::getDictLabel,firstKey); + List<SysDictData> dictList = sysDictDataService.list(); + if (!dictList.isEmpty()) { + isGroupOnce = true; + groupOnceProResult = firstKey; + } + } + // hybgds=hybgds.stream().sorted(Comparator.comparing(LtkjHybgd::getJcxm, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList()); // hybgds = hybgds.stream() // .sorted(Comparator.comparingInt( @@ -2617,53 +2954,106 @@ // )) // .collect(Collectors.toList()); - // 澶х被椤圭洰鍚嶇О - String xmmc = hysqd.getXmmc(); - ArrayList<List<String>> lists = new ArrayList<>(); - HashSet<String> hashSet = new HashSet<>(); - String shsj = ""; - for (LtkjHybgd hybgd : hybgds) { - shsj = hybgd.getShsj(); - // 妫�鏌ラ」鐩� - String jcxm = hybgd.getJcxm() != null ? hybgd.getJcxm().trim() : null; - // 妫�楠岀粨鏋� - String jyjg = hybgd.getJyjg() != null ? hybgd.getJyjg().trim() : null; - // 缁撴灉鍗曚綅 - String jgdw = hybgd.getJgdw() != null ? hybgd.getJgdw().trim() : null; - // 鑼冨洿鍊� - String fwz = hybgd.getFwz() != null ? hybgd.getFwz().trim() : null; - // 妫�楠屽尰甯� + if (!isGroupOnce){ + // 澶х被椤圭洰鍚嶇О + String xmmc = hysqd.getXmmc(); + ArrayList<List<String>> lists = new ArrayList<>(); + HashSet<String> hashSet = new HashSet<>(); + String shsj = ""; + for (LtkjHybgd hybgd : hybgds) { + shsj = hybgd.getShsj(); + // 妫�鏌ラ」鐩� + String jcxm = hybgd.getJcxm() != null ? hybgd.getJcxm().trim() : null; + // 妫�楠岀粨鏋� + String jyjg = hybgd.getJyjg() != null ? hybgd.getJyjg().trim() : null; + // 缁撴灉鍗曚綅 + String jgdw = hybgd.getJgdw() != null ? hybgd.getJgdw().trim() : null; + // 鑼冨洿鍊� + String fwz = hybgd.getFwz() != null ? hybgd.getFwz().trim() : null; + // 妫�楠屽尰甯� // String jyys = hybgd.getJyys(); - //瀹℃牳鍖荤敓 - String shysmc = hybgd.getShysmc() != null ? hybgd.getShysmc().trim() : null; - // 瀹℃牳鍖诲笀缂栫爜 - String shys = hybgd.getShys() != null ? hybgd.getShys().trim() : null; - String ycbz = ""; + //瀹℃牳鍖荤敓 + String shysmc = hybgd.getShysmc() != null ? hybgd.getShysmc().trim() : null; + // 瀹℃牳鍖诲笀缂栫爜 + String shys = hybgd.getShys() != null ? hybgd.getShys().trim() : null; + String ycbz = ""; - if (jyjg != null && StrUtil.isNotBlank(jyjg) && fwz != null && StrUtil.isNotBlank(fwz)) { - try { - String[] fwzs = fwz.split("-"); - BigDecimal min = new BigDecimal(fwzs[0]); - BigDecimal max = new BigDecimal(fwzs[1]); - BigDecimal jyjgval = new BigDecimal(jyjg); - // 姣旇緝妫�楠岀粨鏋滃拰鑼冨洿鍊� - if (jyjgval.compareTo(min) < 0) { - // jyjg 灏忎簬鑼冨洿鏈�灏忓�硷紝娣诲姞涓嬬澶� + if (jyjg != null && StrUtil.isNotBlank(jyjg) && fwz != null && StrUtil.isNotBlank(fwz)) { + try { + String[] fwzs = fwz.split("-"); + BigDecimal min = new BigDecimal(fwzs[0]); + BigDecimal max = new BigDecimal(fwzs[1]); + BigDecimal jyjgval = new BigDecimal(jyjg); + // 姣旇緝妫�楠岀粨鏋滃拰鑼冨洿鍊� + if (jyjgval.compareTo(min) < 0) { + // jyjg 灏忎簬鑼冨洿鏈�灏忓�硷紝娣诲姞涓嬬澶� // jyjg = jyjg + " 鈫�"; - ycbz = "鈫�"; - } else if (jyjgval.compareTo(max) > 0) { - // jyjg 澶т簬鑼冨洿鏈�澶у�硷紝娣诲姞涓婄澶� + ycbz = "鈫�"; + } else if (jyjgval.compareTo(max) > 0) { + // jyjg 澶т簬鑼冨洿鏈�澶у�硷紝娣诲姞涓婄澶� // jyjg = jyjg + " 鈫�"; - ycbz = "鈫�"; + ycbz = "鈫�"; + } + } catch (Exception ignored) { } - } catch (Exception ignored) { } - } // LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>(); // queryWrapper.eq(SysUser::getUserName,jyys); // List<SysUser> sysUsers = userService.list(queryWrapper); // if (!sysUsers.isEmpty()) // hashSet.add(sysUsers.get(0).getNickName()); + String key = sysConfigService.selectConfigByKey("is_report_pdf_use_ysqm"); + if (null != shys && null != shysmc && key.equals("Y")) { + hashSet.add(shysmc + "|" + shys); + } else { + if (null != shysmc) hashSet.add(shysmc); + } + ArrayList<String> strings = new ArrayList<>(); + strings.add(jcxm); + strings.add(jyjg); + strings.add(ycbz); + strings.add(jgdw); + strings.add(fwz); + strings.add(hybgd.getJcxmid()); + strings.add(hysqd.getXmid()); + lists.add(strings); + } + if (!lists.isEmpty()) { + HashMap<String, Object> map = new HashMap<>(); + map.put("data", lists); + map.put("jyys", hashSet); + if (StrUtil.isNotBlank(shsj)) { + shsj = shsj.split(" ")[0]; + } + map.put("shsj", shsj); + data.put(xmmc, map); + } + }else { + String xmmc = hysqd.getXmmc(); + ArrayList<List<String>> lists = new ArrayList<>(); + HashSet<String> hashSet = new HashSet<>(); + LtkjHybgd hybgd = hybgds.get(0); + String shsj = ""; + shsj = hybgd.getShsj(); + String jgdw = hybgd.getJgdw() != null ? hybgd.getJgdw().trim() : null; + String fwz = hybgd.getFwz() != null ? hybgd.getFwz().trim() : null; + String shysmc = hybgd.getShysmc() != null ? hybgd.getShysmc().trim() : null; + String shys = hybgd.getShys() != null ? hybgd.getShys().trim() : null; + String ycbz = ""; + if (StrUtil.isNotBlank(groupOnceProResult) && fwz != null && StrUtil.isNotBlank(fwz)) { + try { + String[] fwzs = fwz.split("-"); + BigDecimal min = new BigDecimal(fwzs[0]); + BigDecimal max = new BigDecimal(fwzs[1]); + BigDecimal jyjgval = new BigDecimal(groupOnceProResult); + if (jyjgval.compareTo(min) < 0) { + ycbz = "鈫�"; + } else if (jyjgval.compareTo(max) > 0) { + ycbz = "鈫�"; + } + } catch (Exception ignored) { + } + } String key = sysConfigService.selectConfigByKey("is_report_pdf_use_ysqm"); if (null != shys && null != shysmc && key.equals("Y")) { hashSet.add(shysmc + "|" + shys); @@ -2671,16 +3061,14 @@ if (null != shysmc) hashSet.add(shysmc); } ArrayList<String> strings = new ArrayList<>(); - strings.add(jcxm); - strings.add(jyjg); + strings.add(xmmc); + strings.add(groupOnceProResult); strings.add(ycbz); strings.add(jgdw); strings.add(fwz); strings.add(hybgd.getJcxmid()); strings.add(hysqd.getXmid()); lists.add(strings); - } - if (!lists.isEmpty()) { HashMap<String, Object> map = new HashMap<>(); map.put("data", lists); map.put("jyys", hashSet); @@ -2869,12 +3257,7 @@ * @param customer */ private void notHuaYanData(String tjNumber, Map<TjOrderRemark, List<TjPdfVO>> printReport, TjOrder one, TjCustomer customer) { -// LambdaQueryWrapper<TjOrderRemark> wqq = new LambdaQueryWrapper<>(); -// wqq.eq(TjOrderRemark::getTjNumber, tjNumber); -// wqq.ne(TjOrderRemark::getDeptId, "241"); -// wqq.in(TjOrderRemark::getDeptId, "269", "270", "253", "254", "255", "257"); -// wqq.notIn(TjOrderRemark::getProId, projectService.getNneedReprotProId()); -// List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.list(wqq); + List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.notHuaYanData(tjNumber); for (TjOrderRemark tjOrderRemark : tjOrderRemarks) { printReport.put(tjOrderRemark, null); @@ -2885,49 +3268,92 @@ tjOrderDetails = tjOrderDetails.stream().filter(i -> StrUtil.isNotBlank(i.getProResult())).collect(Collectors.toList()); tjOrderDetails = new ArrayList<>(tjOrderDetails.stream() .collect(Collectors.toMap(TjOrderDetail::getProId, i -> i, (existing, replacement) -> existing)).values()); - for (TjOrderDetail tjOrderDetail : tjOrderDetails) { - TjProject tjProject = projectService.getById(String.valueOf(tjOrderDetail.getProId())); - if (null != tjProject && tjProject.getNeedReport().equals("Y")) { - tjOrderDetail.setProject(tjProject); - if (tjOrderDetail.getProject().getProParentId().equals(entry.getKey().getProId()) && entry.getKey().getType() == 1) { - TjPdfVO tjPdfVO = new TjPdfVO(); - tjPdfVO.setProName(tjOrderDetail.getProject().getProName()); - tjPdfVO.setProResult(tjOrderDetail.getProResult()); - tjPdfVO.setExc(tjOrderDetail.getExceptionDesc()); - if (null != tjProject.getProMetering()) { - tjPdfVO.setCompany(tjProject.getProMetering()); - } else { - tjPdfVO.setCompany("/"); - } - tjPdfVO.setProId(String.valueOf(tjOrderDetail.getProject().getProId())); - tjPdfVO.setPid(String.valueOf(tjProject.getProParentId())); -// LambdaQueryWrapper<LtkjExamJcbgd> wrapper = new LambdaQueryWrapper<>(); -// wrapper.eq(LtkjExamJcbgd::getTjh, tjNumber); -// wrapper.eq(LtkjExamJcbgd::getXmdm, String.valueOf(tjOrderDetail.getProject().getProParentId())); - tjPdfVOS.add(tjPdfVO); + boolean isGroupOnce = false; + String groupOnceProResult = ""; + if (tjOrderDetails.size() > 1) { + Map<String, List<TjOrderDetail>> listMap = tjOrderDetails.stream().collect(Collectors.groupingBy(TjOrderDetail::getProResult)); + if (listMap.size() == 1){ + String firstKey = listMap.keySet().stream().findFirst().orElse(null); + LambdaQueryWrapper<SysDictData> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysDictData::getDictType,"qj_type"); + wrapper.eq(SysDictData::getDictLabel,firstKey); + List<SysDictData> list = sysDictDataService.list(); + if (!list.isEmpty()) { + isGroupOnce = true; + groupOnceProResult = firstKey; } } } + + if (!isGroupOnce) { + for (TjOrderDetail tjOrderDetail : tjOrderDetails) { + TjProject tjProject = projectService.getById(String.valueOf(tjOrderDetail.getProId())); + if (null != tjProject && tjProject.getNeedReport().equals("Y")) { + tjOrderDetail.setProject(tjProject); + + if (tjOrderDetail.getProject().getProParentId().equals(entry.getKey().getProId()) && entry.getKey().getType() == 1) { + TjPdfVO tjPdfVO = new TjPdfVO(); + tjPdfVO.setProName(tjOrderDetail.getProject().getProName()); + if(tjProject.getProDelivery()==1){ + if(StringUtil.isNotBlank(tjOrderDetail.getConclusion())){ + tjPdfVO.setProResult(tjOrderDetail.getProResult()+" "+tjOrderDetail.getConclusion()); + }else { + tjPdfVO.setProResult(tjOrderDetail.getProResult()); + } + }else { + tjPdfVO.setProResult(tjOrderDetail.getProResult()); + } + + tjPdfVO.setExc(tjOrderDetail.getExceptionDesc()); + if (null != tjProject.getProMetering()) { + tjPdfVO.setCompany(tjProject.getProMetering()); + } else { + tjPdfVO.setCompany("/"); + } + tjPdfVO.setProId(String.valueOf(tjOrderDetail.getProject().getProId())); + tjPdfVO.setPid(String.valueOf(tjProject.getProParentId())); + tjPdfVO.setXh(tjProject.getXh()); +// LambdaQueryWrapper<LtkjExamJcbgd> wrapper = new LambdaQueryWrapper<>(); +// wrapper.eq(LtkjExamJcbgd::getTjh, tjNumber); +// wrapper.eq(LtkjExamJcbgd::getXmdm, String.valueOf(tjOrderDetail.getProject().getProParentId())); + tjPdfVOS.add(tjPdfVO); + } + } + } + }else { + TjOrderRemark orderRemark = entry.getKey(); + TjProject project = projectService.getById(orderRemark.getProId()); + if (null != project && project.getNeedReport().equals("Y") && orderRemark.getType() == 1) { + TjPdfVO tjPdfVO = new TjPdfVO(); + tjPdfVO.setProName(project.getProName()); + tjPdfVO.setProResult(groupOnceProResult); + tjPdfVO.setExc(0L); + tjPdfVO.setCompany("/"); + tjPdfVO.setProId(String.valueOf(orderRemark.getProId())); + tjPdfVO.setPid(String.valueOf(orderRemark.getProId())); + tjPdfVO.setXh(1); + tjPdfVOS.add(tjPdfVO); + } + } + + + 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()); +// 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()); + tjPdfVOS=tjPdfVOS.stream().sorted(Comparator.comparing(TjPdfVO::getXh)).collect(Collectors.toList()); } printReport.put(entry.getKey(), tjPdfVOS); } } private void pacsJianChaData(String tjNumber, Map<TjOrderRemark, List<TjPdfVO>> printReport, TjOrder one, TjCustomer customer) { -// LambdaQueryWrapper<TjOrderRemark> wqq = new LambdaQueryWrapper<>(); -// wqq.eq(TjOrderRemark::getTjNumber, tjNumber); -// wqq.ne(TjOrderRemark::getDeptId, "241"); -// wqq.in(TjOrderRemark::getDeptId, "269", "270", "253", "254", "255", "257"); -// wqq.notIn(TjOrderRemark::getProId, projectService.getNneedReprotProId()); -// List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.list(wqq); + List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.pacsJianChaData(tjNumber); for (TjOrderRemark tjOrderRemark : tjOrderRemarks) { printReport.put(tjOrderRemark, null); @@ -2945,9 +3371,10 @@ if (tjOrderDetail.getProject().getProParentId().equals(entry.getKey().getProId()) && entry.getKey().getType() == 1 && !ids.contains(String.valueOf(tjOrderDetail.getProject().getProParentId()))) { + TjProject tjProjectq = projectService.getById(tjOrderDetail.getProject().getProParentId()); TjPdfVO tjPdfVO = new TjPdfVO(); tjPdfVO.setProName(tjOrderDetail.getProject().getProName()); - tjPdfVO.setProResult(tjOrderDetail.getProResult()); + tjPdfVO.setProResult(tjOrderDetail.getProResult()==null ? null : tjOrderDetail.getProResult().replaceAll("\n","").replaceAll(" ","")); tjPdfVO.setExc(tjOrderDetail.getExceptionDesc()); if (null != tjProject.getProMetering()) { tjPdfVO.setCompany(tjProject.getProMetering()); @@ -2956,15 +3383,24 @@ } tjPdfVO.setProId(String.valueOf(tjOrderDetail.getProject().getProId())); LambdaQueryWrapper<LtkjExamJcbgd> wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(LtkjExamJcbgd::getTjh, tjNumber); - wrapper.like(LtkjExamJcbgd::getXmdm, String.valueOf(tjOrderDetail.getProject().getProParentId())); - wrapper.orderByDesc(LtkjExamJcbgd::getZdsj); + wrapper.eq(LtkjExamJcbgd::getTjh, one.getCardId()) + .and(w -> w.like(LtkjExamJcbgd::getXmdm, String.valueOf(tjOrderDetail.getProject().getProParentId())) + .or() + .eq(LtkjExamJcbgd::getXmdm, String.valueOf(tjProjectq.getHisXmbm()))).orderByDesc(LtkjExamJcbgd::getZdsj); List<LtkjExamJcbgd> list = jcbgdService.list(wrapper); 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.replaceAll("\n","").replaceAll(" ","")); + tjPdfVO.setSj(bgNr.replaceAll("\n","").replaceAll(" ","")); tjPdfVO.setShys(jcbgd.getShysxm()); tjPdfVO.setProName(jcbgd.getXmmc()); ids += "|" + jcbgd.getXmdm(); @@ -2974,18 +3410,41 @@ } } } -// 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); } } + + private void newpacsJianChaData(String tjNumber, Map<TjOrderRemark, List<TjPdfVO>> printReport, TjOrder one, TjCustomer customer) { + try { + List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.newpacsJianChaData(tjNumber); + for (TjOrderRemark tjOrderRemark : tjOrderRemarks) { + List<TjPdfVO> tjPdfVOS = new ArrayList<>(); + TjPdfVO tjPdfVO = new TjPdfVO(); + tjPdfVO.setProResult(null); + tjPdfVO.setExc(0L); + tjPdfVO.setCompany("/"); + tjPdfVO.setProId(tjOrderRemark.getProsId()); + String yxbx = tjOrderRemark.getRemark(); + String bgNr = tjOrderRemark.getJgbx(); + // 姝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(tjOrderRemark.getDoctorName()); + tjPdfVO.setProName(tjOrderRemark.getProName()); + tjPdfVOS.add(tjPdfVO); + printReport.put(tjOrderRemark, tjPdfVOS); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } + /** * 璁剧疆鐢ㄦ埛淇℃伅 * -- Gitblit v1.8.0