爱游戏

 
 注册成为天翎用户
热搜:
查看: 680|回复: 0

通过脚本修改当前节点审批人-爱游戏

[复制链接]
chain 发表于 2021-3-30 17:43:23 | |
常用场景:根据用户的情况,在表单中选择用户,将现在需要审批处理的节点,转给另一个用户进行审批。

参考脚本:
  1. (function(){
  2.         var doc = getcurrentdocument();
  3.         var userids = getwebuser().getid();
  4.         var user = doc.getitemvalueasstring("审批人"); //表单字段
  5.         var docprocess = getdocprocess(getapplication());  
  6.         var docids = splittext(user, ";");
  7.         var userlist = createobject("java.util.arraylist");
  8.         var list = new packages.java.util.arraylist();
  9.         for (var i = 0; i < docids.length; i ) {
  10.                 if(docids != null) {
  11.                         list.add(docids[i]);
  12.                 }
  13.         }

  14.         var params = getparamstable();
  15.         params.setparameter("auditorlist",list);
  16.         var currnodeid= "1617073756399"; //当前节点id
  17.         params.setparameter("_currid", currnodeid);
  18.         var actorjson = new packages.net.sf.json.jsonobject();

  19.         actorjson.put(currnodeid,list);
  20.         doc.setauditorlist(actorjson.tostring());

  21.         docprocess.dochangeauditor(doc,params,getwebuser());
  22. })();
复制代码
补充:
  1. /**
  2. * 批量更新当前流程节点审批人
  3. * @param docid
  4. *                         文档id
  5. * @param applicationid
  6. *                         软件id
  7. * @param content 请求包体
  8. * @return
  9. * @throws exception
  10. */
  11. @putmapping("/domain/workflow/approvers/batch")
  12. @responsestatus(httpstatus.ok)
  13. @apioperation(value = "批量更新当前流程节点审批人", notes = "批量更新当前流程节点审批人")
  14. @apiimplicitparams({
  15. @apiimplicitparam(name = "content",value = "请求包体",required = true,paramtype = "body",datatype = "string")
  16. })
  17. public resource batchuupdateapprovers(@requestbody string content) {
  18.         try {
  19.         jsonobject jsonobject = jsonobject.fromobject(content);
  20.         list userids = jsonobject.getjsonarray("userids");
  21.         jsonarray docs = jsonobject.getjsonarray("docs");
  22.         webuser user = webuser.getadminuser(request);

  23.         list errormsg = new arraylist();
  24.         int count = 0;
  25.         for(iterator iterator = docs.iterator();iterator.hasnext();){
  26.         try{
  27.                 jsonobject json = iterator.next();
  28.                 string docid = json.getstring("docid");
  29.                 string applicationid = json.getstring("applicationid");
  30.                 documentprocess process = (documentprocess)processfactory.createruntimeprocess(documentprocess.class, applicationid);
  31.                 document doc = (document)process.doview(docid);
  32.                 if(doc == null){
  33.                         count ;
  34.                         errormsg.add("第" count "条处理失败。原因:数据不存在!");
  35.                         continue;
  36.                 }
  37.                 var params = createparamstable();
  38.                 //paramstable params = new paramstable(getparams());
  39.                 params.setparameter("auditorlist", userids);

  40.                 flowstatert instance = doc.getstate();
  41.                 if(instance == null){
  42.                         count ;
  43.                         errormsg.add("第" count "条处理失败。原因:当前流程实例不存在!");
  44.                         continue;
  45.                 }
  46.                 nodert nodert = instance.getnoderts().iterator().next();
  47.                 if(nodert == null){
  48.                         count ;
  49.                         errormsg.add("第" count "条处理失败。原因:当前节点实例不存在!");
  50.                 }
  51.                 string currnodeid = nodert.getnodeid();

  52.                 jsonobject actorjson = new jsonobject();
  53.                 actorjson.put(currnodeid, userids);
  54.                 doc.setauditorlist(actorjson.tostring());
  55.                 params.setparameter("_currid", currnodeid);

  56.                 process.dochangeauditor(doc, params, user);
  57.                 doc.seteditableloaded(false);
  58.                 memorycacheutil.puttoprivatespace(doc.getid(), doc, user);
  59.                 count ;
  60.         } catch (exception e){
  61.                 count ;
  62.                 errormsg.add("第" count "条处理失败。");
  63.         }
  64.         }
  65.         if(errormsg.isempty()){
  66.                 return success("ok", null);
  67.         } else {
  68.                 return success("ok", errormsg);
  69.         }
  70.         } catch (exception e) {
  71.                 e.printstacktrace();
  72.                 return error(500, e.getmessage(), null);
  73.         }
  74. }
复制代码
您需要登录后才可以回帖 登录 | 注册成为天翎用户

本版积分规则

||爱游戏 ( )

gmt 8, 2023-9-30 12:47

powered by x3.4

爱游戏 copyright © 2001-2020, tencent cloud.

返回列表
网站地图