From 61687b4b4a84f65dc45ad4c95350305d682f3a21 Mon Sep 17 00:00:00 2001 From: tangw Date: Thu, 16 Jul 2026 17:10:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/PrintReportService.java | 93 +++++++++---------- .../czlis/interfaceCommon/utils/LisUtil.java | 6 +- 2 files changed, 47 insertions(+), 52 deletions(-) diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/service/PrintReportService.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/service/PrintReportService.java index 58fc3f7..33d4dad 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/service/PrintReportService.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/service/PrintReportService.java @@ -90,62 +90,57 @@ public class PrintReportService { // // 每5份或最后一份推送一次进度,减少消息风暴 // if ((i + 1) % 5 == 0 || i == total - 1) { - int currProgress = (i + 1) * 100 / total; - if(currProgress==100)currProgress=99; - progressDTO.setProgress(currProgress); - progressDTO.setStatus(bg.getFlag()); - progressDTO.setDesc("正在生成第" + (i + 1) + "/" + total + "份报告"); - progressDTO.setSuccCount(ok); - progressDTO.setFailCount(fall); - progressDTO.setPdfBase64(null); - progressDTO.setErrorMsg(bg.getMsg()); - progressDTO.setYbh(bg.getYbh()); - sendPrintWsMsg(clientSid, progressDTO); - // } + int currProgress = (i + 1) * 100 / total; + if (currProgress == 100) currProgress = 99; + progressDTO.setProgress(currProgress); + progressDTO.setStatus(bg.getFlag()); + progressDTO.setDesc("正在生成第" + (i + 1) + "/" + total + "份报告"); + progressDTO.setSuccCount(ok); + progressDTO.setFailCount(fall); + progressDTO.setPdfBase64(null); + progressDTO.setErrorMsg(bg.getMsg()); + progressDTO.setYbh(bg.getYbh()); + sendPrintWsMsg(clientSid, progressDTO); + // } } - if(mergeBgdhList.size()==0){ + if (mergeBgdhList==null||mergeBgdhList.size() == 0) { progressDTO.setErrorMsg("任务执行失败:"); progressDTO.setDesc("报告为空,结束打印"); progressDTO.setProgress(100); progressDTO.setYbh(null); sendPrintWsMsg(clientSid, progressDTO); - return ; + } else { + String pdfName = UUID.randomUUID().toString(); + String path = staticPath + pdfName + ".pdf"; + // 合并文件 + LisUtil.mergeToFile(mergeBgdhList, path); + File file = new File(path); + String pdfBase64 = Base64.encode(file); + // 删除临时文件 + FileUtils.deleteFile(path); + + // 更新数据库打印标识 + reportUtil.pdatePrintStatus(reportlist); + // 推送完成消息 + progressDTO.setStatus("finish"); + progressDTO.setProgress(100); + progressDTO.setDesc("批量打印任务完成,成功:" + ok + "份,失败:" + fall + "份"); + progressDTO.setPdfBase64(pdfBase64); + progressDTO.setErrorMsg(null); + progressDTO.setYbh(null); + progressDTO.setSuccCount(ok); + progressDTO.setFailCount(fall); + sendPrintWsMsg(clientSid, progressDTO); + } + } catch(Exception e){ + log.error("批量打印任务异常 taskId:{}", taskId, e); + // 推送异常消息 + progressDTO.setStatus("error"); + progressDTO.setYbh(null); + progressDTO.setErrorMsg("任务执行失败:" + e.getMessage()); + progressDTO.setDesc("批量打印出现异常"); + sendPrintWsMsg(clientSid, progressDTO); } - // 全部单份PDF生成完成,开始合并 -// progressDTO.setDesc("正在合并全部PDF文件..."); -// progressDTO.setProgress(99); -// sendPrintWsMsg(clientSid, progressDTO); - String pdfName = UUID.randomUUID().toString(); - String path = staticPath + pdfName + ".pdf"; - // 合并文件 - LisUtil.mergeToFile(mergeBgdhList, path); - File file = new File(path); - String pdfBase64 = Base64.encode(file); - // 删除临时文件 - FileUtils.deleteFile(path); - - // 更新数据库打印标识 - reportUtil.pdatePrintStatus(reportlist); - // 推送完成消息 - progressDTO.setStatus("finish"); - progressDTO.setProgress(100); - progressDTO.setDesc("批量打印任务完成,成功:" + ok + "份,失败:" + fall + "份"); - progressDTO.setPdfBase64(pdfBase64); - progressDTO.setErrorMsg(null); - progressDTO.setYbh(null); - progressDTO.setSuccCount(ok); - progressDTO.setFailCount(fall); - sendPrintWsMsg(clientSid, progressDTO); - - } catch (Exception e) { - log.error("批量打印任务异常 taskId:{}", taskId, e); - // 推送异常消息 - progressDTO.setStatus("error"); - progressDTO.setYbh(null); - progressDTO.setErrorMsg("任务执行失败:" + e.getMessage()); - progressDTO.setDesc("批量打印出现异常"); - sendPrintWsMsg(clientSid, progressDTO); - } } } \ No newline at end of file diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java index d51db73..e563426 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java @@ -827,14 +827,14 @@ public class LisUtil { eqSb.append(String.format("%s = %s", code, eqList.get(0))); } else { // 多个in:code IN (#{p1},#{p2},...) - eqSb.append(code).append(" IN ("); + eqSb.append(code).append(" IN ('"); for (int i = 0; i < eqList.size(); i++) { if (i > 0) { - eqSb.append(","); + eqSb.append("','"); } eqSb.append(eqList.get(i)); } - eqSb.append(")"); + eqSb.append("')"); } }