Pārlūkot izejas kodu

Merge branch 'dev' of http://192.168.1.41:3000/maixinrong/Calculation into dev

laiguoran 3 gadi atpakaļ
vecāks
revīzija
f5d81ea7e9

+ 24 - 3
app/lib/budget_final.js

@@ -192,6 +192,20 @@ class BudgetFinal {
             node.dgn_qty = node.dgn_qty1
                 ? (node.dgn_qty2 ? node.dgn_qty1 + '/' + node.dgn_qty2 : node.dgn_qty1)
                 : (node.dgn_qty2 ? '/' + node.dgn_qty2 : '');
+
+            node.gu_dgn_price = helper.div(node.gu_tp, node.gu_dgn_qty1, 2);
+            node.gu_dgn_qty = node.gu_dgn_qty1
+                ? (node.gu_dgn_qty2 ? node.gu_dgn_qty1 + '/' + node.gu_dgn_qty2 : node.gu_dgn_qty1 + '')
+                : (node.gu_dgn_qty2 ? '/' + node.gu_dgn_qty2 : '');
+            node.gai_dgn_price = helper.div(node.gai_tp, node.gai_dgn_qty1, 2);
+            node.gai_dgn_qty = node.gai_dgn_qty1
+                ? (node.gai_dgn_qty2 ? node.gai_dgn_qty1 + '/' + node.gai_dgn_qty2 : node.gai_dgn_qty1 + '')
+                : (node.gai_dgn_qty2 ? '/' + node.gai_dgn_qty2 : '');
+            node.yu_dgn_price = helper.div(node.yu_tp, node.yu_dgn_qty1, 2);
+            node.yu_dgn_qty = node.yu_dgn_qty1
+                ? (node.yu_dgn_qty2 ? node.yu_dgn_qty1 + '/' + node.yu_dgn_qty2 : node.yu_dgn_qty1 + '')
+                : (node.yu_dgn_qty2 ? '/' + node.yu_dgn_qty2 : '');
+
             node.final_dgn_price = helper.div(node.final_tp, node.final_dgn_qty1, 2);
             node.final_dgn_qty = node.final_dgn_qty1
                 ? (node.final_dgn_qty2 ? node.final_dgn_qty1 + '/' + node.final_dgn_qty2 : node.final_dgn_qty1)
@@ -203,6 +217,13 @@ class BudgetFinal {
                 : (node.grow_dgn_qty2 ? '/' + node.grow_dgn_qty2 : '');
             node.grow_tp = helper.mul(helper.div(helper.sub(node.final_tp, node.gai_tp), node.gai_tp, 4), 100);
         });
