diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + *
+ * 设备报警 前端控制器 + *
@@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 5fc8eea..21c2703 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,7 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), + LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), BUSPATROL_LOG_EXPORT("BusPatrolLogResponse", "BusPatrolLogResponse", "巡检日志"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 5fc8eea..21c2703 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,7 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), + LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), BUSPATROL_LOG_EXPORT("BusPatrolLogResponse", "BusPatrolLogResponse", "巡检日志"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml new file mode 100644 index 0000000..c82a3bd --- /dev/null +++ b/casic-rest-api/pom.xml @@ -0,0 +1,79 @@ + + + 4.0.0 + + com.casic + casic-iot-platform + 2.0.0.alpha + ../pom.xml + + + casic-rest-api + 2.0.0 + jar + casic-rest-api + casic 外部接口子包 + + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-support + ${admin.version} + + + + + + + + + + org.springframework.boot + spring-boot-starter-websocket + 2.4.5 + + + + io.swagger + swagger-annotations + 1.5.18 + compile + + + + + + + + + + + junit + junit + test + + + com.casic + casic-alarm + 2.0.0 + + + + + + + src/main/java + + **/*.xml + + + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0
@@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 5fc8eea..21c2703 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,7 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), + LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), BUSPATROL_LOG_EXPORT("BusPatrolLogResponse", "BusPatrolLogResponse", "巡检日志"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 5fc8eea..21c2703 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,7 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), + LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), BUSPATROL_LOG_EXPORT("BusPatrolLogResponse", "BusPatrolLogResponse", "巡检日志"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml new file mode 100644 index 0000000..c82a3bd --- /dev/null +++ b/casic-rest-api/pom.xml @@ -0,0 +1,79 @@ + + + 4.0.0 + + com.casic + casic-iot-platform + 2.0.0.alpha + ../pom.xml + + + casic-rest-api + 2.0.0 + jar + casic-rest-api + casic 外部接口子包 + + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-support + ${admin.version} + + + + + + + + + + org.springframework.boot + spring-boot-starter-websocket + 2.4.5 + + + + io.swagger + swagger-annotations + 1.5.18 + compile + + + + + + + + + + + junit + junit + test + + + com.casic + casic-alarm + 2.0.0 + + + + + + + src/main/java + + **/*.xml + + + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0
@@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 5fc8eea..21c2703 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,7 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), + LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), BUSPATROL_LOG_EXPORT("BusPatrolLogResponse", "BusPatrolLogResponse", "巡检日志"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 5fc8eea..21c2703 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,7 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), + LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), BUSPATROL_LOG_EXPORT("BusPatrolLogResponse", "BusPatrolLogResponse", "巡检日志"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml new file mode 100644 index 0000000..c82a3bd --- /dev/null +++ b/casic-rest-api/pom.xml @@ -0,0 +1,79 @@ + + + 4.0.0 + + com.casic + casic-iot-platform + 2.0.0.alpha + ../pom.xml + + + casic-rest-api + 2.0.0 + jar + casic-rest-api + casic 外部接口子包 + + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-support + ${admin.version} + + + + + + + + + + org.springframework.boot + spring-boot-starter-websocket + 2.4.5 + + + + io.swagger + swagger-annotations + 1.5.18 + compile + + + + + + + + + + + junit + junit + test + + + com.casic + casic-alarm + 2.0.0 + + + + + + + src/main/java + + **/*.xml + + + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0
@@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 5fc8eea..21c2703 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,7 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), + LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), BUSPATROL_LOG_EXPORT("BusPatrolLogResponse", "BusPatrolLogResponse", "巡检日志"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 5fc8eea..21c2703 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,7 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), + LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), BUSPATROL_LOG_EXPORT("BusPatrolLogResponse", "BusPatrolLogResponse", "巡检日志"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml new file mode 100644 index 0000000..c82a3bd --- /dev/null +++ b/casic-rest-api/pom.xml @@ -0,0 +1,79 @@ + + + 4.0.0 + + com.casic + casic-iot-platform + 2.0.0.alpha + ../pom.xml + + + casic-rest-api + 2.0.0 + jar + casic-rest-api + casic 外部接口子包 + + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-support + ${admin.version} + + + + + + + + + + org.springframework.boot + spring-boot-starter-websocket + 2.4.5 + + + + io.swagger + swagger-annotations + 1.5.18 + compile + + + + + + + + + + + junit + junit + test + + + com.casic + casic-alarm + 2.0.0 + + + + + + + src/main/java + + **/*.xml + + + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0
@@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 5fc8eea..21c2703 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,7 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), + LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), BUSPATROL_LOG_EXPORT("BusPatrolLogResponse", "BusPatrolLogResponse", "巡检日志"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -52,6 +52,34 @@ ORDER BY rd.TS DESC + + SELECT + rd.*, + bt.TYPE_NAME AS devTypeName, + lr.POSITION, + lr.TAG_NUMBER as tagNumber, + sd.full_name as deptName, + lr.DEPTID as deptid + FROM + alarm_records rd + LEFT JOIN bus_device bd ON rd.DEVCODE = bd.DEVCODE + 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 + 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 sys_dept sd ON sd.id = lr.DEPTID + where rd.STATUS =1 and rd.EXCEPTION_TYPE=1 + + and rd.DEVCODE like concat('%', #{request.devCode}, '%') + + + and bd.DEVICE_TYPE =#{request.devTypeId} + + ORDER BY rd.TS DESC + + SELECT @@ -67,11 +95,11 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID and lr.type=bl.type + 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 sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS = 0 + where rd.STATUS = 0 and rd.EXCEPTION_TYPE=0 and rd.DEVCODE like concat('%', #{request.devCode}, '%') @@ -100,7 +128,7 @@ 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 - LEFT JOIN bus_ledger lr ON lr.ID = bl.LEDGER_ID + 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 sys_dept sd ON sd.id = lr.DEPTID diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java index 80779a9..b91028f 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDTO.java @@ -24,6 +24,9 @@ @ApiModelProperty("管理单位") private Long deptId; + @ApiModelProperty("厂商") + private Long manufactureId; + @ApiModelProperty("报警状态") private String processStatus; diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java new file mode 100644 index 0000000..ca81388 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceAlarmResponseDTO.java @@ -0,0 +1,36 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceAlarmResponseDTO { + + @ApiModelProperty("设备编号") + private String devCode; + + @ApiModelProperty("报警类型") + private String alarmType; + + @ApiModelProperty("报警原因") + private String alarmContent; + + @ApiModelProperty("设备类型id") + private Long devTypeId; + + @ApiModelProperty("位置") + private String position; + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("厂商") + private String manufactureName; + + @ApiModelProperty("状态") + private String processStatus; + + @ApiModelProperty("报警时间") + private String alarmTime; + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java index fc1e325..2662944 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/AlarmRecords.java @@ -45,8 +45,8 @@ private String ledgerNumber; @ApiModelProperty("报警类型") - @TableField("ALARM_TYPE") - private String alarmType; + @TableField("ALARM_TYPE_ID") + private String alarmTypeId; @ApiModelProperty("报警内容") @TableField("ALARM_CONTENT") @@ -99,6 +99,10 @@ @TableField("REAL_ALARM") private String realAlarm; + @ApiModelProperty("异常类型(1:设备异常,0:数据异常)") + @TableField("EXCEPTION_TYPE") + private String exceptionType; + @ApiModelProperty("产权单位") @TableField(exist = false) private String responsibleDeptName; 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 8013db0..820c173 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 @@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import java.util.List; +import java.util.Map; /** * @@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 5fc8eea..21c2703 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,7 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), + LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), BUSPATROL_LOG_EXPORT("BusPatrolLogResponse", "BusPatrolLogResponse", "巡检日志"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml new file mode 100644 index 0000000..c82a3bd --- /dev/null +++ b/casic-rest-api/pom.xml @@ -0,0 +1,79 @@ + + + 4.0.0 + + com.casic + casic-iot-platform + 2.0.0.alpha + ../pom.xml + + + casic-rest-api + 2.0.0 + jar + casic-rest-api + casic 外部接口子包 + + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-support + ${admin.version} + + + + + + + + + + org.springframework.boot + spring-boot-starter-websocket + 2.4.5 + + + + io.swagger + swagger-annotations + 1.5.18 + compile + + + + + + + + + + + junit + junit + test + + + com.casic + casic-alarm + 2.0.0 + + + + + + + src/main/java + + **/*.xml + + + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0
@@ -22,6 +24,8 @@ Page pageList(Page page, AlarmRecordDTO request, DataScope dataScope); + Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope); + Page pop(); Page historyListPage(Page page, AlarmRecordDTO request, DataScope dataScope); @@ -36,4 +40,6 @@ List changeProcessStatus(List ids); + boolean processByApp(Map resultParams); + } 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 1e8fe66..f1d77b3 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 @@ -14,6 +14,7 @@ import com.casic.missiles.modular.alarm.dao.RemindLogMapper; import com.casic.missiles.modular.alarm.dao.SuspendLogMapper; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.dto.RemindDTO; import com.casic.missiles.modular.alarm.dto.SuspendDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; @@ -27,6 +28,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -58,6 +60,16 @@ } @Override + public Page deviceAlarmListPage(Page page, AlarmRecordDTO request, DataScope dataScope) { + Page deviceAlarmListPage = this.baseMapper.deviceAlarmListPage(page, request, dataScope); + List deviceAlarmList = deviceAlarmListPage.getRecords(); + deviceAlarmList.forEach(deviceAlarm -> { + deviceAlarm.setProcessStatus(ApprovalStatusEnum.getValue(deviceAlarm.getProcessStatus())); + }); + return deviceAlarmListPage; + } + + @Override public Page pop() { String deptIdStr = ""; DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); @@ -66,7 +78,7 @@ .stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(",")); } Page page = PageFactory.defaultPage(); - Page alarmRecordsPage = this.baseMapper.pop(page,deptIdStr); + Page alarmRecordsPage = this.baseMapper.pop(page, deptIdStr); return alarmRecordsPage; } @@ -151,4 +163,9 @@ this.updateBatchById(alarmRecordsList); return alarmRecordsList; } + + @Override + public boolean processByApp(Map resultParams) { + return false; + } } diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java index 0f85586..9a9b09f 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusWellMonitorController.java @@ -4,11 +4,12 @@ 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.base.service.IBaseExportService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.modular.device.dto.BusLedgerDTO; import com.casic.missiles.modular.device.dto.DeviceMonitorRequestDTO; @@ -22,7 +23,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; +import javax.servlet.http.HttpServletResponse; import java.util.Objects; @Api(tags = "闸井监测模块") @@ -33,6 +34,7 @@ private final IBusWellMonitorService wellMonitorService; private final AbstractPermissionContext iCommonPermissionService; + private final IBaseExportService iBaseExportService; @ApiOperation("查询分页接口,列表用") @PostMapping("/listPage") @@ -50,10 +52,11 @@ DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope(); return ReturnUtil.success(wellMonitorService.list(request, dataScope)); } + @ApiOperation("查看闸井监控数据") @PostMapping("/watchDataByWell") @ResponseBody - public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO watchDataByWell(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -63,7 +66,7 @@ @ApiOperation("全生命周期记录查询") @PostMapping("/lifecycleRecord") @ResponseBody - public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO lifecycleRecord(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); @@ -71,19 +74,22 @@ } @ApiOperation("全生命周期记录导出") - @PostMapping("/lifecycleRecordExp") - @ResponseBody - public ReturnDTO lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO) { + @RequestMapping(value = "/lifecycleRecordExp", method = RequestMethod.GET) + public void lifecycleRecordExp(@RequestBody DeviceMonitorRequestDTO requestDTO, HttpServletResponse response) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return ReturnUtil.success(wellMonitorService.lifecycleRecord(requestDTO)); + try { + iBaseExportService.exportExcel(response, LifeCycleRecordDTO.class, wellMonitorService.lifecycleRecord(requestDTO), ExportEnum.LIFE_CYCLE_RECORD_EXPORT.getSheetName()); + } catch (Exception e) { + e.printStackTrace(); + } } @ApiOperation("监控设备维护记录") @PostMapping("/repairLog") @ResponseBody - public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { + public ReturnDTO repairLog(@RequestBody DeviceMonitorRequestDTO requestDTO) { Assert.isFalse(Objects.isNull(requestDTO.getWellId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java index 1facbf8..77926e8 100644 --- a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java +++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/LifeCycleRecordDTO.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.device.dto; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -7,19 +8,25 @@ @Data public class LifeCycleRecordDTO { - + @ExcelProperty(value = "设备编号", order = 1) @ApiModelProperty("报警时间") private Date alarmTime; + @ExcelProperty(value = "报警类型", order = 2) @ApiModelProperty("报警类型") private String alarmType; + @ExcelProperty(value = "报警等级", order = 3) @ApiModelProperty("报警等级") private String alarmLevel; + @ExcelProperty(value = "报警原因", order = 4) @ApiModelProperty("报警原因") private String alarmContent; + @ExcelProperty(value = "是否误报", order = 5) @ApiModelProperty("是否误报") private String realAlarm; + @ExcelProperty(value = "报警解除时间", order = 6) @ApiModelProperty("报警解除时间") private String cancelTime; + @ExcelProperty(value = "处置时长", order = 7) @ApiModelProperty("处置时长") private String processDuration; diff --git a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java index 5fc8eea..21c2703 100644 --- a/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-public/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -8,6 +8,7 @@ public enum ExportEnum { ALARM_EXPORT("alarmRecordData", "alarmRecordData", "报警记录"), DEVICE_EXPORT("deviceInfo", "deviceInfo", "设备信息"), + LIFE_CYCLE_RECORD_EXPORT("lifeCycleRecord", "lifeCycleRecord", "全生命周期记录"), BUSPATROL_LOG_EXPORT("BusPatrolLogResponse", "BusPatrolLogResponse", "巡检日志"); ExportEnum(String fileName, String sheetName, String description) { diff --git a/casic-rest-api/pom.xml b/casic-rest-api/pom.xml new file mode 100644 index 0000000..c82a3bd --- /dev/null +++ b/casic-rest-api/pom.xml @@ -0,0 +1,79 @@ + + + 4.0.0 + + com.casic + casic-iot-platform + 2.0.0.alpha + ../pom.xml + + + casic-rest-api + 2.0.0 + jar + casic-rest-api + casic 外部接口子包 + + + + + com.casic + casic-core + ${core.version} + + + com.casic + casic-admin-support + ${admin.version} + + + + + + + + + + org.springframework.boot + spring-boot-starter-websocket + 2.4.5 + + + + io.swagger + swagger-annotations + 1.5.18 + compile + + + + + + + + + + + junit + junit + test + + + com.casic + casic-alarm + 2.0.0 + + + + + + + src/main/java + + **/*.xml + + + + + \ No newline at end of file diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java new file mode 100644 index 0000000..d14a081 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmDeviceController.java @@ -0,0 +1,125 @@ +package com.casic.missiles.modular.alarm.controller; + + +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.datascope.DataScope; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.IdsDTO; +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.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; +import com.casic.missiles.modular.alarm.dto.RemindDTO; +import com.casic.missiles.modular.alarm.dto.SuspendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.IAlarmRecordsService; +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 java.util.Objects; + +/** + * + * 设备报警 前端控制器 + * + * + * @author zt + * @since 2024-08-27 + */ +@Api(tags = "设备运维-设备报警模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/maintenance/alarmRecords") +public class AlarmDeviceController extends ExportController { + + private final IAlarmRecordsService iAlarmRecordsService; + private final AbstractPermissionContext permissionContext; + + @ApiOperation("设备报警分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO deviceAlarmListPage(@RequestBody AlarmRecordDTO request) { + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.deviceAlarmListPage(page,request,dataScope))); + } + + @ApiOperation("查询历史告警分页接口") + @PostMapping("/historyListPage") + @ResponseBody + public ReturnDTO historyListPage(@RequestBody AlarmRecordDTO request) { + + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + + Page page = PageFactory.defaultPage(); + + return ReturnUtil.success(super.packForBT(iAlarmRecordsService.historyListPage(page,request,dataScope))); + } + +// @ApiOperation("新增") +// @PostMapping("/add") +// @ResponseBody +// public ReturnDTO add(@RequestBody AlarmRecords alarmRecords) { +// +// return ReturnUtil.success(iAlarmRecordsService.saveAlarmType(alarmRecords)); +// } + + @ApiOperation("查看") + @PostMapping("/view") + @ResponseBody + public ReturnDTO view(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.view(idDTO.getId())); + } + + @ApiOperation("批量删除") + @PostMapping("/batchDelete") + @ResponseBody + public ReturnDTO batchDelete(@RequestBody IdsDTO idsDTO) { + Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.removeByIds(idsDTO.getIds())); + } + + @ApiOperation("挂起") + @PostMapping("/suspend") + @ResponseBody + public ReturnDTO suspend(@RequestBody SuspendDTO suspendDTO) { + Assert.isFalse(Objects.isNull(suspendDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.suspend(suspendDTO)); + } + + @ApiOperation("已读") + @PostMapping("/read") + @ResponseBody + public ReturnDTO read(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.read(idDTO.getId())); + } + + @ApiOperation("提醒责任人") + @PostMapping("/remind") + @ResponseBody + public ReturnDTO remind(@RequestBody RemindDTO remindDTO) { + Assert.isFalse(Objects.isNull(remindDTO.getAlarmId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iAlarmRecordsService.remind(remindDTO)); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java index 52af21e..ea8828a 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmRecordsMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dto.AlarmRecordDTO; +import com.casic.missiles.modular.alarm.dto.DeviceAlarmResponseDTO; import com.casic.missiles.modular.alarm.entity.AlarmRecords; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,6 +22,8 @@ Page pageList(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page deviceAlarmListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); + Page historyListPage(Page page, @Param("request") AlarmRecordDTO request, @Param("dataScope") DataScope dataScope); AlarmRecords view(@Param("id") Long id); 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 31d7d32..20469fe 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 @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ ID - , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + , DEVCODE, LEDGER_CODE, ALARM_TYPE_ID, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME @@ -42,7 +42,7 @@ AND bl.VALID = 1 AND lr.VALID =1 LEFT JOIN sys_dept sd ON sd.id = lr.DEPTID - where rd.STATUS =1 + where rd.STATUS =1 and rd.EXCEPTION_TYPE=0