上海网站建设设网络推广合作

张小明 2026/3/2 21:39:48
上海网站建设设,网络推广合作,wordpress漫画采集,重庆1000元网站建设实现场景#xff1a; 目标#xff1a;实现将流程相关资源中附件与文档内容复制到新字段中 使用泛微ESB实现复制相关资源文档#xff0c;附件的docid到新字段中实现附件汇集 附件1 字段存有a.txt,b.pdf; 附件2 字段存有 c.xls,d.ppt; 文档字段3 存有 d.doc在线文档在新增…实现场景目标实现将流程相关资源中附件与文档内容复制到新字段中使用泛微ESB实现复制相关资源文档附件的docid到新字段中实现附件汇集附件1 字段存有a.txt,b.pdf; 附件2 字段存有 c.xls,d.ppt; 文档字段3 存有 d.doc在线文档在新增的自定义字段collectannex通过esb接口实现将以上内容复制到该字段中ESB思路最后更新表单要去除获取到的docid之间的空格实现思路通过 流程requestid 获取表名与流程创建者id通过1中的内容获取流程相关资源的文件docid复制所有相关资源中的docid生成复制后新的docid执行更新SQL实现将以上新生成的docid复制到新字段collectannex中完整代码package com.weaver.esb.package_20251215021826; import com.api.doc.detail.util.DecodeUtil; import com.engine.workflow.biz.workflowCore.RequestBaseBiz; import com.engine.workflow.entity.core.RequestInfoEntity; import weaver.conn.RecordSet; import weaver.docs.webservices.DocAttachment; import weaver.docs.webservices.DocInfo; import weaver.docs.webservices.DocServiceImpl; import weaver.file.ImageFileManager; import weaver.general.Util; import weaver.hrm.User; import weaver.hrm.resource.ResourceComInfo; import weaver.wechat.util.Utils; import weaver.workflow.request.RequestResources; import weaver.workflow.workflow.WorkflowComInfo; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.util.*; public class OperateWorkflowAnnex { /** * param: param(Map collections) * 参数名称不能包含特殊字符,.[]!#$%()*:;?\^{}|~/ 中文字符、标点 U007F U0000到U001F */ public Map execute(MapString,Object params) { MapString,Object ret new HashMap(); String requestid Utils.null2String(params.get(requestid)); //1. obtain tablename by requestid String tableName getWorkflowTablenameByRequestid(requestid); // 2. obtain creater by requestid String creater getCreaterByRequestid(requestid); int useridInt Integer.parseInt(creater) ; User user new User(useridInt) ; // 3. obtain annex files ids by requestid,creater ListString docidList getAnnexfilesList( requestid , creater ); ListString CollectAnnexDocidList new ArrayList(); try { for(String docId : docidList){ MapString, String imageInfo getImageFileidByDocid(docId); String decodeimagefileid Util.null2String(DecodeUtil.decodeByImageFileIdByTianyu(Integer.parseInt(imageInfo.get(imagefileid)))); String imagefilename imageInfo.get(imagefilename); InputStream inputStream ImageFileManager.getInputStreamById(Integer.parseInt(decodeimagefileid)); String relatedDocid createDocument(inputStream,/app/weaver/ecology/Archives,imagefilename,creater,user,imagefilename); CollectAnnexDocidList.add(relatedDocid); } } catch (Exception e) { ret.put(code,400); ret.put(message,erro get files :e.toString()); throw new RuntimeException(e); } RecordSet updateAppendixRS new RecordSet() ; String collectannex String.join(, , CollectAnnexDocidList); collectannex collectannex.replaceAll(\\s, ); String updateWorkflowSQL update tableName set collectannex collectannex where requestidrequestid; updateAppendixRS.execute(updateWorkflowSQL ) ; ret.put(code,200); ret.put(message, tableName; creater:creater docidList:docidList CollectAnnexDocidListCollectAnnexDocidList ***updateWorkflowSQL); return ret; } public String createDocument(InputStream inputStream, String filePath, String fileName, String userid, User user, String wdmc) throws Exception { // System.out.println(进入生成文档方法); String docid ; ListInputStream inputStreams new ArrayList(); byte[] content new byte[102400]; // 上传附件创建html文档 content null; try { int byteread; byte data[] new byte[1024]; // InputStreamReader reader new InputStreamReader(input,UTF-8); ByteArrayOutputStream out new ByteArrayOutputStream(); while ((byteread inputStream.read(data)) ! -1) { out.write(data, 0, byteread); out.flush(); } content out.toByteArray(); inputStream.close(); out.close(); } catch (Exception e) { e.printStackTrace(); } DocAttachment da new DocAttachment(); da.setDocid(0); da.setImagefileid(0); da.setFilecontent(org.apache.axis.encoding.Base64.encode(content)); da.setFilerealpath(filePath); da.setIszip(1); da.setFilename(fileName); da.setIsextfile(1); da.setDocfiletype(3); DocServiceImpl docService new DocServiceImpl(); DocInfo doc new DocInfo();//创建文档 doc.setDoccreaterid(Integer.parseInt(userid));// doc.setDoccreatertype(0); doc.setAccessorycount(1); doc.setMaincategory(Integer.parseInt(92));//主目录id doc.setSeccategory(Integer.parseInt(92));//子目录id doc.setOwnerid(Integer.parseInt(userid)); doc.setDocStatus(1); doc.setId(0); doc.setDocType(2); doc.setDocSubject(wdmc); doc.setDoccontent(); doc.setAttachments(new DocAttachment[]{da}); int newDocid docService.createDocByUser(doc, user); System.out.println(新文档id newDocid); return newDocid ; } public static MapString, String getImageFileidByDocid(String docid) { String sql select imagefileid,imagefilename from docimagefile where docid docid ; RecordSet rs new RecordSet(); rs.executeQuery(sql); MapString, String map new HashMap(); if (rs.next()) { map.put(imagefileid, weaver.general.Util.null2String(rs.getString(imagefileid))); map.put(imagefilename, (weaver.general.Util.null2String(rs.getString(imagefilename))).replace(/,-)); } return map; } static ListString getAnnexfilesList(String requestidStr,String creatoridStr){ ListString docidList new ArrayList() ; int requestid Integer.parseInt(requestidStr) ; int useridInt Integer.parseInt(creatoridStr) ; if(requestidStr.equals()||requestidStrnull){ return null ; } User user new User(useridInt) ; try { RequestInfoEntity infoEntity RequestBaseBiz.loadRequestInfo(requestid); int workflowid infoEntity.getWorkflowId(); WorkflowComInfo comInfo new WorkflowComInfo(); int isbill Util.getIntValue(comInfo.getIsBill(Util.null2String(workflowid))); int formid Util.getIntValue(comInfo.getFormId(Util.null2String(workflowid))); RequestResources reqResources new RequestResources(user, infoEntity.getWorkflowId(), requestid, isbill, formid, , , , 0, 0, 0); // type:资源类型 1:相关流程 2相关文档 3相关附件 String fromSql reqResources.getReqResSqlByType(3); String querySQL select id, resname, restype, creator, creatortype, createdate, docid from fromSql order by id asc; RecordSet rs new RecordSet(); rs.executeQuery(querySQL); while (rs.next()) { int id rs.getInt(id); rs.getString(creator); //文档类型的附件查出来的是docid还要根据docid去查询docImageFileId String docid Util.null2String(rs.getInt(docid)); String imagefileid getDocImageFileIdByDocid(docid).get(imagefileid).toString(); docidList.add( docid); } // type:资源类型 1:相关流程 2相关文档 3相关附件 fromSql reqResources.getReqResSqlByType(2); querySQL select id, resname, restype, creator, creatortype, createdate, docid from fromSql order by id asc; rs.executeQuery(querySQL); while (rs.next()) { int id rs.getInt(id); rs.getString(creator); //文档类型的附件查出来的是docid还要根据docid去查询docImageFileId String docid Util.null2String(rs.getInt(docid)); String imagefileid getDocImageFileIdByDocid(docid).get(imagefileid).toString(); // imagefileidList.add( imagefileid); docidList.add( docid); } }catch (Exception e) { // writeLog(e.getMessage(), e); } return docidList ; } /** * 根据docid获取最新一次的DocImageFileId * param docid * return */ static MapString,Object getDocImageFileIdByDocid(String docid){ MapString,Object map new HashMap(); String zwflag1; int imagefileid0; RecordSet rs new RecordSet(); String sqlselect * from docdetail where iddocid; rs.executeSql(sql); sqlselect * from DocImageFile where docid docid; sql order by id desc ; rs.executeSql(sql); if(rs.next()){ imagefileid Util.getIntValue(rs.getString(imagefileid),0); map.put(imagefilename,rs.getString(imagefilename)); } map.put(imagefileid,imagefileid); return map; } /** * obtain creater by requestid * param requestid * return */ static String getCreaterByRequestid(String requestid){ //get creater by requestid String queryCreaterSQL select creater from workflow_requestbase where requestid ?; RecordSet rs new RecordSet(); rs.executeQuery(queryCreaterSQL,requestid) ; String creater 28525 ; if(rs.next()){ createrrs.getString(creater) ; } //get all annex files about requestid return creater ; } /** * obtain tablename by requestid * param requestid * return tablename */ static String getWorkflowTablenameByRequestid(String requestid){ String queryTableNameSQL SELECT b.tablename\n FROM workflow_requestbase r\n JOIN workflow_base w ON r.workflowid w.id\n JOIN workflow_bill b ON w.formid b.id\n WHERE r.requestid ? ; RecordSet rs new RecordSet(); rs.executeQuery(queryTableNameSQL,requestid) ; String result ; if(rs.next()){ resultrs.getString(tablename) ; } return result ; } }代码解析使用requestid获取流程对应的表名与创建人需要进行多个表的转换queryTableNameSQL获取tablename表名 拆解来源如下select creater from workflow_requestbase where requestid 80095263 -- workflowid 448621 select * from workflow_base where id 448621 --- formid -4654 select tablename from workflow_bill where id -4654 -- tablename获取相关资源在之前的获取流程相关资源文章提到了获取相关流程requestid参数为1参数为2或者3即可获取相关资源的文档和附件docid代码不同数字代表不同资源类型其中 1:相关流程 2相关文档 3相关附件 以下方法通过输入流程requestid与创建人id返回该流程相关资源中所有文档与附件的docidstatic ListString getAnnexfilesList(String requestidStr,String creatoridStr){ ListString docidList new ArrayList() ; int requestid Integer.parseInt(requestidStr) ; int useridInt Integer.parseInt(creatoridStr) ; if(requestidStr.equals()||requestidStrnull){ return null ; } User user new User(useridInt) ; try { RequestInfoEntity infoEntity RequestBaseBiz.loadRequestInfo(requestid); int workflowid infoEntity.getWorkflowId(); WorkflowComInfo comInfo new WorkflowComInfo(); int isbill Util.getIntValue(comInfo.getIsBill(Util.null2String(workflowid))); int formid Util.getIntValue(comInfo.getFormId(Util.null2String(workflowid))); RequestResources reqResources new RequestResources(user, infoEntity.getWorkflowId(), requestid, isbill, formid, , , , 0, 0, 0); // type:资源类型 1:相关流程 2相关文档 3相关附件 String fromSql reqResources.getReqResSqlByType(3); String querySQL select id, resname, restype, creator, creatortype, createdate, docid from fromSql order by id asc; RecordSet rs new RecordSet(); rs.executeQuery(querySQL); while (rs.next()) { int id rs.getInt(id); rs.getString(creator); //文档类型的附件查出来的是docid还要根据docid去查询docImageFileId String docid Util.null2String(rs.getInt(docid)); String imagefileid getDocImageFileIdByDocid(docid).get(imagefileid).toString(); docidList.add( docid); } // type:资源类型 1:相关流程 2相关文档 3相关附件 fromSql reqResources.getReqResSqlByType(2); querySQL select id, resname, restype, creator, creatortype, createdate, docid from fromSql order by id asc; rs.executeQuery(querySQL); while (rs.next()) { int id rs.getInt(id); rs.getString(creator); //文档类型的附件查出来的是docid还要根据docid去查询docImageFileId String docid Util.null2String(rs.getInt(docid)); String imagefileid getDocImageFileIdByDocid(docid).get(imagefileid).toString(); // imagefileidList.add( imagefileid); docidList.add( docid); } }catch (Exception e) { // writeLog(e.getMessage(), e); } return docidList ; }将docid复制后存入新的字段collectannex中前需要复制生成新的文件docidpublic String createDocument(InputStream inputStream, String filePath, String fileName, String userid, User user, String wdmc) throws Exception { // System.out.println(进入生成文档方法); String docid ; ListInputStream inputStreams new ArrayList(); byte[] content new byte[102400]; // 上传附件创建html文档 content null; try { int byteread; byte data[] new byte[1024]; // InputStreamReader reader new InputStreamReader(input,UTF-8); ByteArrayOutputStream out new ByteArrayOutputStream(); while ((byteread inputStream.read(data)) ! -1) { out.write(data, 0, byteread); out.flush(); } content out.toByteArray(); inputStream.close(); out.close(); } catch (Exception e) { e.printStackTrace(); } DocAttachment da new DocAttachment(); da.setDocid(0); da.setImagefileid(0); da.setFilecontent(org.apache.axis.encoding.Base64.encode(content)); da.setFilerealpath(filePath); da.setIszip(1); da.setFilename(fileName); da.setIsextfile(1); da.setDocfiletype(3); DocServiceImpl docService new DocServiceImpl(); DocInfo doc new DocInfo();//创建文档 doc.setDoccreaterid(Integer.parseInt(userid));// doc.setDoccreatertype(0); doc.setAccessorycount(1); doc.setMaincategory(Integer.parseInt(92));//主目录id doc.setSeccategory(Integer.parseInt(92));//子目录id doc.setOwnerid(Integer.parseInt(userid)); doc.setDocStatus(1); doc.setId(0); doc.setDocType(2); doc.setDocSubject(wdmc); doc.setDoccontent(); doc.setAttachments(new DocAttachment[]{da}); int newDocid docService.createDocByUser(doc, user); System.out.println(新文档id newDocid); return newDocid ; } public static MapString, String getImageFileidByDocid(String docid) { String sql select imagefileid,imagefilename from docimagefile where docid docid ; RecordSet rs new RecordSet(); rs.executeQuery(sql); MapString, String map new HashMap(); if (rs.next()) { map.put(imagefileid, weaver.general.Util.null2String(rs.getString(imagefileid))); map.put(imagefilename, (weaver.general.Util.null2String(rs.getString(imagefilename))).replace(/,-)); } return map; }代码中方法getImageFileidByDocid 输入文件docid获取对应的imagefileid与imagefilename作为获取新文档docid方法createDocument的参数具体通过遍历上一步获取到所有资源docid的list循环生成代码如下for(String docId : docidList){ MapString, String imageInfo getImageFileidByDocid(docId); String decodeimagefileid Util.null2String(DecodeUtil.decodeByImageFileIdByTianyu(Integer.parseInt(imageInfo.get(imagefileid)))); String imagefilename imageInfo.get(imagefilename); InputStream inputStream ImageFileManager.getInputStreamById(Integer.parseInt(decodeimagefileid)); String relatedDocid createDocument(inputStream,/app/weaver/ecology/Archives,imagefilename,creater,user,imagefilename); CollectAnnexDocidList.add(relatedDocid); }补充说明当一个
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

