8 changed files with 392 additions and 1 deletions
@ -0,0 +1,58 @@ |
|||||||
|
package com.biutag.supervision.controller.work; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
|
import com.biutag.supervision.pojo.Result; |
||||||
|
import com.biutag.supervision.pojo.entity.AlarmNotification; |
||||||
|
import com.biutag.supervision.pojo.param.AlarmParam; |
||||||
|
import com.biutag.supervision.service.AlarmNotificationService; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author kami on 2024-11-16 11:30:34 |
||||||
|
* @version 0.0.1 |
||||||
|
* @since 1.8 |
||||||
|
*/ |
||||||
|
@Slf4j |
||||||
|
@RestController |
||||||
|
@RequestMapping("/alarm/notification") |
||||||
|
@AllArgsConstructor |
||||||
|
public class AlarmNotificationController { |
||||||
|
|
||||||
|
private final AlarmNotificationService notificationService; |
||||||
|
|
||||||
|
/** |
||||||
|
* 预警通知分页查询 |
||||||
|
* @param param 请求参数 |
||||||
|
* @return 预警通知分页数据 |
||||||
|
*/ |
||||||
|
@PostMapping("/pages") |
||||||
|
public Result<Page<AlarmNotification>> pages(@RequestBody AlarmParam param) { |
||||||
|
return Result.success(notificationService.pages(param)); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 回复内容 |
||||||
|
* @param data 数据 |
||||||
|
* @return 响应 |
||||||
|
*/ |
||||||
|
@PostMapping("/reply") |
||||||
|
public Result<Void> alarmNotificationReply(@RequestBody AlarmNotification data) { |
||||||
|
AlarmNotification notification = new AlarmNotification(); |
||||||
|
if(data.getId() == null) { |
||||||
|
return Result.failed(5000, "未找到对用数据"); |
||||||
|
} |
||||||
|
notification.setId(data.getId()); |
||||||
|
notification.setReplyResultContent(data.getReplyResultContent()); |
||||||
|
notification.setReplyState(1); |
||||||
|
boolean res = notificationService.updateById(notification); |
||||||
|
if(!res) { |
||||||
|
return Result.failed(5000, "修改失败"); |
||||||
|
} |
||||||
|
return Result.success(); |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,14 @@ |
|||||||
|
package com.biutag.supervision.mapper; |
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS; |
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||||
|
import com.biutag.supervision.pojo.entity.AlarmNotification; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author kami on 2024-11-16 11:05:28 |
||||||
|
* @version 0.0.1 |
||||||
|
* @since 1.8 |
||||||
|
*/ |
||||||
|
@DS("master") |
||||||
|
public interface AlarmNotificationMapper extends BaseMapper<AlarmNotification> { |
||||||
|
} |
||||||
@ -0,0 +1,131 @@ |
|||||||
|
package com.biutag.supervision.pojo.entity; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableField; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableId; |
||||||
|
import com.baomidou.mybatisplus.annotation.TableName; |
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.io.Serial; |
||||||
|
import java.io.Serializable; |
||||||
|
import java.time.LocalDateTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* 预警通知 |
||||||
|
* @author kami on 2024-11-16 10:51:18 |
||||||
|
* @version 0.0.1 |
||||||
|
* @since 1.8 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@TableName("`alarm_notification`") |
||||||
|
public class AlarmNotification implements Serializable { |
||||||
|
|
||||||
|
@Serial |
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
|
||||||
|
/** |
||||||
|
* 主键 |
||||||
|
*/ |
||||||
|
@TableId(value = "id", type = IdType.AUTO) |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 预警时间 |
||||||
|
*/ |
||||||
|
@TableField("`alarm_time`") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8") |
||||||
|
LocalDateTime alarmTime; |
||||||
|
|
||||||
|
@TableField("`alarm_type_id`") |
||||||
|
Long alarmTypeId; |
||||||
|
/** |
||||||
|
* 预警类型 |
||||||
|
*/ |
||||||
|
@TableField("`alarm_type`") |
||||||
|
String alarmType; |
||||||
|
|
||||||
|
/** |
||||||
|
* 被通知单位机构代码 |
||||||
|
*/ |
||||||
|
@TableField("`notification_depart_code`") |
||||||
|
String notificationDepartCode; |
||||||
|
|
||||||
|
/** |
||||||
|
* 被通知单位机构名称 |
||||||
|
*/ |
||||||
|
@TableField("`notification_depart_name`") |
||||||
|
String notificationDepartName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通知内容 |
||||||
|
*/ |
||||||
|
@TableField("`alarm_content`") |
||||||
|
String alarmContent; |
||||||
|
|
||||||
|
/** |
||||||
|
* 回复状态0未回复1已回复 |
||||||
|
*/ |
||||||
|
@TableField("`reply_state`") |
||||||
|
Integer replyState; |
||||||
|
|
||||||
|
/** |
||||||
|
* 回复情况内容 |
||||||
|
*/ |
||||||
|
@TableField("`reply_result_content`") |
||||||
|
String replyResultContent; |
||||||
|
|
||||||
|
/** |
||||||
|
* 创建时间 |
||||||
|
*/ |
||||||
|
@TableField("`crt_time`") |
||||||
|
LocalDateTime crtTime; |
||||||
|
/** |
||||||
|
* 创建用户 |
||||||
|
*/ |
||||||
|
@TableField("`crt_user`") |
||||||
|
String crtUser; |
||||||
|
/** |
||||||
|
* 创建单位 |
||||||
|
*/ |
||||||
|
@TableField("`crt_depart_id`") |
||||||
|
String crtDepartId; |
||||||
|
/** |
||||||
|
* 创建人名称 |
||||||
|
*/ |
||||||
|
@TableField("`crt_name`") |
||||||
|
String crtName; |
||||||
|
/** |
||||||
|
* 创建ip |
||||||
|
*/ |
||||||
|
@TableField("`crt_host`") |
||||||
|
String crtHost; |
||||||
|
|
||||||
|
/** |
||||||
|
* 创建用户 |
||||||
|
*/ |
||||||
|
@TableField("`upd_user`") |
||||||
|
String updUser; |
||||||
|
/** |
||||||
|
* 创建单位 |
||||||
|
*/ |
||||||
|
@TableField("`upd_depart_id`") |
||||||
|
String updDepartId; |
||||||
|
/** |
||||||
|
* 创建人名称 |
||||||
|
*/ |
||||||
|
@TableField("`upd_name`") |
||||||
|
String updName; |
||||||
|
/** |
||||||
|
* 创建ip |
||||||
|
*/ |
||||||
|
@TableField("`upd_host`") |
||||||
|
String updHost; |
||||||
|
|
||||||
|
/** |
||||||
|
* 修改时间 |
||||||
|
*/ |
||||||
|
@TableField("`upd_time`") |
||||||
|
LocalDateTime updTime; |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,62 @@ |
|||||||
|
package com.biutag.supervision.pojo.param; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; |
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
||||||
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; |
||||||
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.EqualsAndHashCode; |
||||||
|
import org.springframework.format.annotation.DateTimeFormat; |
||||||
|
|
||||||
|
import java.io.Serial; |
||||||
|
import java.io.Serializable; |
||||||
|
import java.time.LocalDate; |
||||||
|
import java.time.LocalDateTime; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author kami on 2024-11-16 11:12:34 |
||||||
|
* @version 0.0.1 |
||||||
|
* @since 1.8 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@EqualsAndHashCode(callSuper = true) |
||||||
|
public class AlarmParam extends BasePage implements Serializable { |
||||||
|
|
||||||
|
@Serial |
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
/** |
||||||
|
* 预警类型id |
||||||
|
*/ |
||||||
|
Long alarmTypeId; |
||||||
|
/** |
||||||
|
* 预警开始时间 |
||||||
|
*/ |
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") |
||||||
|
@JsonDeserialize(using = LocalDateTimeDeserializer.class) |
||||||
|
@JsonSerialize(using = LocalDateTimeSerializer.class) |
||||||
|
LocalDateTime startTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* 预警开始时间 |
||||||
|
*/ |
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") |
||||||
|
@JsonDeserialize(using = LocalDateTimeDeserializer.class) |
||||||
|
@JsonSerialize(using = LocalDateTimeSerializer.class) |
||||||
|
LocalDateTime endTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* 回复情况0-未回复 1-已回复 |
||||||
|
*/ |
||||||
|
Integer replyState; |
||||||
|
/** |
||||||
|
* 被通知单位机构编码 |
||||||
|
*/ |
||||||
|
String notificationDepartCode; |
||||||
|
/** |
||||||
|
* 回复情况 |
||||||
|
*/ |
||||||
|
String alarmContent; |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,42 @@ |
|||||||
|
package com.biutag.supervision.service; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import com.biutag.supervision.mapper.AlarmNotificationMapper; |
||||||
|
import com.biutag.supervision.pojo.entity.AlarmNotification; |
||||||
|
import com.biutag.supervision.pojo.entity.BaseUser; |
||||||
|
import com.biutag.supervision.pojo.model.UserModel; |
||||||
|
import com.biutag.supervision.pojo.param.AlarmParam; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author kami on 2024-11-16 11:07:43 |
||||||
|
* @version 0.0.1 |
||||||
|
* @since 1.8 |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
public class AlarmNotificationService extends ServiceImpl<AlarmNotificationMapper, AlarmNotification> { |
||||||
|
|
||||||
|
public Page<AlarmNotification> pages(AlarmParam param) { |
||||||
|
LambdaQueryWrapper<AlarmNotification> query = new LambdaQueryWrapper<AlarmNotification>(); |
||||||
|
if(param.getAlarmTypeId() != null && param.getAlarmTypeId() != -1) { |
||||||
|
query.eq(AlarmNotification::getAlarmTypeId, param.getAlarmTypeId()); |
||||||
|
} |
||||||
|
if(param.getStartTime() != null) { |
||||||
|
query.between(AlarmNotification::getAlarmTime, param.getStartTime(), param.getEndTime()); |
||||||
|
} |
||||||
|
if(param.getReplyState() != null && param.getReplyState() != -1) { |
||||||
|
query.eq(AlarmNotification::getReplyState, param.getReplyState()); |
||||||
|
} |
||||||
|
if(param.getNotificationDepartCode() != null) { |
||||||
|
query.eq(AlarmNotification::getNotificationDepartCode, param.getNotificationDepartCode()); |
||||||
|
} |
||||||
|
if(param.getAlarmContent() != null) { |
||||||
|
query.like(AlarmNotification::getAlarmContent, param.getAlarmContent()); |
||||||
|
} |
||||||
|
return page(Page.of(param.getCurrent(), param.getSize()), query.orderByDesc(AlarmNotification::getAlarmTime)); |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,62 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<configuration scan="true" scanPeriod="60 seconds" debug="false"> |
||||||
|
<contextName>logs</contextName> |
||||||
|
<!-- 日志位置 --> |
||||||
|
<property name="log.path" value="/work/log"/> |
||||||
|
<!-- 日志保留时长 --> |
||||||
|
<property name="log.maxHistory" value="7"/> |
||||||
|
<!-- 控制台格式化及颜色 --> |
||||||
|
<property name="log.colorPattern" |
||||||
|
value="%magenta([%X{trace_id}][%d{yyyy-MM-dd'T'HH:mm:ss.SSS}]) %highlight(%-5level) %red(%thread) %green(%logger) %msg%n"/> |
||||||
|
<property name="log.pattern" value="[%X{trace_id}][%d{yyyy-MM-dd'T'HH:mm:ss.SSS}] %-5level %thread %logger %msg%n"/> |
||||||
|
|
||||||
|
<!--输出到控制台--> |
||||||
|
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> |
||||||
|
<encoder> |
||||||
|
<pattern>${log.colorPattern}</pattern> |
||||||
|
<charset>UTF-8</charset> |
||||||
|
</encoder> |
||||||
|
</appender> |
||||||
|
|
||||||
|
<!--输出到文件--> |
||||||
|
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
||||||
|
<fileNamePattern>${log.path}/info/info.%d{yyyy-MM-dd}.log</fileNamePattern> |
||||||
|
<MaxHistory>${log.maxHistory}</MaxHistory> |
||||||
|
</rollingPolicy> |
||||||
|
<encoder> |
||||||
|
<pattern>${log.pattern}</pattern> |
||||||
|
</encoder> |
||||||
|
<filter class="ch.qos.logback.classic.filter.LevelFilter"> |
||||||
|
<level>INFO</level> |
||||||
|
<onMatch>ACCEPT</onMatch> |
||||||
|
<onMismatch>DENY</onMismatch> |
||||||
|
</filter> |
||||||
|
</appender> |
||||||
|
|
||||||
|
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
||||||
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
||||||
|
<fileNamePattern>${log.path}/error/error.%d{yyyy-MM-dd}.log</fileNamePattern> |
||||||
|
<MaxHistory>${log.maxHistory}</MaxHistory> |
||||||
|
</rollingPolicy> |
||||||
|
<encoder> |
||||||
|
<pattern>${log.pattern}</pattern> |
||||||
|
</encoder> |
||||||
|
<filter class="ch.qos.logback.classic.filter.LevelFilter"> |
||||||
|
<level>ERROR</level> |
||||||
|
<onMatch>ACCEPT</onMatch> |
||||||
|
<onMismatch>DENY</onMismatch> |
||||||
|
</filter> |
||||||
|
</appender> |
||||||
|
|
||||||
|
<logger name="com.biutag.supervision" level="INFO"/> |
||||||
|
<!-- 日志类型为debug时,输出到控制台 --> |
||||||
|
<root level="debug"> |
||||||
|
<appender-ref ref="console"/> |
||||||
|
</root> |
||||||
|
<!-- 日志类型为info时,输出到配置好的文件 --> |
||||||
|
<root level="info"> |
||||||
|
<appender-ref ref="file_info"/> |
||||||
|
<appender-ref ref="file_error"/> |
||||||
|
</root> |
||||||
|
</configuration> |
||||||
@ -0,0 +1,7 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?> |
||||||
|
<!DOCTYPE mapper |
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||||
|
<mapper namespace="com.biutag.supervision.mapper.AlarmNotificationMapper"> |
||||||
|
|
||||||
|
</mapper> |
||||||
Loading…
Reference in new issue