alarmType(@Param("alarmType") String alarmType,
+ @Param("deptIds") String deptIds,
+ @Param("request") AlarmTypeRequestDTO request);
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
new file mode 100644
index 0000000..432c042
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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/AlarmOverDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
new file mode 100644
index 0000000..eae86c4
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmOverDTO {
+
+
+ @ApiModelProperty("报警数量")
+ private Long sum;
+
+ @ApiModelProperty("0:正在报警,1:今日报警,2:本周报警,3:本月报警,4:全年报警 ")
+ private String type;
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
new file mode 100644
index 0000000..e2590b9
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
@@ -0,0 +1,22 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
new file mode 100644
index 0000000..de56ef6
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionResponseDTO {
+
+ @ApiModelProperty("报警数量")
+ private Long alarmSum;
+
+ @ApiModelProperty("位置类型 ")
+ private String type;
+
+ @ApiModelProperty("位号")
+ private String tagNumber;
+
+ @ApiModelProperty("位置")
+ private String place;
+
+ @ApiModelProperty("名称")
+ private String ledgerName;
+
+ @ApiModelProperty("管理单位")
+ private String deptName;
+
+ @ApiModelProperty("标签")
+ private String marker;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
new file mode 100644
index 0000000..c461cc2
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
@@ -0,0 +1,25 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmTypeRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+ @ApiModelProperty("管理单位")
+ private Long deptid;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
new file mode 100644
index 0000000..8ee85f1
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CommonResponseDTO {
+
+ @ApiModelProperty("名称")
+ private String name;
+
+ @ApiModelProperty("值")
+ private String value;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
index 8d6d5fe..d129951 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
@@ -12,7 +12,7 @@
@ApiModelProperty("挂起原因")
private String suspendReason;
- @ApiModelProperty("挂起时间")
+ @ApiModelProperty(value = "挂起时间(小时),必须为整数",required = true)
private String suspendTime;
}
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 8482de1..fc1e325 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
@@ -40,6 +40,10 @@
@TableField("LEDGER_CODE")
private String ledgerCode;
+ @ApiModelProperty("台账位号")
+ @TableField("LEDGER_NUMBER")
+ private String ledgerNumber;
+
@ApiModelProperty("报警类型")
@TableField("ALARM_TYPE")
private String alarmType;
@@ -71,6 +75,10 @@
@TableField("PROCESS_STATUS")
private String processStatus;
+ @ApiModelProperty("上个处置状态")
+ @TableField("PRE_PROCESS_STATUS")
+ private String preProcessStatus;
+
@ApiModelProperty("处置时间")
@TableField("PROCESS_TIME")
private Date processTime;
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
index fd1748b..9b8b2d5 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
@@ -48,6 +48,11 @@
@TableField("CREATE_PERSON")
private String createPerson;
+
+ @ApiModelProperty("截止日期")
+ @TableField("EXPIRE_TIME")
+ private Date expireTime;
+
@ApiModelProperty("创建时间")
@TableField("CREATE_TIME")
private Date createTime;
@@ -56,13 +61,18 @@
@TableField("DESCN")
private String descn;
+ @ApiModelProperty("是否有效,1:有,0:无")
+ @TableField("VALID")
+ private String valid;
+
public SuspendLog() {
}
- public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson) {
+ public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson,Date expireTime) {
this.alarmId = alarmId;
this.suspendReason = suspendReason;
this.suspendTime = suspendTime;
this.createPerson = createPerson;
+ this.expireTime = expireTime;
}
}
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 f285f96..80db26d 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
@@ -8,6 +8,8 @@
import com.casic.missiles.modular.alarm.dto.SuspendDTO;
import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import java.util.List;
+
/**
*
* 报警管理(暂定) 服务类
@@ -30,4 +32,6 @@
boolean read(Long id);
+ List changeProcessStatus(List ids);
+
}
diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml
index b04b601..7d077f1 100644
--- a/casic-alarm/pom.xml
+++ b/casic-alarm/pom.xml
@@ -43,11 +43,11 @@
-
- org.quartz-scheduler
- quartz
- 2.3.0
-
+
+
+
+
+
junit
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
index 77a299c..272d850 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
@@ -78,7 +78,7 @@
@ApiOperation("查看")
@PostMapping("/view")
@ResponseBody
- public ReturnDTO edit(@RequestBody IdDTO idDTO) {
+ public ReturnDTO view(@RequestBody IdDTO idDTO) {
Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
throw new BusinessException(BusinessExceptionEnum.ID_NULL);
});
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java
new file mode 100644
index 0000000..7b9ddf4
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java
@@ -0,0 +1,86 @@
+package com.casic.missiles.modular.alarm.controller;
+
+
+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.dto.ReturnDTO;
+import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO;
+import com.casic.missiles.modular.alarm.dto.AlarmTypeRequestDTO;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import com.casic.missiles.modular.alarm.service.IAlarmStaticsService;
+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-08-15
+ */
+@Api(tags = "报警统计模块")
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/statics/alarmRecords")
+public class AlarmStaticsController extends ExportController {
+
+ private final IAlarmStaticsService iAlarmStaticsService;
+ private final AbstractPermissionContext permissionContext;
+
+ @ApiOperation("报警总体情况")
+ @PostMapping("/overall")
+ @ResponseBody
+ public ReturnDTO overall() {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.overall(alarmType,dataScope.getDeptIds()));
+ }
+
+ @ApiOperation("各类报警统计")
+ @PostMapping("/alarmType")
+ @ResponseBody
+ public ReturnDTO alarmType(@RequestBody AlarmTypeRequestDTO alarmTypeRequestDTO) {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.alarmType(alarmType,dataScope.getDeptIds(),alarmTypeRequestDTO));
+ }
+//
+// @ApiOperation("报警趋势分析")
+// @PostMapping("/alarmTrend")
+// @ResponseBody
+// public ReturnDTO alarmTrend() {
+//
+// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+// String alarmType="";
+// return ReturnUtil.success(iAlarmStaticsService.alarmTrend(alarmType,dataScope.getDeptIds()));
+// }
+//
+// @ApiOperation("各单位报警统计")
+// @PostMapping("/alarmCompany")
+// @ResponseBody
+// public ReturnDTO alarmCompany() {
+//
+// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+// String alarmType="";
+// return ReturnUtil.success(iAlarmStaticsService.alarmCompany(alarmType,dataScope.getDeptIds()));
+// }
+
+ @ApiOperation("异常位置分析")
+ @PostMapping("/alarmPosition")
+ @ResponseBody
+ public ReturnDTO alarmPosition(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO) {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.alarmPosition(alarmType,dataScope.getDeptIds(),alarmPositionRequestDTO));
+ }
+
+}
+
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java
new file mode 100644
index 0000000..acd97dc
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java
@@ -0,0 +1,35 @@
+package com.casic.missiles.modular.alarm.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.modular.alarm.dto.*;
+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 AlarmStaticsMapper extends BaseMapper {
+
+ List overall( @Param("alarmType") String alarmType,
+ @Param("deptStrs") String deptStrs);
+
+ List alarmPosition(@Param("alarmType") String alarmType,
+ @Param("deptIds") String deptIds,
+ @Param("request") AlarmPositionRequestDTO request);
+
+ List alarmType(@Param("alarmType") String alarmType,
+ @Param("deptIds") String deptIds,
+ @Param("request") AlarmTypeRequestDTO request);
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
new file mode 100644
index 0000000..432c042
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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/AlarmOverDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
new file mode 100644
index 0000000..eae86c4
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmOverDTO {
+
+
+ @ApiModelProperty("报警数量")
+ private Long sum;
+
+ @ApiModelProperty("0:正在报警,1:今日报警,2:本周报警,3:本月报警,4:全年报警 ")
+ private String type;
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
new file mode 100644
index 0000000..e2590b9
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
@@ -0,0 +1,22 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
new file mode 100644
index 0000000..de56ef6
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionResponseDTO {
+
+ @ApiModelProperty("报警数量")
+ private Long alarmSum;
+
+ @ApiModelProperty("位置类型 ")
+ private String type;
+
+ @ApiModelProperty("位号")
+ private String tagNumber;
+
+ @ApiModelProperty("位置")
+ private String place;
+
+ @ApiModelProperty("名称")
+ private String ledgerName;
+
+ @ApiModelProperty("管理单位")
+ private String deptName;
+
+ @ApiModelProperty("标签")
+ private String marker;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
new file mode 100644
index 0000000..c461cc2
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
@@ -0,0 +1,25 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmTypeRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+ @ApiModelProperty("管理单位")
+ private Long deptid;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
new file mode 100644
index 0000000..8ee85f1
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CommonResponseDTO {
+
+ @ApiModelProperty("名称")
+ private String name;
+
+ @ApiModelProperty("值")
+ private String value;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
index 8d6d5fe..d129951 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
@@ -12,7 +12,7 @@
@ApiModelProperty("挂起原因")
private String suspendReason;
- @ApiModelProperty("挂起时间")
+ @ApiModelProperty(value = "挂起时间(小时),必须为整数",required = true)
private String suspendTime;
}
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 8482de1..fc1e325 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
@@ -40,6 +40,10 @@
@TableField("LEDGER_CODE")
private String ledgerCode;
+ @ApiModelProperty("台账位号")
+ @TableField("LEDGER_NUMBER")
+ private String ledgerNumber;
+
@ApiModelProperty("报警类型")
@TableField("ALARM_TYPE")
private String alarmType;
@@ -71,6 +75,10 @@
@TableField("PROCESS_STATUS")
private String processStatus;
+ @ApiModelProperty("上个处置状态")
+ @TableField("PRE_PROCESS_STATUS")
+ private String preProcessStatus;
+
@ApiModelProperty("处置时间")
@TableField("PROCESS_TIME")
private Date processTime;
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
index fd1748b..9b8b2d5 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
@@ -48,6 +48,11 @@
@TableField("CREATE_PERSON")
private String createPerson;
+
+ @ApiModelProperty("截止日期")
+ @TableField("EXPIRE_TIME")
+ private Date expireTime;
+
@ApiModelProperty("创建时间")
@TableField("CREATE_TIME")
private Date createTime;
@@ -56,13 +61,18 @@
@TableField("DESCN")
private String descn;
+ @ApiModelProperty("是否有效,1:有,0:无")
+ @TableField("VALID")
+ private String valid;
+
public SuspendLog() {
}
- public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson) {
+ public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson,Date expireTime) {
this.alarmId = alarmId;
this.suspendReason = suspendReason;
this.suspendTime = suspendTime;
this.createPerson = createPerson;
+ this.expireTime = expireTime;
}
}
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 f285f96..80db26d 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
@@ -8,6 +8,8 @@
import com.casic.missiles.modular.alarm.dto.SuspendDTO;
import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import java.util.List;
+
/**
*
* 报警管理(暂定) 服务类
@@ -30,4 +32,6 @@
boolean read(Long id);
+ List changeProcessStatus(List ids);
+
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java
new file mode 100644
index 0000000..4c1b2ea
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java
@@ -0,0 +1,27 @@
+package com.casic.missiles.modular.alarm.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.modular.alarm.dto.*;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+
+import java.util.List;
+
+/**
+ *
+ * 报警管理(暂定) 服务类
+ *
+ *
+ * @author zt
+ * @since 2024-07-16
+ */
+public interface IAlarmStaticsService extends IService {
+
+ List overall(String alarmType ,List deptIds);
+
+ List alarmPosition(String alarmType , List deptIds,AlarmPositionRequestDTO alarmPositionRequestDTO);
+
+ List alarmType(String alarmType , List deptIds,AlarmTypeRequestDTO alarmTypeRequestDTO);
+
+}
diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml
index b04b601..7d077f1 100644
--- a/casic-alarm/pom.xml
+++ b/casic-alarm/pom.xml
@@ -43,11 +43,11 @@
-
- org.quartz-scheduler
- quartz
- 2.3.0
-
+
+
+
+
+
junit
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
index 77a299c..272d850 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
@@ -78,7 +78,7 @@
@ApiOperation("查看")
@PostMapping("/view")
@ResponseBody
- public ReturnDTO edit(@RequestBody IdDTO idDTO) {
+ public ReturnDTO view(@RequestBody IdDTO idDTO) {
Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
throw new BusinessException(BusinessExceptionEnum.ID_NULL);
});
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java
new file mode 100644
index 0000000..7b9ddf4
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java
@@ -0,0 +1,86 @@
+package com.casic.missiles.modular.alarm.controller;
+
+
+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.dto.ReturnDTO;
+import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO;
+import com.casic.missiles.modular.alarm.dto.AlarmTypeRequestDTO;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import com.casic.missiles.modular.alarm.service.IAlarmStaticsService;
+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-08-15
+ */
+@Api(tags = "报警统计模块")
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/statics/alarmRecords")
+public class AlarmStaticsController extends ExportController {
+
+ private final IAlarmStaticsService iAlarmStaticsService;
+ private final AbstractPermissionContext permissionContext;
+
+ @ApiOperation("报警总体情况")
+ @PostMapping("/overall")
+ @ResponseBody
+ public ReturnDTO overall() {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.overall(alarmType,dataScope.getDeptIds()));
+ }
+
+ @ApiOperation("各类报警统计")
+ @PostMapping("/alarmType")
+ @ResponseBody
+ public ReturnDTO alarmType(@RequestBody AlarmTypeRequestDTO alarmTypeRequestDTO) {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.alarmType(alarmType,dataScope.getDeptIds(),alarmTypeRequestDTO));
+ }
+//
+// @ApiOperation("报警趋势分析")
+// @PostMapping("/alarmTrend")
+// @ResponseBody
+// public ReturnDTO alarmTrend() {
+//
+// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+// String alarmType="";
+// return ReturnUtil.success(iAlarmStaticsService.alarmTrend(alarmType,dataScope.getDeptIds()));
+// }
+//
+// @ApiOperation("各单位报警统计")
+// @PostMapping("/alarmCompany")
+// @ResponseBody
+// public ReturnDTO alarmCompany() {
+//
+// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+// String alarmType="";
+// return ReturnUtil.success(iAlarmStaticsService.alarmCompany(alarmType,dataScope.getDeptIds()));
+// }
+
+ @ApiOperation("异常位置分析")
+ @PostMapping("/alarmPosition")
+ @ResponseBody
+ public ReturnDTO alarmPosition(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO) {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.alarmPosition(alarmType,dataScope.getDeptIds(),alarmPositionRequestDTO));
+ }
+
+}
+
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java
new file mode 100644
index 0000000..acd97dc
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java
@@ -0,0 +1,35 @@
+package com.casic.missiles.modular.alarm.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.modular.alarm.dto.*;
+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 AlarmStaticsMapper extends BaseMapper {
+
+ List overall( @Param("alarmType") String alarmType,
+ @Param("deptStrs") String deptStrs);
+
+ List alarmPosition(@Param("alarmType") String alarmType,
+ @Param("deptIds") String deptIds,
+ @Param("request") AlarmPositionRequestDTO request);
+
+ List alarmType(@Param("alarmType") String alarmType,
+ @Param("deptIds") String deptIds,
+ @Param("request") AlarmTypeRequestDTO request);
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
new file mode 100644
index 0000000..432c042
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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/AlarmOverDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
new file mode 100644
index 0000000..eae86c4
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmOverDTO {
+
+
+ @ApiModelProperty("报警数量")
+ private Long sum;
+
+ @ApiModelProperty("0:正在报警,1:今日报警,2:本周报警,3:本月报警,4:全年报警 ")
+ private String type;
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
new file mode 100644
index 0000000..e2590b9
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
@@ -0,0 +1,22 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
new file mode 100644
index 0000000..de56ef6
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionResponseDTO {
+
+ @ApiModelProperty("报警数量")
+ private Long alarmSum;
+
+ @ApiModelProperty("位置类型 ")
+ private String type;
+
+ @ApiModelProperty("位号")
+ private String tagNumber;
+
+ @ApiModelProperty("位置")
+ private String place;
+
+ @ApiModelProperty("名称")
+ private String ledgerName;
+
+ @ApiModelProperty("管理单位")
+ private String deptName;
+
+ @ApiModelProperty("标签")
+ private String marker;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
new file mode 100644
index 0000000..c461cc2
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
@@ -0,0 +1,25 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmTypeRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+ @ApiModelProperty("管理单位")
+ private Long deptid;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
new file mode 100644
index 0000000..8ee85f1
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CommonResponseDTO {
+
+ @ApiModelProperty("名称")
+ private String name;
+
+ @ApiModelProperty("值")
+ private String value;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
index 8d6d5fe..d129951 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
@@ -12,7 +12,7 @@
@ApiModelProperty("挂起原因")
private String suspendReason;
- @ApiModelProperty("挂起时间")
+ @ApiModelProperty(value = "挂起时间(小时),必须为整数",required = true)
private String suspendTime;
}
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 8482de1..fc1e325 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
@@ -40,6 +40,10 @@
@TableField("LEDGER_CODE")
private String ledgerCode;
+ @ApiModelProperty("台账位号")
+ @TableField("LEDGER_NUMBER")
+ private String ledgerNumber;
+
@ApiModelProperty("报警类型")
@TableField("ALARM_TYPE")
private String alarmType;
@@ -71,6 +75,10 @@
@TableField("PROCESS_STATUS")
private String processStatus;
+ @ApiModelProperty("上个处置状态")
+ @TableField("PRE_PROCESS_STATUS")
+ private String preProcessStatus;
+
@ApiModelProperty("处置时间")
@TableField("PROCESS_TIME")
private Date processTime;
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
index fd1748b..9b8b2d5 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
@@ -48,6 +48,11 @@
@TableField("CREATE_PERSON")
private String createPerson;
+
+ @ApiModelProperty("截止日期")
+ @TableField("EXPIRE_TIME")
+ private Date expireTime;
+
@ApiModelProperty("创建时间")
@TableField("CREATE_TIME")
private Date createTime;
@@ -56,13 +61,18 @@
@TableField("DESCN")
private String descn;
+ @ApiModelProperty("是否有效,1:有,0:无")
+ @TableField("VALID")
+ private String valid;
+
public SuspendLog() {
}
- public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson) {
+ public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson,Date expireTime) {
this.alarmId = alarmId;
this.suspendReason = suspendReason;
this.suspendTime = suspendTime;
this.createPerson = createPerson;
+ this.expireTime = expireTime;
}
}
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 f285f96..80db26d 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
@@ -8,6 +8,8 @@
import com.casic.missiles.modular.alarm.dto.SuspendDTO;
import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import java.util.List;
+
/**
*
* 报警管理(暂定) 服务类
@@ -30,4 +32,6 @@
boolean read(Long id);
+ List changeProcessStatus(List ids);
+
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java
new file mode 100644
index 0000000..4c1b2ea
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java
@@ -0,0 +1,27 @@
+package com.casic.missiles.modular.alarm.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.modular.alarm.dto.*;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+
+import java.util.List;
+
+/**
+ *
+ * 报警管理(暂定) 服务类
+ *
+ *
+ * @author zt
+ * @since 2024-07-16
+ */
+public interface IAlarmStaticsService extends IService {
+
+ List overall(String alarmType ,List deptIds);
+
+ List alarmPosition(String alarmType , List deptIds,AlarmPositionRequestDTO alarmPositionRequestDTO);
+
+ List alarmType(String alarmType , List deptIds,AlarmTypeRequestDTO alarmTypeRequestDTO);
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
index f711ef8..ef25c12 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
@@ -1,8 +1,11 @@
package com.casic.missiles.modular.alarm.service;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
import com.casic.missiles.modular.alarm.entity.ApprovalLog;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 审批记录 服务类
@@ -13,4 +16,6 @@
*/
public interface IApprovalLogService extends IService {
+ boolean saveSuspendLogs(List alarmRecordsList);
+
}
diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml
index b04b601..7d077f1 100644
--- a/casic-alarm/pom.xml
+++ b/casic-alarm/pom.xml
@@ -43,11 +43,11 @@
-
- org.quartz-scheduler
- quartz
- 2.3.0
-
+
+
+
+
+
junit
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
index 77a299c..272d850 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
@@ -78,7 +78,7 @@
@ApiOperation("查看")
@PostMapping("/view")
@ResponseBody
- public ReturnDTO edit(@RequestBody IdDTO idDTO) {
+ public ReturnDTO view(@RequestBody IdDTO idDTO) {
Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
throw new BusinessException(BusinessExceptionEnum.ID_NULL);
});
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java
new file mode 100644
index 0000000..7b9ddf4
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java
@@ -0,0 +1,86 @@
+package com.casic.missiles.modular.alarm.controller;
+
+
+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.dto.ReturnDTO;
+import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO;
+import com.casic.missiles.modular.alarm.dto.AlarmTypeRequestDTO;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import com.casic.missiles.modular.alarm.service.IAlarmStaticsService;
+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-08-15
+ */
+@Api(tags = "报警统计模块")
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/statics/alarmRecords")
+public class AlarmStaticsController extends ExportController {
+
+ private final IAlarmStaticsService iAlarmStaticsService;
+ private final AbstractPermissionContext permissionContext;
+
+ @ApiOperation("报警总体情况")
+ @PostMapping("/overall")
+ @ResponseBody
+ public ReturnDTO overall() {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.overall(alarmType,dataScope.getDeptIds()));
+ }
+
+ @ApiOperation("各类报警统计")
+ @PostMapping("/alarmType")
+ @ResponseBody
+ public ReturnDTO alarmType(@RequestBody AlarmTypeRequestDTO alarmTypeRequestDTO) {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.alarmType(alarmType,dataScope.getDeptIds(),alarmTypeRequestDTO));
+ }
+//
+// @ApiOperation("报警趋势分析")
+// @PostMapping("/alarmTrend")
+// @ResponseBody
+// public ReturnDTO alarmTrend() {
+//
+// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+// String alarmType="";
+// return ReturnUtil.success(iAlarmStaticsService.alarmTrend(alarmType,dataScope.getDeptIds()));
+// }
+//
+// @ApiOperation("各单位报警统计")
+// @PostMapping("/alarmCompany")
+// @ResponseBody
+// public ReturnDTO alarmCompany() {
+//
+// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+// String alarmType="";
+// return ReturnUtil.success(iAlarmStaticsService.alarmCompany(alarmType,dataScope.getDeptIds()));
+// }
+
+ @ApiOperation("异常位置分析")
+ @PostMapping("/alarmPosition")
+ @ResponseBody
+ public ReturnDTO alarmPosition(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO) {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.alarmPosition(alarmType,dataScope.getDeptIds(),alarmPositionRequestDTO));
+ }
+
+}
+
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java
new file mode 100644
index 0000000..acd97dc
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java
@@ -0,0 +1,35 @@
+package com.casic.missiles.modular.alarm.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.modular.alarm.dto.*;
+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 AlarmStaticsMapper extends BaseMapper {
+
+ List overall( @Param("alarmType") String alarmType,
+ @Param("deptStrs") String deptStrs);
+
+ List alarmPosition(@Param("alarmType") String alarmType,
+ @Param("deptIds") String deptIds,
+ @Param("request") AlarmPositionRequestDTO request);
+
+ List alarmType(@Param("alarmType") String alarmType,
+ @Param("deptIds") String deptIds,
+ @Param("request") AlarmTypeRequestDTO request);
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
new file mode 100644
index 0000000..432c042
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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/AlarmOverDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
new file mode 100644
index 0000000..eae86c4
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmOverDTO {
+
+
+ @ApiModelProperty("报警数量")
+ private Long sum;
+
+ @ApiModelProperty("0:正在报警,1:今日报警,2:本周报警,3:本月报警,4:全年报警 ")
+ private String type;
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
new file mode 100644
index 0000000..e2590b9
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
@@ -0,0 +1,22 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
new file mode 100644
index 0000000..de56ef6
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionResponseDTO {
+
+ @ApiModelProperty("报警数量")
+ private Long alarmSum;
+
+ @ApiModelProperty("位置类型 ")
+ private String type;
+
+ @ApiModelProperty("位号")
+ private String tagNumber;
+
+ @ApiModelProperty("位置")
+ private String place;
+
+ @ApiModelProperty("名称")
+ private String ledgerName;
+
+ @ApiModelProperty("管理单位")
+ private String deptName;
+
+ @ApiModelProperty("标签")
+ private String marker;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
new file mode 100644
index 0000000..c461cc2
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
@@ -0,0 +1,25 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmTypeRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+ @ApiModelProperty("管理单位")
+ private Long deptid;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
new file mode 100644
index 0000000..8ee85f1
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CommonResponseDTO {
+
+ @ApiModelProperty("名称")
+ private String name;
+
+ @ApiModelProperty("值")
+ private String value;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
index 8d6d5fe..d129951 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
@@ -12,7 +12,7 @@
@ApiModelProperty("挂起原因")
private String suspendReason;
- @ApiModelProperty("挂起时间")
+ @ApiModelProperty(value = "挂起时间(小时),必须为整数",required = true)
private String suspendTime;
}
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 8482de1..fc1e325 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
@@ -40,6 +40,10 @@
@TableField("LEDGER_CODE")
private String ledgerCode;
+ @ApiModelProperty("台账位号")
+ @TableField("LEDGER_NUMBER")
+ private String ledgerNumber;
+
@ApiModelProperty("报警类型")
@TableField("ALARM_TYPE")
private String alarmType;
@@ -71,6 +75,10 @@
@TableField("PROCESS_STATUS")
private String processStatus;
+ @ApiModelProperty("上个处置状态")
+ @TableField("PRE_PROCESS_STATUS")
+ private String preProcessStatus;
+
@ApiModelProperty("处置时间")
@TableField("PROCESS_TIME")
private Date processTime;
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
index fd1748b..9b8b2d5 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
@@ -48,6 +48,11 @@
@TableField("CREATE_PERSON")
private String createPerson;
+
+ @ApiModelProperty("截止日期")
+ @TableField("EXPIRE_TIME")
+ private Date expireTime;
+
@ApiModelProperty("创建时间")
@TableField("CREATE_TIME")
private Date createTime;
@@ -56,13 +61,18 @@
@TableField("DESCN")
private String descn;
+ @ApiModelProperty("是否有效,1:有,0:无")
+ @TableField("VALID")
+ private String valid;
+
public SuspendLog() {
}
- public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson) {
+ public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson,Date expireTime) {
this.alarmId = alarmId;
this.suspendReason = suspendReason;
this.suspendTime = suspendTime;
this.createPerson = createPerson;
+ this.expireTime = expireTime;
}
}
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 f285f96..80db26d 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
@@ -8,6 +8,8 @@
import com.casic.missiles.modular.alarm.dto.SuspendDTO;
import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import java.util.List;
+
/**
*
* 报警管理(暂定) 服务类
@@ -30,4 +32,6 @@
boolean read(Long id);
+ List changeProcessStatus(List ids);
+
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java
new file mode 100644
index 0000000..4c1b2ea
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java
@@ -0,0 +1,27 @@
+package com.casic.missiles.modular.alarm.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.modular.alarm.dto.*;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+
+import java.util.List;
+
+/**
+ *
+ * 报警管理(暂定) 服务类
+ *
+ *
+ * @author zt
+ * @since 2024-07-16
+ */
+public interface IAlarmStaticsService extends IService {
+
+ List overall(String alarmType ,List deptIds);
+
+ List alarmPosition(String alarmType , List deptIds,AlarmPositionRequestDTO alarmPositionRequestDTO);
+
+ List alarmType(String alarmType , List deptIds,AlarmTypeRequestDTO alarmTypeRequestDTO);
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
index f711ef8..ef25c12 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
@@ -1,8 +1,11 @@
package com.casic.missiles.modular.alarm.service;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
import com.casic.missiles.modular.alarm.entity.ApprovalLog;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 审批记录 服务类
@@ -13,4 +16,6 @@
*/
public interface IApprovalLogService extends IService {
+ boolean saveSuspendLogs(List alarmRecordsList);
+
}
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 01e1d2f..85def7b 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
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.alarm.service.impl;
+import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -22,6 +23,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Date;
import java.util.List;
/**
@@ -75,15 +77,17 @@
@Override
public boolean suspend(SuspendDTO suspendDTO) {
//1、更新报警表流程状态
- AlarmRecords alarmRecords = new AlarmRecords();
- alarmRecords.setId(suspendDTO.getAlarmId());
+ AlarmRecords alarmRecords = this.getById(suspendDTO.getAlarmId());
+ if (!ApprovalStatusEnum.SUSPEND.getCode().equals(alarmRecords.getProcessStatus()))
+ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus());
alarmRecords.setProcessStatus(ApprovalStatusEnum.SUSPEND.getCode());
- this.baseMapper.updateById(alarmRecords) ;
+ this.baseMapper.updateById(alarmRecords);
//2、写入流程日志
String loginPersonName = permissionContext.getAuthService().getLoginUser().getName();
- approvalLogMapper.insert( new ApprovalLog(suspendDTO.getAlarmId(),"1",loginPersonName,ApprovalStatusEnum.SUSPEND.getCode()));
+ approvalLogMapper.insert(new ApprovalLog(suspendDTO.getAlarmId(), "1", loginPersonName, ApprovalStatusEnum.SUSPEND.getCode()));
//3、写入挂起日志表
- return suspendLogMapper.insert(new SuspendLog(suspendDTO.getAlarmId(), suspendDTO.getSuspendReason(), suspendDTO.getSuspendTime(), loginPersonName))>0?true:false;
+ Date expireTime = DateUtil.offsetHour(new Date(), Integer.decode(suspendDTO.getSuspendTime()));
+ return suspendLogMapper.insert(new SuspendLog(suspendDTO.getAlarmId(), suspendDTO.getSuspendReason(), suspendDTO.getSuspendTime(), loginPersonName, expireTime)) > 0 ? true : false;
}
@Transactional
@@ -93,9 +97,9 @@
AlarmRecords alarmRecords = new AlarmRecords();
alarmRecords.setId(id);
alarmRecords.setProcessStatus(ApprovalStatusEnum.READ.getCode());
- this.baseMapper.updateById(alarmRecords) ;
+ this.baseMapper.updateById(alarmRecords);
//2、写入流程日志
- return approvalLogMapper.insert( new ApprovalLog(id,"1",permissionContext.getAuthService().getLoginUser().getName(),ApprovalStatusEnum.READ.getCode()))>0?true:false;
+ return approvalLogMapper.insert(new ApprovalLog(id, "1", permissionContext.getAuthService().getLoginUser().getName(), ApprovalStatusEnum.READ.getCode())) > 0 ? true : false;
}
@@ -105,20 +109,30 @@
public boolean remind(RemindDTO remindDTO) {
//toDo:1、提醒app推送,需要对接
//2、更新报警表流程状态
- AlarmRecords alarmRecords = new AlarmRecords();
- alarmRecords.setId(remindDTO.getAlarmId());
+ AlarmRecords alarmRecords = this.getById(remindDTO.getAlarmId());
+ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus());
alarmRecords.setProcessStatus(ApprovalStatusEnum.UNCONFIRM.getCode());
- this.baseMapper.updateById(alarmRecords) ;
+ this.baseMapper.updateById(alarmRecords);
//3、写入流程日志
String loginPersonName = permissionContext.getAuthService().getLoginUser().getName();
- approvalLogMapper.insert( new ApprovalLog(remindDTO.getAlarmId(),"1",loginPersonName,ApprovalStatusEnum.UNCONFIRM.getCode()));
+ approvalLogMapper.insert(new ApprovalLog(remindDTO.getAlarmId(), "1", loginPersonName, ApprovalStatusEnum.UNCONFIRM.getCode()));
//4、写入提醒日志表
return remindLogMapper.insert(RemindLog.builder()
.alarmId(remindDTO.getAlarmId())
.remindContent(remindDTO.getRemindContent())
.remindPerson(remindDTO.getRemindPerson())
.telephone(remindDTO.getTelephone())
- .remindPerson(loginPersonName).build())>0?true:false;
+ .remindPerson(loginPersonName).build()) > 0 ? true : false;
}
+
+ @Override
+ public List changeProcessStatus(List ids) {
+ List alarmRecordsList = this.listByIds(ids);
+ alarmRecordsList.forEach(alarmRecords -> {
+ alarmRecords.setProcessStatus(alarmRecords.getPreProcessStatus());
+ });
+ this.updateBatchById(alarmRecordsList);
+ return alarmRecordsList;
+ }
}
diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml
index b04b601..7d077f1 100644
--- a/casic-alarm/pom.xml
+++ b/casic-alarm/pom.xml
@@ -43,11 +43,11 @@
-
- org.quartz-scheduler
- quartz
- 2.3.0
-
+
+
+
+
+
junit
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
index 77a299c..272d850 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
@@ -78,7 +78,7 @@
@ApiOperation("查看")
@PostMapping("/view")
@ResponseBody
- public ReturnDTO edit(@RequestBody IdDTO idDTO) {
+ public ReturnDTO view(@RequestBody IdDTO idDTO) {
Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
throw new BusinessException(BusinessExceptionEnum.ID_NULL);
});
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java
new file mode 100644
index 0000000..7b9ddf4
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java
@@ -0,0 +1,86 @@
+package com.casic.missiles.modular.alarm.controller;
+
+
+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.dto.ReturnDTO;
+import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO;
+import com.casic.missiles.modular.alarm.dto.AlarmTypeRequestDTO;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import com.casic.missiles.modular.alarm.service.IAlarmStaticsService;
+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-08-15
+ */
+@Api(tags = "报警统计模块")
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/statics/alarmRecords")
+public class AlarmStaticsController extends ExportController {
+
+ private final IAlarmStaticsService iAlarmStaticsService;
+ private final AbstractPermissionContext permissionContext;
+
+ @ApiOperation("报警总体情况")
+ @PostMapping("/overall")
+ @ResponseBody
+ public ReturnDTO overall() {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.overall(alarmType,dataScope.getDeptIds()));
+ }
+
+ @ApiOperation("各类报警统计")
+ @PostMapping("/alarmType")
+ @ResponseBody
+ public ReturnDTO alarmType(@RequestBody AlarmTypeRequestDTO alarmTypeRequestDTO) {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.alarmType(alarmType,dataScope.getDeptIds(),alarmTypeRequestDTO));
+ }
+//
+// @ApiOperation("报警趋势分析")
+// @PostMapping("/alarmTrend")
+// @ResponseBody
+// public ReturnDTO alarmTrend() {
+//
+// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+// String alarmType="";
+// return ReturnUtil.success(iAlarmStaticsService.alarmTrend(alarmType,dataScope.getDeptIds()));
+// }
+//
+// @ApiOperation("各单位报警统计")
+// @PostMapping("/alarmCompany")
+// @ResponseBody
+// public ReturnDTO alarmCompany() {
+//
+// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+// String alarmType="";
+// return ReturnUtil.success(iAlarmStaticsService.alarmCompany(alarmType,dataScope.getDeptIds()));
+// }
+
+ @ApiOperation("异常位置分析")
+ @PostMapping("/alarmPosition")
+ @ResponseBody
+ public ReturnDTO alarmPosition(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO) {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.alarmPosition(alarmType,dataScope.getDeptIds(),alarmPositionRequestDTO));
+ }
+
+}
+
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java
new file mode 100644
index 0000000..acd97dc
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java
@@ -0,0 +1,35 @@
+package com.casic.missiles.modular.alarm.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.modular.alarm.dto.*;
+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 AlarmStaticsMapper extends BaseMapper {
+
+ List overall( @Param("alarmType") String alarmType,
+ @Param("deptStrs") String deptStrs);
+
+ List alarmPosition(@Param("alarmType") String alarmType,
+ @Param("deptIds") String deptIds,
+ @Param("request") AlarmPositionRequestDTO request);
+
+ List alarmType(@Param("alarmType") String alarmType,
+ @Param("deptIds") String deptIds,
+ @Param("request") AlarmTypeRequestDTO request);
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
new file mode 100644
index 0000000..432c042
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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/AlarmOverDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
new file mode 100644
index 0000000..eae86c4
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmOverDTO {
+
+
+ @ApiModelProperty("报警数量")
+ private Long sum;
+
+ @ApiModelProperty("0:正在报警,1:今日报警,2:本周报警,3:本月报警,4:全年报警 ")
+ private String type;
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
new file mode 100644
index 0000000..e2590b9
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
@@ -0,0 +1,22 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
new file mode 100644
index 0000000..de56ef6
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionResponseDTO {
+
+ @ApiModelProperty("报警数量")
+ private Long alarmSum;
+
+ @ApiModelProperty("位置类型 ")
+ private String type;
+
+ @ApiModelProperty("位号")
+ private String tagNumber;
+
+ @ApiModelProperty("位置")
+ private String place;
+
+ @ApiModelProperty("名称")
+ private String ledgerName;
+
+ @ApiModelProperty("管理单位")
+ private String deptName;
+
+ @ApiModelProperty("标签")
+ private String marker;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
new file mode 100644
index 0000000..c461cc2
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
@@ -0,0 +1,25 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmTypeRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+ @ApiModelProperty("管理单位")
+ private Long deptid;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
new file mode 100644
index 0000000..8ee85f1
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CommonResponseDTO {
+
+ @ApiModelProperty("名称")
+ private String name;
+
+ @ApiModelProperty("值")
+ private String value;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
index 8d6d5fe..d129951 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
@@ -12,7 +12,7 @@
@ApiModelProperty("挂起原因")
private String suspendReason;
- @ApiModelProperty("挂起时间")
+ @ApiModelProperty(value = "挂起时间(小时),必须为整数",required = true)
private String suspendTime;
}
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 8482de1..fc1e325 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
@@ -40,6 +40,10 @@
@TableField("LEDGER_CODE")
private String ledgerCode;
+ @ApiModelProperty("台账位号")
+ @TableField("LEDGER_NUMBER")
+ private String ledgerNumber;
+
@ApiModelProperty("报警类型")
@TableField("ALARM_TYPE")
private String alarmType;
@@ -71,6 +75,10 @@
@TableField("PROCESS_STATUS")
private String processStatus;
+ @ApiModelProperty("上个处置状态")
+ @TableField("PRE_PROCESS_STATUS")
+ private String preProcessStatus;
+
@ApiModelProperty("处置时间")
@TableField("PROCESS_TIME")
private Date processTime;
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
index fd1748b..9b8b2d5 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
@@ -48,6 +48,11 @@
@TableField("CREATE_PERSON")
private String createPerson;
+
+ @ApiModelProperty("截止日期")
+ @TableField("EXPIRE_TIME")
+ private Date expireTime;
+
@ApiModelProperty("创建时间")
@TableField("CREATE_TIME")
private Date createTime;
@@ -56,13 +61,18 @@
@TableField("DESCN")
private String descn;
+ @ApiModelProperty("是否有效,1:有,0:无")
+ @TableField("VALID")
+ private String valid;
+
public SuspendLog() {
}
- public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson) {
+ public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson,Date expireTime) {
this.alarmId = alarmId;
this.suspendReason = suspendReason;
this.suspendTime = suspendTime;
this.createPerson = createPerson;
+ this.expireTime = expireTime;
}
}
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 f285f96..80db26d 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
@@ -8,6 +8,8 @@
import com.casic.missiles.modular.alarm.dto.SuspendDTO;
import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import java.util.List;
+
/**
*
* 报警管理(暂定) 服务类
@@ -30,4 +32,6 @@
boolean read(Long id);
+ List changeProcessStatus(List ids);
+
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java
new file mode 100644
index 0000000..4c1b2ea
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java
@@ -0,0 +1,27 @@
+package com.casic.missiles.modular.alarm.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.modular.alarm.dto.*;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+
+import java.util.List;
+
+/**
+ *
+ * 报警管理(暂定) 服务类
+ *
+ *
+ * @author zt
+ * @since 2024-07-16
+ */
+public interface IAlarmStaticsService extends IService {
+
+ List overall(String alarmType ,List deptIds);
+
+ List alarmPosition(String alarmType , List deptIds,AlarmPositionRequestDTO alarmPositionRequestDTO);
+
+ List alarmType(String alarmType , List deptIds,AlarmTypeRequestDTO alarmTypeRequestDTO);
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
index f711ef8..ef25c12 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
@@ -1,8 +1,11 @@
package com.casic.missiles.modular.alarm.service;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
import com.casic.missiles.modular.alarm.entity.ApprovalLog;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 审批记录 服务类
@@ -13,4 +16,6 @@
*/
public interface IApprovalLogService extends IService {
+ boolean saveSuspendLogs(List alarmRecordsList);
+
}
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 01e1d2f..85def7b 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
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.alarm.service.impl;
+import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -22,6 +23,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Date;
import java.util.List;
/**
@@ -75,15 +77,17 @@
@Override
public boolean suspend(SuspendDTO suspendDTO) {
//1、更新报警表流程状态
- AlarmRecords alarmRecords = new AlarmRecords();
- alarmRecords.setId(suspendDTO.getAlarmId());
+ AlarmRecords alarmRecords = this.getById(suspendDTO.getAlarmId());
+ if (!ApprovalStatusEnum.SUSPEND.getCode().equals(alarmRecords.getProcessStatus()))
+ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus());
alarmRecords.setProcessStatus(ApprovalStatusEnum.SUSPEND.getCode());
- this.baseMapper.updateById(alarmRecords) ;
+ this.baseMapper.updateById(alarmRecords);
//2、写入流程日志
String loginPersonName = permissionContext.getAuthService().getLoginUser().getName();
- approvalLogMapper.insert( new ApprovalLog(suspendDTO.getAlarmId(),"1",loginPersonName,ApprovalStatusEnum.SUSPEND.getCode()));
+ approvalLogMapper.insert(new ApprovalLog(suspendDTO.getAlarmId(), "1", loginPersonName, ApprovalStatusEnum.SUSPEND.getCode()));
//3、写入挂起日志表
- return suspendLogMapper.insert(new SuspendLog(suspendDTO.getAlarmId(), suspendDTO.getSuspendReason(), suspendDTO.getSuspendTime(), loginPersonName))>0?true:false;
+ Date expireTime = DateUtil.offsetHour(new Date(), Integer.decode(suspendDTO.getSuspendTime()));
+ return suspendLogMapper.insert(new SuspendLog(suspendDTO.getAlarmId(), suspendDTO.getSuspendReason(), suspendDTO.getSuspendTime(), loginPersonName, expireTime)) > 0 ? true : false;
}
@Transactional
@@ -93,9 +97,9 @@
AlarmRecords alarmRecords = new AlarmRecords();
alarmRecords.setId(id);
alarmRecords.setProcessStatus(ApprovalStatusEnum.READ.getCode());
- this.baseMapper.updateById(alarmRecords) ;
+ this.baseMapper.updateById(alarmRecords);
//2、写入流程日志
- return approvalLogMapper.insert( new ApprovalLog(id,"1",permissionContext.getAuthService().getLoginUser().getName(),ApprovalStatusEnum.READ.getCode()))>0?true:false;
+ return approvalLogMapper.insert(new ApprovalLog(id, "1", permissionContext.getAuthService().getLoginUser().getName(), ApprovalStatusEnum.READ.getCode())) > 0 ? true : false;
}
@@ -105,20 +109,30 @@
public boolean remind(RemindDTO remindDTO) {
//toDo:1、提醒app推送,需要对接
//2、更新报警表流程状态
- AlarmRecords alarmRecords = new AlarmRecords();
- alarmRecords.setId(remindDTO.getAlarmId());
+ AlarmRecords alarmRecords = this.getById(remindDTO.getAlarmId());
+ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus());
alarmRecords.setProcessStatus(ApprovalStatusEnum.UNCONFIRM.getCode());
- this.baseMapper.updateById(alarmRecords) ;
+ this.baseMapper.updateById(alarmRecords);
//3、写入流程日志
String loginPersonName = permissionContext.getAuthService().getLoginUser().getName();
- approvalLogMapper.insert( new ApprovalLog(remindDTO.getAlarmId(),"1",loginPersonName,ApprovalStatusEnum.UNCONFIRM.getCode()));
+ approvalLogMapper.insert(new ApprovalLog(remindDTO.getAlarmId(), "1", loginPersonName, ApprovalStatusEnum.UNCONFIRM.getCode()));
//4、写入提醒日志表
return remindLogMapper.insert(RemindLog.builder()
.alarmId(remindDTO.getAlarmId())
.remindContent(remindDTO.getRemindContent())
.remindPerson(remindDTO.getRemindPerson())
.telephone(remindDTO.getTelephone())
- .remindPerson(loginPersonName).build())>0?true:false;
+ .remindPerson(loginPersonName).build()) > 0 ? true : false;
}
+
+ @Override
+ public List changeProcessStatus(List ids) {
+ List alarmRecordsList = this.listByIds(ids);
+ alarmRecordsList.forEach(alarmRecords -> {
+ alarmRecords.setProcessStatus(alarmRecords.getPreProcessStatus());
+ });
+ this.updateBatchById(alarmRecordsList);
+ return alarmRecordsList;
+ }
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmStaticsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmStaticsServiceImpl.java
new file mode 100644
index 0000000..6502946
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmStaticsServiceImpl.java
@@ -0,0 +1,54 @@
+package com.casic.missiles.modular.alarm.service.impl;
+
+import cn.hutool.core.convert.Convert;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.modular.alarm.dao.AlarmStaticsMapper;
+import com.casic.missiles.modular.alarm.dto.*;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import com.casic.missiles.modular.alarm.service.IAlarmStaticsService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 报警管理(暂定) 服务实现类
+ *
+ *
+ * @author zt
+ * @since 2024-07-16
+ */
+@RequiredArgsConstructor
+@Service
+public class AlarmStaticsServiceImpl extends ServiceImpl implements IAlarmStaticsService {
+
+ @Override
+ public List overall(String alarmType, List deptIds) {
+ String deptStrs = deptIds.stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(","));
+ //Todo:加入报警类型
+ return this.baseMapper.overall(alarmType,deptStrs);
+ }
+
+ @Override
+ public List alarmPosition(String alarmType, List deptIds, AlarmPositionRequestDTO request) {
+ //Todo:加入报警类型
+ String deptStrs = deptIds.stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(","));
+ List alarmPositionResponseDTOList = this.baseMapper.alarmPosition(alarmType,deptStrs,request);
+ alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> {
+ alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType())?"闸井":("2".equals(alarmPositionResponseDTO.getType())?"场站":"管线"));
+ });
+ return alarmPositionResponseDTOList;
+ }
+
+ @Override
+ public List alarmType(String alarmType, List deptIds, AlarmTypeRequestDTO request) {
+ String deptStrs = deptIds.stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(","));
+ List commonResponseDTOList = this.baseMapper.alarmType(alarmType,deptStrs,request);
+// alarmPositionResponseDTOList.forEach(alarmPositionResponseDTO -> {
+// alarmPositionResponseDTO.setType("1".equals(alarmPositionResponseDTO.getType())?"闸井":("2".equals(alarmPositionResponseDTO.getType())?"场站":"管线"));
+// });
+ return commonResponseDTOList;
+ }
+}
diff --git a/casic-alarm/pom.xml b/casic-alarm/pom.xml
index b04b601..7d077f1 100644
--- a/casic-alarm/pom.xml
+++ b/casic-alarm/pom.xml
@@ -43,11 +43,11 @@
-
- org.quartz-scheduler
- quartz
- 2.3.0
-
+
+
+
+
+
junit
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
index 77a299c..272d850 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmRecordsController.java
@@ -78,7 +78,7 @@
@ApiOperation("查看")
@PostMapping("/view")
@ResponseBody
- public ReturnDTO edit(@RequestBody IdDTO idDTO) {
+ public ReturnDTO view(@RequestBody IdDTO idDTO) {
Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
throw new BusinessException(BusinessExceptionEnum.ID_NULL);
});
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java
new file mode 100644
index 0000000..7b9ddf4
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/controller/AlarmStaticsController.java
@@ -0,0 +1,86 @@
+package com.casic.missiles.modular.alarm.controller;
+
+
+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.dto.ReturnDTO;
+import com.casic.missiles.modular.alarm.dto.AlarmPositionRequestDTO;
+import com.casic.missiles.modular.alarm.dto.AlarmTypeRequestDTO;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import com.casic.missiles.modular.alarm.service.IAlarmStaticsService;
+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-08-15
+ */
+@Api(tags = "报警统计模块")
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/statics/alarmRecords")
+public class AlarmStaticsController extends ExportController {
+
+ private final IAlarmStaticsService iAlarmStaticsService;
+ private final AbstractPermissionContext permissionContext;
+
+ @ApiOperation("报警总体情况")
+ @PostMapping("/overall")
+ @ResponseBody
+ public ReturnDTO overall() {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.overall(alarmType,dataScope.getDeptIds()));
+ }
+
+ @ApiOperation("各类报警统计")
+ @PostMapping("/alarmType")
+ @ResponseBody
+ public ReturnDTO alarmType(@RequestBody AlarmTypeRequestDTO alarmTypeRequestDTO) {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.alarmType(alarmType,dataScope.getDeptIds(),alarmTypeRequestDTO));
+ }
+//
+// @ApiOperation("报警趋势分析")
+// @PostMapping("/alarmTrend")
+// @ResponseBody
+// public ReturnDTO alarmTrend() {
+//
+// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+// String alarmType="";
+// return ReturnUtil.success(iAlarmStaticsService.alarmTrend(alarmType,dataScope.getDeptIds()));
+// }
+//
+// @ApiOperation("各单位报警统计")
+// @PostMapping("/alarmCompany")
+// @ResponseBody
+// public ReturnDTO alarmCompany() {
+//
+// DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+// String alarmType="";
+// return ReturnUtil.success(iAlarmStaticsService.alarmCompany(alarmType,dataScope.getDeptIds()));
+// }
+
+ @ApiOperation("异常位置分析")
+ @PostMapping("/alarmPosition")
+ @ResponseBody
+ public ReturnDTO alarmPosition(@RequestBody AlarmPositionRequestDTO alarmPositionRequestDTO) {
+
+ DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope();
+ String alarmType="";
+ return ReturnUtil.success(iAlarmStaticsService.alarmPosition(alarmType,dataScope.getDeptIds(),alarmPositionRequestDTO));
+ }
+
+}
+
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java
new file mode 100644
index 0000000..acd97dc
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/AlarmStaticsMapper.java
@@ -0,0 +1,35 @@
+package com.casic.missiles.modular.alarm.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.modular.alarm.dto.*;
+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 AlarmStaticsMapper extends BaseMapper {
+
+ List overall( @Param("alarmType") String alarmType,
+ @Param("deptStrs") String deptStrs);
+
+ List alarmPosition(@Param("alarmType") String alarmType,
+ @Param("deptIds") String deptIds,
+ @Param("request") AlarmPositionRequestDTO request);
+
+ List alarmType(@Param("alarmType") String alarmType,
+ @Param("deptIds") String deptIds,
+ @Param("request") AlarmTypeRequestDTO request);
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
new file mode 100644
index 0000000..432c042
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dao/mapping/AlarmStaticsMapper.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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/AlarmOverDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
new file mode 100644
index 0000000..eae86c4
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmOverDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmOverDTO {
+
+
+ @ApiModelProperty("报警数量")
+ private Long sum;
+
+ @ApiModelProperty("0:正在报警,1:今日报警,2:本周报警,3:本月报警,4:全年报警 ")
+ private String type;
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
new file mode 100644
index 0000000..e2590b9
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionRequestDTO.java
@@ -0,0 +1,22 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
new file mode 100644
index 0000000..de56ef6
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmPositionResponseDTO.java
@@ -0,0 +1,30 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmPositionResponseDTO {
+
+ @ApiModelProperty("报警数量")
+ private Long alarmSum;
+
+ @ApiModelProperty("位置类型 ")
+ private String type;
+
+ @ApiModelProperty("位号")
+ private String tagNumber;
+
+ @ApiModelProperty("位置")
+ private String place;
+
+ @ApiModelProperty("名称")
+ private String ledgerName;
+
+ @ApiModelProperty("管理单位")
+ private String deptName;
+
+ @ApiModelProperty("标签")
+ private String marker;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
new file mode 100644
index 0000000..c461cc2
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/AlarmTypeRequestDTO.java
@@ -0,0 +1,25 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AlarmTypeRequestDTO {
+
+
+ @ApiModelProperty("时间类型 (1:今日,2:本周,3:本月)")
+ private String timeType;
+
+ @ApiModelProperty("位置类型 1:闸井,2:场站,3:管线")
+ private String ledgerType;
+
+ @ApiModelProperty("报警开始时间")
+ private String begTime;
+
+ @ApiModelProperty("报警结束时间")
+ private String endTime;
+
+ @ApiModelProperty("管理单位")
+ private Long deptid;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
new file mode 100644
index 0000000..8ee85f1
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/CommonResponseDTO.java
@@ -0,0 +1,15 @@
+package com.casic.missiles.modular.alarm.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CommonResponseDTO {
+
+ @ApiModelProperty("名称")
+ private String name;
+
+ @ApiModelProperty("值")
+ private String value;
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
index 8d6d5fe..d129951 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/dto/SuspendDTO.java
@@ -12,7 +12,7 @@
@ApiModelProperty("挂起原因")
private String suspendReason;
- @ApiModelProperty("挂起时间")
+ @ApiModelProperty(value = "挂起时间(小时),必须为整数",required = true)
private String suspendTime;
}
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 8482de1..fc1e325 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
@@ -40,6 +40,10 @@
@TableField("LEDGER_CODE")
private String ledgerCode;
+ @ApiModelProperty("台账位号")
+ @TableField("LEDGER_NUMBER")
+ private String ledgerNumber;
+
@ApiModelProperty("报警类型")
@TableField("ALARM_TYPE")
private String alarmType;
@@ -71,6 +75,10 @@
@TableField("PROCESS_STATUS")
private String processStatus;
+ @ApiModelProperty("上个处置状态")
+ @TableField("PRE_PROCESS_STATUS")
+ private String preProcessStatus;
+
@ApiModelProperty("处置时间")
@TableField("PROCESS_TIME")
private Date processTime;
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
index fd1748b..9b8b2d5 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/entity/SuspendLog.java
@@ -48,6 +48,11 @@
@TableField("CREATE_PERSON")
private String createPerson;
+
+ @ApiModelProperty("截止日期")
+ @TableField("EXPIRE_TIME")
+ private Date expireTime;
+
@ApiModelProperty("创建时间")
@TableField("CREATE_TIME")
private Date createTime;
@@ -56,13 +61,18 @@
@TableField("DESCN")
private String descn;
+ @ApiModelProperty("是否有效,1:有,0:无")
+ @TableField("VALID")
+ private String valid;
+
public SuspendLog() {
}
- public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson) {
+ public SuspendLog(Long alarmId, String suspendReason, String suspendTime, String createPerson,Date expireTime) {
this.alarmId = alarmId;
this.suspendReason = suspendReason;
this.suspendTime = suspendTime;
this.createPerson = createPerson;
+ this.expireTime = expireTime;
}
}
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 f285f96..80db26d 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
@@ -8,6 +8,8 @@
import com.casic.missiles.modular.alarm.dto.SuspendDTO;
import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import java.util.List;
+
/**
*
* 报警管理(暂定) 服务类
@@ -30,4 +32,6 @@
boolean read(Long id);
+ List changeProcessStatus(List ids);
+
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java
new file mode 100644
index 0000000..4c1b2ea
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IAlarmStaticsService.java
@@ -0,0 +1,27 @@
+package com.casic.missiles.modular.alarm.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.modular.alarm.dto.*;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+
+import java.util.List;
+
+/**
+ *
+ * 报警管理(暂定) 服务类
+ *
+ *
+ * @author zt
+ * @since 2024-07-16
+ */
+public interface IAlarmStaticsService extends IService {
+
+ List overall(String alarmType ,List deptIds);
+
+ List alarmPosition(String alarmType , List deptIds,AlarmPositionRequestDTO alarmPositionRequestDTO);
+
+ List alarmType(String alarmType , List deptIds,AlarmTypeRequestDTO alarmTypeRequestDTO);
+
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
index f711ef8..ef25c12 100644
--- a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/IApprovalLogService.java
@@ -1,8 +1,11 @@
package com.casic.missiles.modular.alarm.service;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
import com.casic.missiles.modular.alarm.entity.ApprovalLog;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 审批记录 服务类
@@ -13,4 +16,6 @@
*/
public interface IApprovalLogService extends IService {
+ boolean saveSuspendLogs(List alarmRecordsList);
+
}
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 01e1d2f..85def7b 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
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.alarm.service.impl;
+import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -22,6 +23,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Date;
import java.util.List;
/**
@@ -75,15 +77,17 @@
@Override
public boolean suspend(SuspendDTO suspendDTO) {
//1、更新报警表流程状态
- AlarmRecords alarmRecords = new AlarmRecords();
- alarmRecords.setId(suspendDTO.getAlarmId());
+ AlarmRecords alarmRecords = this.getById(suspendDTO.getAlarmId());
+ if (!ApprovalStatusEnum.SUSPEND.getCode().equals(alarmRecords.getProcessStatus()))
+ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus());
alarmRecords.setProcessStatus(ApprovalStatusEnum.SUSPEND.getCode());
- this.baseMapper.updateById(alarmRecords) ;
+ this.baseMapper.updateById(alarmRecords);
//2、写入流程日志
String loginPersonName = permissionContext.getAuthService().getLoginUser().getName();
- approvalLogMapper.insert( new ApprovalLog(suspendDTO.getAlarmId(),"1",loginPersonName,ApprovalStatusEnum.SUSPEND.getCode()));
+ approvalLogMapper.insert(new ApprovalLog(suspendDTO.getAlarmId(), "1", loginPersonName, ApprovalStatusEnum.SUSPEND.getCode()));
//3、写入挂起日志表
- return suspendLogMapper.insert(new SuspendLog(suspendDTO.getAlarmId(), suspendDTO.getSuspendReason(), suspendDTO.getSuspendTime(), loginPersonName))>0?true:false;
+ Date expireTime = DateUtil.offsetHour(new Date(), Integer.decode(suspendDTO.getSuspendTime()));
+ return suspendLogMapper.insert(new SuspendLog(suspendDTO.getAlarmId(), suspendDTO.getSuspendReason(), suspendDTO.getSuspendTime(), loginPersonName, expireTime)) > 0 ? true : false;
}
@Transactional
@@ -93,9 +97,9 @@
AlarmRecords alarmRecords = new AlarmRecords();
alarmRecords.setId(id);
alarmRecords.setProcessStatus(ApprovalStatusEnum.READ.getCode());
- this.baseMapper.updateById(alarmRecords) ;
+ this.baseMapper.updateById(alarmRecords);
//2、写入流程日志
- return approvalLogMapper.insert( new ApprovalLog(id,"1",permissionContext.getAuthService().getLoginUser().getName(),ApprovalStatusEnum.READ.getCode()))>0?true:false;
+ return approvalLogMapper.insert(new ApprovalLog(id, "1", permissionContext.getAuthService().getLoginUser().getName(), ApprovalStatusEnum.READ.getCode())) > 0 ? true : false;
}
@@ -105,20 +109,30 @@
public boolean remind(RemindDTO remindDTO) {
//toDo:1、提醒app推送,需要对接
//2、更新报警表流程状态
- AlarmRecords alarmRecords = new AlarmRecords();
- alarmRecords.setId(remindDTO.getAlarmId());
+ AlarmRecords alarmRecords = this.getById(remindDTO.getAlarmId());
+ alarmRecords.setPreProcessStatus(alarmRecords.getProcessStatus());
alarmRecords.setProcessStatus(ApprovalStatusEnum.UNCONFIRM.getCode());
- this.baseMapper.updateById(alarmRecords) ;
+ this.baseMapper.updateById(alarmRecords);
//3、写入流程日志
String loginPersonName = permissionContext.getAuthService().getLoginUser().getName();
- approvalLogMapper.insert( new ApprovalLog(remindDTO.getAlarmId(),"1",loginPersonName,ApprovalStatusEnum.UNCONFIRM.getCode()));
+ approvalLogMapper.insert(new ApprovalLog(remindDTO.getAlarmId(), "1", loginPersonName, ApprovalStatusEnum.UNCONFIRM.getCode()));
//4、写入提醒日志表
return remindLogMapper.insert(RemindLog.builder()
.alarmId(remindDTO.getAlarmId())
.remindContent(remindDTO.getRemindContent())
.remindPerson(remindDTO.getRemindPerson())
.telephone(remindDTO.getTelephone())
- .remindPerson(loginPersonName).build())>0?true:false;
+ .remindPerson(loginPersonName).build()) > 0 ? true : false;
}
+
+ @Override
+ public List changeProcessStatus(List ids) {
+ List alarmRecordsList = this.listByIds(ids);
+ alarmRecordsList.forEach(alarmRecords -> {
+ alarmRecords.setProcessStatus(alarmRecords.getPreProcessStatus());
+ });
+ this.updateBatchById(alarmRecordsList);
+ return alarmRecordsList;
+ }
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmStaticsServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmStaticsServiceImpl.java
new file mode 100644
index 0000000..6502946
--- /dev/null
+++ b/casic-alarm/src/main/java/com/casic/missiles/modular/alarm/service/impl/AlarmStaticsServiceImpl.java
@@ -0,0 +1,54 @@
+package com.casic.missiles.modular.alarm.service.impl;
+
+import cn.hutool.core.convert.Convert;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.modular.alarm.dao.AlarmStaticsMapper;
+import com.casic.missiles.modular.alarm.dto.*;
+import com.casic.missiles.modular.alarm.entity.AlarmRecords;
+import com.casic.missiles.modular.alarm.service.IAlarmStaticsService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 报警管理(暂定) 服务实现类
+ *
+ *
+ * @author zt
+ * @since 2024-07-16
+ */
+@RequiredArgsConstructor
+@Service
+public class AlarmStaticsServiceImpl extends ServiceImpl implements IAlarmStaticsService {
+
+ @Override
+ public List overall(String alarmType, List deptIds) {
+ String deptStrs = deptIds.stream().map(id -> Convert.toStr(id)).collect(Collectors.joining(","));
+ //Todo:加入报警类型
+ return this.baseMapper.overall(alarmType,deptStrs);
+ }
+
+ @Override
+ public List