473 lines
30 KiB
Java
473 lines
30 KiB
Java
package cn.palmte.work.service;
|
|
|
|
import cn.palmte.work.bean.*;
|
|
import cn.palmte.work.model.*;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import top.jfunc.common.utils.CollectionUtil;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class ProjectFinalSevice {
|
|
|
|
@Autowired
|
|
private ProjectFinalCostRepository projectFinalCostRepository;
|
|
|
|
@Autowired
|
|
private ProjectFinalCashFluxRepository projectFinalCashFluxRepository;
|
|
|
|
@Autowired
|
|
private ProjectFinalCostManageRepository projectFinalCostManageRepository;
|
|
|
|
@Autowired
|
|
private ProjectFinalIncomeReposiry projectFinalIncomeReposiry;
|
|
|
|
@Autowired
|
|
private ProjectEstimateService projectEstimateService;
|
|
|
|
@Autowired
|
|
private ProjectBudgetService projectBudgetService;
|
|
|
|
@Autowired
|
|
private ProjectSettleIncomeRepository projectSettleIncomeRepository;
|
|
|
|
@Autowired
|
|
private ProjectSettleCostRepository projectSettleCostRepository;
|
|
|
|
@Autowired
|
|
private ProjectSettleCostManageRepository projectSettleCostManageRepository;
|
|
|
|
@Autowired
|
|
private ProjectSettleCashFlowRepository projectSettleCashFlowRepository;
|
|
|
|
@Transactional
|
|
public void save(Project project, FinalBean finalBean) {
|
|
//预算表数据
|
|
EstimateBean estimate = projectEstimateService.getEstimate(project);
|
|
//概算表数据
|
|
BudgetBean budget = projectBudgetService.getBudget(project);
|
|
//现金流量表数据
|
|
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
|
|
CashFlowBean cashFlowBean = projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails);
|
|
|
|
//保存项目决算收入信息
|
|
saveProjectFinalIncome(project,finalBean,estimate,budget);
|
|
|
|
//保存项目决算成本信息
|
|
saveProjectFinalCost(project,finalBean,estimate,budget);
|
|
|
|
//保存项目结算管理成本信息
|
|
saveProjectFinalCostManage(project,finalBean,estimate,budget);
|
|
|
|
//保存项目结算现金流量信息
|
|
saveProjectFinalCashFlux(project,finalBean,cashFlowBean);
|
|
|
|
}
|
|
|
|
public void saveProjectFinalCostManage(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget){
|
|
ProjectFinalCostManage expropriationManage = new ProjectFinalCostManage();
|
|
expropriationManage.setProjectId(project.getId());
|
|
expropriationManage.setType(ProjectFinalCostManage.TYPE_EXPROPRIATION);
|
|
expropriationManage.setEstimateTotalManageCost(estimate.getCostExpropriationTaxExclude());
|
|
expropriationManage.setBudgetTotalManageCost(budget.getCostExpropriationTaxExclude());
|
|
expropriationManage.setSettleTotalManageCost(new BigDecimal(0));
|
|
expropriationManage.setFinalTotalManageCost(finalBean.getCostExpropriationFinalTotal());
|
|
projectFinalCostManageRepository.saveAndFlush(expropriationManage);
|
|
|
|
ProjectFinalCostManage companyManage = new ProjectFinalCostManage();
|
|
companyManage.setProjectId(project.getId());
|
|
companyManage.setType(ProjectFinalCostManage.TYPE_COMPANY_MANAGE);
|
|
companyManage.setEstimateTotalManageCost(estimate.getCostCompanyManageTaxExclude());
|
|
companyManage.setBudgetTotalManageCost(budget.getCostCompanyManageTaxExclude());
|
|
companyManage.setSettleTotalManageCost(new BigDecimal(0));
|
|
companyManage.setFinalTotalManageCost(finalBean.getCostCompanyManageFinalTotal());
|
|
projectFinalCostManageRepository.saveAndFlush(companyManage);
|
|
|
|
ProjectFinalCostManage incomeTax = new ProjectFinalCostManage();
|
|
incomeTax.setProjectId(project.getId());
|
|
incomeTax.setType(ProjectFinalCostManage.TYPE_INCOME_TAX);
|
|
incomeTax.setSettleTotalManageCost(new BigDecimal(0));
|
|
incomeTax.setFinalTotalManageCost(finalBean.getCostIncomeTaxFinalTotal());
|
|
projectFinalCostManageRepository.saveAndFlush(incomeTax);
|
|
|
|
}
|
|
|
|
private void saveProjectFinalIncome(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget) {
|
|
ProjectFinalIncome projectFinalIncomeDevice = new ProjectFinalIncome();
|
|
projectFinalIncomeDevice.setProjectId(project.getId());
|
|
projectFinalIncomeDevice.setType(ProjectFinalIncome.TYPE_DEVICE);
|
|
projectFinalIncomeDevice.setEstimateTotalIncome(estimate.getIncomeDeviceTaxExclude());
|
|
projectFinalIncomeDevice.setBudgetTotalIncome(budget.getIncomeDeviceTaxExclude());
|
|
projectFinalIncomeDevice.setSettleTotalIncome(new BigDecimal(0));
|
|
projectFinalIncomeDevice.setFinalTotalIncome(finalBean.getIncomeDeviceFinalTotal());
|
|
projectFinalIncomeReposiry.saveAndFlush(projectFinalIncomeDevice);
|
|
|
|
ProjectFinalIncome projectFinalIncomeEngineer = new ProjectFinalIncome();
|
|
projectFinalIncomeEngineer.setProjectId(project.getId());
|
|
projectFinalIncomeEngineer.setType(ProjectFinalIncome.TYPE_ENGINEER);
|
|
projectFinalIncomeEngineer.setEstimateTotalIncome(estimate.getIncomeEngineerTaxExclude());
|
|
projectFinalIncomeEngineer.setBudgetTotalIncome(budget.getIncomeEngineerTaxExclude());
|
|
projectFinalIncomeEngineer.setSettleTotalIncome(new BigDecimal(0));
|
|
projectFinalIncomeEngineer.setFinalTotalIncome(finalBean.getIncomeEngineerFinalTotal());
|
|
projectFinalIncomeReposiry.saveAndFlush(projectFinalIncomeEngineer);
|
|
|
|
ProjectFinalIncome projectFinalIncomeService = new ProjectFinalIncome();
|
|
projectFinalIncomeService.setProjectId(project.getId());
|
|
projectFinalIncomeService.setType(ProjectFinalIncome.TYPE_SERVICE);
|
|
projectFinalIncomeService.setEstimateTotalIncome(estimate.getIncomeServiceTaxExclude());
|
|
projectFinalIncomeService.setBudgetTotalIncome(budget.getIncomeServiceTaxExclude());
|
|
projectFinalIncomeService.setSettleTotalIncome(new BigDecimal(0));
|
|
projectFinalIncomeService.setFinalTotalIncome(finalBean.getIncomeServiceFinalTotal());
|
|
projectFinalIncomeReposiry.saveAndFlush(projectFinalIncomeService);
|
|
}
|
|
|
|
public void saveProjectFinalCost(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget){
|
|
ProjectFinalCost projectFinalCostDevice = new ProjectFinalCost();
|
|
projectFinalCostDevice.setProjectId(project.getId());
|
|
projectFinalCostDevice.setFee(ProjectFinalCost.FEE_PURCHASE);
|
|
projectFinalCostDevice.setType(ProjectFinalCost.TYPE_DEVICE);
|
|
projectFinalCostDevice.setEstimateTotalCost(estimate.getCostPurchaseDeviceTaxExclude());
|
|
projectFinalCostDevice.setBudgetTotalCost(budget.getCostPurchaseDeviceTaxExclude());
|
|
projectFinalCostDevice.setSettleTotalCost(new BigDecimal(0));
|
|
projectFinalCostDevice.setFinalTotalCost(finalBean.getCostPurchaseDeviceFinalTotal());
|
|
projectFinalCostRepository.saveAndFlush(projectFinalCostDevice);
|
|
|
|
|
|
ProjectFinalCost projectFinalCostBuild = new ProjectFinalCost();
|
|
projectFinalCostBuild.setProjectId(project.getId());
|
|
projectFinalCostBuild.setFee(ProjectFinalCost.FEE_PURCHASE);
|
|
projectFinalCostBuild.setType(ProjectFinalCost.TYPE_BUILDING);
|
|
projectFinalCostBuild.setEstimateTotalCost(estimate.getCostPurchaseBuildTaxExclude());
|
|
projectFinalCostBuild.setBudgetTotalCost(budget.getCostPurchaseBuildTaxExclude());
|
|
projectFinalCostBuild.setSettleTotalCost(new BigDecimal(0));
|
|
projectFinalCostBuild.setFinalTotalCost(finalBean.getCostPurchaseBuildFinalTotal());
|
|
projectFinalCostRepository.saveAndFlush(projectFinalCostBuild);
|
|
|
|
ProjectFinalCost projectFinalCostService = new ProjectFinalCost();
|
|
projectFinalCostService.setProjectId(project.getId());
|
|
projectFinalCostService.setFee(ProjectFinalCost.FEE_PURCHASE);
|
|
projectFinalCostService.setType(ProjectFinalCost.TYPE_SERVICE);
|
|
projectFinalCostService.setEstimateTotalCost(estimate.getCostPurchaseServiceTaxExclude());
|
|
projectFinalCostService.setBudgetTotalCost(budget.getCostPurchaseServiceTaxExclude());
|
|
projectFinalCostService.setSettleTotalCost(new BigDecimal(0));
|
|
projectFinalCostService.setFinalTotalCost(finalBean.getCostPurchaseServiceFinalTotal());
|
|
projectFinalCostRepository.saveAndFlush(projectFinalCostService);
|
|
|
|
ProjectFinalCost projectFinalCostOther = new ProjectFinalCost();
|
|
projectFinalCostOther.setProjectId(project.getId());
|
|
projectFinalCostOther.setFee(ProjectFinalCost.FEE_PURCHASE);
|
|
projectFinalCostOther.setType(ProjectFinalCost.TYPE_OTHER);
|
|
projectFinalCostOther.setEstimateTotalCost(estimate.getCostPurchaseOtherTaxExclude());
|
|
projectFinalCostOther.setBudgetTotalCost(budget.getCostPurchaseOtherTaxExclude());
|
|
projectFinalCostOther.setSettleTotalCost(new BigDecimal(0));
|
|
projectFinalCostOther.setFinalTotalCost(finalBean.getCostPurchaseOtherFinalTotal());
|
|
projectFinalCostRepository.saveAndFlush(projectFinalCostOther);
|
|
|
|
ProjectFinalCost projectFinalCostProject = new ProjectFinalCost();
|
|
projectFinalCostProject.setProjectId(project.getId());
|
|
projectFinalCostProject.setFee(ProjectFinalCost.FEE_PROJECT_MANAGE);
|
|
projectFinalCostProject.setType(ProjectFinalCost.TYPE_PROJECT_MANAGE);
|
|
projectFinalCostProject.setEstimateTotalCost(estimate.getCostProjectManageTaxExclude());
|
|
projectFinalCostProject.setBudgetTotalCost(budget.getCostProjectManageTaxExclude());
|
|
projectFinalCostProject.setSettleTotalCost(new BigDecimal(0));
|
|
projectFinalCostProject.setFinalTotalCost(finalBean.getCostProjectManageFinalTotal());
|
|
projectFinalCostRepository.saveAndFlush(projectFinalCostProject);
|
|
|
|
ProjectFinalCost projectFinalCostOtherOther = new ProjectFinalCost();
|
|
projectFinalCostOtherOther.setProjectId(project.getId());
|
|
projectFinalCostOtherOther.setFee(ProjectFinalCost.FEE_OTHER);
|
|
projectFinalCostOtherOther.setType(ProjectFinalCost.TYPE_OTHER_OTHER);
|
|
projectFinalCostOtherOther.setEstimateTotalCost(estimate.getCostOtherOtherTaxExclude());
|
|
projectFinalCostOtherOther.setBudgetTotalCost(budget.getCostOtherOtherTaxExclude());
|
|
projectFinalCostOtherOther.setSettleTotalCost(new BigDecimal(0));
|
|
projectFinalCostOtherOther.setFinalTotalCost(finalBean.getCostOtherFinalTotal());
|
|
projectFinalCostRepository.saveAndFlush(projectFinalCostOtherOther);
|
|
}
|
|
|
|
public void saveProjectFinalCashFlux(Project project, FinalBean finalBean, CashFlowBean cashFlowBean) {
|
|
List<ProjectFinalCashFlux> list = new ArrayList<>();
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux1 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux1.setProjectId(project.getId());
|
|
projectFinalCashFlux1.setType(ProjectFinalCashFlux.TYPE1);
|
|
projectFinalCashFlux1.setBudgetTotalCashFlux(cashFlowBean.getSaleIncomeCash());
|
|
projectFinalCashFlux1.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux1.setFinalTotalCashFlux(finalBean.getSaleIncomeCash());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux1);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux2 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux2.setProjectId(project.getId());
|
|
projectFinalCashFlux2.setType(ProjectFinalCashFlux.TYPE2);
|
|
projectFinalCashFlux2.setBudgetTotalCashFlux(cashFlowBean.getTaxReturn());
|
|
projectFinalCashFlux2.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux2.setFinalTotalCashFlux(finalBean.getTaxReturn());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux2);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux3 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux3.setProjectId(project.getId());
|
|
projectFinalCashFlux3.setType(ProjectFinalCashFlux.TYPE3);
|
|
projectFinalCashFlux3.setBudgetTotalCashFlux(cashFlowBean.getEarnestMoneyIncome());
|
|
projectFinalCashFlux3.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux3.setFinalTotalCashFlux(finalBean.getEarnestMoneyIncome());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux3);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux4 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux4.setProjectId(project.getId());
|
|
projectFinalCashFlux4.setType(ProjectFinalCashFlux.TYPE4);
|
|
projectFinalCashFlux4.setBudgetTotalCashFlux(cashFlowBean.getPurchaseCost());
|
|
projectFinalCashFlux4.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux4.setFinalTotalCashFlux(finalBean.getPurchaseCost());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux4);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux5 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux5.setProjectId(project.getId());
|
|
projectFinalCashFlux5.setType(ProjectFinalCashFlux.TYPE5);
|
|
projectFinalCashFlux5.setBudgetTotalCashFlux(cashFlowBean.getTaxCost());
|
|
projectFinalCashFlux5.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux5.setFinalTotalCashFlux(finalBean.getTaxCost());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux5);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux6 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux6.setProjectId(project.getId());
|
|
projectFinalCashFlux6.setType(ProjectFinalCashFlux.TYPE6);
|
|
projectFinalCashFlux6.setBudgetTotalCashFlux(cashFlowBean.getEarnestMoneyCost());
|
|
projectFinalCashFlux6.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux6.setFinalTotalCashFlux(finalBean.getEarnestMoneyCost());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux6);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux7 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux7.setProjectId(project.getId());
|
|
projectFinalCashFlux7.setType(ProjectFinalCashFlux.TYPE7);
|
|
projectFinalCashFlux7.setBudgetTotalCashFlux(cashFlowBean.getNetCashFlow());
|
|
projectFinalCashFlux7.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux7.setFinalTotalCashFlux(finalBean.getNetCashFlow());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux7);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux8 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux8.setProjectId(project.getId());
|
|
projectFinalCashFlux8.setType(ProjectFinalCashFlux.TYPE8);
|
|
projectFinalCashFlux8.setBudgetTotalCashFlux(cashFlowBean.getCashInflowFromInvestingActivities());
|
|
projectFinalCashFlux8.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux8.setFinalTotalCashFlux(finalBean.getCashInflowFromInvestingActivities());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux8);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux9 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux9.setProjectId(project.getId());
|
|
projectFinalCashFlux9.setType(ProjectFinalCashFlux.TYPE9);
|
|
projectFinalCashFlux9.setBudgetTotalCashFlux(cashFlowBean.getCashOutflowFromInvestingActivities());
|
|
projectFinalCashFlux9.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux9.setFinalTotalCashFlux(finalBean.getCashOutflowFromInvestingActivities());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux9);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux10 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux10.setProjectId(project.getId());
|
|
projectFinalCashFlux10.setType(ProjectFinalCashFlux.TYPE10);
|
|
projectFinalCashFlux10.setBudgetTotalCashFlux(cashFlowBean.getNetCashFromInvestingActivities());
|
|
projectFinalCashFlux10.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux10.setFinalTotalCashFlux(finalBean.getNetCashFromInvestingActivities());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux10);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux11 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux11.setProjectId(project.getId());
|
|
projectFinalCashFlux11.setType(ProjectFinalCashFlux.TYPE11);
|
|
projectFinalCashFlux11.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalInflow());
|
|
projectFinalCashFlux11.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux11.setFinalTotalCashFlux(finalBean.getFinancingCapitalInflow());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux11);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux12 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux12.setProjectId(project.getId());
|
|
projectFinalCashFlux12.setType(ProjectFinalCashFlux.TYPE12);
|
|
projectFinalCashFlux12.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalOutflow());
|
|
projectFinalCashFlux12.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux12.setFinalTotalCashFlux(finalBean.getFinancingCapitalOutflow());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux12);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux13 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux13.setProjectId(project.getId());
|
|
projectFinalCashFlux13.setType(ProjectFinalCashFlux.TYPE13);
|
|
projectFinalCashFlux13.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalCashflow());
|
|
projectFinalCashFlux13.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux13.setFinalTotalCashFlux(finalBean.getFinancingCapitalCashflow());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux13);
|
|
|
|
ProjectFinalCashFlux projectFinalCashFlux14 = new ProjectFinalCashFlux();
|
|
projectFinalCashFlux14.setProjectId(project.getId());
|
|
projectFinalCashFlux14.setType(ProjectFinalCashFlux.TYPE14);
|
|
projectFinalCashFlux14.setBudgetTotalCashFlux(cashFlowBean.getNetIncreaseMonetaryFunds());
|
|
projectFinalCashFlux14.setFinalTotalCashFlux(new BigDecimal(0));
|
|
projectFinalCashFlux14.setFinalTotalCashFlux(finalBean.getNetIncreaseMonetaryFunds());
|
|
projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux14);
|
|
|
|
}
|
|
|
|
|
|
public FinalBean getFinal(Project project) {
|
|
FinalBean finalBean = new FinalBean();
|
|
List<ProjectFinalIncome> projectFinalIncomes = projectFinalIncomeReposiry.findByProjectIdEquals(project.getId());
|
|
|
|
if(CollectionUtil.isNotEmpty(projectFinalIncomes)){
|
|
for (ProjectFinalIncome projectFinalIncome : projectFinalIncomes) {
|
|
if(ProjectFinalIncome.TYPE_DEVICE == projectFinalIncome.getType()){
|
|
finalBean.setIncomeDeviceFinalTotal(projectFinalIncome.getFinalTotalIncome());
|
|
}else if(ProjectFinalIncome.TYPE_ENGINEER == projectFinalIncome.getType()){
|
|
finalBean.setIncomeEngineerFinalTotal(projectFinalIncome.getFinalTotalIncome());
|
|
}else if(ProjectFinalIncome.TYPE_SERVICE == projectFinalIncome.getType()){
|
|
finalBean.setIncomeServiceFinalTotal(projectFinalIncome.getFinalTotalIncome());
|
|
}
|
|
}
|
|
}
|
|
|
|
List<ProjectFinalCost> projectFinalCosts = projectFinalCostRepository.findByProjectIdEquals(project.getId());
|
|
if(CollectionUtil.isNotEmpty(projectFinalCosts)){
|
|
for (ProjectFinalCost projectFinalCost : projectFinalCosts) {
|
|
if(ProjectFinalCost.TYPE_DEVICE == projectFinalCost.getType()){
|
|
finalBean.setCostPurchaseDeviceFinalTotal(projectFinalCost.getFinalTotalCost());
|
|
}else if(ProjectFinalCost.TYPE_BUILDING == projectFinalCost.getType()){
|
|
finalBean.setCostPurchaseBuildFinalTotal(projectFinalCost.getFinalTotalCost());
|
|
}else if(ProjectFinalCost.TYPE_SERVICE == projectFinalCost.getType()){
|
|
finalBean.setCostPurchaseServiceFinalTotal(projectFinalCost.getFinalTotalCost());
|
|
}else if(ProjectFinalCost.TYPE_OTHER == projectFinalCost.getType()){
|
|
finalBean.setCostPurchaseOtherFinalTotal(projectFinalCost.getFinalTotalCost());
|
|
}else if(ProjectFinalCost.TYPE_PROJECT_MANAGE == projectFinalCost.getType()){
|
|
finalBean.setCostProjectManageFinalTotal(projectFinalCost.getFinalTotalCost());
|
|
}else if (ProjectFinalCost.TYPE_OTHER_OTHER == projectFinalCost.getType()){
|
|
finalBean.setCostOtherFinalTotal(projectFinalCost.getFinalTotalCost());
|
|
}
|
|
}
|
|
}
|
|
|
|
List<ProjectFinalCostManage> projectFinalCostManages = projectFinalCostManageRepository.findByProjectIdEquals(project.getId());
|
|
|
|
if(CollectionUtil.isNotEmpty(projectFinalCostManages)){
|
|
for (ProjectFinalCostManage projectFinalCostManage : projectFinalCostManages) {
|
|
if(ProjectFinalCostManage.TYPE_EXPROPRIATION == projectFinalCostManage.getType()){
|
|
finalBean.setCostExpropriationFinalTotal(projectFinalCostManage.getFinalTotalManageCost());
|
|
}else if(ProjectFinalCostManage.TYPE_COMPANY_MANAGE == projectFinalCostManage.getType()){
|
|
finalBean.setCostCompanyManageFinalTotal(projectFinalCostManage.getFinalTotalManageCost());
|
|
}else if(ProjectFinalCostManage.TYPE_INCOME_TAX == projectFinalCostManage.getType()){
|
|
finalBean.setCostIncomeTaxFinalTotal(projectFinalCostManage.getFinalTotalManageCost());
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
List<ProjectFinalCashFlux> projectFinalCashFluxes = projectFinalCashFluxRepository.findByProjectIdEquals(project.getId());
|
|
if(CollectionUtil.isNotEmpty(projectFinalCashFluxes)){
|
|
for (ProjectFinalCashFlux projectFinalCashFlux : projectFinalCashFluxes) {
|
|
if(ProjectFinalCashFlux.TYPE1 == projectFinalCashFlux.getType()){
|
|
finalBean.setSaleIncomeCash(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE2 == projectFinalCashFlux.getType()){
|
|
finalBean.setTaxReturn(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE3 == projectFinalCashFlux.getType()){
|
|
finalBean.setEarnestMoneyIncome(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE4 == projectFinalCashFlux.getType()){
|
|
finalBean.setPurchaseCost(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE5 == projectFinalCashFlux.getType()){
|
|
finalBean.setTaxCost(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE6 == projectFinalCashFlux.getType()){
|
|
finalBean.setEarnestMoneyCost(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE7 == projectFinalCashFlux.getType()){
|
|
finalBean.setNetCashFlow(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE8 == projectFinalCashFlux.getType()){
|
|
finalBean.setCashInflowFromInvestingActivities(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE9 == projectFinalCashFlux.getType()){
|
|
finalBean.setCashOutflowFromInvestingActivities(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE10 == projectFinalCashFlux.getType()){
|
|
finalBean.setNetCashFromInvestingActivities(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE11 == projectFinalCashFlux.getType()){
|
|
finalBean.setFinancingCapitalInflow(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE12 == projectFinalCashFlux.getType()){
|
|
finalBean.setFinancingCapitalOutflow(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE13 == projectFinalCashFlux.getType()){
|
|
finalBean.setFinancingCapitalCashflow(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
if(ProjectFinalCashFlux.TYPE14 == projectFinalCashFlux.getType()){
|
|
finalBean.setNetIncreaseMonetaryFunds(projectFinalCashFlux.getFinalTotalCashFlux());
|
|
}
|
|
}
|
|
}
|
|
return finalBean;
|
|
}
|
|
|
|
public SettleBean getSettle(Project project) {
|
|
SettleBean settleBean = new SettleBean();
|
|
long incomeDivice = projectSettleIncomeRepository.incomeTaxExcludeSum(project.getId(), ProjectSettleIncome.TYPE_DEVICE);
|
|
long incomeEngineer = projectSettleIncomeRepository.incomeTaxExcludeSum(project.getId(), ProjectSettleIncome.TYPE_ENGINEER);
|
|
long incomeService = projectSettleIncomeRepository.incomeTaxExcludeSum(project.getId(), ProjectSettleIncome.TYPE_SERVICE);
|
|
|
|
settleBean.setIncomeDevice(new BigDecimal(incomeDivice));
|
|
settleBean.setIncomeEngineer(new BigDecimal(incomeEngineer));
|
|
settleBean.setIncomeService(new BigDecimal(incomeService));
|
|
|
|
long costDevice = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_DEVICE);
|
|
long costBuilding = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_BUILDING);
|
|
long costService = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_SERVICE);
|
|
long costOther = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_OTHER);
|
|
long costProjectManage = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_PROJECT_MANAGE);
|
|
long costOtherOther = projectSettleCostRepository.costTaxExcludeSum(project.getId(), ProjectSettleCost.TYPE_OTHER_OTHER);
|
|
|
|
settleBean.setCostPurchaseDevice(new BigDecimal(costDevice));
|
|
settleBean.setCostPurchaseBuild(new BigDecimal(costBuilding));
|
|
settleBean.setCostPurchaseService(new BigDecimal(costService));
|
|
settleBean.setCostOther(new BigDecimal(costOther));
|
|
settleBean.setCostProjectManage(new BigDecimal(costProjectManage));
|
|
settleBean.setCostPurchaseOther(new BigDecimal(costOtherOther));
|
|
|
|
long costExpropriation = projectSettleCostManageRepository.costTaxExcludeSum(project.getId(), ProjectSettleCostManage.TYPE_EXPROPRIATION);
|
|
long costCompanyMange = projectSettleCostManageRepository.costTaxExcludeSum(project.getId(), ProjectSettleCostManage.TYPE_COMPANY_MANAGE);
|
|
long costIncomeTax = projectSettleCostManageRepository.costTaxExcludeSum(project.getId(), ProjectSettleCostManage.TYPE_INCOME_TAX);
|
|
|
|
settleBean.setCostExpropriation(new BigDecimal(costExpropriation));
|
|
settleBean.setCostCompanyManage(new BigDecimal(costCompanyMange));
|
|
settleBean.setCostIncomeTax(new BigDecimal(costIncomeTax));
|
|
|
|
long type1 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.SALE_INCOME_CASH);
|
|
long type2 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.TAX_RETURN);
|
|
long type3 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.EARNEST_MONEY_INCOME);
|
|
long type4 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.PURCHASE_COST);
|
|
long type5 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.TAX_COST);
|
|
long type6 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.EARNEST_MONEY_COST);
|
|
long type7 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.NET_CASH_FLOW);
|
|
long type8 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.CASH_INFLOW_FROM_INVESTING_ACTIVITIES);
|
|
long type9 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.CASH_OUTFLOW_FROM_INVESTING_ACTIVITIES);
|
|
long type10 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.NET_CASH_FROM_INVESTING_ACTIVITIES);
|
|
long type11 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.FINANCING_CAPITAL_INFLOW);
|
|
long type12 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.FINANCING_CAPITAL_OUTFLOW);
|
|
long type13 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.FINANCING_CAPITAL_CASHFLOW);
|
|
long type14 = projectSettleCashFlowRepository.costAmountSum(project.getId(), ProjectSettleCashFlow.NET_INCREASE_MONETARY_FUNDS);
|
|
|
|
settleBean.setSaleIncomeCash(new BigDecimal(type1));
|
|
settleBean.setTaxReturn(new BigDecimal(type2));
|
|
settleBean.setEarnestMoneyIncome(new BigDecimal(type3));
|
|
settleBean.setPurchaseCost(new BigDecimal(type4));
|
|
settleBean.setTaxCost(new BigDecimal(type5));
|
|
settleBean.setEarnestMoneyCost(new BigDecimal(type6));
|
|
settleBean.setNetCashFlow(new BigDecimal(type7));
|
|
settleBean.setCashInflowFromInvestingActivities(new BigDecimal(type8));
|
|
settleBean.setCashOutflowFromInvestingActivities(new BigDecimal(type9));
|
|
settleBean.setNetCashFromInvestingActivities(new BigDecimal(type10));
|
|
settleBean.setFinancingCapitalInflow(new BigDecimal(type11));
|
|
settleBean.setFinancingCapitalOutflow(new BigDecimal(type12));
|
|
settleBean.setFinancingCapitalCashflow(new BigDecimal(type13));
|
|
settleBean.setNetIncreaseMonetaryFunds(new BigDecimal(type14));
|
|
return settleBean;
|
|
}
|
|
}
|