|
@@ -1,26 +1,27 @@
|
|
|
package com.siwei.apply.service.impl;
|
|
|
|
|
|
import com.siwei.apply.domain.Project;
|
|
|
-import com.siwei.apply.domain.res.ProjectNumRes;
|
|
|
-import com.siwei.apply.domain.res.ProjectOverviewRes;
|
|
|
-import com.siwei.apply.domain.res.ProjectProcessRes;
|
|
|
-import com.siwei.apply.domain.res.ProjectSupplyRes;
|
|
|
+import com.siwei.apply.domain.ProjectWorkflow;
|
|
|
+import com.siwei.apply.domain.Workflow;
|
|
|
+import com.siwei.apply.domain.res.*;
|
|
|
import com.siwei.apply.domain.vo.ProjectFilterVo;
|
|
|
import com.siwei.apply.domain.vo.ProjectUpdateVo;
|
|
|
import com.siwei.apply.domain.vo.ProjectVo;
|
|
|
import com.siwei.apply.mapper.ProjectMapper;
|
|
|
import com.siwei.apply.mapper.ProjectWorkflowMapper;
|
|
|
import com.siwei.apply.mapper.TdgyMapper;
|
|
|
+import com.siwei.apply.mapper.WorkflowMapper;
|
|
|
import com.siwei.apply.service.ProjectService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
-import static com.siwei.apply.common.Common.UserId;
|
|
|
+import static com.siwei.apply.common.Common.*;
|
|
|
|
|
|
/**
|
|
|
* 项目服务实现类
|
|
@@ -33,6 +34,8 @@ public class ProjectImpl implements ProjectService {
|
|
|
private TdgyMapper tdgyMapper;
|
|
|
@Autowired
|
|
|
private ProjectWorkflowMapper projectWorkflowMapper;
|
|
|
+ @Autowired
|
|
|
+ private WorkflowMapper workflowMapper;
|
|
|
|
|
|
@Override
|
|
|
public String add(ProjectVo projectVo) {
|
|
@@ -102,5 +105,31 @@ public class ProjectImpl implements ProjectService {
|
|
|
projectOverviewRes.setProjectProcessList(projectProcessList);
|
|
|
return projectOverviewRes;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<ProjectCycleRes> getCycle(String projectId) {
|
|
|
+ Integer projectType = projectMapper.getProjectTypeById(projectId);
|
|
|
+ // 获取不同类型的流程
|
|
|
+ List<ProjectCycleRes> workflows = workflowMapper.selectByProjectTypeOrderByIndex(projectType);
|
|
|
+ // 获取项目对应的工作流
|
|
|
+ List<ProjectWorkflow> projectWorkflows = projectWorkflowMapper.selectByProjectId(projectId);
|
|
|
+ Map<String, List<ProjectWorkflow>> workflowMap = new HashMap<>();
|
|
|
+ // 将项目工作流按节点表名分组
|
|
|
+ for (ProjectWorkflow projectWorkflow : projectWorkflows) {
|
|
|
+ String workflowId = projectWorkflow.getWorkflowId();
|
|
|
+ if (!workflowMap.containsKey(workflowId)) {
|
|
|
+ workflowMap.put(workflowId, new ArrayList<>());
|
|
|
+ }
|
|
|
+ workflowMap.get(workflowId).add(projectWorkflow);
|
|
|
+ }
|
|
|
+ // 构建项目周期响应
|
|
|
+ for (ProjectCycleRes workflow : workflows) {
|
|
|
+ if (workflowMap.containsKey(workflow.getId())) {
|
|
|
+ workflow.setIsComplete(true);
|
|
|
+ workflow.setWorkflows(workflowMap.get(workflow.getId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return workflows;
|
|
|
+ }
|
|
|
}
|
|
|
|