MaiXinRong пре 4 година
родитељ
комит
3a86bb8e61
4 измењених фајлова са 110 додато и 1 уклоњено
  1. 0 1
      app/public/js/stage_change.js
  2. 9 0
      app/service/report.js
  3. 33 0
      app/service/report_memory.js
  4. 68 0
      builder_report_index_define.js

+ 0 - 1
app/public/js/stage_change.js

@@ -35,7 +35,6 @@ class ChangeAnalysis {
         change.attachments = change.detail.attachments;
         change.bills = change.detail.bills;
         for (const b of change.bills) {
-            console.log(b);
             const aub = change.detail.addUsedBills.find(function (x) {
                 return x.id === b.id;
             });

+ 9 - 0
app/service/report.js

@@ -210,6 +210,15 @@ module.exports = app => {
                             runnableRst.push(service.ledgerTag.getAllDataByCondition({ where: { tid: params.tender_id } }));
                             runnableKey.push(filter);
                             break;
+                        case 'mem_change_info':
+                            runnableRst.push(service.reportMemory.getChangeInfo(params.tender_id, params.stage_id));
+                            runnableKey.push(filter);
+                            break;
+                        case 'mem_change_info_bills':
+                            runnableRst.push(service.reportMemory.getChangeInfoBills(params.tender_id, params.stage_id));
+                            runnableKey.push(filter);
+                            break;
+                            break;
                         default:
                             break;
                     }

+ 33 - 0
app/service/report_memory.js

@@ -1075,6 +1075,39 @@ module.exports = app => {
             }
             return result;
         }
+
+        async getChangeInfo(tid, sid) {
+            await this.ctx.service.tender.checkTender(tid);
+            await this.ctx.service.stage.checkStage(sid);
+            this.changeInfo = await this.ctx.service.change.getChangeAndUsedInfo(tid);
+            const usedChangesId = await ctx.service.stageChange.getStageUsedChangeId(sid);
+            for (const c of this.changeInfo) {
+                c.cur_used = usedChangesId.indexOf(c.cid) >= 0;
+            }
+            return this.changeInfo;
+        }
+
+        async getChangeInfoBills(tid, sid) {
+            if (!this.changeInfo) await this.getChangeInfo(tid, sid);
+            this.changeInfoBills = [];
+            for (const c of this.changeInfo) {
+                const cb = await this.ctx.service.stageChange.getUsedData(tid, c.cid);
+                const curUsedBills = await this.ctx.service.stageChange.getStageUsedData(sid, cid);
+                for (const b of cb) {
+                    b.qty = this.ctx.helper._.toNumber(b.samount);
+                    b.valid_qty = ZhCalc.sub(b.qty, b.used_qty);
+                    b.tp = this.ctx.helper.round(this.ctx.helper.mul(b.qty, b.unit_price), this.ctx.tender.info.decimal.tp);
+                    const pos = this.ctx.helper._.filter(curUsedBills, { cbid: b.id });
+                    b.cur_qty = 0;
+                    for (const p of pos) {
+                        b.cur_qty = ZhCalc.add(b.cur_qty, p.qty);
+                    }
+                    b.cur_used = !!data.cur_qty;
+                    this.changeInfoBills.push(b);
+                }
+            }
+            return this.changeInfoBills;
+        }
     }
 
     return ReportMemory;

+ 68 - 0
builder_report_index_define.js

@@ -1621,6 +1621,73 @@ const stage_change = {
     ],
 };
 
+const stage_change_info = {
+    name: '变更概况(mem_change_info)',
+    remark: '',
+    id: 65,
+    key: 'mem_change_info',
+    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, tag: { type: 'tp' } },
+        { name: '变更状态发生时间(时间戳)', field: 'cin_time', type: dataType.str },
+        { name: '完成审批时间(时间戳)', field: 'sin_time', type: dataType.str },
+        { name: '金额_1', field: 'tp_1', type: dataType.currency, tag: { type: 'tp' } },
+        { name: '金额_2', field: 'tp_2', type: dataType.currency, tag: { type: 'tp' } },
+        { name: '金额_3', field: 'tp_3', type: dataType.currency, tag: { type: 'tp' } },
+        { name: '金额_4', field: 'tp_4', type: dataType.currency, tag: { type: 'tp' } },
+        { name: '金额_5', field: 'tp_5', type: dataType.currency, tag: { type: 'tp' } },
+        { name: '金额_6', field: 'tp_6', type: dataType.currency, tag: { type: 'tp' } },
+        { name: '金额_7', field: 'tp_7', type: dataType.currency, tag: { type: 'tp' } },
+        { name: '金额_8', field: 'tp_8', type: dataType.currency, tag: { type: 'tp' } },
+        { name: '金额_9', field: 'tp_9', type: dataType.currency, tag: { type: 'tp' } },
+        { name: '附件名称列表', field: 'attNames', type: dataType.currency },
+        { name: '截止本期-已执行(%)', field: 'used_ratio', type: dataType.currency },
+        { name: '本期使用', field: 'cur_used', type: dataType.int },
+    ],
+};
+const stage_change_info_bills = {
+    name: '变更概况-清单(mem_change_info_bills)',
+    remark: '',
+    id: 66,
+    key: 'mem_change_info_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, tag: { type: 'up' } },
+        { name: '变更详情', field: 'detail', type: dataType.str },
+        { name: '变更部位', field: 'bwmx', type: dataType.str },
+        { name: '数量', field: 'qty', type: dataType.currency },
+        { name: '金额', field: 'tp', type: dataType.currency },
+        { name: '截止本期-已变更', field: 'used_qty', type: dataType.currency },
+        { name: '可执行', field: 'valid_qty', type: dataType.currency },
+        { name: '本期使用数量', field: 'cur_qty', type: dataType.currency },
+        { name: '本期使用', field: 'cur_used', type: dataType.int },
+    ],
+};
+
 // 定制表
 // 季华项目 中间计量报表--变更相关 汇总对比表
 const jh_im_change = {
@@ -1905,6 +1972,7 @@ const defines = [
     ledger_tag, stage_tag, all_tag,
     jh_im_change, jh_gather_im_change, jh_gather_stage_bills_compare,
     custom_select,
+    stage_change_info, stage_change_info_bills,
 ];
 for (const d of defines) {
     exportTableDefine(d);