From 5f1d1c462bbf49bc6a22b9e17b49733bcc1e0bc6 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期五, 20 六月 2025 19:01:13 +0800 Subject: [PATCH] zjh20250620 --- ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java | 169 ++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 116 insertions(+), 53 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 bd9c607..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 @@ -2,6 +2,7 @@ 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; @@ -75,6 +76,8 @@ private ITjOrderRemarkService tjOrderRemarkService; @Resource private ITjStandardService tjStandardService; + @Autowired + private ITjReportPrintService printService; /** * 鏌ヨ浣撴鎶ュ憡瀛樺偍 @@ -142,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閲屾煡璇綋妫�鐘舵�� 鍒ゆ柇浣撴鏄惁瀹屾垚 @@ -176,9 +179,9 @@ TjProject tjProject = projectService.selectTjProjectByProId(tjOrderDetail.getProId()); tjOrderDetail.setProject(tjProject); } - /* + *//* * ====================绗竴閮ㄥ垎 濉厖浣撴鎶ュ憡灏侀潰妯℃澘 - * */ + * *//* //鏍规嵁鏁版嵁搴撲腑鐨勬ā鏉夸簩杩涘埗鏂囦欢 杞琾df 鍒涘缓鏂囦欢澶� 灏唒df鏀捐繘鏂囦欢澶� LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>(); tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1); @@ -190,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; @@ -251,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); @@ -320,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); @@ -349,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<>(); @@ -369,7 +372,7 @@ } } return null; - } + }*/ @Override public Integer getSelectCount(Wrapper<TjReport> queryWrapper) { @@ -517,8 +520,8 @@ @Override - public AjaxResult makeBatchReport(List<String> tjNumbers) { - return sqlGetReportToMake(tjNumbers); + public AjaxResult makeBatchReport(List<String> tjNumbers,String value) { + return sqlGetReportToMake(tjNumbers,value); } @@ -528,40 +531,100 @@ * @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); +// 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; +// 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("鎵归噺鐢熸垚澶辫触"); } } -- Gitblit v1.8.0