| | |
| | | @Resource |
| | | private ITjStandardService tjStandardService; |
| | | @Resource |
| | | private ITjAdviceService tjAdviceService; |
| | | @Resource |
| | | private IDictCompService dictCompService; |
| | | @Resource |
| | | private ITjReportTemplateService reportTemplateService; |
| | |
| | | |
| | | @Autowired |
| | | private ISysDictDataService dictDataService; |
| | | @Resource |
| | | private ITbTransitionService transitionService; |
| | | |
| | | @Autowired |
| | | private ITjBigPositiveService tjBigPositiveService; |
| | | |
| | | @GetMapping("/savePdf") |
| | | @ApiOperation(value = "从本地存储模板到数据库") |
| | | public AjaxResult savePdf() { |
| | | //从文件地址读入PDF文件 仅存储一次 |
| | | String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\体检模板5.pdf"); |
| | | TjReportTemplate tem = new TjReportTemplate(); |
| | | tem.setName("体检报告模板5"); |
| | | tem.setRemark("体检报告模板5"); |
| | | tem.setTemplate(base64String); |
| | | tem.setFlag("1"); |
| | | tem.setOpen("0"); |
| | | final boolean save = reportTemplateService.save(tem); |
| | | if(save){ |
| | | return AjaxResult.success("保存成功"); |
| | | } |
| | | return AjaxResult.success("保存失败"); |
| | | // 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); |
| | | |
| | | } |
| | | |
| | | |
| | | // /* *//** |
| | |
| | | @Transactional |
| | | public AjaxResult toPdf(@PathVariable("TjNumber") @ApiParam(value = "体检号") String tjNumber) { |
| | | |
| | | //从文件地址读入PDF文件 仅存储一次 |
| | | // TODO: 2023/3/21 将模板保存到数据库 一次使用后注释 |
| | | // 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 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<TjOrder> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjOrder::getTjNumber, tjNumber); |
| | | TjOrder tjOrder = tjOrderService.getOne(wq); |
| | | |
| | | if (null != tjOrder) { |
| | | LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | TjReportTemplate reportTemplate =null; |
| | | if (tjOrder.getTjCategory()!=null){ |
| | | //查询字典 |
| | | LambdaQueryWrapper<SysDictData> wqq = new LambdaQueryWrapper<>(); |
| | |
| | | }else { |
| | | tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1); |
| | | } |
| | | tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); |
| | | reportTemplate = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper); |
| | | }else { |
| | | tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); |
| | | reportTemplate = reportTemplateService.list(tjReportTemplateLambdaQueryWrapper).get(2); |
| | | } |
| | | |
| | | |
| | | tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); |
| | | TjReportTemplate one1 = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper); |
| | | String template = one1.getTemplate(); |
| | | String template = reportTemplate.getTemplate(); |
| | | |
| | | String userId = SecurityUtils.getLoginUser().getUsername(); |
| | | PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + "\\" + userId + "体检报告封面模板.pdf"); |
| | |
| | | data.put("docname", tjOrder.getCheckDoctor()); |
| | | } |
| | | //异常项目 |
| | | data.put("yichang", "【1】屈光不正\n" + |
| | | "【2】扁桃体肥⼤\n" + |
| | | "【3】体重指数增⾼\n" + |
| | | "【4】⾎脂异常(总胆固醇增⾼;⽢油三酯增⾼)\n" + |
| | | "【5】γ-⾕氨酰转移酶增⾼;天⻔冬氨酸氨基转移酶增⾼;丙氨酸氨基转移酶增⾼\n" + |
| | | "【6】轻⾄中度脂肪肝"); |
| | | // data.put("yichang", "【1】屈光不正\n" + |
| | | // "【2】扁桃体肥⼤\n" + |
| | | // "【3】体重指数增⾼\n" + |
| | | // "【4】⾎脂异常(总胆固醇增⾼;⽢油三酯增⾼)\n" + |
| | | // "【5】γ-⾕氨酰转移酶增⾼;天⻔冬氨酸氨基转移酶增⾼;丙氨酸氨基转移酶增⾼\n" + |
| | | // "【6】轻⾄中度脂肪肝"); |
| | | |
| | | //拼接重大阳性结果 |
| | | StringBuffer str=new StringBuffer(); |
| | | str.append("【重大阳性项目】\n"); |
| | | LambdaQueryWrapper<TjBigPositive> bigPositiveLambdaQueryWrapper=new LambdaQueryWrapper<>(); |
| | | bigPositiveLambdaQueryWrapper.eq(TjBigPositive::getTjNumber,tjNumber); |
| | | final List<TjBigPositive> list1 = tjBigPositiveService.list(bigPositiveLambdaQueryWrapper); |
| | | if(list1!=null&&list1.size()>0){ |
| | | for (int i = 0; i < list1.size(); i++) { |
| | | str.append((i+1)+"、"+list1.get(i).getProName()+";\n"); |
| | | } |
| | | }else { |
| | | str.append(" 无;\n"); |
| | | } |
| | | //拼接异常项目 |
| | | str.append("【异常情况项目】\n"); |
| | | if(list.size()>0){ |
| | | for (int i = 0; i < list.size(); i++) { |
| | | if (list.get(i).getExceptionDesc()==1){ |
| | | str.append((i+1)+"、"+projectService.getById(list.get(i).getProId()).getProName()+";\n"); |
| | | } |
| | | } |
| | | }else { |
| | | str.append(" 无;\n"); |
| | | } |
| | | |
| | | //异常项目 |
| | | data.put("yichang", str.toString()); |
| | | |
| | | // 遍历data 给pdf表单表格赋值 |
| | | for (String key : data.keySet()) { |
| | |
| | | //设置文档的页边距就是距离页面边上的距离,分别为:左边距,右边距,上边距,下边距 |
| | | document.setMargins(70, 70, 40, 40); |
| | | //生成pdf的位置以及名称 |
| | | String fileName = value + "\\" + userId + "体检报告项目详情页.pdf"; |
| | | String fileName = value + "\\" + userId +tjNumber+ "体检报告项目详情页.pdf"; |
| | | OutputStream outputStream = Files.newOutputStream(Paths.get(fileName)); |
| | | PdfWriter pdfWriter = PdfWriter.getInstance(document, outputStream); |
| | | |
| | | pdfWriter.setPageEvent(new MyHeaderFooter());// 页眉页脚 |
| | | //pdfWriter.setPageEvent(new MyHeaderFooter());// 页眉页脚 |
| | | |
| | | document.open(); |
| | | |
| | |
| | | pdfWriter.close(); |
| | | outputStream.close(); |
| | | |
| | | // TODO: 2023/3/29 查询附件pdf 如心电图、附件 |
| | | LambdaQueryWrapper<TjReport> rtwq1 = new LambdaQueryWrapper<>(); |
| | | rtwq1.eq(TjReport::getType, "医学名词"); |
| | | // rtwq1.eq(TjReport::getTjNumber, tjNumber); |
| | | TjReport one11111 = tjReportService.getOne(rtwq1); |
| | | if(null !=one11111){ |
| | | String report1 = one11111.getReport(); |
| | | PDFBinaryUtil.base64StringToPDF(report1, FileUtil.mkdir(value).getPath() + "\\" + userId + "医学名词.pdf"); |
| | | } |
| | | // LambdaQueryWrapper<TjReport> rtwq1 = new LambdaQueryWrapper<>(); |
| | | // rtwq1.eq(TjReport::getType, "医学名词"); |
| | | //// rtwq1.eq(TjReport::getTjNumber, tjNumber); |
| | | // TjReport one11111 = tjReportService.getOne(rtwq1); |
| | | // if(null !=one11111){ |
| | | // 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); |
| | | rtwq.eq(TjReport::getTjNumber, tjNumber); |
| | | TjReport one1111 = tjReportService.getOne(rtwq); |
| | | if(null !=one1111){ |
| | | String report = one1111.getReport(); |
| | | PDFBinaryUtil.base64StringToPDF(report, FileUtil.mkdir(value).getPath() + "\\" + userId + "心电图.pdf"); |
| | | PDFBinaryUtil.base64StringToPDF(report, FileUtil.mkdir(value).getPath() + "\\" +tjNumber+ userId + "心电图.pdf"); |
| | | } |
| | | |
| | | LambdaQueryWrapper<TjReport> rtwq12 = new LambdaQueryWrapper<>(); |
| | | rtwq12.eq(TjReport::getType, "附件"); |
| | | // rtwq12.eq(TjReport::getTjNumber, tjNumber); |
| | | rtwq12.eq(TjReport::getTjNumber, tjNumber); |
| | | TjReport one111112 = tjReportService.getOne(rtwq12); |
| | | if(null !=one111112){ |
| | | String report12 = one111112.getReport(); |
| | | PDFBinaryUtil.base64StringToPDF(report12, FileUtil.mkdir(value).getPath() + "\\" + userId + "附件.pdf"); |
| | | PDFBinaryUtil.base64StringToPDF(report12, FileUtil.mkdir(value).getPath() + "\\" +tjNumber+ userId + "附件.pdf"); |
| | | } |
| | | |
| | | //合并 |
| | | String[] files1=null; |
| | | if (one1111!=null ){ |
| | | if (one111112!=null){ |
| | | files1 = new String[ ]{value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + tjNumber + "体检报告项目详情页.pdf", value + "\\" + tjNumber + userId + "附件.pdf", value + "\\" + tjNumber + userId + "心电图.pdf"}; |
| | | }else { |
| | | files1 = new String[]{value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + tjNumber + "体检报告项目详情页.pdf",value + "\\" + tjNumber + userId + "心电图.pdf"}; |
| | | } |
| | | }else { |
| | | if (one111112!=null){ |
| | | files1 = new String[]{value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + tjNumber + "体检报告项目详情页.pdf", value + "\\" + tjNumber + userId + "附件.pdf"}; |
| | | }else { |
| | | files1 = new String[]{value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + tjNumber + "体检报告项目详情页.pdf"}; |
| | | } |
| | | } |
| | | //合并 |
| | | String[] files1 = {value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + "体检报告项目详情页.pdf", value + "\\" + userId + "医学名词.pdf", value + "\\" + userId + "附件.pdf", value + "\\" + userId + "心电图.pdf"}; |
| | | // String[] files1 = {value + "\\" + userId + "体检报告封面页.pdf", value + "\\" + userId + tjNumber+"体检报告项目详情页.pdf", value + "\\" +tjNumber+ userId + "附件.pdf", value + "\\" + tjNumber + userId + "心电图.pdf"}; |
| | | String outputPath1 = value + "\\"; |
| | | String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_体检报告.pdf"; |
| | | |
| | |
| | | tjReport.setType("体检报告"); |
| | | tjReportService.save(tjReport); |
| | | |
| | | //TODO 2023/2/3 16:21 生成体检报告pdf后删除本地文件 |
| | | //FileUtil.del(value + "\\" + tjNumber + "体检报告.pdf"); |
| | | //FileUtil.del(value + "\\" + userId + "体检报告封面模板.pdf"); |
| | | //FileUtil.del(value + "\\" + userId + "体检报告项目详情页.pdf"); |
| | | //FileUtil.del(value + "\\" + userId +tjNumber+ "体检报告项目详情页.pdf"); |
| | | //FileUtil.del(value + "\\" + userId + "体检报告封面页.pdf"); |
| | | //FileUtil.del(value + "\\" + userId + "心电图.pdf"); |
| | | |
| | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | return AjaxResult.success("PDF导出失败"); |
| | | }finally { |
| | | transitionService.deletedTbTransitionListByCusIdAndTjNum(tjCustomer.getCusIdcard(),tjOrder.getCardId()); |
| | | } |
| | | } |
| | | } |
| | |
| | | LambdaQueryWrapper<TjOrder> wqq = new LambdaQueryWrapper<>(); |
| | | wqq.like(TjOrder::getUserId, cusId); |
| | | List<TjOrder> orderList = tjOrderService.list(wqq); |
| | | if (orderList!=null){ |
| | | if (orderList!=null && orderList.size()>0){ |
| | | for (TjOrder tjOrder : orderList) { |
| | | if (tjOrder!=null){ |
| | | LambdaQueryWrapper<TjReport> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(TjReport::getTjNumber, tjOrder.getTjNumber()); |
| | | wq.eq(TjReport::getType,"体检报告"); |
| | | res.add(tjReportService.getOne(wq)); |
| | | TjReport one = tjReportService.getOne(wq); |
| | | if(null !=one){ |
| | | res.add(one); |
| | | } |
| | | } |
| | | } |
| | | return AjaxResult.success(res); |
| | | } |
| | | return AjaxResult.error("暂无历史报告"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |