zjh
2024-07-09 e37740bcaa6a0dfdef6e082e4d8136b81d453000
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
@@ -69,6 +69,8 @@
    private LtkjHybgdService ltkjHybgdService;
    @Autowired
    private LtkjHysqdService ltkjHysqdService;
    @Autowired
    private LtkjGetexamreportinfoService ltkjGetexamreportinfoService;
    @Value("${path.filePath}")
    private String value;
    @Value("${path.reportServer}")
@@ -195,7 +197,7 @@
        // 组装检验数据
        HashMap<String, Object> map = makeHisJianYan(tjOrder, customer);
        makeHisJianYanTable(document1, map);
        List<ByteArrayOutputStream> jianchas = makeHisJianChaTable(tjOrder);
        document1.close();
        pdfWriter.close();
        PdfReader reader = null;
@@ -205,6 +207,15 @@
            for (int i = 1; i <= numberOfPages1; i++) {
                PdfImportedPage page = copy.getImportedPage(reader, i);
                copy.addPage(page);
            }
            for (ByteArrayOutputStream jiancha : jianchas) {
                reader = new PdfReader(jiancha.toByteArray());
                numberOfPages1 = reader.getNumberOfPages();
                for (int i = 1; i <= numberOfPages1; i++) {
                    PdfImportedPage page = copy.getImportedPage(reader, i);
                    copy.addPage(page);
                }
                jiancha.close();
            }
            reader.close();
            byteArrayOutputStream1.close();
@@ -221,7 +232,7 @@
        String tjNumber = tjOrder.getTjNumber();
        tjReport.setTjNumber(String.valueOf(tjNumber));
        tjReport.setPath(urlValue + outputFileName1);
        // TODO 文件配置
        // 文件配置
//        String outputPath1 = "/Users/chacca/开发相关/代码/";
        String outputPath1 = value+"\\";
        String pdfBinary = getPDFBinary(outputPath1 + outputFileName1);
@@ -240,13 +251,53 @@
    }
    /**
     * 生成检查表格
     * @param tjOrder
     * @return
     */
    private List<ByteArrayOutputStream> makeHisJianChaTable(TjOrder tjOrder) {
        LambdaQueryWrapper<LtkjGetexamreportinfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(LtkjGetexamreportinfo::getRequestParamsHisRegistrationId, tjOrder.getCardId());
        lambdaQueryWrapper.groupBy(LtkjGetexamreportinfo::getJcbgid);
        List<LtkjGetexamreportinfo> list = ltkjGetexamreportinfoService.list(lambdaQueryWrapper);
//        List<LtkjGetexamreportinfo> list = ltkjGetexamreportinfoService.list();
        List<ByteArrayOutputStream> jianchas = new ArrayList<>();
        for (LtkjGetexamreportinfo getexamreportinfo : list) {
            String xm = getexamreportinfo.getHzxm();
            String xb = getexamreportinfo.getHzxb().equals("2") ? "女" : "男";
            String nl = getexamreportinfo.getHznl();
            if (StrUtil.isNotBlank(nl) && nl.contains(".")) {
                String[] split = nl.split("\\.");
                nl = split[0];
            }
            String jcks = getexamreportinfo.getJcksmc();
            String sqks = getexamreportinfo.getSqksmc();
            String sjks = getexamreportinfo.getZdjgmc();
            String jcsb = getexamreportinfo.getSbbm();
            String jch = getexamreportinfo.getJch();
            String jcxm = getexamreportinfo.getJcxmmc();
            String ms = getexamreportinfo.getYxbx();
            String ts = getexamreportinfo.getYxzd();
            String bgysqm = getexamreportinfo.getBgysqm();
            String shysqm = getexamreportinfo.getShysqm();
            String sqrxm = getexamreportinfo.getSqrxm();
            String zyh = "";
            String ch = "";
            String footer = "申请人:"+sqrxm + "     审核医师:"+shysqm+"     医师签名:"+bgysqm;
            ByteArrayOutputStream outputStream = makeJcPDFByteArrayStream(xm, xb, nl, jcks, zyh, ch, sjks, jcsb, jch, jcxm, ms, ts, null,footer);
            jianchas.add(outputStream);
        }
        return jianchas;
    }
    /**
     * PDF文件存储至本地
     * @param tjOrder
     * @param customer
     * @param finalOutPut
     */
    private void savePDFFile(String outputFileName1,TjOrder tjOrder, TjCustomer customer, ByteArrayOutputStream finalOutPut) {
        // TODO 文件配置
        // 文件配置
//        String outputPath1 = "/Users/chacca/开发相关/代码/";
        String outputPath1 = value+"\\";
        File file = new File(outputPath1 + outputFileName1);
@@ -462,7 +513,9 @@
                // 范围值
                String fwz = hybgd.getFwz();
                // 检验医师
                String jyys = hybgd.getJyys();
//                String jyys = hybgd.getJyys();
                //审核医生
                String shysmc = hybgd.getShysmc();
                if (jyjg != null && StrUtil.isNotBlank(jyjg) && fwz != null && StrUtil.isNotBlank(fwz)){
                    try {
                        String[] fwzs = fwz.split("-");
@@ -479,11 +532,12 @@
                        }
                    } catch (Exception ignored) {}
                }
                LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
                queryWrapper.eq(SysUser::getUserName,jyys);
                List<SysUser> sysUsers = userService.list(queryWrapper);
                if (!sysUsers.isEmpty())
                    hashSet.add(sysUsers.get(0).getNickName());
//                LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
//                queryWrapper.eq(SysUser::getUserName,jyys);
//                List<SysUser> sysUsers = userService.list(queryWrapper);
//                if (!sysUsers.isEmpty())
//                    hashSet.add(sysUsers.get(0).getNickName());
                if(null !=shysmc) hashSet.add(shysmc);
                ArrayList<String> strings = new ArrayList<>();
                strings.add(jcxm);
                strings.add(jyjg);
@@ -1008,7 +1062,7 @@
            copy.close();
            reader.close();
            String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_报告.pdf";
            // TODO 文件配置
            // 文件配置
//            String outputPath1 = "/Users/chacca/开发相关/代码/";
            String outputPath1 = value+"\\";
            File file = new File(outputPath1 + outputFileName1);
@@ -1042,7 +1096,13 @@
        return true;
    }
    // 组合非化验项目报告数据
    /**
     * 组合非化验项目报告数据
     * @param tjNumber
     * @param printReport
     * @param one
     * @param customer
     */
    private void notHuaYanData(String tjNumber, Map<TjOrderRemark, List<TjPdfVO>> printReport,TjOrder one,TjCustomer customer) {
        LambdaQueryWrapper<TjOrderRemark> wqq = new LambdaQueryWrapper<>();
        wqq.eq(TjOrderRemark::getTjNumber, tjNumber);