| | |
| | | |
| | | import java.io.*; |
| | | import java.nio.file.Files; |
| | | import java.nio.file.Path; |
| | | import java.nio.file.Paths; |
| | | import java.util.*; |
| | | import java.util.List; |
| | |
| | | private ITjOrderRemarkService tjOrderRemarkService; |
| | | @Resource |
| | | private ITjStandardService tjStandardService; |
| | | @Autowired |
| | | private ITjReportPrintService printService; |
| | | |
| | | /** |
| | | * 查询体检报告存储 |
| | |
| | | * @param tjNumbers |
| | | * @return |
| | | */ |
| | | // private AjaxResult sqlGetReportToMake(List<String> tjNumbers) { |
| | | // LambdaQueryWrapper<TjReport> tjReportLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | // tjReportLambdaQueryWrapper.in(TjReport::getTjNumber, tjNumbers); |
| | | // List<TjReport> list = tjReportService.list(tjReportLambdaQueryWrapper); |
| | | // ArrayList<String> base64Pdfs = new ArrayList<>(); |
| | | // for (TjReport report : list) { |
| | | // if (report == null || report.getReport() == null) { |
| | | // // 没有该报告 直接跳过 |
| | | // continue; |
| | | // } |
| | | // base64Pdfs.add(report.getReport()); |
| | | // } |
| | | // tjNumbers.forEach(tjNumber ->{ |
| | | // LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | // updateWrapper.eq(TjOrder::getTjNumber, tjNumber); |
| | | // updateWrapper.set(TjOrder::getPrintLastTime, new Date()); |
| | | // updateWrapper.set(TjOrder::getDownloadLastTime, new Date()); |
| | | // updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END); |
| | | // tjOrderService.update(updateWrapper); |
| | | // }); |
| | | // try { |
| | | // byte[] mergePDF = PDFDocumentUtil.mergePDFs(base64Pdfs); |
| | | // String s = Base64.getEncoder().encodeToString(mergePDF); |
| | | // return AjaxResult.success().put("file",s); |
| | | // // 本地生成测试 |
| | | //// String PDF_FILE = "d:\\Users\\w\\Desktop\\test.pdf"; |
| | | //// BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(PDF_FILE)); |
| | | //// outputStream.write(mergePDF); |
| | | //// outputStream.flush(); |
| | | //// outputStream.close(); |
| | | // } catch (DocumentException | IOException e) { |
| | | // e.printStackTrace(); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | // return AjaxResult.error("批量生成失败"); |
| | | // } |
| | | // } |
| | | |
| | | private AjaxResult sqlGetReportToMake(List<String> tjNumbers) { |
| | | LambdaQueryWrapper<TjReport> tjReportLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | tjReportLambdaQueryWrapper.in(TjReport::getTjNumber, tjNumbers); |
| | | List<TjReport> list = tjReportService.list(tjReportLambdaQueryWrapper); |
| | | // LambdaQueryWrapper<TjReport> tjReportLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | // tjReportLambdaQueryWrapper.in(TjReport::getTjNumber, tjNumbers); |
| | | // List<TjReport> list = tjReportService.list(tjReportLambdaQueryWrapper); |
| | | ArrayList<String> base64Pdfs = new ArrayList<>(); |
| | | for (TjReport report : list) { |
| | | if (report == null || report.getReport() == null) { |
| | | // 没有该报告 直接跳过 |
| | | continue; |
| | | // for (TjReport report : list) { |
| | | // if (report == null || report.getReport() == null) { |
| | | // // 没有该报告 直接跳过 |
| | | // continue; |
| | | // } |
| | | // base64Pdfs.add(report.getReport()); |
| | | // } |
| | | |
| | | //区域版体检添加院区编码 |
| | | // String key = DataSourceContextHolder.getDataSourceKey(); |
| | | // key = key.replace("ltkjpeis10_",""); |
| | | |
| | | if(null !=tjNumbers && !tjNumbers.isEmpty()){ |
| | | for (String number : tjNumbers) { |
| | | TjOrder order = tjOrderService.getOrderByTjNum(number); |
| | | TjCustomer tjCustomer = tjCustomerService.getById( order.getUserId()); |
| | | String filePath = value + File.separator + File.separator + tjCustomer.getCusId() + order.getTjNumber() + tjCustomer.getCusName() + "_报告.pdf"; |
| | | try { |
| | | // 读取文件为字节数组 |
| | | Path path = Paths.get(filePath); |
| | | byte[] fileBytes = Files.readAllBytes(path); |
| | | // 将字节数组转换为 Base64 字符串 |
| | | String base64String = Base64.getEncoder().encodeToString(fileBytes); |
| | | base64Pdfs.add(base64String); |
| | | |
| | | //保存打印数据记录 |
| | | TjReportPrint print=new TjReportPrint(); |
| | | print.setTjNumber(order.getTjNumber()); |
| | | print.setPrintBy(SecurityUtils.getLoginUser().getUser().getNickName()); |
| | | print.setPrintTime(new Date()); |
| | | print.setPrintStatus("已打印"); |
| | | if (printService.save(print)) { |
| | | order.setPrintLastTime(new Date()); |
| | | order.setStatus(TjConstants.TJ_END); |
| | | tjOrderService.updateById(order); |
| | | } |
| | | |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | log.error(String.valueOf(e)); |
| | | } |
| | | } |
| | | base64Pdfs.add(report.getReport()); |
| | | try { |
| | | byte[] mergePDF = PDFDocumentUtil.mergePDFs(base64Pdfs); |
| | | String s = Base64.getEncoder().encodeToString(mergePDF); |
| | | return AjaxResult.success().put("file",s); |
| | | } catch (DocumentException | IOException e) { |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return AjaxResult.error("批量生成失败"); |
| | | } |
| | | } |
| | | tjNumbers.forEach(tjNumber ->{ |
| | | LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(TjOrder::getTjNumber, tjNumber); |
| | | updateWrapper.set(TjOrder::getPrintLastTime, new Date()); |
| | | updateWrapper.set(TjOrder::getDownloadLastTime, new Date()); |
| | | updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END); |
| | | tjOrderService.update(updateWrapper); |
| | | }); |
| | | try { |
| | | byte[] mergePDF = PDFDocumentUtil.mergePDFs(base64Pdfs); |
| | | String s = Base64.getEncoder().encodeToString(mergePDF); |
| | | return AjaxResult.success().put("file",s); |
| | | // 本地生成测试 |
| | | // String PDF_FILE = "d:\\Users\\w\\Desktop\\test.pdf"; |
| | | // BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(PDF_FILE)); |
| | | // outputStream.write(mergePDF); |
| | | // outputStream.flush(); |
| | | // outputStream.close(); |
| | | } catch (DocumentException | IOException e) { |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | return AjaxResult.error("批量生成失败"); |
| | | } |
| | | return AjaxResult.error("批量生成失败"); |
| | | } |
| | | } |