From e7ac7e5702f6ac1f88403485de232e5494a1c76a Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期一, 11 八月 2025 13:55:57 +0800
Subject: [PATCH] 修改错误日志打印
---
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java | 165 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 145 insertions(+), 20 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..f4d254c 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,27 @@
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.Path;
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 +29,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;
@@ -68,6 +76,8 @@
private ITjOrderRemarkService tjOrderRemarkService;
@Resource
private ITjStandardService tjStandardService;
+ @Autowired
+ private ITjReportPrintService printService;
/**
* 鏌ヨ浣撴鎶ュ憡瀛樺偍
@@ -135,10 +145,10 @@
return tjReportMapper.deleteTjReportByReId(reId);
}
- @Value("${path.filePath}")
- private String value;
+// @Value("${path.filePath}")
+// private String value;
- @Override
+ /* @Override
public AjaxResult getTjReport(String tjNumber) {
//鏍规嵁浣撴鍙�
//鍦╫rder閲屾煡璇綋妫�鐘舵�� 鍒ゆ柇浣撴鏄惁瀹屾垚
@@ -169,9 +179,9 @@
TjProject tjProject = projectService.selectTjProjectByProId(tjOrderDetail.getProId());
tjOrderDetail.setProject(tjProject);
}
- /*
+ *//*
* ====================绗竴閮ㄥ垎 濉厖浣撴鎶ュ憡灏侀潰妯℃澘
- * */
+ * *//*
//鏍规嵁鏁版嵁搴撲腑鐨勬ā鏉夸簩杩涘埗鏂囦欢 杞琾df 鍒涘缓鏂囦欢澶� 灏唒df鏀捐繘鏂囦欢澶�
LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>();
tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1);
@@ -183,12 +193,12 @@
//褰撳墠鐧诲綍鐨勪汉宸ュ彿
String userId = SecurityUtils.getLoginUser().getUsername();
//浜岃繘鍒惰浆pdf 瀛樺偍鍦ㄤ复鏃舵枃浠跺す涓�
- PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
+ PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + File.separator + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
// 妯℃澘鏂囦欢璺緞
- String inputFileName = value + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf";
+ String inputFileName = value + File.separator + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf";
// 鐢熸垚鐨勬枃浠惰矾寰�
- String outputFileName = value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf";
+ String outputFileName = value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf";
OutputStream os = null;
PdfStamper ps = null;
PdfReader reader = null;
@@ -244,16 +254,16 @@
ps.close();
os.close();
reader.close();
- /*
+ *//*
* ==========================绗簩閮ㄥ垎 鐢熸垚椤圭洰璇︽儏
- */
+ *//*
//鏂囨。瀵硅薄 瀹炵幇A4绾搁〉闈�
Document document = new Document(PageSize.A4);
//document.setMarginMirroring(true);
//璁剧疆鏂囨。鐨勯〉杈硅窛灏辨槸璺濈椤甸潰杈逛笂鐨勮窛绂伙紝鍒嗗埆涓猴細宸﹁竟璺濓紝鍙宠竟璺濓紝涓婅竟璺濓紝涓嬭竟璺�
document.setMargins(70, 70, 40, 40);
//杩欎釜鏄敓鎴恜df鐨勪綅缃互鍙婂悕绉�
- String fileName = value + "\\" + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf";
+ String fileName = value + File.separator + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf";
OutputStream outputStream = Files.newOutputStream(Paths.get(fileName));
PdfWriter pdfWriter = PdfWriter.getInstance(document, outputStream);
@@ -313,16 +323,16 @@
LineSeparator objectName = new LineSeparator();
document.add(objectName);
}
- /*
+ *//*
* document鍏抽棴鐨勫叾瀹炴槸鏂囦欢鐨勭洃鍚姸鎬侊紝writer鍏抽棴鐨勬槸io娴侊紝writer鍒涘缓鍦╠ocument涔嬪悗
- * */
+ * *//*
document.close();
pdfWriter.close();
outputStream.close();
//=============================== 绗笁閮ㄥ垎 鍚堝苟浣撴鎶ュ憡灏侀潰椤靛拰浣撴鎶ュ憡椤圭洰璇︽儏椤�
- String[] files1 = {value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + "\\" + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf"};
- String outputPath1 = value + "\\";
+ String[] files1 = {value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + File.separator + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf"};
+ String outputPath1 = value + File.separator;
String outputFileName1 = tjNumber + "浣撴鎶ュ憡.pdf";
File file1 = new File(outputPath1 + outputFileName1);
@@ -342,9 +352,9 @@
//灏嗕复鏃舵枃浠跺す涓殑鍥涗釜鏂囦欢鍒犻櫎
//FileUtil.del(value+"\\"+tjNumber + "浣撴鎶ュ憡.pdf");
- FileUtil.del(value + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
- FileUtil.del(value + "\\" + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf");
- FileUtil.del(value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf");
+ FileUtil.del(value + File.separator + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
+ FileUtil.del(value + File.separator + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf");
+ FileUtil.del(value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf");
//淇敼order琛ㄤ腑鐨勬墦鍗版姤鍛婃椂闂翠负褰撳墠鏃堕棿
LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>();
@@ -362,6 +372,11 @@
}
}
return null;
+ }*/
+
+ @Override
+ public Integer getSelectCount(Wrapper<TjReport> queryWrapper) {
+ return tjReportMapper.selectCount(queryWrapper);
}
@@ -502,4 +517,114 @@
}
return table;
}
+
+
+ @Override
+ public AjaxResult makeBatchReport(List<String> tjNumbers,String value) {
+ return sqlGetReportToMake(tjNumbers,value);
+
+ }
+
+ /**
+ * 閫氳繃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("鎵归噺鐢熸垚澶辫触");
+// }
+// }
+
+ private AjaxResult sqlGetReportToMake(List<String> tjNumbers, String value) {
+// 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());
+// }
+
+ //鍖哄煙鐗堜綋妫�娣诲姞闄㈠尯缂栫爜
+// 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));
+ }
+ }
+ 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("鎵归噺鐢熸垚澶辫触");
+ }
+ }
+ return AjaxResult.error("鎵归噺鐢熸垚澶辫触");
+ }
}
--
Gitblit v1.8.0