保存或更新决算信息前先清理旧数据
parent
7a392df760
commit
c7300c2aa6
|
@ -7,7 +7,6 @@ import cn.palmte.work.model.ProjectSettleIncome;
|
||||||
import cn.palmte.work.model.ProjectSettleIncomeRepository;
|
import cn.palmte.work.model.ProjectSettleIncomeRepository;
|
||||||
import cn.palmte.work.service.*;
|
import cn.palmte.work.service.*;
|
||||||
import cn.palmte.work.utils.FreeMarkerUtil;
|
import cn.palmte.work.utils.FreeMarkerUtil;
|
||||||
import cn.palmte.work.utils.InterfaceUtil;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
|
@ -2,6 +2,10 @@ package cn.palmte.work.model;
|
||||||
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface ProjectFinalProfitMarginRepository extends JpaRepository<ProjectFinalProfitMargin,Integer> {
|
public interface ProjectFinalProfitMarginRepository extends JpaRepository<ProjectFinalProfitMargin,Integer> {
|
||||||
|
|
||||||
|
List<ProjectFinalProfitMargin> findByProjectIdEquals(int projectId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,42 +60,29 @@ public class ProjectFinalSevice {
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void save(Project project, FinalBean finalBean) {
|
public void save(Project project, FinalBean finalBean) {
|
||||||
//预算表数据
|
clearAndSave(project, finalBean);
|
||||||
EstimateBean estimate = projectEstimateService.getEstimate(project);
|
|
||||||
//概算表数据
|
|
||||||
BudgetBean budget = projectBudgetService.getBudget(project);
|
|
||||||
|
|
||||||
FormerBean settle = projectSettleService.getCurrentSettle(project, null);
|
|
||||||
//现金流量表数据
|
|
||||||
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
|
|
||||||
CashFlowBean cashFlowBean = projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails);
|
|
||||||
|
|
||||||
//保存项目决算收入信息
|
|
||||||
saveProjectFinalIncome(project,finalBean,estimate,budget,settle);
|
|
||||||
|
|
||||||
//保存项目决算成本信息
|
|
||||||
saveProjectFinalCost(project,finalBean,estimate,budget,settle);
|
|
||||||
|
|
||||||
//保存项目结算管理成本信息
|
|
||||||
saveProjectFinalCostManage(project,finalBean,estimate,budget,settle);
|
|
||||||
|
|
||||||
//保存项目决算利润率
|
|
||||||
saveProjectFinalProfitMargin(project,finalBean,estimate,budget,settle);
|
|
||||||
|
|
||||||
//保存项目结算现金流量信息
|
|
||||||
saveProjectFinalCashFlux(project,finalBean,cashFlowBean,settle);
|
|
||||||
|
|
||||||
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT);
|
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void saveAndApprove(Project project, FinalBean finalBean) throws Exception {
|
public void saveAndApprove(Project project, FinalBean finalBean) throws Exception {
|
||||||
FormerBean settle = projectSettleService.getCurrentSettle(project, null);
|
clearAndSave(project, finalBean);
|
||||||
|
//更新项目和审批状态
|
||||||
|
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING);
|
||||||
|
//发起流程
|
||||||
|
projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearAndSave(Project project, FinalBean finalBean) {
|
||||||
|
//清楚旧数据
|
||||||
|
clearFinal(project);
|
||||||
|
|
||||||
//预算表数据
|
//预算表数据
|
||||||
EstimateBean estimate = projectEstimateService.getEstimate(project);
|
EstimateBean estimate = projectEstimateService.getEstimate(project);
|
||||||
//概算表数据
|
//概算表数据
|
||||||
BudgetBean budget = projectBudgetService.getBudget(project);
|
BudgetBean budget = projectBudgetService.getBudget(project);
|
||||||
|
|
||||||
|
FormerBean settle = projectSettleService.getCurrentSettle(project, null);
|
||||||
//现金流量表数据
|
//现金流量表数据
|
||||||
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
|
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
|
||||||
CashFlowBean cashFlowBean = projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails);
|
CashFlowBean cashFlowBean = projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails);
|
||||||
|
@ -114,12 +101,33 @@ public class ProjectFinalSevice {
|
||||||
|
|
||||||
//保存项目结算现金流量信息
|
//保存项目结算现金流量信息
|
||||||
saveProjectFinalCashFlux(project, finalBean, cashFlowBean, settle);
|
saveProjectFinalCashFlux(project, finalBean, cashFlowBean, settle);
|
||||||
|
}
|
||||||
|
|
||||||
//更新项目和审批状态
|
private void clearFinal(Project project) {
|
||||||
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING);
|
List<ProjectFinalCost> projectFinalCosts = projectFinalCostRepository.findByProjectIdEquals(project.getId());
|
||||||
//发起流程
|
if (CollectionUtil.isNotEmpty(projectFinalCosts)) {
|
||||||
projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin());
|
projectFinalCostRepository.deleteInBatch(projectFinalCosts);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ProjectFinalCostManage> projectFinalCostManages = projectFinalCostManageRepository.findByProjectIdEquals(project.getId());
|
||||||
|
if (CollectionUtil.isNotEmpty(projectFinalCostManages)) {
|
||||||
|
projectFinalCostManageRepository.deleteInBatch(projectFinalCostManages);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ProjectFinalIncome> projectFinalIncomes = projectFinalIncomeReposiry.findByProjectIdEquals(project.getId());
|
||||||
|
if (CollectionUtil.isNotEmpty(projectFinalIncomes)) {
|
||||||
|
projectFinalIncomeReposiry.deleteInBatch(projectFinalIncomes);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ProjectFinalProfitMargin> projectFinalProfitMargins = projectFinalProfitMarginRepository.findByProjectIdEquals(project.getId());
|
||||||
|
if (CollectionUtil.isNotEmpty(projectFinalProfitMargins)) {
|
||||||
|
projectFinalProfitMarginRepository.deleteInBatch(projectFinalProfitMargins);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ProjectFinalCashFlux> projectFinalCashFluxes = projectFinalCashFluxRepository.findByProjectIdEquals(project.getId());
|
||||||
|
if (CollectionUtil.isNotEmpty(projectFinalCashFluxes)) {
|
||||||
|
projectFinalCashFluxRepository.deleteInBatch(projectFinalCashFluxes);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveProjectFinalProfitMargin(Project project, FinalBean finalBean, EstimateBean estimate, BudgetBean budget, FormerBean settle) {
|
private void saveProjectFinalProfitMargin(Project project, FinalBean finalBean, EstimateBean estimate, BudgetBean budget, FormerBean settle) {
|
||||||
|
|
Loading…
Reference in New Issue