Procházet zdrojové kódy

添加项目周期获取代码

gushoubang před 1 měsícem
rodič
revize
cd9bb75dda

+ 2 - 2
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/common/Common.java

@@ -3,6 +3,6 @@ package com.siwei.apply.common;
 public class Common {
     public static String UserId = "123456789"; // 用户ID
 
-    public static String ProjectTypeDdxz = "单独选址";
-    public static String ProjectTypePcbp = "批次报批";
+    public static int ProjectTypeDdxz = 1;
+    public static int ProjectTypePcbp = 2;
 }

+ 11 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/controller/ProjectController.java

@@ -1,6 +1,7 @@
 package com.siwei.apply.controller;
 
 import com.siwei.apply.domain.Project;
+import com.siwei.apply.domain.res.ProjectCycleRes;
 import com.siwei.apply.domain.res.ProjectOverviewRes;
 import com.siwei.apply.domain.vo.IdsVo;
 import com.siwei.apply.domain.vo.ProjectFilterVo;
@@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -86,6 +88,15 @@ public class ProjectController extends BaseController {
         }
     }
 
+    /**
+     * 获取项目周期(仅定义接口,逻辑未实现)
+     */
+    @GetMapping("/cycle/{projectId}")
+    public R<List<ProjectCycleRes>> GetCycle(@PathVariable String projectId) {
+        List<ProjectCycleRes> projectCycleRes = projectService.getCycle(projectId);
+        return R.ok(projectCycleRes);
+    }
+
     /**
      * 更新项目
      *

+ 20 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/domain/res/ProjectCycleRes.java

@@ -0,0 +1,20 @@
+package com.siwei.apply.domain.res;
+
+import com.siwei.apply.domain.ProjectWorkflow;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 项目生命周期
+ */
+@Data
+public class ProjectCycleRes {
+    private String id;
+    private Integer projectType; // 1:单独选址,2:批次报批
+    private String name;         // 名称
+    private Double index;        // 执行顺序
+
+    private Boolean isComplete=false;//是否完成
+    private List<ProjectWorkflow> workflows;
+}

+ 6 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/mapper/WorkflowMapper.java

@@ -1,9 +1,12 @@
 package com.siwei.apply.mapper;
 
 import com.siwei.apply.domain.Workflow;
+import com.siwei.apply.domain.res.ProjectCycleRes;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 @Mapper
 public interface WorkflowMapper {
     /** 根据项目类型与业务表名获取流程定义 */
@@ -12,4 +15,7 @@ public interface WorkflowMapper {
     /** 获取小于当前节点index的上一个流程节点 */
     Workflow selectPrevByProjectTypeAndTableName(@Param("projectType") Integer projectType,
                                                  @Param("tableName") String tableName);
+
+    /** 根据 project_type 获取流程列表,按 index 升序返回 */
+    List<ProjectCycleRes> selectByProjectTypeOrderByIndex(@Param("projectType") Integer projectType);
 }

+ 6 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/ProjectService.java

@@ -1,6 +1,7 @@
 package com.siwei.apply.service;
 
 import com.siwei.apply.domain.Project;
+import com.siwei.apply.domain.res.ProjectCycleRes;
 import com.siwei.apply.domain.res.ProjectOverviewRes;
 import com.siwei.apply.domain.vo.ProjectFilterVo;
 import com.siwei.apply.domain.vo.ProjectUpdateVo;
@@ -57,5 +58,10 @@ public interface ProjectService {
      * 获取项目概览信息
      */
     ProjectOverviewRes getOverview();
+
+    /**
+     * 获取项目周期
+     */
+    List<ProjectCycleRes> getCycle(String projectId);
 }
 

+ 34 - 5
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/ProjectImpl.java

@@ -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;
+    }
 }
 

+ 12 - 0
siwei-modules/siwei-apply/src/main/resources/mapper/WorkflowMapper.xml

@@ -30,4 +30,16 @@
         ORDER BY "index" DESC
         LIMIT 1
     </select>
+
+    <!-- 新增:根据 project_type 获取列表,按 index 升序返回 -->
+    <select id="selectByProjectTypeOrderByIndex" parameterType="int" resultType="com.siwei.apply.domain.res.ProjectCycleRes">
+        SELECT
+            id,
+            project_type AS projectType,
+            name,
+            "index" AS index
+        FROM t_workflow
+        WHERE project_type = #{projectType}
+        ORDER BY "index" ASC
+    </select>
 </mapper>