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 fec35ec..261609f 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectSettleController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectSettleController.java @@ -77,8 +77,18 @@ public class ProjectSettleController extends BaseController{ return "redirect:/project/list"; } + /** + * 保存并提交审批 + * @param project + * @param settleBean + * @param budgetBean + * @param estimateBean + * @param time + * @return + * @throws Exception + */ @RequestMapping("/saveAndApprove") - public String saveAndApprove(Project project, SettleBean settleBean, BudgetSettleBean budgetBean, EstimateSettleBean estimateBean, String time) { + public String saveAndApprove(Project project, SettleBean settleBean, BudgetSettleBean budgetBean, EstimateSettleBean estimateBean, String time) throws Exception{ projectSettleService.saveAndApprove(project, settleBean, budgetBean, estimateBean, time); return "redirect:/project/list"; } diff --git a/src/main/java/cn/palmte/work/service/ActTaskDefService.java b/src/main/java/cn/palmte/work/service/ActTaskDefService.java index a69c463..78c58a2 100644 --- a/src/main/java/cn/palmte/work/service/ActTaskDefService.java +++ b/src/main/java/cn/palmte/work/service/ActTaskDefService.java @@ -196,12 +196,14 @@ public class ActTaskDefService { */ private void updateProjectPassed(ProcessInstance processInstance, ActTaskDef actTaskDef, String procDefKey) { int projectId = Integer.parseInt(processInstance.getBusinessKey()); - if (ActConstant.PROCESS_DEFKEY_FINAL.equals(procDefKey)) { + if (ActConstant.PROCESS_DEFKEY_SETTLE.equals(procDefKey)) { + //结算流程 财务总监审批完流程结束 if ("财务总监".equals(actTaskDef.getTaskName())) { logger.info("updateProjectPassed1 projectId:{}, proDefKey:{}", projectId, procDefKey); projectInstanceService.updateApproveStatus(projectId, procDefKey, ApproveStatusEnum.APPROVAL_PASSED); } } else { + //其余流程 执行董事审批完流程结束 if ("执行董事".equals(actTaskDef.getTaskName())) { logger.info("updateProjectPassed2 projectId:{}, proDefKey:{}", projectId, procDefKey); projectInstanceService.updateApproveStatus(projectId, procDefKey, ApproveStatusEnum.APPROVAL_PASSED); diff --git a/src/main/java/cn/palmte/work/service/ProjectSettleService.java b/src/main/java/cn/palmte/work/service/ProjectSettleService.java index ec33140..d3b687e 100644 --- a/src/main/java/cn/palmte/work/service/ProjectSettleService.java +++ b/src/main/java/cn/palmte/work/service/ProjectSettleService.java @@ -1,10 +1,8 @@ package cn.palmte.work.service; -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.bean.*; import cn.palmte.work.model.*; +import cn.palmte.work.utils.InterfaceUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -12,6 +10,7 @@ import org.springframework.stereotype.Service; import top.jfunc.common.utils.CollectionUtil; import java.math.BigDecimal; +import java.util.Date; import java.util.List; /** @@ -37,6 +36,12 @@ public class ProjectSettleService { @Autowired private ProjectSettleCashFlowRepository projectSettleCashFlowRepository; + @Autowired + private ProjectInstanceService projectInstanceService; + + @Autowired + private ProjectRepository projectRepository; + public void save(Project project, SettleBean settleBean, BudgetSettleBean budgetBean, EstimateSettleBean estimateBean, String time) { //收入记录 @@ -49,9 +54,17 @@ public class ProjectSettleService { profit(project, settleBean, budgetBean, estimateBean, time); //资金流量记录 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); } - public void saveAndApprove(Project project, SettleBean settleBean, BudgetSettleBean budgetBean, EstimateSettleBean estimateBean, String time) { + public void saveAndApprove(Project project, SettleBean settleBean, BudgetSettleBean budgetBean, EstimateSettleBean estimateBean, String time) throws Exception{ //收入记录 income(project, settleBean, budgetBean, estimateBean, time); //成本记录 @@ -62,6 +75,17 @@ public class ProjectSettleService { profit(project, settleBean, budgetBean, estimateBean, time); //资金流量记录 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); + + //发起结算流程 + projectInstanceService.startSettleProcessInstance(project, InterfaceUtil.getAdmin()); + } diff --git a/src/main/resources/templates/admin/project_settle_add.ftl b/src/main/resources/templates/admin/project_settle_add.ftl index 09592a1..5f48284 100644 --- a/src/main/resources/templates/admin/project_settle_add.ftl +++ b/src/main/resources/templates/admin/project_settle_add.ftl @@ -397,6 +397,7 @@