diff --git a/src/main/java/cn/palmte/work/service/ProjectInstanceService.java b/src/main/java/cn/palmte/work/service/ProjectInstanceService.java index 2b73f39..f98b950 100644 --- a/src/main/java/cn/palmte/work/service/ProjectInstanceService.java +++ b/src/main/java/cn/palmte/work/service/ProjectInstanceService.java @@ -1,10 +1,8 @@ package cn.palmte.work.service; +import cn.palmte.work.bean.ApproveStatusEnum; import cn.palmte.work.config.activiti.ActConstant; -import cn.palmte.work.model.Admin; -import cn.palmte.work.model.Project; -import cn.palmte.work.model.ProjectInstanceRelation; -import cn.palmte.work.model.ProjectInstanceRelationRepository; +import cn.palmte.work.model.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -16,6 +14,10 @@ import java.util.HashMap; */ @Service public class ProjectInstanceService { + @Autowired + private ProjectRepository projectRepository; + @Autowired + private AdminService adminService; @Autowired private ActProcInsService actProcInsService; @Autowired @@ -64,4 +66,44 @@ public class ProjectInstanceService { projectInstanceRelationRepository.saveAndFlush(relation); } + /** + * 更新审批人,用于在任务监听器中更新下个审批人 + * @param projectId 项目id + * @param adminId 审批人id + */ + public void updateApprover(int projectId, int adminId){ + Project project = projectRepository.findOne(projectId); + Admin admin = adminService.getAdminById(adminId); + project.setApproveId(adminId); + project.setApproveName(admin.getUserName()); + project.setLastUpdateTime(new Date()); + projectRepository.saveAndFlush(project); + } + + /** + * 更新对应审批状态 + * @param projectId 项目id + * @param approveStatusEnum 审批状态 1待审核,2审核通过,3审核不通过 + * @see ApproveStatusEnum + * @param processKey 审批类型 + * @see ActConstant#PROCESS_DEFKEY_ESTIMATE + * @see ActConstant#PROCESS_DEFKEY_BUDGET + * @see ActConstant#PROCESS_DEFKEY_SETTLE + * @see ActConstant#PROCESS_DEFKEY_FINAL + */ + public void updateApproveStatus(int projectId, ApproveStatusEnum approveStatusEnum, String processKey){ + Project project = projectRepository.findOne(projectId); + if(ActConstant.PROCESS_DEFKEY_ESTIMATE.equals(processKey)){ + project.setApproveStatusEstimate(approveStatusEnum.getApproveStatus()); + }else if(ActConstant.PROCESS_DEFKEY_BUDGET.equals(processKey)){ + project.setApproveStatusBudget(approveStatusEnum.getApproveStatus()); + }else if(ActConstant.PROCESS_DEFKEY_SETTLE.equals(processKey)){ + project.setApproveStatusSettle(approveStatusEnum.getApproveStatus()); + }else if(ActConstant.PROCESS_DEFKEY_FINAL.equals(processKey)){ + project.setApproveStatusFinal(approveStatusEnum.getApproveStatus()); + } + + project.setLastUpdateTime(new Date()); + projectRepository.saveAndFlush(project); + } }