zhaowenxuan
2024-12-09 0348f5a8184bd0a05434562f0021c2bb50628c32
2024-12-09
2个文件已修改
55 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java 54 ●●●●● 补丁 | 查看 | 原始文档 | 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
@@ -42,6 +42,7 @@
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
@@ -121,7 +122,8 @@
        String color = sysConfigService.selectConfigByKey("report_title_color");
//        list.get(0).getHospName().equals("澄合矿务局中心医院")
        List<SysDictData> sysUserSex = sysDictDataService.list(new LambdaQueryWrapper<SysDictData>().eq(SysDictData::getDictType, "sys_user_sex"));
        HashMap<String, Object> pdfChangGui = makePDFInfo(tjOrder, customer, tjReportTemplate);
        HashMap<String, Object> map = makeHisJianYan(tjOrder, customer);
        HashMap<String, Object> pdfChangGui = makePDFInfo(tjOrder, customer, tjReportTemplate,dictHosp,map);
        if (pdfChangGui == null)
            return AjaxResult.error();
        Document document = (Document) pdfChangGui.get("document");
@@ -163,7 +165,6 @@
            return AjaxResult.error();
        }
        // 组装检验数据
        HashMap<String, Object> map = makeHisJianYan(tjOrder, customer);
        makeHisJianYanTable(document1, map,dictHosp,color);
@@ -818,7 +819,7 @@
     * @param tjOrder
     * @param reportTemplate
     */
    public HashMap<String, Object> makePDFInfo(TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate) {
    public HashMap<String, Object> makePDFInfo(TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate,DictHosp dictHosp,HashMap<String, Object> jianYanMap) {
        String tjNumber = tjOrder.getTjNumber();
        String template = reportTemplate.getTemplate();
        LambdaQueryWrapper<DictComp> wq111 = new LambdaQueryWrapper<>();
@@ -868,6 +869,7 @@
            }
            //拼接重大阳性结果
            StringBuffer str = new StringBuffer();
            if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
            str.append("【重大阳性项目】\n");
            LambdaQueryWrapper<TjBigPositive> bigPositiveLambdaQueryWrapper = new LambdaQueryWrapper<>();
            bigPositiveLambdaQueryWrapper.eq(TjBigPositive::getTjNumber, tjNumber);
@@ -879,8 +881,10 @@
            } else {
                str.append("    无;\n");
            }
            }
            //拼接异常项目
            str.append("【异常情况项目】\n");
            if (!dictHosp.getHospName().equals("澄合矿务局中心医院")) {
            if (list.size() > 0) {
                for (int i = 0; i < list.size(); i++) {
                    if (list.get(i).getExceptionDesc() == 1) {
@@ -889,6 +893,42 @@
                }
            } else {
                str.append("    无;\n");
                }
            }else {
                int maxProjectLength = 0;
                for (Map.Entry<String, Object> item : jianYanMap.entrySet()) {
                    HashMap<String, Object> entryValue = (HashMap<String, Object>) item.getValue();
                    ArrayList<List<String>> lists = (ArrayList<List<String>>) entryValue.get("data");
                    for (List<String> i : lists) {
                        maxProjectLength = Math.max(maxProjectLength, i.get(0).length());
                    }
                }
                int projectWidth = maxProjectLength * 2;
                int resultWidth = 8;
                int flagWidth = 8;
                int unitWidth = 8;
                int rangeWidth = 15;
                str.append(padRight("项目", projectWidth))
                        .append(padRight("结果", resultWidth))
                        .append(padRight("标志", flagWidth))
                        .append(padRight("单位", unitWidth))
                        .append(padRight("参考范围", rangeWidth))
                        .append("\n");
                for (Map.Entry<String, Object> item : jianYanMap.entrySet()) {
                    HashMap<String, Object> entryValue = (HashMap<String, Object>) item.getValue();
                    ArrayList<List<String>> lists = (ArrayList<List<String>>) entryValue.get("data");
                    for (List<String> i : lists) {
                        if (i.contains("↓") || i.contains("↑")) {
                            int currentProjectWidth = i.get(0).length() + (maxProjectLength - i.get(0).length()) * 2 + 2;
                            str.append(padRight(i.get(0), currentProjectWidth));
                            str.append(padRight(i.get(1), resultWidth));
                            str.append(padRight(i.get(2), flagWidth));
                            str.append(padRight(i.get(3), unitWidth));
                            str.append(padRight(i.get(4), rangeWidth));
                            str.append("\n");
                        }
                    }
                }
            }
            //异常项目
            data.put("yichang", str.toString());
@@ -928,6 +968,14 @@
        }
    }
    public static String padRight(String str, int length) {
        StringBuilder sb = new StringBuilder(str);
        while (sb.length() < length) {
            sb.append(" ");
        }
        return sb.toString();
    }
    /**
     * 组合非化验项目报告数据
     *
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java
@@ -412,6 +412,7 @@
        try {
            ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate);
        } catch (Exception e) {
            e.printStackTrace();
            log.error(String.valueOf(e));
        }
        if (!ajaxResult.get("code").toString().equals("200")) {