diff --git a/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java b/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java index 919ebaa..03e5fbe 100644 --- a/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java +++ b/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java @@ -23,8 +23,7 @@ public class OpenApiConfig { "/impactZoneInfo/**", "/auditProcess/**", "/warningRule/**", - "/reservoirDemarcationInfo/**", - "/safety/degradeScrapLedger/**" + "/attResBuilding/**" }; return GroupedOpenApi.builder() .group("ss") diff --git a/src/main/java/com/gunshi/project/ss/controller/AttResBuildingController.java b/src/main/java/com/gunshi/project/ss/controller/AttResBuildingController.java index dd136c6..88b17ff 100644 --- a/src/main/java/com/gunshi/project/ss/controller/AttResBuildingController.java +++ b/src/main/java/com/gunshi/project/ss/controller/AttResBuildingController.java @@ -46,7 +46,7 @@ public class AttResBuildingController extends AbstractCommonFileController { return R.ok(result ? dto : null); } - @Operation(summary = "修改") + @Operation(summary = "信息查询") @GetMapping("/info") public R info() { List list = attResBuildingService.list(); diff --git a/src/main/java/com/gunshi/project/ss/model/AttResBuilding.java b/src/main/java/com/gunshi/project/ss/model/AttResBuilding.java index 11e18ae..b771db4 100644 --- a/src/main/java/com/gunshi/project/ss/model/AttResBuilding.java +++ b/src/main/java/com/gunshi/project/ss/model/AttResBuilding.java @@ -1,6 +1,5 @@ package com.gunshi.project.ss.model; - import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -11,99 +10,194 @@ import java.io.Serializable; import java.math.BigDecimal; /** -* 描述: 水库基本信息表 -* author: xusan -* date: 2024-07-08 17:34:26 -*/ + * 描述: 水库基本信息表 + * author: xusan + * date: 2024-07-08 17:34:26 + */ @Schema(description="水库基本信息表") @Data @TableName("public.att_res_building") public class AttResBuilding implements Serializable { - private static final long serialVersionUID = 1L; /** * 水库代码 */ + @Schema(description="水库代码") @TableId(value = "id", type = IdType.INPUT) private Integer id; // 主坝字段 (prefix: main_) 挡水建筑物(大坝) - private String mainType; // 主坝-坝型 建筑物型式 - private String mainFoundation; //主坝-地基特性 - private String mainBasicIntensityOfAnEarthQuake; //主坝-地震基本烈度 - private BigDecimal mainCrestElevation; // 主坝-坝顶高程(m) - private BigDecimal mainCrestLength; // 主坝-坝顶长度(m) - private BigDecimal mainCrestWidth; // 主坝-坝顶宽度(m) - private BigDecimal mainMaxHeight; // 主坝-最大坝高(m) - private BigDecimal mainEarthquakeAcceleration;// 主坝-地震峰值加速度 - private BigDecimal mainTopOfWaveBarrierElevation;// 主坝-防浪墙顶高程 + @Schema(description="主坝-坝型 建筑物型式") + private String mainType; + + @Schema(description="主坝-地基特性") + private String mainFoundation; + + @Schema(description="主坝-最大坝高(m)") + private BigDecimal mainMaxHeight; + + @Schema(description="主坝-坝顶高程(m)") + private BigDecimal mainCrestElevation; + + @Schema(description="主坝-心墙顶高程") + private BigDecimal mainHeartWallCrestElevation; + + @Schema(description="主坝-坝顶长度(m)") + private BigDecimal mainCrestLength; + + @Schema(description="主坝-坝顶宽度(m)") + private BigDecimal mainCrestWidth; + + @Schema(description="主坝-坝基防渗型式") + private String mainFoundControlType; + + @Schema(description="主坝-防浪墙顶高程") + private BigDecimal mainTopOfWaveBarrierElevation; // 副坝字段 (prefix: aux_) - private String auxType; // 副坝-坝型 - private BigDecimal auxCrestElevation; // 副坝-坝顶高程(m) - private BigDecimal auxCrestLength; // 副坝-坝顶长度(m) - private BigDecimal auxCrestWidth; // 副坝-坝顶宽度(m) - private BigDecimal auxMaxHeight; // 副坝-最大坝高(m) + @Schema(description="副坝-坝型") + private String auxType; + + @Schema(description="副坝-地基特性") + private String auxFoundation; + + @Schema(description="副坝-最大坝高(m)") + private BigDecimal auxMaxHeight; + + @Schema(description="副坝-坝顶高程(m)") + private BigDecimal auxCrestElevation; + + @Schema(description="副坝-心墙顶高程") + private BigDecimal auxHeartWallCrestElevation; + + @Schema(description="副坝-坝顶长度(m)") + private BigDecimal auxCrestLength; + + @Schema(description="副坝-坝顶宽度(m)") + private BigDecimal auxCrestWidth; + + @Schema(description="副坝-坝基防渗型式") + private String auxFoundControlType; // 溢洪道字段 (prefix: spillway_) 泄水建筑物 - private String spillwayType; // 溢洪道-型式 - private String spillwayCrestType; // 溢洪道-堰顶型式 - private String spillwayFoundation; // 溢洪道-地基特性 - private BigDecimal spillwayCrestElevation; // 溢洪道-溢流堰顶高程(m) - private BigDecimal spillwayNetWidth; // 溢洪道-溢流堰净宽(m) - private String spillwayEnergyDissipation; // 溢洪道-消能型式 - private BigDecimal spillwayCheckFloodDischarge; // 溢洪道-校核洪水下泄流量(m³/s) - private BigDecimal spillwayDesignFloodDischarge; // 溢洪道-设计洪水下泄流量(m³/s) - private BigDecimal spillwayScouringDischarge; // 溢洪道-消能防冲下泄流量(m³/s) - private BigDecimal spillwayMaxSingleWidthFlow;//溢洪道-最大单宽流量 + @Schema(description="溢洪道-型式") + private String spillwayType; + @Schema(description="溢洪道-地基特性") + private String spillwayFoundation; - // 灌溉发电洞字段 (prefix: irrigation_) - private String irrigationType; // 灌溉发电洞-型式 - private String irrigationLiningType; // 灌溉发电洞-衬砌型式 - private String irrigationFoundation; // 灌溉发电洞-地基特性 - private BigDecimal irrigationInletElevation; // 灌溉发电洞-进口底板高程(m) - private String irrigationCrossSection; // 灌溉发电洞-断面尺寸(m) - private BigDecimal irrigationLength; // 灌溉发电洞-洞长(m) - private BigDecimal irrigationDesignFlow; // 灌溉发电洞-设计流量(m³/s) - private String irrigationGateType; // 灌溉发电洞-进口闸门型式 - private String irrigationHoistType; // 灌溉发电洞-进口启闭机型式 + @Schema(description="溢洪道-堰顶型式") + private String spillwayCrestType; - // 放空洞字段 (prefix: emptying_) - private String emptyingType; // 放空洞-型式 - private String emptyingLiningType; // 放空洞-衬砌型式 - private String emptyingFoundation; // 放空洞-地基特性 - private BigDecimal emptyingInletElevation; // 放空洞-进口底板高程(m) - private String emptyingCrossSection; // 放空洞-断面尺寸(m) - private BigDecimal emptyingLength; // 放空洞-洞长(m) - private BigDecimal emptyingDesignFlow; // 放空洞-设计流量(m³/s) - private String emptyingGateType; // 放空洞-进口闸门型式 - private String emptyingHoistType; // 放空洞-进口启闭机型式 + @Schema(description="溢洪道-进口底高程(m)") + private BigDecimal spillwayInBottomElevation; + + @Schema(description="溢洪道-底宽(m)") + private BigDecimal spillwayBottomWidth; + + @Schema(description="溢洪道-渠深(m)") + private BigDecimal spillwayCanalDepth; + + @Schema(description="溢洪道-最大泄量(1%)(m³/s)") + private BigDecimal spillwayMaxDischarge; + + @Schema(description="溢洪道-最大泄量(0.1%)(m³/s)") + private BigDecimal spillwayZeroMaxDischarge; + + @Schema(description="溢洪道-消能型式") + private String spillwayEnergyDissipation; + + // 主坝输水管字段 (prefix: mwater_) + @Schema(description="主坝输水管-型式") + private String mwaterType; + + @Schema(description="主坝输水管-断面尺寸(m)") + private String mwaterCrossSection; + + @Schema(description="主坝输水管-进口底部高程(m)") + private BigDecimal mwaterInletElevation; + + @Schema(description="主坝输水管-长度(m)") + private BigDecimal mwaterLength; + + @Schema(description="主坝输水管-设计流量(m³/s)") + private BigDecimal mwaterDesignFlow; + + @Schema(description="主坝输水管-进水口型式") + private String mwaterLiningType; + + // 副坝输水管字段 (prefix: awater_) + @Schema(description="副坝输水管-型式") + private String awaterType; + + @Schema(description="副坝输水管-地基特性") + private String awaterFoundation; + + @Schema(description="副坝输水管-断面尺寸(m)") + private String awaterCrossSection; + + @Schema(description="副坝输水管-进口底板高程(m)") + private BigDecimal awaterInletElevation; + + @Schema(description="副坝输水管-长度(m)") + private BigDecimal awaterLength; + + @Schema(description="副坝输水管-壁厚(m)") + private BigDecimal awaterThick; + + @Schema(description="副坝输水管-最大流量(m³/s)") + private BigDecimal awaterMaxFlow; + + @Schema(description="副坝输水管-进水口型式") + private String awaterLiningType; // 拦洪坝字段 (prefix: flood_control_) - private String floodControlType; // 拦洪坝-坝型 - private BigDecimal floodControlCrestElevation; // 拦洪坝-坝顶高程(m) - private BigDecimal floodControlCrestLength; // 拦洪坝-坝顶长度(m) - private BigDecimal floodControlCrestWidth; // 拦洪坝-坝顶宽度(m) - private BigDecimal floodControlMaxHeight; // 拦洪坝-最大坝高(m) + @Schema(description="拦洪坝-坝型") + private String floodControlType; + + @Schema(description="拦洪坝-坝顶高程(m)") + private BigDecimal floodControlCrestElevation; + + @Schema(description="拦洪坝-坝顶长度(m)") + private BigDecimal floodControlCrestLength; + + @Schema(description="拦洪坝-坝顶宽度(m)") + private BigDecimal floodControlCrestWidth; + + @Schema(description="拦洪坝-最大坝高(m)") + private BigDecimal floodControlMaxHeight; // 防汛道路字段 (prefix: road_) - private BigDecimal roadLength; // 防汛道路-防汛路长度(m) - private BigDecimal roadWidth; // 防汛道路-路面宽度(m) + @Schema(description="防汛道路-防汛路长度(m)") + private BigDecimal roadLength; - //输水建筑物 (prefix: water_conveyance ) - private BigDecimal waterConveyanceFlow;//输水建筑物-设计流量 - private String waterConveyanceType;//输水建筑物-进水口形式 - private String waterConveyanceWaterIntakeType;//输水建筑物-取水方式 - private String waterConveyanceFoundation;//输水建筑物-地基特性 - private BigDecimal waterConveyanceInletBottomHigh;//输水建筑物-进口底槛高程 - private String waterConveyanceOrificeSize;//输水建筑物-孔口尺寸 - private String waterConveyanceGateType;//输水建筑物-闸门型式 - private Integer waterConveyanceHoistNum;//输水建筑物-启闭机型式容量及数量 - private String waterConveyanceTunnelType;//输水建筑物-引水隧洞型式 - private BigDecimal waterConveyanceLength;//输水建筑物-长度 - private String waterConveyanceLiningType;//输水建筑物-衬砌型式 -} + @Schema(description="防汛道路-路面宽度(m)") + private BigDecimal roadWidth; + //东输水隧洞 (prefix: water_conveyance ) + @Schema(description="东输水隧洞-进水口形式") + private String waterConveyanceType; + + @Schema(description="东输水隧洞-地基特性") + private String waterConveyanceFoundation; + + @Schema(description="东输水隧洞-断面尺寸(m)") + private String waterConveyanceCrossSection; + + @Schema(description="东输水隧洞-进口底板高程(m)") + private BigDecimal waterConveyanceInletElevation; + + @Schema(description="东输水隧洞-长度") + private BigDecimal waterConveyanceLength; + + @Schema(description="东输水隧洞-壁厚(m)") + private BigDecimal waterConveyanceThick; + + @Schema(description="东输水隧洞-最大流量(m³/s)") + private BigDecimal waterConveyanceMaxFlow; + + @Schema(description="东输水隧洞-进水口型式") + private String waterConveyanceLiningType; +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/ss/service/WarningRuleInfoService.java b/src/main/java/com/gunshi/project/ss/service/WarningRuleInfoService.java index 33c38b6..124a135 100644 --- a/src/main/java/com/gunshi/project/ss/service/WarningRuleInfoService.java +++ b/src/main/java/com/gunshi/project/ss/service/WarningRuleInfoService.java @@ -54,7 +54,7 @@ public class WarningRuleInfoService extends ServiceImpl queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(AuditProcess::getWarningLevel,warningLevel); @@ -68,6 +68,7 @@ public class WarningRuleInfoService extends ServiceImpl conditions = warningRule.getConditions(); @@ -87,7 +88,7 @@ public class WarningRuleTask { // 为每个条件计算实际值并设置是否满足 for (WarningCondition condition : conditions) { - BigDecimal actualValue = calculateActualValue(condition, warningType); + BigDecimal actualValue = calculateActualValue(condition, warningObj,relStcd); condition.setIsEnjoy(compareValue(actualValue, condition)); } @@ -98,12 +99,8 @@ public class WarningRuleTask { if (isRuleSatisfied) { log.info("预警规则 {} 满足条件,触发预警", warningRule.getId()); - // 生成规则信息 - String ruleInfo = generateRuleInfo(conditions); - WarningRuleInfo warningRuleInfo = new WarningRuleInfo(); warningRuleInfo.setRuleId(warningRule.getId()); - warningRuleInfo.setConditions(conditions); warningRuleInfo.setCreateTime(LocalDateTime.now()); warningRuleInfo.setStatus(0); warningRuleInfoService.save(warningRuleInfo); @@ -182,23 +179,17 @@ public class WarningRuleTask { /** * 计算条件的实际值 */ - private BigDecimal calculateActualValue(WarningCondition condition, String warningType) { -// String indicatorType = condition.getIndicatorType(); -// String stcd = condition.getStcd(); - String indicatorType = null; - String stcd = null; + private BigDecimal calculateActualValue(WarningCondition condition, Integer warningObj,String stcd) { Integer durationHours = condition.getDurationHours(); - switch (indicatorType) { - case "REAL_WATER_LEVEL": + switch (warningObj) { + case 1: return getRzByStcd(stcd); - case "PEAK_FLOW": - return getFloowMaxQ(durationHours); - case "RAINFALL": + case 2: return getRealRainFall(stcd, durationHours); - case "WATER_STORAGE": -// return getWaterStorage(condition.getYear()); - case "FORECAST_RAINFALL": + case 9: + return getFloowMaxQ(durationHours); + case 8: return getForecastRainFall(stcd, durationHours); default: return BigDecimal.ZERO;