Browse Source

1. 报表,奖罚金,数据排序
2. 报表,数据预处理,日期格式化

MaiXinRong 5 năm trước cách đây
mục cha
commit
927984cc4b

+ 28 - 0
app/lib/rpt_data_analysis.js

@@ -10,6 +10,7 @@
 
 const math = require('mathjs');
 const standard = require('../const/standard');
+const moment = require('moment');
 
 // 通用方法
 const rdaUtils = {
@@ -957,6 +958,32 @@ const auditSelect = {
         }
     }
 };
+const datetimeFormat = {
+    name: '日期格式化',
+    hint: '参见帮助',
+    defaultSetting: {
+        tables: [
+            {name: 'mem_stage_bonus', fields: [
+                {field: 'real_time', formatter: 'yyyy-MM-DD'},
+                {field: 'create_time', formatter: 'yyyy-MM-DD'}
+            ]},
+        ]
+    },
+    fun: function (ctx, data, fieldsKey, options, csRela) {
+        if (!options.tables) return;
+        const tables = options.tables instanceof Array ? tables : [options.tables];
+        if (tables.length === 0) return;
+
+        for (const table of tables) {
+            const formatData = data[table.name];
+            for (const fd of formatData) {
+                for (const f of table.fields) {
+                    fd[f.field] = moment(fd[f.field]).format(f.formatter);
+                }
+            }
+        }
+    }
+};
 
 const analysisObj = {
     changeSort,
@@ -970,6 +997,7 @@ const analysisObj = {
     gatherStagePay,
     addSumChapter,
     auditSelect,
+    datetimeFormat,
 };
 const analysisDefine = (function (obj) {
     const result = [];

+ 4 - 3
app/service/report.js

@@ -108,15 +108,16 @@ module.exports = app => {
                             runnableRst.push(service.changeAuditList.getChangeAuditBills(params.tender_id)); // 获取所有审核通过的变更清单
                             runnableKey.push(filter);
                             break;
-                        case 'stage_jgcl':
+                        case 'mem_stage_jgcl':
                             runnableRst.push(service.reportMemory.getStageJgcl(params.tender_id, params.stage_id, memFieldKeys[filter]));
                             runnableKey.push(filter);
                             break;
-                        case 'stage_bonus':
+                        case 'mem_stage_bonus':
                             runnableRst.push(service.reportMemory.getStageBonus(params.tender_id, params.stage_id, memFieldKeys[filter]));
                             runnableKey.push(filter);
                             break;
-                        case 'stage_other':
+                        case 'mem_stage_other':
+                        case 'mem_stage_other':
                             runnableRst.push(service.reportMemory.getStageOther(params.tender_id, params.stage_id, memFieldKeys[filter]));
                             runnableKey.push(filter);
                             break;

+ 1 - 1
app/service/stage_bonus.js

@@ -44,7 +44,7 @@ module.exports = app => {
         }
 
         async getEndStageData(sorder) {
-            const sql = 'SELECT * From ' + this.tableName + ' WHERE sorder <= ? And tid = ?';
+            const sql = 'SELECT * From ' + this.tableName + ' WHERE sorder <= ? And tid = ? ORDER BY `sorder`, `order`';
             const sqlParam = [sorder, this.ctx.tender.id];
             const data = await this.db.query(sql, sqlParam);
             return data;

+ 8 - 7
builder_report_index_define.js

@@ -27,7 +27,7 @@ const stage_jgcl = {
     name: '期-甲供材料(mem_stage_jgcl)',
     remark: '',
     id: 30,
-    key: 'stage_jgcl',
+    key: 'mem_stage_jgcl',
     prefix: '期-甲供材料',
     cols: [
         { name: 'id', field: 'id', type: dataType.int },
@@ -48,17 +48,17 @@ const stage_jgcl = {
         { name: '期历史记录', field: 'shistory', type: dataType.str },
         { name: '排序', field: 'order', type: dataType.int },
         { name: '往期是否已用', field: 'pre_used', type: dataType.int },
-        { name: '截止上期到场-数量', field: 'arrive_qty', type: dataType.currency, tag: { type: 'qty', unitKey: 4 } },
-        { name: '截止上期到场-金额', field: 'arrive_tp', type: dataType.currency, tag: { type: 'tp' } },
-        { name: '截止上期扣回-数量', field: 'deduct_qty', type: dataType.currency, tag: { type: 'qty', unitKey: 4 } },
-        { name: '截止上期扣回-金额', field: 'deduct_tp', type: dataType.currency, tag: { type: 'tp' } },
+        { name: '截止上期到场-数量', field: 'pre_arrive_qty', type: dataType.currency, tag: { type: 'qty', unitKey: 4 } },
+        { name: '截止上期到场-金额', field: 'pre_arrive_tp', type: dataType.currency, tag: { type: 'tp' } },
+        { name: '截止上期扣回-数量', field: 'pre_deduct_qty', type: dataType.currency, tag: { type: 'qty', unitKey: 4 } },
+        { name: '截止上期扣回-金额', field: 'pre_deduct_tp', type: dataType.currency, tag: { type: 'tp' } },
     ],
 };
 const stage_bonus = {
     name: '期-奖罚金(mem_stage_bonus)',
     remark: '',
     id: 31,
-    key: 'stage_bonus',
+    key: 'mem_stage_bonus',
     prefix: '期-奖罚金',
     cols: [
         { name: 'id', field: 'id', type: dataType.str },
@@ -74,13 +74,14 @@ const stage_bonus = {
         { name: '备注', field: 'memo', type: dataType.str },
         { name: '期历史记录', field: 'shistory', type: dataType.str },
         { name: '排序', field: 'order', type: dataType.int },
+        { name: '编号', field: 'code', type: dataType.str},
     ],
 };
 const stage_other = {
     name: '期-其他(mem_stage_other)',
     remark: '',
     id: 32,
-    key: 'stage_other',
+    key: 'mem_stage_other',
     prefix: '期-其他',
     cols: [
         { name: 'id', field: 'id', type: dataType.int },