From cd8f1ca02bf63ba6b13f32cd5e026e5ca90a1c89 Mon Sep 17 00:00:00 2001 From: xxssyyyyssxx Date: Thu, 18 Nov 2021 16:01:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/ProjectController.java | 12 +- .../work/service/ProjectBudgetService.java | 53 +++++++- .../work/service/ProjectEstimateService.java | 91 ++++++++++++- .../palmte/work/service/ProjectService.java | 124 +----------------- .../palmte/work/service/SysConfigService.java | 9 ++ 5 files changed, 156 insertions(+), 133 deletions(-) diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java index 7c6b4fb..9593375 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -117,7 +117,7 @@ public class ProjectController extends BaseController { */ @RequestMapping("/estimateAddSave") public String estimateAddSave(Project project, EstimateBean estimateBean, Map model) { - projectService.estimateAddSave(project, estimateBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT); + projectEstimateService.estimateAddSave(project, estimateBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT); return "redirect:/project/list"; } @@ -126,7 +126,7 @@ public class ProjectController extends BaseController { */ @RequestMapping("/estimateAddSaveAndApprove") public String estimateAddSaveAndApprove(Project project, EstimateBean estimateBean, Map model) throws Exception { - projectService.estimateAddSaveAndApprove(project, estimateBean, InterfaceUtil.getAdmin()); + projectEstimateService.estimateAddSaveAndApprove(project, estimateBean, InterfaceUtil.getAdmin()); return "redirect:/project/list"; } @@ -158,7 +158,7 @@ public class ProjectController extends BaseController { @RequestMapping("/estimateEditSave") public String estimateEditSave(Project project, EstimateBean estimateBean, Map model) { Project projectInDb = projectService.getProject(project.getId()); - projectService.estimateEditSave(project, projectInDb, estimateBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT); + projectEstimateService.estimateEditSave(project, projectInDb, estimateBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT); return "redirect:/project/list"; } @@ -173,7 +173,7 @@ public class ProjectController extends BaseController { @RequestMapping("/estimateEditSaveAndApprove") public String estimateEditSaveAndApprove(Project project, EstimateBean estimateBean, Map model) throws Exception { Project projectInDb = projectService.getProject(project.getId()); - projectService.estimateEditSaveAndApprove(project, projectInDb, estimateBean, InterfaceUtil.getAdmin()); + projectEstimateService.estimateEditSaveAndApprove(project, projectInDb, estimateBean, InterfaceUtil.getAdmin()); return "redirect:/project/list"; } @@ -213,7 +213,7 @@ public class ProjectController extends BaseController { @RequestMapping("/budgetEditSave") public String budgetEditSave(Project project, BudgetBean budgetBean, Map model) { Project projectInDb = projectService.getProject(project.getId()); - projectService.budgetEditSave(project, projectInDb, budgetBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT); + projectBudgetService.budgetEditSave(project, projectInDb, budgetBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT); return "redirect:/project/list"; } @@ -223,7 +223,7 @@ public class ProjectController extends BaseController { @RequestMapping("/budgetEditSaveAndApprove") public String budgetEditSaveAndApprove(Project project, BudgetBean budgetBean, Map model) throws Exception { Project projectInDb = projectService.getProject(project.getId()); - projectService.budgetEditSaveAndApprove(project, projectInDb, budgetBean, InterfaceUtil.getAdmin()); + projectBudgetService.budgetEditSaveAndApprove(project, projectInDb, budgetBean, InterfaceUtil.getAdmin()); return "redirect:/project/list"; } diff --git a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java index a31211e..6f5c3ba 100644 --- a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java +++ b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java @@ -1,9 +1,6 @@ package cn.palmte.work.service; -import cn.palmte.work.bean.BudgetBean; -import cn.palmte.work.bean.CashFlowBean; -import cn.palmte.work.bean.ProjectConfigBean; -import cn.palmte.work.bean.ProjectUnderwrittenPlanStatisticBean; +import cn.palmte.work.bean.*; import cn.palmte.work.model.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -37,6 +34,14 @@ public class ProjectBudgetService { @Autowired private ProjectBudgetPlanDetailRepository projectBudgetPlanDetailRepository; @Autowired + private ProjectInstanceService projectInstanceService; + @Autowired + private ActTaskDefService actTaskDefService; + @Autowired + private ProjectService projectService; + @Autowired + private ProjectRepository projectRepository; + @Autowired private SysConfigService sysConfigService; @Value("#{'${fourcal.fixedprojectmanagedetails}'.split('\\|')}") @@ -575,4 +580,44 @@ public class ProjectBudgetService { cashFlowBean.setFinancingCapitalOutflow(detailTotal.getRepaymentPlan()); return cashFlowBean; } + + + /** + * 编辑预算保存项目并审核 + */ + //@Transactional(rollbackFor = RuntimeException.class) + public void budgetEditSaveAndApprove(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin) throws Exception { + Integer approveStatusBudget = projectInDb.getApproveStatusBudget(); + + budgetEditSave(project, projectInDb, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING); + + if(null != approveStatusBudget && + ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == approveStatusBudget){ + //审核不通过的情况下重新编辑后就完成当前任务 + List budgetProcessInsIds = projectInstanceService.getBudgetProcessInsIds(projectInDb); + if(CollectionUtil.isNotEmpty(budgetProcessInsIds)){ + actTaskDefService.completeTaskByProcInsId(budgetProcessInsIds.get(0), + ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus(), + "重新修改了预算表,请审批"); + } + }else { + //第一次或者重新发起一个流程实例 + projectInstanceService.startBudgetProcessInstance(projectInDb, admin); + } + } + /** + * 编辑预算保存项目 + */ + @Transactional(rollbackFor = RuntimeException.class) + public Project budgetEditSave(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin, ApproveStatusEnum approveStatusEnum) { + Project p = projectService.editProject(project, projectInDb); + p.setStatus(StatusEnum.BUDGET_ACCOUNTS.getStatus()); + p.setStatusDesc(StatusEnum.BUDGET_ACCOUNTS.getStatusDesc()); + p.setApproveStatusBudget(approveStatusEnum.getApproveStatus()); + p = projectRepository.saveAndFlush(p); + //清空重新保存概算信息 + clearBudget(p); + saveBudget(p, budgetBean); + return p; + } } diff --git a/src/main/java/cn/palmte/work/service/ProjectEstimateService.java b/src/main/java/cn/palmte/work/service/ProjectEstimateService.java index 89f1f5d..9487a1a 100644 --- a/src/main/java/cn/palmte/work/service/ProjectEstimateService.java +++ b/src/main/java/cn/palmte/work/service/ProjectEstimateService.java @@ -1,9 +1,13 @@ package cn.palmte.work.service; +import cn.palmte.work.bean.ApproveStatusEnum; import cn.palmte.work.bean.EstimateBean; +import cn.palmte.work.bean.ProjectConfigBean; +import cn.palmte.work.bean.StatusEnum; import cn.palmte.work.model.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import top.jfunc.common.utils.CollectionUtil; import java.util.List; @@ -21,7 +25,16 @@ public class ProjectEstimateService { private ProjectEstimateCostRepository projectEstimateCostRepository; @Autowired private ProjectEstimateCostManageRepository projectEstimateCostManageRepository; - + @Autowired + private ProjectInstanceService projectInstanceService; + @Autowired + private ActTaskDefService actTaskDefService; + @Autowired + private ProjectService projectService; + @Autowired + private ProjectRepository projectRepository; + @Autowired + private SysConfigService sysConfigService; public void clearEstimate(Project project){ List incomes = projectEstimateIncomeRepository.findAllByProjectIdEquals(project.getId()); @@ -197,4 +210,80 @@ public class ProjectEstimateService { return estimateBean; } + + + + /** + * 新增概算保存项目并发起审核 + */ + @Transactional(rollbackFor = RuntimeException.class) + public Project estimateAddSaveAndApprove(Project project, + EstimateBean estimateBean, + Admin admin) throws Exception { + Project p = estimateAddSave(project, estimateBean, admin, ApproveStatusEnum.APPROVAL_PENDING); + + projectInstanceService.startEstimateProcessInstance(p, admin); + + return project; + } + /** + * 新增概算保存项目 + */ + @Transactional(rollbackFor = RuntimeException.class) + public Project estimateAddSave(Project project, + EstimateBean estimateBean, + Admin admin, + ApproveStatusEnum approveStatusEnum) { + Project p = projectService.addProject(project, admin, approveStatusEnum); + saveEstimate(p, estimateBean); + + return project; + } + /** + * 编辑概算保存项目并发起审核 + */ +// @Transactional(rollbackFor = RuntimeException.class) + public void estimateEditSaveAndApprove(Project project, + Project projectInDb, + EstimateBean estimateBean, + Admin admin) throws Exception { + + Integer approveStatusEstimate = projectInDb.getApproveStatusEstimate(); + + estimateEditSave(project, projectInDb, estimateBean, admin, ApproveStatusEnum.APPROVAL_PENDING); + + if(null != approveStatusEstimate && + ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == approveStatusEstimate){ + //审核不通过的情况下重新编辑后就完成当前任务【此时任务节点在第一个,也就是发起审批】 + List estimateProcessInsIds = projectInstanceService.getEstimateProcessInsIds(projectInDb); + if(CollectionUtil.isNotEmpty(estimateProcessInsIds)){ + actTaskDefService.completeTaskByProcInsId(estimateProcessInsIds.get(0), + ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus(), + "重新修改了概算表,请审批"); + } + }else { + //第一次或者重新发起一个流程实例【第一次或者以前的审批都已经过了】 + projectInstanceService.startEstimateProcessInstance(projectInDb, admin); + } + } + /** + * 编辑概算保存项目 + */ + @Transactional(rollbackFor = RuntimeException.class) + public Project estimateEditSave(Project project, Project projectInDb, EstimateBean estimateBean, Admin admin, ApproveStatusEnum approveStatusEnum) { + Project p = projectService.editProject(project, projectInDb); + p.setStatus(StatusEnum.ESTIMATE_ACCOUNTS.getStatus()); + p.setStatusDesc(StatusEnum.ESTIMATE_ACCOUNTS.getStatusDesc()); + p.setApproveStatusEstimate(approveStatusEnum.getApproveStatus()); + p = projectRepository.saveAndFlush(p); + + ProjectConfigBean projectConfigBeanConfig = sysConfigService.getProjectConfigBeanConfig(); + project.setProjectContributionProfitRateThreshold(projectConfigBeanConfig.getProjectContributionProfitRateThreshold()); + project.setUnderwrittenTaxRate(projectConfigBeanConfig.getUnderwrittenTaxRate()); + + //清空重新保存概算信息 + clearEstimate(p); + saveEstimate(p, estimateBean); + return p; + } } diff --git a/src/main/java/cn/palmte/work/service/ProjectService.java b/src/main/java/cn/palmte/work/service/ProjectService.java index bb3393a..16aa346 100644 --- a/src/main/java/cn/palmte/work/service/ProjectService.java +++ b/src/main/java/cn/palmte/work/service/ProjectService.java @@ -121,86 +121,8 @@ public class ProjectService { return projectRepository.findOne(id); } - /** - * 新增概算保存项目并发起审核 - */ - @Transactional(rollbackFor = RuntimeException.class) - public Project estimateAddSaveAndApprove(Project project, - EstimateBean estimateBean, - Admin admin) throws Exception { - Project p = estimateAddSave(project, estimateBean, admin, ApproveStatusEnum.APPROVAL_PENDING); - projectInstanceService.startEstimateProcessInstance(p, admin); - - return project; - } - - /** - * 新增概算保存项目 - */ - @Transactional(rollbackFor = RuntimeException.class) - public Project estimateAddSave(Project project, - EstimateBean estimateBean, - Admin admin, - ApproveStatusEnum approveStatusEnum) { - Project p = addProject(project, admin, approveStatusEnum); - projectEstimateService.saveEstimate(p, estimateBean); - - return project; - } - - /** - * 编辑概算保存项目并发起审核 - */ -// @Transactional(rollbackFor = RuntimeException.class) - public void estimateEditSaveAndApprove(Project project, - Project projectInDb, - EstimateBean estimateBean, - Admin admin) throws Exception { - - Integer approveStatusEstimate = projectInDb.getApproveStatusEstimate(); - - estimateEditSave(project, projectInDb, estimateBean, admin, ApproveStatusEnum.APPROVAL_PENDING); - - if(null != approveStatusEstimate && - ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == approveStatusEstimate){ - //审核不通过的情况下重新编辑后就完成当前任务【此时任务节点在第一个,也就是发起审批】 - List estimateProcessInsIds = projectInstanceService.getEstimateProcessInsIds(projectInDb); - if(CollectionUtil.isNotEmpty(estimateProcessInsIds)){ - actTaskDefService.completeTaskByProcInsId(estimateProcessInsIds.get(0), - ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus(), - "重新修改了概算表,请审批"); - } - }else { - //第一次或者重新发起一个流程实例【第一次或者以前的审批都已经过了】 - projectInstanceService.startEstimateProcessInstance(projectInDb, admin); - } - } - /** - * 编辑概算保存项目 - */ - @Transactional(rollbackFor = RuntimeException.class) - public Project estimateEditSave(Project project, Project projectInDb, EstimateBean estimateBean, Admin admin, ApproveStatusEnum approveStatusEnum) { - Project p = editProject(project, projectInDb); - p.setStatus(StatusEnum.ESTIMATE_ACCOUNTS.getStatus()); - p.setStatusDesc(StatusEnum.ESTIMATE_ACCOUNTS.getStatusDesc()); - p.setApproveStatusEstimate(approveStatusEnum.getApproveStatus()); - p = projectRepository.saveAndFlush(p); - - ProjectConfigBean projectConfigBeanConfig = projectBudgetService.getProjectConfigBeanConfig(); - project.setProjectContributionProfitRateThreshold(projectConfigBeanConfig.getProjectContributionProfitRateThreshold()); - project.setUnderwrittenTaxRate(projectConfigBeanConfig.getUnderwrittenTaxRate()); - - //清空重新保存概算信息 - projectEstimateService.clearEstimate(p); - projectEstimateService.saveEstimate(p, estimateBean); - return p; - } - - - - - private Project addProject(Project project, Admin admin, ApproveStatusEnum approveStatusEnum) { + public Project addProject(Project project, Admin admin, ApproveStatusEnum approveStatusEnum) { project.setTypeDesc(TypeEnum.parseType(project.getType()).getTypeDesc()); project.setStatus(StatusEnum.ESTIMATE_ACCOUNTS.getStatus()); project.setStatusDesc(StatusEnum.ESTIMATE_ACCOUNTS.getStatusDesc()); @@ -227,7 +149,7 @@ public class ProjectService { return project; } - private Project editProject(Project project, Project projectInDb) { + public Project editProject(Project project, Project projectInDb) { //只有如下可以修改 @@ -247,44 +169,6 @@ public class ProjectService { return projectInDb; } - /** - * 编辑预算保存项目并审核 - */ - //@Transactional(rollbackFor = RuntimeException.class) - public void budgetEditSaveAndApprove(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin) throws Exception { - Integer approveStatusBudget = projectInDb.getApproveStatusBudget(); - - budgetEditSave(project, projectInDb, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING); - - if(null != approveStatusBudget && - ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == approveStatusBudget){ - //审核不通过的情况下重新编辑后就完成当前任务 - List budgetProcessInsIds = projectInstanceService.getBudgetProcessInsIds(projectInDb); - if(CollectionUtil.isNotEmpty(budgetProcessInsIds)){ - actTaskDefService.completeTaskByProcInsId(budgetProcessInsIds.get(0), - ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus(), - "重新修改了预算表,请审批"); - } - }else { - //第一次或者重新发起一个流程实例 - projectInstanceService.startBudgetProcessInstance(projectInDb, admin); - } - } - /** - * 编辑预算保存项目 - */ - @Transactional(rollbackFor = RuntimeException.class) - public Project budgetEditSave(Project project, Project projectInDb, BudgetBean budgetBean, Admin admin, ApproveStatusEnum approveStatusEnum) { - Project p = editProject(project, projectInDb); - p.setStatus(StatusEnum.BUDGET_ACCOUNTS.getStatus()); - p.setStatusDesc(StatusEnum.BUDGET_ACCOUNTS.getStatusDesc()); - p.setApproveStatusBudget(approveStatusEnum.getApproveStatus()); - p = projectRepository.saveAndFlush(p); - //清空重新保存概算信息 - projectBudgetService.clearBudget(p); - projectBudgetService.saveBudget(p, budgetBean); - return p; - } public ResponseMsg completeTask(int projectId, String json) { List relationList = projectInstanceRelationRepository.findByProjectIdOrderByCreateTimeDesc(projectId); @@ -302,10 +186,6 @@ public class ProjectService { /** * 更新项目状态和审批状态 - * - * @param projectId - * @param statusEnum - * @param approveStatusEnum */ public void updateStatusAndApproveStatus(int projectId, StatusEnum statusEnum, ApproveStatusEnum approveStatusEnum) { Project one = projectRepository.findOne(projectId); diff --git a/src/main/java/cn/palmte/work/service/SysConfigService.java b/src/main/java/cn/palmte/work/service/SysConfigService.java index 6eb4772..4e54c84 100644 --- a/src/main/java/cn/palmte/work/service/SysConfigService.java +++ b/src/main/java/cn/palmte/work/service/SysConfigService.java @@ -1,5 +1,6 @@ package cn.palmte.work.service; +import cn.palmte.work.bean.ProjectConfigBean; import cn.palmte.work.model.SysConfig; import cn.palmte.work.model.SysConfigRepository; import cn.palmte.work.pojo.SysConfigRequest; @@ -34,4 +35,12 @@ public class SysConfigService { public BigDecimal getProjectContributionProfitRateThreshold(){ return new BigDecimal(sysConfigRepository.findByCodeEquals(SysConfig.KEY_PROJECTCONTRIBUTIONPROFITRATETHRESHOLD).getValue()); } + + + public ProjectConfigBean getProjectConfigBeanConfig(){ + ProjectConfigBean projectConfigBean = new ProjectConfigBean(); + projectConfigBean.setUnderwrittenTaxRate(getUnderwrittenTaxRate()); + projectConfigBean.setProjectContributionProfitRateThreshold(getProjectContributionProfitRateThreshold()); + return projectConfigBean; + } }