feat: 生态流量监测数量统计

This commit is contained in:
tangwei 2026-06-01 14:54:23 +08:00
parent 95b6e1f341
commit 787e3fea42
4 changed files with 105 additions and 0 deletions

View File

@ -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));
}
}

View File

@ -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;
}

View File

@ -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<WbsbVo> getWbsbList(DataSourceRequest dataSourceRequest);
DataSourceResult<SdEqMonitorCountVo> getEvnmAutoMonitorList(DataSourceRequest dataSourceRequest);
}

View File

@ -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<SdEqMonitorCountVo> getEvnmAutoMonitorList(DataSourceRequest dataSourceRequest) {
List<String> showIds = findFilterValues(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), "showIds");
if (!showIds.isEmpty() && !showIds.contains("7")) {
DataSourceResult<SdEqMonitorCountVo> 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<String, Object> 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<SdEqMonitorCountVo> list = microservicDynamicSQLMapper.getAllListWithResultType(sql.toString(), paramMap, SdEqMonitorCountVo.class);
DataSourceResult<SdEqMonitorCountVo> result = new DataSourceResult<>();
result.setData(list);
result.setTotal(list == null ? 0 : list.size());
result.setAggregates(new HashMap<>());
return result;
}
private DataSourceResult<EngEqDataVo> queryDetailList(DataSourceRequest dataSourceRequest,
DataSourceLoadOptionsBase loadOptions) {
StringBuilder sql = new StringBuilder();
@ -1072,6 +1109,34 @@ public class EngEqDataServiceImpl implements EngEqDataService {
return values;
}
private List<String> findFilterValues(DataSourceRequest.FilterDescriptor filter, String field) {
List<String> values = new ArrayList<>();
collectFilterValues(filter, field, values);
return values;
}
private void collectFilterValues(DataSourceRequest.FilterDescriptor filter, String field, List<String> 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;