From d92bb2aa3d7f1211551126e267897981607c7009 Mon Sep 17 00:00:00 2001 From: OathK1per Date: Wed, 17 Nov 2021 21:39:49 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=93=E7=AE=97=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/ProjectSettleController.java | 40 +++- .../ProjectSettleCashFlowRepository.java | 2 + .../ProjectSettleCostManageRepository.java | 2 + .../model/ProjectSettleCostRepository.java | 2 + .../model/ProjectSettleIncomeRepository.java | 5 + .../ProjectSettleProfitMarginRepository.java | 2 + .../work/service/ProjectSettleService.java | 177 ++++++++++++++++-- .../java/cn/palmte/work/utils/DateKit.java | 3 +- src/main/resources/application-sit.properties | 4 +- src/main/resources/application.properties | 2 +- .../templates/admin/human_cost_individual.ftl | 2 +- .../templates/admin/human_cost_list.ftl | 2 +- .../templates/admin/project_settle_add.ftl | 2 +- .../templates/admin/project_settle_edit.ftl | 8 + .../templates/admin/project_summary.ftl | 7 + 15 files changed, 235 insertions(+), 25 deletions(-) diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectSettleController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectSettleController.java index 261609f..d6d48f1 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectSettleController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectSettleController.java @@ -1,18 +1,26 @@ package cn.palmte.work.controller.backend; -import cn.palmte.work.bean.*; +import cn.palmte.work.bean.BudgetSettleBean; +import cn.palmte.work.bean.EstimateSettleBean; +import cn.palmte.work.bean.FormerBean; +import cn.palmte.work.bean.SettleBean; import cn.palmte.work.model.Project; import cn.palmte.work.model.ProjectBudgetPlanDetail; +import cn.palmte.work.model.ProjectSettleIncome; +import cn.palmte.work.model.ProjectSettleIncomeRepository; import cn.palmte.work.service.ProjectBudgetService; import cn.palmte.work.service.ProjectEstimateService; import cn.palmte.work.service.ProjectService; import cn.palmte.work.service.ProjectSettleService; +import cn.palmte.work.utils.DateKit; import cn.palmte.work.utils.FreeMarkerUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import java.util.Calendar; +import java.util.Date; import java.util.List; import java.util.Map; @@ -37,16 +45,35 @@ public class ProjectSettleController extends BaseController{ @Autowired private ProjectSettleService projectSettleService; + @Autowired + private ProjectSettleIncomeRepository projectSettleIncomeRepository; + @RequestMapping("/add") public String add(@RequestParam("id") int id, Map model) { Project project = projectService.getProject(id); List projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project); - String time = "2021-11"; - model.put("time", time); + ProjectSettleIncome projectSettleIncome = projectSettleIncomeRepository.findNewByProjectId(id); + if (projectSettleIncome != null) { + String former = projectSettleIncome.getTime(); + Date date = DateKit.getDate(former, DateKit.DATE_FORMAT); + Calendar instance = Calendar.getInstance(); + instance.setTime(date); + instance.set(Calendar.MONTH, instance.get(Calendar.MONTH) + 1); + Date current = instance.getTime(); + String time = DateKit.toStr(current, DateKit.DATE_FORMAT_YEAR_MONTH2); + model.put("time", time); + model.put("formerBean", projectSettleService.getFormerSettle(project, time)); + } else { + String time = DateKit.toStr(project.getStartDate(), DateKit.DATE_FORMAT_YEAR_MONTH2); + + model.put("time", time); + model.put("formerBean", new FormerBean()); + } + model.put("project", project); model.put("estimateBean", projectEstimateService.getEstimate(project)); model.put("budgetBean", projectBudgetService.getBudget(project)); - model.put("formerBean", projectSettleService.getFormerSettle(project, time)); + //现金表 model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails)); //freemarker可以利用的静态方法 @@ -57,13 +84,16 @@ public class ProjectSettleController extends BaseController{ @RequestMapping("/edit") public String edit(@RequestParam("id") int id, Map model) { Project project = projectService.getProject(id); + ProjectSettleIncome projectSettleIncome = projectSettleIncomeRepository.findNewByProjectId(id); List projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project); - String time = "2021-11"; + String time = projectSettleIncome.getTime(); model.put("time", time); model.put("project", project); model.put("estimateBean", projectEstimateService.getEstimate(project)); model.put("budgetBean", projectBudgetService.getBudget(project)); model.put("formerBean", projectSettleService.getFormerSettle(project, time)); + model.put("monthBean", projectSettleService.getMonthSettle(project, time)); + model.put("currentBean", projectSettleService.getCurrentSettle(project, time)); //现金表 model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails)); //freemarker可以利用的静态方法 diff --git a/src/main/java/cn/palmte/work/model/ProjectSettleCashFlowRepository.java b/src/main/java/cn/palmte/work/model/ProjectSettleCashFlowRepository.java index 57d57ed..9a5d872 100644 --- a/src/main/java/cn/palmte/work/model/ProjectSettleCashFlowRepository.java +++ b/src/main/java/cn/palmte/work/model/ProjectSettleCashFlowRepository.java @@ -15,4 +15,6 @@ public interface ProjectSettleCashFlowRepository extends JpaRepository findAllByProjectIdBefore(int id, String time); + + List findAllByProjectId(int id); } diff --git a/src/main/java/cn/palmte/work/model/ProjectSettleCostManageRepository.java b/src/main/java/cn/palmte/work/model/ProjectSettleCostManageRepository.java index 766e1ca..b58feb5 100644 --- a/src/main/java/cn/palmte/work/model/ProjectSettleCostManageRepository.java +++ b/src/main/java/cn/palmte/work/model/ProjectSettleCostManageRepository.java @@ -15,4 +15,6 @@ public interface ProjectSettleCostManageRepository extends JpaRepository findAllByProjectIdBefore(int id, String time); + + List findAllByProjectId(int id); } diff --git a/src/main/java/cn/palmte/work/model/ProjectSettleCostRepository.java b/src/main/java/cn/palmte/work/model/ProjectSettleCostRepository.java index 11979ea..c927d54 100644 --- a/src/main/java/cn/palmte/work/model/ProjectSettleCostRepository.java +++ b/src/main/java/cn/palmte/work/model/ProjectSettleCostRepository.java @@ -15,4 +15,6 @@ public interface ProjectSettleCostRepository extends JpaRepository findAllByProjectIdBefore(int id, String time); + + List findAllByProjectId(int id); } diff --git a/src/main/java/cn/palmte/work/model/ProjectSettleIncomeRepository.java b/src/main/java/cn/palmte/work/model/ProjectSettleIncomeRepository.java index 4ac982f..220c209 100644 --- a/src/main/java/cn/palmte/work/model/ProjectSettleIncomeRepository.java +++ b/src/main/java/cn/palmte/work/model/ProjectSettleIncomeRepository.java @@ -15,4 +15,9 @@ public interface ProjectSettleIncomeRepository extends JpaRepository findAllByProjectIdBefore(int id, String time); + + @Query(value = "select * from project_settle_income where project_id = ?1 order by id desc limit 0, 1", nativeQuery = true) + ProjectSettleIncome findNewByProjectId(int id); + + List findAllByProjectId(int id); } diff --git a/src/main/java/cn/palmte/work/model/ProjectSettleProfitMarginRepository.java b/src/main/java/cn/palmte/work/model/ProjectSettleProfitMarginRepository.java index 0607809..d046599 100644 --- a/src/main/java/cn/palmte/work/model/ProjectSettleProfitMarginRepository.java +++ b/src/main/java/cn/palmte/work/model/ProjectSettleProfitMarginRepository.java @@ -15,4 +15,6 @@ public interface ProjectSettleProfitMarginRepository extends JpaRepository findAllByProjectIdBefore(int id, String time); + + List findAllByProjectId(int id); } diff --git a/src/main/java/cn/palmte/work/service/ProjectSettleService.java b/src/main/java/cn/palmte/work/service/ProjectSettleService.java index 0a1f2b0..0cb5483 100644 --- a/src/main/java/cn/palmte/work/service/ProjectSettleService.java +++ b/src/main/java/cn/palmte/work/service/ProjectSettleService.java @@ -10,8 +10,8 @@ import org.springframework.stereotype.Service; import top.jfunc.common.utils.CollectionUtil; import java.math.BigDecimal; -import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * @author Yuanping Zhang @@ -369,10 +369,7 @@ public class ProjectSettleService { projectSettleCashFlowRepository.saveAndFlush(projectSettleNetIncreaseMonetaryFunds); } - public FormerBean getFormerSettle(Project project, String time) { - FormerBean settleBean = new FormerBean(); - List incomes = projectSettleIncomeRepository.findAllByProjectIdBefore(project.getId(), time); - + private void getIncomeFormerSettle(FormerBean settleBean, List incomes) { if(CollectionUtil.isNotEmpty(incomes)){ BigDecimal incomeDevice = incomes.stream().filter(d -> d.getType() == ProjectSettleIncome.TYPE_DEVICE).map(ProjectSettleIncome::getIncomeTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add); settleBean.setIncomeDeviceTaxExclude(incomeDevice); @@ -383,10 +380,9 @@ public class ProjectSettleService { BigDecimal incomeService = incomes.stream().filter(d -> d.getType() == ProjectSettleIncome.TYPE_SERVICE).map(ProjectSettleIncome::getIncomeTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add); settleBean.setIncomeServiceTaxExclude(incomeService); } + } - - List costs = projectSettleCostRepository.findAllByProjectIdBefore(project.getId(), time); - + private void getCostFormerSettle(FormerBean settleBean, List costs) { if(CollectionUtil.isNotEmpty(costs)){ BigDecimal costDevice = costs.stream().filter(d -> d.getType() == ProjectSettleCost.TYPE_DEVICE).map(ProjectSettleCost::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add); settleBean.setCostPurchaseDeviceTaxExclude(costDevice); @@ -406,9 +402,9 @@ public class ProjectSettleService { BigDecimal costOtherOther = costs.stream().filter(d -> d.getType() == ProjectSettleCost.TYPE_OTHER_OTHER).map(ProjectSettleCost::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add); settleBean.setCostOtherOtherTaxExclude(costOtherOther); } + } - - List manages = projectSettleCostManageRepository.findAllByProjectIdBefore(project.getId(), time); + private void getCostManageFormerSettle(FormerBean settleBean, List manages) { if(CollectionUtil.isNotEmpty(manages)){ BigDecimal costManageExpropriation = manages.stream().filter(d -> d.getType() == ProjectSettleCostManage.TYPE_EXPROPRIATION).map(ProjectSettleCostManage::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add); settleBean.setCostExpropriationTaxExclude(costManageExpropriation); @@ -419,8 +415,9 @@ public class ProjectSettleService { BigDecimal costIncomeTax = manages.stream().filter(d -> d.getType() == ProjectSettleCostManage.TYPE_INCOME_TAX).map(ProjectSettleCostManage::getCostTaxExclude).reduce(BigDecimal.ZERO, BigDecimal::add); settleBean.setCostIncomeTax(costIncomeTax); } + } - List profits = projectSettleProfitMarginRepository.findAllByProjectIdBefore(project.getId(), time); + private void getProfitFormerSettle(FormerBean settleBean, List profits) { if(CollectionUtil.isNotEmpty(profits)) { BigDecimal grossProfit = profits.stream().filter(d -> d.getType() == ProjectSettleProfitMargin.TYPE_GROSS_PROFIT).map(ProjectSettleProfitMargin::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); settleBean.setGrossProfit(grossProfit); @@ -431,8 +428,9 @@ public class ProjectSettleService { BigDecimal netProfit = profits.stream().filter(d -> d.getType() == ProjectSettleProfitMargin.TYPE_NET_PROFIT).map(ProjectSettleProfitMargin::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); settleBean.setNetProfit(netProfit); } + } - List cashFlows = projectSettleCashFlowRepository.findAllByProjectIdBefore(project.getId(), time); + private void getCashFlowFormerSettle(FormerBean settleBean, List cashFlows) { if(CollectionUtil.isNotEmpty(cashFlows)) { BigDecimal saleIncomeCash = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.SALE_INCOME_CASH).map(ProjectSettleCashFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); settleBean.setSaleIncomeCash(saleIncomeCash); @@ -476,6 +474,161 @@ public class ProjectSettleService { BigDecimal netIncreaseMonetaryFunds = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.NET_INCREASE_MONETARY_FUNDS).map(ProjectSettleCashFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); settleBean.setNetIncreaseMonetaryFunds(netIncreaseMonetaryFunds); } + } + + public FormerBean getFormerSettle(Project project, String time) { + FormerBean settleBean = new FormerBean(); + List incomes = projectSettleIncomeRepository.findAllByProjectIdBefore(project.getId(), time); + + getIncomeFormerSettle(settleBean, incomes); + + List costs = projectSettleCostRepository.findAllByProjectIdBefore(project.getId(), time); + + getCostFormerSettle(settleBean, costs); + + List manages = projectSettleCostManageRepository.findAllByProjectIdBefore(project.getId(), time); + + getCostManageFormerSettle(settleBean, manages); + + List profits = projectSettleProfitMarginRepository.findAllByProjectIdBefore(project.getId(), time); + + getProfitFormerSettle(settleBean, profits); + + List cashFlows = projectSettleCashFlowRepository.findAllByProjectIdBefore(project.getId(), time); + + getCashFlowFormerSettle(settleBean, cashFlows); + + return settleBean; + } + + public SettleBean getMonthSettle(Project project, String time) { + SettleBean settleBean = new SettleBean(); + List incomes = projectSettleIncomeRepository.findAllByProjectIdAndTime(project.getId(), time); + if(CollectionUtil.isNotEmpty(incomes)){ + ProjectSettleIncome projectSettleIncomeDevice = incomes.stream().filter(d -> d.getType() == ProjectSettleIncome.TYPE_DEVICE).collect(Collectors.toList()).get(0); + settleBean.setIncomeDevice(projectSettleIncomeDevice.getIncomeTaxExclude()); + + ProjectSettleIncome projectSettleIncomeEngineer = incomes.stream().filter(d -> d.getType() == ProjectSettleIncome.TYPE_ENGINEER).collect(Collectors.toList()).get(0); + settleBean.setIncomeEngineer(projectSettleIncomeEngineer.getIncomeTaxExclude()); + + ProjectSettleIncome projectSettleIncomeService = incomes.stream().filter(d -> d.getType() == ProjectSettleIncome.TYPE_SERVICE).collect(Collectors.toList()).get(0); + settleBean.setIncomeService(projectSettleIncomeService.getIncomeTaxExclude()); + } + + List costs = projectSettleCostRepository.findAllByProjectIdAndTime(project.getId(), time); + if(CollectionUtil.isNotEmpty(costs)){ + ProjectSettleCost projectSettleCostDevice = costs.stream().filter(d -> d.getType() == ProjectSettleCost.TYPE_DEVICE).collect(Collectors.toList()).get(0); + settleBean.setCostPurchaseDevice(projectSettleCostDevice.getCostTaxExclude()); + + ProjectSettleCost projectSettleCostBuild = costs.stream().filter(d -> d.getType() == ProjectSettleCost.TYPE_BUILDING).collect(Collectors.toList()).get(0); + settleBean.setCostPurchaseBuild(projectSettleCostBuild.getCostTaxExclude()); + + ProjectSettleCost projectSettleCostService = costs.stream().filter(d -> d.getType() == ProjectSettleCost.TYPE_SERVICE).collect(Collectors.toList()).get(0); + settleBean.setCostPurchaseService(projectSettleCostService.getCostTaxExclude()); + + ProjectSettleCost projectSettleCostOther = costs.stream().filter(d -> d.getType() == ProjectSettleCost.TYPE_OTHER).collect(Collectors.toList()).get(0); + settleBean.setCostPurchaseOther(projectSettleCostOther.getCostTaxExclude()); + + ProjectSettleCost projectSettleCostProjectManage = costs.stream().filter(d -> d.getType() == ProjectSettleCost.TYPE_PROJECT_MANAGE).collect(Collectors.toList()).get(0); + settleBean.setCostProjectManage(projectSettleCostProjectManage.getCostTaxExclude()); + + ProjectSettleCost projectSettleCostOtherOther = costs.stream().filter(d -> d.getType() == ProjectSettleCost.TYPE_OTHER_OTHER).collect(Collectors.toList()).get(0); + settleBean.setCostOther(projectSettleCostOtherOther.getCostTaxExclude()); + } + + List costManages = projectSettleCostManageRepository.findAllByProjectIdAndTime(project.getId(), time); + if(CollectionUtil.isNotEmpty(costManages)){ + ProjectSettleCostManage costManageExpropriation = costManages.stream().filter(d -> d.getType() == ProjectSettleCostManage.TYPE_EXPROPRIATION).collect(Collectors.toList()).get(0); + settleBean.setCostExpropriation(costManageExpropriation.getCostTaxExclude()); + + ProjectSettleCostManage costManageCompany = costManages.stream().filter(d -> d.getType() == ProjectSettleCostManage.TYPE_COMPANY_MANAGE).collect(Collectors.toList()).get(0); + settleBean.setCostCompanyManage(costManageCompany.getCostTaxExclude()); + + ProjectSettleCostManage costIncomeTax = costManages.stream().filter(d -> d.getType() == ProjectSettleCostManage.TYPE_INCOME_TAX).collect(Collectors.toList()).get(0); + settleBean.setCostIncomeTax(costIncomeTax.getCostTaxExclude()); + } + + List profitMargins = projectSettleProfitMarginRepository.findAllByProjectIdAndTime(project.getId(), time); + if(CollectionUtil.isNotEmpty(profitMargins)){ + ProjectSettleProfitMargin grossProfit = profitMargins.stream().filter(d -> d.getType() == ProjectSettleProfitMargin.TYPE_GROSS_PROFIT).collect(Collectors.toList()).get(0); + settleBean.setGrossProfit(grossProfit.getAmount()); + + ProjectSettleProfitMargin contributionProfit = profitMargins.stream().filter(d -> d.getType() == ProjectSettleProfitMargin.TYPE_CONTRIBUTION_PROFIT).collect(Collectors.toList()).get(0); + settleBean.setContributionProfit(contributionProfit.getAmount()); + + ProjectSettleProfitMargin netProfit = profitMargins.stream().filter(d -> d.getType() == ProjectSettleProfitMargin.TYPE_NET_PROFIT).collect(Collectors.toList()).get(0); + settleBean.setNetProfit(netProfit.getAmount()); + } + + List cashFlows = projectSettleCashFlowRepository.findAllByProjectIdAndTime(project.getId(), time); + if(CollectionUtil.isNotEmpty(cashFlows)){ + ProjectSettleCashFlow saleIncomeCash = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.SALE_INCOME_CASH).collect(Collectors.toList()).get(0); + settleBean.setSaleIncomeCash(saleIncomeCash.getAmount()); + + ProjectSettleCashFlow taxReturn = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.TAX_RETURN).collect(Collectors.toList()).get(0); + settleBean.setTaxReturn(taxReturn.getAmount()); + + ProjectSettleCashFlow earnestMoneyIncome = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.EARNEST_MONEY_INCOME).collect(Collectors.toList()).get(0); + settleBean.setEarnestMoneyIncome(earnestMoneyIncome.getAmount()); + + ProjectSettleCashFlow purchaseCost = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.PURCHASE_COST).collect(Collectors.toList()).get(0); + settleBean.setPurchaseCost(purchaseCost.getAmount()); + + ProjectSettleCashFlow taxCost = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.TAX_COST).collect(Collectors.toList()).get(0); + settleBean.setTaxCost(taxCost.getAmount()); + + ProjectSettleCashFlow earnestMoneyCost = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.EARNEST_MONEY_COST).collect(Collectors.toList()).get(0); + settleBean.setEarnestMoneyCost(earnestMoneyCost.getAmount()); + + ProjectSettleCashFlow netCashFlow = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.NET_CASH_FLOW).collect(Collectors.toList()).get(0); + settleBean.setNetCashFlow(netCashFlow.getAmount()); + + ProjectSettleCashFlow cashInflowFromInvestingActivities = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.CASH_INFLOW_FROM_INVESTING_ACTIVITIES).collect(Collectors.toList()).get(0); + settleBean.setCashInflowFromInvestingActivities(cashInflowFromInvestingActivities.getAmount()); + + ProjectSettleCashFlow cashOutflowFromInvestingActivities = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.CASH_OUTFLOW_FROM_INVESTING_ACTIVITIES).collect(Collectors.toList()).get(0); + settleBean.setCashOutflowFromInvestingActivities(cashOutflowFromInvestingActivities.getAmount()); + + ProjectSettleCashFlow netCashFromInvestingActivities = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.NET_CASH_FROM_INVESTING_ACTIVITIES).collect(Collectors.toList()).get(0); + settleBean.setNetCashFromInvestingActivities(netCashFromInvestingActivities.getAmount()); + + ProjectSettleCashFlow financingCapitalInflow = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.FINANCING_CAPITAL_INFLOW).collect(Collectors.toList()).get(0); + settleBean.setFinancingCapitalInflow(financingCapitalInflow.getAmount()); + + ProjectSettleCashFlow financingCapitalOutflow = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.FINANCING_CAPITAL_OUTFLOW).collect(Collectors.toList()).get(0); + settleBean.setFinancingCapitalOutflow(financingCapitalOutflow.getAmount()); + + ProjectSettleCashFlow financingCapitalCashflow = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.FINANCING_CAPITAL_CASHFLOW).collect(Collectors.toList()).get(0); + settleBean.setFinancingCapitalCashflow(financingCapitalCashflow.getAmount()); + + ProjectSettleCashFlow netIncreaseMonetaryFunds = cashFlows.stream().filter(d -> d.getType() == ProjectSettleCashFlow.NET_INCREASE_MONETARY_FUNDS).collect(Collectors.toList()).get(0); + settleBean.setNetIncreaseMonetaryFunds(netIncreaseMonetaryFunds.getAmount()); + } + + return settleBean; + } + + public FormerBean getCurrentSettle(Project project, String time) { + FormerBean settleBean = new FormerBean(); + List incomes = projectSettleIncomeRepository.findAllByProjectId(project.getId()); + + getIncomeFormerSettle(settleBean, incomes); + + List costs = projectSettleCostRepository.findAllByProjectId(project.getId()); + + getCostFormerSettle(settleBean, costs); + + List manages = projectSettleCostManageRepository.findAllByProjectId(project.getId()); + + getCostManageFormerSettle(settleBean, manages); + + List profits = projectSettleProfitMarginRepository.findAllByProjectId(project.getId()); + + getProfitFormerSettle(settleBean, profits); + + List cashFlows = projectSettleCashFlowRepository.findAllByProjectId(project.getId()); + + getCashFlowFormerSettle(settleBean, cashFlows); return settleBean; } diff --git a/src/main/java/cn/palmte/work/utils/DateKit.java b/src/main/java/cn/palmte/work/utils/DateKit.java index 6035e20..6d6b2a8 100644 --- a/src/main/java/cn/palmte/work/utils/DateKit.java +++ b/src/main/java/cn/palmte/work/utils/DateKit.java @@ -8,8 +8,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.IntStream; import java.util.stream.Stream; /** @@ -19,6 +17,7 @@ public class DateKit { public static final String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; public static final String DATE_FORMAT = "yyyy-MM-dd"; public static final String DATE_FORMAT_YEAR_MONTH = "yyyyMM"; + public static final String DATE_FORMAT_YEAR_MONTH2 = "yyyy-MM"; private DateKit() { } diff --git a/src/main/resources/application-sit.properties b/src/main/resources/application-sit.properties index 43c9c8b..4362f16 100644 --- a/src/main/resources/application-sit.properties +++ b/src/main/resources/application-sit.properties @@ -1,5 +1,5 @@ -spring.datasource.url=jdbc:mysql://127.0.0.1:3306/fourcal?\ - characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true +spring.datasource.url=jdbc:mysql://117.174.24.18:3306/fourcal?\ +characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8&rewriteBatchedStatements=true spring.datasource.username=root spring.datasource.password=zytx123!@# diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b89f14a..00a9707 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -2,7 +2,7 @@ spring.application.name=fourcal server.port=8282 server.context-path=/fourcal app.version=0.0.1 -spring.profiles.active=local +spring.profiles.active=sit spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver diff --git a/src/main/resources/templates/admin/human_cost_individual.ftl b/src/main/resources/templates/admin/human_cost_individual.ftl index 30aa5c8..8f38591 100644 --- a/src/main/resources/templates/admin/human_cost_individual.ftl +++ b/src/main/resources/templates/admin/human_cost_individual.ftl @@ -21,7 +21,7 @@
- +
diff --git a/src/main/resources/templates/admin/human_cost_list.ftl b/src/main/resources/templates/admin/human_cost_list.ftl index de6acf2..b5c2e0b 100644 --- a/src/main/resources/templates/admin/human_cost_list.ftl +++ b/src/main/resources/templates/admin/human_cost_list.ftl @@ -58,7 +58,7 @@
- +
diff --git a/src/main/resources/templates/admin/project_settle_add.ftl b/src/main/resources/templates/admin/project_settle_add.ftl index 5f48284..3bdefe5 100644 --- a/src/main/resources/templates/admin/project_settle_add.ftl +++ b/src/main/resources/templates/admin/project_settle_add.ftl @@ -37,7 +37,7 @@
- +
diff --git a/src/main/resources/templates/admin/project_settle_edit.ftl b/src/main/resources/templates/admin/project_settle_edit.ftl index e95b335..216c4e2 100644 --- a/src/main/resources/templates/admin/project_settle_edit.ftl +++ b/src/main/resources/templates/admin/project_settle_edit.ftl @@ -34,6 +34,14 @@
+
+
+
+ +
+
+
+
收入 diff --git a/src/main/resources/templates/admin/project_summary.ftl b/src/main/resources/templates/admin/project_summary.ftl index 1a54b75..1bf3021 100644 --- a/src/main/resources/templates/admin/project_summary.ftl +++ b/src/main/resources/templates/admin/project_summary.ftl @@ -8,6 +8,13 @@
+
+
+
+ +
+
+