浏览代码

增加getSNListSql

zhangyao 4 月之前
父节点
当前提交
27c55700c4
共有 25 个文件被更改,包括 22237 次插入162 次删除
  1. 137 0
      aws7信息流修改/1.html
  2. 325 0
      aws7信息流修改/1.js
  3. 0 0
      aws7信息流修改/11111.js
  4. 二进制
      aws7信息流修改/com.actionsoft.apps.network-4.2.1.jar
  5. 7154 0
      aws7信息流修改/form-custom-extend.umd-2025年7月29日.js
  6. 7154 0
      aws7信息流修改/form-custom-extend.umd.js
  7. 0 0
      aws7信息流修改/form-custom-extend.umd原始版本.js
  8. 7154 0
      aws7信息流修改/form-custom-extend.umd版本1.js
  9. 9 0
      com.awspaas.user.apps.donenow_ctt/com.awspaas.user.apps.donenow_ctt.iml
  10. 二进制
      com.awspaas.user.apps.donenow_ctt/lib/com.awspaas.user.apps.donenow_ctt.jar
  11. 2 0
      com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/Plugins.java
  12. 44 0
      com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/at/getSNListSql.java
  13. 30 0
      com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/event/contractServiceFormAfterSave.java
  14. 1 1
      com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/event/costPickFormAfterSave.java
  15. 0 1
      com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/service/contractService.java
  16. 二进制
      com.awspaas.user.apps.donenow_ivt/lib/com.awspaas.user.apps.donenow_ivt.jar
  17. 二进制
      com.awspaas.user.apps.donenow_ivt/lib/com.awspaas.user.apps.donenow_ivt2.jar
  18. 二进制
      com.awspaas.user.apps.donenow_ivt/lib/donenow_ivt.jar
  19. 14 0
      com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/controller/ivtOrderController.java
  20. 160 158
      com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/event/DoWorkThread.java
  21. 43 0
      com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/event/ivtOrderFormAfter.java
  22. 1 1
      com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/utils/BigDecimalUtil.java
  23. 9 0
      com.awspaas.user.apps.donenow_sys/com.awspaas.user.apps.donenow_sys.iml
  24. 0 1
      com.awspaas.user.apps.donenow_sys/src/com/awspaas/user/apps/donenow_sys/controller/testController.java
  25. 二进制
      libs/dn_form_before_save.jar

+ 137 - 0
aws7信息流修改/1.html

