diff --git a/src/main/java/cn/palmte/work/service/ProjectService.java b/src/main/java/cn/palmte/work/service/ProjectService.java index d9b9427..116284a 100644 --- a/src/main/java/cn/palmte/work/service/ProjectService.java +++ b/src/main/java/cn/palmte/work/service/ProjectService.java @@ -1,19 +1,19 @@ package cn.palmte.work.service; import cn.palmte.work.bean.*; -import cn.palmte.work.config.activiti.ActConstant; -import cn.palmte.work.model.*; -import cn.palmte.work.utils.InterfaceUtil; +import cn.palmte.work.model.Admin; +import cn.palmte.work.model.Project; +import cn.palmte.work.model.ProjectRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import top.jfunc.common.db.QueryHelper; import top.jfunc.common.db.bean.Page; import top.jfunc.common.db.utils.Pagination; +import top.jfunc.common.utils.CollectionUtil; import top.jfunc.common.utils.StrUtil; import java.util.Date; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -32,6 +32,8 @@ public class ProjectService { private ProjectBudgetService projectBudgetService; @Autowired private ProjectInstanceService projectInstanceService; + @Autowired + private ActTaskDefService actTaskDefService; private QueryHelper getQueryHelper(Map searchInfo, int pageNumber, int pageSize) { @@ -154,9 +156,19 @@ public class ProjectService { Admin admin) throws Exception { Project p = estimateEditSave(project, estimateBean, admin, ApproveStatusEnum.APPROVAL_PENDING); - //TODO 此处找到以前的概算审批实例,然后完成任务 - //projectInstanceService.startEstimateProcessInstance(p, admin); - + if(null != p.getApproveStatusEstimate() && + ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == p.getApproveStatusEstimate()){ + //审核不通过的情况下重新编辑后就完成当前任务 + List estimateProcessInsIds = projectInstanceService.getEstimateProcessInsIds(p); + if(CollectionUtil.isNotEmpty(estimateProcessInsIds)){ + actTaskDefService.completeTaskByProcInsId(estimateProcessInsIds.get(0), + ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus(), + "重新修改了概算表,请审批"); + } + }else { + //第一次或者重新发起一个流程实例 + projectInstanceService.startEstimateProcessInstance(p, admin); + } return p; } /** @@ -236,7 +248,19 @@ public class ProjectService { @Transactional(rollbackFor = RuntimeException.class) public Project budgetEditSaveAndApprove(Project project, BudgetBean budgetBean, Admin admin) throws Exception { Project p = budgetEditSave(project, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING); - projectInstanceService.startBudgetProcessInstance(p, admin); + if(null != p.getApproveStatusBudget() && + ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == p.getApproveStatusBudget()){ + //审核不通过的情况下重新编辑后就完成当前任务 + List budgetProcessInsIds = projectInstanceService.getBudgetProcessInsIds(p); + if(CollectionUtil.isNotEmpty(budgetProcessInsIds)){ + actTaskDefService.completeTaskByProcInsId(budgetProcessInsIds.get(0), + ApproveStatusEnum.APPROVAL_PASSED.getApproveStatus(), + "重新修改了预算表,请审批"); + } + }else { + //第一次或者重新发起一个流程实例 + projectInstanceService.startBudgetProcessInstance(p, admin); + } return p; } /**