Browse Source

概算投资,新增部分列

MaiXinRong 3 years ago
parent
commit
baece5eebb
3 changed files with 19 additions and 3 deletions
  1. 6 0
      app/base/base_budget_service.js
  2. 8 2
      app/controller/budget_controller.js
  3. 5 1
      app/view/budget/list.ejs

+ 6 - 0
app/base/base_budget_service.js

@@ -454,6 +454,12 @@ class BaseBudget extends TreeService {
             throw err;
         }
     }
+
+    async getSumTp(bid) {
+        const sql = 'SELECT Sum(total_price) As total_price FROM ' + this.tableName + ' Where bid = ?';
+        const result = await this.db.queryOne(sql, [bid]);
+        return result.total_price;
+    }
 }
 
 module.exports = BaseBudget;

+ 8 - 2
app/controller/budget_controller.js

@@ -30,8 +30,15 @@ module.exports = app => {
                     jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.budget.list),
                     auditConst,
                 };
-                renderData.budgetList = await ctx.service.budget.getBudget(ctx.session.sessionUser.is_admin)
+                renderData.budgetList = await ctx.service.budget.getBudget(ctx.session.sessionUser.is_admin);
                 renderData.budgetStd = await ctx.service.budgetStd.getDataByProjectId(ctx.session.sessionProject.id);
+                for (const bl of renderData.budgetList) {
+                    const std = renderData.budgetStd.find(x => { return x.id === bl.std_id; });
+                    bl.std_name = std ? std.name : '';
+                    bl.gu_tp = await ctx.service.budgetGu.getSumTp(bl.id);
+                    bl.gai_tp = await ctx.service.budgetGai.getSumTp(bl.id);
+                    bl.yu_tp = await ctx.service.budgetYu.getSumTp(bl.id);
+                }
                 renderData.tenderList = await ctx.service.tender.getList4Select('stage');
                 const accountList = await ctx.service.projectAccount.getAllDataByCondition({
                     where: { project_id: ctx.session.sessionProject.id, enable: 1 },
@@ -219,7 +226,6 @@ module.exports = app => {
                 headerFont: '12px 微软雅黑',
                 font: '12px 微软雅黑',
             };
-            // todo 根据设置判断预算是否需要清单
             if (!needGcl) {
                 spreadSetting.cols = spreadSetting.cols.filter(x => {
                     return ['b_code', 'quantity', 'unit_price'].indexOf(x.field) < 0;

+ 5 - 1
app/view/budget/list.ejs

@@ -18,11 +18,15 @@
                 </div>
                 <% } else { %>
                 <table class="table table-hover table-bordered">
-                    <tr class="text-center"><th>项目名称</th><th>创建时间</th><th>操作</th></tr>
+                    <tr class="text-center"><th>项目名称</th><th>概预算标准</th><th>创建时间</th><th>投资估算</th><th>初步概算</th><th>施工图预算</th><th>操作</th></tr>
                     <% for (const bl of budgetList) { %>
                     <tr bid="<%- bl.id %>" bname="<%- bl.name %>" rela-tender="<%- bl.rela_tender %>" >
                         <td><a href="/budget/<%- bl.id %>/compare"><%- bl.name %></a></td>
+                        <td><%- bl.std_name %></td>
                         <td><%- ctx.moment(bl.in_time).format('YYYY-MM-DD HH:mm:ss') %></td>
+                        <td class="text-right"><%- (bl.gu_tp ? bl.gu_tp : '')%></td>
+                        <td class="text-right"><%- (bl.gai_tp ? bl.gai_tp : '')%></td>
+                        <td class="text-right"><%- (bl.yu_tp ? bl.yu_tp : '')%></td>
                         <td>
                             <% if (ctx.session.sessionUser.is_admin || bl.canEdit) { %>
                             <a href="javascript: void(0);" data-target="#modify-budget" class="btn btn-outline-primary btn-sm" onclick="showModal(this);">编辑</a>