From 4662f1bbbdebb2566184ed5f740f2904bc92da12 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=98wangjiuyun?= <‘1595161655@qq.com>
Date: Mon, 28 Oct 2024 17:05:31 +0800
Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E6=9C=AA=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../static/assets/js/project_budget.js        |  18 ++-
 .../static/assets/js/project_budget_cost.js   |  77 +++++-----
 .../js/project_budget_cost_project_manage.js  |  41 +++---
 .../static/assets/js/project_budget_income.js |  22 ++-
 .../static/assets/js/project_budget_plan.js   |  64 +++++++-
 .../static/assets/js/project_common.js        |  10 +-
 .../templates/admin/project_budget_edit.ftl   | 139 ++++++++++--------
 7 files changed, 231 insertions(+), 140 deletions(-)

diff --git a/src/main/resources/static/assets/js/project_budget.js b/src/main/resources/static/assets/js/project_budget.js
index 3b66599..46e77a6 100644
--- a/src/main/resources/static/assets/js/project_budget.js
+++ b/src/main/resources/static/assets/js/project_budget.js
@@ -728,13 +728,16 @@ function bindChangeableInput() {
     //税率改变
     $(".input-changeable-tax-rate").change(function () {
         var taxRate = f2($(this).val());
-        //找到对应的数量和单价
-        var amount = f2($(this).parent().parent().find(".input-changeable-amount").val());
-        var price = f5($(this).parent().parent().find(".input-changeable-price").val());
-        console.log(amount, price, taxRate);
-
-        $(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(amount * price / (1 + taxRate / 100)));
-        $(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(amount * price * taxRate /(100 + taxRate)));
+        var rowVal=$(this).parent().parent().find(".input-changeable-total-tax-include").val()
+        $(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(rowVal * (1 - (taxRate / 100))));
+        $(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(rowVal * (taxRate / 100)));
+    });
+    // 不含税金额改变
+    $(".input-changeable-total-tax-include").change(function () {
+        var rowVal  = f2($(this).val());
+        var taxRate=$(this).parent().parent().find(".input-changeable-tax-rate").val()
+        $(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(rowVal * (1 - (taxRate / 100))));
+        $(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(rowVal * (taxRate / 100)));
     });
 }
 
@@ -985,3 +988,4 @@ function updateBudgetPlanDetailDataUnsubmit(data,returnData) {
     //更新现金流量
     updateCashFlow();
 }
