Pārlūkot izejas kodu

报表数据,导入变更令

MaiXinRong 3 gadi atpakaļ
vecāks
revīzija
22ae8607fa
3 mainītis faili ar 131 papildinājumiem un 2 dzēšanām
  1. 6 0
      app/service/report.js
  2. 62 1
      app/service/report_memory.js
  3. 63 1
      builder_report_index_define.js

+ 6 - 0
app/service/report.js

@@ -269,6 +269,12 @@ module.exports = app => {
                     case 'mem_union_data':
                         rst[filter] = [];
                         break;
+                    case 'mem_import_change':
+                        rst[filter] = await service.reportMemory.getImportChangeData(params.tender_id, params.stage_id, memFieldKeys[filter]);
+                        break;
+                    case 'mem_import_change_bills':
+                        rst[filter] = await service.reportMemory.getImportChangeBillsData(params.tender_id, params.stage_id, memFieldKeys[filter]);
+                        break;
                     case 'mem_change':
                         rst[filter] = await service.reportMemory.getChangeData(params.tender_id, params.stage_id, memFieldKeys[filter]);
                         break;

+ 62 - 1
app/service/report_memory.js

@@ -840,6 +840,68 @@ module.exports = app => {
             }
         }
 
+        async _generateImportChange(sid) {
+            if (this.importChange !== null) return;
+            const self = this;
+            try {
+                const ctx = this.ctx;
+                const change = await this.ctx.service.stageImportChange.getImportChange(sid);
+                for (const c of change) {
+                    const types = ctx.helper._.map(c.type.split(','), function (t) {
+                        return self._getChangeConstName(changeConst.type, ctx.helper._.toInteger(t));
+                    });
+                    c.type = types.join(';');
+                    c.class = this._getChangeConstName(changeConst.class, c.class);
+                    c.quality = this._getChangeConstName(changeConst.quality, c.quality);
+                    c.charge = this._getChangeConstName(changeConst.charge, c.charge);
+                }
+
+                change.sort(function (a, b) {
+                    return a.code.localeCompare(b.code);
+                });
+                const changeBills = [];
+                for (const c of change) {
+                    const bills = await this.ctx.service.changeAuditList.getAllDataByCondition({ where: { cid: c.cid } });
+                    for (const b of bills) {
+                        b.o_qty = b.oamount;
+                        b.c_qty = b.camount;
+                        b.s_qty = b.samount ? parseFloat(b.samount) : 0;
+                        b.sp_qty = b.spamount;
+                    }
+
+                    bills.sort(function (a, b) {
+                        return ctx.helper.compareCode(a.code, b.code);
+                    });
+                    changeBills.push(...bills);
+                }
+                this.importChange = {change: change, bills: changeBills};
+            } catch(err) {
+                this.ctx.helper.log(err);
+                throw err;
+                this.importChange = {change: [], bills: []};
+            }
+        }
+
+        async getImportChangeData(tid, sid, fields) {
+            try {
+                await this._generateImportChange(sid);
+                return this.importChange.change;
+            } catch (err) {
+                return [];
+            }
+        }
+
+        async getImportChangeBillsData(tid, sid, fields) {
+            try {
+                await this.ctx.service.tender.checkTender(tid);
+
+                await this._generateImportChange(tid);
+                return this.importChange.bills;
+            } catch (err) {
+                return [];
+            }
+        }
+
         async _generateChangeApply(tid) {
             if (!!this.changeApplyData) return;
             const helper = this.ctx.helper;
@@ -1382,7 +1444,6 @@ module.exports = app => {
                 c.used_ratio = c.used_pt;
                 c.is_import = 0;
             }
-            const importChange = await this.ctx.service.stageImportChange.get
             return this.changeInfo;
         }
 

+ 63 - 1
builder_report_index_define.js

@@ -327,6 +327,64 @@ const change_audit = {
     ],
 };
 
+const import_change = {
+    name: '变更令(mem_import_change)',
+    remark: '',
+    id: 83,
+    key: 'mem_import_change',
+    prefix: '变更令',
+    cols: [
+        { name: '变更令id', field: 'cid', type: dataType.str },
+        { name: '变更令号', field: 'code', type: dataType.str },
+        { name: '批复文号', field: 'w_code', type: dataType.str },
+        { name: '批复编号', field: 'p_code', type: dataType.str },
+        { name: '变更名称', field: 'name', type: dataType.str },
+        { name: '桩号', field: 'peg', type: dataType.str },
+        { name: '原设计图名称', field: 'org_name', type: dataType.str },
+        { name: '原图号', field: 'org_code', type: dataType.str },
+        { name: '变更设计图名称', field: 'new_name', type: dataType.str },
+        { name: '变更图号', field: 'new_code', type: dataType.str },
+        { name: '工程变更理由及内容', field: 'content', type: dataType.str },
+        { name: '工程变更合同依据', field: 'basis', type: dataType.str },
+        { name: '变更工程量数量计算式', field: 'expr', type: dataType.str },
+        { name: '备注', field: 'memo', type: dataType.str },
+        { name: '变更类型', field: 'type', type: dataType.str },
+        { name: '变更类别', field: 'class', type: dataType.int },
+        { name: '变更性质', field: 'quality', type: dataType.int },
+        { name: '变更提出单位', field: 'company', type: dataType.str },
+        { name: '费用承担方', field: 'charge', type: dataType.int },
+        { name: '金额', field: 'total_price', type: dataType.currency },
+        { name: '变更状态发生时间(时间戳)', field: 'cin_time', type: dataType.str },
+        { name: '完成审批时间(时间戳)', field: 'sin_time', type: dataType.str },
+    ],
+};
+const import_change_bills = {
+    name: '变更清单(mem_import_change_bills)',
+    remark: '',
+    id: 84,
+    key: 'mem_import_change_bills',
+    prefix: '变更清单',
+    cols: [
+        { name: '变更令id', field: 'cid', type: dataType.str },
+        { name: '签约清单id或台账id', field: 'lid', type: dataType.str },
+        { name: '清单编号', field: 'code', type: dataType.str },
+        { name: '名称', field: 'name', type: dataType.str },
+        { name: '单位', field: 'unit', type: dataType.str },
+        { name: '单价', field: 'unit_price', type: dataType.currency },
+        { name: '原-数量', field: 'o_qty', type: dataType.currency },
+        { name: '变更-数量', field: 'c_qty', type: dataType.currency },
+        { name: '审批变更后-数量', field: 's_qty', type: dataType.currency },
+        { name: '部位明细', field: 'bwmx', type: dataType.str },
+        { name: '变更详情', field: 'detail', type: dataType.str },
+        { name: '项目节编号', field: 'xmj_code', type: dataType.str },
+        { name: '细目', field: 'xmj_jldy', type: dataType.str },
+        { name: '单位工程', field: 'xmj_dwgc', type: dataType.str },
+        { name: '分部工程', field: 'xmj_fbgc', type: dataType.str },
+        { name: '分项工程', field: 'xmj_fxgc', type: dataType.str },
+        { name: '审批流程中读取数量', field: 'sp_qty', type: dataType.currency },
+    ],
+};
+
 const change_project = {
     name: '变更立项(mem_change_project)',
     remark: '',
@@ -483,6 +541,7 @@ const change_plan = {
         { name: '方案描述', field: 'memo', type: dataType.str },
         { name: '金额', field: 'total_price', type: dataType.currency },
         { name: '小数位数设置JSON', field: 'decimal', type: dataType.int },
+        { name: '计算式', field: 'expr', type: dataType.str },
     ],
 };
 const change_plan_audit = {
@@ -545,6 +604,9 @@ const change_plan_bills = {
         { name: '金额_8', field: 'tp_8', type: dataType.currency },
         { name: '数量_9', field: 'qty_9', type: dataType.currency },
         { name: '金额_9', field: 'tp_9', type: dataType.currency },
+        { name: '新增单价', field: 'new_up', type: dataType.int},
+        { name: 'ex_memo1', field: 'ex_memo1', type: dataType.str},
+        { name: 'ex_memo2', field: 'ex_memo2', type: dataType.str},
     ]
 };
 
@@ -2499,7 +2561,7 @@ const defines = [
     month_progress,
     stage_bills, stage_bills_compare,
     stage_jgcl, stage_bonus, stage_other, stage_safe_prod, stage_temp_land,
-    change, change_bills, change_audit,
+    change, change_bills, change_audit, import_change, import_change_bills,
     change_apply, change_apply_audit, change_apply_bills,
     change_plan, change_plan_audit, change_plan_bills,
     change_project, change_project_audit,