ソースを参照

列显示,新增小修保养

MaiXinRong 1 年間 前
コミット
4736e08773
2 ファイル変更24 行追加12 行削除
  1. 1 0
      app/const/spread.js
  2. 23 12
      app/service/project_spread.js

+ 1 - 0
app/const/spread.js

@@ -451,6 +451,7 @@ const ProjectSpreadTemplate = [
     { code: 'gl', name: '公路', template: glSpreadTemplate, isDefault: 1 },
     { code: 'sz', name: '市政', template: szSpreadTemplate },
     { code: 'fj', name: '房建', template: fjSpreadTemplate },
+    { code: 'xxby', name: '小修保养', template: glSpreadTemplate },
 ];
 const BaseSpreadColSetting = {
     Ledger: {

+ 23 - 12
app/service/project_spread.js

@@ -98,16 +98,20 @@ module.exports = app => {
             return [billsSpread, posSpread];
         }
 
+        async initProjectSpreadByTemplate(id, spreadTemplate) {
+            const data = JSON.parse(JSON.stringify(spreadTemplate.template));
+            [data.tz_ledger_bills_spread, data.tz_ledger_pos_spread] = this.generateRelaSpread('tz_ledger_set', data.tz_ledger_set);
+            [data.tz_stage_bills_spread, data.tz_stage_pos_spread] = this.generateRelaSpread('tz_stage_set', data.tz_stage_set);
+            [data.gcl_ledger_bills_spread, data.gcl_ledger_pos_spread] = this.generateRelaSpread('gcl_ledger_set', data.gcl_ledger_set);
+            [data.gcl_stage_bills_spread, data.gcl_stage_pos_spread] = this.generateRelaSpread('gcl_stage_set', data.gcl_stage_set);
+            const updateData = { pid: id, code: spreadTemplate.code, name: spreadTemplate.name, is_default: spreadTemplate.isDefault ? 1 : 0 };
+            JsonFields.forEach(jf => { if (data[jf]) updateData[jf] = JSON.stringify(data[jf]) });
+            await this.db.insert(this.tableName, updateData);
+        }
+
         async initProjectSpread(id) {
-            for (const SpreadTemplate of SpreadConst.ProjectSpreadTemplate) {
-                const data = JSON.parse(JSON.stringify(SpreadTemplate.template));
-                [data.tz_ledger_bills_spread, data.tz_ledger_pos_spread] = this.generateRelaSpread('tz_ledger_set', data.tz_ledger_set);
-                [data.tz_stage_bills_spread, data.tz_stage_pos_spread] = this.generateRelaSpread('tz_stage_set', data.tz_stage_set);
-                [data.gcl_ledger_bills_spread, data.gcl_ledger_pos_spread] = this.generateRelaSpread('gcl_ledger_set', data.gcl_ledger_set);
-                [data.gcl_stage_bills_spread, data.gcl_stage_pos_spread] = this.generateRelaSpread('gcl_stage_set', data.gcl_stage_set);
-                const updateData = { pid: id, code: SpreadTemplate.code, name: SpreadTemplate.name, is_default: SpreadTemplate.isDefault };
-                JsonFields.forEach(jf => { if (data[jf]) updateData[jf] = JSON.stringify(data[jf]) });
-                await this.db.insert(this.tableName, updateData);
+            for (const template of SpreadConst.ProjectSpreadTemplate) {
+                await this.initProjectSpreadByTemplate(id, template);
             }
         }
 
@@ -123,9 +127,16 @@ module.exports = app => {
                 columns: ['code', 'name', 'is_default'],
                 where: { pid: id },
             });
-            if (result.length > 0) return result;
-
-            await this.initProjectSpread(id);
+            if (result.length === SpreadConst.ProjectSpreadTemplate.length) return result;
+
+            if (result.length === 0) {
+                await this.initProjectSpread(id);
+            } else {
+                for (const spreadTemplate of SpreadConst.ProjectSpreadTemplate) {
+                    const SpreadType = result.find(x => { return x.code === spreadTemplate.code; });
+                    if (!SpreadType) await this.initProjectSpreadByTemplate(id, spreadTemplate);
+                }
+            }
             return await this.getAllDataByCondition({
                 columns: ['code', 'name', 'is_default'],
                 where: { pid: id },