From f1670578cc6d8e041b59a52dac5c21d908ccb32e Mon Sep 17 00:00:00 2001 From: pengqiang Date: Wed, 17 Nov 2021 14:49:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=B3=E7=AE=97=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/ProjectFinalController.java | 36 ++++++++++++++----- .../work/service/ProjectInstanceService.java | 3 +- .../palmte/work/service/ProjectService.java | 34 ++++++++++++++++++ .../work/service/ProjectSettleService.java | 17 ++------- .../templates/admin/project_final_edit.ftl | 6 ++++ .../templates/admin/project_list.ftl | 20 ++++++----- 6 files changed, 85 insertions(+), 31 deletions(-) diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java index 48441d8..312102f 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java @@ -1,15 +1,10 @@ package cn.palmte.work.controller.backend; -import cn.palmte.work.bean.ApproveStatusEnum; -import cn.palmte.work.bean.BudgetBean; -import cn.palmte.work.bean.EstimateBean; -import cn.palmte.work.bean.FinalBean; +import cn.palmte.work.bean.*; import cn.palmte.work.model.Project; import cn.palmte.work.model.ProjectBudgetPlanDetail; -import cn.palmte.work.service.ProjectBudgetService; -import cn.palmte.work.service.ProjectEstimateService; -import cn.palmte.work.service.ProjectFinalSevice; -import cn.palmte.work.service.ProjectService; +import cn.palmte.work.model.ProjectRepository; +import cn.palmte.work.service.*; import cn.palmte.work.utils.FreeMarkerUtil; import cn.palmte.work.utils.InterfaceUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -17,6 +12,7 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import java.util.Date; import java.util.List; import java.util.Map; @@ -36,6 +32,9 @@ public class ProjectFinalController extends BaseController{ @Autowired private ProjectBudgetService projectBudgetService; + @Autowired + private ProjectInstanceService projectInstanceService; + @RequestMapping("/edit") public String budget(@RequestParam("id") int id, Map model) { Project project = projectService.getProject(id); @@ -54,6 +53,27 @@ public class ProjectFinalController extends BaseController{ @RequestMapping("/save") public String estimateAddSave(Project project, FinalBean finalBean, Map model) { projectFinalSevice.save(project,finalBean); + projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT); + return "redirect:/project/list"; + } + + /** + * 保存并提交审批 + * + * @param project + * @param finalBean + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/saveAndApprove") + public String saveAndApprove(Project project, FinalBean finalBean, Map model) throws Exception{ + //保存 + projectFinalSevice.save(project,finalBean); + //更新项目和审批状态 + projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING); + //发起流程 + projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin()); return "redirect:/project/list"; } diff --git a/src/main/java/cn/palmte/work/service/ProjectInstanceService.java b/src/main/java/cn/palmte/work/service/ProjectInstanceService.java index a762b16..ce57f90 100644 --- a/src/main/java/cn/palmte/work/service/ProjectInstanceService.java +++ b/src/main/java/cn/palmte/work/service/ProjectInstanceService.java @@ -71,7 +71,8 @@ public class ProjectInstanceService { /** * 开启一个决算流程实例 */ - public void startFinalProcessInstance(Project project, Admin admin) throws Exception { + public void startFinalProcessInstance(int projectId, Admin admin) throws Exception { + Project project = projectRepository.findOne(projectId); startProcess(project, admin, ActConstant.PROCESS_DEFKEY_FINAL); } /** diff --git a/src/main/java/cn/palmte/work/service/ProjectService.java b/src/main/java/cn/palmte/work/service/ProjectService.java index 2a84ebe..bb3393a 100644 --- a/src/main/java/cn/palmte/work/service/ProjectService.java +++ b/src/main/java/cn/palmte/work/service/ProjectService.java @@ -298,4 +298,38 @@ public class ProjectService { return ResponseMsg.buildSuccessMsg("审核成功"); } + + + /** + * 更新项目状态和审批状态 + * + * @param projectId + * @param statusEnum + * @param approveStatusEnum + */ + public void updateStatusAndApproveStatus(int projectId, StatusEnum statusEnum, ApproveStatusEnum approveStatusEnum) { + Project one = projectRepository.findOne(projectId); + one.setStatus(statusEnum.getStatus()); + one.setStatusDesc(statusEnum.getStatusDesc()); + + int approveStatus = approveStatusEnum.getApproveStatus(); + switch (statusEnum) { + case ESTIMATE_ACCOUNTS: + one.setApproveStatusEstimate(approveStatus); + break; + case BUDGET_ACCOUNTS: + one.setApproveStatusBudget(approveStatus); + break; + case SETTLE_ACCOUNTS: + one.setApproveStatusSettle(approveStatus); + break; + case FINAL_ACCOUNTS: + one.setApproveStatusFinal(approveStatus); + break; + default: + } + + one.setLastUpdateTime(new Date()); + projectRepository.saveAndFlush(one); + } } diff --git a/src/main/java/cn/palmte/work/service/ProjectSettleService.java b/src/main/java/cn/palmte/work/service/ProjectSettleService.java index d3b687e..0a1f2b0 100644 --- a/src/main/java/cn/palmte/work/service/ProjectSettleService.java +++ b/src/main/java/cn/palmte/work/service/ProjectSettleService.java @@ -40,7 +40,7 @@ public class ProjectSettleService { private ProjectInstanceService projectInstanceService; @Autowired - private ProjectRepository projectRepository; + private ProjectService projectService; public void save(Project project, SettleBean settleBean, BudgetSettleBean budgetBean, EstimateSettleBean estimateBean, String time) { @@ -55,13 +55,7 @@ public class ProjectSettleService { //资金流量记录 cashFlow(project, settleBean, budgetBean, time); - - Project one = projectRepository.findOne(project.getId()); - one.setStatus(StatusEnum.SETTLE_ACCOUNTS.getStatus()); - one.setStatusDesc(StatusEnum.SETTLE_ACCOUNTS.getStatusDesc()); - one.setApproveStatusSettle(ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus()); - one.setLastUpdateTime(new Date()); - projectRepository.saveAndFlush(one); + projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.SETTLE_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT); } public void saveAndApprove(Project project, SettleBean settleBean, BudgetSettleBean budgetBean, EstimateSettleBean estimateBean, String time) throws Exception{ @@ -76,12 +70,7 @@ public class ProjectSettleService { //资金流量记录 cashFlow(project, settleBean, budgetBean, time); - Project one = projectRepository.findOne(project.getId()); - one.setStatus(StatusEnum.SETTLE_ACCOUNTS.getStatus()); - one.setStatusDesc(StatusEnum.SETTLE_ACCOUNTS.getStatusDesc()); - one.setApproveStatusSettle(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus()); - one.setLastUpdateTime(new Date()); - projectRepository.saveAndFlush(one); + projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.SETTLE_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING); //发起结算流程 projectInstanceService.startSettleProcessInstance(project, InterfaceUtil.getAdmin()); diff --git a/src/main/resources/templates/admin/project_final_edit.ftl b/src/main/resources/templates/admin/project_final_edit.ftl index dfe1a40..2cd69a3 100644 --- a/src/main/resources/templates/admin/project_final_edit.ftl +++ b/src/main/resources/templates/admin/project_final_edit.ftl @@ -350,6 +350,7 @@
+
@@ -367,6 +368,11 @@ $("#pmsForm").attr("action","${base}/project/final/save"); $("#pmsForm").submit(); }); + + $("#saveApprove").click(function () { + $("#pmsForm").attr("action",base+"/project/final/saveAndApprove"); + $("#pmsForm").submit(); + }); }); diff --git a/src/main/resources/templates/admin/project_list.ftl b/src/main/resources/templates/admin/project_list.ftl index 380f0c9..3b32dc1 100644 --- a/src/main/resources/templates/admin/project_list.ftl +++ b/src/main/resources/templates/admin/project_list.ftl @@ -200,6 +200,7 @@
<#--<@shiro.hasPermission name="PROJECT_EDIT">--> + <#--概算状态 并且概算审批状态为草稿和不通过--> <#if list.status==1 && (list.approveStatusEstimate==0 || list.approveStatusEstimate==3)> + <#-- 项目为结算状态 并且结算审批通过 才能发起决算--> + <#if list.status== 10 && list.approveStatusSettle== 2 > + +