zhaowenxuan
2024-12-12 7bd5bf792d9f2ba900f3703d1a7e6a1d78fee98e
pdf增加排序
3个文件已修改
233 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
@@ -691,7 +691,7 @@
        cell.setPaddingTop(10);
        cell.setPaddingBottom(10);
//        cell.setPhrase(new Phrase("何小婷", zongJianFont));
        cell.setPhrase(new Phrase(tjOrder.getCheckDoctor(), zongJianFont));
        cell.setPhrase(new Phrase(sysConfigService.selectConfigByKey("pdf_report_zongjianysname"), zongJianFont));
        tableQz.addCell(cell);
        cell = new PdfPCell();
@@ -1009,12 +1009,14 @@
                        paragraph.setAlignment(Element.ALIGN_LEFT);
                        document2.add(paragraph);
                    }
                    paragraph = PdfUtils.setParagraph(defaultFont, "");
                    paragraph.setLeading(0f);
                    paragraph.setSpacingBefore(0f);
                    paragraph.setSpacingAfter(5f);
                    document2.add(paragraph);
                    xmXh++;
                    if (isXmWrite) {
                        paragraph = PdfUtils.setParagraph(defaultFont, "");
                        paragraph.setLeading(0f);
                        paragraph.setSpacingBefore(0f);
                        paragraph.setSpacingAfter(5f);
                        document2.add(paragraph);
                        xmXh++;
                    }
                }
                // 检验
@@ -1042,11 +1044,13 @@
                            index++;
                        }
                    }
                    paragraph = PdfUtils.setParagraph(defaultFont, "");
                    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++;
                    }
                }
            }
        }
@@ -1096,26 +1100,101 @@
        paragraph.setSpacingAfter(2f);
        document2.add(paragraph);
        xmXh = 0;
        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.contains("↓") || i.contains("↑")) {
                    if (!isXmWrite) {
                        xmXh++;
                        paragraph = new Paragraph("【"+xmXh+"."+xmmc+"】",defaultFont);
                        paragraph.setAlignment(Element.ALIGN_LEFT);
        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 = details.get(0).getProName();
                    boolean isXmWrite = false;
                    int index = 1;
                    for (TjOrderDetail detail : details) {
                        if (!isXmWrite) {
                            xmXh++;
                            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(" ","").replaceAll("\t","");
//                    result = result.replaceAll("\n本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查", "");
//                    result = "\n      " + result.replaceAll("\n", "\n      ");
                            int index1 = 1;
                            String[] split = result.split("\n");
                            boolean contains = result.contains("本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查");
                            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");
                                index1++;
                            }
                            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);
                            document2.add(paragraph);
                        }else {
                            paragraph = new Paragraph("建议定期复查",defaultFont);
                            paragraph.setAlignment(Element.ALIGN_LEFT);
                            document2.add(paragraph);
                        }
                        String str = "     ";
                        List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(entry.getKey().toString(),"","",tjOrder.getTjNumber());
                        for (Map<String, Object> objectMap : maps) {
                            paragraph = new Paragraph(str+objectMap.get("bt").toString()+objectMap.get("nr").toString(),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);
                        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);
                    // 第六位是lis项目id
                }
                // 检验
                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) {
                                xmXh++;
                                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);
                            // 第六位是lis项目id