@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+    <title>测试表单1</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="renderer" content="webkit">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <script>
+        var userZoneOffset = 8.0;
+    </script>
+    <style>
+        /* 表格样式 */
+        #dealPayTerms {
+            width: 100%;
+            border-collapse: collapse;
+            margin-top: 10px;
+        }
+
+        #dealPayTerms th,
+        #dealPayTerms td {
+            border: 0.1px solid gray;
+            padding: 8px;
+            text-align: left;
+        }
+
+        /* 最后一行加底边框 */
+        #dealPayTerms tr:last-child td {
+            border-bottom: 0.1px solid gray;
+        }
+    </style>
+    [#AWSImport]
+    [#AWSUIImport]
+    <link rel='stylesheet' id='schemeCss' href='../apps/_bpm.platform/css/colorschemes/scheme_1.css?v=1600408566515'
+        name='schemeCss' />
+
+    <link type='text/css' rel='stylesheet' id='themeCss' href='../apps/_bpm.platform/css/theme/theme.css'
+        name='themeCss' />
+</head>
+
+<body>
+    <form id="frmMain" name="frmMain" method="post">
+        <div id="aws-form-container" class="aws-form-ux-container" border="0">
+            <table id="aws-form-maintable" class="awsui-ux aws-form-ux-maintable" style="table-layout: auto;"
+                align="center" border="0" cellpadding="0" cellspacing="0">
+                <tbody>
+                    <tr id="aws-form-titlebg" class="aws-form-ux-titlebg">
+                        <td id="aws-form-title" class="aws-form-ux-header">测试表单1</td>
+                    </tr>
+                    <tr class="aws-form-ux-formcontent" id="aws-form-formcontent">
+                        <td>
+                            <table id="table_container" class="awsui-ux table-striped" style="padding: 0px;"
+                                width="100%" cellspacing="3" cellpadding="0">
+                                <colgroup>
+                                    <col class="awsui-ux-title" />
+                                    <col style="width: 100.0%;" />
+                                </colgroup>
+                                <tbody>
+                                    <tr id="dealPayTermsTR" style="display: none;">
+                                        <td colspan="2">
+                                            <span>付款方式信息:</span>
+                                            <table id="dealPayTerms" class="awsui-ux table-striped"
+                                                style="padding: 0px;" width="100%" cellspacing="0" cellpadding="0">
+                                                <colgroup>
+                                                    <col class="awsui-ux-title" />
+                                                    <col style="width: 20.0%;" />
+                                                    <col style="width: 20.0%;" />
+                                                    <col style="width: 25.0%;" />
+                                                    <col style="width: 25.0%;" />
+                                                </colgroup>
+                                                <tr>
+                                                    <th>序号</th>
+                                                    <th>中选供应商名称</th>
+                                                    <th>中选供应商编码</th>
+                                                    <th>现付款条件</th>
+                                                    <th>中选时付款条件</th>
+                                                </tr>
+                                                <tbody>
+
+                                                </tbody>
+
+                                            </table>
+                                        </td>
+                                    </tr>
+                                   
+                                </tbody>
+                            </table>
+                        </td>
+                    </tr>
+                    <tr class="aws-form-bottom">
+                        <td class="aws-form-ux-actionsoft">[#Actionsoft]</td>
+                    </tr>
+                </tbody>
+            </table>
+        </div>
+    </form>
+    <script id="formOnload">
+        function formOnload() {
+            try {
+                let dealPayTerms = '@sqlvalue(SELECT TEXTVALUE FROM wfc_var WHERE PROCESSINSTID='@processId' AND VARNAME='dealPayTerms')';
+                if (dealPayTerms && dealPayTerms != "") {
+                    let dealPayTermsJson = JSON.parse(dealPayTerms);
+                    if (dealPayTermsJson.length > 0) {
+                        document.getElementById("dealPayTermsTR").style.display = "table-row";
+                    }
+                    for (let i = 0; i < dealPayTermsJson.length; i++) {
+                        let row = dealPayTermsJson[i];
+                        let rowHtml = `
+                        <tr>
+                        <td>${row.num}</td>
+                        <td>${row.winSupplierName}</td>
+                        <td>${row.winSupplierCode}</td>
+                        <td>${row.currPayTerms ?? ""}</td>
+                        <td>${row.winPayTerms ?? ""}</td>
+                        </tr>
+                        `;
+                        // 将生成的行插入到表格中
+                        document.getElementById("dealPayTerms").querySelector("tbody").insertAdjacentHTML("beforeend", rowHtml);
+                    }
+                }
+
+            } catch (error) {
+                console.error("解析 dealPayTerms 时出错:", error);
+            }
+
+
+
+
+
+        }
+    </script>
+</body>
+
+</html>

+ 325 - 0
aws7信息流修改/1.js

@@ -0,0 +1,325 @@
+const iframe = document.querySelector('iframe#_5bc10dcb-965a-48b2-94a0-9816c4b5f37f');
+
+let udfForm = iframe.contentWindow.getUDFColumnData(this.ui("ID").getVal());
+
+console.log("udfForm", udfForm);
+
+//遍历对象
+for (let key in udfForm) {
+    this.ui(key).setVal(udfForm[key]);
+}
+
+iframe.contentWindow.saveUDF(this.ui("ID").getVal());
+;;
+
+
+
+const { ref } = DWApi.api.Vue;
+const dateValue = ref(new Date());
+
+let rowDatas = this.grid().getCheckedData();
+if (rowDatas.length == 0) {
+    this.feedback.msg("请选择要提交的数据!", "info");
+    return;
+}
+this.feedback.dialog({
+    title: "输入提交日期",
+    extendParams: { width: "300px" },
+    contextRender: ({ h, resolve }) => {
+        return [
+            h(resolve("ElDatePicker"), {
+                modelValue: dateValue.value,
+                'onUpdate:modelValue': value => dateValue.value = value,
+                type: "date", // 关键配置:启用日期输入
+                format: "YYYY-MM-DD", // 显示格式(可选)
+                valueFormat: "YYYY-MM-DD", // 绑定值格式(可选)
+            }),
+        ]
+    },
+    buttons: [{
+        text: "审批并提交", click: () => {
+
+            DWApi.api.awsuiaxios.post({
+                url: "jd",
+                data: {
+                    cmd: 'com.awspaas.user.apps.donenow_ctt.approve_service',
+                    approveDate: dateValue.value,
+                    approveIds: rowDatas.map((item) => item.ID).join(',')//逗号分割
+                }
+            }).then((r) => {
+                console.log("获取到的数据:", r)
+                this.feedback.msg("提交成功!", "info");
+
+                DWApi.behavior.closeDialog()
+            });
+
+        }, type: "primary"
+    }]
+})
+
+
+let rowDatas = this.grid().getCheckedData();
+if (rowDatas.length != 1) {
+    this.feedback.msg("请选择要修改的数据,只允许选择一条!", "info");
+    return;
+}
+let rowData = rowDatas[0];
+const { ref } = DWApi.api.Vue;
+const nameValue = ref("");
+const priceValue = ref("");
+
+nameValue.value = "合同名称:" + rowData.CONTRACT_NAME;
+priceValue.value = rowData.DOLLARS;
+
+this.feedback.dialog({
+    title: "合同价格调整",
+    extendParams: { width: "500px" },
+    contextRender: ({ h, resolve }) => {
+        return [
+            h("span", { innerText: nameValue.value }),
+            h("br"),
+            h("span", { innerText: "调整后总价:*" }),
+            h(resolve("ElInput"), {
+                modelValue: priceValue.value,
+                'onUpdate:modelValue': (value) => {
+                    // 只允许输入数字
+                    const validValue = value.replace(/[^0-9.]/g, '');
+                    priceValue.value = validValue;
+                }
+            }),
+            h("br")
+        ];
+    },
+    buttons: [
+        {
+            text: "保存并关闭",
+            click: () => {
+                DWApi.api.awsuiaxios.post({
+                    url: "jd",
+                    data: {
+                        cmd: 'com.awspaas.user.apps.donenow_ctt.approve_updateExtendedPrice',
+                        id: rowData.ID,
+                        periodPrice: priceValue.value,//逗号分割
+                    }
+                }).then((r) => {
+                    console.log("获取到的数据:", r)
+                    this.feedback.msg("提交成功!", "info");
+                    DWApi.behavior.closeDialog()
+                });
+            },
+            type: "primary"
+        },
+        {
+            text: "取消",
+            click: () => {
+                DWApi.behavior.closeDialog();
+            },
+            type: "default"
+        }
+    ]
+});
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+console.log('加载事件', eventContext)
+console.log("树形选择", parent.DWApi.searcherCondition.tree.qk);
+
+if (!parent.DWApi.searcherCondition.treeSelectToForm) {
+    parent.DWApi.searcherCondition.treeSelectToForm = new Array();
+    parent.DWApi.searcherCondition.treeSelectToForm.push(this.ui("CATE_ID"));
+}
+
+let treeSelect = parent.DWApi.searcherCondition.tree.qk[0].ConditionValue;
+let sql1 = "sqlValue(select NAME from BO_EU_DNIVT_PRODUCT_CATE where NO='" + treeSelect + "')";
+sql1 = "@" + sql1;
+this.api.executeAtScript(sql1).then(r => {
+    console.log(treeSelect, r);
+    this.ui("CATE_ID").setVal(treeSelect, r);
+});
+
+
+
+
+
+const { instance, DWApi, data, treeNode, treeConfig } = eventContext;
+if (treeNode.level > 2) {
+    //子节点无特殊需求可以直接返回
+    return true;
+}
+const array = new Array();//条件组织多个
+//默认数据
+let field = treeConfig.conditioncolumn;
+const Compare = '=', valtype = '文本', value = data.value;
+if (treeNode.level == '1') {
+    //root节点是组名称一个组可能有多个事件配置多个事件加强以第一个为准
+    field = 'NAME';//需要指出新的条件
+}
+if (treeNode.level == '2') {
+    //如果需要查询必须写查询方法,此节点是标题名称
+    //此处无特殊需求可以不做处理
+}
+
+
+if (DWApi.searcherCondition.treeSelectToForm) {
+    for (let i = 0; i < DWApi.searcherCondition.treeSelectToForm.length; i++) {
+        DWApi.searcherCondition.treeSelectToForm[i].setVal(data.value, data.text);
+    }
+}
+
+
+array.push({
+    'Field': field,
+    'Type': valtype,
+    'Compare': Compare,
+    'ConditionValue': value,
+});
+this.searcherCondition.tree.qk = array;
+this.data.refreshData();
+console.log("-----instance-------");
+console.log(instance);
+console.log("----DWApi--------");
+console.log(DWApi);
+
+
+return false;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+const { instance, DWApi, data, treeNode, treeConfig } = eventContext;
+
+console.log("----data--------");
+console.log(data);
+
+if (DWApi.searcherCondition.treeSelectToForm) {
+    for (let i = 0; i < DWApi.searcherCondition.treeSelectToForm.length; i++) {
+        DWApi.searcherCondition.treeSelectToForm[i].setVal(data.value, data.label);
+    }
+}
+
+const array = new Array();//条件组织多个
+//默认数据
+let field = treeConfig.conditioncolumn;
+const Compare = '=', valtype = '文本', value = data.value;
+array.push({
+    'Field': field,
+    'Type': valtype,
+    'Compare': Compare,
+    'ConditionValue': value,
+});
+this.searcherCondition.tree.qk = array;
+
+console.log("----searcherCondition--------");
+console.log(array);
+
+this.data.refreshData();
+return false;
+
+
+
+window.addEventListener("storage", (e) => {
+    let nowTime = new Date().getTime();
+    if(e.key == "初审机构户籍申请" && nowTime - e.newValue < 2000) {
+      delete localStorage['初审机构户籍申请'];
+      // setTimeout(() => {
+      // 	reloadGridData();
+      // },500);
+      location.reload();
+    }
+  })
+  
+    var ATUI = {
+          exceat: function (at, sid) {
+              var re = "";
+              at = at.replace(/##/g, "@");
+              var data = "script=" + encodeURIComponent(at) + ((sid == '' || sid == null || sid == undefined || sid.indexOf("#sid") > 0) ? "" : "&sid=" + sid);
+              awsui.ajax.request({
+                  type: "POST",
+                  url: "../r/jd?cmd=com.awspaas.user.apps.magicportal_expression",
+                  data: data,
+                  async: false,
+                  ok: function (res) {
+                      re = res.data.data;
+                  }
+              });
+              return re;
+          },
+          getUrlParam: function (paraName, url) {
+              var arrObj = url.split("?");
+              if (arrObj.length > 1) {
+                  var arrPara = arrObj[1].split("&");
+                  var key;
+                  for (var i = 0; i < arrPara.length; i++) {
+                      var t = arrPara[i].indexOf("=");
+                      if (t > -1) {
+                          key = arrPara[i].substring(0, t);
+                          if (key == paraName) {
+                              return arrPara[i].substring(t + 1);
+                          }
+                      }
+                  }
+                  return "";
+              } else {
+                  return "";
+              }
+          },
+          getCookie: function (name) {
+              var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
+              if (arr = document.cookie.match(reg)) {
+                  return unescape(arr[2]);
+              }
+              else {
+                  return null;
+              }
+          }
+      }
+      
+      var XXDJ ="";
+      var GLDW =""; 
+      awsui.ajax.request({
+          type: "POST",
+          url: "../r/jd?cmd=com.awspaas.user.apps.settle2_sqlvXxdjxx&sid=ck",
+        data:{},
+          async: false,
+          success: function (res) {
+             console.log(res)
+              XXDJ = res.data.XXDJ2;
+              GLDW = res.data.GLDW;
+          }
+      });
+
+  
+  let QYXX = "<br />3、";
+      if (XXDJ == "") {
+          QYXX = QYXX + "当前政策年没有注册。";
+      } else {
+          QYXX = QYXX + XXDJ;
+          if (GLDW != "")
+              QYXX = QYXX + "," + GLDW;
+          QYXX += "。";
+      }
+  $("#searchertoolbar>.searcherTile").before('<div style="color:red !important;font-weight:bold;padding-left:10px">说明:<br />1、本单位人事管理部门派人事专员携带身份证及单位介绍信来递交相关纸质材料;<br />2、所有填写内容以书面递交材料为准;'+QYXX+'</div>')
+  $("#toolDiv").after('<style>#firstmainid{height:calc(100% - 70px)!important;}</style><span style="color:red !important;font-weight:bold;padding-left:10px;line-height:26px;float:left;">若查询最新户籍申请状态,请前往户籍受理查询。</span>')
+  resizeDwGrid()

+ 0 - 0
aws7信息流修改/11111.js


二进制
aws7信息流修改/com.actionsoft.apps.network-4.2.1.jar


文件差异内容过多而无法显示
+ 7154 - 0
aws7信息流修改/form-custom-extend.umd-2025年7月29日.js


文件差异内容过多而无法显示
+ 7154 - 0
aws7信息流修改/form-custom-extend.umd.js


文件差异内容过多而无法显示
+ 0 - 0
aws7信息流修改/form-custom-extend.umd原始版本.js


文件差异内容过多而无法显示
+ 7154 - 0
aws7信息流修改/form-custom-extend.umd版本1.js


+ 9 - 0
com.awspaas.user.apps.donenow_ctt/com.awspaas.user.apps.donenow_ctt.iml

@@ -8,5 +8,14 @@
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" name="aws_lib" level="project" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../libs/dn_form_before_save.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
   </component>
 </module>

二进制
com.awspaas.user.apps.donenow_ctt/lib/com.awspaas.user.apps.donenow_ctt.jar


+ 2 - 0
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/Plugins.java

@@ -22,6 +22,8 @@ public class Plugins implements PluginListener {
                 "通过boId获取流程实例Id", "通过boId获取流程实例Id"));
         list.add(new AtFormulaPluginProfile("数据库", "@getFormField(*boName,*fieldName,*boIdOrBindid)", getFormField.class.getName(),
                 "获取表单字段数据", "获取表单字段数据"));
+        list.add(new AtFormulaPluginProfile("数据库", "@getSNListSql(*sql)", getFormField.class.getName(),
+                "把输入的逗号分割sn字符串转换成SQL", "sql:查询语句或者字符串"));
         return list;
     }
 }

+ 44 - 0
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/at/getSNListSql.java

@@ -0,0 +1,44 @@
+package com.awspaas.user.apps.donenow_ctt.at;
+
+import com.actionsoft.bpms.commons.at.AbstExpression;
+import com.actionsoft.bpms.commons.at.ExpressionContext;
+import com.actionsoft.exception.AWSExpressionException;
+import com.actionsoft.sdk.local.SDK;
+
+public class getSNListSql extends AbstExpression {
+    public getSNListSql(ExpressionContext atContext, String expressionValue) {
+        super(atContext, expressionValue);
+    }
+
+    /**
+     *把输入的SN列表转换成SQL
+     * @param s
+     * @return
+     * @throws AWSExpressionException
+     */
+    @Override
+    public String execute(String s) throws AWSExpressionException {
+        String sns = getParameter(s, 1).trim();
+
+        if ((sns.startsWith("select") || sns.startsWith("SELECT")) == false)
+            throw new AWSExpressionException("请输入正确的SQL语句!");
+        //需要对sql加一些校验,避免sql注入攻击
+        if (sns.contains(";") || sns.contains("--") || sns.contains("/*") || sns.contains("*/"))
+            throw new AWSExpressionException("请输入正确的SQL语句!");
+        sns = SDK.getRuleAPI().executeAtScript("@sqlValue(" + sns + ")", getExpressionContext().getUserContext());
+
+        System.out.println("产品序列号:" + sns);
+        String snSql = null;
+        int i = 0;
+        for (String sn : sns.split(",")) {
+            if (i == 0) {
+                snSql = "SELECT '" + sn + "' AS sn";
+            } else {
+                snSql += " UNION SELECT '" + sn + "' AS sn";
+
+            }
+            i++;
+        }
+        return snSql;
+    }
+}

+ 30 - 0
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/event/contractServiceFormAfterSave.java

@@ -0,0 +1,30 @@
+package com.awspaas.user.apps.donenow_ctt.event;
+
+import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
+import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener;
+import com.actionsoft.bpms.bpmn.engine.listener.ListenerConst;
+
+public class contractServiceFormAfterSave extends ExecuteListener {
+    public String getDescription() {
+        return "合同服务表单保存后的事件--增加一条合同产品";
+    }
+
+    /**
+     *执行
+     * @param param
+     * @throws Exception
+     */
+    @Override
+    public void execute(ProcessExecutionContext param) throws Exception {
+        String boId = param.getParameterOfString(ListenerConst.FORM_EVENT_PARAM_BOID);
+        //表单ID
+        String formId = param.getParameterOfString(ListenerConst.FORM_EVENT_PARAM_FORMID);
+        //BO表名
+        String boName = param.getParameterOfString(ListenerConst.FORM_EVENT_PARAM_BONAME);
+
+
+
+
+
+    }
+}

+ 1 - 1
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/event/costPickFormAfterSave.java

@@ -17,7 +17,7 @@ public class costPickFormAfterSave extends ExecuteListener {
     }
 
     /**
-     *
+     *拣货
      * @param processExecutionContext
      * @throws Exception
      */

+ 0 - 1
com.awspaas.user.apps.donenow_ctt/src/com/awspaas/user/apps/donenow_ctt/service/contractService.java

@@ -8,7 +8,6 @@ import com.actionsoft.bpms.util.DBSql;
 import com.actionsoft.sdk.local.SDK;
 import com.actionsoft.sdk.local.api.Logger;
 import com.awspaas.user.apps.donenow_ctt.cttConstant;
-import com.ibm.icu.util.Calendar;
 import org.apache.commons.lang3.StringUtils;
 
 import java.math.BigDecimal;

二进制
com.awspaas.user.apps.donenow_ivt/lib/com.awspaas.user.apps.donenow_ivt.jar


二进制
com.awspaas.user.apps.donenow_ivt/lib/com.awspaas.user.apps.donenow_ivt2.jar


二进制
com.awspaas.user.apps.donenow_ivt/lib/donenow_ivt.jar


+ 14 - 0
com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/controller/ivtOrderController.java

@@ -189,6 +189,10 @@ public class ivtOrderController {
                 if (DBSql.getInt("select count(1) from bo_eu_dnctt_contract_cost_product where contract_cost_id=? and status_id<>2159", new Object[]{pdtMap.getString("CONTRACT_COST_ID")}) == 0) {
                     // 产品全部已配送,修改成本状态
                     costBO.set("STATUS_ID", "1237");// 已配送
+
+                    //需要更新上面的成本UNIT_COST  ESTIMATED_COST :产品来源于采购---从采购单获取,成本取自采购单;库存拣货,成本取自库存产品
+
+
                     SDK.getBOAPI().update("BO_EU_DNCTT_CONTRACT_COST", costBO, conn);
                 }
 
@@ -622,6 +626,16 @@ public class ivtOrderController {
                 purchaseOrderProduct.set("ORDER_ID", purchaseOrder.getId());
 
                 SDK.getBOAPI().createDataBO("BO_EU_DNIVT_ORDER_PRODUCT", purchaseOrderProduct, uc, conn);
+
+
+                //提交采购订单添加成本产品
+                BO costProduct = new BO();
+                costProduct.setBindId(cost.getString("BINDID"));
+                costProduct.set("ORDER_ID", purchaseOrder.getId());
+                costProduct.set("CONTRACT_COST_ID", cost.getString("ID"));
+                costProduct.set("STATUS_ID", "2156");//采购中
+                costProduct.set("QUANTITY", cost.getString("QUANTITY"));
+                SDK.getBOAPI().createDataBO("BO_EU_DNCTT_CONTRACT_COST_PRODUCT", costProduct, uc, conn);
             }
 
 

+ 160 - 158
com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/event/DoWorkThread.java

@@ -1,12 +1,5 @@
 package com.awspaas.user.apps.donenow_ivt.event;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.lang3.StringUtils;
-
 import com.actionsoft.bpms.bo.engine.BO;
 import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
 import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance;
@@ -17,160 +10,169 @@ import com.actionsoft.bpms.util.UUIDGener;
 import com.actionsoft.sdk.local.SDK;
 import com.awspaas.user.apps.donenow_ivt.constant.IVTConstant;
 import com.awspaas.user.apps.donenow_ivt.utils.BigDecimalUtil;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Date;
+import java.util.List;
 
 public class DoWorkThread extends Thread {
-	 private ProcessExecutionContext process; 
-	    //有参构造方法
-	    public DoWorkThread(ProcessExecutionContext process){
-	        this.process = process;
-	    }
-	    
-	    public void run() {
-	    	System.out.println("======================多线程开始分割线====================================");
-	    	doWork(process); 
-	    }
-	    
-	    public String doWork(ProcessExecutionContext process) {
-
-			 UserContext uc = process.getUserContext();
-			 BO formData = process.getFormData();
-			 String boName = process.getParameterOfString("$BONAME");
-				 
-			 
-			 //采购接收主表保存
-			 if(IVTConstant.BO_EU_DNIVT_RECEIVE_MAIN.equals(boName)) {
-			 String bindId=process.getProcessInstance().getId();
-			 List<BO> list = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_RECEIVE_SUB).bindId(bindId).list();
-			 
-			 //循环开始
-			 for(BO bo:list) {
-				RowMap rowMap = DBSql.getMap("select ORDER_PRODUCT_ID,sum(QUANTITY_RECEIVED) QUANTITY_RECEIVED from BO_EU_DNIVT_RECEIVE WHERE  ORDER_PRODUCT_ID=? group by ORDER_PRODUCT_ID", new Object[] {bo.getString("ORDER_PRODUCT_ID")});
-				BO receiveBo=new BO();
-				receiveBo.set("ORDER_PRODUCT_ID", bo.get("ORDER_PRODUCT_ID"));
-				receiveBo.set("QUANTITY_RECEIVED", bo.getString("BEN_RECEIVE"));
-				String sub = BigDecimalUtil.sub(bo.getString("QUANTITY"), bo.getString("BEN_RECEIVE"),(null==rowMap?"0":rowMap.getString("QUANTITY_RECEIVED")));
-				receiveBo.set("QUANTITY_BACKORDERED",sub);
-				receiveBo.set("UNIT_COST", bo.get("UNIT_COST"));
-				receiveBo.set("EXPORTED_TIME", new Date());
-				receiveBo.set("RECEIVE_BY_ID", uc.getUID());
-			    ProcessInstance createBOProcessInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_60c43c56593d42108be36f3aa8d3f8a2, uc.getUID(), "");
-			    receiveBo.setBindId(createBOProcessInstance.getId());
-			    SDK.getBOAPI().createDataBO(IVTConstant.BO_EU_DNIVT_RECEIVE, receiveBo, uc);
-			    
-			    
-			    //更新产品的库存
-			    List<BO> wareHouseList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT).addQuery("WAREHOUSE_ID=", bo.getString("WAREHOUSE_ID")).addQuery("PRODUCT_ID=", bo.getString("PRODUCT_ID")).list();
-			    if(wareHouseList.size()>0) {
-			    	for(BO wareHouseBo:wareHouseList) {
-				    	String add = BigDecimalUtil.add(wareHouseBo.getString("QUANTITY"), bo.getString("BEN_RECEIVE"));
-				    	wareHouseBo.set("QUANTITY", add);
-				    	SDK.getBOAPI().update(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT, wareHouseBo);
-				    }
-			    }else{
-				    ProcessInstance wareBOProcessInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_41f06b1e807647db8a69dd10d4be5764, uc.getUID(), "");
-				    BO wareHouseBo=new BO();
-				    wareHouseBo.setBindId(wareBOProcessInstance.getId());
-				    wareHouseBo.set("QUANTITY", bo.getString("BEN_RECEIVE"));
-				    wareHouseBo.set("PRODUCT_ID", bo.getString("PRODUCT_ID"));
-				    wareHouseBo.set("WAREHOUSE_ID", bo.getString("WAREHOUSE_ID"));
-				    wareHouseBo.set("QUANTITY_MINIMUM", 0);
-				    wareHouseBo.set("QUANTITY_MAXIMUM", 0);
-				    SDK.getBOAPI().create(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT, wareHouseBo, wareBOProcessInstance, uc);
-			    }
-			    
-			    
-			    //更新成本信息
-			    if(StringUtils.isNotBlank(bo.getString("CONTRACT_COST_ID"))) {
-			    	//根据采购项上的CONTRACT_COST_ID查找对应的成本
-				    RowMap receiveMap = DBSql.getMap("select ORDER_PRODUCT_ID,sum(QUANTITY_RECEIVED) QUANTITY_RECEIVED from BO_EU_DNIVT_RECEIVE WHERE  ORDER_PRODUCT_ID=? group by ORDER_PRODUCT_ID", new Object[] {bo.getString("ORDER_PRODUCT_ID")});
-
-			    	BO CONTRACT_COST_Detail = SDK.getBOAPI().query(IVTConstant.BO_EU_DNCTT_CONTRACT_COST).detailById(bo.getString("CONTRACT_COST_ID"));
-			    	if(null!=CONTRACT_COST_Detail) {
-			    	//根据成本ID找到对应的所有成本产品	
-			    	List<BO> costProductList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT).addQuery("CONTRACT_COST_ID=", CONTRACT_COST_Detail.getId()).list();
-			    	//判断成本是否是采购中状态
-			    	String BEN_RECEIVE = BigDecimalUtil.isNull(bo.getString("BEN_RECEIVE"));
-			    	int intBenReceive = Integer.valueOf(BEN_RECEIVE).intValue();
-			    	
-			    	//采购接收
-			    	if(intBenReceive>0) {
-			    	for(BO costProductBo:costProductList) {
-			    		//采购中
-			    		if(IVTConstant.STATUS_1235.equals(costProductBo.getString("STATUS_ID"))) {
-			    			String QUANTITY = BigDecimalUtil.isNull(costProductBo.getString("QUANTITY"));
-				    		
-				    		int intQuantity = Integer.valueOf(QUANTITY).intValue();
-				    		
-				    		//待配送
-				    		if(intQuantity==intBenReceive) {
-				    			costProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);
-				    			SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, costProductBo);
-				    		}else if(intBenReceive<intQuantity) {
-				    			costProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);
-				    			costProductBo.set("QUANTITY", intBenReceive);
-				    			SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, costProductBo);
-				    			
-				    			//将剩余的数量生成一条新的成本产品,状态为采购中
-				    			BO newCostProductBo=new BO();
-				    			newCostProductBo.setAll(costProductBo.asMap());
-				    			//IVTConstant.obj_6bc913271069455abbd516c556b26d31
-							    ProcessInstance processInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_6bc913271069455abbd516c556b26d31, uc.getUID(), "");
-							    newCostProductBo.setBindId(processInstance.getId());
-							    newCostProductBo.set("QUANTITY", intQuantity-intBenReceive);
-							    newCostProductBo.setId(UUIDGener.getUUID());
-				    			costProductBo.set("STATUS_ID", IVTConstant.STATUS_1235);
-							    SDK.getBOAPI().create(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, newCostProductBo, processInstance, uc);
-							    
-				    		}
-			    		}
-			    		
-			    	  }
-			    	}
-			    	//采购接收取消
-			    	else if(intBenReceive<0) {
-			    		
-			    		for(BO costProductBo:costProductList) {
-			    			//如果存在采购中的成本产品,将取消数量加到采购数量中
+    private ProcessExecutionContext process;
+
+    //有参构造方法
+    public DoWorkThread(ProcessExecutionContext process) {
+        this.process = process;
+    }
+
+    public void run() {
+        System.out.println("======================多线程开始分割线====================================");
+        doWork(process);
+    }
+
+    public String doWork(ProcessExecutionContext process) {
+
+        UserContext uc = process.getUserContext();
+        BO formData = process.getFormData();
+        String boName = process.getParameterOfString("$BONAME");
+
+
+        //采购接收主表保存
+        if (IVTConstant.BO_EU_DNIVT_RECEIVE_MAIN.equals(boName)) {
+            String bindId = process.getProcessInstance().getId();
+            List<BO> list = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_RECEIVE_SUB).bindId(bindId).list();
+
+            //循环开始
+            for (BO bo : list) {
+                RowMap rowMap = DBSql.getMap("select ORDER_PRODUCT_ID,sum(QUANTITY_RECEIVED) QUANTITY_RECEIVED from BO_EU_DNIVT_RECEIVE WHERE  ORDER_PRODUCT_ID=? group by ORDER_PRODUCT_ID", new Object[]{bo.getString("ORDER_PRODUCT_ID")});
+                BO receiveBo = new BO();
+                receiveBo.set("ORDER_PRODUCT_ID", bo.get("ORDER_PRODUCT_ID"));
+                receiveBo.set("QUANTITY_RECEIVED", bo.getString("BEN_RECEIVE"));
+                String sub = BigDecimalUtil.sub(bo.getString("QUANTITY"), bo.getString("BEN_RECEIVE"), (null == rowMap ? "0" : rowMap.getString("QUANTITY_RECEIVED")));
+                receiveBo.set("QUANTITY_BACKORDERED", sub);
+                receiveBo.set("UNIT_COST", bo.get("UNIT_COST"));
+                receiveBo.set("EXPORTED_TIME", new Date());
+                receiveBo.set("RECEIVE_BY_ID", uc.getUID());
+                ProcessInstance createBOProcessInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_60c43c56593d42108be36f3aa8d3f8a2, uc.getUID(), "");
+                receiveBo.setBindId(createBOProcessInstance.getId());
+                SDK.getBOAPI().createDataBO(IVTConstant.BO_EU_DNIVT_RECEIVE, receiveBo, uc);
+
+
+                //更新产品的库存
+                List<BO> wareHouseList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT).addQuery("WAREHOUSE_ID=", bo.getString("WAREHOUSE_ID")).addQuery("PRODUCT_ID=", bo.getString("PRODUCT_ID")).list();
+                if (wareHouseList.size() > 0) {
+                    for (BO wareHouseBo : wareHouseList) {
+                        String add = BigDecimalUtil.add(wareHouseBo.getString("QUANTITY"), bo.getString("BEN_RECEIVE"));
+                        wareHouseBo.set("QUANTITY", add);
+                        SDK.getBOAPI().update(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT, wareHouseBo);
+                    }
+                } else {
+                    ProcessInstance wareBOProcessInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_41f06b1e807647db8a69dd10d4be5764, uc.getUID(), "");
+                    BO wareHouseBo = new BO();
+                    wareHouseBo.setBindId(wareBOProcessInstance.getId());
+                    wareHouseBo.set("QUANTITY", bo.getString("BEN_RECEIVE"));
+                    wareHouseBo.set("PRODUCT_ID", bo.getString("PRODUCT_ID"));
+                    wareHouseBo.set("WAREHOUSE_ID", bo.getString("WAREHOUSE_ID"));
+                    wareHouseBo.set("QUANTITY_MINIMUM", 0);
+                    wareHouseBo.set("QUANTITY_MAXIMUM", 0);
+                    SDK.getBOAPI().create(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT, wareHouseBo, wareBOProcessInstance, uc);
+                }
+
+
+                //更新成本信息
+                if (StringUtils.isNotBlank(bo.getString("CONTRACT_COST_ID"))) {
+                    //根据采购项上的CONTRACT_COST_ID查找对应的成本
+                    RowMap receiveMap = DBSql.getMap("select ORDER_PRODUCT_ID,sum(QUANTITY_RECEIVED) QUANTITY_RECEIVED from BO_EU_DNIVT_RECEIVE WHERE  ORDER_PRODUCT_ID=? group by ORDER_PRODUCT_ID", new Object[]{bo.getString("ORDER_PRODUCT_ID")});
+
+                    BO CONTRACT_COST_Detail = SDK.getBOAPI().query(IVTConstant.BO_EU_DNCTT_CONTRACT_COST).detailById(bo.getString("CONTRACT_COST_ID"));
+                    if (null != CONTRACT_COST_Detail) {
+                        //根据成本ID找到对应的所有成本产品
+                        List<BO> costProductList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT).addQuery("CONTRACT_COST_ID=", CONTRACT_COST_Detail.getId()).list();
+                        //判断成本是否是采购中状态
+                        String BEN_RECEIVE = BigDecimalUtil.isNull(bo.getString("BEN_RECEIVE"));
+                        int intBenReceive = Integer.valueOf(BEN_RECEIVE).intValue();
+
+                        //采购接收
+                        if (intBenReceive > 0) {
+                            for (BO costProductBo : costProductList) {
+                                //采购中
+                                if (IVTConstant.STATUS_1235.equals(costProductBo.getString("STATUS_ID"))) {
+                                    String QUANTITY = BigDecimalUtil.isNull(costProductBo.getString("QUANTITY"));
+
+                                    int intQuantity = Integer.valueOf(QUANTITY).intValue();
+
+                                    //待配送
+                                    if (intQuantity == intBenReceive) {
+                                        costProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);
+                                        SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, costProductBo);
+                                    } else if (intBenReceive < intQuantity) {
+                                        costProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);
+                                        costProductBo.set("QUANTITY", intBenReceive);
+                                        SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, costProductBo);
+
+                                        //将剩余的数量生成一条新的成本产品,状态为采购中
+                                        BO newCostProductBo = new BO();
+                                        newCostProductBo.setAll(costProductBo.asMap());
+                                        //IVTConstant.obj_6bc913271069455abbd516c556b26d31
+                                        ProcessInstance processInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_6bc913271069455abbd516c556b26d31, uc.getUID(), "");
+                                        newCostProductBo.setBindId(processInstance.getId());
+                                        newCostProductBo.set("QUANTITY", intQuantity - intBenReceive);
+                                        newCostProductBo.setId(UUIDGener.getUUID());
+                                        costProductBo.set("STATUS_ID", IVTConstant.STATUS_1235);
+                                        SDK.getBOAPI().create(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, newCostProductBo, processInstance, uc);
+
+                                    }
+                                }
+
+                            }
+                        }
+                        //采购接收取消
+                        else if (intBenReceive < 0) {
+
+                            for (BO costProductBo : costProductList) {
+                                //如果存在采购中的成本产品,将取消数量加到采购数量中
 //			    			if() {
 //			    				
 //			    			}
-			    			
-			    			
-			    			
-			    		}
-			    		
-			    	}
-			      }
-			    }
-			 }
-			 //循环结束
-			 
-			
-			 //更改采购项状态为全部接收、部门接收、已提交
-			String orderBindId=DBSql.getString("SELECT BINDID FROM "+IVTConstant.BO_EU_DNIVT_ORDER_PRODUCT+" WHERE ID='"+list.get(0).getString("ORDER_PRODUCT_ID")+"')");
-			List<BO> orderProductList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_ORDER_PRODUCT).bindId(orderBindId).list();
-			int count=0;
-			for(BO bo:orderProductList) {
-				 RowMap map = DBSql.getMap("select ORDER_PRODUCT_ID,sum(QUANTITY_RECEIVED) QUANTITY_RECEIVED from BO_EU_DNIVT_RECEIVE WHERE  ORDER_PRODUCT_ID=? group by ORDER_PRODUCT_ID", new Object[] {bo.getString("ID")});
-				 //采购项总共接收数量
-				 int QUANTITY_RECEIVED = map.getInt("QUANTITY_RECEIVED");
-				 //采购项数量
-				 int QUANTITY=Integer.valueOf(BigDecimalUtil.isNull(bo.getString("QUANTITY"))).intValue();
-				 if(QUANTITY_RECEIVED==QUANTITY) {
-					 count++;
-				 }
-			}
-			 if(count==orderProductList.size()&&count>0) {
-				 DBSql.update("UPDATE "+IVTConstant.BO_EU_DNIVT_ORDER+" SET STATUS_ID="+IVTConstant.STATUS_2150+" WHERE BINDID='"+orderBindId+"'");
-			   }else if(count>0) {
-			     DBSql.update("UPDATE "+IVTConstant.BO_EU_DNIVT_ORDER+" SET STATUS_ID="+IVTConstant.STATUS_2149+" WHERE BINDID='"+orderBindId+"'");
-			   }else  {
-				 DBSql.update("UPDATE "+IVTConstant.BO_EU_DNIVT_ORDER+" SET STATUS_ID="+IVTConstant.STATUS_2148+" WHERE BINDID='"+orderBindId+"'");
-			   }
-			 }
-			 
-			 
-			 
-	    	return "";
-	    }
+
+
+                            }
+
+                        }
+                    }
+                }
+            }
+            //循环结束
+
+
+            //更改采购项状态为全部接收、部门接收、已提交
+            String orderBindId = DBSql.getString("SELECT BINDID FROM " + IVTConstant.BO_EU_DNIVT_ORDER_PRODUCT + " WHERE ID='" + list.get(0).getString("ORDER_PRODUCT_ID") + "')");
+            List<BO> orderProductList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_ORDER_PRODUCT).bindId(orderBindId).list();
+            int count = 0;
+            for (BO bo : orderProductList) {
+                RowMap map = DBSql.getMap("select ORDER_PRODUCT_ID,sum(QUANTITY_RECEIVED) QUANTITY_RECEIVED from BO_EU_DNIVT_RECEIVE WHERE  ORDER_PRODUCT_ID=? group by ORDER_PRODUCT_ID", new Object[]{bo.getString("ID")});
+                //采购项总共接收数量
+                int QUANTITY_RECEIVED = map.getInt("QUANTITY_RECEIVED");
+                //采购项数量
+                int QUANTITY = Integer.valueOf(BigDecimalUtil.isNull(bo.getString("QUANTITY"))).intValue();
+                if (QUANTITY_RECEIVED == QUANTITY) {
+                    count++;
+
+                    //采购项全部接收后,更改关联合同产品的状态
+                    BO contractProductBo = SDK.getBOAPI().get(IVTConstant.BO_EU_DNCTT_CONTRACT_COST, bo.getString("CONTRACT_COST_ID"));
+                    contractProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);//待配送
+                    SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST, contractProductBo);
+
+                }
+            }
+            if (count == orderProductList.size() && count > 0) {
+                DBSql.update("UPDATE " + IVTConstant.BO_EU_DNIVT_ORDER + " SET STATUS_ID=" + IVTConstant.STATUS_2150 + " WHERE BINDID='" + orderBindId + "'");
+            } else if (count > 0) {
+                DBSql.update("UPDATE " + IVTConstant.BO_EU_DNIVT_ORDER + " SET STATUS_ID=" + IVTConstant.STATUS_2149 + " WHERE BINDID='" + orderBindId + "'");
+            } else {
+                DBSql.update("UPDATE " + IVTConstant.BO_EU_DNIVT_ORDER + " SET STATUS_ID=" + IVTConstant.STATUS_2148 + " WHERE BINDID='" + orderBindId + "'");
+            }
+        }
+
+
+        return "";
+    }
 }