+
diff --git a/src/main/resources/static/assets/js/project_budget_cost.js b/src/main/resources/static/assets/js/project_budget_cost.js
index 890fd82..8f3c8b7 100644
--- a/src/main/resources/static/assets/js/project_budget_cost.js
+++ b/src/main/resources/static/assets/js/project_budget_cost.js
@@ -6,41 +6,41 @@ COST_DETAIL2={
     "num":[false,"序号","string"],
     "type":[false,"费用项目","string"],
     "category":[false,"采购类别","string"],
-    "name":[false,"名称","string"],
-    "unit":[false,"单位","string"],
-    "amount":[false,"数量","number"],
-    "price":[false,"单价","price"],
+    // "name":[false,"名称","string"],
+    // "unit":[false,"单位","string"],
+    // "amount":[false,"数量","number"],
+    // "price":[false,"单价","price"],
     "taxRate":[false,"税率","number"],
     "totalTaxInclude":[false,"含税总金额","number"],
     "totalTaxExclude":[false,"不含税金额","number"],
     "totalTax":[false,"税金","number"],
-    "contractParty":[false,"签约方","string"],
-    "isUnderwritten":[false,"是否垫资","string"],
-    "underwrittenAmount":[false,"预估垫资金额","number"],
-    "payTime":[false,"支出时间","string"],
-    "payAmount":[false,"支出金额","number"],
-    "payWay":[false,"付款方式","string"],
+    // "contractParty":[false,"签约方","string"],
+    // "isUnderwritten":[false,"是否垫资","string"],
+    // "underwrittenAmount":[false,"预估垫资金额","number"],
+    // "payTime":[false,"支出时间","string"],
+    // "payAmount":[false,"支出金额","number"],
+    // "payWay":[false,"付款方式","string"],
     "remark":[false,"备注","string"]
 };
 
 COST_DETAIL={
     "num":[false,"序号","string"],
     "type":[true,"费用项目","string"],
-    "category":[true,"采购类别","string"],
+    "category":[true,"产品大类","string"],
     "name":[true,"名称","string"],
-    "unit":[true,"单位","string"],
-    "amount":[true,"数量","number"],
-    "price":[true,"单价","price"],
+    // "unit":[true,"单位","string"],
+    // "amount":[true,"数量","number"],
+    // "price":[true,"单价","price"],
     "taxRate":[true,"税率","number"],
     "totalTaxInclude":[true,"含税总金额","number"],
     "totalTaxExclude":[true,"不含税金额","number"],
     "totalTax":[true,"税金","number"],
-    "contractParty":[false,"签约方","string"],
-    "isUnderwritten":[false,"是否垫资","string"],
-    "underwrittenAmount":[false,"预估垫资金额","number"],
-    "payTime":[false,"支出时间","string"],
-    "payAmount":[false,"支出金额","number"],
-    "payWay":[false,"付款方式","string"],
+    "contractParty":[false,"供应商","string"],
+    // "isUnderwritten":[false,"是否垫资","string"],
+    // "underwrittenAmount":[false,"预估垫资金额","number"],
+    // "payTime":[false,"支出时间","string"],
+    // "payAmount":[false,"支出金额","number"],
+    // "payWay":[false,"付款方式","string"],
     "remark":[false,"备注","string"]
 };
 /*
@@ -220,26 +220,26 @@ function appendTrCost() {
 
         '</select>'+
         '</td>'+
-        '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost"></td>'+
-        '<td width="80px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost""></td>'+
-        '<td width="100px"><input type="text" maxlength="14" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-amount input-changeable-amount-cost"></td>'+
-        '<td width="100px"><input type="text" min="0.00" max="9999999999.99" step="0.01" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost input-changeable-price input-changeable-price-cost"></td>'+
+        // '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost"></td>'+
+        // '<td width="80px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost""></td>'+
+        // '<td width="100px"><input type="text" maxlength="14" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-amount input-changeable-amount-cost"></td>'+
+        // '<td width="100px"><input type="text" min="0.00" max="9999999999.99" step="0.01" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost input-changeable-price input-changeable-price-cost"></td>'+
         '<td width="100px"><input type="text" min="0.00" max="99.99" step="0.01" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-tax-rate input-changeable-tax-rate-cost"></td>'+
-        '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-include input-changeable-total-tax-include-cost" readonly></td>'+
+        '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-include input-changeable-total-tax-include-cost"></td>'+
         '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-exclude input-changeable-total-tax-exclude-cost" readonly></td>'+
         '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax input-changeable-total-tax-cost" readonly></td>'+
         '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" ></td>\n' +
-        '<td width="60px">\n' +
-        '    <select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-underwritten">\n' +
-        '        <option value="0" ></option>\n' +
-        '        <option value="1" >是</option>\n' +
-        '        <option value="2" >否</option>\n' +
-        '    </select>\n' +
-        '</td>\n' +
-        '<td width="100px"><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-underwritten-amount-cost" ></td>\n' +
-        '<td width="130px"><input style="float: left;" type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" data-am-datepicker></td>\n' +
-        '<td width="100px"><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-pay-amount-cost" ></td>\n' +
-        '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" ></td>\n' +
+        // '<td width="60px">\n' +
+        // '    <select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-underwritten">\n' +
+        // '        <option value="0" ></option>\n' +
+        // '        <option value="1" >是</option>\n' +
+        // '        <option value="2" >否</option>\n' +
+        // '    </select>\n' +
+        // '</td>\n' +
+        // '<td width="100px"><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-underwritten-amount-cost" ></td>\n' +
+        // '<td width="130px"><input style="float: left;" type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" data-am-datepicker></td>\n' +
+        // '<td width="100px"><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-pay-amount-cost" ></td>\n' +
+        // '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" ></td>\n' +
         '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" ></td>\n' +
         '<td width="60px"><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>'+
     '</tr>';
@@ -319,6 +319,11 @@ function bindCostTotal() {
     $(".input-changeable-total-underwritten-amount-cost").change(function () {
         updateTotal("input-changeable-total-underwritten-amount-cost", "input-changeable-total-total-underwritten-amount-cost");
     });
+    $(".input-changeable-total-tax-include-cost").change(function () {
+        updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost");
+        updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost");
+        updateTotal("input-changeable-total-tax-cost", "input-changeable-total-total-tax-cost");
+    });
 }
 
 /**
diff --git a/src/main/resources/static/assets/js/project_budget_cost_project_manage.js b/src/main/resources/static/assets/js/project_budget_cost_project_manage.js
index 69044f5..57f6eea 100644
--- a/src/main/resources/static/assets/js/project_budget_cost_project_manage.js
+++ b/src/main/resources/static/assets/js/project_budget_cost_project_manage.js
@@ -4,13 +4,10 @@
 //COST_PROJECT_MANAGE_DETAIL_ARR=["type","name","detail","unit","amount","price","total","predictMethod","predictWhy","remark","deletable"];
 COST_PROJECT_MANAGE_DETAIL2={
     "num":[false,"序号","string"],
-    "type":[false,"财务费用类别","string"],
+    "type":[false,"费用类别","string"],
     "name1":[false,"业务项目","string"],
-    "name2":[false,"业务项目","string"],
     "detail":[false,"项目明细","string"],
-    "unit":[false,"单位","string"],
-    "amount":[false,"数量","number"],
-    "price":[false,"单价","price"],
+    "detail1":[false,"项目明细","string"],
     "total":[false,"总金额","number"],
     "payTime":[false,"支出时间","string"],
     "payAmount":[false,"支出金额","number"],
@@ -22,20 +19,17 @@ COST_PROJECT_MANAGE_DETAIL2={
 
 COST_PROJECT_MANAGE_DETAIL={
     "num":[false,"序号","string"],
-    "type":[true,"财务费用类别","string"],
+    "type":[false,"费用类别","string"],
     "name1":[false,"业务项目","string"],
-    "name2":[false,"业务项目","string"],
-    "detail":[true,"项目明细","string"],
-    "unit":[true,"单位","string"],
-    "amount":[true,"数量","number"],
-    "price":[true,"单价","price"],
-    "total":[true,"总金额","number"],
+    "detail":[false,"项目明细","string"],
+    "detail1":[false,"项目明细","string"],
+    "total":[false,"总金额","number"],
     "payTime":[false,"支出时间","string"],
     "payAmount":[false,"支出金额","number"],
     "predictMethod":[false,"预估计算方法","string"],
     "predictWhy":[false,"预估依据","string"],
     "remark":[false,"备注","string"],
-    "deletable":[true,"是否可删除","string"]
+    "deletable":[false,"是否可删除","string"]
 };
 
 SELECT_TYPE_CATEGORY_MAP_DATA_MANAGER={};
@@ -98,6 +92,15 @@ $(function () {
         var data = collectData("am-modal-prompt-input-cost-project-manage");
         //data = prepareAjaxData(data, COST_PROJECT_MANAGE_DETAIL_ARR, $("#id").val(),true);
         data = prepareAjaxDataVerify(data, COST_PROJECT_MANAGE_DETAIL2, $("#id").val());
+        var totalTotal=data.details.reduce((total,now)=>{
+            return now.total+total
+        },0)
+        var projectGrossProfitA=$('[name="projectGrossProfitA"]').val()
+        if(Number(totalTotal)> (Number(projectGrossProfitA)*0.1) ){
+            layuiAlert(`总金额合计不能超过毛利A(${projectGrossProfitA})的10%`);
+            return
+        }
+        // if(data.managePayAmountTotal)
         if(data){
             postAjax(base+"/project/budgetEditSaveCostProjectManageDetail", data, updateCostProjectManageData);
         }
@@ -144,10 +147,10 @@ function appendTrCostProjectManage() {
         '            <input type="hidden" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage am-modal-prompt-input-cost-project-manage-category2"/>\n' +
         '        </td>\n' +
         '        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage"></td>\n' +
-        '        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage"></td>\n' +
-        '        <td><input type="text" maxlength="14" class="number am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-amount-project-manage"></td>\n' +
-        '        <td><input type="text" min="0.00" max="9999999999.99" step="0.01" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-price-project-manage"></td>\n' +
-        '        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-project-manage" readonly></td>\n' +
+        // '        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-managde"></td>\n' +
+        // '        <td><input type="text" maxlength="14" class="number am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-amount-project-manage"></td>\n' +
+        // '        <td><input type="text" min="0.00" max="9999999999.99" step="0.01" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-price-project-manage"></td>\n' +
+        '        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-project-manage"></td>\n' +
         '        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" data-am-datepicker></td>\n' +
         '        <td><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-pay-amount-project-manage"></td>\n' +
         '        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage"></td>\n' +
@@ -212,6 +215,9 @@ function bindCostManageTotal() {
     $(".input-changeable-pay-amount-project-manage").change(function () {
         updateTotal("input-changeable-pay-amount-project-manage", "input-changeable-total-pay-amount-project-manage");
     });
+    $(".input-changeable-total-project-manage").change(function () {
+        updateTotal("input-changeable-total-project-manage", "input-changeable-total-total-project-manage");
+    });
 }
 
 /**
@@ -322,6 +328,7 @@ function bindChangeableInputProjectManage() {
 
         $(this).parent().parent().find(".input-changeable-total-project-manage").val(f2Fixed(amount*price));
     });
+
 }
 /**
  * 更新页面收入的数据【累加】
diff --git a/src/main/resources/static/assets/js/project_budget_income.js b/src/main/resources/static/assets/js/project_budget_income.js
index 6e5c54a..e6b58aa 100644
--- a/src/main/resources/static/assets/js/project_budget_income.js
+++ b/src/main/resources/static/assets/js/project_budget_income.js
@@ -5,12 +5,12 @@
 INCOME_DETAIL2={
     "num":[false,"序号","string"],
     "type":[false,"类别","string"],
-    "name":[false,"名称","string"],
-    "spec":[false,"规格类型","string"],
-    "param":[false,"参数","string"],
-    "unit":[false,"单位","string"],
-    "amount":[false,"数量","number"],
-    "price":[false,"单价","price"],
+    "name":[false,"产品大类","string"],
+    // "spec":[false,"规格类型","string"],
+    // "param":[false,"参数","string"],
+    // "unit":[false,"单位","string"],
+    // "amount":[false,"数量","number"],
+    // "price":[false,"单价","price"],
     "taxRate":[false,"税率","number"],
     "totalTaxInclude":[false,"含税总金额","number"],
     "totalTaxExclude":[false,"不含税金额","number"],
@@ -185,7 +185,7 @@ function appendTrIncome() {
         // '                        <td><input type="text" maxlength="8" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-amount input-changeable-amount-income"></td>\n' +
         // '                        <td><input type="text" min="0.00" max="9999999999.99" step="0.01" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-income input-changeable-price input-changeable-price-income"></td>\n' +
         '                        <td><input type="text" min="0.00" max="99.99" step="0.01" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-tax-rate input-changeable-tax-rate-income"></td>\n' +
-        '                        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-include input-changeable-total-tax-include-income" readonly></td>\n' +
+        '                        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-include input-changeable-total-tax-include-income"></td>\n' +
         '                        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-exclude input-changeable-total-tax-exclude-income" readonly></td>\n' +
         '                        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax input-changeable-total-tax-income" readonly></td>\n' +
         '                        <td><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>\n' +
@@ -216,6 +216,8 @@ function bindDeleteBtnIncome() {
         updateTotal("input-changeable-total-tax-include-income", "input-changeable-total-total-tax-include-income");
         updateTotal("input-changeable-total-tax-exclude-income", "input-changeable-total-total-tax-exclude-income");
         updateTotal("input-changeable-total-tax-income", "input-changeable-total-total-tax-income");
+
+
     });
 }
 
@@ -241,4 +243,10 @@ function bindIncomeTotal() {
         updateTotal("input-changeable-total-tax-exclude-income", "input-changeable-total-total-tax-exclude-income");
         updateTotal("input-changeable-total-tax-income", "input-changeable-total-total-tax-income");
     });
+    $(".input-changeable-total-tax-include-income").change(function () {
+        updateTotal("input-changeable-total-tax-include-income", "input-changeable-total-total-tax-include-income");
+        updateTotal("input-changeable-total-tax-exclude-income", "input-changeable-total-total-tax-exclude-income");
+        updateTotal("input-changeable-total-tax-income", "input-changeable-total-total-tax-income");
+    });
+
 }
\ No newline at end of file
diff --git a/src/main/resources/static/assets/js/project_budget_plan.js b/src/main/resources/static/assets/js/project_budget_plan.js
index 8a47d62..219d5ba 100644
--- a/src/main/resources/static/assets/js/project_budget_plan.js
+++ b/src/main/resources/static/assets/js/project_budget_plan.js
@@ -4,8 +4,10 @@
 BUDGET_PLAN_DETAIL_ARR=["month","deviceCost","engineerCost","projectManageCost","earnestMoneyCost","totalCost","saleIncome","earnestMoneyIncome","totalIncome","fundBalance","capitalInterest","underwrittenPlan","repaymentPlan"];
 BUDGET_PLAN_DETAIL2={
     "month":[true,"月份"],
-    "deviceCost":[false,"设备支出","number"],
-    "engineerCost":[false,"工程支出","number"],
+    "deviceCost":[false,"设备付款","number"],
+    "projectCost":[false,"工程付款","number"],
+    "serviceCost  ":[false,"服务付款","number"],
+    "otherCost":[false,"其他付款","number"],
     "projectManageCost":[false,"经营性开支","number"],
     "earnestMoneyCost":[false,"保证金支出","number"],
     "totalCost":[false,"支出合计","number"],
@@ -20,8 +22,10 @@ BUDGET_PLAN_DETAIL2={
 
 BUDGET_PLAN_DETAIL={
     "month":[true,"月份"],
-    "deviceCost":[true,"设备支出","number"],
-    "engineerCost":[true,"工程支出","number"],
+    "deviceCost":[true,"设备付款","number"],
+    "projectCost":[false,"工程付款","number"],
+    "serviceCost  ":[false,"服务付款","number"],
+    "otherCost":[false,"其他付款","number"],
     "projectManageCost":[true,"经营性开支","number"],
     "earnestMoneyCost":[true,"保证金支出","number"],
     "totalCost":[true,"支出合计","number"],
@@ -416,7 +420,11 @@ function appendTrBudgetPlan2() {
     var template = '<tr style="display: inline-block;">\n' +
         '        <td style="display: block;"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-month-budget-plan" readonly></td>\n' +
         '        <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-device-cost-budget-plan"></td>\n' +
-        '        <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-engineer-cost-budget-plan"></td>\n' +
+        // '        <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-engineer-cost-budget-plan"></td>\n' +
+        '        <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-projectCost-cost-budget-plan"></td>\n' +
+        '        <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-serviceCost-cost-budget-plan"></td>\n' +
+        '        <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-otherCost-cost-budget-plan"></td>\n' +
+
         '        <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-manage-cost-budget-plan"></td>\n' +
         '        <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-cost-budget-plan"></td>\n' +
         '        <td style="display: block;"><input type="text" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-total-cost-budget-plan" readonly></td>\n' +
@@ -548,17 +556,57 @@ function bindChangeableInputBudgetPlanDetail() {
         updatePageData();
     });
     //工程支出改变
-    $(".input-changeable-engineer-cost-budget-plan").change(function () {
+    $(".input-changeable-projectCost-cost-budget-plan").change(function () {
         var engineerCost = f2($(this).val());
         //找到对应的设备支出、经营性支出、保证金支出
         var deviceCost = f2($(this).parent().parent().find(".input-changeable-device-cost-budget-plan").val());
         var projectManageCost = f2($(this).parent().parent().find(".input-changeable-project-manage-cost-budget-plan").val());
         var earnestMoneyCost = f2($(this).parent().parent().find(".input-changeable-earnest-money-cost-budget-plan").val());
+        var engineerCost2 = f2($(this).parent().parent().find(".input-changeable-serviceCost-cost-budget-plan").val());
+        var engineerCost3 = f2($(this).parent().parent().find(".input-changeable-otherCost-cost-budget-plan").val());
 
         //更新本月所有项支出
-        $(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(f2Fixed(deviceCost+engineerCost+projectManageCost+earnestMoneyCost));
+        $(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(f2Fixed(deviceCost+engineerCost+projectManageCost+earnestMoneyCost+engineerCost2+engineerCost3));
         //更新所有月工程支出总额
-        updateBudgetPlanTotal("input-changeable-engineer-cost-budget-plan","input-total-engineer-cost-budget-plan");
+        updateBudgetPlanTotal("input-changeable-projectCost-cost-budget-plan","input-total-projectCost-cost-budget-plan");
+        //更新所有月支出总额
+        updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan");
+        updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-title-total-cost-budget-plan");
+
+        updatePageData();
+    });
+    $(".input-changeable-serviceCost-cost-budget-plan").change(function () {
+        var engineerCost = f2($(this).val());
+        //找到对应的设备支出、经营性支出、保证金支出
+        var deviceCost = f2($(this).parent().parent().find(".input-changeable-device-cost-budget-plan").val());
+        var projectManageCost = f2($(this).parent().parent().find(".input-changeable-project-manage-cost-budget-plan").val());
+        var earnestMoneyCost = f2($(this).parent().parent().find(".input-changeable-earnest-money-cost-budget-plan").val());
+        var engineerCost2 = f2($(this).parent().parent().find(".input-changeable-serviceCost-cost-budget-plan").val());
+        var engineerCost3 = f2($(this).parent().parent().find(".input-changeable-otherCost-cost-budget-plan").val());
+
+        //更新本月所有项支出
+        $(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(f2Fixed(deviceCost+engineerCost+projectManageCost+earnestMoneyCost+engineerCost2+engineerCost3));
+        //更新所有月工程支出总额
+        updateBudgetPlanTotal("input-changeable-serviceCost-cost-budget-plan","input-total-serviceCost-cost-budget-plan");
+        //更新所有月支出总额
+        updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan");
+        updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-title-total-cost-budget-plan");
+
+        updatePageData();
+    });
+    $(".input-changeable-otherCost-cost-budget-plan").change(function () {
+        var engineerCost = f2($(this).val());
+        //找到对应的设备支出、经营性支出、保证金支出
+        var deviceCost = f2($(this).parent().parent().find(".input-changeable-device-cost-budget-plan").val());
+        var projectManageCost = f2($(this).parent().parent().find(".input-changeable-project-manage-cost-budget-plan").val());
+        var earnestMoneyCost = f2($(this).parent().parent().find(".input-changeable-earnest-money-cost-budget-plan").val());
+        var engineerCost2 = f2($(this).parent().parent().find(".input-changeable-serviceCost-cost-budget-plan").val());
+        var engineerCost3 = f2($(this).parent().parent().find(".input-changeable-otherCost-cost-budget-plan").val());
+
+        //更新本月所有项支出
+        $(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(f2Fixed(deviceCost+engineerCost+projectManageCost+earnestMoneyCost+engineerCost2+engineerCost3));
+        //更新所有月工程支出总额
+        updateBudgetPlanTotal("input-changeable-otherCost-cost-budget-plan","input-total-otherCost-cost-budget-plan");
         //更新所有月支出总额
         updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan");
         updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-title-total-cost-budget-plan");
diff --git a/src/main/resources/static/assets/js/project_common.js b/src/main/resources/static/assets/js/project_common.js
index a1ec21e..798f7a1 100644
--- a/src/main/resources/static/assets/js/project_common.js
+++ b/src/main/resources/static/assets/js/project_common.js
@@ -260,14 +260,15 @@ function calCostInclude() {
     var costPurchaseBuildTaxInclude = inputVal("costPurchaseBuildTaxInclude");
     var costPurchaseServiceTaxInclude = inputVal("costPurchaseServiceTaxInclude");
     var costPurchaseOtherTaxInclude = inputVal("costPurchaseOtherTaxInclude");
-    var costProjectManageTaxInclude = inputVal("costProjectManageTaxInclude");
+    // var costProjectManageTaxInclude = inputVal("costProjectManageTaxInclude");
+    // f2(costProjectManageTaxInclude)
     var costOtherOtherTaxInclude = inputVal("costOtherOtherTaxInclude");
 
     var $costTotalTaxInclude = $("input[name='costTotalTaxInclude']");
 
     $costTotalTaxInclude.val(f2Fixed(f2(costPurchaseDeviceTaxInclude) +f2(costPurchaseBuildTaxInclude)
         +f2(costPurchaseServiceTaxInclude)+f2(costPurchaseOtherTaxInclude)
-        +f2(costProjectManageTaxInclude)+f2(costOtherOtherTaxInclude)));
+        +f2(costOtherOtherTaxInclude)));
 }
 /**
  * 统计成本(不含税),有一项没填就置空
@@ -277,7 +278,8 @@ function calCostExclude() {
     var costPurchaseBuildTaxExclude = inputVal("costPurchaseBuildTaxExclude");
     var costPurchaseServiceTaxExclude = inputVal("costPurchaseServiceTaxExclude");
     var costPurchaseOtherTaxExclude = inputVal("costPurchaseOtherTaxExclude");
-    var costProjectManageTaxExclude = inputVal("costProjectManageTaxExclude");
+    // var costProjectManageTaxExclude = inputVal("costProjectManageTaxExclude");\
+    // f2(costProjectManageTaxExclude)
     var costOtherOtherTaxExclude = inputVal("costOtherOtherTaxExclude");
 
 
@@ -285,7 +287,7 @@ function calCostExclude() {
 
     $costTotalTaxExclude.val(f2Fixed(f2(costPurchaseDeviceTaxExclude)+f2(costPurchaseBuildTaxExclude)
         +f2(costPurchaseServiceTaxExclude)+f2(costPurchaseOtherTaxExclude)
-        +f2(costProjectManageTaxExclude)+f2(costOtherOtherTaxExclude)));
+        +f2(costOtherOtherTaxExclude)));
 }
 /**
  * 统计其他其他税金
diff --git a/src/main/resources/templates/admin/project_budget_edit.ftl b/src/main/resources/templates/admin/project_budget_edit.ftl
index e95471f..7d95f91 100644
--- a/src/main/resources/templates/admin/project_budget_edit.ftl
+++ b/src/main/resources/templates/admin/project_budget_edit.ftl
@@ -107,8 +107,8 @@
                 <li><a href="#tab2">项目基本信息</a></li>
                 <li><a href="#tab3">收入明细表</a></li>
                 <li><a href="#tab8">收款计划表</a></li>
-                <li><a href="#tab4">采购成本明细表</a></li>
-                <li><a href="#tab5">项目管理费用</a></li>
+                <li><a href="#tab4">采购成本项目</a></li>
+                <li><a href="#tab5">项目管理费用表</a></li>
                 <li><a href="#tab6">资金计划表</a></li>
                 <li><a href="#tab7">项目预算信息</a></li>
             </ul>
@@ -794,7 +794,7 @@
 <#--                                                <td><input type="text" maxlength="14" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-amount input-changeable-amount-income" value="${Utils.format(incomeDetail.amount,'0')}" oninput="if(value.length>8)value=value.slice(0,8)" &lt;#&ndash;onkeyup="integerNumber(this)"&ndash;&gt;></td>-->
 <#--                                                <td><input type="text" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-income input-changeable-price input-changeable-price-income" value="${Utils.format2(incomeDetail.price,'0')}" oninput="if(value.length>19)value=value.slice(0,19)"></td>-->
                                                 <td><input type="text" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-tax-rate input-changeable-tax-rate-income" value="${Utils.format(incomeDetail.taxRate,'0')}" oninput="if(value.length>5)value=value.slice(0,5)"></td>
-                                                <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-include input-changeable-total-tax-include-income" value="${Utils.format(incomeDetail.totalTaxInclude,'0')}" readonly></td>
+                                                <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-include input-changeable-total-tax-include-income" value="${Utils.format(incomeDetail.totalTaxInclude,'0')}"></td>
                                                 <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-exclude input-changeable-total-tax-exclude-income" value="${Utils.format(incomeDetail.totalTaxExclude,'0')}" readonly></td>
                                                 <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax input-changeable-total-tax-income" value="${Utils.format(incomeDetail.totalTax,'0')}" readonly></td>
                                                 <td><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>
@@ -899,27 +899,27 @@
                                     <thead style="display:block;width: 1810px;">
                                         <tr>
                                             <th width="60px">序号</th>
-                                            <th width="70px">费用项目</th>
-                                            <th width="150px">采购类别</th>
-                                            <th width="100px">名称</th>
-                                            <th width="80px">单位</th>
-                                            <th width="100px">数量</th>
-                                            <th width="100px">单价</th>
+                                            <th width="70px">采购成本项目</th>
+                                            <th width="150px">产品大类</th>
+<#--                                            <th width="100px">名称</th>-->
+<#--                                            <th width="80px">单位</th>-->
+<#--                                            <th width="100px">数量</th>-->
+<#--                                            <th width="100px">单价</th>-->
                                             <th width="100px">税率(%)</th>
                                             <th width="100px">含税总金额(元)</th>
                                             <th width="100px">不含税金额(元)</th>
                                             <th width="100px">税金(元)</th>
-                                            <th width="100px">签约方</th>
-                                            <th width="60px">是否垫资</th>
-                                            <th width="100px">预估垫资金额(元)</th>
-                                            <th width="130px">支出时间</th>
-                                            <th width="100px">支出金额(元)</th>
-                                            <th width="100px">付款方式</th>
+                                            <th width="100px">供应商</th>
+<#--                                            <th width="60px">是否垫资</th>-->
+<#--                                            <th width="100px">预估垫资金额(元)</th>-->
+<#--                                            <th width="130px">支出时间</th>-->
+<#--                                            <th width="100px">支出金额(元)</th>-->
+<#--                                            <th width="100px">付款方式</th>-->
                                             <th width="100px">备注</th>
                                             <th width="60px">操作</th>
                                         </tr>
                                     </thead>
-                                    <tbody style="width: 1819px;">
+                                    <tbody style="width: 1810px;">
                                         <#if costDetails??>
                                             <#list costDetails as costDetail>
                                                 <tr>
@@ -947,26 +947,26 @@
                                                             </#list>
                                                         </select>
                                                     </td>
-                                                    <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.name!}"></td>
-                                                    <td width="80px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.unit!}"></td>
-                                                    <td width="100px"><input type="text" maxlength="8" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-amount input-changeable-amount-cost" value="${Utils.format(costDetail.amount,'0')}" oninput="if(value.length>8)value=value.slice(0,8)" <#--onkeyup="integerNumber(this)"-->></td>
-                                                    <td width="100px"><input type="text" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost input-changeable-price input-changeable-price-cost" value="${Utils.format2(costDetail.price,'0')}" oninput="if(value.length>19)value=value.slice(0,19)"></td>
+<#--                                                    <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.name!}"></td>-->
+<#--                                                    <td width="80px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.unit!}"></td>-->
+<#--                                                    <td width="100px"><input type="text" maxlength="8" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-amount input-changeable-amount-cost" value="${Utils.format(costDetail.amount,'0')}" oninput="if(value.length>8)value=value.slice(0,8)" &lt;#&ndash;onkeyup="integerNumber(this)"&ndash;&gt;></td>-->
+<#--                                                    <td width="100px"><input type="text" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost input-changeable-price input-changeable-price-cost" value="${Utils.format2(costDetail.price,'0')}" oninput="if(value.length>19)value=value.slice(0,19)"></td>-->
                                                     <td width="100px"><input type="text" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-tax-rate input-changeable-tax-rate-cost" value="${Utils.format(costDetail.taxRate,'0')}" oninput="if(value.length>5)value=value.slice(0,5)"></td>
-                                                    <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-include input-changeable-total-tax-include-cost" value="${Utils.format(costDetail.totalTaxInclude,'0')}" readonly></td>
+                                                    <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-include input-changeable-total-tax-include-cost" value="${Utils.format(costDetail.totalTaxInclude,'0')}"></td>
                                                     <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-exclude input-changeable-total-tax-exclude-cost" value="${Utils.format(costDetail.totalTaxExclude,'0')}" readonly></td>
                                                     <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax input-changeable-total-tax-cost" value="${Utils.format(costDetail.totalTax,'0')}" readonly></td>
                                                     <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.contractParty!}"></td>
-                                                    <td width="60px">
-                                                        <select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-underwritten">
-                                                            <option value="0" <#if costDetail.isUnderwritten == 0>selected</#if>></option>
-                                                            <option value="1" <#if costDetail.isUnderwritten == 1>selected</#if>>是</option>
-                                                            <option value="2" <#if costDetail.isUnderwritten == 2>selected</#if>>否</option>
-                                                        </select>
-                                                    </td>
-                                                    <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-underwritten-amount-cost" value="${Utils.format(costDetail.underwrittenAmount,'0')}"></td>
-                                                    <td width="130px"><input style="float: left;" type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${(costDetail.payTime?string("yyyy-MM-dd"))!}" data-am-datepicker></td>
-                                                    <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-pay-amount-cost" value="${Utils.format(costDetail.payAmount,'0')}"></td>
-                                                    <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.payWay!}"></td>
+<#--                                                    <td width="60px">-->
+<#--                                                        <select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-underwritten">-->
+<#--                                                            <option value="0" <#if costDetail.isUnderwritten == 0>selected</#if>></option>-->
+<#--                                                            <option value="1" <#if costDetail.isUnderwritten == 1>selected</#if>>是</option>-->
+<#--                                                            <option value="2" <#if costDetail.isUnderwritten == 2>selected</#if>>否</option>-->
+<#--                                                        </select>-->
+<#--                                                    </td>-->
+<#--                                                    <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-underwritten-amount-cost" value="${Utils.format(costDetail.underwrittenAmount,'0')}"></td>-->
+<#--                                                    <td width="130px"><input style="float: left;" type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${(costDetail.payTime?string("yyyy-MM-dd"))!}" data-am-datepicker></td>-->
+<#--                                                    <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-pay-amount-cost" value="${Utils.format(costDetail.payAmount,'0')}"></td>-->
+<#--                                                    <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.payWay!}"></td>-->
                                                     <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.remark!}"></td>
                                                     <td width="60px"><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>
                                                 </tr>
@@ -976,20 +976,20 @@
                                             <td width="60px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="总计" readonly></td>
                                             <td width="70px"></td>
                                             <td width="150px"></td>
-                                            <td width="100px"></td>
-                                            <td width="80px"></td>
-                                            <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-amount-cost" value="${Utils.format(costTotalAmount,'0')}" readonly <#--onkeyup="integerNumber(this)"-->></td>
-                                            <td width="100px"></td>
+<#--                                            <td width="100px"></td>-->
+<#--                                            <td width="80px"></td>-->
+<#--                                            <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-amount-cost" value="${Utils.format(costTotalAmount,'0')}" readonly &lt;#&ndash;onkeyup="integerNumber(this)"&ndash;&gt;></td>-->
+<#--                                            <td width="100px"></td>-->
                                             <td width="100px"></td>
                                             <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-include-cost" value="${Utils.format(budgetBean.costPurchaseTotalTaxInclude,'0')}" readonly></td>
                                             <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-exclude-cost" value="${Utils.format(budgetBean.costPurchaseTotalTaxExclude,'0')}" readonly></td>
                                             <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-cost" value="${Utils.format(budgetBean.costPurchaseTotalTax,'0')}" readonly></td>
                                             <td width="100px"></td>
-                                            <td width="60px"></td>
-                                            <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-underwritten-amount-cost" value="${Utils.format(costUnderwrittenAmountTotal,'0.00')}" readonly></td>
-                                            <td width="130px"></td>
-                                            <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-pay-amount-cost" value="${Utils.format(costPayAmountTotal,'0.00')}" readonly></td>
-                                            <td width="100px"></td>
+<#--                                            <td width="60px"></td>-->
+<#--                                            <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-underwritten-amount-cost" value="${Utils.format(costUnderwrittenAmountTotal,'0.00')}" readonly></td>-->
+<#--                                            <td width="130px"></td>-->
+<#--                                            <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-pay-amount-cost" value="${Utils.format(costPayAmountTotal,'0.00')}" readonly></td>-->
+<#--                                            <td width="100px"></td>-->
                                             <td width="100px"></td>
                                             <td width="60px"></td>
                                         </tr>
@@ -1013,12 +1013,12 @@
                                     <thead>
                                         <tr>
                                             <th>序号</th>
-                                            <th>财务费用类别</th>
+                                            <th>费用类别</th>
                                             <th>业务项目</th>
                                             <th>项目明细</th>
-                                            <th>单位</th>
-                                            <th>数量</th>
-                                            <th>单价</th>
+<#--                                            <th>单位</th>-->
+<#--                                            <th>数量</th>-->
+<#--                                            <th>单价</th>-->
                                             <th>总金额(元)</th>
                                             <th>支出时间</th>
                                             <th>支出金额(元)</th>
@@ -1063,10 +1063,10 @@
                                                     <input <#if costProjectManageDetail.isDiy == 1>type="text"<#else>type="hidden"</#if> class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage am-modal-prompt-input-cost-project-manage-category2" value="${costProjectManageDetail.name!}">
                                                 </td>
                                                 <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.detail!}"></td>
-                                                <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.unit!}"></td>
-                                                <td><input type="text" maxlength="8" class="number am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-amount-project-manage" value="${Utils.format(costProjectManageDetail.amount,'0')}" <#--onkeyup="integerNumber(this)"--> oninput="if(value.length>8)value=value.slice(0,8)"></td>
-                                                <td><input type="text" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-price-project-manage" value="${Utils.format2(costProjectManageDetail.price,'0')}" oninput="if(value.length>19)value=value.slice(0,19)"></td>
-                                                <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-project-manage" value="${Utils.format(costProjectManageDetail.total,'0')}" readonly></td>
+<#--                                                <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.unit!}"></td>-->
+<#--                                                <td><input type="text" maxlength="8" class="number am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-amount-project-manage" value="${Utils.format(costProjectManageDetail.amount,'0')}" &lt;#&ndash;onkeyup="integerNumber(this)"&ndash;&gt; oninput="if(value.length>8)value=value.slice(0,8)"></td>-->
+<#--                                                <td><input type="text" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-price-project-manage" value="${Utils.format2(costProjectManageDetail.price,'0')}" oninput="if(value.length>19)value=value.slice(0,19)"></td>-->
+                                                <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-project-manage" value="${Utils.format(costProjectManageDetail.total,'0')}"></td>
                                                 <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${(costProjectManageDetail.payTime?string("yyyy-MM-dd"))!}" data-am-datepicker></td>
                                                 <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-pay-amount-project-manage" value="${Utils.format(costProjectManageDetail.payAmount,'0.00')}"></td>
                                                 <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.predictMethod!}"></td>
@@ -1083,9 +1083,9 @@
                                         <td></td>
                                         <td></td>
                                         <td></td>
-                                        <td></td>
-                                        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-amount-project-manage" value="${Utils.format(costProjectManageTotalAmount,'0')}" readonly <#--onkeyup="integerNumber(this)"-->></td>
-                                        <td></td>
+<#--                                        <td></td>-->
+<#--                                        <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-amount-project-manage" value="${Utils.format(costProjectManageTotalAmount,'0')}" readonly &lt;#&ndash;onkeyup="integerNumber(this)"&ndash;&gt;></td>-->
+<#--                                        <td></td>-->
                                         <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-total-project-manage" value="${Utils.format(budgetBean.costProjectManageTaxInclude,'0')}" readonly></td>
                                         <td></td>
                                         <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-pay-amount-project-manage" value="${Utils.format(managePayAmountTotal,'0.00')}" readonly></td>
@@ -1133,11 +1133,17 @@
                             <thead style="display: inline-block;overflow-x: scroll;width: 200px;">
                             <tr style="display: inline-block;">
                                 <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="月份" readonly></td>
-                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="设备支出" readonly></td>
-                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="工程支出(含服务+施工+其他)" readonly></td>
-                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="经营性开支" readonly></td>
-                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="保证金支出" readonly></td>
-                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="支出合计" readonly></td>
+                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="设备付款" readonly></td>
+<#--                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="工程支出(含服务+施工+其他)" readonly></td>-->
+
+                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="工程付款" readonly></td>
+                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="服务付款" readonly></td>
+                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="其他付款" readonly></td>
+
+
+                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="项目管理费用付款" readonly></td>
+                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="保证金付款" readonly></td>
+                                <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="付款合计" readonly></td>
                                 <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="销售收款" readonly></td>
                                 <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="保证金收款" readonly></td>
                                 <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="收款合计" readonly></td>
@@ -1152,7 +1158,11 @@
                             <tr style="display: inline-block;">
                                 <td style="display: block;"><input type="text" class="am-modal-prompt-input input-total-title-month-budget-plan" value="${projectBudgetPlanDetailTotalTitle.month}" readonly/></td>
                                 <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-device-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.deviceCost)}" readonly/></td>
-                                <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.engineerCost)}" readonly/></td>
+
+                                <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-projectCost-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.projectCost)}" readonly/></td>
+                                <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-serviceCost-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.serviceCost)}" readonly/></td>
+                                <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-otherCost-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.otherCost)}" readonly/></td>
+
                                 <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-project-manage-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.projectManageCost)}" readonly/></td>
                                 <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-earnest-money-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.earnestMoneyCost)}" readonly/></td>
                                 <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-total-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.totalCost)}" readonly/></td>
@@ -1168,7 +1178,11 @@
                             <tr id="firstBlock" class="am-hide" style="display: inline-block;">
                                 <td style="display: block;"><input type="text" class="am-modal-prompt-input input-total-month-budget-plan" value="${projectBudgetPlanDetailTotal.month}" readonly/></td>
                                 <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-device-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.deviceCost)}" readonly/></td>
-                                <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.engineerCost)}" readonly/></td>
+
+                                <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.projectCost)}" readonly/></td>
+                                <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.serviceCost)}" readonly/></td>
+                                <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.otherCost)}" readonly/></td>
+
                                 <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-project-manage-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.projectManageCost)}" readonly/></td>
                                 <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-earnest-money-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.earnestMoneyCost)}" readonly/></td>
                                 <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-total-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.totalCost)}" readonly/></td>
@@ -1187,7 +1201,10 @@
                                     <tr style="display: inline-block;">
                                         <td style="display: block;"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-month-budget-plan" value="${projectBudgetPlanDetail.month!}" readonly></td>
                                         <td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-device-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.deviceCost)}"></td>
-                                        <td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.engineerCost)}"></td>
+                                        <td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-projectCost-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.projectCost)}"></td>
+                                        <td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-serviceCost-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.serviceCost )}"></td>
+                                        <td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-otherCost-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.otherCost)}"></td>
+
                                         <td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-manage-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.projectManageCost)}"></td>
                                         <td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.earnestMoneyCost)}"></td>
                                         <td style="display: block;"><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-total-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.totalCost)}" readonly></td>
@@ -1366,7 +1383,7 @@
                         <tr>
                             <td>合计</td>
                             <td></td>
-                     <td><input type="text" class="number" name="incomeTotalTax" value="${(Utils.format(budgetBean.costExpropriationTaxExclude,'0')+(Utils.format(budgetBean.costProjectManageTaxExclude,'0')))}"  readonly title="此列累计"></td>
+                     <td><input type="text" class="number" name="incomeTotalTax" value="${(Utils.format(budgetBean.costExpropriationTaxExclude+budgetBean.costProjectManageTaxExclude,'0'))}"  readonly title="此列累计"></td>
                         </tr>
                         </tbody>
                         (备注:财务计取以不含税方式核算)