//                    LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
//                    wrapper.eq(TjProject::getLisXmbm,i.get(5));
//                    TjProject project = projectService.getOne(wrapper);
@@ -1126,10 +1205,10 @@
//                        if (!rules.isEmpty()){
//
//                        }
                    String str = "    ";
                    List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(i.get(5),"",i.get(2),tjOrder.getTjNumber());
                    if (!maps.isEmpty()){
                        for (Map<String, Object> objectMap : maps) {
                            String str = "    ";
                            List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(i.get(5),"",i.get(2),tjOrder.getTjNumber());
                            if (!maps.isEmpty()){
                                for (Map<String, Object> objectMap : maps) {
//                                paragraph = new Paragraph(str+"建议标题",defaultFont);
//                                paragraph.setAlignment(Element.ALIGN_LEFT);
//                                document2.add(paragraph);
@@ -1146,79 +1225,29 @@
//                                paragraph.setAlignment(Element.ALIGN_LEFT);
//                                document2.add(paragraph);
                            paragraph = new Paragraph(str+objectMap.get("bt").toString().trim()+objectMap.get("nr").toString().trim(),defaultFont);
                            paragraph.setAlignment(Element.ALIGN_LEFT);
                            document2.add(paragraph);
                                    paragraph = new Paragraph(str+objectMap.get("bt").toString().trim()+objectMap.get("nr").toString().trim(),defaultFont);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    document2.add(paragraph);
                                }
                                paragraph = PdfUtils.setParagraph(defaultFont, "");
                                paragraph.setSpacingBefore(2f);
                                paragraph.setSpacingAfter(5f);
                                document2.add(paragraph);
                            }
//                    }
                            index++;
                        }
                    }
                    if (isXmWrite) {
                        paragraph = PdfUtils.setParagraph(defaultFont, "");
                        paragraph.setSpacingBefore(2f);
                        paragraph.setSpacingBefore(0f);
                        paragraph.setSpacingAfter(5f);
                        document2.add(paragraph);
                    }
//                    }
                    index++;
                }
            }
            paragraph = PdfUtils.setParagraph(defaultFont, "");
            paragraph.setSpacingBefore(0f);
            paragraph.setSpacingAfter(5f);
            document2.add(paragraph);
        }
        for (Map.Entry<Long, List<TjOrderDetail>> entry : orderDetails.stream().collect(Collectors.groupingBy(TjOrderDetail::getProId)).entrySet()) {
            List<TjOrderDetail> details = entry.getValue();
            String xmmc = details.get(0).getProName();
            boolean isXmWrite = false;
            int index = 1;
            for (TjOrderDetail detail : details) {
                if (!isXmWrite) {
                    xmXh++;
                    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(" ","").replaceAll("\t","");
//                    result = result.replaceAll("\n本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查", "");
//                    result = "\n      " + result.replaceAll("\n", "\n      ");
                    int index1 = 1;
                    String[] split = result.split("\n");
                    boolean contains = result.contains("本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查");
                    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");
                        index1++;
                    }
                    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);
                paragraph = new Paragraph(result, defaultFont);
                paragraph.setAlignment(Element.ALIGN_LEFT);
                document2.add(paragraph);
                String str = "     ";
                List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(entry.getKey().toString(),"","",tjOrder.getTjNumber());
                for (Map<String, Object> objectMap : maps) {
                    paragraph = new Paragraph(str+objectMap.get("bt").toString()+objectMap.get("nr").toString(),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);
            }
        }
@@ -1320,8 +1349,8 @@
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setPaddingTop(10);
        cell.setPaddingBottom(10);
//        cell.setPhrase(new Phrase("何小婷", zongJianFont));
        cell.setPhrase(new Phrase(tjOrder.getCheckDoctor(), zongJianFont));
        cell.setPhrase(new Phrase(sysConfigService.selectConfigByKey("pdf_report_zongjianysname"), zongJianFont));
//        cell.setPhrase(new Phrase(tjOrder.getCheckDoctor(), zongJianFont));
        tableQz.addCell(cell);
        cell = new PdfPCell();
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -2629,7 +2629,8 @@
    public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate) throws Exception {
//        AjaxResult ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate);
        AjaxResult ajaxResult = hisPDFUtil.hisPDFNew(tjOrder, tjCustomer, reportTemplate);
//        AjaxResult ajaxResult = hisPDFUtil.hisPDFNew(tjOrder, tjCustomer, reportTemplate);
        AjaxResult ajaxResult = hisPDFUtil.hisPDFNew2(tjOrder, tjCustomer, reportTemplate);
        if (!ajaxResult.get("code").toString().equals("200")) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        } else {
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java
@@ -414,6 +414,7 @@
        try {
//            ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate);
//            ajaxResult = hisPDFUtil.hisPDFNew(tjOrder, tjCustomer, reportTemplate);
            ajaxResult = hisPDFUtil.hisPDFNew2(tjOrder, tjCustomer, reportTemplate);
        } catch (Exception e) {
            e.printStackTrace();