zjh
2023-10-25 8c4968ea3bd61c154c71d40f43a2cc22760fef49
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java
@@ -221,27 +221,42 @@
        //从文件地址读入PDF文件  仅存储一次
        // TODO: 2023/3/21 将模板保存到数据库 一次使用后注释
//        String base64String = PDFBinaryUtil.getPDFBinary("E:\\体检报告模板.pdf");
//        System.out.println(base64String);
//        String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\体检模板4.pdf");
//        TjReportTemplate tem = new TjReportTemplate();
//        tem.setName("体检报告模板4");
//        tem.setRemark("体检报告模板4");
//        tem.setTemplate(base64String);
//        tem.setFlag("1");
//        tem.setOpen("0");
//        reportTemplateService.save(tem);
        // TODO: 2023/3/21 将心电图保存到数据库 一次使用后注释  暂时用于测试
//        String base64String = PDFBinaryUtil.getPDFBinary("E:\\心电图.pdf");
//        System.out.println(base64String);
//        TjReport tem = new TjReport();
//        tem.setTjNumber(tjNumber);
//        tem.setReport(base64String);
//        tem.setType("心电图");
//        tjReportService.save(tem);
//        // TODO: 2023/3/21 将心电图保存到数据库 一次使用后注释  暂时用于测试
//        String base64String2 = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\心电图1.pdf");
//        TjReport tem2 = new TjReport();
//        tem2.setTjNumber(tjNumber);
//        tem2.setReport(base64String2);
//        tem2.setType("心电图");
//        tjReportService.save(tem2);
//
//        String base64String1 = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\附件2.pdf");
//        TjReport tem1 = new TjReport();
//        tem1.setTjNumber(tjNumber);
//        tem1.setReport(base64String1);
//        tem1.setType("附件");
//        tjReportService.save(tem1);
//
//        String base64String3 = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\医学名词.pdf");
//        TjReport tem3 = new TjReport();
//        tem3.setTjNumber(tjNumber);
//        tem3.setReport(base64String3);
//        tem3.setType("医学名词");
//        tjReportService.save(tem3);
        int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
        if(num >0) return AjaxResult.error("有延期项目暂不能生成报告!!!");
        LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>();
        tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 2);
        tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1);
        tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0);
        TjReportTemplate one1 = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper);
        String template = one1.getTemplate();
