决算页面

master
hanbo 2021-11-19 15:48:21 +08:00
parent 2879417e56
commit 508067b155
7 changed files with 184 additions and 99 deletions

View File

@ -133,31 +133,86 @@ public class FinalBean {
*/
private BigDecimal grossProfitFinalTotal;
public BigDecimal getGrossProfitFinalTotal() {
BigDecimal incomeTotal = getIncomeTotal();
BigDecimal costTotal = getCostTotal();
BigDecimal costExpropriationFinalTotal = getCostExpropriationFinalTotal();
return incomeTotal.subtract(costTotal).subtract(costExpropriationFinalTotal);
}
public void setGrossProfitFinalTotal(BigDecimal grossProfitFinalTotal) {
this.grossProfitFinalTotal = grossProfitFinalTotal;
}
/**
*
*/
private BigDecimal grossProfitProfitMargin;
public BigDecimal getGrossProfitProfitMargin() {
return grossProfitProfitMargin;
}
public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) {
this.grossProfitProfitMargin = grossProfitProfitMargin;
}
/**
*
*/
private BigDecimal contributionMarginFinalTotal;
public BigDecimal getContributionMarginFinalTotal() {
BigDecimal grossProfitFinalTotal = getGrossProfitFinalTotal();
BigDecimal costCompanyManageFinalTotal = getCostCompanyManageFinalTotal();
return grossProfitFinalTotal.subtract(costCompanyManageFinalTotal);
}
public void setContributionMarginFinalTotal(BigDecimal contributionMarginFinalTotal) {
this.contributionMarginFinalTotal = contributionMarginFinalTotal;
}
/**
*
*/
private BigDecimal contributionMarginProfitMargin;
public BigDecimal getContributionMarginProfitMargin() {
return contributionMarginProfitMargin;
}
public void setContributionMarginProfitMargin(BigDecimal contributionMarginProfitMargin) {
this.contributionMarginProfitMargin = contributionMarginProfitMargin;
}
/**
*
*/
private BigDecimal netMarginFinalTotal;
public BigDecimal getNetMarginFinalTotal() {
BigDecimal contributionMarginFinalTotal = getContributionMarginFinalTotal();
BigDecimal costIncomeTaxFinalTotal = getCostIncomeTaxFinalTotal();
return contributionMarginFinalTotal.subtract(costIncomeTaxFinalTotal);
}
public void setNetMarginFinalTotal(BigDecimal netMarginFinalTotal) {
this.netMarginFinalTotal = netMarginFinalTotal;
}
/**
*
*/
private BigDecimal netMarginProfitMargin;
public BigDecimal getNetMarginProfitMargin() {
return netMarginProfitMargin;
}
public void setNetMarginProfitMargin(BigDecimal netMarginProfitMargin) {
this.netMarginProfitMargin = netMarginProfitMargin;
}
//========================结算现金流量表================================
/**
@ -189,6 +244,28 @@ public class FinalBean {
* g=a+c+b-d-f-e
*/
private BigDecimal netCashFlow;
public BigDecimal getNetCashFlow() {
BigDecimal saleIncomeCash = getSaleIncomeCash();
BigDecimal taxReturn = getTaxReturn();
BigDecimal earnestMoneyIncome = getEarnestMoneyIncome();
BigDecimal purchaseCost = getPurchaseCost();
BigDecimal taxCost = getTaxCost();
BigDecimal earnestMoneyCost = getEarnestMoneyCost();
return saleIncomeCash
.add(taxReturn)
.add(earnestMoneyIncome)
.subtract(purchaseCost)
.subtract(taxCost)
.subtract(earnestMoneyCost);
}
public void setNetCashFlow(BigDecimal netCashFlow) {
this.netCashFlow = netCashFlow;
}
/**
* h
*/
@ -214,12 +291,36 @@ public class FinalBean {
* m=k-l
*/
private BigDecimal financingCapitalCashflow;
public BigDecimal getFinancingCapitalCashflow() {
BigDecimal financingCapitalInflow = getFinancingCapitalInflow();
BigDecimal financingCapitalOutflow = getFinancingCapitalOutflow();
return financingCapitalInflow.subtract(financingCapitalOutflow);
}
public void setFinancingCapitalCashflow(BigDecimal financingCapitalCashflow) {
this.financingCapitalCashflow = financingCapitalCashflow;
}
/**
* n
* n=g+j+m
*/
private BigDecimal netIncreaseMonetaryFunds;
public BigDecimal getNetIncreaseMonetaryFunds() {
BigDecimal netCashFlow = getNetCashFlow();
BigDecimal netCashFromInvestingActivities = getNetCashFromInvestingActivities();
BigDecimal financingCapitalCashflow = getFinancingCapitalCashflow();
return netCashFlow
.add(netCashFromInvestingActivities)
.add(financingCapitalCashflow);
}
public void setNetIncreaseMonetaryFunds(BigDecimal netIncreaseMonetaryFunds) {
this.netIncreaseMonetaryFunds = netIncreaseMonetaryFunds;
}
/**
*
* @return
@ -349,54 +450,6 @@ public class FinalBean {
this.costIncomeTaxFinalTotal = costIncomeTaxFinalTotal;
}
public BigDecimal getGrossProfitFinalTotal() {
return grossProfitFinalTotal;
}
public void setGrossProfitFinalTotal(BigDecimal grossProfitFinalTotal) {
this.grossProfitFinalTotal = grossProfitFinalTotal;
}
public BigDecimal getGrossProfitProfitMargin() {
return grossProfitProfitMargin;
}
public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) {
this.grossProfitProfitMargin = grossProfitProfitMargin;
}
public BigDecimal getContributionMarginFinalTotal() {
return contributionMarginFinalTotal;
}
public void setContributionMarginFinalTotal(BigDecimal contributionMarginFinalTotal) {
this.contributionMarginFinalTotal = contributionMarginFinalTotal;
}
public BigDecimal getContributionMarginProfitMargin() {
return contributionMarginProfitMargin;
}
public void setContributionMarginProfitMargin(BigDecimal contributionMarginProfitMargin) {
this.contributionMarginProfitMargin = contributionMarginProfitMargin;
}
public BigDecimal getNetMarginFinalTotal() {
return netMarginFinalTotal;
}
public void setNetMarginFinalTotal(BigDecimal netMarginFinalTotal) {
this.netMarginFinalTotal = netMarginFinalTotal;
}
public BigDecimal getNetMarginProfitMargin() {
return netMarginProfitMargin;
}
public void setNetMarginProfitMargin(BigDecimal netMarginProfitMargin) {
this.netMarginProfitMargin = netMarginProfitMargin;
}
public BigDecimal getSaleIncomeCash() {
return saleIncomeCash;
}
@ -485,27 +538,5 @@ public class FinalBean {
this.financingCapitalOutflow = financingCapitalOutflow;
}
public BigDecimal getFinancingCapitalCashflow() {
return financingCapitalCashflow;
}
public void setFinancingCapitalCashflow(BigDecimal financingCapitalCashflow) {
this.financingCapitalCashflow = financingCapitalCashflow;
}
public BigDecimal getNetIncreaseMonetaryFunds() {
return netIncreaseMonetaryFunds;
}
public void setNetIncreaseMonetaryFunds(BigDecimal netIncreaseMonetaryFunds) {
this.netIncreaseMonetaryFunds = netIncreaseMonetaryFunds;
}
public BigDecimal getNetCashFlow() {
return netCashFlow;
}
public void setNetCashFlow(BigDecimal netCashFlow) {
this.netCashFlow = netCashFlow;
}
}

View File

@ -9,6 +9,7 @@ import org.springframework.transaction.annotation.Transactional;
import top.jfunc.common.utils.CollectionUtil;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
@ -441,6 +442,10 @@ public class ProjectFinalSevice {
}
}
}
finalBean.setGrossProfitProfitMargin(finalBean.getGrossProfitFinalTotal().divide(finalBean.getIncomeTotal(),4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
finalBean.setContributionMarginProfitMargin(finalBean.getContributionMarginFinalTotal().divide(finalBean.getIncomeTotal(),4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
finalBean.setNetMarginProfitMargin(finalBean.getNetMarginFinalTotal().divide(finalBean.getIncomeTotal(),4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
return finalBean;
}

View File

@ -1,10 +1,8 @@
package cn.palmte.work.service;
import cn.palmte.work.bean.CashFlowBean;
import cn.palmte.work.bean.CashFlowStatisticsBean;
import cn.palmte.work.bean.PrimaryIndicatorBean;
import cn.palmte.work.model.*;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import top.jfunc.common.utils.CollectionUtil;

View File

@ -10,6 +10,22 @@ function calculateFinal() {
calIncomeFinalTotal();
});
/**
* 收入决算总额(不含税)有一项没填就置空
*/
function calIncomeFinalTotal() {
var incomeDeviceFinalTotal = $("input[name='incomeDeviceFinalTotal']").val();
var incomeEngineerFinalTotal = $("input[name='incomeEngineerFinalTotal']").val();
var incomeServiceFinalTotal = $("input[name='incomeServiceFinalTotal']").val();
var incomeFinalTotal = $("input[name='incomeFinalTotal']");
if(incomeDeviceFinalTotal && incomeEngineerFinalTotal && incomeServiceFinalTotal){
incomeFinalTotal.val(parseFloat(incomeDeviceFinalTotal)+parseFloat(incomeEngineerFinalTotal)+parseFloat(incomeServiceFinalTotal));
}else {
incomeFinalTotal.val("");
}
}
$("input[name='costPurchaseDeviceFinalTotal']").change(function () {
calCostFinalTotal();
@ -33,16 +49,18 @@ function calculateFinal() {
$("input[name='costExpropriationFinalTotal']").change(function () {
calManageFinalTotal();
calGrossProfitFinalTotal();
});
$("input[name='costCompanyManageFinalTotal']").change(function () {
calManageFinalTotal();
calContributionMarginFinalTotal()
});
$("input[name='costIncomeTaxFinalTotal']").change(function () {
calManageFinalTotal();
calNetMarginProfitMargin();
});
$("input[name='saleIncomeCash']").change(function () {
calCashFluxFinalTotal();
});
@ -88,23 +106,6 @@ function calculateFinal() {
}
/**
* 收入决算总额(不含税)有一项没填就置空
*/
function calIncomeFinalTotal() {
var incomeDeviceFinalTotal = $("input[name='incomeDeviceFinalTotal']").val();
var incomeEngineerFinalTotal = $("input[name='incomeEngineerFinalTotal']").val();
var incomeServiceFinalTotal = $("input[name='incomeServiceFinalTotal']").val();
var incomeFinalTotal = $("input[name='incomeFinalTotal']");
if(incomeDeviceFinalTotal && incomeEngineerFinalTotal && incomeServiceFinalTotal){
incomeFinalTotal.val(parseFloat(incomeDeviceFinalTotal)+parseFloat(incomeEngineerFinalTotal)+parseFloat(incomeServiceFinalTotal));
}else {
incomeFinalTotal.val("");
}
}
/**
* 成本决算总额(不含税)有一项没填就置空
*/
@ -181,6 +182,56 @@ function calCashFluxFinalTotal() {
}
}
/**
* 项目毛利决算总额
*/
function calGrossProfitFinalTotal() {
var incomeFinalTotal = $("input[name='incomeFinalTotal']").val();
var costFinalTotal = $("input[name='costFinalTotal']").val();
var costExpropriationFinalTotal = $("input[name='costExpropriationFinalTotal']").val();
var grossProfitFinalTotal = $("input[name='grossProfitFinalTotal']");
if(incomeFinalTotal && costFinalTotal && costExpropriationFinalTotal){
grossProfitFinalTotal.val(parseFloat(incomeFinalTotal)-parseFloat(costFinalTotal)-parseFloat(costExpropriationFinalTotal));
}else {
grossProfitFinalTotal.val("");
}
}
/**
* 项目贡献利润决算总额
*/
function calContributionMarginFinalTotal() {
var grossProfitFinalTotal = $("input[name='grossProfitFinalTotal']").val();
var costCompanyManageFinalTotal = $("input[name='costCompanyManageFinalTotal']").val();
var contributionMarginFinalTotal = $("input[name='contributionMarginFinalTotal']");
if(grossProfitFinalTotal && costCompanyManageFinalTotal ){
contributionMarginFinalTotal.val(parseFloat(grossProfitFinalTotal)-parseFloat(costCompanyManageFinalTotal));
}else {
contributionMarginFinalTotal.val("");
}
}
/**
* 项目净利润决算总额
*/
function calNetMarginProfitMargin() {
var contributionMarginFinalTotal = $("input[name='contributionMarginFinalTotal']").val();
var costIncomeTaxFinalTotal = $("input[name='costIncomeTaxFinalTotal']").val();
var netMarginFinalTotal = $("input[name='netMarginFinalTotal']");
if(contributionMarginFinalTotal && costIncomeTaxFinalTotal ){
netMarginFinalTotal.val(parseFloat(contributionMarginFinalTotal)-parseFloat(costIncomeTaxFinalTotal));
}else {
netMarginFinalTotal.val("");
}
}

View File

@ -1739,12 +1739,12 @@
<script>
var base = "${base}";
</script>
<script src="${base}/assets/js/project_common.js"></script>
<#-- <script src="${base}/assets/js/project_common.js"></script>
<script src="${base}/assets/js/project_budget.js"></script>
<script src="${base}/assets/js/project_budget_income.js"></script>
<script src="${base}/assets/js/project_budget_cost.js"></script>
<script src="${base}/assets/js/project_budget_cost_project_manage.js"></script>
<script src="${base}/assets/js/project_budget_plan.js"></script>
<script src="${base}/assets/js/project_budget_plan.js"></script>-->
</@defaultLayout.layout>
<script>

View File

@ -1507,12 +1507,12 @@
<script>
var base = "${base}";
</script>
<script src="${base}/assets/js/project_common.js"></script>
<#--<script src="${base}/assets/js/project_common.js"></script>
<script src="${base}/assets/js/project_budget.js"></script>
<script src="${base}/assets/js/project_budget_income.js"></script>
<script src="${base}/assets/js/project_budget_cost.js"></script>
<script src="${base}/assets/js/project_budget_cost_project_manage.js"></script>
<script src="${base}/assets/js/project_budget_plan.js"></script>
<script src="${base}/assets/js/project_budget_plan.js"></script>-->
</@defaultLayout.layout>

View File

@ -218,7 +218,7 @@
<td><input name="projectGrossProfit" type="number" value="${Utils.format(estimateBean.getProjectGrossProfit(),'0')}" readonly required title="项目毛利概算总额"></td>
<td><input name="projectGrossProfit" type="number" value="${Utils.format(budgetBean.getProjectGrossProfit(),'0')}" readonly required title="项目毛利预算总额"></td>
<td><input name="grossProfitSettleTotal" type="number" value="${Utils.format(settleBean.grossProfit,'0')}" readonly required title="项目毛利结算总额"></td>
<td><input name="grossProfitFinalTotal" required type="number" title="项目毛利决算总额"></td>
<td><input name="grossProfitFinalTotal" required readonly type="number" title="项目毛利决算总额"></td>
<td><input name="grossProfitProfitMargin" type="number" required readonly title="项目毛利利润率"></td>
</tr>
<tr>
@ -226,7 +226,7 @@
<td><input name="projectContributionProfit" type="number" value="${Utils.format(estimateBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润概算总额"></td>
<td><input name="projectContributionProfit" type="number" value="${Utils.format(budgetBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润预算总额"></td>
<td><input name="contributionMarginSettleTotal" type="number" value="${Utils.format(settleBean.contributionProfit,'0')}" readonly required title="项目贡献利润结算总额"></td>
<td><input name="contributionMarginFinalTotal" type="number" required title="项目贡献利润决算总额"></td>
<td><input name="contributionMarginFinalTotal" type="number" required readonly title="项目贡献利润决算总额"></td>
<td><input name="contributionMarginProfitMargin" type="number" required readonly title="项目贡献利润利润率"></td>
</tr>
<tr>
@ -234,8 +234,8 @@
<td>/</td>
<td><input name="netMarginBudgetTotal" type="number" value="${Utils.format(finalBean.netMarginBudgetTotal,'0')}" readonly required title="项目净利润预算总额"></td>
<td><input name="netMarginSettleTotal" type="number" value="${Utils.format(settleBean.netProfit,'0')}" readonly required title="项目净利润结算总额"></td>
<td><input name="netMarginFinalTotal" type="number" required title="项目净利润决算总额"></td>
<td><input name="netMarginProfitMargin" type="number" value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required readonly title="项目净利润利润率"></td>
<td><input name="netMarginFinalTotal" type="number" required readonly title="项目净利润决算总额"></td>
<td><input name="netMarginProfitMargin" type="number" required readonly title="项目净利润利润率"></td>
</tr>
</tbody>
</table>
@ -360,7 +360,7 @@
var base = "${base}";
</script>
<script src="${base}/assets/js/project_common.js"></script>
<script src="${base}/assets/js/project_final.js"></script>
<script src="${base}/assets/js/project_final.js"></script>
<script>
$(function () {
calculateFinal();