From 9bf30c89ee232667e4d826a460412b7865b4132c Mon Sep 17 00:00:00 2001 From: rengp Date: Mon, 22 Jul 2024 10:10:28 +0800 Subject: [PATCH] no message --- .../archives/corn/PushArchivesCorn.java | 8 + ...FirstBranchSendingPushArchivesService.java | 6 +- .../custom/archives/util/ArchivesUtil.java | 6 +- .../interface/transfer/todoNum_GSZNZY.jsp | 124 ++++ weaver/filter/LoginEMFilter.java | 17 +- .../action/javacode/Action20231015024217.java | 10 + .../action/javacode/Action20240716025747.java | 601 ++++++++++++++++++ .../action/javacode/Action20240719095314.java | 51 ++ .../action/javacode/Action20240719101107.java | 40 ++ .../custom/businessTravel/getPDFbyXcdh.jsp | 4 +- 10 files changed, 857 insertions(+), 10 deletions(-) create mode 100644 opt/weaver/ecology/interface/transfer/todoNum_GSZNZY.jsp create mode 100644 weaver/interfaces/workflow/action/javacode/Action20240716025747.java create mode 100644 weaver/interfaces/workflow/action/javacode/Action20240719095314.java create mode 100644 weaver/interfaces/workflow/action/javacode/Action20240719101107.java diff --git a/com/engine/custom/archives/corn/PushArchivesCorn.java b/com/engine/custom/archives/corn/PushArchivesCorn.java index db43df7..c8a7671 100644 --- a/com/engine/custom/archives/corn/PushArchivesCorn.java +++ b/com/engine/custom/archives/corn/PushArchivesCorn.java @@ -8,6 +8,8 @@ import com.engine.custom.archives.service.firstBranch.FirstBranchSendingPushArch import com.engine.custom.archives.service.firstBranch.FirstBranchSignReportPushArchivesService; import com.engine.custom.archives.service.secondBranch.SecondBranchReceivingPushArchivesService; import com.engine.custom.archives.service.secondBranch.SecondBranchSendingPushArchivesService; +import com.engine.custom.archives.service.signReport.OrgPersonPushArchivesService; +import com.engine.custom.archives.service.signReport.PetitionPushArchivesService; import com.engine.custom.archives.util.ArchivesUtil; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; @@ -44,6 +46,8 @@ public class PushArchivesCorn extends BaseCronJob { FirstBranchSignReportPushArchivesService firstBranchSignReportPushArchivesService =new FirstBranchSignReportPushArchivesService(); SecondBranchReceivingPushArchivesService secondBranchReceivingPushArchivesService =new SecondBranchReceivingPushArchivesService(); SecondBranchSendingPushArchivesService secondBranchSendingPushArchivesService =new SecondBranchSendingPushArchivesService(); + OrgPersonPushArchivesService orgPersonPushArchivesService = new OrgPersonPushArchivesService(); + PetitionPushArchivesService petitionPushArchivesService = new PetitionPushArchivesService(); @Override public void execute() { @@ -72,5 +76,9 @@ public class PushArchivesCorn extends BaseCronJob { secondBranchReceivingPushArchivesService.pushArchives(param); secondBranchSendingPushArchivesService.setProp(param); secondBranchSendingPushArchivesService.pushArchives(param); + orgPersonPushArchivesService.setProp(param); + orgPersonPushArchivesService.pushArchives(param); + petitionPushArchivesService.setProp(param); + petitionPushArchivesService.pushArchives(param); } } diff --git a/com/engine/custom/archives/service/firstBranch/FirstBranchSendingPushArchivesService.java b/com/engine/custom/archives/service/firstBranch/FirstBranchSendingPushArchivesService.java index 41952c0..1bfb2d0 100644 --- a/com/engine/custom/archives/service/firstBranch/FirstBranchSendingPushArchivesService.java +++ b/com/engine/custom/archives/service/firstBranch/FirstBranchSendingPushArchivesService.java @@ -252,7 +252,7 @@ public class FirstBranchSendingPushArchivesService implements KeyWord { String viewUrl = data.getString("viewUrl"); ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf"); } - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); }finally { if(inputStream!=null) { @@ -289,7 +289,7 @@ public class FirstBranchSendingPushArchivesService implements KeyWord { String viewUrl = data.getString("viewUrl"); ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf"); } - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); }finally { if(inputStream!=null) { @@ -367,7 +367,7 @@ public class FirstBranchSendingPushArchivesService implements KeyWord { ArchivesUtil.downloadFile(viewUrl, filePath + File.separator + newRequestid + File.separator + CBDDIR + File.separator + WJCLDWORD + ".pdf" + ".pdf"); } i[0]++; - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); }finally { if(inputStream!=null) { diff --git a/com/engine/custom/archives/util/ArchivesUtil.java b/com/engine/custom/archives/util/ArchivesUtil.java index 281f168..6242b3a 100644 --- a/com/engine/custom/archives/util/ArchivesUtil.java +++ b/com/engine/custom/archives/util/ArchivesUtil.java @@ -1251,9 +1251,9 @@ public class ArchivesUtil { } RequestBody requestBody = null; String code = getCodeByFileType(file.getName()); - if (StringUtil.isEmpty(code)){ - return ""; - } + // if (StringUtil.isEmpty(code)){ + // return ""; + // } String fileName = null; String extName = ""; try { diff --git a/opt/weaver/ecology/interface/transfer/todoNum_GSZNZY.jsp b/opt/weaver/ecology/interface/transfer/todoNum_GSZNZY.jsp new file mode 100644 index 0000000..1a44832 --- /dev/null +++ b/opt/weaver/ecology/interface/transfer/todoNum_GSZNZY.jsp @@ -0,0 +1,124 @@ +<%@ page import="com.engine.custom.sl.entity.EsbRequestHeader" %> +<%@ page import="java.text.SimpleDateFormat" %> +<%@ page import="java.util.Date" %> +<%@ page import="com.engine.custom.sl.entity.TravelToEsbBean" %> +<%@ page import="java.nio.charset.StandardCharsets" %> +<%@ page import="com.engine.util.SocketClientUtil" %> +<%@ page import="com.engine.util.XMLUtils" %> +<%@ page import="java.util.Map" %> +<%@ page import="com.alibaba.fastjson.JSONObject" %> +<%@ page import="com.engine.common.util.ParamUtil" %> +<%@ page import="java.net.Socket" %> +<%@ page import="weaver.general.BaseBean" %> +<%@ page import="weaver.general.StringUtil" %> +<%@ page import="java.io.*" %> +<%@ page import="weaver.general.Util" %> +<%@ page import="weaver.hrm.HrmUserVarify" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + + +<% + + // Map param = ParamUtil.request2Map(request); + // String workCode = param.get("workCode").toString(); + String workCode = HrmUserVarify.getUser(request, response).getLoginid(); + String timeStr = generateTimestamp(); + EsbRequestHeader esbRequestHeader = new EsbRequestHeader(); + esbRequestHeader.setService_sn(timeStr+workCode); + esbRequestHeader.setSystem_id("0275"); + esbRequestHeader.setRequester_id("0258"); + esbRequestHeader.setBranch_id("ITMS0002"); + esbRequestHeader.setChannel_id("17"); + esbRequestHeader.setService_time(timeStr); + esbRequestHeader.setNeed_request(""); + esbRequestHeader.setSvcCd("500130004"); + esbRequestHeader.setSvcScn("17"); + String bnkSrlNo = esbRequestHeader.getRequester_id() + timeStr + workCode; + esbRequestHeader.setBnkSrlNo(bnkSrlNo); + esbRequestHeader.setFileFlg("0"); + String Service_Body = "todogetCountuserNum"+workCode+"" ; + String Service_Header = TravelToEsbBean.convertObjectToXml(esbRequestHeader,"Service_Header"); + String serviceXML = ""; + // out.print("UTF_8_serviceXML==="+ serviceXML); + serviceXML = serviceXML + Service_Header + Service_Body; + serviceXML = serviceXML + ""; + // out.print("UTF_8_serviceXML==="+ serviceXML); + String length = String.format("%08d", serviceXML.length()); + serviceXML = length + serviceXML; + serviceXML = new String(serviceXML.getBytes(StandardCharsets.UTF_8)); + String send = ""; + try { + send = send(serviceXML); + // out.print("返回=="+send); + }catch (Exception e){ + // out.print("异常=="+ e.getMessage()); + } + // SocketClientUtil scketClient = new SocketClientUtil("14.1.76.116",10149); + // String substring = send.substring(0, 8); + // String substring1 = send.substring(8); + // out.print(substring); + Map map = XMLUtils.parseXMLToMap(send); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("count", Util.getIntValue(map.get("count"))); + out.print(jsonObject.toJSONString()); +%> +<%! + public String send(String request) throws Exception { + // bs.writeLog("Client Start..."); + BaseBean bs = new BaseBean(); + Socket socket = null; + try { + //创建一个流套接字并将其连接到指定主机上的指定端口号 + socket = new Socket("14.1.71.90",10149); + // String str = "000006121010157060000081243025801570102311000120230905104426true500130004130157202309050600000812430todogetCountuserNum10913026任广鹏是个大刷币"; + // System.out.println(str); + //读取服务器端数据 + BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8)); + //向服务器端发送数据 + // PrintStream out = new PrintStream(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8)); + PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),StandardCharsets.UTF_8),true); + out.println(request); + char[] datalen=new char[8];//报文前八位为报文体总长度 + input.read(datalen,0,8); + String lendata=new String (datalen); + int length=Integer.parseInt(lendata); + new BaseBean().writeLog("报文长度"+length); + char[] data=new char[length]; + int datalength = input.read(data,0,length); + String requestData = new String(data); + new BaseBean().writeLog("requestData",requestData); + // String ret = input.readLine(); + System.out.println("服务器端返回过来的是: " + requestData); + bs.writeLog("服务器端返回过来的是: " + requestData); + // 如接收到 "OK" 则断开连接 + if (!StringUtil.isEmpty(requestData)) { + bs.writeLog("客户端将关闭连接"); + System.out.println("客户端将关闭连接: " + requestData); + Thread.sleep(500); + } + out.close(); + input.close(); + return requestData; + } catch (Exception e) { + bs.writeLog("客户端异常:" + e.getMessage()); + throw e; + } finally { + if (socket != null) { + try { + socket.close(); + } catch (IOException e) { + socket = null; + bs.writeLog("客户端 finally 异常:" + e.getMessage()); + } + } + } + // return "-1"; + } + + public static String generateTimestamp() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + Date currentDate = new Date(); + return dateFormat.format(currentDate); + } +%> \ No newline at end of file diff --git a/weaver/filter/LoginEMFilter.java b/weaver/filter/LoginEMFilter.java index dfbd912..eb9d3bb 100644 --- a/weaver/filter/LoginEMFilter.java +++ b/weaver/filter/LoginEMFilter.java @@ -1,6 +1,7 @@ package weaver.filter; import com.weaver.file.Prop; +import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.StringUtil; import weaver.general.Util; @@ -23,8 +24,20 @@ public class LoginEMFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException { - String isopen = Prop.getPropValue("emloginFilter", "isopen"); - if ("1".equals(isopen)){ + // String isopen = Prop.getPropValue("emloginFilter", "isopen"); + Boolean isopen = false; + RecordSet rs = new RecordSet(); + rs.executeQuery("select count(id) cnt from uf_emloginFilter where isOpen = 0"); + try { + if (rs.next()){ + int cnt = Util.getIntValue(rs.getString("cnt")); + isopen = cnt > 0 ; + } + }catch (Exception e){ + + } + + if (isopen){ try { HttpServletRequest request = (HttpServletRequest) servletRequest; StringBuffer url = request.getRequestURL(); diff --git a/weaver/interfaces/workflow/action/javacode/Action20231015024217.java b/weaver/interfaces/workflow/action/javacode/Action20231015024217.java index e6d6d41..8c9c2fc 100644 --- a/weaver/interfaces/workflow/action/javacode/Action20231015024217.java +++ b/weaver/interfaces/workflow/action/javacode/Action20231015024217.java @@ -173,6 +173,8 @@ public class Action20231015024217 extends BaseBean implements Action { String fj = ""; String spdfj = ""; String spwhscpdfwj = ""; + String qxspdpdffj = ""; + String tjyxgnccspdfjpdf = ""; //表单数据 if (rs.next()) { mainid = rs.getString("id"); @@ -199,6 +201,8 @@ public class Action20231015024217 extends BaseBean implements Action { fj = Util.null2String(rs.getString("fj")); spdfj = Util.null2String(rs.getString("spdfj")); spwhscpdfwj = Util.null2String(rs.getString("clspdpdffj")); + qxspdpdffj = Util.null2String(rs.getString("qxspdpdffj")); + tjyxgnccspdfjpdf = Util.null2String(rs.getString("tjyxgnccspdfjpdf")); // String formData = rs.getString("formData"); } // 封装文件数组 @@ -218,6 +222,12 @@ public class Action20231015024217 extends BaseBean implements Action { if (!StringUtil.isEmpty(spwhscpdfwj)){ fjids.add(spwhscpdfwj); } + if (!StringUtil.isEmpty(qxspdpdffj)){ + fjids.add(qxspdpdffj); + } + if (!StringUtil.isEmpty(tjyxgnccspdfjpdf)){ + fjids.add(tjyxgnccspdfjpdf); + } ArrayList acsryArray = new ArrayList<>(); for (String fjid : fjids) { acsryItem acsryItem = new acsryItem(); diff --git a/weaver/interfaces/workflow/action/javacode/Action20240716025747.java b/weaver/interfaces/workflow/action/javacode/Action20240716025747.java new file mode 100644 index 0000000..0def987 --- /dev/null +++ b/weaver/interfaces/workflow/action/javacode/Action20240716025747.java @@ -0,0 +1,601 @@ +package weaver.interfaces.workflow.action.javacode; + +import cn.hutool.core.util.ZipUtil; +import com.alibaba.fastjson.JSONObject; +import com.api.integration.BaseBean; +import com.dcfs.fts.common.error.FtpException; +import com.engine.custom.archives.entity.PushArchivesBean; +import com.engine.custom.archives.util.ArchivesUtil; +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.StringUtil; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; +import weaver.soa.workflow.request.RequestService; + +import java.io.*; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.*; + +public class Action20240716025747 extends BaseBean implements Action { + public static Logger log = LoggerFactory.getLogger("Archives"); + private static String filePath = "/opt/oadata/archivesFile"; + private static String Url = "http://14.1.213.5:18080/fcscloud/composite/upload"; + public String templatePath = "/opt/weaver/archivesFile/template/"; // 模板文件路径 + private int endTime= 21; + public static final String ZWDIR = "正文"; + public static final String FJDIR = "附件"; + public static final String CBDDIR = "承办单"; + public static final String ZLCDIR = "承办单" + File.separator + "子流程"; + public static final String LZXXDIR = "流转信息"; + public static final String FJFILE = "附件"; + public static final String FJWORD = "附件"; + public static final String ZWWORD = "正文"; + public static final String LHGWORD = "留痕稿"; + public static final String LCFJWORD = "流程附件"; + public static final String QZYJFJWORD = "签字意见附件"; + public static final String WJCLDWORD = "文件处理单"; + public static final String WJLZXXWORD = "文件流转信息"; + public static final String XBBMFJWORD = "协办部门附件"; + + public void setProp(Map param) { + filePath = Util.null2String(param.get("filePath")); + Url = Util.null2String(param.get("Url")); + templatePath = Util.null2String(param.get("templatePath")); + endTime = Util.getIntValue(param.get("endTime"),7); + } + + public void pushArchives(Map param) { + log.info("PushArchivesCorn====Begin========{}", param); + Date date = ArchivesUtil.getDate(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); + String format = dateFormat.format(date); + SimpleDateFormat yyyyMMddHHmmss = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + // 获取当前时间的第一秒 + String firstSecond = yyyyMMddHHmmss.format(ArchivesUtil.getFirstSecondOfDate(date)); + // 获取当前时间的最后一秒 + String lastSecond = yyyyMMddHHmmss.format(ArchivesUtil.getLastSecondOfDate(date)); + RecordSet recordSet = new RecordSet(); + List result = ArchivesUtil.getResultList(recordSet, firstSecond, lastSecond, 3); + log.error("推送分行发文的数量:{}", result.size()); + File file = ArchivesUtil.crFile(filePath + "/togd_" + new SimpleDateFormat("yyyyMMdd000000").format(date)); + log.error("textfile:{}", file.getAbsolutePath()); + for (PushArchivesBean pushArchivesBean : result) { + if (ArchivesUtil.isAfterSevenAM(endTime)){ + log.info("超过执行时间:{}点暂停计划任务",endTime); + break; + } + // int id = pushArchivesBean.getId(); + int request = pushArchivesBean.getRequest(); + log.error("推送的requestId:{}", request); + try { + String context = generateFile(request); + if ("-1".equals(context)){ + continue; + } + 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()); + OutputStream outputStream = new FileOutputStream(txtzip); + + File writename = new File(file.getPath() + "/" + file.getName() + ".txt"); + com.engine.custom.hg.util.ZipUtil.filesToZip(writename, outputStream, writename.getName()); + log.error("writename:{}", writename.getName()); + if(outputStream != null){ + try { + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + String s = HgUtils.putFile(txtzip.getAbsolutePath(), txtzip.getName()); + updateRecord(request,"esbtxtml",s); + updateRecord(request,"zt","0"); + log.error("textZip:{}", s); + } catch (FtpException e) { + e.printStackTrace(); + log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage()); + } catch (IOException e) { + e.printStackTrace(); + log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage()); + } catch (Exception e){ + e.printStackTrace(); + log.error("推送档案requestid:{}异常,异常原因为:{}",request,e.getMessage()); + } + } + + } + + + private String generateFile(int requestid) throws FtpException, IOException { + Map requesData = getRequestByid(requestid); + String newRequestid = "togd"+requestid; + log.info("requesData:{}", requesData); + String bh = requesData.get("bh"); + if (StringUtil.isEmpty(bh)){ + return "-1"; + } + 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")); + String thhlh = Util.null2String(requesData.get("thhlh")); + + + //增加签字意见中的附件到附件文件夹中 + Map signFiles = ArchivesUtil.getSignFiles(requestid,false); + List docids = new ArrayList<>(); + // docids.addAll(Arrays.asList(fj.split(","))); + // docids.addAll(Arrays.asList(zwkbj.split(","))); + Map fjMap = ArchivesUtil.getFileIdByDocId(fj); + Map dwdMap = ArchivesUtil.getFileIdByDocId(dwd); + Map zwMap = ArchivesUtil.getFileIdByDocId(zw); + Map qgqhjMap = ArchivesUtil.getFileIdByDocId(qgqhj); + Map thhlhMap = ArchivesUtil.getFileIdByDocId(thhlh); + 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 + newRequestid + File.separator + FJDIR + File.separator + LCFJWORD + "-" +imageFileManager.getImageFileName(); + fjFileName.add(LCFJWORD + "-" +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 + newRequestid + File.separator + FJDIR + File.separator + LCFJWORD + "-" + imageFileManager.getImageFileName() + ".pdf"); + } + } catch (Exception e) { + e.printStackTrace(); + }finally { + if(inputStream!=null) { + try { + inputStream.close(); + } 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 + newRequestid + File.separator + FJDIR + File.separator + QZYJFJWORD+ "-" +imageFileManager.getImageFileName(); + fjFileName.add(QZYJFJWORD+ "-" +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 + newRequestid + File.separator + FJDIR + File.separator + QZYJFJWORD+ "-" + imageFileManager.getImageFileName() + ".pdf"); + } + } catch (Exception e) { + e.printStackTrace(); + }finally { + if(inputStream!=null) { + try { + inputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + }); + + //多文档 + // dwdMap.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] + "_" + zwWord + "_" + 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] + "_" + zwWord + "_" + imageFileManager.getImageFileName() + ".pdf"); + // } + // } catch (IOException e) { + // e.printStackTrace(); + // } + // i[0]++; + // }); + //正文 + 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().replaceAll("/","-")); + //中文路径/中文文件名 + String imageFileName = filePath + File.separator + newRequestid + 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 + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf"); + } + } catch (Exception e) { + e.printStackTrace(); + }finally { + if(inputStream!=null) { + try { + inputStream.close(); + } 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().replaceAll("/","-")); + zwFileName.add(newFile); + //中文路径/中文文件名 + String imageFileName = filePath + File.separator + newRequestid + 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 + newRequestid + File.separator + ZWDIR + File.separator + newFile + ".pdf"); + } + } catch (Exception e) { + e.printStackTrace(); + }finally { + if(inputStream!=null) { + try { + inputStream.close(); + } 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, 0); + // 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 + newRequestid + File.separator + cbddir + File.separator + fjFile + i[0] + "_" + wjcldWord+".pdf"; + String imageFileName = filePath + File.separator + newRequestid + File.separator + CBDDIR + File.separator + 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 + newRequestid + File.separator + CBDDIR + File.separator + WJCLDWORD + ".pdf" + ".pdf"); + } + i[0]++; + } catch (Exception e) { + e.printStackTrace(); + }finally { + if(inputStream!=null) { + try { + inputStream.close(); + } 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,false,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 + newRequestid + ".zip"; + ZipUtil.zip(filePath + File.separator + newRequestid, zipName); + log.error("zipName:{}", zipName); + String ftpFilePath = HgUtils.putFile(zipName, newRequestid + ".zip"); + log.error("ftpFilePath:{}", ftpFilePath); + updateRecord(requestid,"esbwjml",ftpFilePath); + ArchivesUtil.deleteDirectory(filePath + File.separator + newRequestid); + // String ftpFilePathNew = HgUtils.putFile(zipName, "test" + File.separator + requestid + ".zip"); + // log.error("ftpFilePathNew:{}", ftpFilePathNew); + String context = getContext(requestid, requesData, newRequestid + ".zip", zwFileName, fjFileName); + // insertRecord(requestid, context, ftpFilePath); + updateRecord(requestid,"content",context); + log.error("context:{}", context); + return context; + } + + + /*** + * 封装数据 + * @param requestid + * @return + */ + public Map getRequestByid(int requestid) { + HashMap record = new HashMap<>(); + String sql = "select * from formtable_main_49 where requestid = ?"; + String reqsql = "select REQUESTNAME from WORKFLOW_REQUESTBASE where REQUESTID = ?"; + RecordSet rs = new RecordSet(); + rs.executeQuery(sql, requestid); + if (rs.next()) { + record.put("fj", Util.null2String(rs.getString("fj"))); + record.put("dwd", Util.null2String(rs.getString("dwd"))); + record.put("zw", Util.null2String(rs.getString("zw"))); + record.put("ngrq", Util.null2String(rs.getString("ngrq"))); + record.put("jghwt", Util.null2String(rs.getString("jghwt"))); + record.put("bh", Util.null2String(rs.getString("bh"))); + record.put("ngbm", Util.null2String(rs.getString("ngbm"))); + record.put("bgqx", Util.null2String(rs.getString("bgqx"))); + record.put("cwrq", Util.null2String(rs.getString("cwrq"))); + record.put("ys", Util.null2String(rs.getString("ys"))); + record.put("wz", Util.null2String(rs.getString("wz"))); + record.put("ngbm", Util.null2String(rs.getString("ngbm"))); + record.put("lb", Util.null2String(rs.getString("lb"))); + record.put("bz", Util.null2String(rs.getString("bz"))); + record.put("yywh", Util.null2String(rs.getString("yywh"))); + record.put("wjlx", Util.null2String(rs.getString("wjlx"))); + record.put("fwlx", Util.null2String(rs.getString("fwlx"))); + record.put("f", Util.null2String(rs.getString("f"))); + record.put("ngr", Util.null2String(rs.getString("ngr"))); + record.put("qgqhj", Util.null2String(rs.getString("qgqhj"))); + record.put("thhlh", Util.null2String(rs.getString("thhlh"))); + + } + 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("cwrq")); //拟稿日期 + 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.getDepartmentmark(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); + String[] subData = ArchivesUtil.getSubCom(ngbm); + context.append(subData[0]).append("|"); //10 行编号 -> 拟稿部门 + + context.append(subData[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("togd"+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("hqbm")).split(","))); // 会签部门 + records.addAll(Arrays.asList(Util.null2String(requesData.get("ngbm")).split(","))); // 拟稿部门 + records.addAll(Arrays.asList(Util.null2String(requesData.get("bmyb")).split(","))); // 部门阅办 + records.addAll(Arrays.asList(Util.null2String(requesData.get("cs")).split(","))); // 抄送 + records.addAll(Arrays.asList(Util.null2String(requesData.get("nbfs")).split(","))); // 本行发送 + records.addAll(Arrays.asList(Util.null2String(requesData.get("zs")).split(","))); // 主送 + records.addAll(Arrays.asList(Util.null2String(requesData.get("dqbm")).split(","))); // 当前部门 + records.addAll(Arrays.asList(Util.null2String(requesData.get("cb")).split(","))); // 抄报 + records.addAll(Arrays.asList(Util.null2String(requesData.get("bmhqzj")).split(","))); // 部门会签(追加) + records.addAll(Arrays.asList(Util.null2String(requesData.get("bmybzj")).split(","))); // 部门阅办(追加) + ArrayList deptName = new ArrayList<>(); + DepartmentComInfo departmentComInfo = new DepartmentComInfo(); + for (String record : records) { + try { + if (StringUtil.isEmpty(record)){ + continue; + } + String departmentName = departmentComInfo.getDepartmentmark(record); + deptName.add(departmentName); + } catch (Exception e) { + e.printStackTrace(); + } + } + + return String.join("&&", deptName); + } + + private void updateRecord(int requestid, String field , String fieldvalue) { + String sql = "update uf_pushArchivesLog set "+field+" = ? where request = ?"; + RecordSet recordSet = new RecordSet(); + recordSet.executeUpdate(sql, fieldvalue, requestid); + } + + + @Override + public String execute(RequestInfo request) { + new Thread(new Runnable() { + @Override + public void run() { + pushArchives(null); + } + }).start(); + return Action.SUCCESS; + } +} diff --git a/weaver/interfaces/workflow/action/javacode/Action20240719095314.java b/weaver/interfaces/workflow/action/javacode/Action20240719095314.java new file mode 100644 index 0000000..87ca3b4 --- /dev/null +++ b/weaver/interfaces/workflow/action/javacode/Action20240719095314.java @@ -0,0 +1,51 @@ +package weaver.interfaces.workflow.action.javacode; + + +import weaver.conn.BatchRecordSet; +import weaver.conn.RecordSet; +import weaver.general.StringUtil; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.general.BaseBean; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.ArrayList; + +/** + * Online custom action interface + */ +public class Action20240719092616 extends BaseBean implements Action { + + @Override + public String execute(RequestInfo request) { + String requestId = request.getRequestid(); + String tablename = request.getRequestManager().getBillTableName(); + RecordSet rs = new RecordSet(); + rs.execute("select * from " + tablename + " where requestid = " + requestId); + rs.next(); + String hrmids = rs.getString("hrmids"); + String formid = rs.getString("formid"); + String sep = Util.getSeparator() + ""; + ArrayList hrms = new ArrayList<>(); + ArrayList insertParams = new ArrayList<>(); + String[] split = hrmids.split(","); + for (String s : split) { + if (!StringUtil.isEmpty(s)){ + hrms.add(Util.getIntValue(s)); + } + } + for (Integer hrm : hrms) { + User user = new User(hrm); + int userSubCompany1 = user.getUserSubCompany1(); + int userDepartment = user.getUserDepartment(); + String paramString = hrm+sep+userSubCompany1+sep+userDepartment+sep+formid; + writeLog("paramString:"+paramString); + insertParams.add(paramString); + } + String insertsql = "insert into uf_yddbmd (ryid ,fb,bm,FORMMODEID) VALUES (?,?,?,?)"; + BatchRecordSet brs = new BatchRecordSet(); + brs.executeSqlBatchNew(insertsql,insertParams); + return Action.SUCCESS; + } +} diff --git a/weaver/interfaces/workflow/action/javacode/Action20240719101107.java b/weaver/interfaces/workflow/action/javacode/Action20240719101107.java new file mode 100644 index 0000000..53a1f1d --- /dev/null +++ b/weaver/interfaces/workflow/action/javacode/Action20240719101107.java @@ -0,0 +1,40 @@ +package weaver.interfaces.workflow.action.javacode; + +import weaver.conn.BatchRecordSet; +import weaver.conn.RecordSet; +import weaver.general.StringUtil; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.general.BaseBean; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.ArrayList; + +/** + * Online custom action interface + */ +public class Action20240719092807 extends BaseBean implements Action{ + @Override + public String execute(RequestInfo request) { + String requestId = request.getRequestid(); + String tablename = request.getRequestManager().getBillTableName(); + RecordSet rs = new RecordSet(); + rs.execute("select * from " + tablename + " where requestid = " + requestId); + rs.next(); + String hrmids = rs.getString("hrmids"); + ArrayList hrms = new ArrayList<>(); + // ArrayList deleteParams = new ArrayList<>(); + String[] split = hrmids.split(","); + for (String s : split) { + if (!StringUtil.isEmpty(s)){ + hrms.add(s); + } + } + // deleteParams.addAll(hrms); + String deletesql = "delete uf_yddbmd where ryid = ?"; + BatchRecordSet brs = new BatchRecordSet(); + brs.executeSqlBatchNew(deletesql,hrms); + return Action.SUCCESS; + } +} diff --git a/weavernorth/custom/businessTravel/getPDFbyXcdh.jsp b/weavernorth/custom/businessTravel/getPDFbyXcdh.jsp index 03095c1..2d77826 100644 --- a/weavernorth/custom/businessTravel/getPDFbyXcdh.jsp +++ b/weavernorth/custom/businessTravel/getPDFbyXcdh.jsp @@ -90,7 +90,7 @@ errorInfo = xmdh; } } - rs.executeQuery("select glqxjspd from formtable_main_442 where requestid = ?", ccqqlc); + rs.executeQuery("select glqxjspd from formtable_main_409 where requestid = ?", ccqqlc); rs.next(); String glqxjspd = Util.null2String(rs.getString("glqxjspd")); log.info("glqxjspd:{}", glqxjspd); @@ -114,7 +114,7 @@ } else if (8 == type) { tjyxgnccspdfjpdf = Util.null2String(rs.getString("spwhscpdfwj")); log.info("tjyxgnccspdfjpdf:{}", tjyxgnccspdfjpdf); - rs.executeQuery("select glqxjspd from formtable_main_442 where requestid = ?", requestId); + rs.executeQuery("select glqxjspd from formtable_main_409 where requestid = ?", requestId); rs.next(); String glqxjspd = Util.null2String(rs.getString("glqxjspd")); log.info("glqxjspd:{}", glqxjspd);