批量打印

This commit is contained in:
tangw 2026-07-16 17:10:47 +08:00
parent 8bb3c834a4
commit 61687b4b4a
2 changed files with 47 additions and 52 deletions

View File

@ -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);
}
}
}

View File

@ -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("')");
}
}