+ 43 - 0
com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/event/ivtOrderFormAfter.java

@@ -0,0 +1,43 @@
+package com.awspaas.user.apps.donenow_ivt.event;
+
+import com.actionsoft.bpms.bo.engine.BO;
+import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
+import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener;
+import com.actionsoft.sdk.local.SDK;
+
+import java.util.List;
+
+public class ivtOrderFormAfter extends ExecuteListener {
+    public String getDescription() {
+        return "采购订单表单保存后,数据处理事件";
+    }
+
+    /**
+     *
+     * @param processExecutionContext
+     * @throws Exception
+     */
+    @Override
+    public void execute(ProcessExecutionContext processExecutionContext) throws Exception {
+        BO orderBO = SDK.getBOAPI().getByProcess("BO_EU_DNIVT_ORDER", processExecutionContext.getProcessInstance().getId());
+        List<BO> orderProducts = SDK.getBOAPI().query("BO_EU_DNIVT_ORDER_PRODUCT").bindId(orderBO.getBindId()).list();
+        List<BO> costProducts = SDK.getBOAPI().query("BO_EU_DNCTT_CONTRACT_COST_PRODUCT").addQuery("ORDER_ID=", orderBO.getId()).list();
+
+        for (BO costProduct : costProducts) {
+
+            BO orderProduct = orderProducts.stream().filter(op -> op.getString("CONTRACT_COST_ID").equals(costProduct.getString("CONTRACT_COST_ID"))).findFirst().orElse(null);
+            if (orderProduct == null) {
+                continue;
+            }
+            costProduct.set("WAREHOUSE_ID", orderProduct.get("WAREHOUSE_ID"));
+            costProduct.set("QUANTITY", orderProduct.get("QUANTITY"));
+            costProduct.set("UNIT_COST", orderProduct.get("UNIT_COST"));
+            costProduct.set("QUANTITY", orderProduct.get("QUANTITY"));
+            costProduct.set("OLD_QUANTITY", orderProduct.get("QUANTITY"));
+
+            SDK.getBOAPI().update("BO_EU_DNCTT_CONTRACT_COST_PRODUCT", costProduct);
+        }
+
+
+    }
+}

