天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 3073|回复: 0

[常见问题] 【5.0】【定时任务】定时任务生成主子表单据

[复制链接]
Chain 发表于 2022-1-22 11:04:53 | 显示全部楼层 |阅读模式
业务场景:由用户自己的第三方系统发起订单,订单通过接口生成数据到中间表,而平台根据中间表的单号做匹配,没有的数据则在平台中生成。用定时任务的方法,每十分钟执行一次。

参考脚本如下
  1. #include"baselibrary";
  2. (function(){
  3.         /*因为定时任务是通过线程跑,所以获取不到平台封装的前端方法,只能用源生写法获取方法*/
  4.         /*企业域ID和软件ID可以将固定的ID值封装在函数库内调用,也可以直接写出来*/
  5.        
  6.         var domainid = "PfqrTkZ2khbjbU9w0Xc";
  7.         var applicationId = "__DPDtViiBoQ60PcmB7kY";  
  8.         var Process = getDocProcess(applicationId);
  9.        
  10.         var userProcess = createProcess("cn.myapps.authtime.user.service.UserProcess"); //获取用户业务处理类  
  11.         var userVo = userProcess.login("jmcadmin", domainid);
  12.         var user = new Packages.cn.myapps.base.web.WebUser(userVo);
  13.         var userId = user.getId();
  14.        
  15.         var formProcess = new Packages.cn.myapps.designtime.form.service.FormDesignTimeServiceImpl();        //4.4或5.0版本
  16.         var newForm = formProcess.doViewByFormName("MATERIAL_REQUISITION_FORM", applicationId);                 //创建零星领料单
  17.         var newForm2 = formProcess.doViewByFormName("MATERIAL_REQUISITION_DETAIL", applicationId);                 //创建零星领料单明细
  18.        
  19.            var docProcess = getDocProcess(applicationId);               
  20.            var params = createParamsTable();
  21.        
  22.         var sql = "SELECT t.*,'"+domainid+"' domainid from (SELECT ID as item_ID, CREDATE as item_credate, PICKINGNO as item_pickingno, ENGINEERSAP as item_engineersap, ENGINEERNAME as item_engineername, SOURCE as item_source, WAREHOUSE as item_warehouse, USE as item_use, ISRDCAR as item_isrdcar, NODE as item_node, TYPE as item_type, PROJECTNO as item_projectno, PROJECTNAME as item_projectname, PROJECTMANAGER as item_projectmanager, PICKINGTIME as item_pickingtime, ITEMS as item_items FROM  OFFICE_MATERIAL_REQUISITION where 1 = 1 and PICKINGNO not in(SELECT ITEM_PICKINGNO from tlk_MATERIAL_REQUISITION_FORM)) t";
  23.         var query = Process.queryBySQL(sql,domainid).datas;
  24.        
  25.         if(query!=null && query.size()>0){
  26.                    for(var iter = query.iterator();iter.hasNext();){
  27.                         var docs = iter.next();
  28.                         var jsonText = docs.getItemValueAsString("items");        //子表参数
  29.                        
  30.                            var newDoc = docProcess.doNew(newForm,user,params);                  
  31.                            var uuid = new Packages.cn.myapps.util.sequence.Sequence();               
  32.                            var uid = uuid.getSequence();                 
  33.                            var formid = "__mzIv2eGn3StLgBVGwOQ";                 
  34.                            var newDocid = uid + "--" + formid;                 
  35.       
  36.                            newDoc.setId(newDocid);         
  37.                            newDoc.setAuthor(userId);                                                   
  38.                            newDoc.setIstmp(false);
  39.                        
  40.                            newDoc.addStringItem("pickingNo",docs.getItemValueAsString("pickingno"));
  41.                         newDoc.addStringItem("SAP",docs.getItemValueAsString("engineersap"));
  42.                         newDoc.addDateItem("ApplyDate",docs.getItemValueAsDate("credate"));
  43.                         newDoc.addStringItem("Name",docs.getItemValueAsString("engineername"));
  44.                         newDoc.addStringItem("Source",docs.getItemValueAsString("source"));
  45.                         newDoc.addStringItem("Warehouse",docs.getItemValueAsString("warehouse"));
  46.                         newDoc.addStringItem("Purpose",docs.getItemValueAsString("use"));
  47.                         newDoc.addStringItem("IsWholeVehicle",docs.getItemValueAsString("ISRDCAR"));                       
  48.                         newDoc.addStringItem("Type",docs.getItemValueAsString("type"));

  49.                         newDoc.addStringItem("projectNo",docs.getItemValueAsString("projectno"));
  50.                         newDoc.addStringItem("projectName",docs.getItemValueAsString("projectname"));
  51.                         docProcess.doCreate(newDoc);
  52.                         if(jsonText!=""){
  53.                                 var jsonArray = new Packages.org.json.JSONArray(jsonText);  
  54.                                 for(var i = 0;i<jsonArray.length();i++){      
  55.                                         var jsonObject = jsonArray.getJSONObject(i);            
  56.                                         materialName = jsonObject.getString("materialName");

  57.                                         var newDoc2 = docProcess.doNew(newForm2,user,params);                  
  58.                                         var uuid2 = new Packages.cn.myapps.util.sequence.Sequence();               
  59.                                         var uid2 = uuid2.getSequence();                 
  60.                                         var formid2 = "__5ptSCIX9qwSCkPZHJ4v";

  61.                                         var newDocid2 = uid2 + "--" + formid2;                 

  62.                                         newDoc2.setId(newDocid2);
  63.                                         newDoc2.setParent(newDocid);
  64.                                         newDoc2.setAuthor(userId);                                                   
  65.                                         newDoc2.setIstmp(false);

  66.                                         newDoc2.addStringItem("materialName",jsonObject.getString("materialName"));
  67.                                         newDoc2.addStringItem("materialCode",jsonObject.getString("materialCode"));
  68.                                         newDoc2.addStringItem("unit",jsonObject.getString("unit"));
  69.                                         newDoc2.addDoubleItem("Demand",jsonObject.getDouble("quantity"));


  70.                                         var spType = jsonObject.getString("spType");                               
  71.                                         if(spType!=null||spType!=""){
  72.                                                 var Type ="spType";
  73.                                                 spType = getTrueValueByShowValue(spType,Type);
  74.                                         }

  75.                                         newDoc2.addStringItem("spType",spType);
  76.                                         newDoc2.addStringItem("Remarks",jsonObject.getString("remake"));
  77.                                         docProcess.doCreate(newDoc2);  
  78.                                 }   
  79.                         }
  80.                 }
  81.         }
  82. })();
复制代码


本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 04:00

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表