Browse Source

Merge branch 'master' of http://192.168.1.41:3000/maixinrong/Calculation

TonyKang 5 năm trước cách đây
mục cha
commit
f3d0e966a4

+ 1 - 1
app/extend/helper.js

@@ -423,7 +423,7 @@ module.exports = {
         const reg = /^[0-9]*$/;
         if (reg.test(codePath[0])) {
             const num = parseInt(codePath[0]);
-            return this.mul(this.div(num, 100, 0), 100);
+            return this.mul(this.div(num, 100, 0), 100) + '';
         } else {
             return '';
         }

+ 16 - 12
app/lib/rpt_data_analysis.js

@@ -11,7 +11,9 @@
 const changeSort = {
     name: '变更令排序',
     hint: '默认的变更令排序,同时对变更令,变更清单进行排序\n' +
-        '变更令排序勿需勾选任何预定义处理指标,但是在指标映射中,要添加"变更令(change)"和"变更清单(chang_audit_list)"下的指标',
+        '变更令排序勿需勾选任何预定义处理指标,但是在指标映射中,需要添加如下指标:' +
+        '1. 如果只有变更令数据,则必须添加,"变更令(change)"下的"变更令号"' +
+        '2. 如果有变更清单需要排序,则必须在1的基础上添加,变更令(change)"下的"变更令uuid"和"变更清单(chang_audit_list)"下的"所属变更令uuid"&"清单编号"',
     /**
      *
      * @param ctx - context常量
@@ -19,22 +21,24 @@ const changeSort = {
      * @param fieldsKey - 计算字段
      */
     fun: function(ctx, data, fieldsKey) {
-        if (!data.change || !data.change_audit_list) return;
+        if (!data.change) return;
         // 变更令排序
         data.change.sort(function (a, b) {
             return a.code.localeCompare(b.code);
         });
-        data.change_audit_list.sort(function (a, b) {
-            const aCIndex = data.change.findIndex(function (c) {
-                return c.cid === a.cid;
-            });
-            const bCIndex = data.change.findIndex(function (c) {
-                return c.cid === b.cid;
+        if (data.change_audit_list) {
+            data.change_audit_list.sort(function (a, b) {
+                const aCIndex = data.change.findIndex(function (c) {
+                    return c.cid === a.cid;
+                });
+                const bCIndex = data.change.findIndex(function (c) {
+                    return c.cid === b.cid;
+                });
+                return aCIndex === bCIndex
+                    ? ctx.helper.compareCode(a.code, b.code)
+                    : aCIndex - bCIndex;
             });
-            return aCIndex === bCIndex
-                ? ctx.helper.compareCode(a.code, b.code)
-                : aCIndex - bCIndex;
-        });
+        }
     },
 };
 const gatherGcl = {

+ 10 - 11
app/reports/util/rpt_calculation_data_util.js

@@ -11,7 +11,7 @@ const fs = require('fs');
 const fsUtil = require('../../public/js/fsUtil');
 const stringUtil = require('../../public/js/stringUtil');
 const scMathUtil = require('../../public/js/scMathUtil');
-const data_analyze_util = require('../../lib/rpt_data_analysis');
+const data_analyze_util = require('../../lib/rpt_data_analysis').analysisObj;
 const _ = require('lodash');
 
 const treeUtil = require('../public/treeUtil');
@@ -543,19 +543,18 @@ function preDefineProcess(ctx, tpl, preDefineCfg, rawDataObj, $CURRENT_RPT) {
             fields.push(rstF);
         }
     }
-    switch (preDefineCfg[JV.PROP_HANDLE_TYPE_PRE_DEFINED_KEY]) {
-        case 'changeSort' :
+    const analysisKey = preDefineCfg[JV.PROP_HANDLE_TYPE_PRE_DEFINED_KEY];
+    if (analysisKey && analysisKey !== '') {
+        if (data_analyze_util[analysisKey]) {
             try {
                 // 在预定义方式中,小麦处理原始数据,不需要
-                data_analyze_util.changeSort.fun(ctx, rawDataObj, fields);
-            } catch (ex) {
-                //
+                data_analyze_util[analysisKey].fun(ctx, rawDataObj, fields);
+            } catch (err) {
+                throw '报表预处理数据出错';
             }
-            break;
-        case '' :
-            break;
-        default:
-            break;
+        } else {
+            throw '报表预处理方法不存在';
+        }
     }
 }
 

+ 1 - 0
app/service/change.js

@@ -392,6 +392,7 @@ module.exports = app => {
                     new_code: postData.new_code,
                     content: postData.content,
                     basis: postData.basis,
+                    expr: postData.expr,
                     memo: postData.memo,
                     type: postData.type.join(','),
                     class: postData.class,

+ 8 - 0
app/view/change/info.ejs

@@ -217,6 +217,10 @@
                             <textarea class="form-control form-control-sm" name="basis" rows="6"><%- change.basis %></textarea>
                         </div>
                         <div class="form-group">
+                            <label>变更工程量数量计算式</label>
+                            <textarea class="form-control form-control-sm" name="expr" rows="2"><%- change.expr %></textarea>
+                        </div>
+                        <div class="form-group">
                             <label>备注</label>
                             <textarea class="form-control form-control-sm" name="memo" rows="3"><%- change.memo %></textarea>
                         </div>
@@ -339,6 +343,10 @@
                             <textarea class="form-control form-control-sm" rows="6" readonly><%- change.basis %></textarea>
                         </div>
                         <div class="form-group">
+                            <label>变更工程量数量计算式</label>
+                            <textarea class="form-control form-control-sm" rows="2" readonly><%- change.expr %></textarea>
+                        </div>
+                        <div class="form-group">
                             <label>备注</label>
                             <textarea class="form-control form-control-sm" rows="3" readonly><%- change.memo %></textarea>
                         </div>