From 23960f90e373266d2cb618b7ab47fe5cfb8fdbd8 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 28 五月 2025 11:21:31 +0800
Subject: [PATCH] art: 设备管理-待办-任务数量统计

---
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/IWorkTaskVoMapper.java              |    6 ++++++
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml            |    9 +++++++++
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IWorkTaskServiceVo.java            |    7 +++++++
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/WorkTaskServiceImplVo.java    |   18 ++++++++++++++----
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java |    7 +++++++
 5 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java
index d41ab56..5ad0a82 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/AssignStreamFlowController.java
@@ -172,4 +172,11 @@
         in.close();
         out.close();
     }
+
+    @ApiOperation(value = "寰呭姙-浠诲姟鏁伴噺缁熻")
+    @GetMapping("/taskCountBySelf")
+    public Result<?> taskCountBySelf() {
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        return Result.OK(workTaskServicevo.taskCountBySelf(user.getUsername()));
+    }
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/IWorkTaskVoMapper.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/IWorkTaskVoMapper.java
index 492a969..514180f 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/IWorkTaskVoMapper.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/IWorkTaskVoMapper.java
@@ -11,4 +11,10 @@
 
     IPage<WorkTaskDataVo> taskBySelf(@Param("flowMy") FlowMy flowMy, @Param("page") Page page);
 
+    /**
+     * 缁熻鎴戠殑寰呭姙-浠诲姟鏁伴噺
+     * @param username
+     * @return
+     */
+    Integer taskCountBySelf(String username);
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml
index e1d69ed..5d9f42d 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/WorkTaskVoMapper.xml
@@ -51,4 +51,13 @@
         ORDER BY
             create_time_ DESC
     </select>
+
+    <select id="taskCountBySelf" resultType="java.lang.Integer">
+        SELECT count(atask.id_)
+        FROM act_ru_task AS atask
+                 LEFT JOIN flow_my_business fmb on atask.id_ = fmb.task_id
+                 LEFT JOIN ACT_RE_PROCDEF pro on atask.PROC_DEF_ID_ = pro.id_
+        WHERE atask.assignee_ = #{username}
+            OR (atask.assignee_ IS NULL AND fmb.todo_users LIKE CONCAT('%', #{username}, '%'))
+    </select>
 </mapper>
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IWorkTaskServiceVo.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IWorkTaskServiceVo.java
index d69e423..4a3d67e 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IWorkTaskServiceVo.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IWorkTaskServiceVo.java
@@ -9,4 +9,11 @@
 public interface IWorkTaskServiceVo extends IService<WorkTaskDataVo> {
 
     IPage<WorkTaskDataVo> toTaskBySelf(FlowMy flowMy, Page page);
+
+    /**
+     * 缁熻鎴戠殑寰呭姙-浠诲姟鏁伴噺
+     * @param username
+     * @return
+     */
+    Integer taskCountBySelf(String username);
 }
diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/WorkTaskServiceImplVo.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/WorkTaskServiceImplVo.java
index ee8f6ea..a60047e 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/WorkTaskServiceImplVo.java
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/WorkTaskServiceImplVo.java
@@ -17,19 +17,29 @@
 public class WorkTaskServiceImplVo extends ServiceImpl<IWorkTaskVoMapper, WorkTaskDataVo> implements IWorkTaskServiceVo {
     @Autowired
     FlowMyBusinessServiceImpl flowMyBusinessService;
+
     @Override
     public IPage<WorkTaskDataVo> toTaskBySelf(FlowMy flowMy, Page page) {
-        IPage<WorkTaskDataVo> workTaskDataVoIPage=baseMapper.taskBySelf(flowMy,page);
+        IPage<WorkTaskDataVo> workTaskDataVoIPage = baseMapper.taskBySelf(flowMy, page);
         workTaskDataVoIPage.getRecords().forEach(workTaskDataVo -> {
-            HistoricActivityInstance historicActivityInstance=flowMyBusinessService.getPreviousNode(workTaskDataVo.getId());
-            if (historicActivityInstance != null){
+            HistoricActivityInstance historicActivityInstance = flowMyBusinessService.getPreviousNode(workTaskDataVo.getId());
+            if (historicActivityInstance != null) {
                 workTaskDataVo.setPreNode(historicActivityInstance.getActivityName());
                 workTaskDataVo.setPreNodeAssignee(historicActivityInstance.getAssignee());
             }
-            if (StrUtil.isEmpty(workTaskDataVo.getAssignee())){
+            if (StrUtil.isEmpty(workTaskDataVo.getAssignee())) {
                 workTaskDataVo.setAssignee(flowMy.getUsername());
             }
         });
         return workTaskDataVoIPage;
     }
+
+    @Override
+    public Integer taskCountBySelf(String username) {
+        Integer count = baseMapper.taskCountBySelf(username);
+        if (count == null) {
+            return 0;
+        }
+        return count;
+    }
 }

--
Gitblit v1.9.3