parent
3ea59ec3d5
commit
f7144673cc
|
@ -660,21 +660,7 @@ public class ProjectBudgetService {
|
|||
* 根据每个月的计算资金计划的总
|
||||
*/
|
||||
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 earnestMoneyCost = new BigDecimal(0);
|
||||
BigDecimal deviceCost = new BigDecimal(0);
|
||||
|
@ -694,26 +680,17 @@ public class ProjectBudgetService {
|
|||
|
||||
if(CollectionUtil.isNotEmpty(projectBudgetPlanDetails)){
|
||||
for (ProjectBudgetPlanDetail budgetPlan : projectBudgetPlanDetails) {
|
||||
String month = budgetPlan.getMonth();
|
||||
|
||||
Map<String, BigDecimal> projectPayments = monthlyProjectPaymentSum.getOrDefault(month, Collections.emptyMap());
|
||||
deviceCost=deviceCost.add(budgetPlan.getDeviceCost());
|
||||
projectManageCost = projectManageCost.add(budgetPlan.getProjectManageCost());
|
||||
earnestMoneyCost = earnestMoneyCost.add(budgetPlan.getEarnestMoneyCost());
|
||||
if (budgetPlan.getEngineerCost()!=null) {
|
||||
engineerCost = engineerCost.add(budgetPlan.getEngineerCost());
|
||||
}
|
||||
BigDecimal projectCostTemp = projectPayments.getOrDefault("工程成本", BigDecimal.ZERO);
|
||||
budgetPlan.setProjectCost(projectCostTemp);
|
||||
projectCost = projectCost.add(projectCostTemp);
|
||||
|
||||
BigDecimal serviceCostTemp = projectPayments.getOrDefault("服务成本", BigDecimal.ZERO);
|
||||
budgetPlan.setServiceCost(serviceCostTemp);
|
||||
serviceCost = serviceCost.add(serviceCostTemp);
|
||||
|
||||
BigDecimal otherCostTemp = projectPayments.getOrDefault("其他成本", BigDecimal.ZERO);
|
||||
budgetPlan.setOtherCost(otherCostTemp);
|
||||
otherCost = otherCost.add(otherCostTemp);
|
||||
projectCost = projectCost.add(budgetPlan.getProjectCost());
|
||||
serviceCost = serviceCost.add(budgetPlan.getServiceCost());
|
||||
otherCost = otherCost.add(budgetPlan.getOtherCost());
|
||||
totalCost = totalCost.add(budgetPlan.getTotalCost());
|
||||
saleIncome = saleIncome.add(budgetPlan.getSaleIncome());
|
||||
earnestMoneyIncome = earnestMoneyIncome.add(budgetPlan.getEarnestMoneyIncome());
|
||||
|
@ -759,6 +736,21 @@ public class ProjectBudgetService {
|
|||
List<ProjectBudgetCostProjectManageDetail> budgetCostProjectManageDetail,
|
||||
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 engineerCost = calEngineerCost(budgetCostDetail);
|
||||
BigDecimal projectManageCost = calProjectManageCost(budgetCostProjectManageDetail);
|
||||
|
@ -770,9 +762,25 @@ public class ProjectBudgetService {
|
|||
BigDecimal capitalInterest = new BigDecimal(0);
|
||||
BigDecimal underwrittenPlan = 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)){
|
||||
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());
|
||||
earnestMoneyIncome = earnestMoneyIncome.add(budgetPlan.getEarnestMoneyIncome());
|
||||
capitalInterest = capitalInterest.add(budgetPlan.getCapitalInterest());
|
||||
|
@ -798,7 +806,9 @@ public class ProjectBudgetService {
|
|||
projectBudgetPlanDetail.setEarnestMoneyIncome(earnestMoneyIncome);
|
||||
projectBudgetPlanDetail.setTotalIncome(totalIncome);
|
||||
projectBudgetPlanDetail.setFundBalance(fundBalance);
|
||||
|
||||
projectBudgetPlanDetail.setProjectCost(projectCost);
|
||||
projectBudgetPlanDetail.setServiceCost(serviceCost); // 设置服务成本
|
||||
projectBudgetPlanDetail.setOtherCost(otherCost); // 设置其他成本
|
||||
projectBudgetPlanDetail.setCapitalInterest(capitalInterest);
|
||||
projectBudgetPlanDetail.setUnderwrittenPlan(underwrittenPlan);
|
||||
projectBudgetPlanDetail.setRepaymentPlan(repaymentPlan);
|
||||
|
|
Loading…
Reference in New Issue