From 1d5eb9bd21333ce57f71857203acb3a2f774a831 Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期五, 19 七月 2024 18:14:30 +0800 Subject: [PATCH] 报告存储代码从pdf工具类转移到接口 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java | 87 +++++++++++++++++++++++++++++++++---------- 1 files changed, 66 insertions(+), 21 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java index 6806325..e95577f 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java @@ -2,7 +2,6 @@ import java.io.*; import java.net.URL; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.text.NumberFormat; @@ -21,7 +20,6 @@ import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; import com.itextpdf.text.pdf.draw.LineSeparator; -import com.ltkj.common.annotation.Log; import com.ltkj.common.core.domain.entity.SysDictData; import com.ltkj.common.utils.DateUtils; import com.ltkj.common.utils.PDFDocumentUtil; @@ -30,13 +28,11 @@ import com.ltkj.framework.config.MatchUtils; import com.ltkj.hosp.domain.*; import com.ltkj.hosp.service.*; -import com.ltkj.hosp.vodomain.UpdateOrderRemarkVo; import com.ltkj.mall.mallOrderUtils.TjConstants; import com.ltkj.system.service.ISysConfigService; import com.ltkj.system.service.ISysDictDataService; import com.ltkj.system.service.ISysUserService; import com.ltkj.web.config.pdfutils.MergePdf; -import com.ltkj.web.config.pdfutils.MyHeaderFooter; import com.ltkj.web.config.pdfutils.PDFBinaryUtil; import com.ltkj.web.config.pdfutils.PdfUtils; import com.ltkj.web.controller.his.HisPDFUtil; @@ -45,6 +41,7 @@ import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.*; @@ -380,23 +377,70 @@ params.put("jsrq", jsrq); params.put("pagecount", 100); params.put("page", 1); - HashMap<String, Object> map = new HashMap<>(); LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>(); wq1.eq(TjCustomer::getCusId, tjOrder.getUserId()); TjCustomer tjCustomer = tjCustomerService.getOne(wq1); -// return hisPDFUtil.execHisRequest(map, params, tjOrder, reportTemplate); try { - return hisPDFUtil.hisPDF(tjOrder,tjCustomer,reportTemplate); - } catch (DocumentException e) { - logger.error("鐢熸垚鎶ュ憡寮傚父"); + AjaxResult ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate); + if (!ajaxResult.get("code").toString().equals("200")) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } else { + Long userId = tjCustomer.getCusId(); + String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_鎶ュ憡.pdf"; + TjReport tjReport = new TjReport(); + tjReport.setTjNumber(String.valueOf(tjNumber)); + tjReport.setPath(urlValue + outputFileName1); + String outputPath1 = value + "\\"; + String pdfBinary = getPDFBinary(outputPath1 + outputFileName1); + tjReport.setReport(pdfBinary); + tjReport.setType("浣撴鎶ュ憡"); + tjReport.setPrint("pdf"); + tjReportService.save(tjReport); + LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(TjOrder::getTjNumber, tjNumber); + updateWrapper.set(TjOrder::getReportTime, new Date()); + updateWrapper.set(TjOrder::getPrintLastTime, new Date()); + updateWrapper.set(TjOrder::getDownloadLastTime, new Date()); + updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END); + tjOrderService.update(updateWrapper); + } + return ajaxResult; + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); e.printStackTrace(); - return AjaxResult.error("鐢熸垚鎶ュ憡寮傚父"); + // 璋冪敤鎾ら攢 +// tjReportController.backOnlyCheckType(tjNumber); + logger.error("鐢熸垚鎶ュ憡寮傚父"); + return AjaxResult.error("鐢熸垚鎶ュ憡澶辫触"); } } else { return AjaxResult.error("璇峰厛鎬绘"); } } return AjaxResult.error(); + } + + @Autowired + private TjReportController tjReportController; + + /** + * 鎾ら攢 + * @param tjNumber + */ + @Transactional(propagation = Propagation.REQUIRES_NEW) + public void backOnlyCheckType(String tjNumber) { + QueryWrapper<TjOrder> wq2 = new QueryWrapper<>(); + wq2.eq("tj_number", tjNumber); + TjOrder one = tjOrderService.getOne(wq2); + one.setCheckStatus(0); + String config = configService.selectConfigByKey("tj_confirm"); + if ("Y".equals(config)) { + one.setStatus(TjConstants.TJ_CHECK); + } else { + one.setStatus(TjConstants.TJ_CONFIRM); + } + //灏嗙姸鎬佹敼涓烘湭瀹℃牳 + tjOrderService.updateById(one); } private AjaxResult newFun(String tjNumber) { @@ -567,7 +611,7 @@ for (String key : data.keySet()) { form.setField(key, data.get(key).toString()); } - System.out.println("pdf濉厖琛ㄥ崟鏁版嵁鑰楁椂锛�"+(System.currentTimeMillis() - pdfMkStart)); + System.out.println("pdf濉厖琛ㄥ崟鏁版嵁鑰楁椂锛�" + (System.currentTimeMillis() - pdfMkStart)); //璁剧疆涓烘棤娉曠紪杈� ps.setFormFlattening(true); ps.close(); @@ -636,8 +680,8 @@ } } long fujianEnd = System.currentTimeMillis(); - System.out.println("闄勪欢鏌ヨ鑰楁椂锛�"+(fujianEnd - fujianStart)); - System.out.println("鏂囦欢淇濆瓨鍓嶈�楁椂锛�"+(fujianEnd - pdfMkStart)); + System.out.println("闄勪欢鏌ヨ鑰楁椂锛�" + (fujianEnd - fujianStart)); + System.out.println("鏂囦欢淇濆瓨鍓嶈�楁椂锛�" + (fujianEnd - pdfMkStart)); // 淇濆瓨pdf鏂囦欢 copy.close(); String outputPath1 = value + "\\"; @@ -1563,7 +1607,7 @@ }); List<Long> proIds = tjOrderDetails.stream().map(TjOrderDetail::getProId).collect(Collectors.toList()); LambdaQueryWrapper<TjProject> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(TjProject::getProId,proIds); + queryWrapper.in(TjProject::getProId, proIds); List<TjProject> projectList = projectService.list(queryWrapper); for (TjOrderDetail tjOrderDetail : tjOrderDetails) { TjProject tjProject = projectList.stream().filter(item -> item.getProId().equals(tjOrderDetail.getProId())).collect(Collectors.toList()).get(0); @@ -1574,7 +1618,7 @@ System.out.println("'''''''''''''''''''''''''''''''''''" + tjOrderDetail.getOrderDetailId()); } // 鍒ゆ柇鍦╟ollect涓槸鍚﹀瓨鍦� - if (collect.contains(tjOrderDetail.getProject().getProParentId())){ + if (collect.contains(tjOrderDetail.getProject().getProParentId())) { LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>(); wq6.eq(TjStandard::getProId, tjOrderDetail.getProId()); List<TjStandard> list2 = tjStandardService.list(wq6); @@ -1628,9 +1672,9 @@ tjPdfVOS.add(tjPdfVO); } } - printReport.entrySet().stream().forEach(item->{ + printReport.entrySet().stream().forEach(item -> { List<TjPdfVO> pdfVOS = hashMap.get(item.getKey().getProId()); - printReport.put(item.getKey(),pdfVOS); + printReport.put(item.getKey(), pdfVOS); }); } @@ -1750,22 +1794,23 @@ @PostMapping("/preview/batch") @ApiOperation(value = "鎵归噺浣撴鎶ュ憡") @Transactional - public AjaxResult preview(@RequestBody String data){ + public AjaxResult preview(@RequestBody String data) { String is_batch_report_use_sql = configService.selectConfigByKey("is_batch_report_use_sql"); List<String> tjNumbers = Arrays.stream(data.split(",")).collect(Collectors.toList()); if ("true".equals(is_batch_report_use_sql)) { return tjReportService.makeBatchReport(tjNumbers); - }else { + } else { return makeReport(tjNumbers); } } /** * 閫氳繃sql 閲嶆暣鏁版嵁妯℃澘 鍏ㄩ儴閲嶆柊鐢熸垚 + * * @param tjNumbers * @return */ - private AjaxResult makeReport(List<String > tjNumbers) { + private AjaxResult makeReport(List<String> tjNumbers) { ArrayList<String> base64Pdfs = new ArrayList<>(); for (String tjNumber : tjNumbers) { LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>(); @@ -1979,7 +2024,7 @@ // outputStream.flush(); // outputStream.close(); String s = Base64.getEncoder().encodeToString(mergePDFs); - return AjaxResult.success().put("file",s); + return AjaxResult.success().put("file", s); } catch (DocumentException | IOException e) { e.printStackTrace(); return AjaxResult.error("鎵归噺鐢熸垚澶辫触"); -- Gitblit v1.8.0