zjh
2025-01-24 2b39b654975aa9cb40254f20e545b9f389a82de7
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
@@ -46,6 +46,7 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.text.Collator;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
@@ -141,7 +142,7 @@
        return data;
    }
    public void putData(JSONObject jsonObject, AjaxResult result, String key) {
/*    public void putData(JSONObject jsonObject, AjaxResult result, String key) {
        if (Integer.parseInt(result.get("code").toString()) == 200) {
            List<Map<String, Object>> data = (List<Map<String, Object>>) result.get("data");
            jsonObject.putOpt(key, data);
@@ -859,7 +860,7 @@
        String outputFileName1 = customer.getCusId() + tjOrder.getTjNumber() + customer.getCusName() + "_报告.pdf";
        savePDFFile(outputFileName1, tjOrder, customer, finalOutput);
        return AjaxResult.success();
    }
    }*/
    public AjaxResult hisPDFNew2(TjOrder tjOrder, TjCustomer customer, TjReportTemplate tjReportTemplate, TjReportTemplate zongJianYiShiQianMing) throws Exception {
        String s1 = sysConfigService.selectConfigByKey("tjreport_font_size_second_page_info");
@@ -920,7 +921,23 @@
        for (String head : titles) {
            table.addCell(PdfUtils.createCell(head, defaultFont, Rectangle.BOX, Element.ALIGN_CENTER, 5f, 5f));
        }
        Map<String, List<CsProVo>> listMap = list.stream().collect(Collectors.groupingBy(i -> i.getDeptId() + "_" + i.getDeptName()));
//        Map<String, List<CsProVo>> listMap = list.stream()
//                .collect(Collectors.groupingBy(i -> i.getDeptId() + "_" + i.getDeptName()));
        Map<String, List<CsProVo>> listMap = list.stream()
                .collect(Collectors.groupingBy(
                        i -> i.getDeptId() + "_" + i.getDeptName(),
                        TreeMap::new, // 按键排序
                        Collectors.mapping(
                                i -> i,
                                Collectors.collectingAndThen(
                                        Collectors.toList(),
                                        l -> l.stream()
                                                .sorted(Comparator.comparing(CsProVo::getDeptId)) // 对 List 排序
                                                .collect(Collectors.toList())
                                )
                        )
                ));
//        List<CsProVo> sortedList = list.stream()
//                .sorted(Comparator.comparingLong(CsProVo::getProId))
//                .collect(Collectors.toList());
@@ -1101,6 +1118,9 @@
                        if (!entry.getKey().equals(proVo.getProId())) continue;
                        List<TjOrderDetail> details = entry.getValue();
                        if(null !=details && !details.isEmpty()){
                             details= details.stream()
                                     .sorted(Comparator.comparing(TjOrderDetail::getProName))
                                    .collect(Collectors.toList());
                            boolean isXmWrite = false;
                            int index = 1;
                            int index1 = 1;
@@ -2054,7 +2074,7 @@
//                    document1.add(table);
//                    if (dictHosp.getHospName().equals("澄合矿务局中心医院") && !value.isEmpty()){
                    if (true && !value.isEmpty()) {
                    if (!value.isEmpty()) {
                        if (value.size() > 1) {
                            if (value.get(0).getPid().equals("1862852701533012001")) {
                                Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2175,7 +2195,7 @@
                        entry.getKey().setRemark("");
                    }
//                    if (!dictHosp.getHospName().equals("澄合矿务局中心医院")){
                    if (!true) {
                    if (false) {
                        String remark = "备注:" + entry.getKey().getRemark();
                        if (entry.getKey().getRemark().length() > 50) {
                            int j = 0;
@@ -2202,24 +2222,19 @@
                    zhuJianYiShi(document1, entry, orderRemark.getCreateTime(), dictHosp);
                    //分割线
//                    if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
                    if (!true) {
                    if (false) {
                        LineSeparator objectName = new LineSeparator();
                        document1.add(objectName);
                    }
                } else {
                    if (null != one11) {
                        if (entry.getValue().get(0).getProName().contains(";"))
                            titleName = entry.getValue().get(0).getProName();
                        else titleName = one11.getProName();
                    } else {
                        titleName = entry.getKey().getProName();
                    }
                    // 设置标题字体样式
                    Font titleFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
                    Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName);
//                    if (dictHosp.getHospName().equals("澄合矿务局中心医院")) {
                    if (true) {
                        if (StrUtil.isBlank(value.get(0).getProResult()) && (StrUtil.isBlank(value.get(0).getTs()) && StrUtil.isBlank(value.get(0).getSj()))) {
                            continue;
                        }
@@ -2235,9 +2250,6 @@
                        tableTitle.addCell(cellTitle);
                        // 将表格添加到文档中
                        document1.add(tableTitle);
                    } else {
                        document1.add(paragraph);
                    }
//                    String[] titles = {"体检项目", "体检结果", "单位"};
//                    Font headFont = PdfUtils.setFont(9);
@@ -2246,7 +2258,7 @@
//                    document1.add(table);
//                    if (dictHosp.getHospName().equals("澄合矿务局中心医院") && !value.isEmpty()){
                    if (true && !value.isEmpty()) {
                    if (!value.isEmpty()) {
                        if (value.size() > 1) {
                            if (value.get(0).getPid().equals("1862852701533012001")) {
                                Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2493,6 +2505,14 @@
            LambdaQueryWrapper<LtkjHybgd> ltkjHybgdLambdaQueryWrapper = new LambdaQueryWrapper<>();
            ltkjHybgdLambdaQueryWrapper.eq(LtkjHybgd::getTmh, hysqd.getTmh());
            List<LtkjHybgd> hybgds = ltkjHybgdService.list(ltkjHybgdLambdaQueryWrapper);
            if(null !=hybgds && !hybgds.isEmpty()){
//                hybgds=hybgds.stream().sorted(Comparator.comparing(LtkjHybgd::getJcxm, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
//                hybgds = hybgds.stream()
//                        .sorted(Comparator.comparingInt(
//                                a -> a.getJcxm().length() // 根据名字的长度排序
//                        ))
//                        .collect(Collectors.toList());
            // 大类项目名称
            String xmmc = hysqd.getXmmc();
            ArrayList<List<String>> lists = new ArrayList<>();
@@ -2565,6 +2585,7 @@
                }
                map.put("shsj", shsj);
                data.put(xmmc, map);
                }
            }
        }
        return data;
@@ -2757,16 +2778,9 @@
        for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) {
            List<TjPdfVO> tjPdfVOS = new ArrayList<>();
            List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.getDetailByOrderIdAndParId(one.getOrderId(), entry.getKey().getProId());
//            tjOrderDetails = new ArrayList<>(tjOrderDetails.stream()
//                    .filter(i -> StrUtil.isNotBlank(i.getProResult()))
//                    .collect(Collectors.toMap(
//                            TjOrderDetail::getProId,
//                            i -> i,
//                            (existing, replacement) -> existing
//                    ))
//                    .values());
            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());
            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")) {
@@ -2784,19 +2798,21 @@
                        }
                        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()));
//                        LtkjExamJcbgd jcbgd = jcbgdService.getOne(wrapper);
//                        if (jcbgd != null){
//                            tjPdfVO.setTs(jcbgd.getYxbx());
//                            tjPdfVO.setSj(jcbgd.getBgNr());
//                            tjPdfVO.setShys(jcbgd.getShysxm());
//                        }
//                        LambdaQueryWrapper<LtkjExamJcbgd> wrapper = new LambdaQueryWrapper<>();
//                        wrapper.eq(LtkjExamJcbgd::getTjh, tjNumber);
//                        wrapper.eq(LtkjExamJcbgd::getXmdm, String.valueOf(tjOrderDetail.getProject().getProParentId()));
                        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());
//            }
            printReport.put(entry.getKey(), tjPdfVOS);
        }
    }
@@ -2854,6 +2870,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());
//            }
            printReport.put(entry.getKey(), tjPdfVOS);
        }
    }