From 9819e228f5ee6ace0ad0ec56661f6da953f5148f Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 18 三月 2026 16:41:43 +0800
Subject: [PATCH] 【丽水】获取当前用户随访数量统计 补充

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java |   38 +++++++++++++++++++++++++++++---------
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml                       |    3 ---
 2 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
index 06ae897..62b009e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -10,6 +10,7 @@
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.entity.SysUserDept;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.redis.RedisCache;
@@ -24,6 +25,7 @@
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.system.domain.SysConfig;
 import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.service.ISysUserDeptService;
 import com.smartor.domain.*;
 import com.smartor.domain.VO.ServiceSubtaskVO;
 import com.smartor.domain.entity.ServiceSubtaskEntity;
@@ -72,6 +74,9 @@
 
     @Autowired
     private IServiceTaskService serviceTaskService;
+
+    @Autowired
+    private ISysUserDeptService sysUserDeptService;
 
     @Autowired
     private IServiceSubtaskRecordService serviceSubtaskRecordService;
@@ -666,15 +671,30 @@
         Map<String, Object> map = new HashMap<>();
         LoginUser loginUser = getLoginUser();
         SysUser sysUser = loginUser.getUser();
-        if (ObjectUtils.isNotEmpty(sysUser)) {
-            List<String> deptCodes = sysUser.getDeptCodes();
-            List<String> wardCodes = sysUser.getWardCodes();
-            ServiceSubtaskEntity entity = new ServiceSubtaskEntity();
-            entity.setOrgid(sysUser.getOrgid());
-            entity.setDeptcode(sysUser.getDeptCode());
-            entity.setLeaveldeptcodes(deptCodes);
-            entity.setLeavehospitaldistrictcodes(wardCodes);
-            map = serviceSubtaskService.getCurrentUserServiceSubtaskCount(entity);
+        SysUserDept sysUserDept = new SysUserDept();
+        sysUserDept.setUserId(sysUser.getUserId());
+        sysUserDept.setOrgid(sysUser.getOrgid());
+        sysUserDept.setDeptType("1");
+        List<SysUserDept> sysUserDepts = sysUserDeptService.selectSysUserDeptList(sysUserDept);
+        SysUserDept sysUserWard = new SysUserDept();
+        sysUserWard.setUserId(sysUser.getUserId());
+        sysUserWard.setOrgid(sysUser.getOrgid());
+        sysUserWard.setDeptType("2");
+        List<SysUserDept> sysUserWards = sysUserDeptService.selectSysUserDeptList(sysUserWard);
+        List<String> deptCodes = sysUserDepts.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList());
+        List<String> wardCodes = sysUserWards.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList());
+        ServiceSubtaskEntity entity = new ServiceSubtaskEntity();
+        entity.setOrgid(sysUser.getOrgid());
+        entity.setLeaveldeptcodes(deptCodes);
+        entity.setLeavehospitaldistrictcodes(wardCodes);
+        if(ObjectUtils.isNotEmpty(sysUser)){
+            if(!("admin").equals(sysUser.getUserName())){
+                if(ObjectUtils.isNotEmpty(sysUserWards) && ObjectUtils.isNotEmpty(sysUserDepts)){
+                    map = serviceSubtaskService.getCurrentUserServiceSubtaskCount(entity);
+                }
+            }else {
+                map = serviceSubtaskService.getCurrentUserServiceSubtaskCount(entity);
+            }
         }
         return map;
     }
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 10f9bd4..dbc9afc 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -2268,9 +2268,6 @@
         <if test="orgid != null and orgid != ''">
             AND orgid = #{orgid}
         </if>
-        <if test="deptcode != null and deptcode != ''">
-            AND deptcode = #{deptcode}
-        </if>
         <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
             AND leavehospitaldistrictcode IN
             <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("

--
Gitblit v1.9.3