From 83ef78640c563640ad97220d88e9aa00dd520eb0 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期六, 20 一月 2024 13:47:44 +0800
Subject: [PATCH] 查询本部门在线PC端及指挥端提交

---
 ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java    |   11 +++++++++++
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                           |   22 ++++++++++++++++++++++
 ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java         |    3 +++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java                     |    4 ++++
 ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java |   17 +++++++++++++++++
 5 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java b/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
index 594920e..292e891 100644
--- a/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
@@ -2,13 +2,16 @@
 
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWellParam;
 import com.ruoyi.app.position.domain.ArdAppPosition;
 import com.ruoyi.app.position.service.IArdAppPositionService;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.utils.minio.MinioUtil;
+import com.ruoyi.utils.result.Results;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -214,4 +217,12 @@
         String url = MinioUtil.putObjectAndGetUrl("app",type, file);
         return AjaxResult.success(url);
     }
+
+    @GetMapping("/getOnlinePCOrCommander")
+    @ApiOperation("鏌ヨ鏈儴闂ㄥ湪绾縋C绔強鎸囨尌绔�")
+    public AjaxResult getOnlinePCOrCommander() {
+        String usersId = SecurityUtils.getUserId();
+        Map<String,List<SysUser>> result = ardAppPositionService.getOnlinePCOrCommander(usersId);
+        return AjaxResult.success(result);
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java b/ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java
index 7e56881..e96b753 100644
--- a/ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java
@@ -1,6 +1,7 @@
 package com.ruoyi.app.position.service;
 
 import java.util.List;
+import java.util.Map;
 
 import com.ruoyi.alarm.wall.domain.ArdAlarmWall;
 import com.ruoyi.app.position.domain.ArdAppPosition;
@@ -82,4 +83,6 @@
      * 2023/8/17 13:56:36
      */
     public List<SysUser>getNearAppUsersWithPolygon(SchedulingParam param);
+
+    public Map<String,List<SysUser>> getOnlinePCOrCommander(String usersId);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java
index 8aead3f..fe36f94 100644
--- a/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java
@@ -14,6 +14,7 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.scheduling.domian.SchedulingParam;
+import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.utils.gis.GisUtil;
 import com.ruoyi.utils.gis.Point;
@@ -24,6 +25,8 @@
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
+
+import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
 
 
 /**
@@ -45,6 +48,8 @@
     ArdWallMapper ardWallMapper;
     @Resource
     IArdAlarmWallService ardAlarmWallService;
+    @Resource
+    private SysUserMapper sysUserMapper;
 
     Map<String, String> firstAlarmMap = new HashMap<>();//棣栨鎶ヨ缂撳瓨key:鐢ㄦ埛id_鍥存爮id value: 鎶ヨid
     /**
@@ -321,4 +326,16 @@
         }
         return ardAlarmWalls;
     }
+
+    @Override
+    public Map<String, List<SysUser>> getOnlinePCOrCommander(String usersId) {
+        Map<String, List<SysUser>> result = new HashMap();
+        List<SysUser> commanderList = sysUserMapper.getOnlineCommander(usersId);
+        result.put("commander",commanderList);
+        List<String> onLinePCIdList = new ArrayList();
+        onLinePCIdList.addAll(ONLINE_USER_SESSIONS.keySet());
+        List<SysUser> pcList = sysUserMapper.getOnlinePC(usersId,onLinePCIdList);
+        result.put("pc",pcList);
+        return result;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 686bafd..c7567df 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -140,4 +140,8 @@
     public List<SysUser> getSysUserByCarId(String carId);
 
     List<SysUser> userByPlanId(String id);
+
+    List<SysUser> getOnlineCommander(String usersId);
+
+    List<SysUser> getOnlinePC(@Param("usersId") String usersId,@Param("onLinePCIdList")List<String> onLinePCIdList);
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 49f1b86..11e6b31 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -295,4 +295,26 @@
     <select id="userByPlanId" parameterType="String" resultMap="SysUserResult">
         select user_id,nick_name from sys_user where user_id in (select app_user_id from ard_app_patroluser where patrolplan_id = #{id})
     </select>
+
+    <select id="getOnlineCommander" parameterType="String" resultMap="SysUserResult">
+        select distinct su0.* from sys_user su
+        inner join sys_user su0 on su.dept_id = su0.dept_id
+        inner join sys_user_role aur on su0.user_id = aur.user_id
+        inner join sys_role sr on aur.role_id = sr.role_id
+        where su.user_id = #{usersId} and su0.user_id != #{usersId}
+        and sr.role_key = 'appLeader' and su0.app_online_state = '1'
+    </select>
+
+    <select id="getOnlinePC" resultMap="SysUserResult">
+        select distinct su0.* from sys_user su
+        inner join sys_user su0 on su.dept_id = su0.dept_id
+        inner join sys_user_role aur on su0.user_id = aur.user_id
+        inner join sys_role sr on aur.role_id = sr.role_id
+        where su.user_id = #{usersId} and su0.user_id != #{usersId}
+        and sr.role_key != 'appLeader' and sr.role_key != 'appUser'
+        and su0.user_id in
+        <foreach collection="onLinePCIdList" item="userId" open="(" close=")" separator=",">
+            #{userId}
+        </foreach>
+    </select>
 </mapper> 
\ No newline at end of file

--
Gitblit v1.9.3