diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index 79cdcb5..af079cc 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -2,6 +2,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +12,9 @@ import com.casic.missiles.core.application.service.AbstractDeptService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dto.*; @@ -42,6 +46,7 @@ private final IBusDeviceLedgerService busDeviceLedgerService; private final IBusDeviceLogService iBusDeviceLogService; + private final IOffLineAnalysisService iOffLineAnalysisService; private final AbstractDictService abstractDictService; private final AbstractDeptService abstractDeptService; private final IBaseProductService baseProductService; @@ -77,6 +82,7 @@ busDeviceList.forEach(busDevice -> { busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject())); busDevice.setValidName(abstractDictService.getDictNameByCode("useStatus", busDevice.getValid())); + busDevice.setOnlineState("0".equals(busDevice.getOnlineState())?"离线":"在线"); if (ObjectUtil.isNotEmpty(busDevice.getDeptid())) busDevice.setDeptName(getDeptNamesByDeptId(busDevice.getDeptid())); }); @@ -107,7 +113,40 @@ @Override public List> alarmRecords(AlarmRecordsRequestDTO requestDTO) { - return this.baseMapper.alarmRecords(requestDTO); + List> mapList = this.baseMapper.alarmRecords(requestDTO); + mapList.forEach(map -> { + map.put("PROCESS_STATUS_NAME", ApprovalStatusEnum.PROCESSED.getValue()); + String flowStatus = null != map.get("FLOW_STATUS") ? map.get("FLOW_STATUS").toString() : ""; + String descn = null != map.get("DESCN") ? map.get("DESCN").toString() : ""; + String processPerson = null != map.get("approval_person") ? map.get("approval_person").toString() : ""; + map.put("PROCESS_MSG", ""); + map.put("CONFIRM_MSG", ""); + map.put("PROCESS_PERSON", ""); + if (ObjectUtil.isNotEmpty(flowStatus)) { + String[] flowStatusArr = flowStatus.split(","); + String[] processPersonArr = processPerson.split(","); + String[] descnArr = descn.split("_"); + for (String str : flowStatusArr) { + if (ApprovalStatusEnum.PROCESSED.getCode().equals(str)) { + //设备异常无现场确认状态 + if ("1".equals(map.get("EXCEPTION_TYPE").toString())) { + map.put("PROCESS_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + } else { + map.put("PROCESS_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[1] : ""); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + map.put("CONFIRM_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[0] : ""); + } + + } else if (ApprovalStatusEnum.CONFIRMED.getCode().equals(str)) { + map.put("CONFIRM_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", map.get("approval_person")); + } + } + } + }); + + return mapList; } @@ -206,7 +245,7 @@ }); //若安装位号不为空,检查是否存在 if (ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())) { - List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject()); + List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject(),deviceImportDTO.getDeptid()); if (null == ledgerIds || ledgerIds.size() < 1) { list.add("第" + index[0] + "行,安装位号不存在!"); return; @@ -226,8 +265,9 @@ List busDeviceLedgers = new ArrayList<>(); busDeviceList.forEach(device -> { - busDeviceLedgers.add(new BusDeviceLedger(device.getId(), device.getDeviceType(), device.getWatchObject())); - + for(Long ledgerId:device.getLedgerIds()){ + busDeviceLedgers.add(new BusDeviceLedger(device.getId(), ledgerId, device.getWatchObject())); + } }); if (CollectionUtil.isNotEmpty(busDeviceLedgers)) { this.busDeviceLedgerService.saveBatch(busDeviceLedgers); @@ -266,4 +306,19 @@ return String.join("/", nameList); } + + @Override + public List offLineAnalysis(CommonRequestDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("OFF_LINE_TIME", requestDTO.getBegTime()); + queryWrapper.le("OFF_LINE_TIME", requestDTO.getEndTime()); + queryWrapper.eq("DEVCODE", requestDTO.getDevcode()); + List offLineAnalysisList = iOffLineAnalysisService.list(queryWrapper); + offLineAnalysisList.forEach(offLineAnalysis -> { + if (ObjectUtil.isAllNotEmpty(offLineAnalysis.getOnLineTime(), offLineAnalysis.getOffLineTime())) { + offLineAnalysis.setOffDays(DateUtil.between(offLineAnalysis.getOffLineTime(), offLineAnalysis.getOnLineTime(), DateUnit.DAY)); + } + }); + return offLineAnalysisList; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index 79cdcb5..af079cc 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -2,6 +2,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +12,9 @@ import com.casic.missiles.core.application.service.AbstractDeptService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dto.*; @@ -42,6 +46,7 @@ private final IBusDeviceLedgerService busDeviceLedgerService; private final IBusDeviceLogService iBusDeviceLogService; + private final IOffLineAnalysisService iOffLineAnalysisService; private final AbstractDictService abstractDictService; private final AbstractDeptService abstractDeptService; private final IBaseProductService baseProductService; @@ -77,6 +82,7 @@ busDeviceList.forEach(busDevice -> { busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject())); busDevice.setValidName(abstractDictService.getDictNameByCode("useStatus", busDevice.getValid())); + busDevice.setOnlineState("0".equals(busDevice.getOnlineState())?"离线":"在线"); if (ObjectUtil.isNotEmpty(busDevice.getDeptid())) busDevice.setDeptName(getDeptNamesByDeptId(busDevice.getDeptid())); }); @@ -107,7 +113,40 @@ @Override public List> alarmRecords(AlarmRecordsRequestDTO requestDTO) { - return this.baseMapper.alarmRecords(requestDTO); + List> mapList = this.baseMapper.alarmRecords(requestDTO); + mapList.forEach(map -> { + map.put("PROCESS_STATUS_NAME", ApprovalStatusEnum.PROCESSED.getValue()); + String flowStatus = null != map.get("FLOW_STATUS") ? map.get("FLOW_STATUS").toString() : ""; + String descn = null != map.get("DESCN") ? map.get("DESCN").toString() : ""; + String processPerson = null != map.get("approval_person") ? map.get("approval_person").toString() : ""; + map.put("PROCESS_MSG", ""); + map.put("CONFIRM_MSG", ""); + map.put("PROCESS_PERSON", ""); + if (ObjectUtil.isNotEmpty(flowStatus)) { + String[] flowStatusArr = flowStatus.split(","); + String[] processPersonArr = processPerson.split(","); + String[] descnArr = descn.split("_"); + for (String str : flowStatusArr) { + if (ApprovalStatusEnum.PROCESSED.getCode().equals(str)) { + //设备异常无现场确认状态 + if ("1".equals(map.get("EXCEPTION_TYPE").toString())) { + map.put("PROCESS_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + } else { + map.put("PROCESS_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[1] : ""); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + map.put("CONFIRM_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[0] : ""); + } + + } else if (ApprovalStatusEnum.CONFIRMED.getCode().equals(str)) { + map.put("CONFIRM_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", map.get("approval_person")); + } + } + } + }); + + return mapList; } @@ -206,7 +245,7 @@ }); //若安装位号不为空,检查是否存在 if (ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())) { - List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject()); + List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject(),deviceImportDTO.getDeptid()); if (null == ledgerIds || ledgerIds.size() < 1) { list.add("第" + index[0] + "行,安装位号不存在!"); return; @@ -226,8 +265,9 @@ List busDeviceLedgers = new ArrayList<>(); busDeviceList.forEach(device -> { - busDeviceLedgers.add(new BusDeviceLedger(device.getId(), device.getDeviceType(), device.getWatchObject())); - + for(Long ledgerId:device.getLedgerIds()){ + busDeviceLedgers.add(new BusDeviceLedger(device.getId(), ledgerId, device.getWatchObject())); + } }); if (CollectionUtil.isNotEmpty(busDeviceLedgers)) { this.busDeviceLedgerService.saveBatch(busDeviceLedgers); @@ -266,4 +306,19 @@ return String.join("/", nameList); } + + @Override + public List offLineAnalysis(CommonRequestDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("OFF_LINE_TIME", requestDTO.getBegTime()); + queryWrapper.le("OFF_LINE_TIME", requestDTO.getEndTime()); + queryWrapper.eq("DEVCODE", requestDTO.getDevcode()); + List offLineAnalysisList = iOffLineAnalysisService.list(queryWrapper); + offLineAnalysisList.forEach(offLineAnalysis -> { + if (ObjectUtil.isAllNotEmpty(offLineAnalysis.getOnLineTime(), offLineAnalysis.getOffLineTime())) { + offLineAnalysis.setOffDays(DateUtil.between(offLineAnalysis.getOffLineTime(), offLineAnalysis.getOnLineTime(), DateUnit.DAY)); + } + }); + return offLineAnalysisList; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java index 2a31a2e..d9a0a25 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java @@ -78,9 +78,9 @@ return this.baseMapper.updateById(busLedger)>0?true:false; } - public List ledgerIdsByTagNumber(String tagNumber, String type) { + public List ledgerIdsByTagNumber(String tagNumber, String type,Long deptid) { - return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type); + return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type,deptid); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index 79cdcb5..af079cc 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -2,6 +2,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +12,9 @@ import com.casic.missiles.core.application.service.AbstractDeptService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dto.*; @@ -42,6 +46,7 @@ private final IBusDeviceLedgerService busDeviceLedgerService; private final IBusDeviceLogService iBusDeviceLogService; + private final IOffLineAnalysisService iOffLineAnalysisService; private final AbstractDictService abstractDictService; private final AbstractDeptService abstractDeptService; private final IBaseProductService baseProductService; @@ -77,6 +82,7 @@ busDeviceList.forEach(busDevice -> { busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject())); busDevice.setValidName(abstractDictService.getDictNameByCode("useStatus", busDevice.getValid())); + busDevice.setOnlineState("0".equals(busDevice.getOnlineState())?"离线":"在线"); if (ObjectUtil.isNotEmpty(busDevice.getDeptid())) busDevice.setDeptName(getDeptNamesByDeptId(busDevice.getDeptid())); }); @@ -107,7 +113,40 @@ @Override public List> alarmRecords(AlarmRecordsRequestDTO requestDTO) { - return this.baseMapper.alarmRecords(requestDTO); + List> mapList = this.baseMapper.alarmRecords(requestDTO); + mapList.forEach(map -> { + map.put("PROCESS_STATUS_NAME", ApprovalStatusEnum.PROCESSED.getValue()); + String flowStatus = null != map.get("FLOW_STATUS") ? map.get("FLOW_STATUS").toString() : ""; + String descn = null != map.get("DESCN") ? map.get("DESCN").toString() : ""; + String processPerson = null != map.get("approval_person") ? map.get("approval_person").toString() : ""; + map.put("PROCESS_MSG", ""); + map.put("CONFIRM_MSG", ""); + map.put("PROCESS_PERSON", ""); + if (ObjectUtil.isNotEmpty(flowStatus)) { + String[] flowStatusArr = flowStatus.split(","); + String[] processPersonArr = processPerson.split(","); + String[] descnArr = descn.split("_"); + for (String str : flowStatusArr) { + if (ApprovalStatusEnum.PROCESSED.getCode().equals(str)) { + //设备异常无现场确认状态 + if ("1".equals(map.get("EXCEPTION_TYPE").toString())) { + map.put("PROCESS_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + } else { + map.put("PROCESS_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[1] : ""); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + map.put("CONFIRM_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[0] : ""); + } + + } else if (ApprovalStatusEnum.CONFIRMED.getCode().equals(str)) { + map.put("CONFIRM_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", map.get("approval_person")); + } + } + } + }); + + return mapList; } @@ -206,7 +245,7 @@ }); //若安装位号不为空,检查是否存在 if (ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())) { - List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject()); + List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject(),deviceImportDTO.getDeptid()); if (null == ledgerIds || ledgerIds.size() < 1) { list.add("第" + index[0] + "行,安装位号不存在!"); return; @@ -226,8 +265,9 @@ List busDeviceLedgers = new ArrayList<>(); busDeviceList.forEach(device -> { - busDeviceLedgers.add(new BusDeviceLedger(device.getId(), device.getDeviceType(), device.getWatchObject())); - + for(Long ledgerId:device.getLedgerIds()){ + busDeviceLedgers.add(new BusDeviceLedger(device.getId(), ledgerId, device.getWatchObject())); + } }); if (CollectionUtil.isNotEmpty(busDeviceLedgers)) { this.busDeviceLedgerService.saveBatch(busDeviceLedgers); @@ -266,4 +306,19 @@ return String.join("/", nameList); } + + @Override + public List offLineAnalysis(CommonRequestDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("OFF_LINE_TIME", requestDTO.getBegTime()); + queryWrapper.le("OFF_LINE_TIME", requestDTO.getEndTime()); + queryWrapper.eq("DEVCODE", requestDTO.getDevcode()); + List offLineAnalysisList = iOffLineAnalysisService.list(queryWrapper); + offLineAnalysisList.forEach(offLineAnalysis -> { + if (ObjectUtil.isAllNotEmpty(offLineAnalysis.getOnLineTime(), offLineAnalysis.getOffLineTime())) { + offLineAnalysis.setOffDays(DateUtil.between(offLineAnalysis.getOffLineTime(), offLineAnalysis.getOnLineTime(), DateUnit.DAY)); + } + }); + return offLineAnalysisList; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java index 2a31a2e..d9a0a25 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java @@ -78,9 +78,9 @@ return this.baseMapper.updateById(busLedger)>0?true:false; } - public List ledgerIdsByTagNumber(String tagNumber, String type) { + public List ledgerIdsByTagNumber(String tagNumber, String type,Long deptid) { - return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type); + return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type,deptid); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java new file mode 100644 index 0000000..4df2db6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.device.dao.OffLineAnalysisMapper; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; +import com.casic.missiles.modular.device.service.IOffLineAnalysisService; +import org.springframework.stereotype.Service; + +/** + *

+ * 离线分析 服务实现类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Service +public class OffLineAnalysisServiceImpl extends ServiceImpl implements IOffLineAnalysisService { + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index 79cdcb5..af079cc 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -2,6 +2,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +12,9 @@ import com.casic.missiles.core.application.service.AbstractDeptService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dto.*; @@ -42,6 +46,7 @@ private final IBusDeviceLedgerService busDeviceLedgerService; private final IBusDeviceLogService iBusDeviceLogService; + private final IOffLineAnalysisService iOffLineAnalysisService; private final AbstractDictService abstractDictService; private final AbstractDeptService abstractDeptService; private final IBaseProductService baseProductService; @@ -77,6 +82,7 @@ busDeviceList.forEach(busDevice -> { busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject())); busDevice.setValidName(abstractDictService.getDictNameByCode("useStatus", busDevice.getValid())); + busDevice.setOnlineState("0".equals(busDevice.getOnlineState())?"离线":"在线"); if (ObjectUtil.isNotEmpty(busDevice.getDeptid())) busDevice.setDeptName(getDeptNamesByDeptId(busDevice.getDeptid())); }); @@ -107,7 +113,40 @@ @Override public List> alarmRecords(AlarmRecordsRequestDTO requestDTO) { - return this.baseMapper.alarmRecords(requestDTO); + List> mapList = this.baseMapper.alarmRecords(requestDTO); + mapList.forEach(map -> { + map.put("PROCESS_STATUS_NAME", ApprovalStatusEnum.PROCESSED.getValue()); + String flowStatus = null != map.get("FLOW_STATUS") ? map.get("FLOW_STATUS").toString() : ""; + String descn = null != map.get("DESCN") ? map.get("DESCN").toString() : ""; + String processPerson = null != map.get("approval_person") ? map.get("approval_person").toString() : ""; + map.put("PROCESS_MSG", ""); + map.put("CONFIRM_MSG", ""); + map.put("PROCESS_PERSON", ""); + if (ObjectUtil.isNotEmpty(flowStatus)) { + String[] flowStatusArr = flowStatus.split(","); + String[] processPersonArr = processPerson.split(","); + String[] descnArr = descn.split("_"); + for (String str : flowStatusArr) { + if (ApprovalStatusEnum.PROCESSED.getCode().equals(str)) { + //设备异常无现场确认状态 + if ("1".equals(map.get("EXCEPTION_TYPE").toString())) { + map.put("PROCESS_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + } else { + map.put("PROCESS_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[1] : ""); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + map.put("CONFIRM_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[0] : ""); + } + + } else if (ApprovalStatusEnum.CONFIRMED.getCode().equals(str)) { + map.put("CONFIRM_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", map.get("approval_person")); + } + } + } + }); + + return mapList; } @@ -206,7 +245,7 @@ }); //若安装位号不为空,检查是否存在 if (ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())) { - List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject()); + List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject(),deviceImportDTO.getDeptid()); if (null == ledgerIds || ledgerIds.size() < 1) { list.add("第" + index[0] + "行,安装位号不存在!"); return; @@ -226,8 +265,9 @@ List busDeviceLedgers = new ArrayList<>(); busDeviceList.forEach(device -> { - busDeviceLedgers.add(new BusDeviceLedger(device.getId(), device.getDeviceType(), device.getWatchObject())); - + for(Long ledgerId:device.getLedgerIds()){ + busDeviceLedgers.add(new BusDeviceLedger(device.getId(), ledgerId, device.getWatchObject())); + } }); if (CollectionUtil.isNotEmpty(busDeviceLedgers)) { this.busDeviceLedgerService.saveBatch(busDeviceLedgers); @@ -266,4 +306,19 @@ return String.join("/", nameList); } + + @Override + public List offLineAnalysis(CommonRequestDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("OFF_LINE_TIME", requestDTO.getBegTime()); + queryWrapper.le("OFF_LINE_TIME", requestDTO.getEndTime()); + queryWrapper.eq("DEVCODE", requestDTO.getDevcode()); + List offLineAnalysisList = iOffLineAnalysisService.list(queryWrapper); + offLineAnalysisList.forEach(offLineAnalysis -> { + if (ObjectUtil.isAllNotEmpty(offLineAnalysis.getOnLineTime(), offLineAnalysis.getOffLineTime())) { + offLineAnalysis.setOffDays(DateUtil.between(offLineAnalysis.getOffLineTime(), offLineAnalysis.getOnLineTime(), DateUnit.DAY)); + } + }); + return offLineAnalysisList; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java index 2a31a2e..d9a0a25 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java @@ -78,9 +78,9 @@ return this.baseMapper.updateById(busLedger)>0?true:false; } - public List ledgerIdsByTagNumber(String tagNumber, String type) { + public List ledgerIdsByTagNumber(String tagNumber, String type,Long deptid) { - return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type); + return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type,deptid); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java new file mode 100644 index 0000000..4df2db6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.device.dao.OffLineAnalysisMapper; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; +import com.casic.missiles.modular.device.service.IOffLineAnalysisService; +import org.springframework.stereotype.Service; + +/** + *

+ * 离线分析 服务实现类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Service +public class OffLineAnalysisServiceImpl extends ServiceImpl implements IOffLineAnalysisService { + +} diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java index 54124d9..5ce8fc2 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java @@ -34,20 +34,22 @@ @XxlJob("suspendExpireJobHandler") public void suspendExpireJobHandler() { XxlJobHelper.log("check suspend expire"); - Date today = getTodayStart(); +// Date today = getTodayStart(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lt("EXPIRE_TIME", today); + queryWrapper.lt("EXPIRE_TIME", new Date()); queryWrapper.eq("VALID", "1"); List suspendLogList = iSuspendLogService.list(queryWrapper); - suspendLogList.forEach(suspendLog -> { - suspendLog.setValid("0"); - }); - iSuspendLogService.updateBatchById(suspendLogList); - //更新最新状态 - List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); - List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); - //添加流转日志 - iApprovalLogService.saveSuspendLogs(alarmRecordsList); + if (suspendLogList != null && suspendLogList.size() > 0) { + suspendLogList.forEach(suspendLog -> { + suspendLog.setValid("0"); + }); + iSuspendLogService.updateBatchById(suspendLogList); + //更新最新状态 + List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); + List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); + //添加流转日志 + iApprovalLogService.saveSuspendLogs(alarmRecordsList); + } } private Date getTodayStart() { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index 79cdcb5..af079cc 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -2,6 +2,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +12,9 @@ import com.casic.missiles.core.application.service.AbstractDeptService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dto.*; @@ -42,6 +46,7 @@ private final IBusDeviceLedgerService busDeviceLedgerService; private final IBusDeviceLogService iBusDeviceLogService; + private final IOffLineAnalysisService iOffLineAnalysisService; private final AbstractDictService abstractDictService; private final AbstractDeptService abstractDeptService; private final IBaseProductService baseProductService; @@ -77,6 +82,7 @@ busDeviceList.forEach(busDevice -> { busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject())); busDevice.setValidName(abstractDictService.getDictNameByCode("useStatus", busDevice.getValid())); + busDevice.setOnlineState("0".equals(busDevice.getOnlineState())?"离线":"在线"); if (ObjectUtil.isNotEmpty(busDevice.getDeptid())) busDevice.setDeptName(getDeptNamesByDeptId(busDevice.getDeptid())); }); @@ -107,7 +113,40 @@ @Override public List> alarmRecords(AlarmRecordsRequestDTO requestDTO) { - return this.baseMapper.alarmRecords(requestDTO); + List> mapList = this.baseMapper.alarmRecords(requestDTO); + mapList.forEach(map -> { + map.put("PROCESS_STATUS_NAME", ApprovalStatusEnum.PROCESSED.getValue()); + String flowStatus = null != map.get("FLOW_STATUS") ? map.get("FLOW_STATUS").toString() : ""; + String descn = null != map.get("DESCN") ? map.get("DESCN").toString() : ""; + String processPerson = null != map.get("approval_person") ? map.get("approval_person").toString() : ""; + map.put("PROCESS_MSG", ""); + map.put("CONFIRM_MSG", ""); + map.put("PROCESS_PERSON", ""); + if (ObjectUtil.isNotEmpty(flowStatus)) { + String[] flowStatusArr = flowStatus.split(","); + String[] processPersonArr = processPerson.split(","); + String[] descnArr = descn.split("_"); + for (String str : flowStatusArr) { + if (ApprovalStatusEnum.PROCESSED.getCode().equals(str)) { + //设备异常无现场确认状态 + if ("1".equals(map.get("EXCEPTION_TYPE").toString())) { + map.put("PROCESS_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + } else { + map.put("PROCESS_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[1] : ""); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + map.put("CONFIRM_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[0] : ""); + } + + } else if (ApprovalStatusEnum.CONFIRMED.getCode().equals(str)) { + map.put("CONFIRM_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", map.get("approval_person")); + } + } + } + }); + + return mapList; } @@ -206,7 +245,7 @@ }); //若安装位号不为空,检查是否存在 if (ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())) { - List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject()); + List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject(),deviceImportDTO.getDeptid()); if (null == ledgerIds || ledgerIds.size() < 1) { list.add("第" + index[0] + "行,安装位号不存在!"); return; @@ -226,8 +265,9 @@ List busDeviceLedgers = new ArrayList<>(); busDeviceList.forEach(device -> { - busDeviceLedgers.add(new BusDeviceLedger(device.getId(), device.getDeviceType(), device.getWatchObject())); - + for(Long ledgerId:device.getLedgerIds()){ + busDeviceLedgers.add(new BusDeviceLedger(device.getId(), ledgerId, device.getWatchObject())); + } }); if (CollectionUtil.isNotEmpty(busDeviceLedgers)) { this.busDeviceLedgerService.saveBatch(busDeviceLedgers); @@ -266,4 +306,19 @@ return String.join("/", nameList); } + + @Override + public List offLineAnalysis(CommonRequestDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("OFF_LINE_TIME", requestDTO.getBegTime()); + queryWrapper.le("OFF_LINE_TIME", requestDTO.getEndTime()); + queryWrapper.eq("DEVCODE", requestDTO.getDevcode()); + List offLineAnalysisList = iOffLineAnalysisService.list(queryWrapper); + offLineAnalysisList.forEach(offLineAnalysis -> { + if (ObjectUtil.isAllNotEmpty(offLineAnalysis.getOnLineTime(), offLineAnalysis.getOffLineTime())) { + offLineAnalysis.setOffDays(DateUtil.between(offLineAnalysis.getOffLineTime(), offLineAnalysis.getOnLineTime(), DateUnit.DAY)); + } + }); + return offLineAnalysisList; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java index 2a31a2e..d9a0a25 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java @@ -78,9 +78,9 @@ return this.baseMapper.updateById(busLedger)>0?true:false; } - public List ledgerIdsByTagNumber(String tagNumber, String type) { + public List ledgerIdsByTagNumber(String tagNumber, String type,Long deptid) { - return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type); + return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type,deptid); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java new file mode 100644 index 0000000..4df2db6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.device.dao.OffLineAnalysisMapper; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; +import com.casic.missiles.modular.device.service.IOffLineAnalysisService; +import org.springframework.stereotype.Service; + +/** + *

+ * 离线分析 服务实现类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Service +public class OffLineAnalysisServiceImpl extends ServiceImpl implements IOffLineAnalysisService { + +} diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java index 54124d9..5ce8fc2 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java @@ -34,20 +34,22 @@ @XxlJob("suspendExpireJobHandler") public void suspendExpireJobHandler() { XxlJobHelper.log("check suspend expire"); - Date today = getTodayStart(); +// Date today = getTodayStart(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lt("EXPIRE_TIME", today); + queryWrapper.lt("EXPIRE_TIME", new Date()); queryWrapper.eq("VALID", "1"); List suspendLogList = iSuspendLogService.list(queryWrapper); - suspendLogList.forEach(suspendLog -> { - suspendLog.setValid("0"); - }); - iSuspendLogService.updateBatchById(suspendLogList); - //更新最新状态 - List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); - List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); - //添加流转日志 - iApprovalLogService.saveSuspendLogs(alarmRecordsList); + if (suspendLogList != null && suspendLogList.size() > 0) { + suspendLogList.forEach(suspendLog -> { + suspendLog.setValid("0"); + }); + iSuspendLogService.updateBatchById(suspendLogList); + //更新最新状态 + List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); + List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); + //添加流转日志 + iApprovalLogService.saveSuspendLogs(alarmRecordsList); + } } private Date getTodayStart() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 8e219e7..a546cca 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,8 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "当前报警记录"), ALARM_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "历史报警记录"), + ALARM_DEVICE_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备正在报警记录"), + ALARM_DEVICE_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备历史报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), REPAIR_LOG_EXPORT("repairLog", "repairLog", "厂商运维记录"), diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index 79cdcb5..af079cc 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -2,6 +2,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +12,9 @@ import com.casic.missiles.core.application.service.AbstractDeptService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dto.*; @@ -42,6 +46,7 @@ private final IBusDeviceLedgerService busDeviceLedgerService; private final IBusDeviceLogService iBusDeviceLogService; + private final IOffLineAnalysisService iOffLineAnalysisService; private final AbstractDictService abstractDictService; private final AbstractDeptService abstractDeptService; private final IBaseProductService baseProductService; @@ -77,6 +82,7 @@ busDeviceList.forEach(busDevice -> { busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject())); busDevice.setValidName(abstractDictService.getDictNameByCode("useStatus", busDevice.getValid())); + busDevice.setOnlineState("0".equals(busDevice.getOnlineState())?"离线":"在线"); if (ObjectUtil.isNotEmpty(busDevice.getDeptid())) busDevice.setDeptName(getDeptNamesByDeptId(busDevice.getDeptid())); }); @@ -107,7 +113,40 @@ @Override public List> alarmRecords(AlarmRecordsRequestDTO requestDTO) { - return this.baseMapper.alarmRecords(requestDTO); + List> mapList = this.baseMapper.alarmRecords(requestDTO); + mapList.forEach(map -> { + map.put("PROCESS_STATUS_NAME", ApprovalStatusEnum.PROCESSED.getValue()); + String flowStatus = null != map.get("FLOW_STATUS") ? map.get("FLOW_STATUS").toString() : ""; + String descn = null != map.get("DESCN") ? map.get("DESCN").toString() : ""; + String processPerson = null != map.get("approval_person") ? map.get("approval_person").toString() : ""; + map.put("PROCESS_MSG", ""); + map.put("CONFIRM_MSG", ""); + map.put("PROCESS_PERSON", ""); + if (ObjectUtil.isNotEmpty(flowStatus)) { + String[] flowStatusArr = flowStatus.split(","); + String[] processPersonArr = processPerson.split(","); + String[] descnArr = descn.split("_"); + for (String str : flowStatusArr) { + if (ApprovalStatusEnum.PROCESSED.getCode().equals(str)) { + //设备异常无现场确认状态 + if ("1".equals(map.get("EXCEPTION_TYPE").toString())) { + map.put("PROCESS_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + } else { + map.put("PROCESS_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[1] : ""); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + map.put("CONFIRM_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[0] : ""); + } + + } else if (ApprovalStatusEnum.CONFIRMED.getCode().equals(str)) { + map.put("CONFIRM_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", map.get("approval_person")); + } + } + } + }); + + return mapList; } @@ -206,7 +245,7 @@ }); //若安装位号不为空,检查是否存在 if (ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())) { - List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject()); + List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject(),deviceImportDTO.getDeptid()); if (null == ledgerIds || ledgerIds.size() < 1) { list.add("第" + index[0] + "行,安装位号不存在!"); return; @@ -226,8 +265,9 @@ List busDeviceLedgers = new ArrayList<>(); busDeviceList.forEach(device -> { - busDeviceLedgers.add(new BusDeviceLedger(device.getId(), device.getDeviceType(), device.getWatchObject())); - + for(Long ledgerId:device.getLedgerIds()){ + busDeviceLedgers.add(new BusDeviceLedger(device.getId(), ledgerId, device.getWatchObject())); + } }); if (CollectionUtil.isNotEmpty(busDeviceLedgers)) { this.busDeviceLedgerService.saveBatch(busDeviceLedgers); @@ -266,4 +306,19 @@ return String.join("/", nameList); } + + @Override + public List offLineAnalysis(CommonRequestDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("OFF_LINE_TIME", requestDTO.getBegTime()); + queryWrapper.le("OFF_LINE_TIME", requestDTO.getEndTime()); + queryWrapper.eq("DEVCODE", requestDTO.getDevcode()); + List offLineAnalysisList = iOffLineAnalysisService.list(queryWrapper); + offLineAnalysisList.forEach(offLineAnalysis -> { + if (ObjectUtil.isAllNotEmpty(offLineAnalysis.getOnLineTime(), offLineAnalysis.getOffLineTime())) { + offLineAnalysis.setOffDays(DateUtil.between(offLineAnalysis.getOffLineTime(), offLineAnalysis.getOnLineTime(), DateUnit.DAY)); + } + }); + return offLineAnalysisList; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java index 2a31a2e..d9a0a25 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java @@ -78,9 +78,9 @@ return this.baseMapper.updateById(busLedger)>0?true:false; } - public List ledgerIdsByTagNumber(String tagNumber, String type) { + public List ledgerIdsByTagNumber(String tagNumber, String type,Long deptid) { - return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type); + return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type,deptid); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java new file mode 100644 index 0000000..4df2db6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.device.dao.OffLineAnalysisMapper; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; +import com.casic.missiles.modular.device.service.IOffLineAnalysisService; +import org.springframework.stereotype.Service; + +/** + *

+ * 离线分析 服务实现类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Service +public class OffLineAnalysisServiceImpl extends ServiceImpl implements IOffLineAnalysisService { + +} diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java index 54124d9..5ce8fc2 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java @@ -34,20 +34,22 @@ @XxlJob("suspendExpireJobHandler") public void suspendExpireJobHandler() { XxlJobHelper.log("check suspend expire"); - Date today = getTodayStart(); +// Date today = getTodayStart(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lt("EXPIRE_TIME", today); + queryWrapper.lt("EXPIRE_TIME", new Date()); queryWrapper.eq("VALID", "1"); List suspendLogList = iSuspendLogService.list(queryWrapper); - suspendLogList.forEach(suspendLog -> { - suspendLog.setValid("0"); - }); - iSuspendLogService.updateBatchById(suspendLogList); - //更新最新状态 - List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); - List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); - //添加流转日志 - iApprovalLogService.saveSuspendLogs(alarmRecordsList); + if (suspendLogList != null && suspendLogList.size() > 0) { + suspendLogList.forEach(suspendLog -> { + suspendLog.setValid("0"); + }); + iSuspendLogService.updateBatchById(suspendLogList); + //更新最新状态 + List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); + List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); + //添加流转日志 + iApprovalLogService.saveSuspendLogs(alarmRecordsList); + } } private Date getTodayStart() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 8e219e7..a546cca 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,8 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "当前报警记录"), ALARM_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "历史报警记录"), + ALARM_DEVICE_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备正在报警记录"), + ALARM_DEVICE_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备历史报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), REPAIR_LOG_EXPORT("repairLog", "repairLog", "厂商运维记录"), diff --git a/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java new file mode 100644 index 0000000..c25a157 --- /dev/null +++ b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java @@ -0,0 +1,219 @@ +package com.casic.missiles.util; + + +public class LonlatConver { +// public static void main(String[] args) { +// Double lat = 116.078682; +// Double lon = 27.751289; +// double[] doubleArr1 = wgs84_To_Gcj02(lat, lon); +// System.out.println(doubleArr1[0]+"===="+doubleArr1[1]); +// double[] doubleArr = gcj02_To_Bd09(doubleArr1[0], doubleArr1[1]); +//// double[] doubleArr = gcj02_To_Bd09(lat, lon); +// System.out.println(doubleArr[0]+"===="+doubleArr[1]); +// +// double[] doubleArr2 = gcj02_To_Wgs84(lat, lon); +// System.out.println(doubleArr2[0]+""+"===="+doubleArr2[1]+""); +// +// } + + /** + * a + */ + public final static double a = 6378245.0; + /** + * ee + */ + public final static double ee = 0.00669342162296594323; + + //圆周率 GCJ_02_To_WGS_84 + public final static double pi = 3.14159265358979324; + /** + * @Description WGS84 to 火星坐标系 (GCJ-02) + * @param lon 经度 + * @param lat 纬度 + * @return + */ + public static double[] wgs84_To_Gcj02(double lon, double lat) { + if (outOfChina(lat, lon)) { + return null; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLon, mgLat }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to WGS84 + * @param lon + * @param lat + * @return + */ + public static double[] gcj02_To_Wgs84(double lon, double lat) { + double[] gps = transform(lat, lon); + double lontitude = lon * 2 - gps[1]; + double latitude = lat * 2 - gps[0]; + return new double[] { lontitude, latitude }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to 百度坐标系 (BD-09) + * @param gg_lon + * @param gg_lat + * @return + */ + public static double[] gcj02_To_Bd09(double gg_lon, double gg_lat) { + double x = gg_lon, y = gg_lat; + double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * pi); + double bd_lon = z * Math.cos(theta) + 0.0065; + double bd_lat = z * Math.sin(theta) + 0.006; + return new double[] { bd_lon, bd_lat }; + } + + /** + * @Description 百度坐标系 (BD-09) to 火星坐标系 (GCJ-02) + * @param bd_lon + * @param bd_lat + * @return + */ + public static double[] bd09_To_Gcj02(double bd_lon, double bd_lat) { + double x = bd_lon - 0.0065, y = bd_lat - 0.006; + double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * pi); + double gg_lon = z * Math.cos(theta); + double gg_lat = z * Math.sin(theta); + return new double[] { gg_lon, gg_lat }; + } + /** + * @Description 百度坐标系 (BD-09) to WGS84 + * @param bd_lat + * @param bd_lon + * @return + */ + public static double[] bd09_To_Wgs84(double bd_lon,double bd_lat) { + + double[] gcj02 = LonlatConver.bd09_To_Gcj02(bd_lon, bd_lat); + double[] map84 = LonlatConver.gcj02_To_Wgs84(gcj02[0], gcj02[1]); + return map84; + + } + + /** + * @Description 判断是否在中国范围内 + * @param lat + * @param lon + * @return + */ + public static boolean outOfChina(double lat, double lon) { + if (lon < 72.004 || lon > 137.8347) + return true; + if (lat < 0.8293 || lat > 55.8271) + return true; + return false; + } + + /** + * @Description transform + * @param lat + * @param lon + * @return + */ + private static double[] transform(double lat, double lon) { + if (outOfChina(lat, lon)) { + return new double[] { lat, lon }; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLat, mgLon }; + } + + /** + * @Description transformLat + * @param x + * @param y + * @return + */ + private static double transformLat(double x, double y) { + double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + + 0.2 * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0; + ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0; + return ret; + } + + /** + * @Description transformLon + * @param x + * @param y + * @return + */ + public static double transformLon(double x, double y) { + double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 + * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0; + ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 + * pi)) * 2.0 / 3.0; + return ret; + } + + /** + * GPS经纬度转换为 度(3114.1717,12122.1067 → 121.37300779,31.23436014) + * @param dms 坐标 + * @param type 坐标类型 E/N + * @return String 解析后的经纬度 + */ + public static String gpsToWgs84(String dms, String type) { + if (dms == null || dms.equals("")) { + return "0.0"; + } + double result = 0.0D; + String temp = ""; + + if (type.equals("E")) {//经度 + String e1 = dms.substring(0, 3);//截取3位数字,经度共3位,最多180度 + //经度是一伦敦为点作南北两极的线为0度,所有往西和往东各180度 + String e2 = dms.substring(3, dms.length());//需要运算的小数 + + result = Double.parseDouble(e1); +/* System.out.println("e2===="+e2); + System.out.println("===="+Double.parseDouble(e2) / 60.0D);*/ + result += (Double.parseDouble(e2) / 60.0D); + temp = String.valueOf(result); + if (temp.length() > 11) { + temp = e1 + temp.substring(temp.indexOf("."), 11); + } + } else if (type.equals("N")) { //纬度,纬度是以赤道为基准,相当于把地球分两半,两个半球面上的点和平面夹角0~90度 + String n1 = dms.substring(0, 2);//截取2位,纬度共2位,最多90度 + String n2 = dms.substring(2, dms.length()); + + result = Double.parseDouble(n1); +/* System.out.println("n2===="+n2); + System.out.println("===="+Double.parseDouble(n2) / 60.0D);*/ + result += Double.parseDouble(n2) / 60.0D; + temp = String.valueOf(result); + if (temp.length() > 10) { + temp = n1 + temp.substring(temp.indexOf("."), 10); + } + } + return temp; + } + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index 79cdcb5..af079cc 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -2,6 +2,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +12,9 @@ import com.casic.missiles.core.application.service.AbstractDeptService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dto.*; @@ -42,6 +46,7 @@ private final IBusDeviceLedgerService busDeviceLedgerService; private final IBusDeviceLogService iBusDeviceLogService; + private final IOffLineAnalysisService iOffLineAnalysisService; private final AbstractDictService abstractDictService; private final AbstractDeptService abstractDeptService; private final IBaseProductService baseProductService; @@ -77,6 +82,7 @@ busDeviceList.forEach(busDevice -> { busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject())); busDevice.setValidName(abstractDictService.getDictNameByCode("useStatus", busDevice.getValid())); + busDevice.setOnlineState("0".equals(busDevice.getOnlineState())?"离线":"在线"); if (ObjectUtil.isNotEmpty(busDevice.getDeptid())) busDevice.setDeptName(getDeptNamesByDeptId(busDevice.getDeptid())); }); @@ -107,7 +113,40 @@ @Override public List> alarmRecords(AlarmRecordsRequestDTO requestDTO) { - return this.baseMapper.alarmRecords(requestDTO); + List> mapList = this.baseMapper.alarmRecords(requestDTO); + mapList.forEach(map -> { + map.put("PROCESS_STATUS_NAME", ApprovalStatusEnum.PROCESSED.getValue()); + String flowStatus = null != map.get("FLOW_STATUS") ? map.get("FLOW_STATUS").toString() : ""; + String descn = null != map.get("DESCN") ? map.get("DESCN").toString() : ""; + String processPerson = null != map.get("approval_person") ? map.get("approval_person").toString() : ""; + map.put("PROCESS_MSG", ""); + map.put("CONFIRM_MSG", ""); + map.put("PROCESS_PERSON", ""); + if (ObjectUtil.isNotEmpty(flowStatus)) { + String[] flowStatusArr = flowStatus.split(","); + String[] processPersonArr = processPerson.split(","); + String[] descnArr = descn.split("_"); + for (String str : flowStatusArr) { + if (ApprovalStatusEnum.PROCESSED.getCode().equals(str)) { + //设备异常无现场确认状态 + if ("1".equals(map.get("EXCEPTION_TYPE").toString())) { + map.put("PROCESS_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + } else { + map.put("PROCESS_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[1] : ""); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + map.put("CONFIRM_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[0] : ""); + } + + } else if (ApprovalStatusEnum.CONFIRMED.getCode().equals(str)) { + map.put("CONFIRM_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", map.get("approval_person")); + } + } + } + }); + + return mapList; } @@ -206,7 +245,7 @@ }); //若安装位号不为空,检查是否存在 if (ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())) { - List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject()); + List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject(),deviceImportDTO.getDeptid()); if (null == ledgerIds || ledgerIds.size() < 1) { list.add("第" + index[0] + "行,安装位号不存在!"); return; @@ -226,8 +265,9 @@ List busDeviceLedgers = new ArrayList<>(); busDeviceList.forEach(device -> { - busDeviceLedgers.add(new BusDeviceLedger(device.getId(), device.getDeviceType(), device.getWatchObject())); - + for(Long ledgerId:device.getLedgerIds()){ + busDeviceLedgers.add(new BusDeviceLedger(device.getId(), ledgerId, device.getWatchObject())); + } }); if (CollectionUtil.isNotEmpty(busDeviceLedgers)) { this.busDeviceLedgerService.saveBatch(busDeviceLedgers); @@ -266,4 +306,19 @@ return String.join("/", nameList); } + + @Override + public List offLineAnalysis(CommonRequestDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("OFF_LINE_TIME", requestDTO.getBegTime()); + queryWrapper.le("OFF_LINE_TIME", requestDTO.getEndTime()); + queryWrapper.eq("DEVCODE", requestDTO.getDevcode()); + List offLineAnalysisList = iOffLineAnalysisService.list(queryWrapper); + offLineAnalysisList.forEach(offLineAnalysis -> { + if (ObjectUtil.isAllNotEmpty(offLineAnalysis.getOnLineTime(), offLineAnalysis.getOffLineTime())) { + offLineAnalysis.setOffDays(DateUtil.between(offLineAnalysis.getOffLineTime(), offLineAnalysis.getOnLineTime(), DateUnit.DAY)); + } + }); + return offLineAnalysisList; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java index 2a31a2e..d9a0a25 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java @@ -78,9 +78,9 @@ return this.baseMapper.updateById(busLedger)>0?true:false; } - public List ledgerIdsByTagNumber(String tagNumber, String type) { + public List ledgerIdsByTagNumber(String tagNumber, String type,Long deptid) { - return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type); + return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type,deptid); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java new file mode 100644 index 0000000..4df2db6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.device.dao.OffLineAnalysisMapper; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; +import com.casic.missiles.modular.device.service.IOffLineAnalysisService; +import org.springframework.stereotype.Service; + +/** + *

+ * 离线分析 服务实现类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Service +public class OffLineAnalysisServiceImpl extends ServiceImpl implements IOffLineAnalysisService { + +} diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java index 54124d9..5ce8fc2 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java @@ -34,20 +34,22 @@ @XxlJob("suspendExpireJobHandler") public void suspendExpireJobHandler() { XxlJobHelper.log("check suspend expire"); - Date today = getTodayStart(); +// Date today = getTodayStart(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lt("EXPIRE_TIME", today); + queryWrapper.lt("EXPIRE_TIME", new Date()); queryWrapper.eq("VALID", "1"); List suspendLogList = iSuspendLogService.list(queryWrapper); - suspendLogList.forEach(suspendLog -> { - suspendLog.setValid("0"); - }); - iSuspendLogService.updateBatchById(suspendLogList); - //更新最新状态 - List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); - List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); - //添加流转日志 - iApprovalLogService.saveSuspendLogs(alarmRecordsList); + if (suspendLogList != null && suspendLogList.size() > 0) { + suspendLogList.forEach(suspendLog -> { + suspendLog.setValid("0"); + }); + iSuspendLogService.updateBatchById(suspendLogList); + //更新最新状态 + List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); + List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); + //添加流转日志 + iApprovalLogService.saveSuspendLogs(alarmRecordsList); + } } private Date getTodayStart() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 8e219e7..a546cca 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,8 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "当前报警记录"), ALARM_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "历史报警记录"), + ALARM_DEVICE_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备正在报警记录"), + ALARM_DEVICE_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备历史报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), REPAIR_LOG_EXPORT("repairLog", "repairLog", "厂商运维记录"), diff --git a/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java new file mode 100644 index 0000000..c25a157 --- /dev/null +++ b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java @@ -0,0 +1,219 @@ +package com.casic.missiles.util; + + +public class LonlatConver { +// public static void main(String[] args) { +// Double lat = 116.078682; +// Double lon = 27.751289; +// double[] doubleArr1 = wgs84_To_Gcj02(lat, lon); +// System.out.println(doubleArr1[0]+"===="+doubleArr1[1]); +// double[] doubleArr = gcj02_To_Bd09(doubleArr1[0], doubleArr1[1]); +//// double[] doubleArr = gcj02_To_Bd09(lat, lon); +// System.out.println(doubleArr[0]+"===="+doubleArr[1]); +// +// double[] doubleArr2 = gcj02_To_Wgs84(lat, lon); +// System.out.println(doubleArr2[0]+""+"===="+doubleArr2[1]+""); +// +// } + + /** + * a + */ + public final static double a = 6378245.0; + /** + * ee + */ + public final static double ee = 0.00669342162296594323; + + //圆周率 GCJ_02_To_WGS_84 + public final static double pi = 3.14159265358979324; + /** + * @Description WGS84 to 火星坐标系 (GCJ-02) + * @param lon 经度 + * @param lat 纬度 + * @return + */ + public static double[] wgs84_To_Gcj02(double lon, double lat) { + if (outOfChina(lat, lon)) { + return null; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLon, mgLat }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to WGS84 + * @param lon + * @param lat + * @return + */ + public static double[] gcj02_To_Wgs84(double lon, double lat) { + double[] gps = transform(lat, lon); + double lontitude = lon * 2 - gps[1]; + double latitude = lat * 2 - gps[0]; + return new double[] { lontitude, latitude }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to 百度坐标系 (BD-09) + * @param gg_lon + * @param gg_lat + * @return + */ + public static double[] gcj02_To_Bd09(double gg_lon, double gg_lat) { + double x = gg_lon, y = gg_lat; + double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * pi); + double bd_lon = z * Math.cos(theta) + 0.0065; + double bd_lat = z * Math.sin(theta) + 0.006; + return new double[] { bd_lon, bd_lat }; + } + + /** + * @Description 百度坐标系 (BD-09) to 火星坐标系 (GCJ-02) + * @param bd_lon + * @param bd_lat + * @return + */ + public static double[] bd09_To_Gcj02(double bd_lon, double bd_lat) { + double x = bd_lon - 0.0065, y = bd_lat - 0.006; + double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * pi); + double gg_lon = z * Math.cos(theta); + double gg_lat = z * Math.sin(theta); + return new double[] { gg_lon, gg_lat }; + } + /** + * @Description 百度坐标系 (BD-09) to WGS84 + * @param bd_lat + * @param bd_lon + * @return + */ + public static double[] bd09_To_Wgs84(double bd_lon,double bd_lat) { + + double[] gcj02 = LonlatConver.bd09_To_Gcj02(bd_lon, bd_lat); + double[] map84 = LonlatConver.gcj02_To_Wgs84(gcj02[0], gcj02[1]); + return map84; + + } + + /** + * @Description 判断是否在中国范围内 + * @param lat + * @param lon + * @return + */ + public static boolean outOfChina(double lat, double lon) { + if (lon < 72.004 || lon > 137.8347) + return true; + if (lat < 0.8293 || lat > 55.8271) + return true; + return false; + } + + /** + * @Description transform + * @param lat + * @param lon + * @return + */ + private static double[] transform(double lat, double lon) { + if (outOfChina(lat, lon)) { + return new double[] { lat, lon }; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLat, mgLon }; + } + + /** + * @Description transformLat + * @param x + * @param y + * @return + */ + private static double transformLat(double x, double y) { + double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + + 0.2 * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0; + ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0; + return ret; + } + + /** + * @Description transformLon + * @param x + * @param y + * @return + */ + public static double transformLon(double x, double y) { + double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 + * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0; + ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 + * pi)) * 2.0 / 3.0; + return ret; + } + + /** + * GPS经纬度转换为 度(3114.1717,12122.1067 → 121.37300779,31.23436014) + * @param dms 坐标 + * @param type 坐标类型 E/N + * @return String 解析后的经纬度 + */ + public static String gpsToWgs84(String dms, String type) { + if (dms == null || dms.equals("")) { + return "0.0"; + } + double result = 0.0D; + String temp = ""; + + if (type.equals("E")) {//经度 + String e1 = dms.substring(0, 3);//截取3位数字,经度共3位,最多180度 + //经度是一伦敦为点作南北两极的线为0度,所有往西和往东各180度 + String e2 = dms.substring(3, dms.length());//需要运算的小数 + + result = Double.parseDouble(e1); +/* System.out.println("e2===="+e2); + System.out.println("===="+Double.parseDouble(e2) / 60.0D);*/ + result += (Double.parseDouble(e2) / 60.0D); + temp = String.valueOf(result); + if (temp.length() > 11) { + temp = e1 + temp.substring(temp.indexOf("."), 11); + } + } else if (type.equals("N")) { //纬度,纬度是以赤道为基准,相当于把地球分两半,两个半球面上的点和平面夹角0~90度 + String n1 = dms.substring(0, 2);//截取2位,纬度共2位,最多90度 + String n2 = dms.substring(2, dms.length()); + + result = Double.parseDouble(n1); +/* System.out.println("n2===="+n2); + System.out.println("===="+Double.parseDouble(n2) / 60.0D);*/ + result += Double.parseDouble(n2) / 60.0D; + temp = String.valueOf(result); + if (temp.length() > 10) { + temp = n1 + temp.substring(temp.indexOf("."), 10); + } + } + return temp; + } + +} diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java index 74ad131..4f5bc46 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.sensorHub.controller; +import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.sensorHub.resolver.ResponseResolver; import com.casic.missiles.util.ReturnUtil; @@ -28,10 +29,11 @@ @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - log.info(">>>>>>接收数<<<<<<:" + map.get("jsonData").toString()); threadPoolExecutor.execute( () -> { - ResponseResolver.makeResponse(map.get("jsonData").toString()); + String receiveData = JSON.toJSONString(map); + log.info(">>>>>>接收数<<<<<<:" + receiveData); + ResponseResolver.makeResponse(receiveData); } ); return ReturnUtil.success(); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index 79cdcb5..af079cc 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -2,6 +2,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +12,9 @@ import com.casic.missiles.core.application.service.AbstractDeptService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dto.*; @@ -42,6 +46,7 @@ private final IBusDeviceLedgerService busDeviceLedgerService; private final IBusDeviceLogService iBusDeviceLogService; + private final IOffLineAnalysisService iOffLineAnalysisService; private final AbstractDictService abstractDictService; private final AbstractDeptService abstractDeptService; private final IBaseProductService baseProductService; @@ -77,6 +82,7 @@ busDeviceList.forEach(busDevice -> { busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject())); busDevice.setValidName(abstractDictService.getDictNameByCode("useStatus", busDevice.getValid())); + busDevice.setOnlineState("0".equals(busDevice.getOnlineState())?"离线":"在线"); if (ObjectUtil.isNotEmpty(busDevice.getDeptid())) busDevice.setDeptName(getDeptNamesByDeptId(busDevice.getDeptid())); }); @@ -107,7 +113,40 @@ @Override public List> alarmRecords(AlarmRecordsRequestDTO requestDTO) { - return this.baseMapper.alarmRecords(requestDTO); + List> mapList = this.baseMapper.alarmRecords(requestDTO); + mapList.forEach(map -> { + map.put("PROCESS_STATUS_NAME", ApprovalStatusEnum.PROCESSED.getValue()); + String flowStatus = null != map.get("FLOW_STATUS") ? map.get("FLOW_STATUS").toString() : ""; + String descn = null != map.get("DESCN") ? map.get("DESCN").toString() : ""; + String processPerson = null != map.get("approval_person") ? map.get("approval_person").toString() : ""; + map.put("PROCESS_MSG", ""); + map.put("CONFIRM_MSG", ""); + map.put("PROCESS_PERSON", ""); + if (ObjectUtil.isNotEmpty(flowStatus)) { + String[] flowStatusArr = flowStatus.split(","); + String[] processPersonArr = processPerson.split(","); + String[] descnArr = descn.split("_"); + for (String str : flowStatusArr) { + if (ApprovalStatusEnum.PROCESSED.getCode().equals(str)) { + //设备异常无现场确认状态 + if ("1".equals(map.get("EXCEPTION_TYPE").toString())) { + map.put("PROCESS_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + } else { + map.put("PROCESS_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[1] : ""); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + map.put("CONFIRM_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[0] : ""); + } + + } else if (ApprovalStatusEnum.CONFIRMED.getCode().equals(str)) { + map.put("CONFIRM_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", map.get("approval_person")); + } + } + } + }); + + return mapList; } @@ -206,7 +245,7 @@ }); //若安装位号不为空,检查是否存在 if (ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())) { - List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject()); + List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject(),deviceImportDTO.getDeptid()); if (null == ledgerIds || ledgerIds.size() < 1) { list.add("第" + index[0] + "行,安装位号不存在!"); return; @@ -226,8 +265,9 @@ List busDeviceLedgers = new ArrayList<>(); busDeviceList.forEach(device -> { - busDeviceLedgers.add(new BusDeviceLedger(device.getId(), device.getDeviceType(), device.getWatchObject())); - + for(Long ledgerId:device.getLedgerIds()){ + busDeviceLedgers.add(new BusDeviceLedger(device.getId(), ledgerId, device.getWatchObject())); + } }); if (CollectionUtil.isNotEmpty(busDeviceLedgers)) { this.busDeviceLedgerService.saveBatch(busDeviceLedgers); @@ -266,4 +306,19 @@ return String.join("/", nameList); } + + @Override + public List offLineAnalysis(CommonRequestDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("OFF_LINE_TIME", requestDTO.getBegTime()); + queryWrapper.le("OFF_LINE_TIME", requestDTO.getEndTime()); + queryWrapper.eq("DEVCODE", requestDTO.getDevcode()); + List offLineAnalysisList = iOffLineAnalysisService.list(queryWrapper); + offLineAnalysisList.forEach(offLineAnalysis -> { + if (ObjectUtil.isAllNotEmpty(offLineAnalysis.getOnLineTime(), offLineAnalysis.getOffLineTime())) { + offLineAnalysis.setOffDays(DateUtil.between(offLineAnalysis.getOffLineTime(), offLineAnalysis.getOnLineTime(), DateUnit.DAY)); + } + }); + return offLineAnalysisList; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java index 2a31a2e..d9a0a25 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java @@ -78,9 +78,9 @@ return this.baseMapper.updateById(busLedger)>0?true:false; } - public List ledgerIdsByTagNumber(String tagNumber, String type) { + public List ledgerIdsByTagNumber(String tagNumber, String type,Long deptid) { - return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type); + return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type,deptid); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java new file mode 100644 index 0000000..4df2db6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.device.dao.OffLineAnalysisMapper; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; +import com.casic.missiles.modular.device.service.IOffLineAnalysisService; +import org.springframework.stereotype.Service; + +/** + *

+ * 离线分析 服务实现类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Service +public class OffLineAnalysisServiceImpl extends ServiceImpl implements IOffLineAnalysisService { + +} diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java index 54124d9..5ce8fc2 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java @@ -34,20 +34,22 @@ @XxlJob("suspendExpireJobHandler") public void suspendExpireJobHandler() { XxlJobHelper.log("check suspend expire"); - Date today = getTodayStart(); +// Date today = getTodayStart(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lt("EXPIRE_TIME", today); + queryWrapper.lt("EXPIRE_TIME", new Date()); queryWrapper.eq("VALID", "1"); List suspendLogList = iSuspendLogService.list(queryWrapper); - suspendLogList.forEach(suspendLog -> { - suspendLog.setValid("0"); - }); - iSuspendLogService.updateBatchById(suspendLogList); - //更新最新状态 - List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); - List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); - //添加流转日志 - iApprovalLogService.saveSuspendLogs(alarmRecordsList); + if (suspendLogList != null && suspendLogList.size() > 0) { + suspendLogList.forEach(suspendLog -> { + suspendLog.setValid("0"); + }); + iSuspendLogService.updateBatchById(suspendLogList); + //更新最新状态 + List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); + List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); + //添加流转日志 + iApprovalLogService.saveSuspendLogs(alarmRecordsList); + } } private Date getTodayStart() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 8e219e7..a546cca 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,8 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "当前报警记录"), ALARM_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "历史报警记录"), + ALARM_DEVICE_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备正在报警记录"), + ALARM_DEVICE_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备历史报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), REPAIR_LOG_EXPORT("repairLog", "repairLog", "厂商运维记录"), diff --git a/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java new file mode 100644 index 0000000..c25a157 --- /dev/null +++ b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java @@ -0,0 +1,219 @@ +package com.casic.missiles.util; + + +public class LonlatConver { +// public static void main(String[] args) { +// Double lat = 116.078682; +// Double lon = 27.751289; +// double[] doubleArr1 = wgs84_To_Gcj02(lat, lon); +// System.out.println(doubleArr1[0]+"===="+doubleArr1[1]); +// double[] doubleArr = gcj02_To_Bd09(doubleArr1[0], doubleArr1[1]); +//// double[] doubleArr = gcj02_To_Bd09(lat, lon); +// System.out.println(doubleArr[0]+"===="+doubleArr[1]); +// +// double[] doubleArr2 = gcj02_To_Wgs84(lat, lon); +// System.out.println(doubleArr2[0]+""+"===="+doubleArr2[1]+""); +// +// } + + /** + * a + */ + public final static double a = 6378245.0; + /** + * ee + */ + public final static double ee = 0.00669342162296594323; + + //圆周率 GCJ_02_To_WGS_84 + public final static double pi = 3.14159265358979324; + /** + * @Description WGS84 to 火星坐标系 (GCJ-02) + * @param lon 经度 + * @param lat 纬度 + * @return + */ + public static double[] wgs84_To_Gcj02(double lon, double lat) { + if (outOfChina(lat, lon)) { + return null; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLon, mgLat }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to WGS84 + * @param lon + * @param lat + * @return + */ + public static double[] gcj02_To_Wgs84(double lon, double lat) { + double[] gps = transform(lat, lon); + double lontitude = lon * 2 - gps[1]; + double latitude = lat * 2 - gps[0]; + return new double[] { lontitude, latitude }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to 百度坐标系 (BD-09) + * @param gg_lon + * @param gg_lat + * @return + */ + public static double[] gcj02_To_Bd09(double gg_lon, double gg_lat) { + double x = gg_lon, y = gg_lat; + double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * pi); + double bd_lon = z * Math.cos(theta) + 0.0065; + double bd_lat = z * Math.sin(theta) + 0.006; + return new double[] { bd_lon, bd_lat }; + } + + /** + * @Description 百度坐标系 (BD-09) to 火星坐标系 (GCJ-02) + * @param bd_lon + * @param bd_lat + * @return + */ + public static double[] bd09_To_Gcj02(double bd_lon, double bd_lat) { + double x = bd_lon - 0.0065, y = bd_lat - 0.006; + double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * pi); + double gg_lon = z * Math.cos(theta); + double gg_lat = z * Math.sin(theta); + return new double[] { gg_lon, gg_lat }; + } + /** + * @Description 百度坐标系 (BD-09) to WGS84 + * @param bd_lat + * @param bd_lon + * @return + */ + public static double[] bd09_To_Wgs84(double bd_lon,double bd_lat) { + + double[] gcj02 = LonlatConver.bd09_To_Gcj02(bd_lon, bd_lat); + double[] map84 = LonlatConver.gcj02_To_Wgs84(gcj02[0], gcj02[1]); + return map84; + + } + + /** + * @Description 判断是否在中国范围内 + * @param lat + * @param lon + * @return + */ + public static boolean outOfChina(double lat, double lon) { + if (lon < 72.004 || lon > 137.8347) + return true; + if (lat < 0.8293 || lat > 55.8271) + return true; + return false; + } + + /** + * @Description transform + * @param lat + * @param lon + * @return + */ + private static double[] transform(double lat, double lon) { + if (outOfChina(lat, lon)) { + return new double[] { lat, lon }; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLat, mgLon }; + } + + /** + * @Description transformLat + * @param x + * @param y + * @return + */ + private static double transformLat(double x, double y) { + double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + + 0.2 * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0; + ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0; + return ret; + } + + /** + * @Description transformLon + * @param x + * @param y + * @return + */ + public static double transformLon(double x, double y) { + double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 + * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0; + ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 + * pi)) * 2.0 / 3.0; + return ret; + } + + /** + * GPS经纬度转换为 度(3114.1717,12122.1067 → 121.37300779,31.23436014) + * @param dms 坐标 + * @param type 坐标类型 E/N + * @return String 解析后的经纬度 + */ + public static String gpsToWgs84(String dms, String type) { + if (dms == null || dms.equals("")) { + return "0.0"; + } + double result = 0.0D; + String temp = ""; + + if (type.equals("E")) {//经度 + String e1 = dms.substring(0, 3);//截取3位数字,经度共3位,最多180度 + //经度是一伦敦为点作南北两极的线为0度,所有往西和往东各180度 + String e2 = dms.substring(3, dms.length());//需要运算的小数 + + result = Double.parseDouble(e1); +/* System.out.println("e2===="+e2); + System.out.println("===="+Double.parseDouble(e2) / 60.0D);*/ + result += (Double.parseDouble(e2) / 60.0D); + temp = String.valueOf(result); + if (temp.length() > 11) { + temp = e1 + temp.substring(temp.indexOf("."), 11); + } + } else if (type.equals("N")) { //纬度,纬度是以赤道为基准,相当于把地球分两半,两个半球面上的点和平面夹角0~90度 + String n1 = dms.substring(0, 2);//截取2位,纬度共2位,最多90度 + String n2 = dms.substring(2, dms.length()); + + result = Double.parseDouble(n1); +/* System.out.println("n2===="+n2); + System.out.println("===="+Double.parseDouble(n2) / 60.0D);*/ + result += Double.parseDouble(n2) / 60.0D; + temp = String.valueOf(result); + if (temp.length() > 10) { + temp = n1 + temp.substring(temp.indexOf("."), 10); + } + } + return temp; + } + +} diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java index 74ad131..4f5bc46 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.sensorHub.controller; +import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.sensorHub.resolver.ResponseResolver; import com.casic.missiles.util.ReturnUtil; @@ -28,10 +29,11 @@ @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - log.info(">>>>>>接收数<<<<<<:" + map.get("jsonData").toString()); threadPoolExecutor.execute( () -> { - ResponseResolver.makeResponse(map.get("jsonData").toString()); + String receiveData = JSON.toJSONString(map); + log.info(">>>>>>接收数<<<<<<:" + receiveData); + ResponseResolver.makeResponse(receiveData); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java index fc9d763..e13de3d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java @@ -65,7 +65,7 @@ //策略配置 .strategyConfig(builder -> { - builder.addInclude("bus_ledger_pipe","data_gas","data_pan_gas","data_monitor_pipe_other","data_tube_other") // 设置需要生成的表名 + builder.addInclude("track_log") // 设置需要生成的表名 .addTablePrefix() // 设置过滤表前缀 .entityBuilder() //实体类配置 .enableLombok() //使用lombok diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index 79cdcb5..af079cc 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -2,6 +2,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +12,9 @@ import com.casic.missiles.core.application.service.AbstractDeptService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dto.*; @@ -42,6 +46,7 @@ private final IBusDeviceLedgerService busDeviceLedgerService; private final IBusDeviceLogService iBusDeviceLogService; + private final IOffLineAnalysisService iOffLineAnalysisService; private final AbstractDictService abstractDictService; private final AbstractDeptService abstractDeptService; private final IBaseProductService baseProductService; @@ -77,6 +82,7 @@ busDeviceList.forEach(busDevice -> { busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject())); busDevice.setValidName(abstractDictService.getDictNameByCode("useStatus", busDevice.getValid())); + busDevice.setOnlineState("0".equals(busDevice.getOnlineState())?"离线":"在线"); if (ObjectUtil.isNotEmpty(busDevice.getDeptid())) busDevice.setDeptName(getDeptNamesByDeptId(busDevice.getDeptid())); }); @@ -107,7 +113,40 @@ @Override public List> alarmRecords(AlarmRecordsRequestDTO requestDTO) { - return this.baseMapper.alarmRecords(requestDTO); + List> mapList = this.baseMapper.alarmRecords(requestDTO); + mapList.forEach(map -> { + map.put("PROCESS_STATUS_NAME", ApprovalStatusEnum.PROCESSED.getValue()); + String flowStatus = null != map.get("FLOW_STATUS") ? map.get("FLOW_STATUS").toString() : ""; + String descn = null != map.get("DESCN") ? map.get("DESCN").toString() : ""; + String processPerson = null != map.get("approval_person") ? map.get("approval_person").toString() : ""; + map.put("PROCESS_MSG", ""); + map.put("CONFIRM_MSG", ""); + map.put("PROCESS_PERSON", ""); + if (ObjectUtil.isNotEmpty(flowStatus)) { + String[] flowStatusArr = flowStatus.split(","); + String[] processPersonArr = processPerson.split(","); + String[] descnArr = descn.split("_"); + for (String str : flowStatusArr) { + if (ApprovalStatusEnum.PROCESSED.getCode().equals(str)) { + //设备异常无现场确认状态 + if ("1".equals(map.get("EXCEPTION_TYPE").toString())) { + map.put("PROCESS_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + } else { + map.put("PROCESS_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[1] : ""); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + map.put("CONFIRM_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[0] : ""); + } + + } else if (ApprovalStatusEnum.CONFIRMED.getCode().equals(str)) { + map.put("CONFIRM_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", map.get("approval_person")); + } + } + } + }); + + return mapList; } @@ -206,7 +245,7 @@ }); //若安装位号不为空,检查是否存在 if (ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())) { - List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject()); + List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject(),deviceImportDTO.getDeptid()); if (null == ledgerIds || ledgerIds.size() < 1) { list.add("第" + index[0] + "行,安装位号不存在!"); return; @@ -226,8 +265,9 @@ List busDeviceLedgers = new ArrayList<>(); busDeviceList.forEach(device -> { - busDeviceLedgers.add(new BusDeviceLedger(device.getId(), device.getDeviceType(), device.getWatchObject())); - + for(Long ledgerId:device.getLedgerIds()){ + busDeviceLedgers.add(new BusDeviceLedger(device.getId(), ledgerId, device.getWatchObject())); + } }); if (CollectionUtil.isNotEmpty(busDeviceLedgers)) { this.busDeviceLedgerService.saveBatch(busDeviceLedgers); @@ -266,4 +306,19 @@ return String.join("/", nameList); } + + @Override + public List offLineAnalysis(CommonRequestDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("OFF_LINE_TIME", requestDTO.getBegTime()); + queryWrapper.le("OFF_LINE_TIME", requestDTO.getEndTime()); + queryWrapper.eq("DEVCODE", requestDTO.getDevcode()); + List offLineAnalysisList = iOffLineAnalysisService.list(queryWrapper); + offLineAnalysisList.forEach(offLineAnalysis -> { + if (ObjectUtil.isAllNotEmpty(offLineAnalysis.getOnLineTime(), offLineAnalysis.getOffLineTime())) { + offLineAnalysis.setOffDays(DateUtil.between(offLineAnalysis.getOffLineTime(), offLineAnalysis.getOnLineTime(), DateUnit.DAY)); + } + }); + return offLineAnalysisList; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java index 2a31a2e..d9a0a25 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java @@ -78,9 +78,9 @@ return this.baseMapper.updateById(busLedger)>0?true:false; } - public List ledgerIdsByTagNumber(String tagNumber, String type) { + public List ledgerIdsByTagNumber(String tagNumber, String type,Long deptid) { - return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type); + return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type,deptid); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java new file mode 100644 index 0000000..4df2db6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.device.dao.OffLineAnalysisMapper; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; +import com.casic.missiles.modular.device.service.IOffLineAnalysisService; +import org.springframework.stereotype.Service; + +/** + *

+ * 离线分析 服务实现类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Service +public class OffLineAnalysisServiceImpl extends ServiceImpl implements IOffLineAnalysisService { + +} diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java index 54124d9..5ce8fc2 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java @@ -34,20 +34,22 @@ @XxlJob("suspendExpireJobHandler") public void suspendExpireJobHandler() { XxlJobHelper.log("check suspend expire"); - Date today = getTodayStart(); +// Date today = getTodayStart(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lt("EXPIRE_TIME", today); + queryWrapper.lt("EXPIRE_TIME", new Date()); queryWrapper.eq("VALID", "1"); List suspendLogList = iSuspendLogService.list(queryWrapper); - suspendLogList.forEach(suspendLog -> { - suspendLog.setValid("0"); - }); - iSuspendLogService.updateBatchById(suspendLogList); - //更新最新状态 - List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); - List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); - //添加流转日志 - iApprovalLogService.saveSuspendLogs(alarmRecordsList); + if (suspendLogList != null && suspendLogList.size() > 0) { + suspendLogList.forEach(suspendLog -> { + suspendLog.setValid("0"); + }); + iSuspendLogService.updateBatchById(suspendLogList); + //更新最新状态 + List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); + List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); + //添加流转日志 + iApprovalLogService.saveSuspendLogs(alarmRecordsList); + } } private Date getTodayStart() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 8e219e7..a546cca 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,8 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "当前报警记录"), ALARM_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "历史报警记录"), + ALARM_DEVICE_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备正在报警记录"), + ALARM_DEVICE_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备历史报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), REPAIR_LOG_EXPORT("repairLog", "repairLog", "厂商运维记录"), diff --git a/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java new file mode 100644 index 0000000..c25a157 --- /dev/null +++ b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java @@ -0,0 +1,219 @@ +package com.casic.missiles.util; + + +public class LonlatConver { +// public static void main(String[] args) { +// Double lat = 116.078682; +// Double lon = 27.751289; +// double[] doubleArr1 = wgs84_To_Gcj02(lat, lon); +// System.out.println(doubleArr1[0]+"===="+doubleArr1[1]); +// double[] doubleArr = gcj02_To_Bd09(doubleArr1[0], doubleArr1[1]); +//// double[] doubleArr = gcj02_To_Bd09(lat, lon); +// System.out.println(doubleArr[0]+"===="+doubleArr[1]); +// +// double[] doubleArr2 = gcj02_To_Wgs84(lat, lon); +// System.out.println(doubleArr2[0]+""+"===="+doubleArr2[1]+""); +// +// } + + /** + * a + */ + public final static double a = 6378245.0; + /** + * ee + */ + public final static double ee = 0.00669342162296594323; + + //圆周率 GCJ_02_To_WGS_84 + public final static double pi = 3.14159265358979324; + /** + * @Description WGS84 to 火星坐标系 (GCJ-02) + * @param lon 经度 + * @param lat 纬度 + * @return + */ + public static double[] wgs84_To_Gcj02(double lon, double lat) { + if (outOfChina(lat, lon)) { + return null; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLon, mgLat }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to WGS84 + * @param lon + * @param lat + * @return + */ + public static double[] gcj02_To_Wgs84(double lon, double lat) { + double[] gps = transform(lat, lon); + double lontitude = lon * 2 - gps[1]; + double latitude = lat * 2 - gps[0]; + return new double[] { lontitude, latitude }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to 百度坐标系 (BD-09) + * @param gg_lon + * @param gg_lat + * @return + */ + public static double[] gcj02_To_Bd09(double gg_lon, double gg_lat) { + double x = gg_lon, y = gg_lat; + double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * pi); + double bd_lon = z * Math.cos(theta) + 0.0065; + double bd_lat = z * Math.sin(theta) + 0.006; + return new double[] { bd_lon, bd_lat }; + } + + /** + * @Description 百度坐标系 (BD-09) to 火星坐标系 (GCJ-02) + * @param bd_lon + * @param bd_lat + * @return + */ + public static double[] bd09_To_Gcj02(double bd_lon, double bd_lat) { + double x = bd_lon - 0.0065, y = bd_lat - 0.006; + double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * pi); + double gg_lon = z * Math.cos(theta); + double gg_lat = z * Math.sin(theta); + return new double[] { gg_lon, gg_lat }; + } + /** + * @Description 百度坐标系 (BD-09) to WGS84 + * @param bd_lat + * @param bd_lon + * @return + */ + public static double[] bd09_To_Wgs84(double bd_lon,double bd_lat) { + + double[] gcj02 = LonlatConver.bd09_To_Gcj02(bd_lon, bd_lat); + double[] map84 = LonlatConver.gcj02_To_Wgs84(gcj02[0], gcj02[1]); + return map84; + + } + + /** + * @Description 判断是否在中国范围内 + * @param lat + * @param lon + * @return + */ + public static boolean outOfChina(double lat, double lon) { + if (lon < 72.004 || lon > 137.8347) + return true; + if (lat < 0.8293 || lat > 55.8271) + return true; + return false; + } + + /** + * @Description transform + * @param lat + * @param lon + * @return + */ + private static double[] transform(double lat, double lon) { + if (outOfChina(lat, lon)) { + return new double[] { lat, lon }; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLat, mgLon }; + } + + /** + * @Description transformLat + * @param x + * @param y + * @return + */ + private static double transformLat(double x, double y) { + double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + + 0.2 * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0; + ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0; + return ret; + } + + /** + * @Description transformLon + * @param x + * @param y + * @return + */ + public static double transformLon(double x, double y) { + double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 + * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0; + ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 + * pi)) * 2.0 / 3.0; + return ret; + } + + /** + * GPS经纬度转换为 度(3114.1717,12122.1067 → 121.37300779,31.23436014) + * @param dms 坐标 + * @param type 坐标类型 E/N + * @return String 解析后的经纬度 + */ + public static String gpsToWgs84(String dms, String type) { + if (dms == null || dms.equals("")) { + return "0.0"; + } + double result = 0.0D; + String temp = ""; + + if (type.equals("E")) {//经度 + String e1 = dms.substring(0, 3);//截取3位数字,经度共3位,最多180度 + //经度是一伦敦为点作南北两极的线为0度,所有往西和往东各180度 + String e2 = dms.substring(3, dms.length());//需要运算的小数 + + result = Double.parseDouble(e1); +/* System.out.println("e2===="+e2); + System.out.println("===="+Double.parseDouble(e2) / 60.0D);*/ + result += (Double.parseDouble(e2) / 60.0D); + temp = String.valueOf(result); + if (temp.length() > 11) { + temp = e1 + temp.substring(temp.indexOf("."), 11); + } + } else if (type.equals("N")) { //纬度,纬度是以赤道为基准,相当于把地球分两半,两个半球面上的点和平面夹角0~90度 + String n1 = dms.substring(0, 2);//截取2位,纬度共2位,最多90度 + String n2 = dms.substring(2, dms.length()); + + result = Double.parseDouble(n1); +/* System.out.println("n2===="+n2); + System.out.println("===="+Double.parseDouble(n2) / 60.0D);*/ + result += Double.parseDouble(n2) / 60.0D; + temp = String.valueOf(result); + if (temp.length() > 10) { + temp = n1 + temp.substring(temp.indexOf("."), 10); + } + } + return temp; + } + +} diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java index 74ad131..4f5bc46 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.sensorHub.controller; +import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.sensorHub.resolver.ResponseResolver; import com.casic.missiles.util.ReturnUtil; @@ -28,10 +29,11 @@ @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - log.info(">>>>>>接收数<<<<<<:" + map.get("jsonData").toString()); threadPoolExecutor.execute( () -> { - ResponseResolver.makeResponse(map.get("jsonData").toString()); + String receiveData = JSON.toJSONString(map); + log.info(">>>>>>接收数<<<<<<:" + receiveData); + ResponseResolver.makeResponse(receiveData); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java index fc9d763..e13de3d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java @@ -65,7 +65,7 @@ //策略配置 .strategyConfig(builder -> { - builder.addInclude("bus_ledger_pipe","data_gas","data_pan_gas","data_monitor_pipe_other","data_tube_other") // 设置需要生成的表名 + builder.addInclude("track_log") // 设置需要生成的表名 .addTablePrefix() // 设置过滤表前缀 .entityBuilder() //实体类配置 .enableLombok() //使用lombok diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 281f5c1..5f126c7 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -49,7 +49,7 @@ # 此执行器的名称 appname: casic-iot-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 192.168.42.147 + ip: 192.168.1.116 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-iot diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index 79cdcb5..af079cc 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -2,6 +2,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +12,9 @@ import com.casic.missiles.core.application.service.AbstractDeptService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dto.*; @@ -42,6 +46,7 @@ private final IBusDeviceLedgerService busDeviceLedgerService; private final IBusDeviceLogService iBusDeviceLogService; + private final IOffLineAnalysisService iOffLineAnalysisService; private final AbstractDictService abstractDictService; private final AbstractDeptService abstractDeptService; private final IBaseProductService baseProductService; @@ -77,6 +82,7 @@ busDeviceList.forEach(busDevice -> { busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject())); busDevice.setValidName(abstractDictService.getDictNameByCode("useStatus", busDevice.getValid())); + busDevice.setOnlineState("0".equals(busDevice.getOnlineState())?"离线":"在线"); if (ObjectUtil.isNotEmpty(busDevice.getDeptid())) busDevice.setDeptName(getDeptNamesByDeptId(busDevice.getDeptid())); }); @@ -107,7 +113,40 @@ @Override public List> alarmRecords(AlarmRecordsRequestDTO requestDTO) { - return this.baseMapper.alarmRecords(requestDTO); + List> mapList = this.baseMapper.alarmRecords(requestDTO); + mapList.forEach(map -> { + map.put("PROCESS_STATUS_NAME", ApprovalStatusEnum.PROCESSED.getValue()); + String flowStatus = null != map.get("FLOW_STATUS") ? map.get("FLOW_STATUS").toString() : ""; + String descn = null != map.get("DESCN") ? map.get("DESCN").toString() : ""; + String processPerson = null != map.get("approval_person") ? map.get("approval_person").toString() : ""; + map.put("PROCESS_MSG", ""); + map.put("CONFIRM_MSG", ""); + map.put("PROCESS_PERSON", ""); + if (ObjectUtil.isNotEmpty(flowStatus)) { + String[] flowStatusArr = flowStatus.split(","); + String[] processPersonArr = processPerson.split(","); + String[] descnArr = descn.split("_"); + for (String str : flowStatusArr) { + if (ApprovalStatusEnum.PROCESSED.getCode().equals(str)) { + //设备异常无现场确认状态 + if ("1".equals(map.get("EXCEPTION_TYPE").toString())) { + map.put("PROCESS_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + } else { + map.put("PROCESS_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[1] : ""); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + map.put("CONFIRM_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[0] : ""); + } + + } else if (ApprovalStatusEnum.CONFIRMED.getCode().equals(str)) { + map.put("CONFIRM_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", map.get("approval_person")); + } + } + } + }); + + return mapList; } @@ -206,7 +245,7 @@ }); //若安装位号不为空,检查是否存在 if (ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())) { - List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject()); + List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject(),deviceImportDTO.getDeptid()); if (null == ledgerIds || ledgerIds.size() < 1) { list.add("第" + index[0] + "行,安装位号不存在!"); return; @@ -226,8 +265,9 @@ List busDeviceLedgers = new ArrayList<>(); busDeviceList.forEach(device -> { - busDeviceLedgers.add(new BusDeviceLedger(device.getId(), device.getDeviceType(), device.getWatchObject())); - + for(Long ledgerId:device.getLedgerIds()){ + busDeviceLedgers.add(new BusDeviceLedger(device.getId(), ledgerId, device.getWatchObject())); + } }); if (CollectionUtil.isNotEmpty(busDeviceLedgers)) { this.busDeviceLedgerService.saveBatch(busDeviceLedgers); @@ -266,4 +306,19 @@ return String.join("/", nameList); } + + @Override + public List offLineAnalysis(CommonRequestDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("OFF_LINE_TIME", requestDTO.getBegTime()); + queryWrapper.le("OFF_LINE_TIME", requestDTO.getEndTime()); + queryWrapper.eq("DEVCODE", requestDTO.getDevcode()); + List offLineAnalysisList = iOffLineAnalysisService.list(queryWrapper); + offLineAnalysisList.forEach(offLineAnalysis -> { + if (ObjectUtil.isAllNotEmpty(offLineAnalysis.getOnLineTime(), offLineAnalysis.getOffLineTime())) { + offLineAnalysis.setOffDays(DateUtil.between(offLineAnalysis.getOffLineTime(), offLineAnalysis.getOnLineTime(), DateUnit.DAY)); + } + }); + return offLineAnalysisList; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java index 2a31a2e..d9a0a25 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java @@ -78,9 +78,9 @@ return this.baseMapper.updateById(busLedger)>0?true:false; } - public List ledgerIdsByTagNumber(String tagNumber, String type) { + public List ledgerIdsByTagNumber(String tagNumber, String type,Long deptid) { - return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type); + return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type,deptid); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java new file mode 100644 index 0000000..4df2db6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.device.dao.OffLineAnalysisMapper; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; +import com.casic.missiles.modular.device.service.IOffLineAnalysisService; +import org.springframework.stereotype.Service; + +/** + *

+ * 离线分析 服务实现类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Service +public class OffLineAnalysisServiceImpl extends ServiceImpl implements IOffLineAnalysisService { + +} diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java index 54124d9..5ce8fc2 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java @@ -34,20 +34,22 @@ @XxlJob("suspendExpireJobHandler") public void suspendExpireJobHandler() { XxlJobHelper.log("check suspend expire"); - Date today = getTodayStart(); +// Date today = getTodayStart(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lt("EXPIRE_TIME", today); + queryWrapper.lt("EXPIRE_TIME", new Date()); queryWrapper.eq("VALID", "1"); List suspendLogList = iSuspendLogService.list(queryWrapper); - suspendLogList.forEach(suspendLog -> { - suspendLog.setValid("0"); - }); - iSuspendLogService.updateBatchById(suspendLogList); - //更新最新状态 - List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); - List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); - //添加流转日志 - iApprovalLogService.saveSuspendLogs(alarmRecordsList); + if (suspendLogList != null && suspendLogList.size() > 0) { + suspendLogList.forEach(suspendLog -> { + suspendLog.setValid("0"); + }); + iSuspendLogService.updateBatchById(suspendLogList); + //更新最新状态 + List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); + List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); + //添加流转日志 + iApprovalLogService.saveSuspendLogs(alarmRecordsList); + } } private Date getTodayStart() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 8e219e7..a546cca 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,8 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "当前报警记录"), ALARM_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "历史报警记录"), + ALARM_DEVICE_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备正在报警记录"), + ALARM_DEVICE_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备历史报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), REPAIR_LOG_EXPORT("repairLog", "repairLog", "厂商运维记录"), diff --git a/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java new file mode 100644 index 0000000..c25a157 --- /dev/null +++ b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java @@ -0,0 +1,219 @@ +package com.casic.missiles.util; + + +public class LonlatConver { +// public static void main(String[] args) { +// Double lat = 116.078682; +// Double lon = 27.751289; +// double[] doubleArr1 = wgs84_To_Gcj02(lat, lon); +// System.out.println(doubleArr1[0]+"===="+doubleArr1[1]); +// double[] doubleArr = gcj02_To_Bd09(doubleArr1[0], doubleArr1[1]); +//// double[] doubleArr = gcj02_To_Bd09(lat, lon); +// System.out.println(doubleArr[0]+"===="+doubleArr[1]); +// +// double[] doubleArr2 = gcj02_To_Wgs84(lat, lon); +// System.out.println(doubleArr2[0]+""+"===="+doubleArr2[1]+""); +// +// } + + /** + * a + */ + public final static double a = 6378245.0; + /** + * ee + */ + public final static double ee = 0.00669342162296594323; + + //圆周率 GCJ_02_To_WGS_84 + public final static double pi = 3.14159265358979324; + /** + * @Description WGS84 to 火星坐标系 (GCJ-02) + * @param lon 经度 + * @param lat 纬度 + * @return + */ + public static double[] wgs84_To_Gcj02(double lon, double lat) { + if (outOfChina(lat, lon)) { + return null; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLon, mgLat }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to WGS84 + * @param lon + * @param lat + * @return + */ + public static double[] gcj02_To_Wgs84(double lon, double lat) { + double[] gps = transform(lat, lon); + double lontitude = lon * 2 - gps[1]; + double latitude = lat * 2 - gps[0]; + return new double[] { lontitude, latitude }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to 百度坐标系 (BD-09) + * @param gg_lon + * @param gg_lat + * @return + */ + public static double[] gcj02_To_Bd09(double gg_lon, double gg_lat) { + double x = gg_lon, y = gg_lat; + double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * pi); + double bd_lon = z * Math.cos(theta) + 0.0065; + double bd_lat = z * Math.sin(theta) + 0.006; + return new double[] { bd_lon, bd_lat }; + } + + /** + * @Description 百度坐标系 (BD-09) to 火星坐标系 (GCJ-02) + * @param bd_lon + * @param bd_lat + * @return + */ + public static double[] bd09_To_Gcj02(double bd_lon, double bd_lat) { + double x = bd_lon - 0.0065, y = bd_lat - 0.006; + double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * pi); + double gg_lon = z * Math.cos(theta); + double gg_lat = z * Math.sin(theta); + return new double[] { gg_lon, gg_lat }; + } + /** + * @Description 百度坐标系 (BD-09) to WGS84 + * @param bd_lat + * @param bd_lon + * @return + */ + public static double[] bd09_To_Wgs84(double bd_lon,double bd_lat) { + + double[] gcj02 = LonlatConver.bd09_To_Gcj02(bd_lon, bd_lat); + double[] map84 = LonlatConver.gcj02_To_Wgs84(gcj02[0], gcj02[1]); + return map84; + + } + + /** + * @Description 判断是否在中国范围内 + * @param lat + * @param lon + * @return + */ + public static boolean outOfChina(double lat, double lon) { + if (lon < 72.004 || lon > 137.8347) + return true; + if (lat < 0.8293 || lat > 55.8271) + return true; + return false; + } + + /** + * @Description transform + * @param lat + * @param lon + * @return + */ + private static double[] transform(double lat, double lon) { + if (outOfChina(lat, lon)) { + return new double[] { lat, lon }; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLat, mgLon }; + } + + /** + * @Description transformLat + * @param x + * @param y + * @return + */ + private static double transformLat(double x, double y) { + double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + + 0.2 * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0; + ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0; + return ret; + } + + /** + * @Description transformLon + * @param x + * @param y + * @return + */ + public static double transformLon(double x, double y) { + double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 + * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0; + ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 + * pi)) * 2.0 / 3.0; + return ret; + } + + /** + * GPS经纬度转换为 度(3114.1717,12122.1067 → 121.37300779,31.23436014) + * @param dms 坐标 + * @param type 坐标类型 E/N + * @return String 解析后的经纬度 + */ + public static String gpsToWgs84(String dms, String type) { + if (dms == null || dms.equals("")) { + return "0.0"; + } + double result = 0.0D; + String temp = ""; + + if (type.equals("E")) {//经度 + String e1 = dms.substring(0, 3);//截取3位数字,经度共3位,最多180度 + //经度是一伦敦为点作南北两极的线为0度,所有往西和往东各180度 + String e2 = dms.substring(3, dms.length());//需要运算的小数 + + result = Double.parseDouble(e1); +/* System.out.println("e2===="+e2); + System.out.println("===="+Double.parseDouble(e2) / 60.0D);*/ + result += (Double.parseDouble(e2) / 60.0D); + temp = String.valueOf(result); + if (temp.length() > 11) { + temp = e1 + temp.substring(temp.indexOf("."), 11); + } + } else if (type.equals("N")) { //纬度,纬度是以赤道为基准,相当于把地球分两半,两个半球面上的点和平面夹角0~90度 + String n1 = dms.substring(0, 2);//截取2位,纬度共2位,最多90度 + String n2 = dms.substring(2, dms.length()); + + result = Double.parseDouble(n1); +/* System.out.println("n2===="+n2); + System.out.println("===="+Double.parseDouble(n2) / 60.0D);*/ + result += Double.parseDouble(n2) / 60.0D; + temp = String.valueOf(result); + if (temp.length() > 10) { + temp = n1 + temp.substring(temp.indexOf("."), 10); + } + } + return temp; + } + +} diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java index 74ad131..4f5bc46 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.sensorHub.controller; +import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.sensorHub.resolver.ResponseResolver; import com.casic.missiles.util.ReturnUtil; @@ -28,10 +29,11 @@ @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - log.info(">>>>>>接收数<<<<<<:" + map.get("jsonData").toString()); threadPoolExecutor.execute( () -> { - ResponseResolver.makeResponse(map.get("jsonData").toString()); + String receiveData = JSON.toJSONString(map); + log.info(">>>>>>接收数<<<<<<:" + receiveData); + ResponseResolver.makeResponse(receiveData); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java index fc9d763..e13de3d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java @@ -65,7 +65,7 @@ //策略配置 .strategyConfig(builder -> { - builder.addInclude("bus_ledger_pipe","data_gas","data_pan_gas","data_monitor_pipe_other","data_tube_other") // 设置需要生成的表名 + builder.addInclude("track_log") // 设置需要生成的表名 .addTablePrefix() // 设置过滤表前缀 .entityBuilder() //实体类配置 .enableLombok() //使用lombok diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 281f5c1..5f126c7 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -49,7 +49,7 @@ # 此执行器的名称 appname: casic-iot-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 192.168.42.147 + ip: 192.168.1.116 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-iot diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx index 5423294..8611b72 100644 --- a/casic-web/src/main/resources/config/temp/device_template.xlsx +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java index 1196323..af4fcc1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -54,13 +54,12 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page, request, dataScope))); } - @ApiOperation("导出设备报警列表,待优化") + @ApiOperation("导出设备报警列表") @RequestMapping(value = "/batchExportDeviceAlarmList", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { - DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmList(request); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, DeviceAlarmResponseDTO.class, dtoList, ExportEnum.ALARM_DEVICE_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } @@ -78,19 +77,18 @@ return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmHistoryListPage(page, request, dataScope))); } - @ApiOperation("导出设备历史报警列表,待优化") + @ApiOperation("导出设备历史报警列表") @RequestMapping(value = "/batchExportDeviceAlarmHistoryList", method = RequestMethod.GET) - public void batchDeviceAlarmHistoryList(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchDeviceAlarmHistoryList(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); - List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); + List dtoList = iAlarmRecordsService.batchExportDeviceAlarmHistoryList(request, dataScope); try { - iBaseExportService.exportExcel(response, AlarmHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_HISTORY_EXPORT.getSheetName()); + iBaseExportService.exportExcel(response, AlarmDeviceHistoryRecordExportDTO.class, dtoList, ExportEnum.ALARM_DEVICE_HISTORY_EXPORT.getSheetName()); } catch (Exception e) { e.printStackTrace(); } } - @ApiOperation("查看") @PostMapping("/deviceAlarmView") @ResponseBody @@ -111,7 +109,6 @@ return ReturnUtil.success(iAlarmRecordsService.deviceAlarmDetail(idDTO.getId())); } - @ApiOperation("批量删除") @PostMapping("/batchDelete") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java index 8ff7872..a939800 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java @@ -77,7 +77,7 @@ @ApiOperation("导出历史报警记录") @RequestMapping(value = "/batchExportHistory", method = RequestMethod.GET) - public void batchExportHistory(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExportHistory(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.batchExportHistory(request, dataScope); try { @@ -90,7 +90,7 @@ @ApiOperation("导出当前告警记录") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmRecordDTO request, HttpServletResponse response) { + public void batchExport(AlarmRecordDTO request, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); List dtoList = iAlarmRecordsService.allList(request, dataScope); try { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java index 7dcae94..41f4b09 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java @@ -85,7 +85,7 @@ @ApiOperation("异常位置分析导出") @RequestMapping(value = "/batchExport", method = RequestMethod.GET) - public void batchExport(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { + public void batchExport(AlarmPositionRequestDTO alarmPositionRequestDTO, HttpServletResponse response) { DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); String alarmType = ""; List dtoList = iAlarmStaticsService.alarmPosition(alarmType, dataScope.getDeptIds(), alarmPositionRequestDTO); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 91a9c9b..5888ceb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -24,13 +24,17 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("dataScope") DataScope dataScope, @Param("deptIdStr") String deptIdStr); + Page tracksList(Page page, @Param("request") TrackRequestDTO request, @Param("deptIdStr") String deptIdStr); - Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); - Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + Page deviceAlarmHistoryListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); - Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope,@Param("deptIdStr") String deptIdStr); + List batchExportDeviceAlarmHistoryList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + List batchExportDeviceAlarmList(@Param("request") AlarmRecordDTO request, @Param("deptIdStr") String deptIdStr); + + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request,@Param("deptIdStr") String deptIdStr); Map view(@Param("id") Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java index c498a4b..dcfa83e 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRuleMapper.java @@ -24,7 +24,7 @@ public interface AlarmRuleMapper extends BaseMapper { @Select(" select ar.ALARM_LEVEL_ID as alarmLevelId ,ar.PRODUCT_ID as productId ,ar.ALARM_THRESHOLD as alarmThreshold,ar.ALARM_TYPE_ID as alarmTypeId,ar.ALARM_NAME as alarmTypeName from alarm_rule ar where ar.PRODUCT_ID in(SELECT bd.PRODUCT_ID FROM `bus_device` bd " + - " where bd.DEVCODE= ${devCode} and bd.VALID=1 " + + " where bd.DEVCODE= #{devCode} and bd.VALID=1 " + ") and ar.ALARM_JUDGE_METHOD=1 order by ALARM_THRESHOLD desc") List getRuleListByCode(@Param("devCode") String devCode); @@ -40,8 +40,8 @@ " alarm_rule ar " + " LEFT JOIN alarm_type t ON t.id = ar.ALARM_TYPE_ID " + "WHERE " + - " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = ${devCode} ) " + - " AND ar.ALARM_JUDGE_METHOD = 1") + " ar.PRODUCT_ID IN ( SELECT bd.PRODUCT_ID FROM bus_device bd WHERE bd.VALID = 1 AND DEVCODE = #{devCode} ) " + + " AND ar.ALARM_JUDGE_METHOD = 0") List getDeviceAlarmRuleByCode(@Param("devCode") String devCode); Page pageList(Page page, @Param("request") AlarmRuleRequestDTO request); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml index 79af220..cd73e55 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRecordsMapper.xml @@ -30,6 +30,8 @@ bt.TYPE_NAME AS devTypeName, rd.LEDGER_NUMBER as tagNumber, lr.DEPTID as deptid, + lr.lngGaode as lngGaode, + lr.latGaode as latGaode, ay.ALARM_TYPE, ay.ALARM_CATEGORY, ac.ALARM_LEVEL as alarmLevelName @@ -123,13 +125,67 @@ and lr.DEPTID in (${deptIdStr}) - - and bp.MANUFACTURER_ID =#{request.manufactureId} + + and bp.MANUFACTURER_ID =#{request.manufacturerId} ORDER BY rd.ALARM_TIME DESC + + + + - WITH alarm_temp AS ( SELECT ar.DEVCODE, ar.LONGITUDE_LATITUDE, ar.ALARM_TIME, ar.LEDGER_CODE FROM `alarm_records` ar - WHERE ar.LONGITUDE_LATITUDE > 0 + WITH alarm_temp AS ( SELECT tl.DEVCODE, CONCAT(tl.LNG_GAODE,',',tl.LAT_GAODE) as LONGITUDE_LATITUDE, tl.UP_TIME FROM `track_log` tl + WHERE 1=1 - and ar.DEVCODE like concat('%', #{request.devCode}, '%') + and tl.DEVCODE like concat('%', #{request.devCode}, '%') - and ar.ALARM_TIME >= #{request.begTime} + and tl.UP_TIME >= #{request.begTime} - and ar.ALARM_TIME #{request.endTime} + and tl.UP_TIME #{request.endTime} ) SELECT ap.DEVCODE, ap.LONGITUDE_LATITUDE AS startPosition, - ap.ALARM_TIME AS createTime, + ap.UP_TIME AS createTime, bv.lngGaode, bv.latGaode, bv.DEPTID, @@ -446,7 +561,8 @@ JOIN alarm_temp ap ON ap.DEVCODE = bd.DEVCODE AND bd.valid > 0 JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - JOIN bus_ledger_all_view bv ON bv.ledgerCode = ap.LEDGER_CODE + JOIN bus_device_ledger bl on bl.DEVICE_ID = bd.id and bl.TYPE= bd.WATCH_OBJECT + JOIN bus_ledger_all_view bv ON bl.LEDGER_ID = bv.id and bl.TYPE = bv.TYPE @@ -458,7 +574,7 @@ - ORDER BY ap.ALARM_TIME DESC + ORDER BY ap.UP_TIME DESC WITH approval_log_temp as ( SELECT - t1.approval_person,t1.alarm_id,t1.APPROVAL_TIME,t1.DESCN,t1.FLOW_STATUS,t1.APPROVAL_PERSON_ID + GROUP_CONCAT( t1.approval_person ) AS approval_person, + t1.alarm_id, + GROUP_CONCAT( t1.DESCN SEPARATOR '_' ) AS DESCN, + GROUP_CONCAT( t1.FLOW_STATUS ) as FLOW_STATUS FROM approval_log t1 - INNER JOIN ( SELECT max( id ) As id from approval_log t2 group by alarm_id ) t2 oN t1.id = t2.id + WHERE + t1.FLOW_STATUS >= 5 + and t1.FLOW_STATUS 7 + GROUP BY + alarm_id ) SELECT - ar.*, alt.approval_person,alt.DESCN + ar.*, + alt.approval_person, + alt.DESCN, + alt.FLOW_STATUS, + ae.ALARM_TYPE, + ac.ALARM_LEVEL as ALARM_LEVEL_NAME FROM `alarm_records` ar left JOIN approval_log_temp alt on alt.alarm_id=ar.id + left join alarm_type ae on ae.id= ar.ALARM_TYPE_ID + left join alarm_level_control ac on ac.id= ar.ALARM_LEVEL diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml new file mode 100644 index 0000000..3174f31 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/OffLineAnalysisMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + ID, ALARM_ID, OFF_REASON, APPROVAL_MSG, OFF_LINE_TIME, ON_LINE_TIME + + + diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java index fcf777f..afc2d71 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java @@ -29,6 +29,9 @@ @ExcelProperty("在用情况") private String valid; + @ExcelProperty("管理单位") + private Long deptid; + private String watchObject; private Long deviceType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java new file mode 100644 index 0000000..e2eb40e --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DeviceAlarmsResponseDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmsResponseDTO { + + @ApiModelProperty("报警id") + private Long id; + + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("报警等级") + private String alarmLevel; + + + @ApiModelProperty("报警状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + + @ApiModelProperty("解除时间") + private String cancelTime; + + @ApiModelProperty("现场确认情况") + private String confirmMsg; + + @ApiModelProperty("现场处置情况") + private String processMsg; + + @ApiModelProperty("处置人员") + private String processPerson; + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java index 9d6ddce..2d6ed77 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.entity; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -26,6 +27,7 @@ */ @Getter @Setter +@ExcelIgnoreUnannotated @TableName("bus_device") @ApiModel(value = "BusDevice对象", description = "设备管理 ") public class BusDevice implements Serializable { diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java new file mode 100644 index 0000000..388af5b --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/OffLineAnalysis.java @@ -0,0 +1,64 @@ +package com.casic.missiles.modular.device.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 设备离线分析 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Getter +@Setter +@TableName("off_line_analysis") +@ApiModel(value = "OffLineAnalysis对象", description = "协议管理 ") +public class OffLineAnalysis implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(value = "ID", type = IdType.AUTO) + private Long id; + + @ApiModelProperty("报警id") + @TableField("ALARM_ID") + private Long alarmId; + + @ApiModelProperty("设备编号") + @TableField("DEVCODE") + private String devcode; + + @ApiModelProperty("离线原因") + @TableField("OFF_REASON") + private String offReason; + + @ApiModelProperty("处置情况") + @TableField("APPROVAL_MSG") + private String approvalMsg; + + @ApiModelProperty("离线时间") + @TableField("OFF_LINE_TIME") + private Date offLineTime; + + @ApiModelProperty("恢复时间") + @TableField("ON_LINE_TIME") + private Date onLineTime; + + @ApiModelProperty("离线天数") + @TableField("offDays") + private Long offDays; + + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java index 47482eb..5b79134 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.device.entity.BusDevice; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; import java.util.List; import java.util.Map; @@ -37,5 +38,7 @@ List addDeviceBatch(List results); + List offLineAnalysis(CommonRequestDTO requestDTO); + } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java index 8ff240d..5f5f4f2 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java @@ -23,7 +23,7 @@ Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope); - List ledgerIdsByTagNumber(String tagNumber,String type); + List ledgerIdsByTagNumber(String tagNumber,String type,Long deptid); boolean addRemark(BusLedgerDTO request); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java new file mode 100644 index 0000000..e186bba --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IOffLineAnalysisService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; + +/** + *

+ * 协议管理 服务类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +public interface IOffLineAnalysisService extends IService { + +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java index 79cdcb5..af079cc 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java @@ -2,6 +2,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +12,9 @@ import com.casic.missiles.core.application.service.AbstractDeptService; import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.DeviceDataEnum; +import com.casic.missiles.enums.DictEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dao.BusDeviceMapper; import com.casic.missiles.modular.device.dto.*; @@ -42,6 +46,7 @@ private final IBusDeviceLedgerService busDeviceLedgerService; private final IBusDeviceLogService iBusDeviceLogService; + private final IOffLineAnalysisService iOffLineAnalysisService; private final AbstractDictService abstractDictService; private final AbstractDeptService abstractDeptService; private final IBaseProductService baseProductService; @@ -77,6 +82,7 @@ busDeviceList.forEach(busDevice -> { busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject())); busDevice.setValidName(abstractDictService.getDictNameByCode("useStatus", busDevice.getValid())); + busDevice.setOnlineState("0".equals(busDevice.getOnlineState())?"离线":"在线"); if (ObjectUtil.isNotEmpty(busDevice.getDeptid())) busDevice.setDeptName(getDeptNamesByDeptId(busDevice.getDeptid())); }); @@ -107,7 +113,40 @@ @Override public List> alarmRecords(AlarmRecordsRequestDTO requestDTO) { - return this.baseMapper.alarmRecords(requestDTO); + List> mapList = this.baseMapper.alarmRecords(requestDTO); + mapList.forEach(map -> { + map.put("PROCESS_STATUS_NAME", ApprovalStatusEnum.PROCESSED.getValue()); + String flowStatus = null != map.get("FLOW_STATUS") ? map.get("FLOW_STATUS").toString() : ""; + String descn = null != map.get("DESCN") ? map.get("DESCN").toString() : ""; + String processPerson = null != map.get("approval_person") ? map.get("approval_person").toString() : ""; + map.put("PROCESS_MSG", ""); + map.put("CONFIRM_MSG", ""); + map.put("PROCESS_PERSON", ""); + if (ObjectUtil.isNotEmpty(flowStatus)) { + String[] flowStatusArr = flowStatus.split(","); + String[] processPersonArr = processPerson.split(","); + String[] descnArr = descn.split("_"); + for (String str : flowStatusArr) { + if (ApprovalStatusEnum.PROCESSED.getCode().equals(str)) { + //设备异常无现场确认状态 + if ("1".equals(map.get("EXCEPTION_TYPE").toString())) { + map.put("PROCESS_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + } else { + map.put("PROCESS_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[1] : ""); + map.put("PROCESS_PERSON", null != processPersonArr && processPersonArr.length >= 2 ? processPersonArr[1] : ""); + map.put("CONFIRM_MSG", null != descnArr && descnArr.length >= 2 ? descnArr[0] : ""); + } + + } else if (ApprovalStatusEnum.CONFIRMED.getCode().equals(str)) { + map.put("CONFIRM_MSG", map.get("DESCN")); + map.put("PROCESS_PERSON", map.get("approval_person")); + } + } + } + }); + + return mapList; } @@ -206,7 +245,7 @@ }); //若安装位号不为空,检查是否存在 if (ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())) { - List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject()); + List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(), deviceImportDTO.getWatchObject(),deviceImportDTO.getDeptid()); if (null == ledgerIds || ledgerIds.size() < 1) { list.add("第" + index[0] + "行,安装位号不存在!"); return; @@ -226,8 +265,9 @@ List busDeviceLedgers = new ArrayList<>(); busDeviceList.forEach(device -> { - busDeviceLedgers.add(new BusDeviceLedger(device.getId(), device.getDeviceType(), device.getWatchObject())); - + for(Long ledgerId:device.getLedgerIds()){ + busDeviceLedgers.add(new BusDeviceLedger(device.getId(), ledgerId, device.getWatchObject())); + } }); if (CollectionUtil.isNotEmpty(busDeviceLedgers)) { this.busDeviceLedgerService.saveBatch(busDeviceLedgers); @@ -266,4 +306,19 @@ return String.join("/", nameList); } + + @Override + public List offLineAnalysis(CommonRequestDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.ge("OFF_LINE_TIME", requestDTO.getBegTime()); + queryWrapper.le("OFF_LINE_TIME", requestDTO.getEndTime()); + queryWrapper.eq("DEVCODE", requestDTO.getDevcode()); + List offLineAnalysisList = iOffLineAnalysisService.list(queryWrapper); + offLineAnalysisList.forEach(offLineAnalysis -> { + if (ObjectUtil.isAllNotEmpty(offLineAnalysis.getOnLineTime(), offLineAnalysis.getOffLineTime())) { + offLineAnalysis.setOffDays(DateUtil.between(offLineAnalysis.getOffLineTime(), offLineAnalysis.getOnLineTime(), DateUnit.DAY)); + } + }); + return offLineAnalysisList; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java index 2a31a2e..d9a0a25 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java @@ -78,9 +78,9 @@ return this.baseMapper.updateById(busLedger)>0?true:false; } - public List ledgerIdsByTagNumber(String tagNumber, String type) { + public List ledgerIdsByTagNumber(String tagNumber, String type,Long deptid) { - return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type); + return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type,deptid); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java new file mode 100644 index 0000000..4df2db6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/OffLineAnalysisServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.device.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.device.dao.OffLineAnalysisMapper; +import com.casic.missiles.modular.device.entity.OffLineAnalysis; +import com.casic.missiles.modular.device.service.IOffLineAnalysisService; +import org.springframework.stereotype.Service; + +/** + *

+ * 离线分析 服务实现类 + *

+ * + * @author zt + * @since 2024-09-23 + */ +@Service +public class OffLineAnalysisServiceImpl extends ServiceImpl implements IOffLineAnalysisService { + +} diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java index 54124d9..5ce8fc2 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/SuspendExpireJobHandler.java @@ -34,20 +34,22 @@ @XxlJob("suspendExpireJobHandler") public void suspendExpireJobHandler() { XxlJobHelper.log("check suspend expire"); - Date today = getTodayStart(); +// Date today = getTodayStart(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lt("EXPIRE_TIME", today); + queryWrapper.lt("EXPIRE_TIME", new Date()); queryWrapper.eq("VALID", "1"); List suspendLogList = iSuspendLogService.list(queryWrapper); - suspendLogList.forEach(suspendLog -> { - suspendLog.setValid("0"); - }); - iSuspendLogService.updateBatchById(suspendLogList); - //更新最新状态 - List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); - List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); - //添加流转日志 - iApprovalLogService.saveSuspendLogs(alarmRecordsList); + if (suspendLogList != null && suspendLogList.size() > 0) { + suspendLogList.forEach(suspendLog -> { + suspendLog.setValid("0"); + }); + iSuspendLogService.updateBatchById(suspendLogList); + //更新最新状态 + List alarmIds = suspendLogList.stream().map(SuspendLog::getAlarmId).collect(Collectors.toList()); + List alarmRecordsList = iAlarmRecordsService.changeProcessStatus(alarmIds); + //添加流转日志 + iApprovalLogService.saveSuspendLogs(alarmRecordsList); + } } private Date getTodayStart() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 8e219e7..a546cca 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,8 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "当前报警记录"), ALARM_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "历史报警记录"), + ALARM_DEVICE_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备正在报警记录"), + ALARM_DEVICE_HISTORY_EXPORT("alarmHistoryRecordData", "alarmHistoryRecordData", "设备历史报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), REPAIR_LOG_EXPORT("repairLog", "repairLog", "厂商运维记录"), diff --git a/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java new file mode 100644 index 0000000..c25a157 --- /dev/null +++ b/casic-public/src/main/java/com/casic/missiles/util/LonlatConver.java @@ -0,0 +1,219 @@ +package com.casic.missiles.util; + + +public class LonlatConver { +// public static void main(String[] args) { +// Double lat = 116.078682; +// Double lon = 27.751289; +// double[] doubleArr1 = wgs84_To_Gcj02(lat, lon); +// System.out.println(doubleArr1[0]+"===="+doubleArr1[1]); +// double[] doubleArr = gcj02_To_Bd09(doubleArr1[0], doubleArr1[1]); +//// double[] doubleArr = gcj02_To_Bd09(lat, lon); +// System.out.println(doubleArr[0]+"===="+doubleArr[1]); +// +// double[] doubleArr2 = gcj02_To_Wgs84(lat, lon); +// System.out.println(doubleArr2[0]+""+"===="+doubleArr2[1]+""); +// +// } + + /** + * a + */ + public final static double a = 6378245.0; + /** + * ee + */ + public final static double ee = 0.00669342162296594323; + + //圆周率 GCJ_02_To_WGS_84 + public final static double pi = 3.14159265358979324; + /** + * @Description WGS84 to 火星坐标系 (GCJ-02) + * @param lon 经度 + * @param lat 纬度 + * @return + */ + public static double[] wgs84_To_Gcj02(double lon, double lat) { + if (outOfChina(lat, lon)) { + return null; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLon, mgLat }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to WGS84 + * @param lon + * @param lat + * @return + */ + public static double[] gcj02_To_Wgs84(double lon, double lat) { + double[] gps = transform(lat, lon); + double lontitude = lon * 2 - gps[1]; + double latitude = lat * 2 - gps[0]; + return new double[] { lontitude, latitude }; + } + + /** + * @Description 火星坐标系 (GCJ-02) to 百度坐标系 (BD-09) + * @param gg_lon + * @param gg_lat + * @return + */ + public static double[] gcj02_To_Bd09(double gg_lon, double gg_lat) { + double x = gg_lon, y = gg_lat; + double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * pi); + double bd_lon = z * Math.cos(theta) + 0.0065; + double bd_lat = z * Math.sin(theta) + 0.006; + return new double[] { bd_lon, bd_lat }; + } + + /** + * @Description 百度坐标系 (BD-09) to 火星坐标系 (GCJ-02) + * @param bd_lon + * @param bd_lat + * @return + */ + public static double[] bd09_To_Gcj02(double bd_lon, double bd_lat) { + double x = bd_lon - 0.0065, y = bd_lat - 0.006; + double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * pi); + double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * pi); + double gg_lon = z * Math.cos(theta); + double gg_lat = z * Math.sin(theta); + return new double[] { gg_lon, gg_lat }; + } + /** + * @Description 百度坐标系 (BD-09) to WGS84 + * @param bd_lat + * @param bd_lon + * @return + */ + public static double[] bd09_To_Wgs84(double bd_lon,double bd_lat) { + + double[] gcj02 = LonlatConver.bd09_To_Gcj02(bd_lon, bd_lat); + double[] map84 = LonlatConver.gcj02_To_Wgs84(gcj02[0], gcj02[1]); + return map84; + + } + + /** + * @Description 判断是否在中国范围内 + * @param lat + * @param lon + * @return + */ + public static boolean outOfChina(double lat, double lon) { + if (lon < 72.004 || lon > 137.8347) + return true; + if (lat < 0.8293 || lat > 55.8271) + return true; + return false; + } + + /** + * @Description transform + * @param lat + * @param lon + * @return + */ + private static double[] transform(double lat, double lon) { + if (outOfChina(lat, lon)) { + return new double[] { lat, lon }; + } + double dLat = transformLat(lon - 105.0, lat - 35.0); + double dLon = transformLon(lon - 105.0, lat - 35.0); + double radLat = lat / 180.0 * pi; + double magic = Math.sin(radLat); + magic = 1 - ee * magic * magic; + double sqrtMagic = Math.sqrt(magic); + dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); + dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); + double mgLat = lat + dLat; + double mgLon = lon + dLon; + return new double[] { mgLat, mgLon }; + } + + /** + * @Description transformLat + * @param x + * @param y + * @return + */ + private static double transformLat(double x, double y) { + double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + + 0.2 * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0; + ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0; + return ret; + } + + /** + * @Description transformLon + * @param x + * @param y + * @return + */ + public static double transformLon(double x, double y) { + double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 + * Math.sqrt(Math.abs(x)); + ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; + ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0; + ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 + * pi)) * 2.0 / 3.0; + return ret; + } + + /** + * GPS经纬度转换为 度(3114.1717,12122.1067 → 121.37300779,31.23436014) + * @param dms 坐标 + * @param type 坐标类型 E/N + * @return String 解析后的经纬度 + */ + public static String gpsToWgs84(String dms, String type) { + if (dms == null || dms.equals("")) { + return "0.0"; + } + double result = 0.0D; + String temp = ""; + + if (type.equals("E")) {//经度 + String e1 = dms.substring(0, 3);//截取3位数字,经度共3位,最多180度 + //经度是一伦敦为点作南北两极的线为0度,所有往西和往东各180度 + String e2 = dms.substring(3, dms.length());//需要运算的小数 + + result = Double.parseDouble(e1); +/* System.out.println("e2===="+e2); + System.out.println("===="+Double.parseDouble(e2) / 60.0D);*/ + result += (Double.parseDouble(e2) / 60.0D); + temp = String.valueOf(result); + if (temp.length() > 11) { + temp = e1 + temp.substring(temp.indexOf("."), 11); + } + } else if (type.equals("N")) { //纬度,纬度是以赤道为基准,相当于把地球分两半,两个半球面上的点和平面夹角0~90度 + String n1 = dms.substring(0, 2);//截取2位,纬度共2位,最多90度 + String n2 = dms.substring(2, dms.length()); + + result = Double.parseDouble(n1); +/* System.out.println("n2===="+n2); + System.out.println("===="+Double.parseDouble(n2) / 60.0D);*/ + result += Double.parseDouble(n2) / 60.0D; + temp = String.valueOf(result); + if (temp.length() > 10) { + temp = n1 + temp.substring(temp.indexOf("."), 10); + } + } + return temp; + } + +} diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java index 74ad131..4f5bc46 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/controller/ReceiveDataController.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.sensorHub.controller; +import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.modular.sensorHub.resolver.ResponseResolver; import com.casic.missiles.util.ReturnUtil; @@ -28,10 +29,11 @@ @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - log.info(">>>>>>接收数<<<<<<:" + map.get("jsonData").toString()); threadPoolExecutor.execute( () -> { - ResponseResolver.makeResponse(map.get("jsonData").toString()); + String receiveData = JSON.toJSONString(map); + log.info(">>>>>>接收数<<<<<<:" + receiveData); + ResponseResolver.makeResponse(receiveData); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java index fc9d763..e13de3d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/CodeGenerator.java @@ -65,7 +65,7 @@ //策略配置 .strategyConfig(builder -> { - builder.addInclude("bus_ledger_pipe","data_gas","data_pan_gas","data_monitor_pipe_other","data_tube_other") // 设置需要生成的表名 + builder.addInclude("track_log") // 设置需要生成的表名 .addTablePrefix() // 设置过滤表前缀 .entityBuilder() //实体类配置 .enableLombok() //使用lombok diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 281f5c1..5f126c7 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -49,7 +49,7 @@ # 此执行器的名称 appname: casic-iot-job # 此执行器的ip、端口,每个节点对应自己的ip,端口用于任务执行的通信 - ip: 192.168.42.147 + ip: 192.168.1.116 port: 9999 # 此执行器的日志存放路径 logpath: logs/xxl-job/casic-iot diff --git a/casic-web/src/main/resources/config/temp/device_template.xlsx b/casic-web/src/main/resources/config/temp/device_template.xlsx index 5423294..8611b72 100644 --- a/casic-web/src/main/resources/config/temp/device_template.xlsx +++ b/casic-web/src/main/resources/config/temp/device_template.xlsx Binary files differ diff --git a/casic-web/src/main/resources/config/temp/pipe_info_template.xlsx b/casic-web/src/main/resources/config/temp/pipe_info_template.xlsx new file mode 100644 index 0000000..540beca --- /dev/null +++ b/casic-web/src/main/resources/config/temp/pipe_info_template.xlsx Binary files differ