From 0892d843cd394f383ff50f480f7f22f2ec3829bc Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期五, 27 六月 2025 20:24:45 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java | 400 +++++++++++++++----------------------------------------- 1 files changed, 111 insertions(+), 289 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 efa15f4..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,9 +520,9 @@ @Override - @Transactional - public AjaxResult makeBatchReport(List<String> tjNumbers) { - return sqlGetReportToMake(tjNumbers); + public AjaxResult makeBatchReport(List<String> tjNumbers,String value) { + return sqlGetReportToMake(tjNumbers,value); + } /** @@ -528,281 +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); - 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("鎵归噺鐢熸垚澶辫触"); - } - } - - /** - * 閫氳繃sql 閲嶆暣鏁版嵁妯℃澘 鍏ㄩ儴閲嶆柊鐢熸垚 - * @param tjNumbers - * @return - */ -// private AjaxResult makeReport(List<String > tjNumbers) { +// 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 (String tjNumber : tjNumbers) { -// LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>(); -// wq.eq(TjOrder::getTjNumber, tjNumber); -// TjOrder tjOrder = tjOrderService.getOne(wq); -// if (null != tjOrder) { -// LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>(); -// TjReportTemplate reportTemplate = null; -// if (tjOrder.getTjCategory() != null) { -// //鏌ヨ瀛楀吀 -// LambdaQueryWrapper<SysDictData> wqq = new LambdaQueryWrapper<>(); -// wqq.eq(SysDictData::getDictType, "dict_tjtype"); -// wqq.eq(SysDictData::getDictValue, tjOrder.getTjCategory()); -// SysDictData one = dictDataService.getOne(wqq); -// if (one != null) { -// //鏌ヨ瀛楀吀 -// LambdaQueryWrapper<SysDictData> wqq1 = new LambdaQueryWrapper<>(); -// wqq1.eq(SysDictData::getDictType, "report_template_type"); -// wqq1.eq(SysDictData::getDictLabel, one.getDictLabel()); -// SysDictData one1 = dictDataService.getOne(wqq1); -// if (one1 != null) { -// tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, one1.getDictValue()); -// } else { -// tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1); -// } -// } else { -// tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1); -// } -// tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); -// reportTemplate = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper); -// } else { -// tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); -// reportTemplate = reportTemplateService.list(tjReportTemplateLambdaQueryWrapper).get(2); -// } -// -// String template = reportTemplate.getTemplate(); -// String userId = null; -// if (template == null) { -// // 娌℃湁璇ユā鏉� -// continue; -// } -// // --------浠ヤ笂------- 鏍规嵁鏁版嵁搴撲腑鐨勬ā鏉夸簩杩涘埗鏂囦欢 杞琾df 鍒涘缓鏂囦欢澶� 灏唒df鏀捐繘鏈湴鏂囦欢澶� -// LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>(); -// wq1.eq(TjCustomer::getCusId, tjOrder.getUserId()); -// TjCustomer tjCustomer = tjCustomerService.getOne(wq1); -// LambdaQueryWrapper<DictComp> wq111 = new LambdaQueryWrapper<>(); -// wq111.eq(DictComp::getDrugManufacturerId, tjOrder.getFirmId()); -// DictComp dictComp = dictCompService.getOne(wq111); -// LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>(); -// wq2.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId()); -// wq2.isNotNull(TjOrderDetail::getFlowingWaterId); -// List<TjOrderDetail> list = tjOrderDetailService.list(wq2); -// for (TjOrderDetail tjOrderDetail : list) { -// TjProject tjProject = projectService.selectTjProjectByProId(tjOrderDetail.getProId()); -// tjOrderDetail.setProject(tjProject); -// } -// // 鍏辫鑰楁椂5695姣 浠ヤ笅浠g爜鑰楁椂3528 -// // TODO PDF鍒涘缓浼樺寲 -// long pdfMkStart = System.currentTimeMillis(); -// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); -// PdfStamper ps = null; -// PdfReader reader = null; -// try { -// // 璇诲叆pdf琛ㄥ崟 -// reader = new PdfReader(new ByteArrayInputStream(Base64.getDecoder().decode(template))); -// // 鏍规嵁琛ㄥ崟鐢熸垚涓�涓柊鐨刾df -// ps = new PdfStamper(reader, byteArrayOutputStream); -// // 鑾峰彇pdf琛ㄥ崟 -// AcroFields form = ps.getAcroFields(); -// //璇ュ瓧浣撻�犳垚绫诲瀷涓嶅潎鍖�锛屼絾鏄痯df杞浘鐗囦笉涔辩爜 -// BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); -// form.addSubstitutionFont(bf); -// // 濉厖鏁版嵁缁欒〃鏍� -// Map<String, Object> data = new HashMap<>(); -// // 璁剧疆鐢ㄦ埛淇℃伅 -// setUserInfo(tjNumber, tjOrder, tjCustomer, dictComp, list, data); -// //灏侀潰椤典笅闈㈢殑鎬绘寤鸿鏄剧ず -// if (tjOrder.getCheckAdvice() == null) { -// data.put("remark", "鏃�"); -// } else { -// data.put("remark", tjOrder.getCheckAdvice()); -// } -// //灏侀潰椤典笅闈㈢殑鎬绘寤鸿鏄剧ず -// if (tjOrder.getCheckDoctor() == null) { -// data.put("docname", "鏃�"); -// } else { -// data.put("docname", tjOrder.getCheckDoctor()); -// } -// //寮傚父椤圭洰 -//// data.put("yichang", "銆�1銆戝眻鍏変笉姝n" + -//// "銆�2銆戞墎妗冧綋鑲モ激\n" + -//// "銆�3銆戜綋閲嶆寚鏁板饩糪n" + -//// "銆�4銆戔編鑴傚紓甯革紙鎬昏儐鍥洪唶澧炩炯锛涒舰娌逛笁閰饩硷級\n" + -//// "銆�5銆懳�-饩曟皑閰拌浆绉婚叾澧炩炯锛涘ぉ饣斿啲姘ㄩ吀姘ㄥ熀杞Щ閰跺饩硷紱涓欐皑閰告皑鍩鸿浆绉婚叾澧炩炯\n" + -//// "銆�6銆戣交饩勪腑搴﹁剛鑲倽"); -// -// //鎷兼帴閲嶅ぇ闃虫�х粨鏋� -// StringBuffer str = new StringBuffer(); -// str.append("銆愰噸澶ч槼鎬ч」鐩�慭n"); -// LambdaQueryWrapper<TjBigPositive> bigPositiveLambdaQueryWrapper = new LambdaQueryWrapper<>(); -// bigPositiveLambdaQueryWrapper.eq(TjBigPositive::getTjNumber, tjNumber); -// final List<TjBigPositive> list1 = tjBigPositiveService.list(bigPositiveLambdaQueryWrapper); -// if (list1 != null && list1.size() > 0) { -// for (int i = 0; i < list1.size(); i++) { -// str.append(i + 1).append("銆�").append(list1.get(i).getProName()).append(";\n"); -// } -// } else { -// str.append(" 鏃狅紱\n"); -// } -// //鎷兼帴寮傚父椤圭洰 -// str.append("銆愬紓甯告儏鍐甸」鐩�慭n"); -// if (list.size() > 0) { -//// for (int i = 0; i < list.size(); i++) { -//// if (list.get(i).getExceptionDesc() == 1) { -//// str.append(i + 1).append("銆�").append(projectService.getById(list.get(i).getProId()).getProName()).append(";\n"); -//// } -//// } -// int[] index = {0}; -// List<TjOrderDetail> collect = list.stream() -// .filter(item -> item.getExceptionDesc() == 1).collect(Collectors.toList()); -// if (collect.isEmpty()) { -// str.append(" 鏃狅紱\n"); -// } else { -// collect.forEach(item -> str.append(index[0]++ + 1).append("銆�").append(projectService.getById(item.getProId()).getProName()).append(";\n")); -// } -// } else { -// str.append(" 鏃狅紱\n"); -// } -// //寮傚父椤圭洰 -// data.put("yichang", str.toString()); -// // 閬嶅巻data 缁檖df琛ㄥ崟琛ㄦ牸璧嬪�� -// for (String key : data.keySet()) { -// form.setField(key, data.get(key).toString()); -// } -// //璁剧疆涓烘棤娉曠紪杈� -// ps.setFormFlattening(true); -// ps.close(); -// reader.close(); -// // 灏嗕慨鏀瑰悗鐨凱DF鍐呭鍐欏叆 -// byte[] bytes = byteArrayOutputStream.toByteArray(); -// // 鍒涘缓鏂扮殑PDF鏂囨。 -// Document document = new Document(PageSize.A4); -// ByteArrayOutputStream finalOutPut = new ByteArrayOutputStream(); -// PdfCopy copy = new PdfCopy(document, finalOutPut); -// document.open(); -// reader = new PdfReader(bytes); -// int numberOfPages = reader.getNumberOfPages(); -// for (int i = 1; i <= numberOfPages; i++) { -// PdfImportedPage page = copy.getImportedPage(reader, i); -// copy.addPage(page); -// } -// // 娣诲姞璇︽儏椤� -// document.newPage(); -// reader.close(); -// ByteArrayOutputStream infoByteArrayOutputStream = setInfoPage(userId, tjNumber); -// reader = new PdfReader(infoByteArrayOutputStream.toByteArray()); -// int numberOfPages1 = reader.getNumberOfPages(); -// for (int i = 1; i <= numberOfPages1; i++) { -// PdfImportedPage page = copy.getImportedPage(reader, i); -// copy.addPage(page); -// } -// infoByteArrayOutputStream.close(); -// // 蹇冪數鍥句互鍙婇檮浠� -// // 鍥犳暟鎹簱琛ㄥ瓨鏀綽ase64瀵艰嚧鏌ヨ缂撴參 杩欓噷鎵ц缂撴參 -// // 鍦ㄨ繖閲屽鍔犱竴鏉℃煡璇ount 瀵逛簬娌℃湁杩藉姞闄勪欢鐨� 鎻愬崌閫熷害 -// long fujianStart = System.currentTimeMillis(); -// LambdaQueryWrapper<TjReport> queryWrapper = new LambdaQueryWrapper<>(); -// queryWrapper.eq(TjReport::getTjNumber, tjNumber) -// .and(item -> item.eq(TjReport::getType, "闄勪欢").or().eq(TjReport::getType, "蹇冪數鍥�")); -// Integer selectCount = tjReportService.getSelectCount(queryWrapper); -// if (selectCount > 0) { -// String base64XinDianTu = null; -// String base64FuJian = null; -// List<TjReport> reportList = tjReportService.list(queryWrapper); -// TjReport xinDianTu = null; -// TjReport fuJian = null; -// if (!reportList.isEmpty()) { -// for (TjReport tjReport : reportList) { -// if ("闄勪欢".equals(tjReport.getType())) { -// fuJian = tjReport; -// base64FuJian = fuJian.getReport(); -// } else { -// xinDianTu = tjReport; -// base64XinDianTu = xinDianTu.getReport(); -// } -// } -// } -// if (xinDianTu != null) { -// if (fuJian != null) { -// addPageByPDFBase64(copy, base64FuJian); -// document.newPage(); -// addPageByPDFBase64(copy, base64XinDianTu); -// } else { -// addPageByPDFBase64(copy, base64XinDianTu); -// } -// } else { -// if (fuJian != null) { -// addPageByPDFBase64(copy, base64FuJian); -// } -// } -// } -// copy.close(); -// base64Pdfs.add(Base64.getEncoder().encodeToString(finalOutPut.toByteArray())); -// document.close(); -// finalOutPut.close(); -// reader.close(); -// //淇敼order琛ㄤ腑鐨勬墦鍗版姤鍛婃椂闂翠负褰撳墠鏃堕棿 -// 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); -// } catch (Exception e) { -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); -// e.printStackTrace(); -// } +// 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[] mergePDFs = PDFDocumentUtil.mergePDFs(base64Pdfs); +// 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(mergePDFs); -// outputStream.flush(); -// outputStream.close(); +//// 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.success(); // } + + 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