怎么建设淘客自己的网站_宁波建网站哪家好

暖通净化空调恒温恒湿项目包括PLC程序和触摸屏上位机程序。 标准化很好的内部用的函数都封装成了标准块一套很好的学习资料。在暖通净化空调恒温恒湿项目里,PLC 程序和触摸屏上位机程序就像项目运转的左膀右臂,承担着关键任务。先聊聊 PLC 程序&#xff…

张小明 2026/2/28 6:19:56 网站建设

搭建好网站如何使用为什么百度不收录wordpress

VMware macOS解锁工具Unlocker 3.0完整使用指南 【免费下载链接】unlocker 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 您是否曾经想在Windows或Linux系统上通过VMware虚拟机运行macOS,却总是遇到系统限制无法选择Apple操作系统?…

张小明 2026/1/10 19:29:45 网站建设

网站开发中如何制作登录页面网站备案号超链接怎么做

LobeChat性能监控工具推荐:Prometheus Grafana整合方案 在今天的企业AI应用浪潮中,LobeChat 这类基于大语言模型(LLM)的智能对话系统早已不再是“能跑就行”的实验项目。越来越多团队将其部署为生产级服务——用于客服自动化、内…

张小明 2026/1/10 12:27:31 网站建设

制作网站 服务器配置宁波网站建设价格费用

第一章:从MP3到WAV只需1秒?Dify 1.7.0实时转换性能实测曝光最新发布的 Dify 1.7.0 版本在音频处理模块中引入了全新的实时转码引擎,显著提升了音频格式转换效率。实测数据显示,将一个 5MB 的 MP3 文件转换为 WAV 格式平均耗时仅 9…

张小明 2026/1/10 21:32:05 网站建设

2018年企业网站优化如何做南宁app开发

Spring核心类研究价值排行榜(按使用频率) 以下是企业级开发中最值得深入研究的Spring核心类,按实际使用频率从极高频到低频分层梳理:一、极高频类类名核心作用典型应用场景DispatcherServletSpring MVC核心前端控制器,…

张小明 2026/1/10 21:56:17 网站建设

自助建站怎么实现的徐州好点的做网站的公司有哪些

QMCDecode:macOS平台QQ音乐加密文件一键解密利器 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换结…

张小明 2026/1/10 16:49:51 网站建设