Browse Source

新增期,金额缓存相关

MaiXinRong 1 year ago
parent
commit
91b8e04f40
4 changed files with 41 additions and 0 deletions
  1. 8 0
      app/const/spread.js
  2. 16 0
      app/service/project_spread.js
  3. 2 0
      app/service/stage.js
  4. 15 0
      db_script/project_spread.js

+ 8 - 0
app/const/spread.js

@@ -595,6 +595,13 @@ const withoutClReplace = {
         {title: '设计量', colSpan: '1', rowSpan: '2', field: 'sgfh_qty', hAlign: 2, width: 120, type: 'Number'},
     ],
 };
+const SpreadSpec = {
+    gcl_stage_set: {
+        pos: [
+            { condition: { key: 'field', value: ['name', 'position'] }, update: { readOnly: false } },
+        ]
+    }
+};
 
 const withCl = {
     ledger: {
@@ -1194,6 +1201,7 @@ module.exports = {
     BaseSetCol,
     ProjectSpreadTemplate,
     BaseSpreadColSetting,
+    SpreadSpec,
     withoutClReplace,
     withCl,
     withoutCl,

+ 16 - 0
app/service/project_spread.js

@@ -74,11 +74,27 @@ module.exports = app => {
             return spreadSetting;
         }
 
+        updateSpreadWithSpec(spreadSetting, specSetting) {
+            if (!specSetting) return;
+            for (const s of specSetting) {
+                for (const c of spreadSetting.cols) {
+                    if (s.condition.value.indexOf(c[s.condition.key]) >= 0) {
+                        this._.assignIn(c, s.update);
+                    }
+                }
+            }
+        }
+
         generateRelaSpread(colSetType, colSet) {
             const baseSetCol = colSetType.indexOf('stage') > 0 ? SpreadConst.BaseSetCol.Stage : SpreadConst.BaseSetCol.Ledger;
             const baseSpreadColSetting = colSetType.indexOf('stage') > 0 ? SpreadConst.BaseSpreadColSetting.Stage : SpreadConst.BaseSpreadColSetting.Ledger;
             const billsSpread = this.generateSpreadSetting(colSet, SpreadConst.EmptySpreadSetting[colSetType].bills, baseSetCol, baseSpreadColSetting.bills);
             const posSpread = this.generateSpreadSetting(colSet, SpreadConst.EmptySpreadSetting[colSetType].pos, baseSetCol, baseSpreadColSetting.pos, 'pos');
+            const spreadSpec = SpreadConst.SpreadSpec[colSetType];
+            if (spreadSpec) {
+                this.updateSpreadWithSpec(billsSpread, spreadSpec.bills);
+                this.updateSpreadWithSpec(posSpread, spreadSpec.pos);
+            }
             return [billsSpread, posSpread];
         }
 

+ 2 - 0
app/service/stage.js

@@ -542,6 +542,8 @@ module.exports = app => {
                 if (preStage && preCheckedStage && preStage.order === preCheckedStage.order) {
                     const priceCalc = new RevisePrice(this.ctx);
                     pcTp = await priceCalc.newStagePriceChange(newStage, preStage, transaction);
+                }
+                if (order === 0 || (preStage && preCheckedStage && preStage.order === preCheckedStage.order)) {
                     await this.ctx.service.tenderCache.updateStageCache4Add(transaction, newStage, pcTp);
                 }
                 // 新增期拷贝报表相关配置/签名角色 等

+ 15 - 0
db_script/project_spread.js

@@ -43,12 +43,27 @@ const generateSpreadSetting = function(colSet, emptyBase, BaseSetCol, BaseSpread
     }
     return spreadSetting;
 };
+const updateSpreadWithSpec = function(spreadSetting, specSetting) {
+    if (!specSetting) return;
+    for (const s of specSetting) {
+        for (const c of spreadSetting.cols) {
+            if (s.condition.value.indexOf(c[s.condition.key]) >= 0) {
+                this._.assignIn(c, s.update);
+            }
+        }
+    }
+};
 
 const generateRelaSpread = function (colSetType, colSet) {
     const baseSetCol = colSetType.indexOf('stage') > 0 ? SpreadConst.BaseSetCol.Stage : SpreadConst.BaseSetCol.Ledger;
     const baseSpreadColSetting = colSetType.indexOf('stage') > 0 ? SpreadConst.BaseSpreadColSetting.Stage : SpreadConst.BaseSpreadColSetting.Ledger;
     const billsSpread = generateSpreadSetting(colSet, SpreadConst.EmptySpreadSetting[colSetType].bills, baseSetCol, baseSpreadColSetting.bills);
     const posSpread = generateSpreadSetting(colSet, SpreadConst.EmptySpreadSetting[colSetType].pos, baseSetCol, baseSpreadColSetting.pos, 'pos');
+    const spreadSpec = SpreadConst.SpreadSpec[colSetType];
+    if (spreadSpec) {
+        this.updateSpreadWithSpec(billsSpread, spreadSpec.bills);
+        this.updateSpreadWithSpec(posSpread, spreadSpec.pos);
+    }
     return [billsSpread, posSpread];
 };