业务场景

营销人员从ERP中勾选已审核通过当未完成的采购通知单生成送货通知单,然后进行审核,送货通知单审核结束后,需要修改ERP的采购通知单的状态为{已审核}。

这里要注意的是:采购通知单在客户的ERP中,送货通知单在我们系统中,需要在我们系统去进行审核。

【实现思路:】

一.送货通知单需要获取到采购通知单的数据,但是采购通知单在客户的ERP中,那需要客户那边调我们的接口把json数据传到我们系统中的。

二.当送货通知单审核完成后,调用客户的接口修改ERP采购通知单的状态。

实现步骤

第一步:创建一张采购通知单和送货通知单,生成采购通知单和送货通知单的数据列表,在创建一个送货通知单的流程定义。因为我们没有客户的ERP那我们创建一张采购通知单进行模拟。

第二步:在采购通知单数据列表,自定义一个按钮,用于生成生成送货通知单,获取到选中的采购单数据和启动送货通知单。

切换到页面js函数,写按钮事件

  1. startFlow(){
  2. var rows=this.table.getSelectedRows();//选中一行数据
  3. //选中数据的状态判断
  4. if(rows[0].F_CGTZDJZT=='未完成'){
  5. var jsonObj= {
  6. //送货通知单的采购单明细获取采购通知单的数据
  7. "sub__cgdmx": []
  8. };
  9. var jsonAry=jsonObj.sub__cgdmx;
  10. for(var i=0;i<rows.length;i++){
  11. var obj=rows[i];
  12. var gys=JSON.stringify({value:obj.F_GYS,label:obj.F_GYS_NAME});
  13. var row= {
  14. "cgsqdh": obj.F_CGSQDH,"wlbm": obj.F_WLBM,"wlmc": obj.F_WLMC,"wlgg": obj.F_WLGG,"dw": obj.F_DW,"jhsl": obj.F_SL,"gys": gys,"cgy": obj.F_CGY_NAME,"jhdhrq": obj.F_JHDHRQ_display};
  15. jsonAry.push(row);
  16. };
  17. //绑定送货通知单的流程定义
  18. var data= {
  19. "defId":"1320922966273728513",
  20. "formData": jsonObj
  21. };
  22. //点击生成送货通知单按钮打开松江通知单单据
  23. var self_=this;
  24. this.open({
  25. component:'modules/bpm/core/BpmInstStart',
  26. curVm:this,
  27. max:true,
  28. title: '流程启动',
  29. data: data
  30. },function (action){
  31. if(action=='ok'){
  32. self_.onRefresh();
  33. }
  34. });
  35. }else {
  36. alert("该选中的数据已生成发货通知单");
  37. }
  38. }

效果:

第二步:当送货通知单审核结束后,需要修改采购通知单的状态,那我们到送货通知单流程中,在流程完成时触发一个事件,进行修改状态。

选择脚本,点击配置

  1. import com.alibaba.fastjson.JSONArray;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.redxun.common.utils.SpringUtil;
  4. import com.redxun.db.CommonDao;
  5. import com.alibaba.fastjson.JSON;
  6. CommonDao dao = SpringUtil.getBean(CommonDao.class);
  7. //拿到送货通知单的子表采购单明细
  8. JSONArray ary=fhtzd.sub__cgdmx;
  9. for(int i=0;i<ary.size();i++){
  10. JSONObject row = ary.getJSONObject(i);
  11. String wlbm=row.getString("wlbm");
  12. String cgtzdh=row.getString("cgtzdh");
  13. cgtzdh=JSON.parseObject(cgtzdh).getString("value");
  14. //根据采购申请单号去查询采购通知单的数据
  15. String selSql="SELECT ID_ FROM w_cgtzd WHERE F_CGSQDH='"+cgtzdh+"'";
  16. String orderId=(String)dao.queryOne("form",selSql);
  17. // 根据物料编号和采购单申请单号去修改采购通知单的物料明细的状态
  18. String sql="UPDATE w_wlmx set F_CGTZDJZT='正在审批' where REF_ID_='"+orderId+"' AND F_WLBH='"+wlbm+"'";
  19. dao.execute("form",sql);
  20. }

效果:

文档更新时间: 2021-01-12 11:25   作者:zhuyunyun