diff --git a/src/main/java/com/xydl/cac/controller/WarningController.java b/src/main/java/com/xydl/cac/controller/WarningController.java new file mode 100644 index 0000000..24cfb6e --- /dev/null +++ b/src/main/java/com/xydl/cac/controller/WarningController.java @@ -0,0 +1,33 @@ +package com.xydl.cac.controller; + +import com.xydl.cac.entity.Warning; +import com.xydl.cac.model.ConditionModel; +import com.xydl.cac.model.Response; +import com.xydl.cac.service.WarningService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.domain.Page; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@RestController +@Api(tags = {"告警信息相关接口"}) +@RequestMapping("warning") +@Slf4j +public class WarningController extends BasicController { + + @Resource + WarningService service; + + @GetMapping("list") + @ApiOperation("查询列表") + public Response> list(@Validated ConditionModel condition) throws Exception { + condition.setPageNum(this.initPageNum(condition.getPageNum())); + condition.setPageSize(this.initPageSize(condition.getPageSize())); + Page result = service.list(condition); + return Response.success(result); + } +} diff --git a/src/main/java/com/xydl/cac/entity/Warning.java b/src/main/java/com/xydl/cac/entity/Warning.java new file mode 100644 index 0000000..25eeff5 --- /dev/null +++ b/src/main/java/com/xydl/cac/entity/Warning.java @@ -0,0 +1,69 @@ +package com.xydl.cac.entity; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.persistence.*; +import java.util.Date; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Entity +@Table(name = "warning") +@ApiModel("告警信息表") +public class Warning { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Integer id; + + @ApiModelProperty("装置ID") + @Column(name = "eqmid") + private String eqmid; + + @ApiModelProperty("告警时间") + @Column(name = "warn_time") + private Date warnTime; + + @ApiModelProperty("告警值") + @Column(name = "warning_value") + private String warningValue; + + @ApiModelProperty("阈值") + @Column(name = "threadval") + private String threadval; + + @ApiModelProperty("告警信息") + @Column(name = "warn_desc") + private String warnDesc; + + @ApiModelProperty("告警级别 0:高 1:中 2:低") + @Column(name = "warn_level") + private String warnLevel; + + @ApiModelProperty("处理状态") + @Column(name = "state") + private String state; + + @ApiModelProperty("处理结果描述") + @Column(name = "process") + private String process; + + @ApiModelProperty("处理人id") + @Column(name = "process_user") + private String processUser; + + @ApiModelProperty("处理时间") + @Column(name = "process_time") + private Date processTime; + +} \ No newline at end of file diff --git a/src/main/java/com/xydl/cac/model/ConditionModel.java b/src/main/java/com/xydl/cac/model/ConditionModel.java index 94f3b05..c1c2e1d 100644 --- a/src/main/java/com/xydl/cac/model/ConditionModel.java +++ b/src/main/java/com/xydl/cac/model/ConditionModel.java @@ -31,5 +31,7 @@ public class ConditionModel { Integer pageSize; @ApiModelProperty("每天最大数量") Integer numPerDay; + @ApiModelProperty("处理状态") + private String state; } diff --git a/src/main/java/com/xydl/cac/repository/WarningRepository.java b/src/main/java/com/xydl/cac/repository/WarningRepository.java new file mode 100644 index 0000000..22aa099 --- /dev/null +++ b/src/main/java/com/xydl/cac/repository/WarningRepository.java @@ -0,0 +1,12 @@ +package com.xydl.cac.repository; + +import com.xydl.cac.entity.Warning; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.stereotype.Repository; + + +@Repository +public interface WarningRepository extends JpaRepository, JpaSpecificationExecutor { + +} \ No newline at end of file diff --git a/src/main/java/com/xydl/cac/service/WarningService.java b/src/main/java/com/xydl/cac/service/WarningService.java new file mode 100644 index 0000000..9dee454 --- /dev/null +++ b/src/main/java/com/xydl/cac/service/WarningService.java @@ -0,0 +1,11 @@ +package com.xydl.cac.service; + +import com.xydl.cac.entity.Warning; +import com.xydl.cac.model.ConditionModel; +import org.springframework.data.domain.Page; + + +public interface WarningService { + + Page list(ConditionModel condition) throws Exception; +} diff --git a/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java index 52add7c..833c271 100644 --- a/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java @@ -93,6 +93,7 @@ public class NSensorServiceImpl implements NSensorService { if (typeId != null) { predicate.getExpressions().add(builder.equal(root.get("typeId"), typeId)); } + query.orderBy(builder.asc(root.get("id"))); return predicate; }; Page result = repository.findAll(specification, request); diff --git a/src/main/java/com/xydl/cac/service/impl/WarningServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/WarningServiceImpl.java new file mode 100644 index 0000000..afc0e92 --- /dev/null +++ b/src/main/java/com/xydl/cac/service/impl/WarningServiceImpl.java @@ -0,0 +1,49 @@ +package com.xydl.cac.service.impl; + +import com.xydl.cac.entity.Warning; +import com.xydl.cac.model.ConditionModel; +import com.xydl.cac.repository.WarningRepository; +import com.xydl.cac.service.WarningService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.persistence.criteria.Predicate; + +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class WarningServiceImpl implements WarningService { + + @Resource + WarningRepository repository; + + @Override + public Page list(ConditionModel condition) throws Exception { + PageRequest request = PageRequest.of(condition.getPageNum(), condition.getPageSize()); + Specification specification = (root, query, builder) -> { + Predicate predicate = builder.conjunction(); + if (condition.getDevId() != null) { + predicate.getExpressions().add(builder.equal(root.get("eqmid"), condition.getDevId().toString())); + } + if (StringUtils.isNotBlank(condition.getState())) { + predicate.getExpressions().add(builder.equal(root.get("state"), condition.getState())); + } + if (condition.getStartTime() != null) { + predicate.getExpressions().add(builder.greaterThan(root.get("warnTime"), condition.getStartTime())); + } + if (condition.getEndTime() != null) { + predicate.getExpressions().add(builder.lessThanOrEqualTo(root.get("warnTime"), condition.getEndTime())); + } + query.orderBy(builder.desc(root.get("warnTime"))); + return predicate; + }; + Page result = repository.findAll(specification, request); + return result; + } +}