diff --git a/business/src/main/java/com/fizz/business/controller/LogDataController.java b/business/src/main/java/com/fizz/business/controller/LogDataController.java new file mode 100644 index 0000000..4a2e62c --- /dev/null +++ b/business/src/main/java/com/fizz/business/controller/LogDataController.java @@ -0,0 +1,39 @@ +package com.fizz.business.controller; + +import com.fizz.business.domain.LogData; +import com.fizz.business.form.LogDataForm; +import com.fizz.business.service.LogDataService; +import com.github.pagehelper.PageInfo; +import com.ruoyi.common.annotation.Anonymous; +import com.ruoyi.common.core.domain.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/logdata" ) +@Api("南钢日志接口") +@Anonymous +public class LogDataController { + + private final LogDataService logDataService; + + @ApiOperation("历史记录") + @PostMapping ("/list" ) + public R> getLogDataPage(@RequestBody LogDataForm logDataForm) { + return R.ok(logDataService.pageList(logDataForm)); + } + + @Operation(summary = "报警确认", description = "报警确认") + @PatchMapping("/confirm/{seqid}" ) + //@PreAuthorize("@pms.hasPermission('business_log_data_edit')" ) + public R alarmAck(@PathVariable Integer seqid) { + logDataService.alarmAck(seqid); + return R.ok(); + } +} diff --git a/business/src/main/java/com/fizz/business/domain/LogData.java b/business/src/main/java/com/fizz/business/domain/LogData.java new file mode 100644 index 0000000..35d1719 --- /dev/null +++ b/business/src/main/java/com/fizz/business/domain/LogData.java @@ -0,0 +1,66 @@ +package com.fizz.business.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +@TableName("log_data") +@Schema(description = "") +public class LogData { + + /** + * seqid + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description ="seqid") + private Integer seqid; + + /** + * timestamp + */ + @Schema(description ="timestamp") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date timestamp; + + /** + * module + */ + @Schema(description ="module") + private String module; + + /** + * logtype + */ + @Schema(description ="logtype") + private String logtype; + + /** + * logtext + */ + @Schema(description ="logtext") + private String logtext; + + /** + * status + */ + @Schema(description ="status") + private Integer status; + + /** + * confirmTime + */ + @Schema(description ="confirmTime") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date confirmTime; + + +} \ No newline at end of file diff --git a/business/src/main/java/com/fizz/business/form/LogDataForm.java b/business/src/main/java/com/fizz/business/form/LogDataForm.java new file mode 100644 index 0000000..4250a7f --- /dev/null +++ b/business/src/main/java/com/fizz/business/form/LogDataForm.java @@ -0,0 +1,52 @@ +package com.fizz.business.form; + +import cn.hutool.core.date.DatePattern; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +@Data +public class LogDataForm implements Serializable { + private static final long serialVersionUID = 1126261593345506267L; + + /** + * 开始时间 + */ + @ApiModelProperty(value = "开始时间") + @DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) + private LocalDateTime startTime; + + @ApiModelProperty(value = "结束时间") + @DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) + private LocalDateTime endTime; + + @ApiModelProperty(value = "报警类型") + private String logtype; + + /** + * 报警模块 + */ + @ApiModelProperty(value = "报警模块") + private String module; + + /** + * 警报内容 + */ + @ApiModelProperty(value = "警报内容") + private String logtext; + + /** + * 报警状态 + */ + @ApiModelProperty(value = "报警状态") + private Integer status; + + private int pageNum; + + private int pageSize; + +} diff --git a/business/src/main/java/com/fizz/business/mapper/LogDataMapper.java b/business/src/main/java/com/fizz/business/mapper/LogDataMapper.java new file mode 100644 index 0000000..d0679f2 --- /dev/null +++ b/business/src/main/java/com/fizz/business/mapper/LogDataMapper.java @@ -0,0 +1,10 @@ +package com.fizz.business.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.fizz.business.domain.LogData; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface LogDataMapper extends BaseMapper { + +} diff --git a/business/src/main/java/com/fizz/business/service/LogDataService.java b/business/src/main/java/com/fizz/business/service/LogDataService.java new file mode 100644 index 0000000..513f27d --- /dev/null +++ b/business/src/main/java/com/fizz/business/service/LogDataService.java @@ -0,0 +1,26 @@ +package com.fizz.business.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.baomidou.mybatisplus.extension.service.IService; +import com.fizz.business.domain.LogData; +import com.fizz.business.form.LogDataForm; +import com.github.pagehelper.PageInfo; + +import java.util.List; + +public interface LogDataService extends IService { + + /** + * 分页查询 + */ + PageInfo pageList(LogDataForm logDataForm); + + + + /** + * 报警确认 + * @param seqid + */ + void alarmAck(Integer seqid); +} diff --git a/business/src/main/java/com/fizz/business/service/impl/LogDataServiceImpl.java b/business/src/main/java/com/fizz/business/service/impl/LogDataServiceImpl.java new file mode 100644 index 0000000..fdb6211 --- /dev/null +++ b/business/src/main/java/com/fizz/business/service/impl/LogDataServiceImpl.java @@ -0,0 +1,76 @@ +package com.fizz.business.service.impl; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fizz.business.domain.LogData; +import com.fizz.business.domain.RollHistory; +import com.fizz.business.form.LogDataForm; +import com.fizz.business.mapper.LogDataMapper; +import com.fizz.business.service.LogDataService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +@Service +public class LogDataServiceImpl extends ServiceImpl implements LogDataService { + + @Override + public PageInfo pageList(LogDataForm logDataForm) { + + // 调用分页查询方法,获取EventRecords的分页结果 + PageHelper.startPage(logDataForm.getPageNum(), logDataForm.getPageSize()); + + LambdaQueryChainWrapper lambdaQuery = lambdaQuery(); + + + if(ObjectUtil.isNotEmpty(logDataForm.getStartTime())){ + LocalDateTime start = LocalDateTime.of(logDataForm.getStartTime().toLocalDate(), LocalTime.MIN); + lambdaQuery.ge(LogData::getTimestamp, start); + } + if(ObjectUtil.isNotEmpty(logDataForm.getEndTime())){ + LocalDateTime end = LocalDateTime.of(logDataForm.getStartTime().toLocalDate(), LocalTime.MAX); + lambdaQuery.ge(LogData::getTimestamp, end); + } + + if (StringUtils.isNotBlank(logDataForm.getLogtype())) { + lambdaQuery.eq(LogData::getLogtype, logDataForm.getLogtype()); + } + if (StringUtils.isNotBlank(logDataForm.getModule())) { + lambdaQuery.eq(LogData::getModule, logDataForm.getModule()); + } + if (StringUtils.isNotBlank(logDataForm.getLogtext())) { + lambdaQuery.like(LogData::getLogtext, logDataForm.getLogtext()); + } + if (ObjectUtil.isNotNull(logDataForm.getStatus())) { + lambdaQuery.eq(LogData::getStatus, logDataForm.getStatus()); + } + lambdaQuery.orderByDesc(LogData::getTimestamp); + + + List list = lambdaQuery.list(); + PageInfo pageInfo = new PageInfo<>(list); + + return pageInfo; + } + + @Override + public void alarmAck(Integer seqid) { + lambdaUpdate() + .set(LogData::getConfirmTime, new Date()) + .eq(LogData::getSeqid, seqid) + .update(); + } +} \ No newline at end of file diff --git a/business/src/main/resources/mapper/LogDataMapper.xml b/business/src/main/resources/mapper/LogDataMapper.xml new file mode 100644 index 0000000..ae6f5cc --- /dev/null +++ b/business/src/main/resources/mapper/LogDataMapper.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file