瀏覽代碼

土地供应流程添加

gushoubang 1 月之前
父節點
當前提交
91ca984b85

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

@@ -22,4 +22,10 @@ public interface ProjectWorkflowMapper {
      * 新增项目流程节点关系
      * 新增项目流程节点关系
      */
      */
     void add(ProjectWorkflow entity);
     void add(ProjectWorkflow entity);
+
+    /**
+     * 根据项目id与节点表名查询项目流程节点关系
+     */
+    List<ProjectWorkflow> selectByProjectIdAndNodeTableName(@Param("projectId") String projectId,
+                                                            @Param("nodeTableName") String nodeTableName);
 }
 }

+ 3 - 1
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/mapper/WorkflowMapper.java

@@ -9,5 +9,7 @@ public interface WorkflowMapper {
     /** 根据项目类型与业务表名获取流程定义 */
     /** 根据项目类型与业务表名获取流程定义 */
     Workflow selectByProjectTypeAndTableName(@Param("projectType") Integer projectType,
     Workflow selectByProjectTypeAndTableName(@Param("projectType") Integer projectType,
                                              @Param("tableName") String tableName);
                                              @Param("tableName") String tableName);
+    /** 获取小于当前节点index的上一个流程节点 */
+    Workflow selectPrevByProjectTypeAndTableName(@Param("projectType") Integer projectType,
+                                                 @Param("tableName") String tableName);
 }
 }
-

+ 17 - 2
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/YdbpImpl.java

@@ -18,6 +18,8 @@ import com.siwei.apply.domain.Workflow;
 import com.siwei.apply.mapper.ProjectWorkflowMapper;
 import com.siwei.apply.mapper.ProjectWorkflowMapper;
 import com.siwei.apply.mapper.WorkflowMapper;
 import com.siwei.apply.mapper.WorkflowMapper;
 
 
+import java.util.List;
+
 import static com.siwei.apply.common.Common.UserId;
 import static com.siwei.apply.common.Common.UserId;
 
 
 /**
 /**
@@ -42,17 +44,30 @@ public class YdbpImpl implements YdbpService {
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public String add(YdbpVo ydbpVo) {
     public String add(YdbpVo ydbpVo) {
+        // 添加
         Ydbp ydbp = new Ydbp();
         Ydbp ydbp = new Ydbp();
         BeanUtils.copyProperties(ydbpVo, ydbp);
         BeanUtils.copyProperties(ydbpVo, ydbp);
         ydbp.generateId();
         ydbp.generateId();
         ydbp.setCreatorId(UserId);
         ydbp.setCreatorId(UserId);
         ydbpMapper.add(ydbp);
         ydbpMapper.add(ydbp);
         // 添加项目流程
         // 添加项目流程
+
+        /*1.获取项目类型*/
         Integer projectType = projectMapper.getProjectTypeById(ydbp.getProjectId());
         Integer projectType = projectMapper.getProjectTypeById(ydbp.getProjectId());
+        /*2.获取当前位置工作流*/
         Workflow workflow = workflowMapper.selectByProjectTypeAndTableName(projectType, "t_ydbp");
         Workflow workflow = workflowMapper.selectByProjectTypeAndTableName(projectType, "t_ydbp");
+        /*3.获取上一个工作流*/
+        Workflow workflowPrev = workflowMapper.selectPrevByProjectTypeAndTableName(projectType, "t_ydbp");
+        /*4.获取上一个工作流的节点信息*/
+        List<ProjectWorkflow> projectWorkflows = projectWorkflowMapper.selectByProjectIdAndNodeTableName(ydbp.getProjectId(), workflow.getTableName());
+        String parentId = "";
+        if (projectWorkflows != null && !projectWorkflows.isEmpty()) {
+            // TODO: 如果有多个上一个工作流节点,应该如何处理?目前取第一个
+            parentId = projectWorkflows.get(0).getNodeId();
+        }
         ProjectWorkflow projectWorkflow = new ProjectWorkflow();
         ProjectWorkflow projectWorkflow = new ProjectWorkflow();
         projectWorkflow.setId(ydbp.getId());
         projectWorkflow.setId(ydbp.getId());
-        projectWorkflow.setParentId("");
+        projectWorkflow.setParentId(parentId);
         projectWorkflow.setProjectId(ydbp.getProjectId());
         projectWorkflow.setProjectId(ydbp.getProjectId());
         projectWorkflow.setNodeId(ydbp.getId());
         projectWorkflow.setNodeId(ydbp.getId());
         projectWorkflow.setNodeTableName(workflow.getTableName());
         projectWorkflow.setNodeTableName(workflow.getTableName());
@@ -66,7 +81,7 @@ public class YdbpImpl implements YdbpService {
         Project project = projectMapper.get(projectId);
         Project project = projectMapper.get(projectId);
 
 
         YdbpRes ydbpRes = new YdbpRes();
         YdbpRes ydbpRes = new YdbpRes();
-        if(ydbp != null){
+        if (ydbp != null) {
             BeanUtils.copyProperties(ydbp, ydbpRes);
             BeanUtils.copyProperties(ydbp, ydbpRes);
         }
         }
         ydbpRes.setProjectId(projectId);
         ydbpRes.setProjectId(projectId);

+ 8 - 0
siwei-modules/siwei-apply/src/main/resources/mapper/ProjectWorkflowMapper.xml

@@ -33,4 +33,12 @@
             #{id}, #{projectId}, #{workflowId}, #{parentId}, #{nodeId}, #{nodeTableName}, now(), now()
             #{id}, #{projectId}, #{workflowId}, #{parentId}, #{nodeId}, #{nodeTableName}, now(), now()
         )
         )
     </insert>
     </insert>
+
+    <select id="selectByProjectIdAndNodeTableName" parameterType="map" resultMap="ProjectWorkflowResultMap">
+        SELECT id, project_id, workflow_id, parent_id, node_id, node_table_name, created_at, updated_at
+        FROM t_project_workflow
+        WHERE project_id = #{projectId}
+          AND node_table_name = #{nodeTableName}
+        ORDER BY created_at
+    </select>
 </mapper>
 </mapper>

+ 14 - 1
siwei-modules/siwei-apply/src/main/resources/mapper/WorkflowMapper.xml

@@ -16,5 +16,18 @@
           AND table_name = #{tableName}
           AND table_name = #{tableName}
         LIMIT 1
         LIMIT 1
     </select>
     </select>
-</mapper>
 
 
+    <select id="selectPrevByProjectTypeAndTableName" resultMap="WorkflowResultMap">
+        SELECT id, project_type, name, "index" AS index, table_name
+        FROM t_workflow
+        WHERE project_type = #{projectType}
+          AND "index" &lt; (
+              SELECT "index"
+              FROM t_workflow
+              WHERE project_type = #{projectType}
+                AND table_name = #{tableName}
+          )
+        ORDER BY "index" DESC
+        LIMIT 1
+    </select>
+</mapper>