zhaowenxuan
2025-03-05 f0cfaecd79e18beff3a33a9152f855ca757282ba
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;
@@ -995,29 +997,29 @@
//        List<Map<String, Object>> jiancha = new ArrayList<>();
        paragraph = PdfUtils.setParagraph(defaultTitleFont, "检查综述:");
        paragraph.setSpacingBefore(3f);
        paragraph.setSpacingAfter(2f);
        document2.add(paragraph);
        int xmXh = 1;
        Map<Long, List<TjOrderDetail>> collect = orderDetails.stream().collect(Collectors.groupingBy(TjOrderDetail::getProId));
        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()) {
            paragraph = PdfUtils.setParagraph(defaultTitleFont, "检查综述:");
            paragraph.setSpacingBefore(3f);
            paragraph.setSpacingAfter(2f);
            document2.add(paragraph);
            isBr = true;
            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();
                String xmmc = entry.getKey();
//                    String xmmc = details.get(0).getProName();
                boolean isXmWrite = false;
                int index = 1;
                for (TjOrderYcxm detail : details) {
//                        if (!entry.getKey().equals(detail.getProId())) continue;
                    if (!isXmWrite) {
                        paragraph = new Paragraph(xmXh + ".  " + xmmc, defaultFont);
                        paragraph.setAlignment(Element.ALIGN_LEFT);
@@ -1029,6 +1031,7 @@
                        result = result.replaceAll("本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查", "");
                        StringBuilder builder = new StringBuilder();
                        if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue;
                        builder.append("    (").append(index).append(")").append(detail.getJcxm()).append(": ").append(result).append("\n");
                        index++;
@@ -1048,6 +1051,15 @@
                }
            }
        }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) {
@@ -1138,17 +1150,22 @@
        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);
        if(isBr) {
            paragraph = PdfUtils.setParagraph(defaultFont, "");
            paragraph.setLeading(0f);
            paragraph.setSpacingBefore(10f);
            paragraph.setSpacingAfter(10f);
            document2.add(paragraph);
        }
        xmXh = 0;
        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));
@@ -1374,6 +1391,14 @@
                }
            }*/
        } 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) {
@@ -1476,9 +1501,11 @@
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                document2.add(paragraph);
                                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) {
                                        Object bt = objectMap.get("bt");
@@ -2591,6 +2618,13 @@
            ltkjHybgdLambdaQueryWrapper.eq(LtkjHybgd::getTmh, hysqd.getTmh());
            List<LtkjHybgd> hybgds = ltkjHybgdService.list(ltkjHybgdLambdaQueryWrapper);
            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());
//                hybgds=hybgds.stream().sorted(Comparator.comparing(LtkjHybgd::getJcxm, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
//                hybgds = hybgds.stream()
//                        .sorted(Comparator.comparingInt(