diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java index c4a3394b..87234952 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/controller/EngEqDataController.java @@ -47,4 +47,10 @@ public class EngEqDataController { public ResponseResult getWbsbList(@RequestBody DataSourceRequest dataSourceRequest) { return ResponseResult.successData(engEqDataService.getWbsbList(dataSourceRequest)); } + + @PostMapping("/evnmAutoMonitor/GetKendoListCust") + @Operation(summary = "生态流量监测数量统计") + public ResponseResult getEvnmAutoMonitorList(@RequestBody DataSourceRequest dataSourceRequest) { + return ResponseResult.successData(engEqDataService.getEvnmAutoMonitorList(dataSourceRequest)); + } } diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/SdEqMonitorCountVo.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/SdEqMonitorCountVo.java new file mode 100644 index 00000000..7d600576 --- /dev/null +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/SdEqMonitorCountVo.java @@ -0,0 +1,31 @@ +package com.yfd.platform.qgc_eng.eq.entity.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; + +@Data +@Schema(description = "生态流量监测数量统计") +public class SdEqMonitorCountVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @Schema(description = "数量") + private Long cnt; + + @Schema(description = "排序号") + private Integer orderInx; + + @Schema(description = "排序号名称") + private String orderInxName; + + @Schema(description = "站类完整路径") + private String sttpFullPath; + + @Schema(description = "站类编码") + private String sttpCode; + + @Schema(description = "站类名称") + private String sttpName; +} diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java index ecb95877..5fe8e83d 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/EngEqDataService.java @@ -3,6 +3,7 @@ package com.yfd.platform.qgc_eng.eq.service; import com.yfd.platform.common.DataSourceRequest; import com.yfd.platform.common.DataSourceResult; import com.yfd.platform.qgc_eng.eq.entity.vo.QgcQecStaticVo; +import com.yfd.platform.qgc_eng.eq.entity.vo.SdEqMonitorCountVo; import com.yfd.platform.qgc_eng.eq.entity.vo.WbsbVo; public interface EngEqDataService { @@ -12,4 +13,6 @@ public interface EngEqDataService { QgcQecStaticVo getQgcStaticData(DataSourceRequest dataSourceRequest, String type); DataSourceResult getWbsbList(DataSourceRequest dataSourceRequest); + + DataSourceResult getEvnmAutoMonitorList(DataSourceRequest dataSourceRequest); } diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java index 18636671..26f9d081 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/service/impl/EngEqDataServiceImpl.java @@ -15,6 +15,7 @@ import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDataVo; import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqStaticIntervalVo; import com.yfd.platform.qgc_eng.eq.entity.vo.QgcQecStaticVo; import com.yfd.platform.qgc_eng.eq.entity.vo.QgcQecVo; +import com.yfd.platform.qgc_eng.eq.entity.vo.SdEqMonitorCountVo; import com.yfd.platform.qgc_eng.eq.entity.vo.WbsbVo; import com.yfd.platform.qgc_eng.eq.service.EngEqDataService; import com.yfd.platform.utils.QgcQueryWrapperUtil; @@ -118,6 +119,42 @@ public class EngEqDataServiceImpl implements EngEqDataService { return queryWbsbGroupList(dataSourceRequest, loadOptions); } + @Override + public DataSourceResult getEvnmAutoMonitorList(DataSourceRequest dataSourceRequest) { + List showIds = findFilterValues(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), "showIds"); + if (!showIds.isEmpty() && !showIds.contains("7")) { + DataSourceResult emptyResult = new DataSourceResult<>(); + emptyResult.setData(new ArrayList<>()); + emptyResult.setTotal(0L); + emptyResult.setAggregates(new HashMap<>()); + return emptyResult; + } + + DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest(); + String baseId = loadOptions == null ? null : QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "baseId"); + + StringBuilder sql = new StringBuilder(); + Map paramMap = new HashMap<>(); + sql.append("SELECT COUNT(1) AS cnt, 7 AS orderInx, '生态流量' AS orderInxName, ") + .append("'ENG' AS sttpFullPath, 'ENG' AS sttpCode, '生态流量' AS sttpName ") + .append("FROM SD_ENGINFO_B_H eng ") + .append("WHERE NVL(eng.IS_DELETED, 0) = 0 ") + .append("AND NVL(eng.DTIN, 0) = 1 ") + .append("AND NVL(eng.BLDSTT_CODE, 0) IN (1, 2) ") + .append("AND EXISTS (SELECT 1 FROM SD_QEC_R qec WHERE qec.STCD = eng.STCD AND NVL(qec.IS_DELETED, 0) = 0) "); + if (StrUtil.isNotBlank(baseId)) { + sql.append("AND eng.BASE_ID = #{map.baseId} "); + paramMap.put("baseId", baseId); + } + + List list = microservicDynamicSQLMapper.getAllListWithResultType(sql.toString(), paramMap, SdEqMonitorCountVo.class); + DataSourceResult result = new DataSourceResult<>(); + result.setData(list); + result.setTotal(list == null ? 0 : list.size()); + result.setAggregates(new HashMap<>()); + return result; + } + private DataSourceResult queryDetailList(DataSourceRequest dataSourceRequest, DataSourceLoadOptionsBase loadOptions) { StringBuilder sql = new StringBuilder(); @@ -1072,6 +1109,34 @@ public class EngEqDataServiceImpl implements EngEqDataService { return values; } + private List findFilterValues(DataSourceRequest.FilterDescriptor filter, String field) { + List values = new ArrayList<>(); + collectFilterValues(filter, field, values); + return values; + } + + private void collectFilterValues(DataSourceRequest.FilterDescriptor filter, String field, List values) { + if (filter == null) { + return; + } + if (StrUtil.isNotBlank(filter.getField())) { + if (field.equalsIgnoreCase(filter.getField())) { + for (Object value : normalizeValues(filter.getValue())) { + if (value != null) { + values.add(String.valueOf(value)); + } + } + } + return; + } + if (CollUtil.isEmpty(filter.getFilters())) { + return; + } + for (DataSourceRequest.FilterDescriptor child : filter.getFilters()) { + collectFilterValues(child, field, values); + } + } + private String mapStaticStationColumn(String field) { if (StrUtil.isBlank(field)) { return null;