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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java index dc516a3..e0e6c77 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java @@ -12,7 +12,8 @@ UNPROCESS("6", "待处置"), PROCESSED("7", "已处置"), FINISHED("8", "数据恢复正常,报警解除"), - DELETED("9", "删除"); + DELETED("9", "删除"), + NONEEDPROCESS("10", "无需处置"); private String code; private String value; 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java index dc516a3..e0e6c77 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java @@ -12,7 +12,8 @@ UNPROCESS("6", "待处置"), PROCESSED("7", "已处置"), FINISHED("8", "数据恢复正常,报警解除"), - DELETED("9", "删除"); + DELETED("9", "删除"), + NONEEDPROCESS("10", "无需处置"); private String code; private String value; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 9caa947..438fca3 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -13,7 +13,7 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - if(StrUtil.isNotEmpty(str)) { + if (StrUtil.isNotEmpty(str)) { return str.matches("-?\\d+(\\.\\d+)?"); } return false; @@ -41,4 +41,27 @@ return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } + + public static String getRsrp(String rsrp) { + + if (isNumber(rsrp)) { + if (Integer.valueOf(rsrp) > -60) { + return "非常好"; + } else if (Integer.valueOf(rsrp) > -70) { + return "良好"; + } else if (Integer.valueOf(rsrp) > -80) { + return "一般"; + } else if (Integer.valueOf(rsrp) > -90) { + return "稍弱"; + } else if (Integer.valueOf(rsrp) > -100) { + return "较弱"; + } else if (Integer.valueOf(rsrp) > -110) { + return "差"; + } else { + return "很差"; + } + } + return ""; + } + } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java index dc516a3..e0e6c77 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java @@ -12,7 +12,8 @@ UNPROCESS("6", "待处置"), PROCESSED("7", "已处置"), FINISHED("8", "数据恢复正常,报警解除"), - DELETED("9", "删除"); + DELETED("9", "删除"), + NONEEDPROCESS("10", "无需处置"); private String code; private String value; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 9caa947..438fca3 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -13,7 +13,7 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - if(StrUtil.isNotEmpty(str)) { + if (StrUtil.isNotEmpty(str)) { return str.matches("-?\\d+(\\.\\d+)?"); } return false; @@ -41,4 +41,27 @@ return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } + + public static String getRsrp(String rsrp) { + + if (isNumber(rsrp)) { + if (Integer.valueOf(rsrp) > -60) { + return "非常好"; + } else if (Integer.valueOf(rsrp) > -70) { + return "良好"; + } else if (Integer.valueOf(rsrp) > -80) { + return "一般"; + } else if (Integer.valueOf(rsrp) > -90) { + return "稍弱"; + } else if (Integer.valueOf(rsrp) > -100) { + return "较弱"; + } else if (Integer.valueOf(rsrp) > -110) { + return "差"; + } else { + return "很差"; + } + } + return ""; + } + } diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml index b30bca0..b5d213d 100644 --- a/casic-rest-api/pom.xml +++ b/casic-rest-api/pom.xml @@ -80,6 +80,12 @@ 1.59 + + io.projectreactor + reactor-core + 3.4.11 + + 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java index dc516a3..e0e6c77 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java @@ -12,7 +12,8 @@ UNPROCESS("6", "待处置"), PROCESSED("7", "已处置"), FINISHED("8", "数据恢复正常,报警解除"), - DELETED("9", "删除"); + DELETED("9", "删除"), + NONEEDPROCESS("10", "无需处置"); private String code; private String value; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 9caa947..438fca3 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -13,7 +13,7 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - if(StrUtil.isNotEmpty(str)) { + if (StrUtil.isNotEmpty(str)) { return str.matches("-?\\d+(\\.\\d+)?"); } return false; @@ -41,4 +41,27 @@ return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } + + public static String getRsrp(String rsrp) { + + if (isNumber(rsrp)) { + if (Integer.valueOf(rsrp) > -60) { + return "非常好"; + } else if (Integer.valueOf(rsrp) > -70) { + return "良好"; + } else if (Integer.valueOf(rsrp) > -80) { + return "一般"; + } else if (Integer.valueOf(rsrp) > -90) { + return "稍弱"; + } else if (Integer.valueOf(rsrp) > -100) { + return "较弱"; + } else if (Integer.valueOf(rsrp) > -110) { + return "差"; + } else { + return "很差"; + } + } + return ""; + } + } diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml index b30bca0..b5d213d 100644 --- a/casic-rest-api/pom.xml +++ b/casic-rest-api/pom.xml @@ -80,6 +80,12 @@ 1.59 + + io.projectreactor + reactor-core + 3.4.11 + + diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 79b53ad..bd056bc 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -2,10 +2,7 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; -import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; -import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; -import com.casic.missiles.modular.device.dto.PtzXtControlDTO; +import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -64,10 +61,10 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice/{deviceCode}") + @PostMapping("/getOneDevice") @ResponseBody - public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { - return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); + public ReturnDTO getOneDevice(@RequestBody PanDeviceDTO panDeviceDTO) { + return ReturnUtil.success(iPtzService.getOneDevice(panDeviceDTO.getDevcode())); } @ApiOperation("设备控制接口") @@ -91,4 +88,12 @@ public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); } + + + + @PostMapping("/test") + @ResponseBody + public ReturnDTO test(String devcode) { + return ReturnUtil.success(devcode); + } } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java index dc516a3..e0e6c77 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java @@ -12,7 +12,8 @@ UNPROCESS("6", "待处置"), PROCESSED("7", "已处置"), FINISHED("8", "数据恢复正常,报警解除"), - DELETED("9", "删除"); + DELETED("9", "删除"), + NONEEDPROCESS("10", "无需处置"); private String code; private String value; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 9caa947..438fca3 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -13,7 +13,7 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - if(StrUtil.isNotEmpty(str)) { + if (StrUtil.isNotEmpty(str)) { return str.matches("-?\\d+(\\.\\d+)?"); } return false; @@ -41,4 +41,27 @@ return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } + + public static String getRsrp(String rsrp) { + + if (isNumber(rsrp)) { + if (Integer.valueOf(rsrp) > -60) { + return "非常好"; + } else if (Integer.valueOf(rsrp) > -70) { + return "良好"; + } else if (Integer.valueOf(rsrp) > -80) { + return "一般"; + } else if (Integer.valueOf(rsrp) > -90) { + return "稍弱"; + } else if (Integer.valueOf(rsrp) > -100) { + return "较弱"; + } else if (Integer.valueOf(rsrp) > -110) { + return "差"; + } else { + return "很差"; + } + } + return ""; + } + } diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml index b30bca0..b5d213d 100644 --- a/casic-rest-api/pom.xml +++ b/casic-rest-api/pom.xml @@ -80,6 +80,12 @@ 1.59 + + io.projectreactor + reactor-core + 3.4.11 + + diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 79b53ad..bd056bc 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -2,10 +2,7 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; -import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; -import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; -import com.casic.missiles.modular.device.dto.PtzXtControlDTO; +import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -64,10 +61,10 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice/{deviceCode}") + @PostMapping("/getOneDevice") @ResponseBody - public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { - return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); + public ReturnDTO getOneDevice(@RequestBody PanDeviceDTO panDeviceDTO) { + return ReturnUtil.success(iPtzService.getOneDevice(panDeviceDTO.getDevcode())); } @ApiOperation("设备控制接口") @@ -91,4 +88,12 @@ public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); } + + + + @PostMapping("/test") + @ResponseBody + public ReturnDTO test(String devcode) { + return ReturnUtil.success(devcode); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java index 9d7be9a..8eea20c 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java @@ -16,6 +16,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Map; @@ -51,7 +54,8 @@ @Override public String getOneDevice(String deviceCode) { - String result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); + String result = null; + result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { @@ -88,7 +92,7 @@ @Override public String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO) { - String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId()+"/"+ptzPlayRealDTO.getStreamType()); + String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId() + "/" + ptzPlayRealDTO.getStreamType()); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java index dc516a3..e0e6c77 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java @@ -12,7 +12,8 @@ UNPROCESS("6", "待处置"), PROCESSED("7", "已处置"), FINISHED("8", "数据恢复正常,报警解除"), - DELETED("9", "删除"); + DELETED("9", "删除"), + NONEEDPROCESS("10", "无需处置"); private String code; private String value; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 9caa947..438fca3 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -13,7 +13,7 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - if(StrUtil.isNotEmpty(str)) { + if (StrUtil.isNotEmpty(str)) { return str.matches("-?\\d+(\\.\\d+)?"); } return false; @@ -41,4 +41,27 @@ return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } + + public static String getRsrp(String rsrp) { + + if (isNumber(rsrp)) { + if (Integer.valueOf(rsrp) > -60) { + return "非常好"; + } else if (Integer.valueOf(rsrp) > -70) { + return "良好"; + } else if (Integer.valueOf(rsrp) > -80) { + return "一般"; + } else if (Integer.valueOf(rsrp) > -90) { + return "稍弱"; + } else if (Integer.valueOf(rsrp) > -100) { + return "较弱"; + } else if (Integer.valueOf(rsrp) > -110) { + return "差"; + } else { + return "很差"; + } + } + return ""; + } + } diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml index b30bca0..b5d213d 100644 --- a/casic-rest-api/pom.xml +++ b/casic-rest-api/pom.xml @@ -80,6 +80,12 @@ 1.59 + + io.projectreactor + reactor-core + 3.4.11 + + diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 79b53ad..bd056bc 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -2,10 +2,7 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; -import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; -import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; -import com.casic.missiles.modular.device.dto.PtzXtControlDTO; +import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -64,10 +61,10 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice/{deviceCode}") + @PostMapping("/getOneDevice") @ResponseBody - public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { - return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); + public ReturnDTO getOneDevice(@RequestBody PanDeviceDTO panDeviceDTO) { + return ReturnUtil.success(iPtzService.getOneDevice(panDeviceDTO.getDevcode())); } @ApiOperation("设备控制接口") @@ -91,4 +88,12 @@ public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); } + + + + @PostMapping("/test") + @ResponseBody + public ReturnDTO test(String devcode) { + return ReturnUtil.success(devcode); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java index 9d7be9a..8eea20c 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java @@ -16,6 +16,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Map; @@ -51,7 +54,8 @@ @Override public String getOneDevice(String deviceCode) { - String result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); + String result = null; + result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { @@ -88,7 +92,7 @@ @Override public String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO) { - String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId()+"/"+ptzPlayRealDTO.getStreamType()); + String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId() + "/" + ptzPlayRealDTO.getStreamType()); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { 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 40036ae..34d8b2a 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,7 +1,5 @@ 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; @@ -12,11 +10,9 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.PriorityBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; @Api(tags = "sensorhub接收设备数据api") @Slf4j @@ -24,22 +20,23 @@ @RestController @RequestMapping("/device") public class ReceiveDataController { - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 20, 60, - TimeUnit.SECONDS, new PriorityBlockingQueue<>(),new ThreadPoolExecutor.CallerRunsPolicy()); + private final ExecutorService customThreadPool = Executors.newFixedThreadPool(15); // 自定义线程池 @ApiOperation("接收设备数据入口") @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - if (!threadPoolExecutor.isShutdown()) { - threadPoolExecutor.execute( - () -> { - String receiveData = JSON.toJSONString(map); - log.info(">>>>>>接收数<<<<<<:" + receiveData); - ResponseResolver.makeResponse(receiveData); - } - ); + if (map == null || map.isEmpty()) { + log.warn("接收到空或无效的数据"); + return ReturnUtil.failed("接收到空或无效的数据"); } + + log.info(">>>>>> 接收数据 <<<<<<: {}", map.toString()); + + CompletableFuture.runAsync(() -> { + ResponseResolver.makeResponse(map); + } + ); return ReturnUtil.success(); } -} +} \ No newline at end of file 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java index dc516a3..e0e6c77 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java @@ -12,7 +12,8 @@ UNPROCESS("6", "待处置"), PROCESSED("7", "已处置"), FINISHED("8", "数据恢复正常,报警解除"), - DELETED("9", "删除"); + DELETED("9", "删除"), + NONEEDPROCESS("10", "无需处置"); private String code; private String value; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 9caa947..438fca3 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -13,7 +13,7 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - if(StrUtil.isNotEmpty(str)) { + if (StrUtil.isNotEmpty(str)) { return str.matches("-?\\d+(\\.\\d+)?"); } return false; @@ -41,4 +41,27 @@ return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } + + public static String getRsrp(String rsrp) { + + if (isNumber(rsrp)) { + if (Integer.valueOf(rsrp) > -60) { + return "非常好"; + } else if (Integer.valueOf(rsrp) > -70) { + return "良好"; + } else if (Integer.valueOf(rsrp) > -80) { + return "一般"; + } else if (Integer.valueOf(rsrp) > -90) { + return "稍弱"; + } else if (Integer.valueOf(rsrp) > -100) { + return "较弱"; + } else if (Integer.valueOf(rsrp) > -110) { + return "差"; + } else { + return "很差"; + } + } + return ""; + } + } diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml index b30bca0..b5d213d 100644 --- a/casic-rest-api/pom.xml +++ b/casic-rest-api/pom.xml @@ -80,6 +80,12 @@ 1.59 + + io.projectreactor + reactor-core + 3.4.11 + + diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 79b53ad..bd056bc 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -2,10 +2,7 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; -import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; -import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; -import com.casic.missiles.modular.device.dto.PtzXtControlDTO; +import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -64,10 +61,10 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice/{deviceCode}") + @PostMapping("/getOneDevice") @ResponseBody - public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { - return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); + public ReturnDTO getOneDevice(@RequestBody PanDeviceDTO panDeviceDTO) { + return ReturnUtil.success(iPtzService.getOneDevice(panDeviceDTO.getDevcode())); } @ApiOperation("设备控制接口") @@ -91,4 +88,12 @@ public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); } + + + + @PostMapping("/test") + @ResponseBody + public ReturnDTO test(String devcode) { + return ReturnUtil.success(devcode); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java index 9d7be9a..8eea20c 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java @@ -16,6 +16,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Map; @@ -51,7 +54,8 @@ @Override public String getOneDevice(String deviceCode) { - String result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); + String result = null; + result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { @@ -88,7 +92,7 @@ @Override public String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO) { - String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId()+"/"+ptzPlayRealDTO.getStreamType()); + String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId() + "/" + ptzPlayRealDTO.getStreamType()); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { 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 40036ae..34d8b2a 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,7 +1,5 @@ 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; @@ -12,11 +10,9 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.PriorityBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; @Api(tags = "sensorhub接收设备数据api") @Slf4j @@ -24,22 +20,23 @@ @RestController @RequestMapping("/device") public class ReceiveDataController { - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 20, 60, - TimeUnit.SECONDS, new PriorityBlockingQueue<>(),new ThreadPoolExecutor.CallerRunsPolicy()); + private final ExecutorService customThreadPool = Executors.newFixedThreadPool(15); // 自定义线程池 @ApiOperation("接收设备数据入口") @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - if (!threadPoolExecutor.isShutdown()) { - threadPoolExecutor.execute( - () -> { - String receiveData = JSON.toJSONString(map); - log.info(">>>>>>接收数<<<<<<:" + receiveData); - ResponseResolver.makeResponse(receiveData); - } - ); + if (map == null || map.isEmpty()) { + log.warn("接收到空或无效的数据"); + return ReturnUtil.failed("接收到空或无效的数据"); } + + log.info(">>>>>> 接收数据 <<<<<<: {}", map.toString()); + + CompletableFuture.runAsync(() -> { + ResponseResolver.makeResponse(map); + } + ); return ReturnUtil.success(); } -} +} \ No newline at end of file diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java index 5682291..4c782f1 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java @@ -1,10 +1,14 @@ package com.casic.missiles.modular.sensorHub.resolver; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.modular.data.service.IDataAbstractService; import com.casic.missiles.modular.data.service.impl.*; import com.casic.missiles.util.SpringContextUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.util.Map; @@ -14,7 +18,7 @@ @Component public class ResponseResolver { - + private static final Logger logger = LoggerFactory.getLogger(ResponseResolver.class); private static DataGasServiceImpl dataGasService = SpringContextUtil.getApplicationContext().getBean(DataGasServiceImpl.class); private static DataGasliquidGasServiceImpl dataGasliquidGasService = SpringContextUtil.getApplicationContext().getBean(DataGasliquidGasServiceImpl.class); private static DataTubeOtherServiceImpl dataTubeOtherService = SpringContextUtil.getApplicationContext().getBean(DataTubeOtherServiceImpl.class); @@ -41,13 +45,19 @@ return Optional.ofNullable(abstractResponseHashMap.get(type)); } - public static void makeResponse(String content) { - JSONObject json = JSONObject.parseObject(content); - if (null == json) return; -// IDataAbstractService response = abstractResponseHashMap.get(json.getString("devType")); -// response.process(content); - - ResponseResolver.getProcessor(json.getString("devType")).ifPresent( - processor -> processor.process(content)); + public static boolean makeResponse(Map map) { + try { + String content = JSON.toJSONString(map); + JSONObject json = JSONObject.parseObject(content); + String devType = json.getString("devType"); + ResponseResolver.getProcessor(devType).ifPresent(processor -> processor.process(content)); + return true; + } catch (JSONException e) { + logger.error("JSON parsing error: {}", e.getMessage(), e); + return false; + } catch (Exception e) { + logger.error("Unexpected error: {}", e.getMessage(), e); + return false; + } } } 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java index dc516a3..e0e6c77 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java @@ -12,7 +12,8 @@ UNPROCESS("6", "待处置"), PROCESSED("7", "已处置"), FINISHED("8", "数据恢复正常,报警解除"), - DELETED("9", "删除"); + DELETED("9", "删除"), + NONEEDPROCESS("10", "无需处置"); private String code; private String value; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 9caa947..438fca3 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -13,7 +13,7 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - if(StrUtil.isNotEmpty(str)) { + if (StrUtil.isNotEmpty(str)) { return str.matches("-?\\d+(\\.\\d+)?"); } return false; @@ -41,4 +41,27 @@ return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } + + public static String getRsrp(String rsrp) { + + if (isNumber(rsrp)) { + if (Integer.valueOf(rsrp) > -60) { + return "非常好"; + } else if (Integer.valueOf(rsrp) > -70) { + return "良好"; + } else if (Integer.valueOf(rsrp) > -80) { + return "一般"; + } else if (Integer.valueOf(rsrp) > -90) { + return "稍弱"; + } else if (Integer.valueOf(rsrp) > -100) { + return "较弱"; + } else if (Integer.valueOf(rsrp) > -110) { + return "差"; + } else { + return "很差"; + } + } + return ""; + } + } diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml index b30bca0..b5d213d 100644 --- a/casic-rest-api/pom.xml +++ b/casic-rest-api/pom.xml @@ -80,6 +80,12 @@ 1.59 + + io.projectreactor + reactor-core + 3.4.11 + + diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 79b53ad..bd056bc 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -2,10 +2,7 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; -import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; -import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; -import com.casic.missiles.modular.device.dto.PtzXtControlDTO; +import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -64,10 +61,10 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice/{deviceCode}") + @PostMapping("/getOneDevice") @ResponseBody - public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { - return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); + public ReturnDTO getOneDevice(@RequestBody PanDeviceDTO panDeviceDTO) { + return ReturnUtil.success(iPtzService.getOneDevice(panDeviceDTO.getDevcode())); } @ApiOperation("设备控制接口") @@ -91,4 +88,12 @@ public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); } + + + + @PostMapping("/test") + @ResponseBody + public ReturnDTO test(String devcode) { + return ReturnUtil.success(devcode); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java index 9d7be9a..8eea20c 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java @@ -16,6 +16,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Map; @@ -51,7 +54,8 @@ @Override public String getOneDevice(String deviceCode) { - String result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); + String result = null; + result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { @@ -88,7 +92,7 @@ @Override public String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO) { - String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId()+"/"+ptzPlayRealDTO.getStreamType()); + String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId() + "/" + ptzPlayRealDTO.getStreamType()); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { 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 40036ae..34d8b2a 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,7 +1,5 @@ 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; @@ -12,11 +10,9 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.PriorityBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; @Api(tags = "sensorhub接收设备数据api") @Slf4j @@ -24,22 +20,23 @@ @RestController @RequestMapping("/device") public class ReceiveDataController { - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 20, 60, - TimeUnit.SECONDS, new PriorityBlockingQueue<>(),new ThreadPoolExecutor.CallerRunsPolicy()); + private final ExecutorService customThreadPool = Executors.newFixedThreadPool(15); // 自定义线程池 @ApiOperation("接收设备数据入口") @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - if (!threadPoolExecutor.isShutdown()) { - threadPoolExecutor.execute( - () -> { - String receiveData = JSON.toJSONString(map); - log.info(">>>>>>接收数<<<<<<:" + receiveData); - ResponseResolver.makeResponse(receiveData); - } - ); + if (map == null || map.isEmpty()) { + log.warn("接收到空或无效的数据"); + return ReturnUtil.failed("接收到空或无效的数据"); } + + log.info(">>>>>> 接收数据 <<<<<<: {}", map.toString()); + + CompletableFuture.runAsync(() -> { + ResponseResolver.makeResponse(map); + } + ); return ReturnUtil.success(); } -} +} \ No newline at end of file diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java index 5682291..4c782f1 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java @@ -1,10 +1,14 @@ package com.casic.missiles.modular.sensorHub.resolver; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.modular.data.service.IDataAbstractService; import com.casic.missiles.modular.data.service.impl.*; import com.casic.missiles.util.SpringContextUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.util.Map; @@ -14,7 +18,7 @@ @Component public class ResponseResolver { - + private static final Logger logger = LoggerFactory.getLogger(ResponseResolver.class); private static DataGasServiceImpl dataGasService = SpringContextUtil.getApplicationContext().getBean(DataGasServiceImpl.class); private static DataGasliquidGasServiceImpl dataGasliquidGasService = SpringContextUtil.getApplicationContext().getBean(DataGasliquidGasServiceImpl.class); private static DataTubeOtherServiceImpl dataTubeOtherService = SpringContextUtil.getApplicationContext().getBean(DataTubeOtherServiceImpl.class); @@ -41,13 +45,19 @@ return Optional.ofNullable(abstractResponseHashMap.get(type)); } - public static void makeResponse(String content) { - JSONObject json = JSONObject.parseObject(content); - if (null == json) return; -// IDataAbstractService response = abstractResponseHashMap.get(json.getString("devType")); -// response.process(content); - - ResponseResolver.getProcessor(json.getString("devType")).ifPresent( - processor -> processor.process(content)); + public static boolean makeResponse(Map map) { + try { + String content = JSON.toJSONString(map); + JSONObject json = JSONObject.parseObject(content); + String devType = json.getString("devType"); + ResponseResolver.getProcessor(devType).ifPresent(processor -> processor.process(content)); + return true; + } catch (JSONException e) { + logger.error("JSON parsing error: {}", e.getMessage(), e); + return false; + } catch (Exception e) { + logger.error("Unexpected error: {}", e.getMessage(), e); + return false; + } } } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index f4cf4cf..e109835 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -5,8 +5,8 @@ com.casic casic-iot-platform - 2.0.0 ../pom.xml + 2.0.0.alpha casic-server 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java index dc516a3..e0e6c77 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java @@ -12,7 +12,8 @@ UNPROCESS("6", "待处置"), PROCESSED("7", "已处置"), FINISHED("8", "数据恢复正常,报警解除"), - DELETED("9", "删除"); + DELETED("9", "删除"), + NONEEDPROCESS("10", "无需处置"); private String code; private String value; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 9caa947..438fca3 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -13,7 +13,7 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - if(StrUtil.isNotEmpty(str)) { + if (StrUtil.isNotEmpty(str)) { return str.matches("-?\\d+(\\.\\d+)?"); } return false; @@ -41,4 +41,27 @@ return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } + + public static String getRsrp(String rsrp) { + + if (isNumber(rsrp)) { + if (Integer.valueOf(rsrp) > -60) { + return "非常好"; + } else if (Integer.valueOf(rsrp) > -70) { + return "良好"; + } else if (Integer.valueOf(rsrp) > -80) { + return "一般"; + } else if (Integer.valueOf(rsrp) > -90) { + return "稍弱"; + } else if (Integer.valueOf(rsrp) > -100) { + return "较弱"; + } else if (Integer.valueOf(rsrp) > -110) { + return "差"; + } else { + return "很差"; + } + } + return ""; + } + } diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml index b30bca0..b5d213d 100644 --- a/casic-rest-api/pom.xml +++ b/casic-rest-api/pom.xml @@ -80,6 +80,12 @@ 1.59 + + io.projectreactor + reactor-core + 3.4.11 + + diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 79b53ad..bd056bc 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -2,10 +2,7 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; -import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; -import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; -import com.casic.missiles.modular.device.dto.PtzXtControlDTO; +import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -64,10 +61,10 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice/{deviceCode}") + @PostMapping("/getOneDevice") @ResponseBody - public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { - return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); + public ReturnDTO getOneDevice(@RequestBody PanDeviceDTO panDeviceDTO) { + return ReturnUtil.success(iPtzService.getOneDevice(panDeviceDTO.getDevcode())); } @ApiOperation("设备控制接口") @@ -91,4 +88,12 @@ public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); } + + + + @PostMapping("/test") + @ResponseBody + public ReturnDTO test(String devcode) { + return ReturnUtil.success(devcode); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java index 9d7be9a..8eea20c 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java @@ -16,6 +16,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Map; @@ -51,7 +54,8 @@ @Override public String getOneDevice(String deviceCode) { - String result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); + String result = null; + result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { @@ -88,7 +92,7 @@ @Override public String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO) { - String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId()+"/"+ptzPlayRealDTO.getStreamType()); + String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId() + "/" + ptzPlayRealDTO.getStreamType()); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { 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 40036ae..34d8b2a 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,7 +1,5 @@ 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; @@ -12,11 +10,9 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.PriorityBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; @Api(tags = "sensorhub接收设备数据api") @Slf4j @@ -24,22 +20,23 @@ @RestController @RequestMapping("/device") public class ReceiveDataController { - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 20, 60, - TimeUnit.SECONDS, new PriorityBlockingQueue<>(),new ThreadPoolExecutor.CallerRunsPolicy()); + private final ExecutorService customThreadPool = Executors.newFixedThreadPool(15); // 自定义线程池 @ApiOperation("接收设备数据入口") @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - if (!threadPoolExecutor.isShutdown()) { - threadPoolExecutor.execute( - () -> { - String receiveData = JSON.toJSONString(map); - log.info(">>>>>>接收数<<<<<<:" + receiveData); - ResponseResolver.makeResponse(receiveData); - } - ); + if (map == null || map.isEmpty()) { + log.warn("接收到空或无效的数据"); + return ReturnUtil.failed("接收到空或无效的数据"); } + + log.info(">>>>>> 接收数据 <<<<<<: {}", map.toString()); + + CompletableFuture.runAsync(() -> { + ResponseResolver.makeResponse(map); + } + ); return ReturnUtil.success(); } -} +} \ No newline at end of file diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java index 5682291..4c782f1 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java @@ -1,10 +1,14 @@ package com.casic.missiles.modular.sensorHub.resolver; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.modular.data.service.IDataAbstractService; import com.casic.missiles.modular.data.service.impl.*; import com.casic.missiles.util.SpringContextUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.util.Map; @@ -14,7 +18,7 @@ @Component public class ResponseResolver { - + private static final Logger logger = LoggerFactory.getLogger(ResponseResolver.class); private static DataGasServiceImpl dataGasService = SpringContextUtil.getApplicationContext().getBean(DataGasServiceImpl.class); private static DataGasliquidGasServiceImpl dataGasliquidGasService = SpringContextUtil.getApplicationContext().getBean(DataGasliquidGasServiceImpl.class); private static DataTubeOtherServiceImpl dataTubeOtherService = SpringContextUtil.getApplicationContext().getBean(DataTubeOtherServiceImpl.class); @@ -41,13 +45,19 @@ return Optional.ofNullable(abstractResponseHashMap.get(type)); } - public static void makeResponse(String content) { - JSONObject json = JSONObject.parseObject(content); - if (null == json) return; -// IDataAbstractService response = abstractResponseHashMap.get(json.getString("devType")); -// response.process(content); - - ResponseResolver.getProcessor(json.getString("devType")).ifPresent( - processor -> processor.process(content)); + public static boolean makeResponse(Map map) { + try { + String content = JSON.toJSONString(map); + JSONObject json = JSONObject.parseObject(content); + String devType = json.getString("devType"); + ResponseResolver.getProcessor(devType).ifPresent(processor -> processor.process(content)); + return true; + } catch (JSONException e) { + logger.error("JSON parsing error: {}", e.getMessage(), e); + return false; + } catch (Exception e) { + logger.error("Unexpected error: {}", e.getMessage(), e); + return false; + } } } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index f4cf4cf..e109835 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -5,8 +5,8 @@ com.casic casic-iot-platform - 2.0.0 ../pom.xml + 2.0.0.alpha casic-server 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 0b6b360..1eb5c78 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_imei_iccid") // 设置需要生成的表名 + builder.addInclude("data_gasliquid_liquid") // 设置需要生成的表名 .addTablePrefix() // 设置过滤表前缀 .entityBuilder() //实体类配置 .enableLombok() //使用lombok 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java index dc516a3..e0e6c77 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java @@ -12,7 +12,8 @@ UNPROCESS("6", "待处置"), PROCESSED("7", "已处置"), FINISHED("8", "数据恢复正常,报警解除"), - DELETED("9", "删除"); + DELETED("9", "删除"), + NONEEDPROCESS("10", "无需处置"); private String code; private String value; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 9caa947..438fca3 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -13,7 +13,7 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - if(StrUtil.isNotEmpty(str)) { + if (StrUtil.isNotEmpty(str)) { return str.matches("-?\\d+(\\.\\d+)?"); } return false; @@ -41,4 +41,27 @@ return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } + + public static String getRsrp(String rsrp) { + + if (isNumber(rsrp)) { + if (Integer.valueOf(rsrp) > -60) { + return "非常好"; + } else if (Integer.valueOf(rsrp) > -70) { + return "良好"; + } else if (Integer.valueOf(rsrp) > -80) { + return "一般"; + } else if (Integer.valueOf(rsrp) > -90) { + return "稍弱"; + } else if (Integer.valueOf(rsrp) > -100) { + return "较弱"; + } else if (Integer.valueOf(rsrp) > -110) { + return "差"; + } else { + return "很差"; + } + } + return ""; + } + } diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml index b30bca0..b5d213d 100644 --- a/casic-rest-api/pom.xml +++ b/casic-rest-api/pom.xml @@ -80,6 +80,12 @@ 1.59 + + io.projectreactor + reactor-core + 3.4.11 + + diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 79b53ad..bd056bc 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -2,10 +2,7 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; -import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; -import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; -import com.casic.missiles.modular.device.dto.PtzXtControlDTO; +import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -64,10 +61,10 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice/{deviceCode}") + @PostMapping("/getOneDevice") @ResponseBody - public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { - return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); + public ReturnDTO getOneDevice(@RequestBody PanDeviceDTO panDeviceDTO) { + return ReturnUtil.success(iPtzService.getOneDevice(panDeviceDTO.getDevcode())); } @ApiOperation("设备控制接口") @@ -91,4 +88,12 @@ public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); } + + + + @PostMapping("/test") + @ResponseBody + public ReturnDTO test(String devcode) { + return ReturnUtil.success(devcode); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java index 9d7be9a..8eea20c 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java @@ -16,6 +16,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Map; @@ -51,7 +54,8 @@ @Override public String getOneDevice(String deviceCode) { - String result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); + String result = null; + result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { @@ -88,7 +92,7 @@ @Override public String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO) { - String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId()+"/"+ptzPlayRealDTO.getStreamType()); + String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId() + "/" + ptzPlayRealDTO.getStreamType()); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { 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 40036ae..34d8b2a 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,7 +1,5 @@ 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; @@ -12,11 +10,9 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.PriorityBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; @Api(tags = "sensorhub接收设备数据api") @Slf4j @@ -24,22 +20,23 @@ @RestController @RequestMapping("/device") public class ReceiveDataController { - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 20, 60, - TimeUnit.SECONDS, new PriorityBlockingQueue<>(),new ThreadPoolExecutor.CallerRunsPolicy()); + private final ExecutorService customThreadPool = Executors.newFixedThreadPool(15); // 自定义线程池 @ApiOperation("接收设备数据入口") @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - if (!threadPoolExecutor.isShutdown()) { - threadPoolExecutor.execute( - () -> { - String receiveData = JSON.toJSONString(map); - log.info(">>>>>>接收数<<<<<<:" + receiveData); - ResponseResolver.makeResponse(receiveData); - } - ); + if (map == null || map.isEmpty()) { + log.warn("接收到空或无效的数据"); + return ReturnUtil.failed("接收到空或无效的数据"); } + + log.info(">>>>>> 接收数据 <<<<<<: {}", map.toString()); + + CompletableFuture.runAsync(() -> { + ResponseResolver.makeResponse(map); + } + ); return ReturnUtil.success(); } -} +} \ No newline at end of file diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java index 5682291..4c782f1 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java @@ -1,10 +1,14 @@ package com.casic.missiles.modular.sensorHub.resolver; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.modular.data.service.IDataAbstractService; import com.casic.missiles.modular.data.service.impl.*; import com.casic.missiles.util.SpringContextUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.util.Map; @@ -14,7 +18,7 @@ @Component public class ResponseResolver { - + private static final Logger logger = LoggerFactory.getLogger(ResponseResolver.class); private static DataGasServiceImpl dataGasService = SpringContextUtil.getApplicationContext().getBean(DataGasServiceImpl.class); private static DataGasliquidGasServiceImpl dataGasliquidGasService = SpringContextUtil.getApplicationContext().getBean(DataGasliquidGasServiceImpl.class); private static DataTubeOtherServiceImpl dataTubeOtherService = SpringContextUtil.getApplicationContext().getBean(DataTubeOtherServiceImpl.class); @@ -41,13 +45,19 @@ return Optional.ofNullable(abstractResponseHashMap.get(type)); } - public static void makeResponse(String content) { - JSONObject json = JSONObject.parseObject(content); - if (null == json) return; -// IDataAbstractService response = abstractResponseHashMap.get(json.getString("devType")); -// response.process(content); - - ResponseResolver.getProcessor(json.getString("devType")).ifPresent( - processor -> processor.process(content)); + public static boolean makeResponse(Map map) { + try { + String content = JSON.toJSONString(map); + JSONObject json = JSONObject.parseObject(content); + String devType = json.getString("devType"); + ResponseResolver.getProcessor(devType).ifPresent(processor -> processor.process(content)); + return true; + } catch (JSONException e) { + logger.error("JSON parsing error: {}", e.getMessage(), e); + return false; + } catch (Exception e) { + logger.error("Unexpected error: {}", e.getMessage(), e); + return false; + } } } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index f4cf4cf..e109835 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -5,8 +5,8 @@ com.casic casic-iot-platform - 2.0.0 ../pom.xml + 2.0.0.alpha casic-server 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 0b6b360..1eb5c78 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_imei_iccid") // 设置需要生成的表名 + builder.addInclude("data_gasliquid_liquid") // 设置需要生成的表名 .addTablePrefix() // 设置过滤表前缀 .entityBuilder() //实体类配置 .enableLombok() //使用lombok diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 4c7d9f8..0df8dc1 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -17,12 +17,13 @@ redis: host: 172.17.112.21 port: 6379 - password: ew5T4K3#203lwh + password: serializer: org.springframework.data.redis.serializer.StringRedisSerializer redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer casic: #kaptcha-open: false #是否开启登录时验证码 (true/false) no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/websocket/*,/v2/api-docs,/v2/api-docs-ext,/doc.html,/v2/api-docs/swagger-ui.html,/swagger-resources,/webjars/**,/device/receiveData,/alarmReturn,/getMap,/system/busGrid/synAllGrids,/system/busLedger/synAllLedger,/system/busLedger/synAllDept,/system/ctUser/synAllUsers,/sync/token,/ptz/acceptGasData,/ptz/acceptAlarmData +# no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/websocket/*,/device/receiveData,/alarmReturn,/getMap,/system/busGrid/synAllGrids,/system/busLedger/synAllLedger,/system/busLedger/synAllDept,/system/ctUser/synAllUsers,/sync/token,/ptz/acceptGasData,/ptz/acceptAlarmData,/ptz/* #flowable数据源和多数据源配置 db: init: 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 deb4852..7403c48 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 @@ -15,6 +15,7 @@ import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -144,6 +145,13 @@ return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); } + @ApiOperation("处置") + @PostMapping("/process") + @ResponseBody + public ReturnDTO process(@RequestBody List approvalLogs) { + return ReturnUtil.success(iAlarmRecordsService.process(approvalLogs)); + } + @ApiOperation("报警节点流程展示") @PostMapping("/nodeDetail") @ResponseBody diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java index 5152005..ffef1f1 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRuleDeviceController.java @@ -3,7 +3,6 @@ import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdsDTO; @@ -38,7 +37,7 @@ public class AlarmRuleDeviceController extends ExportController { private final IAlarmRuleDeviceService iAlarmRuleDeviceService; - private final AbstractPermissionContext permissionContext; + @ApiOperation("查询分页接口") @PostMapping("/listPage") @@ -55,11 +54,7 @@ @CacheEvict(value = "alarmRuleCache", allEntries = true) public ReturnDTO add(@RequestBody List alarmRuleDeviceList) { - String createUser = permissionContext.getAuthService().getLoginUser().getName(); - alarmRuleDeviceList.forEach(alarmRuleDevice -> { - alarmRuleDevice.setCreateUser(createUser); - }); - return ReturnUtil.success(iAlarmRuleDeviceService.saveBatch(alarmRuleDeviceList)); + return ReturnUtil.success(iAlarmRuleDeviceService.saveBatchAlarmRuleDevice(alarmRuleDeviceList)); } @ApiOperation("编辑") diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java index becb272..c87e4ad 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/ApprovalLogController.java @@ -1,9 +1,19 @@ package com.casic.missiles.modular.alarm.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cn.hutool.core.lang.Assert; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; +import com.casic.missiles.modular.alarm.service.IApprovalLogService; +import com.casic.missiles.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import java.util.Objects; /** *

@@ -13,9 +23,22 @@ * @author zt * @since 2024-08-14 */ +@Api(tags = "获取处置信息") +@RequiredArgsConstructor @RestController @RequestMapping("/system/approvalLog") public class ApprovalLogController { + private final IApprovalLogService approvalLogService; + + @ApiOperation("获取处置情况记录") + @PostMapping("/approvalLogs") + @ResponseBody + public ReturnDTO getApprovalLogs(@RequestBody ApprovalRequestDTO approvalRequestDTO) { + Assert.isFalse(Objects.isNull(approvalRequestDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(approvalLogService.getApprovalLogs(approvalRequestDTO)); + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java index ff6943e..a919415 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/ApprovalLogMapper.java @@ -36,5 +36,9 @@ void deleteByAlarmIds(@Param("alarmIds") String alarmIds); + @Select("SELECT * FROM `approval_log` WHERE ALARM_ID = #{alarmId} and FLOW_STATUS = #{flowStatus}") + ApprovalLog getApprovalLog(@Param("alarmId") Long alarmId,@Param("flowStatus") String flowStatus); + + } 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 4d53779..1590e69 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 @@ -47,7 +47,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,15 +100,15 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -158,13 +158,13 @@ LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE and bd.VALID>0 LEFT JOIN base_device_type bt ON bd.DEVICE_TYPE = bt.ID LEFT JOIN bus_device_ledger bl ON bd.ID = bl.DEVICE_ID - AND bl.VALID = 1 + AND bl.VALID = '1' LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type - AND bl.VALID = 1 - AND lr.VALID =1 + AND bl.VALID = '1' + AND lr.VALID ='1' LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID - where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE= '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -221,8 +221,8 @@ LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -262,7 +262,7 @@ rd.ALARM_CONTENT, rd.ALARM_TIME, bt.TYPE_NAME AS devTypeName, - CONCAT(rd.LEDGER_NUMBER,'|',lr.ledgerName,'|',rd.POSITION ) AS POSITION, rd.CANCEL_TIME, + rd.POSITION, rd.CANCEL_TIME, TIMESTAMPDIFF( MINUTE, rd.ALARM_TIME, rd.CANCEL_TIME ) AS cancelDuration, lr.DEPTID, rd.REAL_ALARM, @@ -278,8 +278,8 @@ left join alarm_type ay on ay.id=rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL WHERE - rd.STATUS = 0 - AND rd.EXCEPTION_TYPE = 1 + rd.STATUS = '0' + AND rd.EXCEPTION_TYPE = '1' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -393,7 +393,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL LEFT JOIN base_product bp ON bp.id = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm ON bm.id = bp.MANUFACTURER_ID - where rd.STATUS = 0 + where rd.STATUS = '0' and rd.id = #{id} limit 1 @@ -435,7 +435,7 @@ LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL left JOIN base_product bpt on bpt.ID = bd.PRODUCT_ID LEFT JOIN bus_manufacturer bm on bm.ID = bpt.MANUFACTURER_ID - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE= '0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -543,7 +543,7 @@ LEFT JOIN alarm_type at ON at.ID = rd.ALARM_TYPE_ID LEFT JOIN bus_device bd ON bd.DEVCODE = rd.DEVCODE and bd.valid >0 LEFT JOIN base_device_type bt ON bt.id = bd.DEVICE_TYPE - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' @@ -577,7 +577,7 @@ LEFT JOIN bus_ledger_all_view lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 + where rd.STATUS ='1' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -678,7 +678,7 @@ bd.PRODUCT_ID, bd.LOGTIME FROM bus_device bd - WHERE bd.VALID = 1 + WHERE bd.VALID > 0 AND bd.ONLINE_STATE > 0 ), @@ -752,7 +752,7 @@ AND lr.ledgerCode = rd.LEDGER_CODE LEFT JOIN alarm_type ay ON ay.id = rd.ALARM_TYPE_ID LEFT JOIN alarm_level_control ac ON ac.id = rd.ALARM_LEVEL - where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 + where rd.STATUS = '0' and rd.EXCEPTION_TYPE='0' and rd.DEVCODE like concat('%', #{request.devCode}, '%') diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml index ca3066e..287b62a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmRuleDeviceMapper.xml @@ -18,23 +18,47 @@ - SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` =1 - and ar.EXCEPTION_TYPE=0 + SELECT count(1) as sum,"1" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where `STATUS` ='1' + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"2" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=CURDATE() - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"3" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= CURDATE() - INTERVAL DAYOFWEEK(CURDATE()) - 2 DAY - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"4" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>=DATE_FORMAT(NOW(),'%Y-%m-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) UNION ALL SELECT count(1) as sum,"5" as type FROM `alarm_records` ar left join bus_ledger_all_view bl ON ar.LEDGER_CODE = bl.ledgerCode where ar.ALARM_TIME>= DATE_FORMAT(CURDATE(), '%Y-01-01') - and ar.EXCEPTION_TYPE=0 + and ar.EXCEPTION_TYPE='0' and bl.DEPTID in (${deptStrs}) @@ -58,7 +58,7 @@ WITH alarms AS ( SELECT count(1) as sum,alarmTypeId from alarm_records_view av - where av.exceptionType=0 + where av.exceptionType='0' and av.alarmTime >= CURDATE() @@ -205,7 +205,7 @@ FROM alarm_records_view av WHERE - av.exceptionType = 0 + av.exceptionType = '0' and av.alarmTime >= CURDATE() @@ -234,7 +234,7 @@ alarm_group as(SELECT ad.ALARM_TYPE_ID,bt.WATCH_OBJECT FROM alarm_type_devicetype ad LEFT JOIN base_device_type bt ON bt.id = ad.device_type GROUP BY ad.ALARM_TYPE_ID,bt.WATCH_OBJECT), alarm_type_tmp as( SELECT ay.id, - IF(bt.WATCH_OBJECT = 1,CONCAT( '闸井', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '场站', ay.alarm_type ), + IF(bt.WATCH_OBJECT = 1,CONCAT( '', ay.alarm_type ),IF(bt.WATCH_OBJECT = 2,CONCAT( '', ay.alarm_type ), IF( bt.WATCH_OBJECT = 3, CONCAT( '管线', ay.alarm_type ), ay.alarm_type ))) as alarm_name, ay.alarm_type, bt.WATCH_OBJECT diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java index e5efad1..b728bf5 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmHistoryRecordExportDTO.java @@ -62,8 +62,8 @@ @ColumnWidth(18) @ExcelProperty(value = "解除时间", order = 13) private Date cancelTime; - @ColumnWidth(15) - @ExcelProperty(value = "解除时长", order = 14) +// @ColumnWidth(15) +// @ExcelProperty(value = "解除时长", order = 14) private String cancelDuration; private Long deptid; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java new file mode 100644 index 0000000..387fe1e --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/ApprovalRequestDTO.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.alarm.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class ApprovalRequestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警id") + private Long alarmId; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") + private String flowStatus; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java index 3a984dc..e8ffe52 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/BusAlarmLedgerDTO.java @@ -23,5 +23,7 @@ private String ledgerName; + private Long deptid; + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java index 6205a0d..054e7c4 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRuleDevice.java @@ -85,4 +85,16 @@ @TableField("CREATE_USER") private String createUser; + @ApiModelProperty("报警规则ids") + @TableField(exist = false) + private String alarmRuleIds; + @ApiModelProperty("报警等级ids") + @TableField(exist = false) + private String alarmLevelIds; + @ApiModelProperty("报警阈值集合") + @TableField(exist = false) + private String alarmThresholds; + @ApiModelProperty("ids") + @TableField(exist = false) + private String ids; } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java index 32d1cbf..2e4e5fa 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/ApprovalLog.java @@ -37,7 +37,9 @@ @TableField("ALARM_ID") private Long alarmId; - @ApiModelProperty("1:通过,0:不通过)") +// @ApiModelProperty("1:通过,0:不通过)") + //临时用作确认情况字典值 + @ApiModelProperty("1:泄露等,字典值)") @TableField("APPROVAL_STATUS") private String approvalStatus; @@ -53,11 +55,16 @@ @TableField("APPROVAL_TIME") private Date approvalTime; + //处置或确认描述 @ApiModelProperty("备注") @TableField("DESCN") private String descn; - @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + @ApiModelProperty("现场确认值") + @TableField("CONFIRM_VALUE") + private String confirmValue; + + @ApiModelProperty("流程状态,1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置,10:无需处置)") @TableField("FLOW_STATUS") private String flowStatus; @@ -89,4 +96,20 @@ this.descn = descn; this.flowStatus = flowStatus; } + + public ApprovalLog(Long alarmId, + String approvalStatus, + String approvalPerson, + String flowStatus, + Long approvalPersonId, + String descn, + String confirmValue) { + this.alarmId = alarmId; + this.approvalStatus = approvalStatus; + this.approvalPerson = approvalPerson; + this.approvalPersonId = approvalPersonId; + this.descn = descn; + this.flowStatus = flowStatus; + this.confirmValue = confirmValue; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java index 0236cc4..a725558 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmLevelControlService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.modular.alarm.entity.AlarmLevelControl; +import java.util.List; + /** *

* 报警等级输出控制 服务类 @@ -13,4 +15,5 @@ */ public interface IAlarmLevelControlService extends IService { + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java index 4235acc..b7b0a98 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRecordsService.java @@ -5,6 +5,7 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.*; import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.entity.ApprovalLog; import java.util.List; import java.util.Map; @@ -44,6 +45,8 @@ boolean remind(RemindDTO remindDTO); + boolean process(List approvalLogs); + boolean handle(HandleDTO handleDTO); boolean read(Long id); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java index 51bc7b7..d0dfdc6 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmRuleDeviceService.java @@ -26,6 +26,8 @@ boolean syncAlarmRule(); + boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList); + List getRuleList(String devcode); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java index ef25c12..49dc254 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,5 @@ boolean saveSuspendLogs(List alarmRecordsList); + List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO); } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java index d5da07e..cc1f8b3 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRecordsServiceImpl.java @@ -196,6 +196,7 @@ deviceAlarmList.forEach(deviceAlarm -> { deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); deviceAlarm.setCancelDuration(TimeConverter(deviceAlarm.getCancelDuration())); + deviceAlarm.setDeptName(ObjectUtil.isNotEmpty(deviceAlarm.getDeptid()) ? commonServer.getDeptNamesByDeptId(deviceAlarm.getDeptid()) : ""); }); return deviceAlarmListPage; } @@ -557,7 +558,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.eq("ALARM_VALUE", code); List alarmRecordsList = this.list(queryWrapper); @@ -667,7 +668,7 @@ try { AlarmRecords alarmRecords = new AlarmRecords(alarmId, devCode, busLedgerDTO.getLedgerCode(), busLedgerDTO.getTagNumber(), alarmRuleResponseDTO.getAlarmTypeId(), - "燃气浓度达到".concat(data).concat("%LEL"), data, + data.concat("%LEL"), data, alarmRuleResponseDTO.getAlarmLevelId(), CommonUtil.sdf4.parse(CommonUtil.DateFormat(upTime)), alarmRuleResponseDTO.getAlarmTypeName(), busLedgerDTO.getTagNumber().concat("|").concat(busLedgerDTO.getLedgerName()), "0"); this.save(alarmRecords); @@ -686,6 +687,7 @@ ObjectUtil.isNotEmpty(busWellDTOList) ? busWellDTOList.get(0).getTagNumber() : "")); final Long alarmIds = alarmId; + //向前端推送websocket报警消息 threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override @@ -696,6 +698,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -707,6 +710,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -749,6 +753,7 @@ msg.put("alarmId", alarmIds); msg.put("tagNumber", busWellDTOList.get(0).getTagNumber()); msg.put("tagName", busWellDTOList.get(0).getLedgerName()); + msg.put("deptid", busWellDTOList.get(0).getDeptid()); msg.put("alarmTime", CommonUtil.DateFormat(upTime)); msg.put("status", "未读"); msg.put("value", data); @@ -760,6 +765,7 @@ webSocket.sendAllMessage(msg.toJSONString()); } }); + return true; } @@ -768,7 +774,10 @@ if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getAlarmThreshold())) { if (ObjectUtil.isNotEmpty(alarmRuleResponseDTO.get().getOffDays())) { - alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); + if ("LowCell".equals(alarmRuleResponseDTO.get().getAlarmThreshold())) { + alarmRuleResponseDTO.get().setAlarmTypeName("电量".concat(alarmRuleResponseDTO.get().getOffDays() + "").concat("%")); + } else + alarmRuleResponseDTO.get().setAlarmTypeName(alarmRuleResponseDTO.get().getOffDays() + ""); } else { alarmRuleResponseDTO.get().setAlarmTypeName(iAlarmEventProductService.getEventName(alarmRuleResponseDTO.get().getAlarmThreshold())); } @@ -801,7 +810,7 @@ queryWrapper.eq("DEVCODE", devCode); queryWrapper.eq("EXCEPTION_TYPE", "0"); //只有未读、已读、已确认、已处置、挂起的才消 - queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7")); + queryWrapper.in("PROCESS_STATUS", Arrays.asList("1", "2", "3", "5", "7", "10")); queryWrapper.eq("STATUS", "1"); queryWrapper.gt("ALARM_VALUE", 0); List alarmRecordsList = this.list(queryWrapper); @@ -915,4 +924,39 @@ e.printStackTrace(); } } + + @Override + public boolean process(List approvalLogs) { + if (approvalLogs != null && approvalLogs.size() > 0) { + for (ApprovalLog approvalLog : approvalLogs) { + if (ApprovalStatusEnum.CONFIRMED.getCode().equals(approvalLog.getFlowStatus())) { + //是否已确认,确认不允许更改 + ApprovalLog approvalLogConfirm = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), ApprovalStatusEnum.CONFIRMED.getCode()); + if (null == approvalLogConfirm) { + approvalLogMapper.insert(new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), ApprovalStatusEnum.CONFIRMED.getCode(), + null, approvalLog.getDescn(), approvalLog.getConfirmValue())); + } + } else { + ApprovalLog approvalLogStatus = approvalLogMapper.getApprovalLog(approvalLog.getAlarmId(), approvalLog.getFlowStatus()); + ApprovalLog approvalLogStatus1 = new ApprovalLog(approvalLog.getAlarmId(), approvalLog.getApprovalStatus(), + approvalLog.getApprovalPerson(), approvalLog.getFlowStatus(), + null, approvalLog.getDescn(), ""); + if (approvalLogStatus != null) { + approvalLogStatus1.setId(approvalLogStatus.getId()); + approvalLogMapper.updateById(approvalLogStatus1); + } else { + approvalLogMapper.insert(approvalLogStatus1); + } + } + } + //1、更新报警表流程状态 + ApprovalLog approvalLog = approvalLogs.get(approvalLogs.size() - 1); + AlarmRecords alarmRecords = getById(approvalLog.getAlarmId()); + alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus()); + alarmRecords.setProcessStatus(approvalLog.getFlowStatus()); + this.baseMapper.updateById(alarmRecords); + } + return true; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java index dfc3658..6559764 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmRuleDeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -40,13 +44,25 @@ Page alarmRuleDevicePage = this.baseMapper.listPage(page, request); List alarmRuleDeviceList = alarmRuleDevicePage.getRecords(); alarmRuleDeviceList.forEach(alarmRuleDevice -> { - AlarmLevelControl alarmLevelControl = iAlarmLevelControlService.getById(alarmRuleDevice.getAlarmLevelId()); - alarmRuleDevice.setAlarmRuleName(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControl != null ? alarmLevelControl.getAlarmLevel() : - "").concat("]:").concat(alarmRuleDevice.getAlarmThreshold()).concat("%LEL")); + List alarmLevelIds = Arrays.stream(alarmRuleDevice.getAlarmLevelIds().split(",")) + .map(Long::valueOf) + .collect(Collectors.toList()); + List alarmLevelControls = iAlarmLevelControlService.listByIds(alarmLevelIds); + Map entityMap = alarmLevelControls.stream().collect(Collectors.toMap(AlarmLevelControl::getId, e -> e)); // 创建一个ID到实体的映射 + alarmLevelControls = alarmLevelIds.stream().map(entityMap::get).collect(Collectors.toList()); + if (alarmLevelControls != null && alarmLevelControls.size() > 0) { + String alarmRuleName = ""; + for (int i = 0; i < alarmLevelControls.size(); i++) { + alarmRuleName = alarmRuleName.concat(alarmRuleDevice.getAlarmType().concat("[").concat(alarmLevelControls.get(i).getAlarmLevel()).concat("]:").concat(alarmRuleDevice.getAlarmThresholds().split(",")[i]).concat("%LEL")).concat(","); + } + if (ObjectUtil.isNotEmpty(alarmRuleName)) + alarmRuleDevice.setAlarmRuleName(alarmRuleName.substring(0, alarmRuleName.length() - 1)); + } }); return alarmRuleDevicePage; } + @Override public List listByCode(String devCode) { @@ -81,4 +97,22 @@ return this.baseMapper.getRuleList(devcode); } + + @Override + public boolean saveBatchAlarmRuleDevice(List alarmRuleDeviceList) { + if (null != alarmRuleDeviceList) { + String createUser = permissionContext.getAuthService().getLoginUser().getName(); + alarmRuleDeviceList.forEach(alarmRuleDevice -> { + alarmRuleDevice.setCreateUser(createUser); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("DEVCODE", alarmRuleDevice.getDevcode()); + queryWrapper.eq("ALARM_TYPE_ID", alarmRuleDevice.getAlarmTypeId()); + queryWrapper.eq("ALARM_LEVEL_ID", alarmRuleDevice.getAlarmLevelId()); + queryWrapper.eq("ALARM_RULE_ID", alarmRuleDevice.getAlarmRuleId()); + this.baseMapper.delete(queryWrapper); + }); + return this.saveBatch(alarmRuleDeviceList); + } + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java index 836287f..b8b5a87 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/ApprovalLogServiceImpl.java @@ -1,9 +1,12 @@ package com.casic.missiles.modular.alarm.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.modular.alarm.dao.ApprovalLogMapper; +import com.casic.missiles.modular.alarm.dto.ApprovalRequestDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import com.casic.missiles.modular.alarm.entity.ApprovalLog; import com.casic.missiles.modular.alarm.entity.SuspendLog; @@ -41,4 +44,13 @@ }); return this.saveBatch(approvalLogList); } + + @Override + public List getApprovalLogs(ApprovalRequestDTO approvalRequestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getAlarmId()),"ALARM_ID",approvalRequestDTO.getAlarmId()); + queryWrapper.eq(ObjectUtil.isNotEmpty(approvalRequestDTO.getFlowStatus()),"FLOW_STATUS",approvalRequestDTO.getFlowStatus()); + queryWrapper.orderByDesc("APPROVAL_TIME"); + return this.list(queryWrapper); + } } diff --git a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java index a1b720c..c0b099b 100644 --- a/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java +++ b/casic-data/src/main/java/com/casic/missiles/modular/data/dao/DataGasMapper.java @@ -24,9 +24,9 @@ @Cacheable(value = "busLedgersCache", key = "#a0") @Select("WITH device_temp as ( " + "SELECT bl.LEDGER_ID,bl.TYPE from bus_device_ledger bl where bl.DEVICE_ID in ( " + - "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID=1)" + - "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place from device_temp dt " + - "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID=1") + "SELECT bd.id FROM `bus_device` bd where bd.DEVCODE= #{devCode} and bd.VALID>0) and bl.VALID='1')" + + "SELECT bv.ledgerName,bv.tagNumber,bv.ledgerCode,bv.place,bv.deptid from device_temp dt " + + "left join bus_ledger_all_view bv on bv.id= dt.LEDGER_ID and dt.TYPE=bv.TYPE and bv.VALID='1' ") List getListByDevCode(@Param("devCode") String devCode); } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java index 4d74341..509bd7b 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java @@ -75,6 +75,7 @@ } + @BussinessLog(value = "编辑设备", key = "devcode,deviceName,deviceType,installDate,productId", dict = DeviceDict.class) @ApiOperation("编辑") @PostMapping("/edit") @ResponseBody diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml index 12ff233..afcaeff 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceMapper.xml @@ -74,7 +74,7 @@ and bd.valid =#{request.valid} - and bd.CELL #{request.cell} + and CAST(bd.CELL AS UNSIGNED) #{request.cell} and bd.CELL > 0 diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml index dc38825..e9a5cef 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/mapping/BusDeviceStaticsMapper.xml @@ -36,7 +36,7 @@ ) SELECT count(1) as `value`, bt.VALID as `name` FROM device_temp bt where bt.VALID>1 GROUP BY bt.VALID UNION ALL - SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE =0 + SELECT count(1) as `value`, '0' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE ='0' UNION ALL SELECT count(1) as `value`, '1' as `name` FROM device_temp bt where bt.VALID>0 AND bt.ONLINE_STATE >0 @@ -170,7 +170,7 @@ LEFT JOIN base_device_type bt on bt.id = bd.DEVICE_TYPE WHERE bd.VALID > 0 - AND bd.ONLINE_STATE =0 + AND bd.ONLINE_STATE ='0' and bv.DEPTID in (${deptStrs}) @@ -180,10 +180,18 @@ and bd.DEVICE_TYPE = #{request.devTypeId} - - bd.CELL 10 + + and bd.CELL 10 - + + and bd.CELL ]]> 10 + + + and bd.CELL = -1 + + + and bd.CELL = -1 + @@ -240,8 +248,8 @@ FROM bus_device_ledger bdl LEFT JOIN bus_device bd ON bd.id = bdl.DEVICE_ID - AND bd.valid = 1 - AND bdl.VALID = 1 + AND bd.valid = '1' + AND bdl.VALID = '1' LEFT JOIN bus_ledger_all_view bv ON bv.id = bdl.LEDGER_ID AND bv.type = bdl.TYPE diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java index 9ce1ba3..83ab40a 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusRepairLogRequestDTO.java @@ -25,6 +25,9 @@ @ApiModelProperty("设备类型id") private Long deviceType; + @ApiModelProperty("管理单位id") + private Long deptId; + @ApiModelProperty("运维类型,字典值") private String repairType; diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java new file mode 100644 index 0000000..8aa38f6 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataGasOtherExcelDTO.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 气体导出内容 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataGasOtherExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("燃气浓度(%LEL)") + private String gasval; + @ExcelProperty("电池电压(mV)") + private String vbat; + @ExcelProperty("传感器状态") + private String ssState; + @ExcelProperty("温度(℃)") + private String temp; + @ExcelProperty("信号质量") + private String sinr; + @ExcelProperty("采集时间") + private String uptime; + @ExcelProperty("上传时间") + private String logtime; + + + public DataGasOtherExcelDTO(String devcode, String strength, + String cell, String rsrp, + String temp,String ssState, + String uptime, String logtime) { + this.devcode = devcode; + this.gasval = strength; + this.vbat = cell; + this.sinr = "1".equals(rsrp)?"信号弱":("2".equals(rsrp)?"信号中等":"信号强"); + this.uptime = uptime; + this.logtime = logtime; + this.ssState = "0".equals(ssState)?"正常":"传感器通讯异常"; + this.temp = temp; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java new file mode 100644 index 0000000..2e0e5c3 --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPanExcelDTO.java @@ -0,0 +1,44 @@ +package com.casic.missiles.modular.device.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 云台监测数据 + */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@Data +@ExcelIgnoreUnannotated +@NoArgsConstructor +public class DataPanExcelDTO { + + @ExcelProperty("设备编号") + private String devcode; + @ExcelProperty("浓度") + private String strength; + @ExcelProperty("水平位置") + private String x; + @ExcelProperty("垂直位置") + private String y; + @ExcelProperty("采集时间") + private String uptime; + + + public DataPanExcelDTO(String devcode, String strength, String x, String y, String logtime) { + this.devcode = devcode; + this.strength = strength; + this.x = x; + this.y = y; + this.uptime = logtime; + } +} diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java index 976eb37..834e693 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/DataPipeOtherExcelDTO.java @@ -33,35 +33,33 @@ @ExcelProperty("设备编号") private String devcode; + @ExcelProperty("左侧甲烷值") + private String leftGas; - @ExcelProperty("左侧指示带长度") + @ExcelProperty("右侧甲烷值") + private String rightGas; +// @ExcelProperty("左侧指示带长度") private String leftLength; - @ExcelProperty("右侧指视带长度") +// @ExcelProperty("右侧指示带长度") private String rightLength; - @ExcelProperty("地层温度") +// @ExcelProperty("地层温度") private String temperature; - @ExcelProperty("地层湿度") +// @ExcelProperty("地层湿度") private String humidity; - @ExcelProperty("电池电压") + @ExcelProperty("电池电压(V)") private String vbat; @ExcelProperty("桩倾斜报警") private String pipeInclineAlarm; - @ExcelProperty("采集时间") - private String uptime; - - @ExcelProperty("上传时间") - private String logtime; - @ExcelProperty("桩拆卸报警") private String pipeBreakAlarm; - @ExcelProperty(" 燃气泄漏报警") +// @ExcelProperty(" 燃气泄漏报警") private String gasAlarm; @ExcelProperty("左断线报警") @@ -70,20 +68,22 @@ @ExcelProperty("左振动报警") private String leftVibrateAlarm; + @ExcelProperty("右断线报警") + private String rightOffLineAlarm; + @ExcelProperty("右振动报警") private String rightVibrateAlarm; - @ExcelProperty("右断线报警") - private String rightOffLineAlarm; + @ExcelProperty("采集时间") + private String uptime; + + @ExcelProperty("上传时间") + private String logtime; @ExcelProperty("有报警图像输出") private String pictureAlarm; - @ExcelProperty("左侧甲烷值") - private String leftGas; - @ExcelProperty("右侧甲烷值") - private String rightGas; public DataPipeOtherExcelDTO(String devcode, String leftLength, String rightLength, String temperature, String humidity, String vbat, diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java new file mode 100644 index 0000000..5a6190d --- /dev/null +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/PanDeviceDTO.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.device.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PanDeviceDTO { + + @ApiModelProperty("设备编号") + private String devcode; + +} 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 d5fc2e8..ccaa2ba 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 @@ -138,6 +138,7 @@ try { switch (requestDTO.getTypeName()) { case "燃气智能监测终端": + case "燃气智能监测终端(一体化)": List gasDtoList = new ArrayList<>(); List> objectList = this.monitorData(requestDTO); objectList.forEach(object -> { @@ -164,15 +165,37 @@ dtoPipeOtherList.add(new DataPipeOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "LEFT_LENGTH"), CommonUtil.getString(object, "RIGHT_LENGTH"), CommonUtil.getString(object, "TEMPERATURE"), CommonUtil.getString(object, "HUMIDITY"), CommonUtil.getString(object, "VBAT"), - "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "是" : "否", CommonUtil.getString(object, "UPTIME"), - CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "是" : "否", - "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "是" : "否", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "是" : "否", + "1".equals(CommonUtil.getString(object, "PIPE_INCLINE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "UPTIME"), + CommonUtil.getString(object, "LOGTIME"), "1".equals(CommonUtil.getString(object, "PIPE_BREAK_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "GAS_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "LEFT_OFF_LINE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "LEFT_VIBRATE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "RIGHT_VIBRATE_ALARM")) ? "报警" : "正常", + "1".equals(CommonUtil.getString(object, "RIGHT_OFF_LINE_ALARM")) ? "报警" : "正常", "1".equals(CommonUtil.getString(object, "PICTURE_ALARM")) ? "报警" : "正常", CommonUtil.getString(object, "LEFT_GAS"), CommonUtil.getString(object, "RIGHT_GAS"))); }); iBaseExportService.exportExcel(response, DataPipeOtherExcelDTO.class, dtoPipeOtherList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); break; + case "管网哨兵(一体化)": + List gasOtherDtoList = new ArrayList<>(); + List> objectOtherList = this.monitorData(requestDTO); + objectOtherList.forEach(object -> { + + gasOtherDtoList.add(new DataGasOtherExcelDTO(CommonUtil.getString(object, "DEVCODE"), CommonUtil.getString(object, "GASVAL"), + CommonUtil.getString(object, "VBAT"), CommonUtil.getString(object, "sig"), + CommonUtil.getString(object, "temp"), CommonUtil.getString(object, "ssState"), + CommonUtil.getString(object, "UPTIME"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataGasOtherExcelDTO.class, gasOtherDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; + case "场站监测云台": + List panDtoList = new ArrayList<>(); + List> objectPanList = this.monitorData(requestDTO); + objectPanList.forEach(object -> { + //ID,LEDGER_NUMBER,DEVICE_CODE,CONCENTRATION,LOGTIME,DIRCETION,PITCH + panDtoList.add(new DataPanExcelDTO(CommonUtil.getString(object, "DEVICE_CODE"), CommonUtil.getString(object, "CONCENTRATION"), + CommonUtil.getString(object, "DIRCETION"), CommonUtil.getString(object, "PITCH"), CommonUtil.getString(object, "LOGTIME"))); + }); + iBaseExportService.exportExcel(response, DataPanExcelDTO.class, panDtoList, ExportEnum.DEVICE_DATA_EXPORT.getSheetName()); + break; default: break; @@ -371,7 +394,7 @@ Long pipeLedgerId = IdUtil.getSnowflake(1, 2).nextId(); BusLedgerPipe busLedgerPipe = new BusLedgerPipe(pipeLedgerId, deviceImportDTO.getPipeCode(), deviceImportDTO.getTagNumber(), deviceImportDTO.getTagNumber(), deviceImportDTO.getLng(), deviceImportDTO.getLat(), - deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(),""); + deviceImportDTO.getPosition(), deviceImportDTO.getDeptid(), deviceImportDTO.getDevCode(), deviceImportDTO.getWatchObject(), ""); // busLedgerPipe = iBusLedgerPipeService.saveBusLedgerPipe(busLedgerPipe); pipeList.add(busLedgerPipe); deviceImportDTO.setLedgerIds(Arrays.asList(pipeLedgerId)); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java index 5e7568b..aec050f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusRepairLogServiceImpl.java @@ -3,7 +3,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.application.context.AbstractPermissionContext; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; import com.casic.missiles.modular.device.dto.BusRepairLogRequestDTO; import com.casic.missiles.modular.device.entity.BaseDeviceType; import com.casic.missiles.modular.device.entity.BusRepairLog; @@ -15,6 +18,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -32,13 +36,20 @@ private final AbstractDictService abstractDictService; private final IBaseDeviceTypeService deviceTypeService; private final CommonServer commonServer; + private final AbstractPermissionContext permissionContext; @Override public Page listPage(Page page, BusRepairLogRequestDTO requestDTO) { - //todo:安装位置和权限 + List deptIds = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(requestDTO.getDeptId())) { + deptIds = commonServer.getDeptIds(requestDTO.getDeptId()); + } else { + deptIds = getDeptids(); + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getDevcode()), "DEVCODE", requestDTO.getDevcode()); - queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getAddress()), "LEDGER_NUMBER", requestDTO.getAddress()); + queryWrapper.and(ObjectUtil.isNotEmpty(requestDTO.getAddress()), busRepairLogQueryWrapper -> busRepairLogQueryWrapper.like("LEDGER_NUMBER", requestDTO.getAddress()).or().like("LEDGER_NAME", requestDTO.getAddress())); + queryWrapper.in(ObjectUtil.isNotEmpty(deptIds), "DEPTID", deptIds); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getDeviceType()), "DEVICE_TYPE", requestDTO.getDeviceType()); queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRepairType()), "REPAIR_TYPE", requestDTO.getRepairType()); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRepairContent()), "REPAIR_CONTENT", requestDTO.getRepairContent()); @@ -59,4 +70,12 @@ }); return repairLogPage; } + public List getDeptids() { + AuthUser authUser = permissionContext.getAuthService().getLoginUser(); + String scopeType = authUser.getScopeType(); + if (!ScopeEnums.ALL_TYPE.getCode().equals(scopeType)) { + return authUser.getDataScope(); + } + return null; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java index b14b4ba..bc68832 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/CtUserServiceImpl.java @@ -115,7 +115,7 @@ if (ctUserIds.contains(ctUser.getUserId())) { user.setAttr1("monitor"); } - user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); +// user.setRoleId(String.valueOf(roleIdCache.get(roleDeptId))); user.setStatus("1"); user.setSyncId(ctUser.getUserId()); user.setSyncName(ctUser.getUserName()); diff --git a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java index 863b091..e505038 100644 --- a/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java +++ b/casic-job/src/main/java/com/casic/missiles/job/handler/CheckingJob.java @@ -87,30 +87,30 @@ } - @Scheduled(cron = "0 0 23 * * ?") - public void executeSyncData() { - logger.info("开始执行全量同步数据任务"); - if (!enabled) { - return; - } - try { - //先同步部门 - iBusLedgerService.synAllDept(); - //同步台账 - iBusLedgerService.synAllLedger(); - //同步用户 - iCtUserService.synAllUsers(); - //同步网格 - iBusGridService.synAllGrids(); - - //同步任务监控日志 - iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); - } catch (Exception ex) { - //同步任务异常监控日志 - iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); - logger.error(ex.getMessage(), ex); - } - } +// @Scheduled(cron = "0 0 23 * * ?") +// public void executeSyncData() { +// logger.info("开始执行全量同步数据任务"); +// if (!enabled) { +// return; +// } +// try { +// //先同步部门 +// iBusLedgerService.synAllDept(); +// //同步台账 +// iBusLedgerService.synAllLedger(); +// //同步用户 +// iCtUserService.synAllUsers(); +// //同步网格 +// iBusGridService.synAllGrids(); +// +// //同步任务监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","1","部门、台账、用户同步任务","1"); +// } catch (Exception ex) { +// //同步任务异常监控日志 +// iMonitorLogService.saveMonitorLog("synchronous","0","部门、台账、用户同步任务","1"); +// logger.error(ex.getMessage(), ex); +// } +// } @Scheduled(cron = "0 0 2 * * ?") public void checkServer() { diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java index dc516a3..e0e6c77 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ApprovalStatusEnum.java @@ -12,7 +12,8 @@ UNPROCESS("6", "待处置"), PROCESSED("7", "已处置"), FINISHED("8", "数据恢复正常,报警解除"), - DELETED("9", "删除"); + DELETED("9", "删除"), + NONEEDPROCESS("10", "无需处置"); private String code; private String value; diff --git a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java index 9caa947..438fca3 100644 --- a/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java +++ b/casic-public/src/main/java/com/casic/missiles/util/CommonUtil.java @@ -13,7 +13,7 @@ public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static boolean isNumber(String str) { - if(StrUtil.isNotEmpty(str)) { + if (StrUtil.isNotEmpty(str)) { return str.matches("-?\\d+(\\.\\d+)?"); } return false; @@ -41,4 +41,27 @@ return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } + + public static String getRsrp(String rsrp) { + + if (isNumber(rsrp)) { + if (Integer.valueOf(rsrp) > -60) { + return "非常好"; + } else if (Integer.valueOf(rsrp) > -70) { + return "良好"; + } else if (Integer.valueOf(rsrp) > -80) { + return "一般"; + } else if (Integer.valueOf(rsrp) > -90) { + return "稍弱"; + } else if (Integer.valueOf(rsrp) > -100) { + return "较弱"; + } else if (Integer.valueOf(rsrp) > -110) { + return "差"; + } else { + return "很差"; + } + } + return ""; + } + } diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml index b30bca0..b5d213d 100644 --- a/casic-rest-api/pom.xml +++ b/casic-rest-api/pom.xml @@ -80,6 +80,12 @@ 1.59 + + io.projectreactor + reactor-core + 3.4.11 + + diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java index 79b53ad..bd056bc 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/controller/PtzController.java @@ -2,10 +2,7 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.modular.device.dto.PtzControlDTO; -import com.casic.missiles.modular.device.dto.PtzPlayBackDTO; -import com.casic.missiles.modular.device.dto.PtzPlayRealDTO; -import com.casic.missiles.modular.device.dto.PtzXtControlDTO; +import com.casic.missiles.modular.device.dto.*; import com.casic.missiles.modular.ptz.service.IPtzService; import com.casic.missiles.util.ReturnUtil; import io.swagger.annotations.Api; @@ -64,10 +61,10 @@ } @ApiOperation("获取迅腾云台设备编号") - @PostMapping("/getOneDevice/{deviceCode}") + @PostMapping("/getOneDevice") @ResponseBody - public ReturnDTO getOneDevice(@PathVariable("deviceCode") String deviceCode) { - return ReturnUtil.success(iPtzService.getOneDevice(deviceCode)); + public ReturnDTO getOneDevice(@RequestBody PanDeviceDTO panDeviceDTO) { + return ReturnUtil.success(iPtzService.getOneDevice(panDeviceDTO.getDevcode())); } @ApiOperation("设备控制接口") @@ -91,4 +88,12 @@ public ReturnDTO getVideoUrl(@RequestBody PtzPlayRealDTO ptzPlayRealDTO) { return ReturnUtil.success(iPtzService.getVideoUrl(ptzPlayRealDTO)); } + + + + @PostMapping("/test") + @ResponseBody + public ReturnDTO test(String devcode) { + return ReturnUtil.success(devcode); + } } diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java index 9d7be9a..8eea20c 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/ptz/service/impl/PtzServiceImpl.java @@ -16,6 +16,9 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Map; @@ -51,7 +54,8 @@ @Override public String getOneDevice(String deviceCode) { - String result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); + String result = null; + result = HttpClientUtils.get(brPanGetDevcodeUrl + "/" + deviceCode); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { @@ -88,7 +92,7 @@ @Override public String getVideoUrl(PtzPlayRealDTO ptzPlayRealDTO) { - String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId()+"/"+ptzPlayRealDTO.getStreamType()); + String result = HttpClientUtils.get(brPanRealVideoUrl + "/" + ptzPlayRealDTO.getDeviceId() + "/" + ptzPlayRealDTO.getStreamType()); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSON.parseObject(result); if ("200".equals(jsonObject.getString("code"))) { 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 40036ae..34d8b2a 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,7 +1,5 @@ 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; @@ -12,11 +10,9 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.PriorityBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; @Api(tags = "sensorhub接收设备数据api") @Slf4j @@ -24,22 +20,23 @@ @RestController @RequestMapping("/device") public class ReceiveDataController { - private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 20, 60, - TimeUnit.SECONDS, new PriorityBlockingQueue<>(),new ThreadPoolExecutor.CallerRunsPolicy()); + private final ExecutorService customThreadPool = Executors.newFixedThreadPool(15); // 自定义线程池 @ApiOperation("接收设备数据入口") @PostMapping("/receiveData") @ResponseBody public ReturnDTO getProcessResult(@RequestBody Map map) { - if (!threadPoolExecutor.isShutdown()) { - threadPoolExecutor.execute( - () -> { - String receiveData = JSON.toJSONString(map); - log.info(">>>>>>接收数<<<<<<:" + receiveData); - ResponseResolver.makeResponse(receiveData); - } - ); + if (map == null || map.isEmpty()) { + log.warn("接收到空或无效的数据"); + return ReturnUtil.failed("接收到空或无效的数据"); } + + log.info(">>>>>> 接收数据 <<<<<<: {}", map.toString()); + + CompletableFuture.runAsync(() -> { + ResponseResolver.makeResponse(map); + } + ); return ReturnUtil.success(); } -} +} \ No newline at end of file diff --git a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java index 5682291..4c782f1 100644 --- a/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java +++ b/casic-rest-api/src/main/java/com/casic/missiles/modular/sensorHub/resolver/ResponseResolver.java @@ -1,10 +1,14 @@ package com.casic.missiles.modular.sensorHub.resolver; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.casic.missiles.enums.DeviceTypeEnum; import com.casic.missiles.modular.data.service.IDataAbstractService; import com.casic.missiles.modular.data.service.impl.*; import com.casic.missiles.util.SpringContextUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.util.Map; @@ -14,7 +18,7 @@ @Component public class ResponseResolver { - + private static final Logger logger = LoggerFactory.getLogger(ResponseResolver.class); private static DataGasServiceImpl dataGasService = SpringContextUtil.getApplicationContext().getBean(DataGasServiceImpl.class); private static DataGasliquidGasServiceImpl dataGasliquidGasService = SpringContextUtil.getApplicationContext().getBean(DataGasliquidGasServiceImpl.class); private static DataTubeOtherServiceImpl dataTubeOtherService = SpringContextUtil.getApplicationContext().getBean(DataTubeOtherServiceImpl.class); @@ -41,13 +45,19 @@ return Optional.ofNullable(abstractResponseHashMap.get(type)); } - public static void makeResponse(String content) { - JSONObject json = JSONObject.parseObject(content); - if (null == json) return; -// IDataAbstractService response = abstractResponseHashMap.get(json.getString("devType")); -// response.process(content); - - ResponseResolver.getProcessor(json.getString("devType")).ifPresent( - processor -> processor.process(content)); + public static boolean makeResponse(Map map) { + try { + String content = JSON.toJSONString(map); + JSONObject json = JSONObject.parseObject(content); + String devType = json.getString("devType"); + ResponseResolver.getProcessor(devType).ifPresent(processor -> processor.process(content)); + return true; + } catch (JSONException e) { + logger.error("JSON parsing error: {}", e.getMessage(), e); + return false; + } catch (Exception e) { + logger.error("Unexpected error: {}", e.getMessage(), e); + return false; + } } } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index f4cf4cf..e109835 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -5,8 +5,8 @@ com.casic casic-iot-platform - 2.0.0 ../pom.xml + 2.0.0.alpha casic-server 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 0b6b360..1eb5c78 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_imei_iccid") // 设置需要生成的表名 + builder.addInclude("data_gasliquid_liquid") // 设置需要生成的表名 .addTablePrefix() // 设置过滤表前缀 .entityBuilder() //实体类配置 .enableLombok() //使用lombok diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 4c7d9f8..0df8dc1 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -17,12 +17,13 @@ redis: host: 172.17.112.21 port: 6379 - password: ew5T4K3#203lwh + password: serializer: org.springframework.data.redis.serializer.StringRedisSerializer redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer casic: #kaptcha-open: false #是否开启登录时验证码 (true/false) no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/websocket/*,/v2/api-docs,/v2/api-docs-ext,/doc.html,/v2/api-docs/swagger-ui.html,/swagger-resources,/webjars/**,/device/receiveData,/alarmReturn,/getMap,/system/busGrid/synAllGrids,/system/busLedger/synAllLedger,/system/busLedger/synAllDept,/system/ctUser/synAllUsers,/sync/token,/ptz/acceptGasData,/ptz/acceptAlarmData +# no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/websocket/*,/device/receiveData,/alarmReturn,/getMap,/system/busGrid/synAllGrids,/system/busLedger/synAllLedger,/system/busLedger/synAllDept,/system/ctUser/synAllUsers,/sync/token,/ptz/acceptGasData,/ptz/acceptAlarmData,/ptz/* #flowable数据源和多数据源配置 db: init: diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index d3aaf7c..17caa1f 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -21,7 +21,7 @@ ################### guns配置 ################### casic: swagger-open: true #是否开启swagger (true/false) - kaptcha-open: false #是否开启登录时验证码 (true/false) + kaptcha-open: true #是否开启登录时验证码 (true/false) muti-datasource-open: false #是否开启多数据源(true/false) spring-session-open: false #是否开启spring session,如果是多机环境需要开启(true/false) session-invalidate-time: 86400 #session失效时间(只在单机环境下生效,,多机环境在SpringSessionConfig类中配置) 单位:秒 @@ -40,6 +40,8 @@ config-prefix: 'Casic:' rsa-private-key: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAK7mTyBxMUnLlS0x+a0qJHd/8RxR73eTN+15GPr6wzl8dG86Jvzb66pAyOBpFmIxyvceIcgVjm8Dpz5F9vlHYI6K2g6HHID1TZ4teSfPEtRAgCpcC8pA7wqd6sDVCNx2zvGEkHZc+FYWVjhFW0xPbCvaUx3b1AMTgX+TPIOE0GnHAgMBAAECgYEAhJApfzRsIDu++L99N4POmgiOLmHn+CDMbiCwD2LLX6H1+mwAKv1hVOy/lF/ySEDnToA3KJk2GOyS8X9EH1K7WmxRcJ1am1JLwy+spHkExQzvAO9mrEhtavpwAZLiBoCUB4uQazETHncM0lNXtUYY8Ydd/zKodCMVPN4tql84f0kCQQDrPEgk6vdAc8vW1JL3ldhRkbl7DKuvDhhoixGEbXrsXXiKN6iB0A3lNTptMxcd1TjSJz8CF8piGRpVyLGoZOYLAkEAvlaXoVXndT+hbsStjORp2RGxZWMPyyyJ4Kw2TnMaUuODXA0PtnYcSA5lI6SpVAvTthSX7VDi5C9xLyc+QRvMtQJAVjzhTfd98XkCL536yx16El1UHFJG1oRaWmkxYNUqDWEvAazp770weukKpGHohZ1XmWOd68yA+3msd+p9hviGhQJAUIntgUwLM3aoRWmdkhd4nmw5JxCCt1LySIo2NH3J7rbsd3/jXS6fCvJkY2+iYrjabZpLKxTl3O4iM3SkiAJOXQJBAN++IAMMs7HVTQnsIN+L+tQwcWM5jn0sSRLGFvSkPjlT2W++qJNTW/oswmcQTPFn7Vf3GaE5JF6XAxrZMOZBG00= #用户加密登录私钥(不配置则每个用户动态生成) rsa-public-key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu5k8gcTFJy5UtMfmtKiR3f/EcUe93kzfteRj6+sM5fHRvOib82+uqQMjgaRZiMcr3HiHIFY5vA6c+Rfb5R2COitoOhxyA9U2eLXknzxLUQIAqXAvKQO8KnerA1Qjcds7xhJB2XPhWFlY4RVtMT2wr2lMd29QDE4F/kzyDhNBpxwIDAQAB #用户密码加密登录公钥 + admin: + enable-lock: false xxl: job: admin: