From 1ae2a15ce160de8959abd8171d8c3db2ea8dec1e Mon Sep 17 00:00:00 2001 From: renguangpeng Date: Sat, 20 Apr 2024 01:01:03 +0800 Subject: [PATCH] 123456 --- .../service/SendingPushArchivesService.java | 4 +- .../SignReportPushArchivesService.java | 400 +++++++++++++++++- .../custom/archives/util/ArchivesUtil.java | 33 +- 3 files changed, 410 insertions(+), 27 deletions(-) diff --git a/com/engine/custom/archives/service/SendingPushArchivesService.java b/com/engine/custom/archives/service/SendingPushArchivesService.java index aad0863..34f7c80 100644 --- a/com/engine/custom/archives/service/SendingPushArchivesService.java +++ b/com/engine/custom/archives/service/SendingPushArchivesService.java @@ -335,8 +335,8 @@ public class SendingPushArchivesService { //-------------------------------------------------------------------- RequestService requestService = new RequestService(); RequestInfo requestInfo = requestService.getRequest(Util.getIntValue(requestid), 100); - - String logFile = ArchivesUtil.getSignLog(requestid, cbddir + File.separator + lzxxdir, requestInfo.getCreatorid() + requestInfo.getDescription(), templatePath, filePath,false); + String workflowid = requestInfo.getWorkflowid(); + String logFile = ArchivesUtil.getSignLog(requestid, cbddir + File.separator + lzxxdir, requestInfo.getCreatorid() + requestInfo.getDescription(), templatePath, filePath,false,workflowid); String s = ArchivesUtil.callApi(Url, new File(logFile)); log.error(s); JSONObject result = JSONObject.parseObject(s); diff --git a/com/engine/custom/archives/service/SignReportPushArchivesService.java b/com/engine/custom/archives/service/SignReportPushArchivesService.java index b166829..107f6a3 100644 --- a/com/engine/custom/archives/service/SignReportPushArchivesService.java +++ b/com/engine/custom/archives/service/SignReportPushArchivesService.java @@ -1,6 +1,7 @@ package com.engine.custom.archives.service; import cn.hutool.core.util.ZipUtil; +import com.alibaba.fastjson.JSONObject; import com.dcfs.fts.common.error.FtpException; import com.engine.custom.archives.entity.PushArchivesBean; import com.engine.custom.archives.util.ArchivesUtil; @@ -8,16 +9,18 @@ import com.engine.custom.hg.util.HgUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import weaver.conn.RecordSet; +import weaver.file.ImageFileManager; import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.soa.workflow.request.RequestInfo; +import weaver.soa.workflow.request.RequestService; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; +import java.io.*; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.*; public class SignReportPushArchivesService { public static Logger log = LoggerFactory.getLogger("Archives"); @@ -54,7 +57,8 @@ public class SignReportPushArchivesService { // 获取当前时间的最后一秒 String lastSecond = yyyyMMddHHmmss.format(ArchivesUtil.getLastSecondOfDate(date)); RecordSet recordSet = new RecordSet(); - List result = ArchivesUtil.getResultList(recordSet, firstSecond, lastSecond, 0); + //签报 type = 2 + List result = ArchivesUtil.getResultList(recordSet, firstSecond, lastSecond, 2); log.error("推送发文的数量:{}", result.size()); File file = ArchivesUtil.crFile(filePath + "/togd_" + new SimpleDateFormat("yyyyMMdd000000").format(date)); log.error("textfile:{}", file.getAbsolutePath()); @@ -63,7 +67,7 @@ public class SignReportPushArchivesService { int request = pushArchivesBean.getRequest(); log.error("推送的requestId:{}", request); try { - // String context = generateFile(request); + String context = generateFile(request); ArchivesUtil.writeToTxt(file.getPath(), file.getName(), context, true); File txtzip = new File(filePath + File.separator + "togd_" + new SimpleDateFormat("yyyyMMdd000000").format(date) + ".zip"); log.error("textZipFile:{}", txtzip.getAbsolutePath()); @@ -81,4 +85,382 @@ public class SignReportPushArchivesService { } } } + + + + private String generateFile(int requestid) throws FtpException, IOException { + Map requesData = getRequestByid(requestid); + log.info("requesData:{}", requesData); + String fj = Util.null2String(requesData.get("fj")); + String dwd = Util.null2String(requesData.get("dwd")); + String zw = Util.null2String(requesData.get("zw")); + String qgqhj = Util.null2String(requesData.get("qgqhj")); + + //增加签字意见中的附件到附件文件夹中 + Map signFiles = ArchivesUtil.getSignFiles(requestid,true); + List docids = new ArrayList<>(); + // docids.addAll(Arrays.asList(fj.split(","))); + // docids.addAll(Arrays.asList(zwkbj.split(","))); + Map fjMap = ArchivesUtil.getFileIdByDocId(fj); + Map zwMap = ArchivesUtil.getFileIdByDocId(zw); + Map qgqhjMap = ArchivesUtil.getFileIdByDocId(qgqhj); + List zwFileName = new ArrayList<>(); + List fjFileName = new ArrayList<>(); + final int[] i = {1}; + //附件 + fjMap.forEach((docid, imageid) -> { + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); + InputStream inputStream = imageFileManager.getInputStream(); + //中文路径/中文文件名 + String imageFileName = filePath + File.separator + requestid + File.separator + fjdir + File.separator + lcfjWord + "-" +imageFileManager.getImageFileName(); + fjFileName.add(imageFileManager.getImageFileName()); + log.info("生成附件路径:{}", imageFileName); + imageFileName = ArchivesUtil.codeUtf8(imageFileName); + try { + File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); + String jsonStr = ArchivesUtil.callApi(Url, file); + log.error("永中接口返回数据:{}", jsonStr); + JSONObject result = JSONObject.parseObject(jsonStr); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + requestid + File.separator + fjdir + File.separator + lcfjWord + "-" + imageFileManager.getImageFileName() + ".pdf"); + } + } catch (IOException e) { + e.printStackTrace(); + } + }); + + //签字意见附件 + signFiles.forEach((docid, imageid) -> { + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); + InputStream inputStream = imageFileManager.getInputStream(); + //中文路径/中文文件名 + String imageFileName = filePath + File.separator + requestid + File.separator + fjdir + File.separator + qzyjfjWord+ "-" +imageFileManager.getImageFileName(); + fjFileName.add(imageFileManager.getImageFileName()); + log.info("生成签字意见附件路径:{}", imageFileName); + imageFileName = ArchivesUtil.codeUtf8(imageFileName); + try { + File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); + String jsonStr = ArchivesUtil.callApi(Url, file); + log.error("永中接口返回数据:{}", jsonStr); + JSONObject result = JSONObject.parseObject(jsonStr); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + requestid + File.separator + fjdir + File.separator + qzyjfjWord+ "-" + imageFileManager.getImageFileName() + ".pdf"); + } + } catch (IOException e) { + e.printStackTrace(); + } + }); + + + //正文 + zwMap.forEach((docid, imageid) -> { + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); + InputStream inputStream = imageFileManager.getInputStream(); + + String newFile = fjWord + i[0] + "_" + zwWord + "-" + imageFileManager.getImageFileName(); + //中文路径/中文文件名 + String imageFileName = filePath + File.separator + requestid + File.separator + zwdir + File.separator + newFile; + zwFileName.add(newFile); + log.info("生成正文路径:{}", imageFileName); + imageFileName = ArchivesUtil.codeUtf8(imageFileName); + try { + File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); + String jsonStr = ArchivesUtil.callApi(Url, file); + log.error("永中接口返回:{}", jsonStr); + JSONObject result = JSONObject.parseObject(jsonStr); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + requestid + File.separator + zwdir + File.separator + newFile + ".pdf"); + } + } catch (IOException e) { + e.printStackTrace(); + } + i[0]++; + }); + //清稿前痕迹 + qgqhjMap.forEach((docid, imageid) -> { + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); + InputStream inputStream = imageFileManager.getInputStream(); + + String newFile = fjWord + i[0] + "_" + lhgWord + "-" + imageFileManager.getImageFileName(); + zwFileName.add(newFile); + //中文路径/中文文件名 + String imageFileName = filePath + File.separator + requestid + File.separator + zwdir + File.separator + newFile; + log.info("生成清稿前痕迹路径:{}", imageFileName); + imageFileName = ArchivesUtil.codeUtf8(imageFileName); + try { + File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); + String jsonStr = ArchivesUtil.callApi(Url, file); + log.error("永中接口返回:{}", jsonStr); + JSONObject result = JSONObject.parseObject(jsonStr); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + requestid + File.separator + zwdir + File.separator + newFile + ".pdf"); + } + } catch (IOException e) { + e.printStackTrace(); + } + i[0]++; + }); + //套红后留痕 + // thhlhMap.forEach((docid, imageid) -> { + // ImageFileManager imageFileManager = new ImageFileManager(); + // imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); + // InputStream inputStream = imageFileManager.getInputStream(); + // zwFileName.add(imageFileManager.getImageFileName()); + // //中文路径/中文文件名 + // String imageFileName = filePath + File.separator + requestid + File.separator + zwdir + File.separator + fjWord + i[0] + "_" + lhgWord + "_" + imageFileManager.getImageFileName(); + // log.info("生成套红后留痕路径:{}", imageFileName); + // imageFileName = ArchivesUtil.codeUtf8(imageFileName); + // try { + // File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); + // String jsonStr = ArchivesUtil.callApi(Url, file); + // log.error("永中接口返回:{}", jsonStr); + // JSONObject result = JSONObject.parseObject(jsonStr); + // String errorcode = result.getString("errorcode"); + // if ("0".equals(errorcode)) { + // JSONObject data = result.getJSONObject("data"); + // String destFileName = data.getString("destFileName"); + // String viewUrl = data.getString("viewUrl"); + // ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + requestid + File.separator + zwdir + File.separator + fjWord + i[0] + "_" + lhgWord + "_" + imageFileManager.getImageFileName() + ".pdf"); + // } + // } catch (IOException e) { + // e.printStackTrace(); + // } + // i[0]++; + // }); + + //开始承办单 先获取主流程的承办单 + List requestDocid = ArchivesUtil.generaRequestFormPdf(requestid, 1); + // 1.去掉生成子流程承办单 + // List subRequestDocid = generaSubRequestFormPdf(requestid); + Map reqDocMap = ArchivesUtil.getFileIdByDocId(String.join(",", requestDocid)); + // 2.去掉生成子流程承办单 + // Map subReqDocMap = getFileIdByDocId(String.join(",", subRequestDocid)); + log.error("reqDocMap:{}", JSONObject.toJSONString(reqDocMap)); + //log.error("subReqDocMap:{}", JSONObject.toJSONString(subReqDocMap)); + docids.addAll(requestDocid); + // 3.去掉生成子流程承办单 + // docids.addAll(subRequestDocid); + i[0] = 1; + //主流程承办单 + reqDocMap.forEach((docid, imageid) -> { + ImageFileManager imageFileManager = new ImageFileManager(); + imageFileManager.getImageFileInfoById(Util.getIntValue(imageid)); + InputStream inputStream = imageFileManager.getInputStream(); + //中文路径/中文文件名 + // String imageFileName = filePath + File.separator + requestid + File.separator + cbddir + File.separator + fjFile + i[0] + "_" + imageFileManager.getImageFileName(); + String imageFileName = filePath + File.separator + requestid + File.separator + cbddir + File.separator + fjFile + i[0] + "_" + wjcldWord+".pdf"; + log.info("主流程承办单路径:{}", imageFileName); + imageFileName = ArchivesUtil.codeUtf8(imageFileName); + try { + File file = ArchivesUtil.saveInputStreamToFile(inputStream, imageFileName); + String jsonStr = ArchivesUtil.callApi(Url, file); + log.error("永中接口返回:{}", jsonStr); + JSONObject result = JSONObject.parseObject(jsonStr); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + requestid + File.separator + cbddir + File.separator + fjFile + i[0] + "_" + wjcldWord + ".pdf" + ".pdf"); + } + i[0]++; + } catch (IOException e) { + e.printStackTrace(); + } + }); +//正文 + + + log.error(JSONObject.toJSONString(requestDocid)); + for (String docid : docids) { + log.error("删除了" + docid); + ArchivesUtil.deleteDocByid(docid); + } + //-------------------------------------------------------------------- + RequestService requestService = new RequestService(); + RequestInfo requestInfo = requestService.getRequest(Util.getIntValue(requestid), 100); + String workflowid = requestInfo.getWorkflowid(); + String logFile = ArchivesUtil.getSignLog(requestid, cbddir + File.separator + lzxxdir, requestInfo.getCreatorid() + requestInfo.getDescription(), templatePath, filePath,true,workflowid); + String s = ArchivesUtil.callApi(Url, new File(logFile)); + log.error(s); + JSONObject result = JSONObject.parseObject(s); + String errorcode = result.getString("errorcode"); + if ("0".equals(errorcode)) { + JSONObject data = result.getJSONObject("data"); + String destFileName = data.getString("destFileName"); + String viewUrl = data.getString("viewUrl"); + ArchivesUtil.downloadFile(viewUrl, logFile + ".pdf"); + } + String zipName = filePath + File.separator + requestid + ".zip"; + ZipUtil.zip(filePath + File.separator + requestid, zipName); + log.error("zipName:{}", zipName); + String ftpFilePath = HgUtils.putFile(zipName, requestid + ".zip"); + log.error("ftpFilePath:{}", ftpFilePath); + // String ftpFilePathNew = HgUtils.putFile(zipName, "test" + File.separator + requestid + ".zip"); + // log.error("ftpFilePathNew:{}", ftpFilePathNew); + String context = getContext(requestid, requesData, requestid + ".zip", zwFileName, fjFileName); + // insertRecord(requestid, context, ftpFilePath); + log.error("context:{}", context); + return context; + } + + + /*** + * 封装数据 + * @param requestid + * @return + */ + public Map getRequestByid(int requestid) { + HashMap record = new HashMap<>(); + String sql = "select * from formtable_main_20 where requestid = ?"; + String reqsql = "select REQUESTNAME from WORKFLOW_REQUESTBASE where REQUESTID = ?"; + RecordSet rs = new RecordSet(); + rs.executeQuery(sql, requestid); + if (rs.next()) { + record.put("bh", Util.null2String(rs.getString("bh"))); + record.put("ngbm", Util.null2String(rs.getString("ngbm "))); + record.put("ngr", Util.null2String(rs.getString("ngr"))); + record.put("ngrq", Util.null2String(rs.getString("ngrq"))); + record.put("lxfs", Util.null2String(rs.getString("lxfs"))); + record.put("bt", Util.null2String(rs.getString("bt"))); + record.put("zw", Util.null2String(rs.getString("zw"))); + record.put("fj", Util.null2String(rs.getString("fj"))); + record.put("hqbm", Util.null2String(rs.getString("hqbm"))); + record.put("hqbmzhwy", Util.null2String(rs.getString("hqbmzhwy"))); + record.put("hqdqbm", Util.null2String(rs.getString("hqdqbm"))); + record.put("ffbm", Util.null2String(rs.getString("ffbm"))); + record.put("hqbmzjhqbmzj", Util.null2String(rs.getString("hqbmzj"))); + record.put("dwd", Util.null2String(rs.getString("dwd"))); + record.put("bmffzj", Util.null2String(rs.getString("bmffzj"))); + record.put("dqnf", Util.null2String(rs.getString("dqnf"))); + record.put("qgqhj", Util.null2String(rs.getString("qgqhj"))); + } + rs.executeQuery(reqsql, requestid); + if (rs.next()) { + record.put("REQUESTNAME", Util.null2String(rs.getString("REQUESTNAME"))); + } + return record; + } + + + private String getContext(int requestid, Map requesData, String zipName, List zwFileName, List fjFileName) { + StringBuilder context = new StringBuilder(); + try { + DepartmentComInfo departmentComInfo = new DepartmentComInfo(); + String ngrq = Util.null2String(requesData.get("ngrq")); //拟稿日期 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate date = LocalDate.parse(ngrq, formatter); + int year = date.getYear(); + context.append(year).append("|"); //1.年度 -> 拟稿日期 + String jghwt = Util.null2String(requesData.get("jghwt"));//2.机构或问题 -> 机构或问题 + context.append(jghwt).append("|"); + String bh = Util.null2String(requesData.get("bh"));// 3.文号 -> 编号 + context.append(bh).append("|"); + String requestname = Util.null2String(requesData.get("REQUESTNAME")); // 4.文件题名 -> 流程名称 + context.append(requestname).append("|"); + String ngbmName = Util.null2String(departmentComInfo.getDepartmentname(requesData.get("ngbm"))); //5 责任者 -> 拟稿部门 + context.append(ngbmName).append("|"); + String bgqx = Util.null2String(requesData.get("bgqx")); //6 保管期限 -> 保管期限 + context.append(bgqx).append("|"); + String cwrq = Util.null2String(requesData.get("cwrq")); //7 日期 -> 成文日期 + context.append(cwrq).append("|"); + String ys = Util.null2String(requesData.get("ys")); //8 页数 -> 页数 + context.append(ys).append("|"); + String wz = Util.null2String(requesData.get("wz")); //9 文种 -> 文种 + context.append(wz).append("|"); + String ngbm = Util.null2String(requesData.get("ngbm")); + String[] deptData = ArchivesUtil.getDeptNameAndCode(ngbm); + context.append(deptData[0]).append("|"); //10 行编号 -> 拟稿部门 + context.append(deptData[1]).append("|"); //11 行名称 + context.append("").append("|"); // 12 保管期限编号 + context.append("").append("|"); // 13 保管期限及编号 + context.append("").append("|"); // 14 是否开放 + context.append("").append("|"); // 15 互见号 + String lb = Util.null2String(requesData.get("lb")); + context.append(lb).append("|"); //16 类别 -> 类别 + //TODO + String xgbm = Util.null2String(getAssociatedDepts(requesData)); + context.append(xgbm).append("|"); //17 相关部门 -> 流经部门 + // String lwh = Util.null2String(requesData.get("lwh")); + context.append("").append("|");// 18 收文号 -> 空 + String fs = ""; + context.append(fs).append("|"); // 19 份数 -> 份数 + String bz = Util.null2String(requesData.get("bz")); + context.append("").append("|"); // 20 备注 -> 备注 + String yywh = Util.null2String(requesData.get("yywh")); + context.append("").append("|"); // 21 引用文号 -> 引用文号 + String wjlx = Util.null2String(requesData.get("wjlx")); + context.append("").append("|"); // 22 文件类型 -> 空 + String fwlx = Util.null2String(requesData.get("fwlx")); + context.append("总行发文").append("|"); // 23 发文类型 -> 空 + String f = Util.null2String(requesData.get("f")); + context.append(f).append("|"); // 24 发 -> 空 + String ngr = Util.null2String(requesData.get("ngr")); + context.append(new User(Util.getIntValue(ngr)).getLoginid()).append("|"); // 25 拟稿人 -> 拟稿人 + context.append(ngbmName).append("|"); // 26 拟稿部门 -> 拟稿部门名称 + context.append("发文").append("|"); // 27 公文类型 -> "收文" + //TODO + context.append(ArchivesUtil.getAssociatedPersons(requestid,false)).append("|"); // 28 相关人员 -> 参与人员 + context.append("智慧OA").append("|"); // 29 数据来源 -> 数据来源 + context.append(year).append("|"); // 30 形成年度 -> 年份 + context.append(String.join("&&", zwFileName)).append("|"); // 31 正文名称 + context.append(String.join("&&", fjFileName)).append("|"); // 32 附件名称 + context.append(requestid).append("|"); // 33 主键 + context.append("").append("|"); // 34 关联主键 + context.append("").append("|"); // 35 被关联主键 + context.append(zipName);// 36 压缩包名称 + } catch (Exception e) { + e.printStackTrace(); + log.error("getContextError:{}", e.getMessage()); + } + + return context.toString(); + } + private String getAssociatedDepts(Map requesData) { + HashSet records = new HashSet<>(); + records.addAll(Arrays.asList(Util.null2String(requesData.get("ngbm")).split(","))); // 会签部门 + records.addAll(Arrays.asList(Util.null2String(requesData.get("hqbm")).split(","))); // 拟稿部门 + records.addAll(Arrays.asList(Util.null2String(requesData.get("ffbm")).split(","))); // 部门阅办 + records.addAll(Arrays.asList(Util.null2String(requesData.get("hqbmzj")).split(","))); // 抄送 + records.addAll(Arrays.asList(Util.null2String(requesData.get("bmffzj")).split(","))); // 本行发送 + + ArrayList deptName = new ArrayList<>(); + DepartmentComInfo departmentComInfo = new DepartmentComInfo(); + for (String record : records) { + try { + String departmentName = departmentComInfo.getDepartmentName(record); + deptName.add(departmentName); + } catch (Exception e) { + e.printStackTrace(); + } + } + + return String.join("&&", deptName); + } + + private void updateRecord(int requestid, String s) { + String sql = "update uf_pushArchivesLog set esbtxtml = ? where request = ?"; + RecordSet recordSet = new RecordSet(); + recordSet.executeUpdate(sql, s, requestid); + } } diff --git a/com/engine/custom/archives/util/ArchivesUtil.java b/com/engine/custom/archives/util/ArchivesUtil.java index af3a7ed..39e403f 100644 --- a/com/engine/custom/archives/util/ArchivesUtil.java +++ b/com/engine/custom/archives/util/ArchivesUtil.java @@ -124,23 +124,24 @@ public class ArchivesUtil { * @param mainAndSubRequestId * @return */ - public static ArrayList getAutoInitNodeIds(String mainAndSubRequestId) { + public static List getAutoInitNodeIds(String workflowid) { RecordSet recordSet = new RecordSet(); ArrayList nodeids = new ArrayList<>(); - String sql = "select node.NODEID nodeid , nodegroup.GROUPNAME from workflow_flownode node " + - " left join workflow_nodegroup nodegroup " + - " on node.nodeid = nodegroup.nodeid " + - " left join workflow_groupdetail detail " + - "on nodegroup.id = detail.GROUPID " + - "where node.WORKFLOWID in (select distinct WORKFLOWID from WORKFLOW_REQUESTBASE where REQUESTID in ( " + mainAndSubRequestId + " ) ) and detail.id is null"; - recordSet.executeQuery(sql); - while (recordSet.next()) { - String nodeid = recordSet.getString("nodeid"); - if (!StringUtils.isEmpty(nodeid)) { - nodeids.add(nodeid); - } + //String sql = "select node.NODEID nodeid , nodegroup.GROUPNAME from workflow_flownode node " + + // " left join workflow_nodegroup nodegroup " + + // " on node.nodeid = nodegroup.nodeid " + + // " left join workflow_groupdetail detail " + + // "on nodegroup.id = detail.GROUPID " + + // "where node.WORKFLOWID in (select distinct WORKFLOWID from WORKFLOW_REQUESTBASE where REQUESTID in ( " + mainAndSubRequestId + " ) ) and detail.id is null"; + //recordSet.executeQuery(sql); + + String sql = "select * from uf_ArchivesSet where mainwfid = ? "; + recordSet.executeQuery(sql,workflowid); + String exclusenodeid= ""; + if (recordSet.next()){ + recordSet.getString("exclusenodeid"); } - return nodeids; + return Arrays.asList(exclusenodeid.split(",")); } @@ -278,10 +279,10 @@ public class ArchivesUtil { * @param requestName * @return */ - public static String getSignLog(int requestid, String dirName, String requestName, String TemplatePath, String filePath, boolean isSubReq) { + public static String getSignLog(int requestid, String dirName, String requestName, String TemplatePath, String filePath, boolean isSubReq ,String workflowid) { List subRequestIds = getSubRequestIds(requestid, isSubReq); ArrayList> lists = new ArrayList<>(); - List autoInitNodeIds = getAutoInitNodeIds(String.join(",", subRequestIds)); + List autoInitNodeIds = getAutoInitNodeIds(workflowid); RecordSet recordSet = new RecordSet(); String getWFNameByReqId = "select WORKFLOWNAME from WORKFLOW_REQUESTBASE req " + " left join WORKFLOW_BASE wf on req.WORKFLOWID = wf.ID " +