瀏覽代碼

进入计量台账时,删除无效的计量数据

MaiXinRong 5 年之前
父節點
當前提交
54569f8875
共有 4 個文件被更改,包括 42 次插入2 次删除
  1. 3 1
      app/controller/stage_controller.js
  2. 16 0
      app/service/stage.js
  3. 0 1
      app/service/stage_bills.js
  4. 23 0
      test/app/service/report_memory_temp.test.js

+ 3 - 1
app/controller/stage_controller.js

@@ -150,6 +150,9 @@ module.exports = app => {
                 const renderData = await this._getDefaultRenderData(ctx);
                 [renderData.ledgerSpread, renderData.posSpread] = this._getSpreadSetting();
                 renderData.changeConst = changeConst;
+                if (!ctx.stage.readOnly) {
+                    await ctx.service.stage.deleteInvalidData(ctx.stage.id);
+                }
                 // renderData.ledgerData = await ctx.service.ledger.getData(ctx.tender.id);
                 // const dgnData = await ctx.service.stageBillsDgn.getDgnData(ctx.tender.id);
                 // for (const d of dgnData) {
@@ -687,7 +690,6 @@ module.exports = app => {
                 }
                 await this.layout('stage/pay.ejs', renderData, 'stage/pay_modal.ejs');
             } catch (err) {
-                console.log(err);
                 this.log(err);
                 ctx.redirect('/tender/' + ctx.tender.id + '/measure/stage');
             }

+ 16 - 0
app/service/stage.js

@@ -509,6 +509,22 @@ module.exports = app => {
             }
             return list;
         }
+
+        async deleteInvalidData(sid) {
+            const sqlParam = [sid];
+            const billsSql = 'DELETE FROM ' + this.ctx.service.stageBills.tableName +
+                '  WHERE (ISNULL(`contract_qty`) or `contract_qty` = 0) and ' +
+                '    (ISNULL(`contract_tp`) or `contract_tp` = 0) and ' +
+                '    (ISNULL(`qc_qty`) or `qc_qty` = 0) and ' +
+                '    (ISNULL(`qc_tp`) or `qc_tp` = 0) and ' +
+                '    (ISNULL(`postil`) or `postil` = \'\') and sid = ?';
+            await this.db.query(billsSql, sqlParam);
+            const posSql = 'DELETE FROM ' + this.ctx.service.stagePos.tableName +
+                '  WHERE (ISNULL(`contract_qty`) or `contract_qty` = 0) and' +
+                '    (qc_qty = 0 or ISNULL(qc_qty)) and' +
+                '    (ISNULL(`postil`) or `postil` = \'\') and sid = ?';
+            await this.db.query(posSql, sqlParam);
+        }
     }
 
     return Stage;

+ 0 - 1
app/service/stage_bills.js

@@ -228,7 +228,6 @@ module.exports = app => {
             if (ledgerData.is_tp && insertData.contract_tp !== undefined) {
                 d.contract_tp = this.ctx.helper.round(insertData.contract_tp, info.decimal.tp);
             }
-            console.log(d);
             await transaction.insert(this.tableName, d);
         }
 

+ 23 - 0
test/app/service/report_memory_temp.test.js

@@ -79,6 +79,15 @@ const testSetting4 = {
     tenderId: 2436,
     sorder: 1,
 };
+const testSetting5 = {
+    postData: {
+        account: 'fuqingqing',
+        project: 'P0505',
+        project_password: '123456',
+    },
+    tenderId: 2142,
+    sorder: 4,
+};
 
 const reportDataAnalysis = require('../../../app/lib/rpt_data_analysis');
 
@@ -149,7 +158,21 @@ describe('test/app/service/report_memory.test.js', () => {
         const stage = yield ctx.service.stage.getDataByCondition({tid: testSetting.tenderId, order: testSetting.sorder});
         data.mem_stage_im_tz = yield ctx.service.reportMemory.getStageImTzData(stage.tid, stage.id, [], false);
         yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_im_tz, "", "\t"), path.join(savePath, 'mem_stage_im_tz.json'));
+        console.log(ctx.helper._.map(data.mem_stage_im_tz, 'calc_memo'));
         data.mem_stage_im_tz_bills = yield ctx.service.reportMemory.getStageImTzBillsData(stage.tid, stage.id, [], false);
         yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_im_tz_bills, "", "\t"), path.join(savePath, 'mem_stage_im_tz_bills.json'));
     });
+    it('test getStageImZlData', function* () {
+        const ctx = app.mockContext();
+        const testSetting = testSetting5;
+        ctx.session = {};
+        const loginResult = yield ctx.service.projectAccount.accountLogin(testSetting.postData, 2);
+        assert(loginResult);
+
+        const data = {};
+        const stage = yield ctx.service.stage.getDataByCondition({tid: testSetting.tenderId, order: testSetting.sorder});
+        data.mem_stage_im_zl = yield ctx.service.reportMemory.getStageImZlData(stage.tid, stage.id, []);
+        yield ctx.helper.saveBufferFile(JSON.stringify(data.mem_stage_im_zl, "", "\t"), path.join(savePath, 'mem_stage_im_zl.json'));
+        console.log(ctx.helper._.map(data.mem_stage_im_zl, 'calc_memo'));
+    });
 });