决算利润率保存

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; package cn.palmte.work.bean;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
public class FinalBean { public class FinalBean {
@ -154,7 +155,13 @@ public class FinalBean {
private BigDecimal grossProfitProfitMargin; private BigDecimal grossProfitProfitMargin;
public BigDecimal getGrossProfitProfitMargin() { 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) { public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) {
@ -186,7 +193,14 @@ public class FinalBean {
private BigDecimal contributionMarginProfitMargin; private BigDecimal contributionMarginProfitMargin;
public BigDecimal getContributionMarginProfitMargin() { 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) { public void setContributionMarginProfitMargin(BigDecimal contributionMarginProfitMargin) {
@ -217,7 +231,13 @@ public class FinalBean {
private BigDecimal netMarginProfitMargin; private BigDecimal netMarginProfitMargin;
public BigDecimal getNetMarginProfitMargin() { 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) { public void setNetMarginProfitMargin(BigDecimal netMarginProfitMargin) {

View File

@ -53,6 +53,20 @@ public class ProjectFinalProfitMargin {
@Column(name = "final_total_profit_margin") @Column(name = "final_total_profit_margin")
private BigDecimal finalTotalProfitMargin; 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() { public Integer getId() {
return id; return id;
} }
@ -77,5 +91,35 @@ public class ProjectFinalProfitMargin {
this.type = type; 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 @Autowired
private ProjectSettleService projectSettleService; private ProjectSettleService projectSettleService;
@Autowired
private ProjectFinalProfitMarginRepository projectFinalProfitMarginRepository;
@Transactional @Transactional
public void save(Project project, FinalBean finalBean) { public void save(Project project, FinalBean finalBean) {
//预算表数据 //预算表数据
@ -76,6 +79,9 @@ public class ProjectFinalSevice {
//保存项目结算管理成本信息 //保存项目结算管理成本信息
saveProjectFinalCostManage(project,finalBean,estimate,budget,settle); saveProjectFinalCostManage(project,finalBean,estimate,budget,settle);
//保存项目决算利润率
saveProjectFinalProfitMargin(project,finalBean,estimate,budget,settle);
//保存项目结算现金流量信息 //保存项目结算现金流量信息
saveProjectFinalCashFlux(project,finalBean,cashFlowBean,settle); saveProjectFinalCashFlux(project,finalBean,cashFlowBean,settle);
@ -103,6 +109,9 @@ public class ProjectFinalSevice {
//保存项目结算管理成本信息 //保存项目结算管理成本信息
saveProjectFinalCostManage(project,finalBean,estimate,budget,settle); saveProjectFinalCostManage(project,finalBean,estimate,budget,settle);
//保存项目决算利润率
saveProjectFinalProfitMargin(project,finalBean,estimate,budget,settle);
//保存项目结算现金流量信息 //保存项目结算现金流量信息
saveProjectFinalCashFlux(project,finalBean,cashFlowBean,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){ public void saveProjectFinalCostManage(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget,FormerBean settle){
ProjectFinalCostManage expropriationManage = new ProjectFinalCostManage(); ProjectFinalCostManage expropriationManage = new ProjectFinalCostManage();
expropriationManage.setProjectId(project.getId()); expropriationManage.setProjectId(project.getId());

View File

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