+ 1 - 1
com.awspaas.user.apps.donenow_ivt/src/com/awspaas/user/apps/donenow_ivt/utils/BigDecimalUtil.java

@@ -1,7 +1,7 @@
 package com.awspaas.user.apps.donenow_ivt.utils;
 
-import com.alibaba.nacos.api.utils.StringUtils;
 import com.google.common.base.Optional;
+import org.apache.commons.lang3.StringUtils;
 
 import java.math.BigDecimal;
 

+ 9 - 0
com.awspaas.user.apps.donenow_sys/com.awspaas.user.apps.donenow_sys.iml

@@ -8,5 +8,14 @@
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" name="aws_lib" level="project" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/jsoup-1.21.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
   </component>
 </module>

+ 0 - 1
com.awspaas.user.apps.donenow_sys/src/com/awspaas/user/apps/donenow_sys/controller/testController.java

@@ -1,7 +1,6 @@
 package com.awspaas.user.apps.donenow_sys.controller;
 
 import com.actionsoft.bpms.commons.htmlframework.HtmlPageTemplate;
-import com.actionsoft.bpms.server.UserContext;
 import com.actionsoft.bpms.server.bind.annotation.Controller;
 import com.actionsoft.bpms.server.bind.annotation.Mapping;
 import com.actionsoft.sdk.local.SDK;

二进制
libs/dn_form_before_save.jar


部分文件因为文件数量过多而无法显示