Kaynağa Gözat

1.新增接口根据实例节点id获取节点下是否有需要业务操作的任务

GouGengquan 3 hafta önce
ebeveyn
işleme
0c3262fa34

+ 10 - 0
biz-base/src/main/java/com/dayou/controller/WorkFlowNodeInstanceController.java

@@ -141,6 +141,16 @@ public class WorkFlowNodeInstanceController extends BaseController {
         return RestResponse.data(ret);
     }
 
+    /**
+     * 根据实例节点id获取节点下是否有需要业务操作的任务
+     * @param currentNodeId 实例节点id
+     * @return Boolean
+     */
+    @GetMapping("/checkHasBusinessHandle/{currentNodeId}")
+    public RestResponse<Boolean> checkHasBusinessHandle(@PathVariable("currentNodeId") Long currentNodeId) {
+        return RestResponse.data(workFlowNodeInstanceService.checkHasBusinessHandle(currentNodeId));
+    }
+
 
 }
 

+ 7 - 0
dao/src/main/java/com/dayou/mapper/WorkFlowNodeInstanceMapper.java

@@ -41,4 +41,11 @@ public interface WorkFlowNodeInstanceMapper extends CustomBaseMapper<WorkFlowNod
     Date getNodeFinishedTime(@Param("flowId")Long flowId, @Param("nodeId")Long nodeId, @Param("businessId")Long businessId, @Param("businessSubId")String businessSubId, @Param("businessMinId")String businessMinId,@Param("businessType") String businessType);
 
     Date getMajorProductionFinishedTime(@Param("businessId") Long businessId, @Param("nodeId") Long nodeId);
+
+    /**
+     * 根据实例节点id获取节点下是否有需要业务操作的任务
+     * @param currentNodeId 实例节点id
+     * @return Boolean
+     */
+    Boolean checkHasBusinessHandle(@Param("currentNodeId") Long currentNodeId);
 }

+ 16 - 0
dao/src/main/resources/mapper/WorkFlowNodeInstanceMapper.xml

@@ -288,4 +288,20 @@
             )
           AND deleted =0 and state = 'PASS'
     </select>
+
+    <!--根据实例节点id获取节点下是否有需要业务操作的任务-->
+    <select id="checkHasBusinessHandle" resultType="java.lang.Boolean">
+        SELECT IF(COUNT(task.id) > 0, true, false)
+        FROM work_flow_node_instance AS instance,
+             work_node AS node,
+             work_node_task AS task
+        WHERE instance.deleted = 0
+        AND node.deleted = 0
+        AND task.deleted = 0
+        AND instance.node_id = node.id
+        AND node.id = task.node_id
+        AND task.business_handle = true
+        AND task.version = 'LATEST'
+        AND instance.id = #{currentNodeId}
+    </select>
 </mapper>

+ 7 - 0
service/src/main/java/com/dayou/service/workflow/IWorkFlowNodeInstanceService.java

@@ -53,4 +53,11 @@ public interface IWorkFlowNodeInstanceService extends IService<WorkFlowNodeInsta
     Date getNodeFinishedTime(MainBusinessEnum businessEnum, WorkflowNodeEnum nodeEnum,Long businessId,String businessSubId,String businessMinId);
 
     Date getMajorProductionFinishedTime(Long businessId,Long nodeId);
+
+    /**
+     * 根据实例节点id获取节点下是否有需要业务操作的任务
+     * @param currentNodeId 实例节点id
+     * @return Boolean
+     */
+    Boolean checkHasBusinessHandle(Long currentNodeId);
 }

+ 11 - 0
service/src/main/java/com/dayou/service/workflow/WorkFlowNodeInstanceServiceImpl.java

@@ -254,4 +254,15 @@ public class WorkFlowNodeInstanceServiceImpl extends ServiceImpl<WorkFlowNodeIns
         return target.orElse(null);
     }
 
+
+    /**
+     * 根据实例节点id获取节点下是否有需要业务操作的任务
+     * @param currentNodeId 实例节点id
+     * @return Boolean
+     */
+    @Override
+    public Boolean checkHasBusinessHandle(Long currentNodeId) {
+        return workFlowNodeInstanceMapper.checkHasBusinessHandle(currentNodeId);
+    }
+
 }