diff --git a/backend/src/main/java/com/yfd/platform/common/MicroservicDynamicSQLMapper.java b/backend/src/main/java/com/yfd/platform/common/MicroservicDynamicSQLMapper.java
index 56b60176..59e435bd 100644
--- a/backend/src/main/java/com/yfd/platform/common/MicroservicDynamicSQLMapper.java
+++ b/backend/src/main/java/com/yfd/platform/common/MicroservicDynamicSQLMapper.java
@@ -45,7 +45,8 @@ public interface MicroservicDynamicSQLMapper {
default List getAllListWithResultType(String sql,
Map map,
Class resultType) {
- return convertList(getAllList(sql, map), resultType);
+ List
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+// static {
+//
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("grd").modifyProperty("grdName").dictType("STATIC").dictSource("TEST").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseid").modifyProperty("basename").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+// }
+
+
@Override
public Page queryPageList(Page page, String hbrvnm, String baseid) {
return this.page(page, this.lambdaQuery()
@@ -110,7 +145,7 @@ public class SdHbrvDicServiceImpl extends ServiceImpl authorizedStations = getUserAuthorizedStationCodes();
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdHydrobaseServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdHydrobaseServiceImpl.java
index 652d5d4d..9669eba8 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdHydrobaseServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdHydrobaseServiceImpl.java
@@ -13,6 +13,7 @@ import com.yfd.platform.qgc_base.entity.vo.HydrobaseWbsVo;
import com.yfd.platform.qgc_base.mapper.SdEngInfoBHMapper;
import com.yfd.platform.qgc_base.mapper.SdHydrobaseMapper;
import com.yfd.platform.qgc_base.service.ISdHydrobaseService;
+import com.yfd.platform.system.service.IAdminAuthService;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
@@ -39,6 +40,9 @@ public class SdHydrobaseServiceImpl extends ServiceImpl queryPageList(Page page, String basename, String pbaseid) {
return this.page(page, this.lambdaQuery()
@@ -91,7 +95,7 @@ public class SdHydrobaseServiceImpl extends ServiceImpl();
}
- }else if (!"admin".equals(SecurityUtils.getCurrentUsername())){
+ }else if (!adminAuthService.isCurrentManagedAdmin()){
return new ArrayList<>();
}
// else {
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdRvcdDicServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdRvcdDicServiceImpl.java
index ed0b961b..ff89fa82 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdRvcdDicServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdRvcdDicServiceImpl.java
@@ -11,6 +11,7 @@ import com.yfd.platform.qgc_base.mapper.SdRvcdDicMapper;
import com.yfd.platform.qgc_base.service.ISdRvcdDicService;
import com.yfd.platform.qgc_data.domain.SysUserDataScope;
import com.yfd.platform.qgc_data.mapper.SysUserDataScopeMapper;
+import com.yfd.platform.system.service.IAdminAuthService;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
@@ -33,6 +34,9 @@ public class SdRvcdDicServiceImpl extends ServiceImpl queryPageList(Page page, String rvnm, String prvcd) {
return this.page(page, this.lambdaQuery()
@@ -120,7 +124,7 @@ public class SdRvcdDicServiceImpl extends ServiceImpl selectForDropdown(String rvnm, String rvcd) {
List dropdownList = this.baseMapper.selectRegDropdown(rvnm, rvcd);
- if("admin".equals(SecurityUtils.getCurrentUsername())){
+ if(adminAuthService.isCurrentManagedAdmin()){
return dropdownList;
}
Set authorizedStations = getUserAuthorizedStationCodes();
@@ -149,6 +153,12 @@ public class SdRvcdDicServiceImpl extends ServiceImpl selectRvcdDropdown(String rvnm,String baseId) {
+ List dropdownList = this.baseMapper.selectRvcdDropdown(rvnm,baseId);
+ return dropdownList;
+ }
+
@Override
public Set getUserAuthorizedStationCodes() {
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 9421dcd7..66190642 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
@@ -4,8 +4,12 @@ import com.yfd.platform.common.DataSourceLoadOptionsBase;
import com.yfd.platform.common.DataSourceRequest;
import com.yfd.platform.common.DataSourceResult;
import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqBaseMsstbprptVo;
+import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqBaseVmsstbprptVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDrtpDataVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
+import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqLimitQueryVo;
+import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqLimitVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqMsstbprptVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRuleVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqVmsstbprptVo;
@@ -22,6 +26,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
+
@RestController
@RequestMapping("/eq")
@Tag(name = "电站实时数据查询")
@@ -56,6 +62,12 @@ public class EngEqDataController {
return ResponseResult.successData(engEqDataService.getIntervalKendoListCust(dataSourceRequest));
}
+ @PostMapping("/to/eq/GetKendoListCust")
+ @Operation(summary = "电站生态流量统计查询(电站左连接)")
+ public ResponseResult getToEqKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
+ return ResponseResult.successData(engEqDataService.getIntervalKendoListCust(dataSourceRequest));
+ }
+
@PostMapping("/msstbprpt/GetKendoList")
@Operation(summary = "电站基础信息查询")
public ResponseResult getMsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
@@ -63,6 +75,20 @@ public class EngEqDataController {
return ResponseResult.successData(result);
}
+ @PostMapping("/base/msstbprpt/GetKendoList")
+ @Operation(summary = "生态流量泄放设施基础信息查询")
+ public ResponseResult getBaseMsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
+ DataSourceResult result = engEqDataService.getBaseMsstbprptList(dataSourceRequest);
+ return ResponseResult.successData(result);
+ }
+
+ @PostMapping("/base/vmsstbprpt/GetKendoList")
+ @Operation(summary = "生态流量泄放设施统计查询")
+ public ResponseResult getBaseVmsstbprptList(@RequestBody DataSourceRequest dataSourceRequest) {
+ DataSourceResult result = engEqDataService.getBaseVmsstbprptList(dataSourceRequest);
+ return ResponseResult.successData(result);
+ }
+
@PostMapping("/interval/qgc/hour/GetKendoListCust")
@Operation(summary = "生态流量达标率小时统计(二级页面)")
public ResponseResult getQgcHourKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
@@ -81,6 +107,13 @@ public class EngEqDataController {
return ResponseResult.successData(engEqDataService.getQgcHourVAlongKendoListCust(dataSourceRequest));
}
+ @PostMapping("/engalong/statistics/qgc/getEngLimit")
+ @Operation(summary = "沿程生态流量限值变化曲线")
+ public ResponseResult getQgcEngLimit(@RequestBody EngEqLimitQueryVo queryVo) {
+ List result = engEqDataService.getQgcEngLimit(queryVo);
+ return ResponseResult.successData(result);
+ }
+
@PostMapping("/fid/GetKendoListCust")
@Operation(summary = "查询电站相关鱼类附件编码")
public ResponseResult getFidKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqBaseMsstbprptVo.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqBaseMsstbprptVo.java
new file mode 100644
index 00000000..e90510ac
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqBaseMsstbprptVo.java
@@ -0,0 +1,77 @@
+package com.yfd.platform.qgc_eng.eq.entity.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Schema(description = "生态流量泄放设施基础信息查询")
+public class EngEqBaseMsstbprptVo implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "设施编码")
+ private String stcd;
+
+ @Schema(description = "设施名称")
+ private String stnm;
+
+ @Schema(description = "设施类型编码")
+ private String sttpCode;
+
+ @Schema(description = "设施类型名称")
+ private String sttpName;
+
+ @Schema(description = "所属电站编码")
+ private String rstcd;
+
+ @Schema(description = "所属电站名称")
+ private String rstcdName;
+
+ @Schema(description = "基地编码")
+ private String baseId;
+
+ @Schema(description = "基地名称")
+ private String baseName;
+
+ @Schema(description = "基地流域编码")
+ private String hbrvcd;
+
+ @Schema(description = "基地流域名称")
+ private String hbrvcdName;
+
+ @Schema(description = "设施位置")
+ private String stlc;
+
+ @Schema(description = "经度")
+ private Double lgtd;
+
+ @Schema(description = "纬度")
+ private Double lttd;
+
+ @Schema(description = "高程")
+ private Double elev;
+
+ @Schema(description = "建设状态分类编码")
+ private Integer bldsttCode;
+
+ @Schema(description = "建设状态分类名称")
+ private String bldsttCodeName;
+
+ @Schema(description = "数据接入状态")
+ private Integer dtin;
+
+ @Schema(description = "数据接入状态中文")
+ private String dtinName;
+
+ @Schema(description = "数据接入时间")
+ private Date dtinTm;
+
+ @Schema(description = "数据时间")
+ private Date tm;
+
+ @Schema(description = "排序")
+ private Integer orderIndex;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqBaseVmsstbprptVo.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqBaseVmsstbprptVo.java
new file mode 100644
index 00000000..588c7d77
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqBaseVmsstbprptVo.java
@@ -0,0 +1,64 @@
+package com.yfd.platform.qgc_eng.eq.entity.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Schema(description = "生态流量泄放设施统计查询")
+public class EngEqBaseVmsstbprptVo extends EngEqMsstbprptVo {
+
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "所属电站编码")
+ private String rstcd;
+
+ @Schema(description = "所属电站名称")
+ private String rstcdName;
+
+ @Schema(description = "基地排序")
+ private Integer baseStepSort;
+
+ @Schema(description = "流域排序")
+ private Integer rvcdStepSort;
+
+ @Schema(description = "所属电站排序")
+ private Integer rstcdStepSort;
+
+ @Schema(description = "设施排序")
+ private Integer siteStepSort;
+
+ @Schema(description = "死水位时保证流量")
+ private Double ddzgq;
+
+ @Schema(description = "最大泄放流量")
+ private String flkq;
+
+ @Schema(description = "孔口尺寸")
+ private String flksz;
+
+ @Schema(description = "结构形式")
+ private String frntwlltyp;
+
+ @Schema(description = "进水口底版高程")
+ private Double jskgc;
+
+ @Schema(description = "出水口底版高程")
+ private Double outflrelev;
+
+ @Schema(description = "基荷发电工况")
+ private Double jhfdgk;
+
+ @Schema(description = "发电流量")
+ private Double fdll;
+
+ @Schema(description = "生态机组额定流量")
+ private Double stjzysq;
+
+ @Schema(description = "装机容量")
+ private Double ttpwr;
+
+ @Schema(description = "所属建设阶段名称")
+ private String blprdName;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqLimitQueryVo.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqLimitQueryVo.java
new file mode 100644
index 00000000..f9985176
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqLimitQueryVo.java
@@ -0,0 +1,20 @@
+package com.yfd.platform.qgc_eng.eq.entity.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+@Schema(description = "沿程生态流量限值查询参数")
+public class EngEqLimitQueryVo {
+
+ @Schema(description = "查询日期,支持 yyyy-MM-dd、yyyy-MM-dd HH:mm、yyyy-MM-dd HH:mm:ss")
+ private String date;
+
+ @Schema(description = "基地编码")
+ private String baseId;
+
+ @Schema(description = "流域编码")
+ private String rvcd;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqLimitVo.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqLimitVo.java
new file mode 100644
index 00000000..f0083108
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqLimitVo.java
@@ -0,0 +1,28 @@
+package com.yfd.platform.qgc_eng.eq.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@Accessors(chain = true)
+@Schema(description = "沿程生态流量限值")
+public class EngEqLimitVo {
+
+ @Schema(description = "电站编码")
+ private String stcd;
+
+ @Schema(description = "电站名称")
+ private String stnm;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Schema(description = "查询日期")
+ private Date date;
+
+ @Schema(description = "生态流量限值")
+ private BigDecimal qecLimit;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqVmsstbprptVo.java b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqVmsstbprptVo.java
index 04a7d016..e3a444c1 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqVmsstbprptVo.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_eng/eq/entity/vo/EngEqVmsstbprptVo.java
@@ -56,6 +56,9 @@ public class EngEqVmsstbprptVo implements Serializable {
@Schema(description = "环保数据接入状态")
private Integer dtinEnv;
+ @Schema(description = "接入状态")
+ private Integer dtin;
+
@Schema(description = "基地排序")
private Integer baseStepSort;
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 e68b0699..7f0a0bf8 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
@@ -2,11 +2,15 @@ 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.EngEqBaseMsstbprptVo;
+import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqBaseVmsstbprptVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayDataVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDrtpDataVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayIntervalVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqHourIntervalVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
+import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqLimitQueryVo;
+import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqLimitVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqMsstbprptVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqRuleVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngQecAlongVo;
@@ -16,6 +20,8 @@ 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;
+import java.util.List;
+
public interface EngEqDataService {
DataSourceResult getKendoListCust(DataSourceRequest dataSourceRequest);
@@ -28,12 +34,18 @@ public interface EngEqDataService {
DataSourceResult getMsstbprptList(DataSourceRequest dataSourceRequest);
+ DataSourceResult getBaseMsstbprptList(DataSourceRequest dataSourceRequest);
+
+ DataSourceResult getBaseVmsstbprptList(DataSourceRequest dataSourceRequest);
+
DataSourceResult getQgcHourKendoListCust(DataSourceRequest dataSourceRequest);
DataSourceResult getQgcDayKendoListCust(DataSourceRequest dataSourceRequest);
DataSourceResult getQgcHourVAlongKendoListCust(DataSourceRequest dataSourceRequest);
+ List getQgcEngLimit(EngEqLimitQueryVo queryVo);
+
DataSourceResult getFidKendoListCust(DataSourceRequest dataSourceRequest);
EngEqRuleVo getEngLimit(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 4b3fb30a..d470ba6e 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
@@ -12,10 +12,14 @@ import com.yfd.platform.common.GroupingInfo;
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
import com.yfd.platform.common.enums.QecIntervalEnum;
import com.yfd.platform.common.enums.ShowEnum;
+import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqBaseMsstbprptVo;
+import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqBaseVmsstbprptVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDataVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayDataVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDrtpDataVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqDayIntervalVo;
+import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqLimitQueryVo;
+import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqLimitVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngFidVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqHourIntervalVo;
import com.yfd.platform.qgc_eng.eq.entity.vo.EngEqIntervalVo;
@@ -46,6 +50,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
@Service
@@ -99,6 +104,498 @@ public class EngEqDataServiceImpl implements EngEqDataService {
return queryMsstbprptGroupList(dataSourceRequest, loadOptions);
}
+ @Override
+ public DataSourceResult getBaseMsstbprptList(DataSourceRequest dataSourceRequest) {
+ DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
+ if (CollUtil.isEmpty(dataSourceRequest == null ? null : dataSourceRequest.getGroup())) {
+ return queryBaseMsstbprptDetailList(dataSourceRequest, loadOptions);
+ }
+ return queryBaseMsstbprptGroupList(dataSourceRequest, loadOptions);
+ }
+
+ @Override
+ public DataSourceResult getBaseVmsstbprptList(DataSourceRequest dataSourceRequest) {
+ DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
+ if (CollUtil.isEmpty(dataSourceRequest == null ? null : dataSourceRequest.getGroup())) {
+ return queryBaseVmsstbprptDetailList(dataSourceRequest, loadOptions);
+ }
+ return queryBaseVmsstbprptGroupList(dataSourceRequest, loadOptions);
+ }
+
+ private DataSourceResult queryBaseMsstbprptDetailList(DataSourceRequest dataSourceRequest,
+ DataSourceLoadOptionsBase loadOptions) {
+ StringBuilder sql = new StringBuilder();
+ sql.append("SELECT ")
+ .append(buildBaseMsstbprptDetailSelectSql(dataSourceRequest == null ? null : dataSourceRequest.getSelect()))
+ .append(" FROM (")
+ .append(buildBaseMsstbprptViewSql())
+ .append(") t WHERE 1 = 1 ");
+
+ Map paramMap = new HashMap<>();
+ String filterSql = buildBaseMsstbprptFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), paramMap, new int[]{0});
+ if (StrUtil.isNotBlank(filterSql)) {
+ sql.append(" AND ").append(filterSql).append(" ");
+ }
+ sql.append(buildBaseMsstbprptDetailOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
+
+ Page> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
+ List list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql.toString(), paramMap, EngEqBaseMsstbprptVo.class);
+ DataSourceResult result = new DataSourceResult<>();
+ result.setData(list);
+ result.setTotal(page != null ? page.getTotal() : list.size());
+ result.setAggregates(new HashMap<>());
+ return result;
+ }
+
+ private DataSourceResult queryBaseMsstbprptGroupList(DataSourceRequest dataSourceRequest,
+ DataSourceLoadOptionsBase loadOptions) {
+ List groups = dataSourceRequest.getGroup();
+ GroupingInfo[] groupInfos = loadOptions == null ? new GroupingInfo[0] : loadOptions.getGroup();
+ List selectItems = new ArrayList<>();
+ for (DataSourceRequest.GroupDescriptor descriptor : groups) {
+ if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
+ continue;
+ }
+ String column = mapBaseMsstbprptColumn(descriptor.getField());
+ if (StrUtil.isBlank(column)) {
+ continue;
+ }
+ selectItems.add(column + " AS " + descriptor.getField().toUpperCase());
+ selectItems.add("COUNT(*) AS COUNT_" + descriptor.getField().toUpperCase());
+ if (CollUtil.isNotEmpty(descriptor.getAggregates())) {
+ for (DataSourceRequest.AggregateDescriptor aggregate : descriptor.getAggregates()) {
+ String aggregateColumn = mapBaseMsstbprptColumn(aggregate.getField());
+ if (StrUtil.isBlank(aggregateColumn) || StrUtil.isBlank(aggregate.getAggregate())) {
+ continue;
+ }
+ selectItems.add(buildAggregateSql(aggregate.getAggregate(), aggregateColumn, aggregate.getField()));
+ }
+ }
+ }
+ if (selectItems.isEmpty()) {
+ selectItems.add("t.STCD AS STCD");
+ selectItems.add("COUNT(*) AS COUNT_STCD");
+ }
+
+ StringBuilder sql = new StringBuilder();
+ sql.append("SELECT ")
+ .append(String.join(", ", selectItems))
+ .append(" FROM (")
+ .append(buildBaseMsstbprptViewSql())
+ .append(") t WHERE 1 = 1 ");
+
+ Map paramMap = new HashMap<>();
+ String filterSql = buildBaseMsstbprptFilterCondition(dataSourceRequest == null ? null : dataSourceRequest.getFilter(), paramMap, new int[]{0});
+ if (StrUtil.isNotBlank(filterSql)) {
+ sql.append(" AND ").append(filterSql).append(" ");
+ }
+
+ List groupByColumns = new ArrayList<>();
+ for (DataSourceRequest.GroupDescriptor descriptor : groups) {
+ if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
+ continue;
+ }
+ String column = mapBaseMsstbprptColumn(descriptor.getField());
+ if (StrUtil.isNotBlank(column)) {
+ groupByColumns.add(column);
+ }
+ }
+ if (!groupByColumns.isEmpty()) {
+ sql.append(" GROUP BY ").append(String.join(", ", groupByColumns)).append(" ");
+ }
+ sql.append(buildBaseMsstbprptGroupOrderBySql(groups));
+
+ List