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("查询本部门在线PC端及指挥端") public AjaxResult getOnlinePCOrCommander() { String usersId = SecurityUtils.getUserId(); Map<String,List<SysUser>> result = ardAppPositionService.getOnlinePCOrCommander(usersId); return AjaxResult.success(result); } } 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); } 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; } } 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); } 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>