From 5a6a1ae4f22cae6323e41d35c5f32137afddd2d0 Mon Sep 17 00:00:00 2001 From: zjh <zjh@888> Date: 星期三, 12 六月 2024 16:59:08 +0800 Subject: [PATCH] zjh 本地 2024/06/12 --1 --- ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java | 66 ++++++++++++++++++++++++++++++++- 1 files changed, 64 insertions(+), 2 deletions(-) diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java index 37563a3..bd9c607 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java @@ -1,22 +1,26 @@ package com.ltkj.hosp.service.impl; -import java.io.File; -import java.io.OutputStream; +import java.io.*; import java.nio.file.Files; import java.nio.file.Paths; import java.util.*; import java.util.List; +import java.util.stream.Collectors; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; import com.itextpdf.text.pdf.draw.LineSeparator; import com.ltkj.common.core.domain.AjaxResult; +import com.ltkj.common.core.domain.entity.SysDictData; import com.ltkj.common.utils.DateUtils; +import com.ltkj.common.utils.PDFDocumentUtil; import com.ltkj.common.utils.SecurityUtils; import com.ltkj.common.utils.pdfutils.MergePdf; import com.ltkj.common.utils.pdfutils.MyHeaderFooter; @@ -24,10 +28,13 @@ import com.ltkj.common.utils.pdfutils.PdfUtils; import com.ltkj.hosp.domain.*; import com.ltkj.hosp.service.*; +import com.ltkj.mall.mallOrderUtils.TjConstants; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import com.ltkj.hosp.mapper.TjReportMapper; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; @@ -364,6 +371,11 @@ return null; } + @Override + public Integer getSelectCount(Wrapper<TjReport> queryWrapper) { + return tjReportMapper.selectCount(queryWrapper); + } + public Map<TjOrderRemark, List<TjPdfVO>> addTable(String tjNumber) { //鍒涘缓map 閿负鐖堕」鐩� 鍊间负瀛愰」鐩泦鍚� @@ -502,4 +514,54 @@ } return table; } + + + @Override + public AjaxResult makeBatchReport(List<String> tjNumbers) { + return sqlGetReportToMake(tjNumbers); + + } + + /** + * 閫氳繃sql 鐩存帴鏌ユ姤鍛奲ase64杩涜鏁村悎杩斿洖 + * 濡傛灉sql鏁版嵁閲忓法澶� 鏌ヨ缂撴參 鍙互璇曡瘯 makeReport(List<String > tjNumbers)宸叉敞閲� + * @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("鎵归噺鐢熸垚澶辫触"); + } + } } -- Gitblit v1.8.0