parent
3ea59ec3d5
commit
f7144673cc
|
@ -660,21 +660,7 @@ public class ProjectBudgetService {
|
||||||
* 根据每个月的计算资金计划的总
|
* 根据每个月的计算资金计划的总
|
||||||
*/
|
*/
|
||||||
public ProjectBudgetPlanDetail getProjectBudgetPlanDetailTotal(Project project, List<ProjectBudgetPlanDetail> projectBudgetPlanDetails) {
|
public ProjectBudgetPlanDetail getProjectBudgetPlanDetailTotal(Project project, List<ProjectBudgetPlanDetail> projectBudgetPlanDetails) {
|
||||||
List<ProjectBudgetPayPlan> budgetPayPlan = projectBudgetService.getBudgetPayPlan(project);
|
|
||||||
|
|
||||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
|
|
||||||
|
|
||||||
Map<String, Map<String, BigDecimal>> monthlyProjectPaymentSum = budgetPayPlan.stream()
|
|
||||||
.collect(Collectors.groupingBy(
|
|
||||||
plan -> formatter.format(plan.getPayTime()), // 将 Date 转换为 yyyy-MM 格式的字符串
|
|
||||||
Collectors.groupingBy(
|
|
||||||
ProjectBudgetPayPlan::getPayProject,
|
|
||||||
Collectors.mapping(
|
|
||||||
ProjectBudgetPayPlan::getPayAmount,
|
|
||||||
Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
));
|
|
||||||
BigDecimal projectManageCost = new BigDecimal(0);
|
BigDecimal projectManageCost = new BigDecimal(0);
|
||||||
BigDecimal earnestMoneyCost = new BigDecimal(0);
|
BigDecimal earnestMoneyCost = new BigDecimal(0);
|
||||||
BigDecimal deviceCost = new BigDecimal(0);
|
BigDecimal deviceCost = new BigDecimal(0);
|
||||||
|
@ -694,26 +680,17 @@ public class ProjectBudgetService {
|
||||||
|
|
||||||
if(CollectionUtil.isNotEmpty(projectBudgetPlanDetails)){
|
if(CollectionUtil.isNotEmpty(projectBudgetPlanDetails)){
|
||||||
for (ProjectBudgetPlanDetail budgetPlan : projectBudgetPlanDetails) {
|
for (ProjectBudgetPlanDetail budgetPlan : projectBudgetPlanDetails) {
|
||||||
String month = budgetPlan.getMonth();
|
|
||||||
|
|
||||||
Map<String, BigDecimal> projectPayments = monthlyProjectPaymentSum.getOrDefault(month, Collections.emptyMap());
|
|
||||||
deviceCost=deviceCost.add(budgetPlan.getDeviceCost());
|
deviceCost=deviceCost.add(budgetPlan.getDeviceCost());
|
||||||
projectManageCost = projectManageCost.add(budgetPlan.getProjectManageCost());
|
projectManageCost = projectManageCost.add(budgetPlan.getProjectManageCost());
|
||||||
earnestMoneyCost = earnestMoneyCost.add(budgetPlan.getEarnestMoneyCost());
|
earnestMoneyCost = earnestMoneyCost.add(budgetPlan.getEarnestMoneyCost());
|
||||||
if (budgetPlan.getEngineerCost()!=null) {
|
if (budgetPlan.getEngineerCost()!=null) {
|
||||||
engineerCost = engineerCost.add(budgetPlan.getEngineerCost());
|
engineerCost = engineerCost.add(budgetPlan.getEngineerCost());
|
||||||
}
|
}
|
||||||
BigDecimal projectCostTemp = projectPayments.getOrDefault("工程成本", BigDecimal.ZERO);
|
|
||||||
budgetPlan.setProjectCost(projectCostTemp);
|
|
||||||
projectCost = projectCost.add(projectCostTemp);
|
|
||||||
|
|
||||||
BigDecimal serviceCostTemp = projectPayments.getOrDefault("服务成本", BigDecimal.ZERO);
|
projectCost = projectCost.add(budgetPlan.getProjectCost());
|
||||||
budgetPlan.setServiceCost(serviceCostTemp);
|
serviceCost = serviceCost.add(budgetPlan.getServiceCost());
|
||||||
serviceCost = serviceCost.add(serviceCostTemp);
|
otherCost = otherCost.add(budgetPlan.getOtherCost());
|
||||||
|
|
||||||
BigDecimal otherCostTemp = projectPayments.getOrDefault("其他成本", BigDecimal.ZERO);
|
|
||||||
budgetPlan.setOtherCost(otherCostTemp);
|
|
||||||
otherCost = otherCost.add(otherCostTemp);
|
|
||||||
totalCost = totalCost.add(budgetPlan.getTotalCost());
|
totalCost = totalCost.add(budgetPlan.getTotalCost());
|
||||||
saleIncome = saleIncome.add(budgetPlan.getSaleIncome());
|
saleIncome = saleIncome.add(budgetPlan.getSaleIncome());
|
||||||
earnestMoneyIncome = earnestMoneyIncome.add(budgetPlan.getEarnestMoneyIncome());
|
earnestMoneyIncome = earnestMoneyIncome.add(budgetPlan.getEarnestMoneyIncome());
|
||||||
|
@ -759,6 +736,21 @@ public class ProjectBudgetService {
|
||||||
List<ProjectBudgetCostProjectManageDetail> budgetCostProjectManageDetail,
|
List<ProjectBudgetCostProjectManageDetail> budgetCostProjectManageDetail,
|
||||||
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails) {
|
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails) {
|
||||||
|
|
||||||
|
List<ProjectBudgetPayPlan> budgetPayPlan = projectBudgetService.getBudgetPayPlan(project);
|
||||||
|
|
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
|
||||||
|
|
||||||
|
Map<String, Map<String, BigDecimal>> monthlyProjectPaymentSum = budgetPayPlan.stream()
|
||||||
|
.collect(Collectors.groupingBy(
|
||||||
|
plan -> formatter.format(plan.getPayTime()), // 将 Date 转换为 yyyy-MM 格式的字符串
|
||||||
|
Collectors.groupingBy(
|
||||||
|
ProjectBudgetPayPlan::getPayProject,
|
||||||
|
Collectors.mapping(
|
||||||
|
ProjectBudgetPayPlan::getPayAmount,
|
||||||
|
Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
));
|
||||||
BigDecimal deviceCost = calDeviceCost(budgetCostDetail);
|
BigDecimal deviceCost = calDeviceCost(budgetCostDetail);
|
||||||
BigDecimal engineerCost = calEngineerCost(budgetCostDetail);
|
BigDecimal engineerCost = calEngineerCost(budgetCostDetail);
|
||||||
BigDecimal projectManageCost = calProjectManageCost(budgetCostProjectManageDetail);
|
BigDecimal projectManageCost = calProjectManageCost(budgetCostProjectManageDetail);
|
||||||
|
@ -770,9 +762,25 @@ public class ProjectBudgetService {
|
||||||
BigDecimal capitalInterest = new BigDecimal(0);
|
BigDecimal capitalInterest = new BigDecimal(0);
|
||||||
BigDecimal underwrittenPlan = new BigDecimal(0);
|
BigDecimal underwrittenPlan = new BigDecimal(0);
|
||||||
BigDecimal repaymentPlan = new BigDecimal(0);
|
BigDecimal repaymentPlan = new BigDecimal(0);
|
||||||
|
BigDecimal projectCost = new BigDecimal(0);
|
||||||
|
BigDecimal serviceCost = new BigDecimal(0);
|
||||||
|
BigDecimal otherCost = new BigDecimal(0);
|
||||||
if(CollectionUtil.isNotEmpty(projectBudgetPlanDetails)){
|
if(CollectionUtil.isNotEmpty(projectBudgetPlanDetails)){
|
||||||
for (ProjectBudgetPlanDetail budgetPlan : projectBudgetPlanDetails) {
|
for (ProjectBudgetPlanDetail budgetPlan : projectBudgetPlanDetails) {
|
||||||
|
String month = budgetPlan.getMonth();
|
||||||
|
|
||||||
|
Map<String, BigDecimal> projectPayments = monthlyProjectPaymentSum.getOrDefault(month, Collections.emptyMap());
|
||||||
|
BigDecimal projectCostTemp = projectPayments.getOrDefault("2", BigDecimal.ZERO);
|
||||||
|
budgetPlan.setProjectCost(projectCostTemp);
|
||||||
|
projectCost = projectCost.add(projectCostTemp);
|
||||||
|
|
||||||
|
BigDecimal serviceCostTemp = projectPayments.getOrDefault("3", BigDecimal.ZERO);
|
||||||
|
budgetPlan.setServiceCost(serviceCostTemp);
|
||||||
|
serviceCost = serviceCost.add(serviceCostTemp);
|
||||||
|
|
||||||
|
BigDecimal otherCostTemp = projectPayments.getOrDefault("4", BigDecimal.ZERO);
|
||||||
|
budgetPlan.setOtherCost(otherCostTemp);
|
||||||
|
otherCost=otherCost.add(otherCostTemp);
|
||||||
earnestMoneyCost = earnestMoneyCost.add(budgetPlan.getEarnestMoneyCost());
|
earnestMoneyCost = earnestMoneyCost.add(budgetPlan.getEarnestMoneyCost());
|
||||||
earnestMoneyIncome = earnestMoneyIncome.add(budgetPlan.getEarnestMoneyIncome());
|
earnestMoneyIncome = earnestMoneyIncome.add(budgetPlan.getEarnestMoneyIncome());
|
||||||
capitalInterest = capitalInterest.add(budgetPlan.getCapitalInterest());
|
capitalInterest = capitalInterest.add(budgetPlan.getCapitalInterest());
|
||||||
|
@ -798,7 +806,9 @@ public class ProjectBudgetService {
|
||||||
projectBudgetPlanDetail.setEarnestMoneyIncome(earnestMoneyIncome);
|
projectBudgetPlanDetail.setEarnestMoneyIncome(earnestMoneyIncome);
|
||||||
projectBudgetPlanDetail.setTotalIncome(totalIncome);
|
projectBudgetPlanDetail.setTotalIncome(totalIncome);
|
||||||
projectBudgetPlanDetail.setFundBalance(fundBalance);
|
projectBudgetPlanDetail.setFundBalance(fundBalance);
|
||||||
|
projectBudgetPlanDetail.setProjectCost(projectCost);
|
||||||
|
projectBudgetPlanDetail.setServiceCost(serviceCost); // 设置服务成本
|
||||||
|
projectBudgetPlanDetail.setOtherCost(otherCost); // 设置其他成本
|
||||||
projectBudgetPlanDetail.setCapitalInterest(capitalInterest);
|
projectBudgetPlanDetail.setCapitalInterest(capitalInterest);
|
||||||
projectBudgetPlanDetail.setUnderwrittenPlan(underwrittenPlan);
|
projectBudgetPlanDetail.setUnderwrittenPlan(underwrittenPlan);
|
||||||
projectBudgetPlanDetail.setRepaymentPlan(repaymentPlan);
|
projectBudgetPlanDetail.setRepaymentPlan(repaymentPlan);
|
||||||
|
|
Loading…
Reference in New Issue