Merge remote-tracking branch 'origin/master'

master
OathK1per 2021-11-19 15:51:40 +08:00
commit 900f1f6d69
7 changed files with 184 additions and 99 deletions

View File

@ -133,31 +133,86 @@ public class FinalBean {
*/ */
private BigDecimal grossProfitFinalTotal; 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; private BigDecimal grossProfitProfitMargin;
public BigDecimal getGrossProfitProfitMargin() {
return grossProfitProfitMargin;
}
public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) {
this.grossProfitProfitMargin = grossProfitProfitMargin;
}
/** /**
* *
*/ */
private BigDecimal contributionMarginFinalTotal; 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; private BigDecimal contributionMarginProfitMargin;
public BigDecimal getContributionMarginProfitMargin() {
return contributionMarginProfitMargin;
}
public void setContributionMarginProfitMargin(BigDecimal contributionMarginProfitMargin) {
this.contributionMarginProfitMargin = contributionMarginProfitMargin;
}
/** /**
* *
*/ */
private BigDecimal netMarginFinalTotal; 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; 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 * g=a+c+b-d-f-e
*/ */
private BigDecimal netCashFlow; 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 * h
*/ */
@ -214,12 +291,36 @@ public class FinalBean {
* m=k-l * m=k-l
*/ */
private BigDecimal financingCapitalCashflow; 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
* n=g+j+m * n=g+j+m
*/ */
private BigDecimal netIncreaseMonetaryFunds; 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 * @return
@ -349,54 +450,6 @@ public class FinalBean {
this.costIncomeTaxFinalTotal = costIncomeTaxFinalTotal; 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() { public BigDecimal getSaleIncomeCash() {
return saleIncomeCash; return saleIncomeCash;
} }
@ -485,27 +538,5 @@ public class FinalBean {
this.financingCapitalOutflow = financingCapitalOutflow; 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 top.jfunc.common.utils.CollectionUtil;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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; return finalBean;
} }

View File

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

View File

@ -10,6 +10,22 @@ function calculateFinal() {
calIncomeFinalTotal(); 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 () { $("input[name='costPurchaseDeviceFinalTotal']").change(function () {
calCostFinalTotal(); calCostFinalTotal();
@ -33,16 +49,18 @@ function calculateFinal() {
$("input[name='costExpropriationFinalTotal']").change(function () { $("input[name='costExpropriationFinalTotal']").change(function () {
calManageFinalTotal(); calManageFinalTotal();
calGrossProfitFinalTotal();
}); });
$("input[name='costCompanyManageFinalTotal']").change(function () { $("input[name='costCompanyManageFinalTotal']").change(function () {
calManageFinalTotal(); calManageFinalTotal();
calContributionMarginFinalTotal()
}); });
$("input[name='costIncomeTaxFinalTotal']").change(function () { $("input[name='costIncomeTaxFinalTotal']").change(function () {
calManageFinalTotal(); calManageFinalTotal();
calNetMarginProfitMargin();
}); });
$("input[name='saleIncomeCash']").change(function () { $("input[name='saleIncomeCash']").change(function () {
calCashFluxFinalTotal(); 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> <script>
var base = "${base}"; var base = "${base}";
</script> </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.js"></script>
<script src="${base}/assets/js/project_budget_income.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.js"></script>
<script src="${base}/assets/js/project_budget_cost_project_manage.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> </@defaultLayout.layout>
<script> <script>

View File

@ -1507,12 +1507,12 @@
<script> <script>
var base = "${base}"; var base = "${base}";
</script> </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.js"></script>
<script src="${base}/assets/js/project_budget_income.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.js"></script>
<script src="${base}/assets/js/project_budget_cost_project_manage.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> </@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(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="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="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> <td><input name="grossProfitProfitMargin" type="number" required readonly title="项目毛利利润率"></td>
</tr> </tr>
<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(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="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="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> <td><input name="contributionMarginProfitMargin" type="number" required readonly title="项目贡献利润利润率"></td>
</tr> </tr>
<tr> <tr>
@ -234,8 +234,8 @@
<td>/</td> <td>/</td>
<td><input name="netMarginBudgetTotal" type="number" value="${Utils.format(finalBean.netMarginBudgetTotal,'0')}" readonly required title="项目净利润预算总额"></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="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="netMarginFinalTotal" type="number" required readonly title="项目净利润决算总额"></td>
<td><input name="netMarginProfitMargin" type="number" value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required readonly title="项目净利润利润率"></td> <td><input name="netMarginProfitMargin" type="number" required readonly title="项目净利润利润率"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -360,7 +360,7 @@
var base = "${base}"; var base = "${base}";
</script> </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_final.js"></script> <script src="${base}/assets/js/project_final.js"></script>
<script> <script>
$(function () { $(function () {
calculateFinal(); calculateFinal();