From 377f8bd94743a102b321b313d7e0824b39efa274 Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期六, 16 三月 2024 17:40:24 +0800 Subject: [PATCH] app查询光电修改提交 --- ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java | 404 ++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 242 insertions(+), 162 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 4cebdd7..9eb2008 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 @@ -1,162 +1,242 @@ -package com.ruoyi.device.camera.controller; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; - -import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.ruoyi.device.camera.domain.ArdCameras; -import com.ruoyi.device.camera.domain.CameraCmd; -import com.ruoyi.device.camera.service.IArdCamerasService; -import com.ruoyi.device.hiksdk.service.impl.HikClientServiceImpl; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.inspect.service.IArdVideoInspectTaskService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.extern.slf4j.Slf4j; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.common.annotation.Log; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.core.page.TableDataInfo; -import java.util.*; - -/** - * 鐩告満璁惧Controller - * - * @author ruoyi - * @date 2023-01-31 - */ -@Slf4j(topic = "hikSdk") -@RestController -@RequestMapping("/device/cameras") -@Api(tags = "鐩告満绠$悊鎺ュ彛") -public class ArdCamerasController extends BaseController { - @Resource - private HikClientServiceImpl sdk; - @Resource - private IArdCamerasService ardCamerasService; - @Resource - private IArdVideoInspectTaskService ardVideoInspectTaskService; - - /** - * 鏌ヨ鐩告満璁惧鍒楄〃 - */ - @PreAuthorize("@ss.hasPermi('device:cameras:list')") - @GetMapping("/list") - @ApiOperation("鏌ヨ鐩告満璁惧鍒楄〃") - public TableDataInfo list(ArdCameras ardCamera) { - startPage(); - List<ArdCameras> list = ardCamerasService.selectArdCamerasList(ardCamera); - return getDataTable(list); - } - - /** - * 瀵煎嚭鐩告満璁惧鍒楄〃 - */ - @ApiOperation("瀵煎嚭鐩告満璁惧鍒楄〃") - @PreAuthorize("@ss.hasPermi('device:cameras:export')") - @Log(title = "鐩告満璁惧", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, ArdCameras ardCamera) { - List<ArdCameras> list = ardCamerasService.selectArdCamerasList(ardCamera); - ExcelUtil<ArdCameras> util = new ExcelUtil<>(ArdCameras.class); - util.exportExcel(response, list, "鐩告満璁惧鏁版嵁"); - } - - /** - * 鑾峰彇鐩告満璁惧璇︾粏淇℃伅 - */ - @ApiOperation("鑾峰彇鐩告満璁惧璇︾粏淇℃伅") - @PreAuthorize("@ss.hasPermi('device:cameras:query')") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") String id) { - return success(ardCamerasService.selectArdCamerasById(id)); - } - - /** - * 鏂板鐩告満璁惧 - */ - @ApiOperation("鏂板鐩告満璁惧") - @PreAuthorize("@ss.hasPermi('device:cameras:add')") - @Log(title = "鐩告満璁惧", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody ArdCameras camera) { - //娉ㄩ攢 - sdk.loginOut(camera.getId()); - //鐧诲綍 - sdk.login(camera); - return toAjax(ardCamerasService.insertArdCameras(camera)); - } - - /** - * 淇敼鐩告満璁惧 - */ - @ApiOperation("淇敼鐩告満璁惧") - @PreAuthorize("@ss.hasPermi('device:cameras:edit')") - @Log(title = "鐩告満璁惧", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody ArdCameras camera) { - int i = ardCamerasService.updateArdCameras(camera); - if (i > 0) { - ArdCameras cameras = ardCamerasService.selectArdCamerasById(camera.getId()); - sdk.loginOut(cameras.getId()); - sdk.login(cameras); - } - return toAjax(i); - } - - /** - * 鍒犻櫎鐩告満璁惧 - */ - @ApiOperation("鍒犻櫎鐩告満璁惧") - @PreAuthorize("@ss.hasPermi('device:cameras:remove')") - @Log(title = "鐩告満璁惧", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable String[] ids) { - for (String id : ids) { - sdk.loginOut(id); - } - return toAjax(ardCamerasService.deleteArdCamerasByIds(ids)); - } - - @GetMapping("/options") - @ApiOperation("閫夋嫨鐩告満鏁版嵁") - public List options(ArdCameras ardCameras) { - List<ArdCameras> list = ardCamerasService.findOptions(ardCameras); - List options = new ArrayList(); - for (ArdCameras item : list) { - Map option = new HashMap(); - option.put("value", item.getId()); - option.put("label", item.getName()); - option.put("channel", item.getChannel()); - List timeList = ardVideoInspectTaskService.getCameraIdleTimeList(item.getId()); - option.put("idleTimeList", timeList);//绌洪棽鏃堕棿娈� - options.add(option); - } - return options; - } - @GetMapping("/getDeptAndCamera") - @ApiOperation("鑾峰彇閮ㄩ棬鍜岀浉鏈�") - public AjaxResult getDeptAndCamera() - { - Map deptAndCamera = ardCamerasService.getChildDeptAndCamera(); - return AjaxResult.success(deptAndCamera); - } - @PostMapping("/getNearCamerasBycoordinate") - @ApiOperation("鑾峰彇闄勮繎鐨勭浉鏈�") - @ApiOperationSupport(includeParameters = {"targetPosition"}) - public AjaxResult getNearCamerasBycoordinate(@RequestBody CameraCmd cmd) - { - TreeMap nearCamerasBycoordinate = ardCamerasService.getNearCamerasBycoordinate(cmd); - return AjaxResult.success(nearCamerasBycoordinate); - } -} +package com.ruoyi.device.camera.controller; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; +import com.ruoyi.common.constant.CameraConstants; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.device.camera.domain.ArdCameras; +import com.ruoyi.device.camera.domain.CameraCmd; +import com.ruoyi.device.camera.domain.DeptAndCamerasDto; +import com.ruoyi.device.camera.service.IArdCamerasService; +import com.ruoyi.device.camera.service.ICameraSdkService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.inspect.service.IArdVideoInspectTaskService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; + +import java.util.*; + +/** + * 鐩告満璁惧Controller + * + * @author ruoyi + * @date 2023-01-31 + */ +@Slf4j(topic = "hikSdk") +@RestController +@RequestMapping("/device/cameras") +@Api(tags = "鐩告満绠$悊鎺ュ彛") +public class ArdCamerasController extends BaseController { + @Resource + private ICameraSdkService cameraSdkService; + @Resource + private IArdCamerasService ardCamerasService; + @Resource + private IArdVideoInspectTaskService ardVideoInspectTaskService; + + /** + * 鏌ヨ鐩告満璁惧鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('device:cameras:list')") + @GetMapping("/list") + @ApiOperation("鏌ヨ鐩告満璁惧鍒楄〃") + public TableDataInfo list(ArdCameras ardCamera) { + startPage(); + List<ArdCameras> list = ardCamerasService.selectArdCamerasList(ardCamera); + return getDataTable(list); + } + /** + * 鏌ヨ鐩告満璁惧鍒楄〃锛堜笉鏍¢獙鏉冮檺锛� + */ + @GetMapping("/list/noPerm") + @ApiOperation("鏌ヨ鐩告満璁惧鍒楄〃") + public TableDataInfo listNoPerm(ArdCameras ardCamera) { + startPage(); + List<ArdCameras> list = ardCamerasService.selectArdCamerasList(ardCamera); + return getDataTable(list); + } + /** + * 瀵煎嚭鐩告満璁惧鍒楄〃 + */ + @ApiOperation("瀵煎嚭鐩告満璁惧鍒楄〃") + @PreAuthorize("@ss.hasPermi('device:cameras:export')") + @Log(title = "鐩告満璁惧", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ArdCameras ardCamera) { + List<ArdCameras> list = ardCamerasService.selectArdCamerasList(ardCamera); + ExcelUtil<ArdCameras> util = new ExcelUtil<>(ArdCameras.class); + util.exportExcel(response, list, "鐩告満璁惧鏁版嵁"); + } + + /** + * 鑾峰彇鐩告満璁惧璇︾粏淇℃伅 + */ + @ApiOperation("鑾峰彇鐩告満璁惧璇︾粏淇℃伅") + @PreAuthorize("@ss.hasPermi('device:cameras:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) { + return success(ardCamerasService.selectArdCamerasById(id)); + } + + /** + * 鏂板鐩告満璁惧 + */ + @ApiOperation("鏂板鐩告満璁惧") + @PreAuthorize("@ss.hasPermi('device:cameras:add')") + @Log(title = "鐩告満璁惧", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ArdCameras camera) { + if (CameraConstants.NOT_UNIQUE.equals(ardCamerasService.checkCameraIpAndPortUnique(camera))) + { + return error("鏂板鐩告満'" + camera.getIp()+":"+camera.getPort() + "'澶辫触锛岀浉鏈哄凡瀛樺湪"); + } + int i = ardCamerasService.insertArdCameras(camera); + if (i > 0) { + cameraSdkService.logout(camera.getId()); + cameraSdkService.login(camera); + } + return toAjax(i); + } + + /** + * 淇敼鐩告満璁惧 + */ + @ApiOperation("淇敼鐩告満璁惧") + @PreAuthorize("@ss.hasPermi('device:cameras:edit')") + @Log(title = "鐩告満璁惧", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ArdCameras camera) { + if (CameraConstants.NOT_UNIQUE.equals(ardCamerasService.checkCameraIpAndPortUnique(camera))) + { + return error("淇敼鐩告満'" + camera.getIp()+":"+camera.getPort() + "'澶辫触锛岀浉鏈哄凡瀛樺湪"); + } + int i = ardCamerasService.updateArdCameras(camera); + if (i > 0) { + cameraSdkService.logout(camera.getId()); + cameraSdkService.login(camera); + } + return toAjax(i); + } + + /** + * 鍒犻櫎鐩告満璁惧 + */ + @ApiOperation("鍒犻櫎鐩告満璁惧") + @PreAuthorize("@ss.hasPermi('device:cameras:remove')") + @Log(title = "鐩告満璁惧", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) { + for (String id : ids) { + cameraSdkService.logout(id); + } + return toAjax(ardCamerasService.deleteArdCamerasByIds(ids)); + } + + @Log(title = "瀵煎叆鐩告満璁惧", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('device:cameras:import')") + @PostMapping("/importData") + @ApiOperation("瀵煎叆鐩告満璁惧") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { + ExcelUtil<ArdCameras> util = new ExcelUtil<ArdCameras>(ArdCameras.class); + List<ArdCameras> camerasList = util.importExcel(file.getInputStream()); + String operName = getUsername(); + String message = ardCamerasService.importCameras(camerasList, updateSupport, operName); + return success(message); + } + + @PostMapping("/importTemplate") + @ApiOperation("鐩告満璁惧瀵煎叆妯℃澘") + public void importTemplate(HttpServletResponse response) { + ExcelUtil<ArdCameras> util = new ExcelUtil<ArdCameras>(ArdCameras.class); + util.importTemplateExcel(response, "鐩告満璁惧鏁版嵁"); + } + + + + @GetMapping("/options") + @ApiOperation("閫夋嫨鐩告満鏁版嵁") + public List options(ArdCameras ardCameras) { + List<ArdCameras> list = ardCamerasService.findOptions(ardCameras); + //System.out.println("list:"+list.size()); + List options = new ArrayList(); + for (ArdCameras item : list) { + Map option = new HashMap(); + option.put("value", item.getId()); + option.put("label", item.getName()); + option.put("channelList", item.getChannelList()); + List timeList = ardVideoInspectTaskService.getCameraIdleTimeList(item.getId()); + option.put("idleTimeList", timeList);//绌洪棽鏃堕棿娈� + options.add(option); + } + return options; + } + + @GetMapping("/getDeptAndCamera") + @ApiOperation("鑾峰彇閮ㄩ棬鍜岀浉鏈�") + public AjaxResult getDeptAndCamera() { + Map deptAndCamera = ardCamerasService.getChildDeptAndCamera(true); + return AjaxResult.success(deptAndCamera); + } + @GetMapping("/getDeptAndCameraByRole") + @ApiOperation("鑾峰彇閮ㄩ棬鍜岀浉鏈烘寜瑙掕壊") + public AjaxResult getDeptAndCameraByRole() { + List<DeptAndCamerasDto> deptAndCamera = ardCamerasService.getChildDeptAndCamera(); + return AjaxResult.success(deptAndCamera); + } + @GetMapping("/getDeptAndCameraWithCheckBox") + @ApiOperation("鑾峰彇閮ㄩ棬鍜岀浉鏈�(寮�鍚閫夋)") + public AjaxResult getDeptAndCameraWithCheckBox() { + Map deptAndCamera = ardCamerasService.getChildDeptAndCamera(false); + return AjaxResult.success(deptAndCamera); + } + + @PostMapping("/getNearCamerasBycoordinate") + @ApiOperation("鑾峰彇闄勮繎鐨勭浉鏈�") + @ApiOperationSupport(includeParameters = {"targetPosition"}) + public AjaxResult getNearCamerasBycoordinate(@RequestBody CameraCmd cmd) { + TreeMap nearCamerasBycoordinate = ardCamerasService.getNearCamerasBycoordinate(cmd); + return AjaxResult.success(nearCamerasBycoordinate); + } + + @GetMapping("/getCamerasByDeptId") + @ApiOperation("鑾峰彇鏉冮檺鍙婁笅灞炴潈闄愪笅鐨勭浉鏈�") + public AjaxResult getCamerasByDeptId() { + Long deptId = SecurityUtils.getDeptId(); + String userId = SecurityUtils.getUserId(); + List<Map<String,Object>> camerasList = ardCamerasService.getCamerasByDeptId(deptId,userId); + 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); + } +} -- Gitblit v1.9.3