Forráskód Böngészése

签约合同价、预付款缓存相关

MaiXinRong 2 éve
szülő
commit
0b01630e6a

+ 1 - 0
app/controller/tender_controller.js

@@ -750,6 +750,7 @@ module.exports = app => {
                         data.precision, ctx.tender.info.precision, ctx.tender.info.decimal);
                 } else {
                     await ctx.service.tenderInfo.saveTenderInfo(ctx.tender.id, data);
+                    if (data.deal_param) ctx.service.tenderCache.updateContractPriceCache(ctx.tender);
                 }
                 ctx.body = { err: 0, msg: '', data: JSON.parse(ctx.request.body.data) };
             } catch (err) {

+ 1 - 0
app/service/advance_audit.js

@@ -322,6 +322,7 @@ module.exports = app => {
                     await this.ctx.helper.sendWechat(users, smsTypeConst.const.YFK, smsTypeConst.judge.result.toString(), wxConst.template.advance, wechatData);
                 }
                 await transaction.commit();
+                if (!nextAudit) this.ctx.service.tenderCache.updateAdvanceCache(audit.tid);
             } catch (err) {
                 await transaction.rollback();
                 throw err;

+ 17 - 0
app/service/tender_cache.js

@@ -250,6 +250,23 @@ module.exports = app => {
             await transaction.update(this.tableName, data);
         }
 
+        async updateAdvanceCache(tid) {
+            const advance_tp = await this.ctx.service.advance.getSumAdvance(tender.id);
+            await this.db.update(this.tableName, { id: tid, advance_tp });
+        }
+
+        async updateChangeCache(tid) {
+            const sql = `SELECT SUM(cast (total_price as decimal(18,6))) AS total_price, SUM(cast (positive_tp as decimal(18,6))) AS positive_tp, SUM(cast (negative_tp as decimal(18,6))) AS negative_tp 
+              FROM ${this.ctx.service.change.tableName} WHERE tid = ? AND status = ? And valid = 1`;
+            const changeSum = await this.db.queryOne(sql, [tender.id, auditConst.flow.status.checked]);
+            await this.db.update(this.tableName, { id: tid, change_tp: changeSum.total_price || 0 });
+        }
+
+        async updateContractPriceCache(tender) {
+            const tenderInfo = await this.ctx.service.tenderInfo.getTenderInfo(tender.id, tender.project_id);
+            await this.db.update(this.tableName, { id: tender.id, contract_price: tenderInfo.deal_param.contractPrice || 0 });
+        }
+
         async _refreshLedgerRela(tender, data) {
             data.ledger_status = tender.ledger_status || 0;
             if (tender.ledger_status === auditConst.ledger.status.uncheck) {

+ 10 - 2
config/menu.js

@@ -33,13 +33,21 @@ const menu = {
         children: null,
         caption: '项目',
     },
+    file: {
+        name: '电子档案',
+        icon: 'fa-file',
+        display: true,
+        url: '/file',
+        children: null,
+        caption: '电子档案',
+    },
     budget: {
-        name: '动态决算',
+        name: '动态投资',
         icon: 'fa-pie-chart',
         display: true,
         url: '/budget',
         children: null,
-        caption: '动态决算',
+        caption: '动态投资',
     },
     management: {
         name: '项目管理',