决算利润率保存

master
hanbo 2021-11-26 15:57:12 +08:00
parent 77d60c1520
commit 1c3d2ca944
4 changed files with 109 additions and 4 deletions

View File

@ -1,6 +1,7 @@
package cn.palmte.work.bean;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class FinalBean {
@ -154,7 +155,13 @@ public class FinalBean {
private BigDecimal grossProfitProfitMargin;
public BigDecimal getGrossProfitProfitMargin() {
return grossProfitProfitMargin;
BigDecimal grossProfitFinalTotal = getGrossProfitFinalTotal();
BigDecimal incomeTotal = getIncomeTotal();
if(null == grossProfitFinalTotal || null == incomeTotal){
return null;
}
return grossProfitFinalTotal.divide(incomeTotal,4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
}
public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) {
@ -186,7 +193,14 @@ public class FinalBean {
private BigDecimal contributionMarginProfitMargin;
public BigDecimal getContributionMarginProfitMargin() {
return contributionMarginProfitMargin;
BigDecimal contributionMarginFinalTotal = getContributionMarginFinalTotal();
BigDecimal incomeTotal = getIncomeTotal();
if(null == contributionMarginFinalTotal || null == incomeTotal){
return null;
}
return contributionMarginFinalTotal.divide(incomeTotal,4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
}
public void setContributionMarginProfitMargin(BigDecimal contributionMarginProfitMargin) {
@ -217,7 +231,13 @@ public class FinalBean {
private BigDecimal netMarginProfitMargin;
public BigDecimal getNetMarginProfitMargin() {
return netMarginProfitMargin;
BigDecimal netMarginFinalTotal = getNetMarginFinalTotal();
BigDecimal incomeTotal = getIncomeTotal();
if(null == netMarginFinalTotal || null == incomeTotal){
return null;
}
return netMarginFinalTotal.divide(incomeTotal,4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
}
public void setNetMarginProfitMargin(BigDecimal netMarginProfitMargin) {

View File

@ -53,6 +53,20 @@ public class ProjectFinalProfitMargin {
@Column(name = "final_total_profit_margin")
private BigDecimal finalTotalProfitMargin;
/**
*
*/
@Column(name = "profit_margin")
private BigDecimal profitMargin;
public BigDecimal getProfitMargin() {
return profitMargin;
}
public void setProfitMargin(BigDecimal profitMargin) {
this.profitMargin = profitMargin;
}
public Integer getId() {
return id;
}
@ -77,5 +91,35 @@ public class ProjectFinalProfitMargin {
this.type = type;
}
public BigDecimal getEstimateTotalProfitMargin() {
return estimateTotalProfitMargin;
}
public void setEstimateTotalProfitMargin(BigDecimal estimateTotalProfitMargin) {
this.estimateTotalProfitMargin = estimateTotalProfitMargin;
}
public BigDecimal getBudgetTotalProfitMargin() {
return budgetTotalProfitMargin;
}
public void setBudgetTotalProfitMargin(BigDecimal budgetTotalProfitMargin) {
this.budgetTotalProfitMargin = budgetTotalProfitMargin;
}
public BigDecimal getSettleTotalProfitMargin() {
return settleTotalProfitMargin;
}
public void setSettleTotalProfitMargin(BigDecimal settleTotalProfitMargin) {
this.settleTotalProfitMargin = settleTotalProfitMargin;
}
public BigDecimal getFinalTotalProfitMargin() {
return finalTotalProfitMargin;
}
public void setFinalTotalProfitMargin(BigDecimal finalTotalProfitMargin) {
this.finalTotalProfitMargin = finalTotalProfitMargin;
}
}

View File

@ -55,6 +55,9 @@ public class ProjectFinalSevice {
@Autowired
private ProjectSettleService projectSettleService;
@Autowired
private ProjectFinalProfitMarginRepository projectFinalProfitMarginRepository;
@Transactional
public void save(Project project, FinalBean finalBean) {
//预算表数据
@ -76,6 +79,9 @@ public class ProjectFinalSevice {
//保存项目结算管理成本信息
saveProjectFinalCostManage(project,finalBean,estimate,budget,settle);
//保存项目决算利润率
saveProjectFinalProfitMargin(project,finalBean,estimate,budget,settle);
//保存项目结算现金流量信息
saveProjectFinalCashFlux(project,finalBean,cashFlowBean,settle);
@ -103,6 +109,9 @@ public class ProjectFinalSevice {
//保存项目结算管理成本信息
saveProjectFinalCostManage(project,finalBean,estimate,budget,settle);
//保存项目决算利润率
saveProjectFinalProfitMargin(project,finalBean,estimate,budget,settle);
//保存项目结算现金流量信息
saveProjectFinalCashFlux(project,finalBean,cashFlowBean,settle);
@ -113,6 +122,38 @@ public class ProjectFinalSevice {
}
private void saveProjectFinalProfitMargin(Project project, FinalBean finalBean, EstimateBean estimate, BudgetBean budget, FormerBean settle) {
ProjectFinalProfitMargin typeGrossProfit = new ProjectFinalProfitMargin();
typeGrossProfit.setProjectId(project.getId());
typeGrossProfit.setType(ProjectFinalProfitMargin.TYPE_GROSS_PROFIT);
typeGrossProfit.setEstimateTotalProfitMargin(estimate.getProjectGrossProfit());
typeGrossProfit.setBudgetTotalProfitMargin(budget.getProjectGrossProfit());
typeGrossProfit.setSettleTotalProfitMargin(settle.getGrossProfit());
typeGrossProfit.setFinalTotalProfitMargin(finalBean.getGrossProfitFinalTotal());
typeGrossProfit.setProfitMargin(finalBean.getGrossProfitProfitMargin());
projectFinalProfitMarginRepository.saveAndFlush(typeGrossProfit);
ProjectFinalProfitMargin typeContributionMargin = new ProjectFinalProfitMargin();
typeContributionMargin.setProjectId(project.getId());
typeContributionMargin.setType(ProjectFinalProfitMargin.TYPE_CONTRIBUTION_MARGIN);
typeContributionMargin.setEstimateTotalProfitMargin(estimate.getProjectContributionProfit());
typeContributionMargin.setBudgetTotalProfitMargin(budget.getProjectContributionProfit());
typeContributionMargin.setSettleTotalProfitMargin(settle.getContributionProfit());
typeContributionMargin.setFinalTotalProfitMargin(finalBean.getContributionMarginFinalTotal());
typeContributionMargin.setProfitMargin(finalBean.getContributionMarginProfitMargin());
projectFinalProfitMarginRepository.saveAndFlush(typeContributionMargin);
ProjectFinalProfitMargin typeNetMargin = new ProjectFinalProfitMargin();
typeNetMargin.setProjectId(project.getId());
typeNetMargin.setType(ProjectFinalProfitMargin.TYPE_NET_MARGIN);
typeNetMargin.setSettleTotalProfitMargin(settle.getNetProfit());
typeNetMargin.setFinalTotalProfitMargin(finalBean.getNetMarginFinalTotal());
typeNetMargin.setProfitMargin(finalBean.getNetMarginProfitMargin());
projectFinalProfitMarginRepository.saveAndFlush(typeNetMargin);
}
public void saveProjectFinalCostManage(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget,FormerBean settle){
ProjectFinalCostManage expropriationManage = new ProjectFinalCostManage();
expropriationManage.setProjectId(project.getId());

View File

@ -232,7 +232,7 @@
<tr>
<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(budgetBean.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" value="${Utils.format(finalBean.netMarginFinalTotal,'0')}" readonly required title="项目净利润决算总额"></td>
<td><input name="netMarginProfitMargin" type="number" value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required readonly title="项目净利润利润率"></td>