dev_1.0.0
‘wangjiuyun 2024-10-28 20:58:37 +08:00
commit 592cc66492
1 changed files with 38 additions and 28 deletions

View File

@ -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);