Browse Source

feat: 指标接口

master_tdsql
hxh 1 year ago
parent
commit
549d799b98
  1. 38
      shuili-system/src/main/java/com/kms/yxgh/common/controller/IndicatorController.java
  2. 3
      shuili-system/src/main/java/com/kms/yxgh/common/dto/WarningQueDto.java
  3. 19
      shuili-system/src/main/java/com/kms/yxgh/common/mapper/IndicatorMapper.java
  4. 20
      shuili-system/src/main/java/com/kms/yxgh/common/service/IndicatorService.java
  5. 10
      shuili-system/src/main/java/com/kms/yxgh/common/service/VideoWarningService.java
  6. 12
      shuili-system/src/main/java/com/kms/yxgh/common/service/WarningService.java
  7. 1
      sql/sy/v1.2.0/全量脚本/statistic.sql

38
shuili-system/src/main/java/com/kms/yxgh/common/controller/IndicatorController.java

@ -0,0 +1,38 @@
package com.kms.yxgh.common.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kms.yxgh.common.dto.IndicatorDto;
import com.kms.yxgh.common.dto.WarningQueDto;
import com.kms.yxgh.common.service.IndicatorService;
import com.shuili.common.core.domain.SearchParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
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;
/**
* @ClassName: WarningDataController
* @Description: TODO
* @Date: 2024/3/24 下午9:27
* *
* @author: hxh
* @version: 1.0
*/
@RestController
@AllArgsConstructor
@RequestMapping("/run/api/indicator")
@Api(tags = "运行管理运行指标相关")
public class IndicatorController {
private final IndicatorService indicatorService;
//运行指标列表
@PostMapping("/list")
@ApiOperation("运行指标列表")
public IPage<IndicatorDto> list(@RequestBody SearchParam<WarningQueDto> sp) {
return indicatorService.list(sp);
}
}

3
shuili-system/src/main/java/com/kms/yxgh/common/dto/WarningQueDto.java

@ -21,9 +21,6 @@ import java.util.List;
@ApiModel("预警查询条件")
public class WarningQueDto {
@ApiModelProperty("查询的小时数")
private Integer fromTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("开始时间")
private Date startTime;

19
shuili-system/src/main/java/com/kms/yxgh/common/mapper/IndicatorMapper.java

@ -1,7 +1,13 @@
package com.kms.yxgh.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.common.domain.Indicator;
import com.kms.yxgh.common.dto.IndicatorDto;
import com.kms.yxgh.common.dto.WarningQueDto;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
/**
@ -15,4 +21,17 @@ import org.springframework.stereotype.Repository;
@Repository
public interface IndicatorMapper extends BaseMapper<Indicator> {
@Select("<script> " +
"select jc.stcd, jc.upstream_level, jc.downstream_level, jc.opening, jc.gate_flow, jc.rain_fall, jc.bypass_osmotic_pressure, jc.osmotic_pressure_gauge_elevation, jc.boost_pressure, jc.seam, jc.crack_opening_degree, jc.deformation_x, jc.deformation_y, jc.oil_temperature, jc.collection_time, jc.year, jc.month, jc.day, jc.hour, " +
"cz.stcd_name, cz.code, cz.type, " +
"case cz.type when '1' then (select dike_name from bs_sgc_df_gcda where dike_code = cz.code and expr_date is null) when '2' then (select waga_name from bs_sgc_sz_jbxx where waga_code = cz.code and expr_date is null) end as name " +
"from bs_sgc_stc_jc jc " +
"left join bs_sgc_stc_cz cz on jc.stcd = cz.stcd " +
"where 1=1 " +
"<if test='data.startTime != null'> and jc.collection_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and jc.collection_time &lt;= #{data.endTime} </if> " +
"<if test='data.types != null and data.types.size() > 0'> and cz.type in <foreach collection='data.types' item='type' open='(' close=')' separator=','> #{type} </foreach> </if> " +
"</script>")
IPage<IndicatorDto> search(Page<Indicator> page, @Param("data") WarningQueDto data);
}

20
shuili-system/src/main/java/com/kms/yxgh/common/service/IndicatorService.java

@ -1,7 +1,18 @@
package com.kms.yxgh.common.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.common.domain.Indicator;
import com.kms.yxgh.common.dto.IndicatorDto;
import com.kms.yxgh.common.dto.WarningQueDto;
import com.kms.yxgh.common.mapper.IndicatorMapper;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Optional;
/**
* @ClassName: WarningDataService
* @Description: TODO
@ -12,5 +23,14 @@ import org.springframework.stereotype.Service;
*/
@Service
@RequiredArgsConstructor
public class IndicatorService {
private final IndicatorMapper indicatorMapper;
public IPage<IndicatorDto> list(SearchParam<WarningQueDto> sp) {
Page<Indicator> page = new Page<>(sp.getPageNum(), sp.getPageSize());
WarningQueDto data = Optional.ofNullable(sp.getData()).orElse(new WarningQueDto());
return indicatorMapper.search(page, data);
}
}

10
shuili-system/src/main/java/com/kms/yxgh/common/service/VideoWarningService.java

@ -32,9 +32,7 @@ public class VideoWarningService {
if (StringUtils.isNotBlank(data.getAdcd())) {
data.setAdcd(remove00(data.getAdcd()));
}
if (data.getFromTime() != null && data.getStartTime() == null) {
data.setStartTime(getBeforeTime(data.getFromTime()));
}
return videoWarningMapper.search(page, data, getOrderBy(sp.getParams()));
}
@ -60,12 +58,6 @@ public class VideoWarningService {
return str;
}
//计算指定小时数前的时间
private Date getBeforeTime(Integer fromTime) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR, -fromTime);
return calendar.getTime();
}
public VideoWarningDto detail(String id) {
return videoWarningMapper.detail(id);

12
shuili-system/src/main/java/com/kms/yxgh/common/service/WarningService.java

@ -19,8 +19,6 @@ import lombok.RequiredArgsConstructor;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import java.util.Calendar;
import java.util.Date;
import java.util.Optional;
import java.util.stream.Collectors;
@ -51,9 +49,6 @@ public class WarningService {
if (data.getStartTime() != null && data.getEndTime() != null) {
wrapper.between(DeviceCheckingRecordView::getWarningTime, data.getStartTime(), data.getEndTime());
} else if (data.getFromTime() != null) {
Date time = getBeforeTime(data.getFromTime());
wrapper.ge(DeviceCheckingRecordView::getWarningTime, time);
}
IPage<DeviceCheckingRecordView> iPage = warningMapper.selectPage(page, wrapper);
return iPage.convert(item -> {
@ -72,13 +67,6 @@ public class WarningService {
return str;
}
//计算指定小时数前的时间
private Date getBeforeTime(Integer fromTime) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR, -fromTime);
return calendar.getTime();
}
public WarningStatisticDto statistic(WarningStatisticQueDto sp) {
Page<WarningStatisticDto.Statistic> page = new Page<>(1, sp.getTopN());
page.setMaxLimit(Long.valueOf(sp.getTopN()));

1
sql/sy/v1.2.0/全量脚本/statistic.sql

@ -1,5 +1,6 @@
SET NAMES utf8mb4;
DROP TABLE IF EXISTS `bs_sgc_stc_jc`;
CREATE TABLE `bs_sgc_stc_jc` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '监测id',
`STCD` varchar(255) COLLATE utf8mb4_general_ci COMMENT '测站编码',

Loading…
Cancel
Save