Преглед на файлове

内存表,test中输出定义

MaiXinRong преди 5 години
родител
ревизия
6173ea6272
променени са 5 файла, в които са добавени 100 реда и са изтрити 7 реда
  1. 11 0
      app/const/spread.js
  2. 1 1
      app/controller/revise_controller.js
  3. 1 1
      app/public/js/spreadjs_rela/spreadjs_zh.js
  4. 3 3
      app/service/report_memory.js
  5. 84 2
      test/app/service/report_memory.test.js

+ 11 - 0
app/const/spread.js

@@ -497,6 +497,16 @@ measure.compare.pos = {
     font: '12px 微软雅黑',
 };
 
+const blank = {
+    cols: [],
+    emptyRows: 0,
+    headRows: 2,
+    headRowHeight: [32],
+    defaultRowHeight: 21,
+    headerFont: '12px 微软雅黑',
+    font: '12px 微软雅黑',
+};
+
 
 module.exports = {
     withCl,
@@ -510,4 +520,5 @@ module.exports = {
     stageCompare,
     filterCols: { tzWithoutCols, dgnCols, clCols, stageDgnCols},
     measure,
+    blank,
 };

+ 1 - 1
app/controller/revise_controller.js

@@ -193,7 +193,7 @@ module.exports = app => {
                 ? (tender.info.display.ledger.clQty ? spreadConst.withCl : spreadConst.withoutCl)
                 : (tender.info.display.ledger.clQty ? spreadConst.withClGcl : spreadConst.withoutClGcl);
             const ledger = JSON.parse(JSON.stringify(setting.ledger));
-            const pos = setting.pos ? JSON.parse(JSON.stringify(setting.pos)) : {};
+            const pos = setting.pos ? JSON.parse(JSON.stringify(setting.pos)) : spreadConst.blank;
 
             if (revise.status === audit.revise.status.checking || revise.status === audit.revise.status.checked) {
                 ledger.readOnly = true;

+ 1 - 1
app/public/js/spreadjs_rela/spreadjs_zh.js

@@ -292,7 +292,7 @@ const SpreadJsObj = {
      * @param {GC.Spread.Sheets.Worksheet} sheet
      */
     _initSheetHeader: function (sheet) {
-        if (!sheet.zh_setting) { return; }
+        if (!sheet.zh_setting || !sheet.zh_setting.cols) { return; }
 
         sheet.setColumnCount(sheet.zh_setting.cols.length);
         sheet.setRowCount(sheet.zh_setting.headRows, spreadNS.SheetArea.colHeader);

+ 3 - 3
app/service/report_memory.js

@@ -310,9 +310,9 @@ module.exports = app => {
                 'sgfh_qty', 'sgfh_tp', 'sjcl_qty', 'sjcl_tp', 'qtcl_qty', 'qtcl_tp', 'quantity', 'total_price',
                 'dgn_qty1', 'dgn_qty2',
                 'drawing_code', 'memo', 'node_type', 'is_tp',
-                'contract_qty', 'contract_tp', 'qc_qty', 'qc_tp', 'postil',
-                'pre_contract_qty', 'pre_contract_tp', 'pre_qc_qty', 'pre_qc_tp',
-                'end_contract_qty', 'end_contract_tp', 'end_qc_qty', 'end_qc_tp',
+                'contract_qty', 'contract_tp', 'qc_qty', 'qc_tp', 'gather_qty', 'gather_tp', 'postil',
+                'pre_contract_qty', 'pre_contract_tp', 'pre_qc_qty', 'pre_qc_tp', 'pre_gather_qty', 'pre_gather_tp',
+                'end_contract_qty', 'end_contract_tp', 'end_qc_qty', 'end_qc_tp', 'end_gather_qty', 'end_gather_tp',
             ]);
         }
 

+ 84 - 2
test/app/service/report_memory.test.js

@@ -10,6 +10,22 @@
 
 const { app, assert } = require('egg-mock/bootstrap');
 const mockData = {};
+const dataType = {
+    int: 'int',
+    str: 'string',
+    double: 'double',
+    currency: 'currency',
+};
+const addFields = function(table, name, field, type) {
+    const data = {};
+    data.ID = table.ID + (table.items.length + 1);
+    data.Name = name;
+    data.DataType = type;
+    data.TableName = table.key;
+    data.descr = '';
+    data.mapExpression = "$PROJECT.REPORT.getProperty('" + table.key + "', '" + field + "')";
+    table.items.push(data);
+};
 
 describe('test/app/service/report_memory.test.js', () => {
     // 准备测试数据
@@ -69,7 +85,7 @@ describe('test/app/service/report_memory.test.js', () => {
             yield ctx.helper.saveBufferFile(JSON.stringify(mainData,"","\t"), ctx.app.baseDir + '/mem_month_progress.json');
         }
     });
-    // 月进度数据
+    // 期清单数据
     it('test getStageBills', function* () {
         const ctx = app.mockContext(mockData);
 
@@ -78,9 +94,75 @@ describe('test/app/service/report_memory.test.js', () => {
         const mainData = yield ctx.service.reportMemory.getStageBillsData(12, stage.id);
         if (mainData instanceof Array) {
             yield ctx.helper.saveBufferFile(JSON.stringify(mainData,"","\t"), ctx.app.baseDir + '/mem_stage_bills.json');
+            const tableDefine = {};
+            tableDefine.Name = '期 - 清单数据表(mem_stage_bills)';
+            tableDefine.remark = '';
+            tableDefine.ID = '23';
+            tableDefine.key = 'mem_stage_bills';
+            tableDefine.items = [];
+            addFields(tableDefine, '台账ID', 'id', dataType.int);
+            addFields(tableDefine, '标段ID', 'tender_id', dataType.int);
+            addFields(tableDefine, '树结构-ID', 'ledger_id', dataType.int);
+            addFields(tableDefine, '树结构-父项ID', 'ledger_pid', dataType.int);
+            addFields(tableDefine, '树结构-层级', 'level', dataType.int);
+            addFields(tableDefine, '树结构-同层排序', 'order', dataType.int);
+            addFields(tableDefine, '树结构-完整路径', 'full_path', dataType.int);
+            addFields(tableDefine, '树结构-是否子项', 'is_leaf', dataType.int);
+
+            addFields(tableDefine, '项目节编号', 'code', dataType.str);
+            addFields(tableDefine, '清单编号', 'b_code', dataType.str);
+            addFields(tableDefine, '名称', 'name', dataType.str);
+            addFields(tableDefine, '单位', 'unit', dataType.str);
+            addFields(tableDefine, '单价', 'unit_price', dataType.currency);
+
+            addFields(tableDefine, '签约-数量', 'deal_qty', dataType.currency);
+            addFields(tableDefine, '签约-金额', 'deal_tp', dataType.currency);
+
+            addFields(tableDefine, '施工复核-数量', 'sgfh_qty', dataType.currency);
+            addFields(tableDefine, '施工复核-金额', 'sgfh_tp', dataType.currency);
+            addFields(tableDefine, '设计错漏-数量', 'sjcl_qty', dataType.currency);
+            addFields(tableDefine, '设计错漏-金额', 'sjcl_tp', dataType.currency);
+            addFields(tableDefine, '其他错漏-数量', 'qtcl_qty', dataType.currency);
+            addFields(tableDefine, '其他错漏-金额', 'qtcl_tp', dataType.currency);
+            addFields(tableDefine, '台账-数量', 'quantity', dataType.currency);
+            addFields(tableDefine, '台账-金额', 'total_price', dataType.currency);
+
+            addFields(tableDefine, '项目节-数量1', 'dgn_qty1', dataType.currency);
+            addFields(tableDefine, '项目节-金额2', 'dgn_qty2', dataType.currency);
+
+            addFields(tableDefine, '图册号', 'drawing_code', dataType.str);
+            addFields(tableDefine, '备注', 'memo', dataType.str);
+            addFields(tableDefine, '节点类型', 'node_type', dataType.int);
+            addFields(tableDefine, '总额计量', 'is_tp', dataType.int);
+
+            addFields(tableDefine, '本期-合同-数量', 'contract_qty', dataType.currency);
+            addFields(tableDefine, '本期-合同-金额', 'contract_tp', dataType.currency);
+            addFields(tableDefine, '本期-数量变更-数量', 'qc_qty', dataType.currency);
+            addFields(tableDefine, '本期-数量变更-金额', 'qc_tp', dataType.currency);
+            addFields(tableDefine, '本期-完成-数量', 'gather_qty', dataType.currency);
+            addFields(tableDefine, '本期-完成-金额', 'gather_tp', dataType.currency);
+            addFields(tableDefine, '本期批注', 'postil', dataType.str);
+
+            addFields(tableDefine, '截止上期-合同-数量', 'pre_contract_qty', dataType.currency);
+            addFields(tableDefine, '截止上期-合同-金额', 'pre_contract_tp', dataType.currency);
+            addFields(tableDefine, '截止上期-数量变更-数量', 'pre_qc_qty', dataType.currency);
+            addFields(tableDefine, '截止上期-数量变更-金额', 'pre_qc_tp', dataType.currency);
+            addFields(tableDefine, '截止上期-完成-数量', 'pre_gather_qty', dataType.currency);
+            addFields(tableDefine, '截止上期-完成-金额', 'pre_gather_tp', dataType.currency);
+
+            addFields(tableDefine, '截止本期-合同-数量', 'end_contract_qty', dataType.currency);
+            addFields(tableDefine, '截止本期-合同-金额', 'end_contract_tp', dataType.currency);
+            addFields(tableDefine, '截止本期-数量变更-数量', 'end_qc_qty', dataType.currency);
+            addFields(tableDefine, '截止本期-数量变更-金额', 'end_qc_tp', dataType.currency);
+            addFields(tableDefine, '截止本期-完成-数量', 'end_gather_qty', dataType.currency);
+            addFields(tableDefine, '截止本期-完成-金额', 'end_gather_tp', dataType.currency);
+
+            delete tableDefine.ID;
+            delete tableDefine.key;
+            yield ctx.helper.saveBufferFile(JSON.stringify(tableDefine,"","\t"), ctx.app.baseDir + '/mem_stage_bills_define.json');
         }
     });
-    // 月进度数据
+    // 期部位明细数据
     it('test getStagePos', function* () {
         const ctx = app.mockContext(mockData);