+        this.finalTree.resortChildrenByCustom(function (x, y) {
+            const iCode = helper.compareCode(x.code, y.code);
+            if (iCode) return iCode;
+            if (!x.name) return -1;
+            if (!y.name) return 1;
+            return x.name.localeCompare(y.name);
+        });
     }
 
     getFinalData() {
@@ -212,9 +233,9 @@ class BudgetFinal {
                 id: ctx.app.uuid.v4(), bid, final_id,
                 tree_id: x.id, tree_pid: x.pid, order: x.order, level: x.level, full_path: x.full_path, is_leaf: x.is_leaf,
                 code: x.code, name: x.name, unit: x.unit,
-                gu_dgn_qty1: x.gu_dgn_qty1 || 0, gu_dgn_qty2: x.gu_dgn_qty2 || 0, gu_tp: x.gu_tp || 0,
-                gai_dgn_qty1: x.gai_dgn_qty1 || 0, gai_dgn_qty2: x.gai_dgn_qty2 || 0, gai_tp: x.gai_tp || 0,
-                yu_dgn_qty1: x.yu_dgn_qty1 || 0, yu_dgn_qty2: x.yu_dgn_qty2 || 0, yu_tp: x.yu_tp || 0,
+                gu_dgn_qty1: x.gu_dgn_qty1 || 0, gu_dgn_qty2: x.gu_dgn_qty2 || 0, gu_dgn_qty: x.gu_dgn_qty, gu_dgn_price: x.gu_dgn_price || 0, gu_tp: x.gu_tp || 0,
+                gai_dgn_qty1: x.gai_dgn_qty1 || 0, gai_dgn_qty2: x.gai_dgn_qty2 || 0, gai_dgn_qty: x.gai_dgn_qty, gai_dgn_price: x.gai_dgn_price || 0, gai_tp: x.gai_tp || 0,
+                yu_dgn_qty1: x.yu_dgn_qty1 || 0, yu_dgn_qty2: x.yu_dgn_qty2 || 0, yu_dgn_qty: x.yu_dgn_qty, yu_dgn_price: x.yu_dgn_price || 0, yu_tp: x.yu_tp || 0,
 
                 dgn_qty1: x.dgn_qty1 || 0, dgn_qty2: x.dgn_qty2 || 0, total_price: x.total_price || 0,
                 final_dgn_qty1: x.final_dgn_qty1 || 0, final_dgn_qty2: x.final_dgn_qty2 || 0, final_tp: x.final_tp || 0,

+ 3 - 3
app/lib/rm/budget.js

@@ -25,16 +25,16 @@ class reportMemoryBudget {
         return tree.getDefaultDatas();
     }
     async budgetYu(bid) {
-        const yu = await this.ctx.service.budgetGai.getAllDataByCondition({ where: { bid } });
+        const yu = await this.ctx.service.budgetYu.getAllDataByCondition({ where: { bid } });
         const tree = new ledger.billsTree(this.ctx, { id: 'tree_id', pid: 'tree_pid', order: 'order', level: 'level', rootId: -1, calcFields: ['total_price'] });
         tree.loadDatas(yu);
         tree.calculateAll();
         return tree.getDefaultDatas();
     }
     async budgetGu(bid) {
-        const yu = await this.ctx.service.budgetGai.getAllDataByCondition({ where: { bid } });
+        const gu = await this.ctx.service.budgetGu.getAllDataByCondition({ where: { bid } });
         const tree = new ledger.billsTree(this.ctx, { id: 'tree_id', pid: 'tree_pid', order: 'order', level: 'level', rootId: -1, calcFields: ['total_price'] });
-        tree.loadDatas(yu);
+        tree.loadDatas(gu);
         tree.calculateAll();
         return tree.getDefaultDatas();
     }

+ 0 - 17
app/public/js/budget_compare.js

@@ -96,7 +96,6 @@ $(document).ready(() => {
                 cur.yu_tp = ZhCalc.add(cur.yu_tp, source.total_price);
             });
             compareTree.afterLoad(node => {
-                if (node.code === '1')console.log(node);
                 node.gu_dgn_price = ZhCalc.div(node.gu_tp, node.gu_dgn_qty1, 2);
                 node.gu_dgn_qty = node.gu_dgn_qty1
                     ? (node.gu_dgn_qty2 ? node.gu_dgn_qty1 + '/' + node.gu_dgn_qty2 : node.gu_dgn_qty1)
@@ -130,24 +129,8 @@ $(document).ready(() => {
                 order: 'order',
                 level: 'level',
                 rootId: -1,
-                calcFields: [],
-                calcFun: function (node) {
-                    node.gu_dgn_price = ZhCalc.div(node.gu_tp, node.gu_dgn_qty1, 2);
-                    node.gu_dgn_qty = node.gu_dgn_qty1
-                        ? (node.gu_dgn_qty2 ? node.gu_dgn_qty1 + '/' + node.gu_dgn_qty2 : node.gu_dgn_qty1)
-                        : (node.gu_dgn_qty2 ? '/' + node.gu_dgn_qty2 : '');
-                    node.gai_dgn_price = ZhCalc.div(node.gai_tp, node.gai_dgn_qty1, 2);
-                    node.gai_dgn_qty = node.gai_dgn_qty1
-                        ? (node.gai_dgn_qty2 ? node.gai_dgn_qty1 + '/' + node.gai_dgn_qty2 : node.gai_dgn_qty1)
-                        : (node.gai_dgn_qty2 ? '/' + node.gai_dgn_qty2 : '');
-                    node.yu_dgn_price = ZhCalc.div(node.yu_tp, node.yu_dgn_qty1, 2);
-                    node.yu_dgn_qty = node.yu_dgn_qty1
-                        ? (node.yu_dgn_qty2 ? node.yu_dgn_qty1 + '/' + node.yu_dgn_qty2 : node.yu_dgn_qty1)
-                        : (node.yu_dgn_qty2 ? '/' + node.yu_dgn_qty2 : '');
-                }
             });
             finalTree.loadDatas(result.final);
-            treeCalc.calculateAll(finalTree);
             SpreadJsObj.loadSheetData(compareSheet, SpreadJsObj.DataType.Tree, finalTree);
             if (sfSelect) sfSelect.reloadSelect(this.finalInfo.tender);
         }

+ 3 - 3
app/public/report/js/rpt_signature.js

@@ -297,7 +297,7 @@ let rptSignatureHelper = {
             '</small></span><a onclick="rptSignatureHelper.removeSignature(this)" class="text-danger"><i class="fa fa-remove" title="移除签名"></i></a></p>');
     },
     pushDatePickerDom: function (elementsStrArr, userAcc, role_rel, seq = 0) {
-        // let idSuffixStr = 'dtp_' + rptSignatureHelper.currentSelectedESignAccName + '_' + rptSignatureHelper.currentSelectedESignParentDivId;
+        const dateIdSuffixStr = 'dtp_' + role_rel.signature_name + '_' + rptSignatureHelper.currentSelectedESignParentDivId;
         let milliSec = (new Date()).getMilliseconds();
         const idSuffixStr = `dtp_${seq}_${milliSec}_${rptSignatureHelper.currentSelectedESignParentDivId}`;
         elementsStrArr.push('<div class="mt-3">');
@@ -353,9 +353,9 @@ let rptSignatureHelper = {
         elementsStrArr.push('       <span class="input-group-text height-inputbox" id="inputGroup-sizing-sm"><i class="fa fa-calendar" title="添加签名日期"></i></span>');
         elementsStrArr.push('   </div>');
         if (dftDate !== '') {
-            elementsStrArr.push(`<input id="${idSuffixStr}" type="text" class="form-control datepicker-here height-inputbox" aria-label="Small" aria-describedby="inputGroup-sizing-sm" data-language="zh" value="${dftDate}"></input>`);
+            elementsStrArr.push(`<input id="${dateIdSuffixStr}" type="text" class="form-control datepicker-here height-inputbox" aria-label="Small" aria-describedby="inputGroup-sizing-sm" data-language="zh" value="${dftDate}"></input>`);
         } else {
-            elementsStrArr.push(`<input id="${idSuffixStr}" type="text" class="form-control datepicker-here height-inputbox" aria-label="Small" aria-describedby="inputGroup-sizing-sm" data-language="zh"></input>`);
+            elementsStrArr.push(`<input id="${dateIdSuffixStr}" type="text" class="form-control datepicker-here height-inputbox" aria-label="Small" aria-describedby="inputGroup-sizing-sm" data-language="zh"></input>`);
         }
         elementsStrArr.push('</div>');
         //-------------------------------------------------

+ 6 - 0
builder_report_index_define.js

@@ -2658,14 +2658,20 @@ const budget = {
 
             { name: '估算-项目节-数量1', field: 'gu_dgn_qty1', type: dataType.currency },
             { name: '估算-项目节-数量2', field: 'gu_dgn_qty2', type: dataType.currency },
+            { name: '估算-数量1/数量2', field: 'gu_dgn_qty', type: dataType.currency },
+            { name: '估算-经济指标', field: 'gu_dgn_price', type: dataType.currency },
             { name: '估算-金额', field: 'gu_tp', type: dataType.currency },
 
             { name: '概算-项目节-数量1', field: 'gai_dgn_qty1', type: dataType.currency },
             { name: '概算-项目节-数量2', field: 'gai_dgn_qty2', type: dataType.currency },
+            { name: '概算-数量1/数量2', field: 'gai_dgn_qty', type: dataType.currency },
+            { name: '概算-经济指标', field: 'gai_dgn_price', type: dataType.currency },
             { name: '概算-金额', field: 'gai_tp', type: dataType.currency },
 
             { name: '预算-项目节-数量1', field: 'yu_dgn_qty1', type: dataType.currency },
             { name: '预算-项目节-数量2', field: 'yu_dgn_qty2', type: dataType.currency },
+            { name: '预算-数量1/数量2', field: 'yu_dgn_qty', type: dataType.currency },
+            { name: '预算-经济指标', field: 'yu_dgn_price', type: dataType.currency },
             { name: '预算-金额', field: 'yu_tp', type: dataType.currency },
 
             { name: '决算-台账-项目节-数量1', field: 'dgn_qty1', type: dataType.currency },

+ 6 - 0
sql/update.sql

@@ -35,12 +35,18 @@ CREATE TABLE `zh_budget_final` (
   `unit` varchar(15) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '单位',
   `gu_dgn_qty1` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '估算-设计数量1',
   `gu_dgn_qty2` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '估算-设计数量1',
+  `gu_dgn_qty` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '估算-设计数量1/设计数量2',
+  `gu_dgn_price` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '估算-经济指标',
   `gu_tp` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '估算-金额',
   `gai_dgn_qty1` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '概算-设计数量1',
   `gai_dgn_qty2` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '概算-设计数量1',
+  `gai_dgn_qty` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '概算-设计数量1/设计数量2',
+  `gai_dgn_price` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '概算-经济指标',
   `gai_tp` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '概算-金额',
   `yu_dgn_qty1` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '预算-设计数量1',
   `yu_dgn_qty2` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '预算-设计数量1',
+  `yu_dgn_qty` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '预算-设计数量1/设计数量2',
+  `yu_dgn_price` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '预算-经济指标',
   `yu_tp` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '预算-金额',
   `dgn_qty1` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '决算-台账-设计数量1',
   `dgn_qty2` decimal(24,8) NOT NULL DEFAULT '0.00000000' COMMENT '决算-台账-设计数量1',