From ffbead22a45b907130c496883890470b5413f098 Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期三, 13 三月 2024 09:19:19 +0800 Subject: [PATCH] app光电查询当前通道提交 --- ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java | 15 +++++++ ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java | 4 ++ ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java | 4 ++ ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java | 44 ++++++++++++++++++++++ ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml | 20 ++++++++++ 5 files changed, 87 insertions(+), 0 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java b/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java index 1f5b15d..268e82b 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java @@ -223,4 +223,19 @@ List<Map<String,Object>> camerasList = ardCamerasService.getCamerasByDeptId(deptId); return AjaxResult.success(camerasList); } + + @PostMapping("/getCameraOperationByCameraId") + @ApiOperation("鏌ョ湅鐩告満鍙惁鎿嶆帶") + public AjaxResult getCameraOperationByCameraId(@RequestBody Map<String,String> map) { + String userId = SecurityUtils.getUserId(); + Boolean flag = ardCamerasService.getCameraOperationByCameraId(map.get("id"),userId); + return AjaxResult.success(flag); + } + + @PostMapping("/getChannelByCameraId") + @ApiOperation("鑾峰彇鐩告満閫氶亾") + public AjaxResult getChannelByCameraId(@RequestBody Map<String,String> map) { + Map<String,Object> result = ardCamerasService.getChannelByCameraId(map.get("id")); + return AjaxResult.success(result); + } } diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java b/ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java index b480c6c..9e39104 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java @@ -91,4 +91,8 @@ public ArdCameras checkCameraIpAndPortUnique(@Param("ip") String ip, @Param("port")Integer port); public List<Map<String, Object>> getCamerasByDeptId(Long deptId); + + public Boolean getCameraOperationByCameraId(@Param("id") String id, @Param("userId") String userId); + + public List<Map<String, Object>> getChannelByCameraId(String id); } diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java index 5901692..05ae7a1 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java @@ -133,4 +133,8 @@ public String checkCameraIpAndPortUnique(ArdCameras camera); public List<Map<String,Object>> getCamerasByDeptId(Long deptId); + + public Boolean getCameraOperationByCameraId(String id,String userId); + + public Map<String,Object> getChannelByCameraId(String id); } diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java index a1811dd..f4c899e 100644 --- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.device.camera.service.impl; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -566,4 +567,47 @@ List<Map<String, Object>> result = ardCamerasMapper.getCamerasByDeptId(deptId); return result; } + + @Override + public Boolean getCameraOperationByCameraId(String id, String userId) { + Boolean result = ardCamerasMapper.getCameraOperationByCameraId(id,userId); + return result; + } + + @Override + public Map<String, Object> getChannelByCameraId(String id) { + List<Map<String,Object>> result = ardCamerasMapper.getChannelByCameraId(id); + Map<String,Object> resultMap = new HashMap(); + if(result.size() == 1){ + resultMap.put("chanNo", result.get(0).get("chan_no")); + return resultMap; + }else{ + String configValue = (String) result.get(0).get("config_value"); + String beginTime = configValue.split("-")[0]; + String endTime = configValue.split("-")[1]; + Date now = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String nowDay = sdf.format(now); + try{ + Long beginDate = sdf.parse(nowDay).getTime() + + Integer.parseInt(beginTime.split(":")[0]) * 60 * 60 *1000 + + Integer.parseInt(beginTime.split(":")[1]) * 60 *1000; + Long endDate = sdf.parse(nowDay).getTime() + + Integer.parseInt(endTime.split(":")[0]) * 60 * 60 *1000 + + Integer.parseInt(endTime.split(":")[1]) * 60 *1000; + if(now.getTime() >= beginDate && now.getTime() <= endDate){ + result = result.stream().filter(map -> ((Integer)map.get("chan_no")) == 1).collect(Collectors.toList()); + resultMap.put("chanNo", result.get(0).get("chan_no")); + return resultMap; + }else{ + result = result.stream().filter(map -> ((Integer)map.get("chan_no")) == 2).collect(Collectors.toList()); + resultMap.put("chanNo", result.get(0).get("chan_no")); + return resultMap; + } + }catch (Exception e){ + e.printStackTrace(); + return resultMap; + } + } + } } diff --git a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml index cb74bd9..b084616 100644 --- a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml +++ b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml @@ -324,4 +324,24 @@ ) select distinct * from rsd order by "dictLabel" </select> + <select id="getCameraOperationByCameraId" resultType="java.lang.Boolean" parameterType="java.lang.String"> + select + case now() > ac.operator_expired or ac.operator_expired is null + when true then true + when ( + case ((select cast(su.camera_priority as integer) from sys_user su + where su.user_id = #{userId}) > (select cast(su.camera_priority as integer) from sys_user su + inner join ard_cameras ac on su.user_id = ac.operator_id + where ac.id = #{id} )) + when true then true + when false then false end) then false + end + from ard_cameras ac + where ac.id = #{id} + </select> + <select id="getChannelByCameraId" resultType="java.util.Map" parameterType="java.lang.String"> + select * from ard_channel ac + inner join sys_config sc on sc.config_key = 'dayNightTime' + where ac.device_id = #{id} + </select> </mapper> -- Gitblit v1.9.3