@@ -305,20 +320,39 @@
                    // 填充数据给表格
                    Map<String, Object> data = new HashMap<>();
                    data.put("name", tjCustomer.getCusName());
                    //填充性别:判断男女
                    Long cusSex = tjCustomer.getCusSex();
                    String sex;
                    String name1;
                    String tjtype;
                    if (cusSex == 0) {
                        sex = "男";
                        name1=tjCustomer.getCusName()+"先生";
                    } else {
                        sex = "女";
                        name1=tjCustomer.getCusName()+"女士";
                    }
                    data.put("name",tjCustomer.getCusName());
                    data.put("cusId",tjCustomer.getCusId());
                    data.put("name1",name1);
                    if ("1".equals(tjOrder.getTjType())) {
                        tjtype = "团队";
                        data.put("tjtype",tjtype);
                    } else {
                        tjtype = "个人";
                        data.put("tjtype",tjtype);
                    }
                    data.put("dstype","统一");
                    data.put("sex", sex);
                    data.put("age", DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
                    data.put("tjnumber", tjNumber);
                    data.put("tjdate", DateUtils.parseDateToStr("yyyy/MM/dd", tjOrder.getCreateTime()));
                    data.put("phone", tjCustomer.getCusPhone());
                    data.put("idcard", MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
                    data.put("num1",list.size());
                    data.put("num2",0);
                    data.put("num3",4);
                    if (dictComp == null) {
                        data.put("work", "无");
                    } else {
@@ -328,8 +362,21 @@
                    if (tjOrder.getCheckAdvice() == null) {
                        data.put("remark", "无");
                    } else {
                        data.put("remark", "总检建议:"+tjOrder.getCheckAdvice());
                        data.put("remark", tjOrder.getCheckAdvice());
                    }
                    //封面页下面的总检建议显示
                    if (tjOrder.getCheckDoctor() == null) {
                        data.put("docname", "无");
                    } else {
                        data.put("docname", tjOrder.getCheckDoctor());
                    }
                    //异常项目
                    data.put("yichang", "【1】屈光不正\n" +
                            "【2】扁桃体肥⼤\n" +
                            "【3】体重指数增⾼\n" +
                            "【4】⾎脂异常(总胆固醇增⾼;⽢油三酯增⾼)\n" +
                            "【5】γ-⾕氨酰转移酶增⾼;天⻔冬氨酸氨基转移酶增⾼;丙氨酸氨基转移酶增⾼\n" +
                            "【6】轻⾄中度脂肪肝");
                    // 遍历data 给pdf表单表格赋值
                    for (String key : data.keySet()) {
@@ -341,6 +388,7 @@
                    os.close();
                    reader.close();
                    //====================================以上封面页,以下详情页
                    //文档对象  实现A4纸页面
                    Document document = new Document(PageSize.A4);
                    //document.setMarginMirroring(true);
@@ -354,6 +402,9 @@
                    pdfWriter.setPageEvent(new MyHeaderFooter());// 页眉页脚
                    document.open();
                    document.add(new Header("健康体检结果","健康体检结果"));
                    Map<TjOrderRemark, List<TjPdfVO>> tjOrderRemarkObjectMap = addTable(tjNumber);
                    for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : tjOrderRemarkObjectMap.entrySet()) {
@@ -493,19 +544,33 @@
                    pdfWriter.close();
                    outputStream.close();
                    // TODO: 2023/3/29  查询附件pdf 比如心电图
                    /*LambdaQueryWrapper<TjReport> rtwq = new LambdaQueryWrapper<>();
                    // TODO: 2023/3/29  查询附件pdf 如心电图、附件
                    LambdaQueryWrapper<TjReport> rtwq1 = new LambdaQueryWrapper<>();
                    rtwq1.eq(TjReport::getType, "医学名词");
//                    rtwq1.eq(TjReport::getTjNumber, tjNumber);
                    TjReport one11111 = tjReportService.getOne(rtwq1);
                    String report1 = one11111.getReport();
                    PDFBinaryUtil.base64StringToPDF(report1, FileUtil.mkdir(value).getPath() + "\\" + userId + "医学名词.pdf");
                    LambdaQueryWrapper<TjReport> rtwq = new LambdaQueryWrapper<>();
                    rtwq.eq(TjReport::getType, "心电图");
//                    rtwq.eq(TjReport::getTjNumber, tjNumber);
                    TjReport one1111 = tjReportService.getOne(rtwq);
                    String report = one1111.getReport();
                    PDFBinaryUtil.base64StringToPDF(report, FileUtil.mkdir(value).getPath() + "\\" + userId + "心电图.pdf");*/
                    PDFBinaryUtil.base64StringToPDF(report, FileUtil.mkdir(value).getPath() + "\\" + userId + "心电图.pdf");
                    LambdaQueryWrapper<TjReport> rtwq12 = new LambdaQueryWrapper<>();
                    rtwq12.eq(TjReport::getType, "附件");
//                    rtwq12.eq(TjReport::getTjNumber, tjNumber);
                    TjReport one111112 = tjReportService.getOne(rtwq12);
                    String report12 = one111112.getReport();
                    PDFBinaryUtil.base64StringToPDF(report12, FileUtil.mkdir(value).getPath() + "\\" + userId + "附件.pdf");
                    //合并
                    //String[] files1 = {value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + "体检报告项目详情页.pdf",value + "\\" + userId + "心电图.pdf"};
                    String[] files1 = {value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + "体检报告项目详情页.pdf"};
                    String[] files1 = {value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + "体检报告项目详情页.pdf",value + "\\" + userId + "医学名词.pdf",value + "\\" + userId + "附件.pdf",value + "\\" + userId + "心电图.pdf"};
                    String outputPath1 = value + "\\";
                    String outputFileName1 = tjNumber +tjCustomer.getCusName()+ "的体检报告.pdf";
                    String outputFileName1 = userId+tjNumber +tjCustomer.getCusName()+ "_体检报告.pdf";
                    File file1 = new File(outputPath1 + outputFileName1);
                    List<File> f = new ArrayList<>();
@@ -665,6 +730,16 @@
        tjOrderService.update(updateWrapper);
        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
        wq1.eq(TjOrder::getTjNumber,tjNumber);
        TjOrder tjOrder = tjOrderService.getOne(wq1);
        LambdaQueryWrapper<TjCustomer> wq2 = new LambdaQueryWrapper<>();
        wq2.eq(TjCustomer::getCusId, tjOrder.getUserId());
        TjCustomer tjCustomer = tjCustomerService.getOne(wq2);
        LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>();
        we.eq(TjReport::getTjNumber, tjNumber);
        we.eq(TjReport::getType,"体检报告");
@@ -673,9 +748,9 @@
            return;
        }
        String userId = SecurityUtils.getLoginUser().getUsername();
        PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + "\\" + userId+tjNumber + "_体检报告.pdf");
        PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + "\\" + userId+tjNumber +tjCustomer.getCusName()+ "_体检报告.pdf");
        //String filePath = one.getPath();
        String filePath = value+ "\\" + userId+tjNumber + "_体检报告.pdf";
        String filePath = value+ "\\" + userId+tjNumber +tjCustomer.getCusName()+ "_体检报告.pdf";
        File f = new File(filePath);
        if (filePath.isEmpty()){
            System.out.println("文件不存在!");