diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java new file mode 100644 index 0000000..3ff91e8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.alarm.controller; + + +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.service.ICockpitService; +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.*; + +/** + *

+ * 大屏接口模块 前端控制器 + *

+ * + * @author zt + * @since 2024-10-10 + */ +@Api(tags = "大屏接口模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/cockpit/apis") +public class CockpitController extends ExportController { + + private final ICockpitService iCockpitService; + + + @ApiOperation("基本概况") + @PostMapping("/overall") + @ResponseBody + public ReturnDTO overall(@RequestBody SfqDTO sfqDTO) { + //toDo:管线长度、调压箱无法统计,暂定前端写入 + return ReturnUtil.success(iCockpitService.overall(sfqDTO)); + } + + @ApiOperation("管网类型统计") + @PostMapping("/pipeTypeStatistics") + @ResponseBody + public ReturnDTO pipeTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.pipeTypeStatistics(sfqDTO)); + } + + @ApiOperation("监测设备统计") + @PostMapping("/deviceTypeStatistics") + @ResponseBody + public ReturnDTO deviceTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTypeStatistics(sfqDTO)); + } + + @ApiOperation("总体报警情况") + @PostMapping("/alarmStatistics") + @ResponseBody + public ReturnDTO alarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.alarmStatistics(sfqDTO)); + } + + @ApiOperation("各分公司报警统计") + @PostMapping("/deptAlarmStatistics") + @ResponseBody + public ReturnDTO deptAlarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deptAlarmStatistics(sfqDTO)); + } + + @ApiOperation("设备运行态势") + @PostMapping("/deviceTrendStatistics") + @ResponseBody + public ReturnDTO deviceTrendStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTrendStatistics(sfqDTO)); + } + + @ApiOperation("当前报警") + @PostMapping("/alarmList") + @ResponseBody + public ReturnDTO alarmList() { + return ReturnUtil.success(iCockpitService.alarmList()); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java new file mode 100644 index 0000000..3ff91e8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.alarm.controller; + + +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.service.ICockpitService; +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.*; + +/** + *

+ * 大屏接口模块 前端控制器 + *

+ * + * @author zt + * @since 2024-10-10 + */ +@Api(tags = "大屏接口模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/cockpit/apis") +public class CockpitController extends ExportController { + + private final ICockpitService iCockpitService; + + + @ApiOperation("基本概况") + @PostMapping("/overall") + @ResponseBody + public ReturnDTO overall(@RequestBody SfqDTO sfqDTO) { + //toDo:管线长度、调压箱无法统计,暂定前端写入 + return ReturnUtil.success(iCockpitService.overall(sfqDTO)); + } + + @ApiOperation("管网类型统计") + @PostMapping("/pipeTypeStatistics") + @ResponseBody + public ReturnDTO pipeTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.pipeTypeStatistics(sfqDTO)); + } + + @ApiOperation("监测设备统计") + @PostMapping("/deviceTypeStatistics") + @ResponseBody + public ReturnDTO deviceTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTypeStatistics(sfqDTO)); + } + + @ApiOperation("总体报警情况") + @PostMapping("/alarmStatistics") + @ResponseBody + public ReturnDTO alarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.alarmStatistics(sfqDTO)); + } + + @ApiOperation("各分公司报警统计") + @PostMapping("/deptAlarmStatistics") + @ResponseBody + public ReturnDTO deptAlarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deptAlarmStatistics(sfqDTO)); + } + + @ApiOperation("设备运行态势") + @PostMapping("/deviceTrendStatistics") + @ResponseBody + public ReturnDTO deviceTrendStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTrendStatistics(sfqDTO)); + } + + @ApiOperation("当前报警") + @PostMapping("/alarmList") + @ResponseBody + public ReturnDTO alarmList() { + return ReturnUtil.success(iCockpitService.alarmList()); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java new file mode 100644 index 0000000..99ceae7 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.alarm.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.DeviceTrendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 报警管理(暂定) Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface CockpitMapper extends BaseMapper { + + List overall(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List pipeTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List alarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deptAlarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTrendStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceStatus(@Param("deptStrs") String deptStrs); + + List alarmList(@Param("deptStrs") String deptStrs); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java new file mode 100644 index 0000000..3ff91e8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.alarm.controller; + + +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.service.ICockpitService; +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.*; + +/** + *

+ * 大屏接口模块 前端控制器 + *

+ * + * @author zt + * @since 2024-10-10 + */ +@Api(tags = "大屏接口模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/cockpit/apis") +public class CockpitController extends ExportController { + + private final ICockpitService iCockpitService; + + + @ApiOperation("基本概况") + @PostMapping("/overall") + @ResponseBody + public ReturnDTO overall(@RequestBody SfqDTO sfqDTO) { + //toDo:管线长度、调压箱无法统计,暂定前端写入 + return ReturnUtil.success(iCockpitService.overall(sfqDTO)); + } + + @ApiOperation("管网类型统计") + @PostMapping("/pipeTypeStatistics") + @ResponseBody + public ReturnDTO pipeTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.pipeTypeStatistics(sfqDTO)); + } + + @ApiOperation("监测设备统计") + @PostMapping("/deviceTypeStatistics") + @ResponseBody + public ReturnDTO deviceTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTypeStatistics(sfqDTO)); + } + + @ApiOperation("总体报警情况") + @PostMapping("/alarmStatistics") + @ResponseBody + public ReturnDTO alarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.alarmStatistics(sfqDTO)); + } + + @ApiOperation("各分公司报警统计") + @PostMapping("/deptAlarmStatistics") + @ResponseBody + public ReturnDTO deptAlarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deptAlarmStatistics(sfqDTO)); + } + + @ApiOperation("设备运行态势") + @PostMapping("/deviceTrendStatistics") + @ResponseBody + public ReturnDTO deviceTrendStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTrendStatistics(sfqDTO)); + } + + @ApiOperation("当前报警") + @PostMapping("/alarmList") + @ResponseBody + public ReturnDTO alarmList() { + return ReturnUtil.success(iCockpitService.alarmList()); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java new file mode 100644 index 0000000..99ceae7 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.alarm.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.DeviceTrendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 报警管理(暂定) Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface CockpitMapper extends BaseMapper { + + List overall(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List pipeTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List alarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deptAlarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTrendStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceStatus(@Param("deptStrs") String deptStrs); + + List alarmList(@Param("deptStrs") String deptStrs); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml new file mode 100644 index 0000000..5f5f9ad --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + ID + , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + + + + + + + + + + + + + + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java new file mode 100644 index 0000000..3ff91e8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.alarm.controller; + + +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.service.ICockpitService; +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.*; + +/** + *

+ * 大屏接口模块 前端控制器 + *

+ * + * @author zt + * @since 2024-10-10 + */ +@Api(tags = "大屏接口模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/cockpit/apis") +public class CockpitController extends ExportController { + + private final ICockpitService iCockpitService; + + + @ApiOperation("基本概况") + @PostMapping("/overall") + @ResponseBody + public ReturnDTO overall(@RequestBody SfqDTO sfqDTO) { + //toDo:管线长度、调压箱无法统计,暂定前端写入 + return ReturnUtil.success(iCockpitService.overall(sfqDTO)); + } + + @ApiOperation("管网类型统计") + @PostMapping("/pipeTypeStatistics") + @ResponseBody + public ReturnDTO pipeTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.pipeTypeStatistics(sfqDTO)); + } + + @ApiOperation("监测设备统计") + @PostMapping("/deviceTypeStatistics") + @ResponseBody + public ReturnDTO deviceTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTypeStatistics(sfqDTO)); + } + + @ApiOperation("总体报警情况") + @PostMapping("/alarmStatistics") + @ResponseBody + public ReturnDTO alarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.alarmStatistics(sfqDTO)); + } + + @ApiOperation("各分公司报警统计") + @PostMapping("/deptAlarmStatistics") + @ResponseBody + public ReturnDTO deptAlarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deptAlarmStatistics(sfqDTO)); + } + + @ApiOperation("设备运行态势") + @PostMapping("/deviceTrendStatistics") + @ResponseBody + public ReturnDTO deviceTrendStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTrendStatistics(sfqDTO)); + } + + @ApiOperation("当前报警") + @PostMapping("/alarmList") + @ResponseBody + public ReturnDTO alarmList() { + return ReturnUtil.success(iCockpitService.alarmList()); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java new file mode 100644 index 0000000..99ceae7 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.alarm.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.DeviceTrendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 报警管理(暂定) Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface CockpitMapper extends BaseMapper { + + List overall(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List pipeTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List alarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deptAlarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTrendStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceStatus(@Param("deptStrs") String deptStrs); + + List alarmList(@Param("deptStrs") String deptStrs); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml new file mode 100644 index 0000000..5f5f9ad --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + ID + , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + + + + + + + + + + + + + + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java new file mode 100644 index 0000000..faabc94 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +@Data +public class AlarmRecordDpDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警内容") + private String alarmContent; + + @ApiModelProperty("报警时间") + private Date alarmTime; + + @ApiModelProperty("处置状态(1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + private String processStatus; + + @ApiModelProperty("详细地址") + private String position; + + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("处置状态名称") + private String processStatusName; + + @ApiModelProperty("报警类型名称") + private String alarmType; + + @ApiModelProperty("管理单位id") + private Long deptid; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java new file mode 100644 index 0000000..3ff91e8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.alarm.controller; + + +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.service.ICockpitService; +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.*; + +/** + *

+ * 大屏接口模块 前端控制器 + *

+ * + * @author zt + * @since 2024-10-10 + */ +@Api(tags = "大屏接口模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/cockpit/apis") +public class CockpitController extends ExportController { + + private final ICockpitService iCockpitService; + + + @ApiOperation("基本概况") + @PostMapping("/overall") + @ResponseBody + public ReturnDTO overall(@RequestBody SfqDTO sfqDTO) { + //toDo:管线长度、调压箱无法统计,暂定前端写入 + return ReturnUtil.success(iCockpitService.overall(sfqDTO)); + } + + @ApiOperation("管网类型统计") + @PostMapping("/pipeTypeStatistics") + @ResponseBody + public ReturnDTO pipeTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.pipeTypeStatistics(sfqDTO)); + } + + @ApiOperation("监测设备统计") + @PostMapping("/deviceTypeStatistics") + @ResponseBody + public ReturnDTO deviceTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTypeStatistics(sfqDTO)); + } + + @ApiOperation("总体报警情况") + @PostMapping("/alarmStatistics") + @ResponseBody + public ReturnDTO alarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.alarmStatistics(sfqDTO)); + } + + @ApiOperation("各分公司报警统计") + @PostMapping("/deptAlarmStatistics") + @ResponseBody + public ReturnDTO deptAlarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deptAlarmStatistics(sfqDTO)); + } + + @ApiOperation("设备运行态势") + @PostMapping("/deviceTrendStatistics") + @ResponseBody + public ReturnDTO deviceTrendStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTrendStatistics(sfqDTO)); + } + + @ApiOperation("当前报警") + @PostMapping("/alarmList") + @ResponseBody + public ReturnDTO alarmList() { + return ReturnUtil.success(iCockpitService.alarmList()); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java new file mode 100644 index 0000000..99ceae7 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.alarm.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.DeviceTrendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 报警管理(暂定) Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface CockpitMapper extends BaseMapper { + + List overall(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List pipeTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List alarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deptAlarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTrendStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceStatus(@Param("deptStrs") String deptStrs); + + List alarmList(@Param("deptStrs") String deptStrs); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml new file mode 100644 index 0000000..5f5f9ad --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + ID + , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + + + + + + + + + + + + + + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java new file mode 100644 index 0000000..faabc94 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +@Data +public class AlarmRecordDpDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警内容") + private String alarmContent; + + @ApiModelProperty("报警时间") + private Date alarmTime; + + @ApiModelProperty("处置状态(1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + private String processStatus; + + @ApiModelProperty("详细地址") + private String position; + + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("处置状态名称") + private String processStatusName; + + @ApiModelProperty("报警类型名称") + private String alarmType; + + @ApiModelProperty("管理单位id") + private Long deptid; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java new file mode 100644 index 0000000..541b2a0 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceTrendDTO { + + private Date operatorTime; + + //1、新装,2、运维 + private String status; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java new file mode 100644 index 0000000..3ff91e8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.alarm.controller; + + +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.service.ICockpitService; +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.*; + +/** + *

+ * 大屏接口模块 前端控制器 + *

+ * + * @author zt + * @since 2024-10-10 + */ +@Api(tags = "大屏接口模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/cockpit/apis") +public class CockpitController extends ExportController { + + private final ICockpitService iCockpitService; + + + @ApiOperation("基本概况") + @PostMapping("/overall") + @ResponseBody + public ReturnDTO overall(@RequestBody SfqDTO sfqDTO) { + //toDo:管线长度、调压箱无法统计,暂定前端写入 + return ReturnUtil.success(iCockpitService.overall(sfqDTO)); + } + + @ApiOperation("管网类型统计") + @PostMapping("/pipeTypeStatistics") + @ResponseBody + public ReturnDTO pipeTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.pipeTypeStatistics(sfqDTO)); + } + + @ApiOperation("监测设备统计") + @PostMapping("/deviceTypeStatistics") + @ResponseBody + public ReturnDTO deviceTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTypeStatistics(sfqDTO)); + } + + @ApiOperation("总体报警情况") + @PostMapping("/alarmStatistics") + @ResponseBody + public ReturnDTO alarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.alarmStatistics(sfqDTO)); + } + + @ApiOperation("各分公司报警统计") + @PostMapping("/deptAlarmStatistics") + @ResponseBody + public ReturnDTO deptAlarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deptAlarmStatistics(sfqDTO)); + } + + @ApiOperation("设备运行态势") + @PostMapping("/deviceTrendStatistics") + @ResponseBody + public ReturnDTO deviceTrendStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTrendStatistics(sfqDTO)); + } + + @ApiOperation("当前报警") + @PostMapping("/alarmList") + @ResponseBody + public ReturnDTO alarmList() { + return ReturnUtil.success(iCockpitService.alarmList()); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java new file mode 100644 index 0000000..99ceae7 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.alarm.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.DeviceTrendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 报警管理(暂定) Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface CockpitMapper extends BaseMapper { + + List overall(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List pipeTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List alarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deptAlarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTrendStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceStatus(@Param("deptStrs") String deptStrs); + + List alarmList(@Param("deptStrs") String deptStrs); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml new file mode 100644 index 0000000..5f5f9ad --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + ID + , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + + + + + + + + + + + + + + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java new file mode 100644 index 0000000..faabc94 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +@Data +public class AlarmRecordDpDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警内容") + private String alarmContent; + + @ApiModelProperty("报警时间") + private Date alarmTime; + + @ApiModelProperty("处置状态(1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + private String processStatus; + + @ApiModelProperty("详细地址") + private String position; + + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("处置状态名称") + private String processStatusName; + + @ApiModelProperty("报警类型名称") + private String alarmType; + + @ApiModelProperty("管理单位id") + private Long deptid; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java new file mode 100644 index 0000000..541b2a0 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceTrendDTO { + + private Date operatorTime; + + //1、新装,2、运维 + private String status; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java new file mode 100644 index 0000000..b287eee --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SfqDTO { + + @ApiModelProperty("95示范区,1:是,0:否 ") + private String type; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java new file mode 100644 index 0000000..3ff91e8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.alarm.controller; + + +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.service.ICockpitService; +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.*; + +/** + *

+ * 大屏接口模块 前端控制器 + *

+ * + * @author zt + * @since 2024-10-10 + */ +@Api(tags = "大屏接口模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/cockpit/apis") +public class CockpitController extends ExportController { + + private final ICockpitService iCockpitService; + + + @ApiOperation("基本概况") + @PostMapping("/overall") + @ResponseBody + public ReturnDTO overall(@RequestBody SfqDTO sfqDTO) { + //toDo:管线长度、调压箱无法统计,暂定前端写入 + return ReturnUtil.success(iCockpitService.overall(sfqDTO)); + } + + @ApiOperation("管网类型统计") + @PostMapping("/pipeTypeStatistics") + @ResponseBody + public ReturnDTO pipeTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.pipeTypeStatistics(sfqDTO)); + } + + @ApiOperation("监测设备统计") + @PostMapping("/deviceTypeStatistics") + @ResponseBody + public ReturnDTO deviceTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTypeStatistics(sfqDTO)); + } + + @ApiOperation("总体报警情况") + @PostMapping("/alarmStatistics") + @ResponseBody + public ReturnDTO alarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.alarmStatistics(sfqDTO)); + } + + @ApiOperation("各分公司报警统计") + @PostMapping("/deptAlarmStatistics") + @ResponseBody + public ReturnDTO deptAlarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deptAlarmStatistics(sfqDTO)); + } + + @ApiOperation("设备运行态势") + @PostMapping("/deviceTrendStatistics") + @ResponseBody + public ReturnDTO deviceTrendStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTrendStatistics(sfqDTO)); + } + + @ApiOperation("当前报警") + @PostMapping("/alarmList") + @ResponseBody + public ReturnDTO alarmList() { + return ReturnUtil.success(iCockpitService.alarmList()); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java new file mode 100644 index 0000000..99ceae7 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.alarm.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.DeviceTrendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 报警管理(暂定) Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface CockpitMapper extends BaseMapper { + + List overall(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List pipeTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List alarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deptAlarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTrendStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceStatus(@Param("deptStrs") String deptStrs); + + List alarmList(@Param("deptStrs") String deptStrs); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml new file mode 100644 index 0000000..5f5f9ad --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + ID + , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + + + + + + + + + + + + + + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java new file mode 100644 index 0000000..faabc94 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +@Data +public class AlarmRecordDpDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警内容") + private String alarmContent; + + @ApiModelProperty("报警时间") + private Date alarmTime; + + @ApiModelProperty("处置状态(1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + private String processStatus; + + @ApiModelProperty("详细地址") + private String position; + + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("处置状态名称") + private String processStatusName; + + @ApiModelProperty("报警类型名称") + private String alarmType; + + @ApiModelProperty("管理单位id") + private Long deptid; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java new file mode 100644 index 0000000..541b2a0 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceTrendDTO { + + private Date operatorTime; + + //1、新装,2、运维 + private String status; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java new file mode 100644 index 0000000..b287eee --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SfqDTO { + + @ApiModelProperty("95示范区,1:是,0:否 ") + private String type; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java new file mode 100644 index 0000000..bf93529 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.alarm.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 报警管理(暂定) 服务类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +public interface ICockpitService extends IService { + + List overall(SfqDTO sfqDTO); + + List pipeTypeStatistics(SfqDTO sfqDTO); + + List deviceTypeStatistics(SfqDTO sfqDTO); + + List alarmStatistics(SfqDTO sfqDTO); + + List> deptAlarmStatistics(SfqDTO sfqDTO); + + List> deviceTrendStatistics(SfqDTO sfqDTO); + + List deviceStatus(); + + List alarmList(); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java new file mode 100644 index 0000000..3ff91e8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.alarm.controller; + + +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.service.ICockpitService; +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.*; + +/** + *

+ * 大屏接口模块 前端控制器 + *

+ * + * @author zt + * @since 2024-10-10 + */ +@Api(tags = "大屏接口模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/cockpit/apis") +public class CockpitController extends ExportController { + + private final ICockpitService iCockpitService; + + + @ApiOperation("基本概况") + @PostMapping("/overall") + @ResponseBody + public ReturnDTO overall(@RequestBody SfqDTO sfqDTO) { + //toDo:管线长度、调压箱无法统计,暂定前端写入 + return ReturnUtil.success(iCockpitService.overall(sfqDTO)); + } + + @ApiOperation("管网类型统计") + @PostMapping("/pipeTypeStatistics") + @ResponseBody + public ReturnDTO pipeTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.pipeTypeStatistics(sfqDTO)); + } + + @ApiOperation("监测设备统计") + @PostMapping("/deviceTypeStatistics") + @ResponseBody + public ReturnDTO deviceTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTypeStatistics(sfqDTO)); + } + + @ApiOperation("总体报警情况") + @PostMapping("/alarmStatistics") + @ResponseBody + public ReturnDTO alarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.alarmStatistics(sfqDTO)); + } + + @ApiOperation("各分公司报警统计") + @PostMapping("/deptAlarmStatistics") + @ResponseBody + public ReturnDTO deptAlarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deptAlarmStatistics(sfqDTO)); + } + + @ApiOperation("设备运行态势") + @PostMapping("/deviceTrendStatistics") + @ResponseBody + public ReturnDTO deviceTrendStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTrendStatistics(sfqDTO)); + } + + @ApiOperation("当前报警") + @PostMapping("/alarmList") + @ResponseBody + public ReturnDTO alarmList() { + return ReturnUtil.success(iCockpitService.alarmList()); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java new file mode 100644 index 0000000..99ceae7 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.alarm.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.DeviceTrendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 报警管理(暂定) Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface CockpitMapper extends BaseMapper { + + List overall(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List pipeTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List alarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deptAlarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTrendStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceStatus(@Param("deptStrs") String deptStrs); + + List alarmList(@Param("deptStrs") String deptStrs); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml new file mode 100644 index 0000000..5f5f9ad --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + ID + , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + + + + + + + + + + + + + + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java new file mode 100644 index 0000000..faabc94 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +@Data +public class AlarmRecordDpDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警内容") + private String alarmContent; + + @ApiModelProperty("报警时间") + private Date alarmTime; + + @ApiModelProperty("处置状态(1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + private String processStatus; + + @ApiModelProperty("详细地址") + private String position; + + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("处置状态名称") + private String processStatusName; + + @ApiModelProperty("报警类型名称") + private String alarmType; + + @ApiModelProperty("管理单位id") + private Long deptid; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java new file mode 100644 index 0000000..541b2a0 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceTrendDTO { + + private Date operatorTime; + + //1、新装,2、运维 + private String status; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java new file mode 100644 index 0000000..b287eee --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SfqDTO { + + @ApiModelProperty("95示范区,1:是,0:否 ") + private String type; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java new file mode 100644 index 0000000..bf93529 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.alarm.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 报警管理(暂定) 服务类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +public interface ICockpitService extends IService { + + List overall(SfqDTO sfqDTO); + + List pipeTypeStatistics(SfqDTO sfqDTO); + + List deviceTypeStatistics(SfqDTO sfqDTO); + + List alarmStatistics(SfqDTO sfqDTO); + + List> deptAlarmStatistics(SfqDTO sfqDTO); + + List> deviceTrendStatistics(SfqDTO sfqDTO); + + List deviceStatus(); + + List alarmList(); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/CockpitServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/CockpitServiceImpl.java new file mode 100644 index 0000000..d07f421 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/CockpitServiceImpl.java @@ -0,0 +1,159 @@ +package com.casic.missiles.modular.alarm.service.impl; + +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.enums.DictEnum; +import com.casic.missiles.modular.alarm.dao.CockpitMapper; +import com.casic.missiles.modular.alarm.dto.*; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.ICockpitService; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.server.CommonServer; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + *

+ * + *

+ * + * @author zt + * @since 2024-07-16 + */ +@RequiredArgsConstructor +@Service +public class CockpitServiceImpl extends ServiceImpl implements ICockpitService { + + private final CommonServer commonServer; + private final AbstractDeptService abstractDeptService; + + @Override + public List overall(SfqDTO sfqDTO) { + return this.baseMapper.overall(commonServer.getDeptIds(), sfqDTO.getType()); + } + + @Override + public List deviceStatus() { + return this.baseMapper.deviceStatus(commonServer.getDeptIds()); + } + + @Override + public List pipeTypeStatistics(SfqDTO sfqDTO) { + return this.baseMapper.pipeTypeStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + } + + @Override + public List deviceTypeStatistics(SfqDTO sfqDTO) { + return this.baseMapper.deviceTypeStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + } + + @Override + public List alarmStatistics(SfqDTO sfqDTO) { + return this.baseMapper.alarmStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + } + + public List getDeptList(String deptIdStrs) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", Arrays.stream(deptIdStrs.split(",")) + .map(Long::parseLong) + .collect(Collectors.toList())); + return abstractDeptService.list(queryWrapper); + } + + @Override + public List> deptAlarmStatistics(SfqDTO sfqDTO) { + + List> resultMapList = new ArrayList<>(); + String deptIdStrs = commonServer.getDeptScopeIds(null); + List deptIds = new ArrayList<>(); + //根据权限只统计分公司级和工程组级 + if (ObjectUtil.isNotEmpty(deptIdStrs)) { + //获取对应的下级部门 + deptIds = getDeptList(deptIdStrs); + boolean isAdmin = deptIds.stream().anyMatch(dept -> DictEnum.DEPT_ALL.equals(dept.getTips())); + if (isAdmin) { + //管理员权限 + deptIds = abstractDeptService.getListByTips("company"); + } else { + //分公司权限 + if (deptIds.stream().anyMatch(dept -> DictEnum.DEPT_COMPANY.equals(dept.getTips()))) { + deptIds = deptIds.stream().filter(dept -> "dept".equals(dept.getTips())).collect(Collectors.toList()); + } + } + } else { + //管理员权限 + deptIds = abstractDeptService.getListByTips("company"); + } + if (null != deptIds && deptIds.size() > 0) { + List responseDTOList = this.baseMapper.deptAlarmStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + for (Dept dept : deptIds) { + Map deptMap = new HashMap<>(); + deptMap.put("dept", dept.getFullName()); + List deptChildIds = abstractDeptService.getIdsRecursionByPid(dept.getId(), ""); + deptChildIds.add(dept.getId()); + deptMap.put("count", 0); + for (AlarmCompanyResponseDTO responseDTO : responseDTOList) { + if (null != responseDTO.getDeptid() && + deptChildIds.contains(responseDTO.getDeptid())) { + deptMap.put("count", Integer.valueOf(deptMap.get("count").toString()) + responseDTO.getAlarmSum()); + } + } + resultMapList.add(deptMap); + } + } + return resultMapList; + } + + + @Override + public List> deviceTrendStatistics(SfqDTO sfqDTO) { + List> mapList = new ArrayList<>(); + + List deviceTrendDTOList = this.baseMapper.deviceTrendStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + //近7天时间获取 + List dateTimeList = DateUtil.rangeToList(DateUtil.offsetDay(new Date(), -6), new Date(), DateField.DAY_OF_YEAR); + List dataStrs = new ArrayList<>(); + dateTimeList.forEach(dateTime -> { + dataStrs.add(DateUtil.format(dateTime, "yyyy-MM-dd")); + }); + dataStrs.forEach(data -> { + Map mapDateObject = new HashMap<>(); + Map mapObject = new HashMap<>(); + mapObject.put("1", 0L); + mapObject.put("2", 0L); + mapDateObject.put(data, mapObject); + deviceTrendDTOList.forEach(deviceTrendDTO -> { + if (deviceTrendDTO.getOperatorTime() != null && + DateUtil.isSameDay(deviceTrendDTO.getOperatorTime(), DateUtil.parseDate(data)) && + "2".equals(deviceTrendDTO.getStatus())) { + mapObject.put(deviceTrendDTO.getStatus(), mapObject.get(deviceTrendDTO.getStatus()) + 1); + } else if (deviceTrendDTO.getOperatorTime() != null && + DateUtil.compare(deviceTrendDTO.getOperatorTime(), DateUtil.parseDate(data)) <= 0 && + "1".equals(deviceTrendDTO.getStatus())) { + mapObject.put(deviceTrendDTO.getStatus(), mapObject.get(deviceTrendDTO.getStatus()) + 1); + } + }); + mapList.add(mapDateObject); + }); + return mapList; + } + + @Override + public List alarmList() { + List alarmRecordDpDTOList = this.baseMapper.alarmList(commonServer.getDeptIds()); + alarmRecordDpDTOList.forEach(alarmRecordDpDTO -> { + alarmRecordDpDTO.setProcessStatusName(ApprovalStatusEnum.getValue(alarmRecordDpDTO.getProcessStatus())); + alarmRecordDpDTO.setDeptName(commonServer.getDeptNamesByDeptId(alarmRecordDpDTO.getDeptid())); + }); + return alarmRecordDpDTOList; + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java new file mode 100644 index 0000000..3ff91e8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.alarm.controller; + + +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.service.ICockpitService; +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.*; + +/** + *

+ * 大屏接口模块 前端控制器 + *

+ * + * @author zt + * @since 2024-10-10 + */ +@Api(tags = "大屏接口模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/cockpit/apis") +public class CockpitController extends ExportController { + + private final ICockpitService iCockpitService; + + + @ApiOperation("基本概况") + @PostMapping("/overall") + @ResponseBody + public ReturnDTO overall(@RequestBody SfqDTO sfqDTO) { + //toDo:管线长度、调压箱无法统计,暂定前端写入 + return ReturnUtil.success(iCockpitService.overall(sfqDTO)); + } + + @ApiOperation("管网类型统计") + @PostMapping("/pipeTypeStatistics") + @ResponseBody + public ReturnDTO pipeTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.pipeTypeStatistics(sfqDTO)); + } + + @ApiOperation("监测设备统计") + @PostMapping("/deviceTypeStatistics") + @ResponseBody + public ReturnDTO deviceTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTypeStatistics(sfqDTO)); + } + + @ApiOperation("总体报警情况") + @PostMapping("/alarmStatistics") + @ResponseBody + public ReturnDTO alarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.alarmStatistics(sfqDTO)); + } + + @ApiOperation("各分公司报警统计") + @PostMapping("/deptAlarmStatistics") + @ResponseBody + public ReturnDTO deptAlarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deptAlarmStatistics(sfqDTO)); + } + + @ApiOperation("设备运行态势") + @PostMapping("/deviceTrendStatistics") + @ResponseBody + public ReturnDTO deviceTrendStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTrendStatistics(sfqDTO)); + } + + @ApiOperation("当前报警") + @PostMapping("/alarmList") + @ResponseBody + public ReturnDTO alarmList() { + return ReturnUtil.success(iCockpitService.alarmList()); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java new file mode 100644 index 0000000..99ceae7 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.alarm.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.DeviceTrendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 报警管理(暂定) Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface CockpitMapper extends BaseMapper { + + List overall(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List pipeTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List alarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deptAlarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTrendStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceStatus(@Param("deptStrs") String deptStrs); + + List alarmList(@Param("deptStrs") String deptStrs); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml new file mode 100644 index 0000000..5f5f9ad --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + ID + , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + + + + + + + + + + + + + + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java new file mode 100644 index 0000000..faabc94 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +@Data +public class AlarmRecordDpDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警内容") + private String alarmContent; + + @ApiModelProperty("报警时间") + private Date alarmTime; + + @ApiModelProperty("处置状态(1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + private String processStatus; + + @ApiModelProperty("详细地址") + private String position; + + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("处置状态名称") + private String processStatusName; + + @ApiModelProperty("报警类型名称") + private String alarmType; + + @ApiModelProperty("管理单位id") + private Long deptid; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java new file mode 100644 index 0000000..541b2a0 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceTrendDTO { + + private Date operatorTime; + + //1、新装,2、运维 + private String status; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java new file mode 100644 index 0000000..b287eee --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SfqDTO { + + @ApiModelProperty("95示范区,1:是,0:否 ") + private String type; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java new file mode 100644 index 0000000..bf93529 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.alarm.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 报警管理(暂定) 服务类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +public interface ICockpitService extends IService { + + List overall(SfqDTO sfqDTO); + + List pipeTypeStatistics(SfqDTO sfqDTO); + + List deviceTypeStatistics(SfqDTO sfqDTO); + + List alarmStatistics(SfqDTO sfqDTO); + + List> deptAlarmStatistics(SfqDTO sfqDTO); + + List> deviceTrendStatistics(SfqDTO sfqDTO); + + List deviceStatus(); + + List alarmList(); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/CockpitServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/CockpitServiceImpl.java new file mode 100644 index 0000000..d07f421 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/CockpitServiceImpl.java @@ -0,0 +1,159 @@ +package com.casic.missiles.modular.alarm.service.impl; + +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.enums.DictEnum; +import com.casic.missiles.modular.alarm.dao.CockpitMapper; +import com.casic.missiles.modular.alarm.dto.*; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.ICockpitService; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.server.CommonServer; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + *

+ * + *

+ * + * @author zt + * @since 2024-07-16 + */ +@RequiredArgsConstructor +@Service +public class CockpitServiceImpl extends ServiceImpl implements ICockpitService { + + private final CommonServer commonServer; + private final AbstractDeptService abstractDeptService; + + @Override + public List overall(SfqDTO sfqDTO) { + return this.baseMapper.overall(commonServer.getDeptIds(), sfqDTO.getType()); + } + + @Override + public List deviceStatus() { + return this.baseMapper.deviceStatus(commonServer.getDeptIds()); + } + + @Override + public List pipeTypeStatistics(SfqDTO sfqDTO) { + return this.baseMapper.pipeTypeStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + } + + @Override + public List deviceTypeStatistics(SfqDTO sfqDTO) { + return this.baseMapper.deviceTypeStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + } + + @Override + public List alarmStatistics(SfqDTO sfqDTO) { + return this.baseMapper.alarmStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + } + + public List getDeptList(String deptIdStrs) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", Arrays.stream(deptIdStrs.split(",")) + .map(Long::parseLong) + .collect(Collectors.toList())); + return abstractDeptService.list(queryWrapper); + } + + @Override + public List> deptAlarmStatistics(SfqDTO sfqDTO) { + + List> resultMapList = new ArrayList<>(); + String deptIdStrs = commonServer.getDeptScopeIds(null); + List deptIds = new ArrayList<>(); + //根据权限只统计分公司级和工程组级 + if (ObjectUtil.isNotEmpty(deptIdStrs)) { + //获取对应的下级部门 + deptIds = getDeptList(deptIdStrs); + boolean isAdmin = deptIds.stream().anyMatch(dept -> DictEnum.DEPT_ALL.equals(dept.getTips())); + if (isAdmin) { + //管理员权限 + deptIds = abstractDeptService.getListByTips("company"); + } else { + //分公司权限 + if (deptIds.stream().anyMatch(dept -> DictEnum.DEPT_COMPANY.equals(dept.getTips()))) { + deptIds = deptIds.stream().filter(dept -> "dept".equals(dept.getTips())).collect(Collectors.toList()); + } + } + } else { + //管理员权限 + deptIds = abstractDeptService.getListByTips("company"); + } + if (null != deptIds && deptIds.size() > 0) { + List responseDTOList = this.baseMapper.deptAlarmStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + for (Dept dept : deptIds) { + Map deptMap = new HashMap<>(); + deptMap.put("dept", dept.getFullName()); + List deptChildIds = abstractDeptService.getIdsRecursionByPid(dept.getId(), ""); + deptChildIds.add(dept.getId()); + deptMap.put("count", 0); + for (AlarmCompanyResponseDTO responseDTO : responseDTOList) { + if (null != responseDTO.getDeptid() && + deptChildIds.contains(responseDTO.getDeptid())) { + deptMap.put("count", Integer.valueOf(deptMap.get("count").toString()) + responseDTO.getAlarmSum()); + } + } + resultMapList.add(deptMap); + } + } + return resultMapList; + } + + + @Override + public List> deviceTrendStatistics(SfqDTO sfqDTO) { + List> mapList = new ArrayList<>(); + + List deviceTrendDTOList = this.baseMapper.deviceTrendStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + //近7天时间获取 + List dateTimeList = DateUtil.rangeToList(DateUtil.offsetDay(new Date(), -6), new Date(), DateField.DAY_OF_YEAR); + List dataStrs = new ArrayList<>(); + dateTimeList.forEach(dateTime -> { + dataStrs.add(DateUtil.format(dateTime, "yyyy-MM-dd")); + }); + dataStrs.forEach(data -> { + Map mapDateObject = new HashMap<>(); + Map mapObject = new HashMap<>(); + mapObject.put("1", 0L); + mapObject.put("2", 0L); + mapDateObject.put(data, mapObject); + deviceTrendDTOList.forEach(deviceTrendDTO -> { + if (deviceTrendDTO.getOperatorTime() != null && + DateUtil.isSameDay(deviceTrendDTO.getOperatorTime(), DateUtil.parseDate(data)) && + "2".equals(deviceTrendDTO.getStatus())) { + mapObject.put(deviceTrendDTO.getStatus(), mapObject.get(deviceTrendDTO.getStatus()) + 1); + } else if (deviceTrendDTO.getOperatorTime() != null && + DateUtil.compare(deviceTrendDTO.getOperatorTime(), DateUtil.parseDate(data)) <= 0 && + "1".equals(deviceTrendDTO.getStatus())) { + mapObject.put(deviceTrendDTO.getStatus(), mapObject.get(deviceTrendDTO.getStatus()) + 1); + } + }); + mapList.add(mapDateObject); + }); + return mapList; + } + + @Override + public List alarmList() { + List alarmRecordDpDTOList = this.baseMapper.alarmList(commonServer.getDeptIds()); + alarmRecordDpDTOList.forEach(alarmRecordDpDTO -> { + alarmRecordDpDTO.setProcessStatusName(ApprovalStatusEnum.getValue(alarmRecordDpDTO.getProcessStatus())); + alarmRecordDpDTO.setDeptName(commonServer.getDeptNamesByDeptId(alarmRecordDpDTO.getDeptid())); + }); + return alarmRecordDpDTOList; + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 6fad75a..41b78bb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,10 +1,7 @@ package com.casic.missiles.modular.alarm.service.impl; -import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; @@ -16,7 +13,6 @@ import org.springframework.stereotype.Service; import java.util.List; -import java.util.stream.Collectors; /** *

@@ -30,7 +26,6 @@ @Service public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { - private final AbstractPermissionContext permissionContext; private final CommonServer commonServer; @Override diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java new file mode 100644 index 0000000..3ff91e8 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/CockpitController.java @@ -0,0 +1,83 @@ +package com.casic.missiles.modular.alarm.controller; + + +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.service.ICockpitService; +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.*; + +/** + *

+ * 大屏接口模块 前端控制器 + *

+ * + * @author zt + * @since 2024-10-10 + */ +@Api(tags = "大屏接口模块") +@RequiredArgsConstructor +@RestController +@RequestMapping("/cockpit/apis") +public class CockpitController extends ExportController { + + private final ICockpitService iCockpitService; + + + @ApiOperation("基本概况") + @PostMapping("/overall") + @ResponseBody + public ReturnDTO overall(@RequestBody SfqDTO sfqDTO) { + //toDo:管线长度、调压箱无法统计,暂定前端写入 + return ReturnUtil.success(iCockpitService.overall(sfqDTO)); + } + + @ApiOperation("管网类型统计") + @PostMapping("/pipeTypeStatistics") + @ResponseBody + public ReturnDTO pipeTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.pipeTypeStatistics(sfqDTO)); + } + + @ApiOperation("监测设备统计") + @PostMapping("/deviceTypeStatistics") + @ResponseBody + public ReturnDTO deviceTypeStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTypeStatistics(sfqDTO)); + } + + @ApiOperation("总体报警情况") + @PostMapping("/alarmStatistics") + @ResponseBody + public ReturnDTO alarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.alarmStatistics(sfqDTO)); + } + + @ApiOperation("各分公司报警统计") + @PostMapping("/deptAlarmStatistics") + @ResponseBody + public ReturnDTO deptAlarmStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deptAlarmStatistics(sfqDTO)); + } + + @ApiOperation("设备运行态势") + @PostMapping("/deviceTrendStatistics") + @ResponseBody + public ReturnDTO deviceTrendStatistics(@RequestBody SfqDTO sfqDTO) { + return ReturnUtil.success(iCockpitService.deviceTrendStatistics(sfqDTO)); + } + + @ApiOperation("当前报警") + @PostMapping("/alarmList") + @ResponseBody + public ReturnDTO alarmList() { + return ReturnUtil.success(iCockpitService.alarmList()); + } +} + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java new file mode 100644 index 0000000..99ceae7 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/CockpitMapper.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.alarm.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.alarm.dto.AlarmCompanyResponseDTO; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.DeviceTrendDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 报警管理(暂定) Mapper 接口 + *

+ * + * @author zt + * @since 2024-07-16 + */ +@Mapper +public interface CockpitMapper extends BaseMapper { + + List overall(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List pipeTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTypeStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List alarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deptAlarmStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceTrendStatistics(@Param("deptStrs") String deptStrs, @Param("type") String type); + + List deviceStatus(@Param("deptStrs") String deptStrs); + + List alarmList(@Param("deptStrs") String deptStrs); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml new file mode 100644 index 0000000..5f5f9ad --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/CockpitMapper.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + ID + , DEVCODE, LEDGER_CODE, ALARM_TYPE, ALARM_CONTENT, ALARM_VALUE, ALARM_LEVEL, ALARM_TIME, `STATUS`, ALARM_MSG, PROCESS_STATUS, PROCESS_TIME + + + + + + + + + + + + + + + + + + + + + + diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java new file mode 100644 index 0000000..faabc94 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmRecordDpDTO.java @@ -0,0 +1,41 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +@Data +public class AlarmRecordDpDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("报警内容") + private String alarmContent; + + @ApiModelProperty("报警时间") + private Date alarmTime; + + @ApiModelProperty("处置状态(1:未读,2:已读,3,挂起,4:待现场确认,5:已确认,6:待处置,7:已处置)") + private String processStatus; + + @ApiModelProperty("详细地址") + private String position; + + + @ApiModelProperty("管理单位") + private String deptName; + + @ApiModelProperty("处置状态名称") + private String processStatusName; + + @ApiModelProperty("报警类型名称") + private String alarmType; + + @ApiModelProperty("管理单位id") + private Long deptid; + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java new file mode 100644 index 0000000..541b2a0 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/DeviceTrendDTO.java @@ -0,0 +1,15 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class DeviceTrendDTO { + + private Date operatorTime; + + //1、新装,2、运维 + private String status; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java new file mode 100644 index 0000000..b287eee --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SfqDTO.java @@ -0,0 +1,11 @@ +package com.casic.missiles.modular.alarm.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SfqDTO { + + @ApiModelProperty("95示范区,1:是,0:否 ") + private String type; +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java new file mode 100644 index 0000000..bf93529 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/ICockpitService.java @@ -0,0 +1,39 @@ +package com.casic.missiles.modular.alarm.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.alarm.dto.AlarmRecordDpDTO; +import com.casic.missiles.modular.alarm.dto.CommonResponseDTO; +import com.casic.missiles.modular.alarm.dto.SfqDTO; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 报警管理(暂定) 服务类 + *

+ * + * @author zt + * @since 2024-07-16 + */ +public interface ICockpitService extends IService { + + List overall(SfqDTO sfqDTO); + + List pipeTypeStatistics(SfqDTO sfqDTO); + + List deviceTypeStatistics(SfqDTO sfqDTO); + + List alarmStatistics(SfqDTO sfqDTO); + + List> deptAlarmStatistics(SfqDTO sfqDTO); + + List> deviceTrendStatistics(SfqDTO sfqDTO); + + List deviceStatus(); + + List alarmList(); + + +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/CockpitServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/CockpitServiceImpl.java new file mode 100644 index 0000000..d07f421 --- /dev/null +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/CockpitServiceImpl.java @@ -0,0 +1,159 @@ +package com.casic.missiles.modular.alarm.service.impl; + +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.enums.ApprovalStatusEnum; +import com.casic.missiles.enums.DictEnum; +import com.casic.missiles.modular.alarm.dao.CockpitMapper; +import com.casic.missiles.modular.alarm.dto.*; +import com.casic.missiles.modular.alarm.entity.AlarmRecords; +import com.casic.missiles.modular.alarm.service.ICockpitService; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.server.CommonServer; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + *

+ * + *

+ * + * @author zt + * @since 2024-07-16 + */ +@RequiredArgsConstructor +@Service +public class CockpitServiceImpl extends ServiceImpl implements ICockpitService { + + private final CommonServer commonServer; + private final AbstractDeptService abstractDeptService; + + @Override + public List overall(SfqDTO sfqDTO) { + return this.baseMapper.overall(commonServer.getDeptIds(), sfqDTO.getType()); + } + + @Override + public List deviceStatus() { + return this.baseMapper.deviceStatus(commonServer.getDeptIds()); + } + + @Override + public List pipeTypeStatistics(SfqDTO sfqDTO) { + return this.baseMapper.pipeTypeStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + } + + @Override + public List deviceTypeStatistics(SfqDTO sfqDTO) { + return this.baseMapper.deviceTypeStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + } + + @Override + public List alarmStatistics(SfqDTO sfqDTO) { + return this.baseMapper.alarmStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + } + + public List getDeptList(String deptIdStrs) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", Arrays.stream(deptIdStrs.split(",")) + .map(Long::parseLong) + .collect(Collectors.toList())); + return abstractDeptService.list(queryWrapper); + } + + @Override + public List> deptAlarmStatistics(SfqDTO sfqDTO) { + + List> resultMapList = new ArrayList<>(); + String deptIdStrs = commonServer.getDeptScopeIds(null); + List deptIds = new ArrayList<>(); + //根据权限只统计分公司级和工程组级 + if (ObjectUtil.isNotEmpty(deptIdStrs)) { + //获取对应的下级部门 + deptIds = getDeptList(deptIdStrs); + boolean isAdmin = deptIds.stream().anyMatch(dept -> DictEnum.DEPT_ALL.equals(dept.getTips())); + if (isAdmin) { + //管理员权限 + deptIds = abstractDeptService.getListByTips("company"); + } else { + //分公司权限 + if (deptIds.stream().anyMatch(dept -> DictEnum.DEPT_COMPANY.equals(dept.getTips()))) { + deptIds = deptIds.stream().filter(dept -> "dept".equals(dept.getTips())).collect(Collectors.toList()); + } + } + } else { + //管理员权限 + deptIds = abstractDeptService.getListByTips("company"); + } + if (null != deptIds && deptIds.size() > 0) { + List responseDTOList = this.baseMapper.deptAlarmStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + for (Dept dept : deptIds) { + Map deptMap = new HashMap<>(); + deptMap.put("dept", dept.getFullName()); + List deptChildIds = abstractDeptService.getIdsRecursionByPid(dept.getId(), ""); + deptChildIds.add(dept.getId()); + deptMap.put("count", 0); + for (AlarmCompanyResponseDTO responseDTO : responseDTOList) { + if (null != responseDTO.getDeptid() && + deptChildIds.contains(responseDTO.getDeptid())) { + deptMap.put("count", Integer.valueOf(deptMap.get("count").toString()) + responseDTO.getAlarmSum()); + } + } + resultMapList.add(deptMap); + } + } + return resultMapList; + } + + + @Override + public List> deviceTrendStatistics(SfqDTO sfqDTO) { + List> mapList = new ArrayList<>(); + + List deviceTrendDTOList = this.baseMapper.deviceTrendStatistics(commonServer.getDeptIds(), sfqDTO.getType()); + //近7天时间获取 + List dateTimeList = DateUtil.rangeToList(DateUtil.offsetDay(new Date(), -6), new Date(), DateField.DAY_OF_YEAR); + List dataStrs = new ArrayList<>(); + dateTimeList.forEach(dateTime -> { + dataStrs.add(DateUtil.format(dateTime, "yyyy-MM-dd")); + }); + dataStrs.forEach(data -> { + Map mapDateObject = new HashMap<>(); + Map mapObject = new HashMap<>(); + mapObject.put("1", 0L); + mapObject.put("2", 0L); + mapDateObject.put(data, mapObject); + deviceTrendDTOList.forEach(deviceTrendDTO -> { + if (deviceTrendDTO.getOperatorTime() != null && + DateUtil.isSameDay(deviceTrendDTO.getOperatorTime(), DateUtil.parseDate(data)) && + "2".equals(deviceTrendDTO.getStatus())) { + mapObject.put(deviceTrendDTO.getStatus(), mapObject.get(deviceTrendDTO.getStatus()) + 1); + } else if (deviceTrendDTO.getOperatorTime() != null && + DateUtil.compare(deviceTrendDTO.getOperatorTime(), DateUtil.parseDate(data)) <= 0 && + "1".equals(deviceTrendDTO.getStatus())) { + mapObject.put(deviceTrendDTO.getStatus(), mapObject.get(deviceTrendDTO.getStatus()) + 1); + } + }); + mapList.add(mapDateObject); + }); + return mapList; + } + + @Override + public List alarmList() { + List alarmRecordDpDTOList = this.baseMapper.alarmList(commonServer.getDeptIds()); + alarmRecordDpDTOList.forEach(alarmRecordDpDTO -> { + alarmRecordDpDTO.setProcessStatusName(ApprovalStatusEnum.getValue(alarmRecordDpDTO.getProcessStatus())); + alarmRecordDpDTO.setDeptName(commonServer.getDeptNamesByDeptId(alarmRecordDpDTO.getDeptid())); + }); + return alarmRecordDpDTOList; + } +} diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java index 6fad75a..41b78bb 100644 --- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java +++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/OverViewServiceImpl.java @@ -1,10 +1,7 @@ package com.casic.missiles.modular.alarm.service.impl; -import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.context.AbstractPermissionContext; -import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.alarm.dao.OverViewMapper; import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO; import com.casic.missiles.modular.alarm.dto.AlarmPositionResponseDTO; @@ -16,7 +13,6 @@ import org.springframework.stereotype.Service; import java.util.List; -import java.util.stream.Collectors; /** *

@@ -30,7 +26,6 @@ @Service public class OverViewServiceImpl extends ServiceImpl implements IOverViewService { - private final AbstractPermissionContext permissionContext; private final CommonServer commonServer; @Override diff --git a/casic-public/src/main/java/com/casic/missiles/util/PositionUtil.java b/casic-public/src/main/java/com/casic/missiles/util/PositionUtil.java new file mode 100644 index 0000000..17bcd6d --- /dev/null +++ b/casic-public/src/main/java/com/casic/missiles/util/PositionUtil.java @@ -0,0 +1,42 @@ +package com.casic.missiles.util; + +public class PositionUtil { + /** + * 方法四:(高德地图计算方法) + * + * @param longitude1 第一点的经度 + * @param latitude1 第一点的纬度 + * @param longitude2 第二点的经度 + * @param latitude2 第二点的纬度 + * @return 返回的距离,单位m + */ + public static Double getDistance4(double longitude1, double latitude1, double longitude2, double latitude2) { + if (longitude1 == 0 || latitude1 == 0 || latitude2 == 0 || longitude2 == 0) { + return 0.0; + } + longitude1 *= 0.01745329251994329; + latitude1 *= 0.01745329251994329; + longitude2 *= 0.01745329251994329; + latitude2 *= 0.01745329251994329; + double var1 = Math.sin(longitude1); + double var2 = Math.sin(latitude1); + double var3 = Math.cos(longitude1); + double var4 = Math.cos(latitude1); + double var5 = Math.sin(longitude2); + double var6 = Math.sin(latitude2); + double var7 = Math.cos(longitude2); + double var8 = Math.cos(latitude2); + double[] var10 = new double[3]; + double[] var20 = new double[3]; + var10[0] = var4 * var3; + var10[1] = var4 * var1; + var10[2] = var2; + var20[0] = var8 * var7; + var20[1] = var8 * var5; + var20[2] = var6; + + return Math.asin(Math.sqrt((var10[0] - var20[0]) * (var10[0] - var20[0]) + (var10[1] - var20[1]) * (var10[1] - var20[1]) + (var10[2] - var20[2]) * (var10[2] - var20[2])) / 2.0) * 1.27420015798544E7; + // 结果四舍五入 保留2位小数 + //return new BigDecimal(distance).setScale(2, RoundingMode.HALF_UP).doubleValue(); + } +}