From 206a888c39eed2c58f4dab3c5bfcac7f068a0ea9 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期一, 17 二月 2025 18:03:27 +0800 Subject: [PATCH] zjh20250217 --- ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java | 146 ++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 122 insertions(+), 24 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 a3fbce1..d0ad287 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 @@ -1001,6 +1001,13 @@ 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(); @@ -1017,9 +1024,19 @@ for (Map.Entry<Long, List<TjOrderDetail>> entry : collect.entrySet()) { if (!entry.getKey().equals(proVo.getProId())) continue; List<TjOrderDetail> details = entry.getValue(); - String xmmc = details.get(0).getProName(); + String xmmc = proVo.getProName(); +// String xmmc = details.get(0).getProName(); boolean isXmWrite = false; + +// 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); @@ -1028,16 +1045,20 @@ } String result = detail.getProResult(); if (StrUtil.isNotBlank(result)) { - int index = 1; result = result.replaceAll("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", ""); // result = result.replaceAll("", ""); - String[] split = result.split("\n"); +// 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(); - for (String s : split) { - if (StrUtil.isBlank(s.replaceAll("\n", "").trim())) continue; - builder.append(" (").append(index).append(")").append(s).append("\n"); + 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); @@ -1104,7 +1125,78 @@ wq.eq(TjOrderYcxm::getTjh, tjOrder.getTjNumber()); List<TjOrderYcxm> ycxms = ycxmService.list(wq); if (null != ycxms && !ycxms.isEmpty()) { - for (Map.Entry<String, List<CsProVo>> deptEntry : listMap.entrySet()) { + + Map<String, List<TjOrderYcxm>> stringListMap = ycxms.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName)); + + for (Map.Entry<String, List<TjOrderYcxm>> entry : stringListMap.entrySet()) { + List<TjOrderYcxm> details = entry.getValue(); + if(null !=details && !details.isEmpty()){ + details= details.stream() + .sorted(Comparator.comparing(TjOrderYcxm::getJcxm)) + .collect(Collectors.toList()); + boolean isXmWrite = false; + int index = 1; + int index1 = 1; + for (TjOrderYcxm detail : details) { + String xmmc = entry.getKey().toString(); + if (!isXmWrite) { + xmXh++; + paragraph = new Paragraph("銆�" + xmXh + "." + xmmc + "銆�", defaultFont); + paragraph.setAlignment(Element.ALIGN_LEFT); + document2.add(paragraph); + isXmWrite = true; + } + String result = detail.getJcjg(); + 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"); + index1++; + + result = builder.toString(); + } + if (StrUtil.isNotBlank(result)) { + paragraph = new Paragraph(result, defaultFont); + paragraph.setAlignment(Element.ALIGN_LEFT); + document2.add(paragraph); + } else { + paragraph = new Paragraph("寤鸿瀹氭湡澶嶆煡", defaultFont); + paragraph.setAlignment(Element.ALIGN_LEFT); + document2.add(paragraph); + } + String str = " "; + List<Map<String, Object>> maps = new ArrayList<>(); + + String jynr = detail.getJynr(); + JSONArray array = JSONUtil.parseArray(jynr); + for (Object object : array) { + Map<String,Object> objectMap=new HashMap<>(); + JSONObject jsonObject = (JSONObject) object; + String bt = jsonObject.getStr("bt"); + String nr = jsonObject.getStr("nr"); + objectMap.put("bt",bt); + objectMap.put("nr",nr); + if(null !=bt || null !=nr) maps.add(objectMap); + } + List<Map<String, Object>> collect1 = maps.stream().distinct().collect(Collectors.toList()); + for (Map<String, Object> objectMap : collect1) { + String content = str + objectMap.get("bt").toString() + objectMap.get("nr").toString(); + if (StrUtil.isBlank(content)) content = " "; + paragraph = new Paragraph(content, defaultFont); + paragraph.setAlignment(Element.ALIGN_LEFT); + document2.add(paragraph); + } + index++; + paragraph = PdfUtils.setParagraph(defaultFont, ""); + paragraph.setLeading(0f); + paragraph.setSpacingBefore(0f); + paragraph.setSpacingAfter(5f); + document2.add(paragraph); + } + } + } + + /*for (Map.Entry<String, List<CsProVo>> deptEntry : listMap.entrySet()) { List<CsProVo> proVos = deptEntry.getValue(); if (proVos.size() > 1) { proVos = proVos.stream() @@ -1125,7 +1217,8 @@ int index = 1; int index1 = 1; for (TjOrderDetail detail : details) { - String xmmc = detail.getProName(); + String xmmc = proVo.getProName(); +// String xmmc = detail.getProName(); if (!isXmWrite) { xmXh++; paragraph = new Paragraph("銆�" + xmXh + "." + xmmc + "銆�", defaultFont); @@ -1135,13 +1228,18 @@ } String result = detail.getProResult(); if (StrUtil.isNotBlank(result)) { - String[] split = result.split("\n"); StringBuilder builder = new StringBuilder(); - for (String s : split) { - if (StrUtil.isBlank(s.replaceAll("\n", "").trim())) continue; - builder.append(" (").append(index1).append(")").append(s).append("\n"); +// String[] split = result.split("\n"); +// for (String s : split) { +// if (StrUtil.isBlank(s.replaceAll("\n", "").trim())) continue; +// builder.append(" (").append(index1).append(")").append(s).append("\n"); +// index1++; +// } + + if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue; + builder.append(" (").append(index1).append(")").append(detail.getProName()).append(": ").append(result).append("\n"); index1++; - } + result = builder.toString(); } if (StrUtil.isNotBlank(result)) { @@ -1158,7 +1256,7 @@ LambdaQueryWrapper<TjOrderYcxm> ycwq=new LambdaQueryWrapper<>(); ycwq.eq(TjOrderYcxm::getTjh,tjOrder.getTjNumber()); - ycwq.eq(TjOrderYcxm::getJcxm,xmmc); + ycwq.eq(TjOrderYcxm::getJcxm,detail.getProName()); TjOrderYcxm ycxm = ycxmService.getOne(ycwq); if(null !=ycxm){ String jynr = ycxm.getJynr(); @@ -1250,7 +1348,7 @@ } } } - } + }*/ } else { for (Map.Entry<String, List<CsProVo>> deptEntry : listMap.entrySet()) { List<CsProVo> proVos = deptEntry.getValue(); @@ -2805,14 +2903,14 @@ } } } -// 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()); -// } + 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