feat: 流域下拉框列表查询&优化逻辑
This commit is contained in:
parent
970de33016
commit
ed0e6ed372
@ -111,6 +111,15 @@ public class SdRvcdDicController {
|
||||
return ResponseResult.successData(rvcdDicService.selectForDropdown(rvnm, rvcd));
|
||||
}
|
||||
|
||||
@GetMapping("/selectRvcdDropdown")
|
||||
@Operation(summary = "流域下拉框列表查询")
|
||||
public ResponseResult selectRvcdDropdown(
|
||||
@RequestParam(required = false) String rvnm,
|
||||
@RequestParam(required = false) String baseId
|
||||
) {
|
||||
return ResponseResult.successData(rvcdDicService.selectRvcdDropdown(rvnm,baseId));
|
||||
}
|
||||
|
||||
@GetMapping("/regDropdown")
|
||||
@Operation(summary = "下拉框列表查询(注册)")
|
||||
public ResponseResult regDropdown(
|
||||
|
||||
@ -32,4 +32,6 @@ public interface SdRvcdDicMapper extends BaseMapper<SdRvcdDic> {
|
||||
* 注册场景下拉框查询,仅返回能被电站表 RVCD 命中的流域
|
||||
*/
|
||||
List<SdRvcdDic> selectRegDropdownWithEng(@Param("rvnm") String rvnm, @Param("rvcd") String rvcd);
|
||||
|
||||
List<SdRvcdDic> selectRvcdDropdown(@Param("rvnm") String rvnm,@Param("baseId") String baseId);
|
||||
}
|
||||
|
||||
@ -55,5 +55,7 @@ public interface ISdRvcdDicService extends IService<SdRvcdDic> {
|
||||
|
||||
List<SdRvcdDic> selectForDropdown(String rvnm, String rvcd);
|
||||
|
||||
List<SdRvcdDic> selectRvcdDropdown(String rvnm,String baseId);
|
||||
|
||||
List<SdRvcdDic> regDropdown(String rvnm, String rvcd);
|
||||
}
|
||||
|
||||
@ -149,6 +149,12 @@ public class SdRvcdDicServiceImpl extends ServiceImpl<SdRvcdDicMapper, SdRvcdDic
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SdRvcdDic> selectRvcdDropdown(String rvnm,String baseId) {
|
||||
List<SdRvcdDic> dropdownList = this.baseMapper.selectRvcdDropdown(rvnm,baseId);
|
||||
return dropdownList;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Set<String> getUserAuthorizedStationCodes() {
|
||||
|
||||
@ -131,9 +131,30 @@ public class VdMonitorServiceImpl implements VdMonitorService {
|
||||
GroupingInfo[] groups,
|
||||
String filterSql,
|
||||
Map<String, Object> paramMap) {
|
||||
List<DataSourceRequest.GroupDescriptor> groupDescriptors = dataSourceRequest == null ? null : dataSourceRequest.getGroup();
|
||||
List<String> selectItems = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(groupDescriptors)) {
|
||||
for (DataSourceRequest.GroupDescriptor descriptor : groupDescriptors) {
|
||||
if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
|
||||
continue;
|
||||
}
|
||||
String column = mapColumn(descriptor.getField());
|
||||
if (StrUtil.isBlank(column)) {
|
||||
continue;
|
||||
}
|
||||
selectItems.add(column + " AS " + descriptor.getField());
|
||||
selectItems.add("COUNT(1) AS count_" + descriptor.getField());
|
||||
}
|
||||
}
|
||||
if (selectItems.isEmpty()) {
|
||||
selectItems.add("t.sttpCode AS sttpCode");
|
||||
selectItems.add("COUNT(1) AS count_sttpCode");
|
||||
}
|
||||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("SELECT t.sttpCode AS sttpCode, COUNT(1) AS count_sttpCode ")
|
||||
.append("FROM (")
|
||||
sql.append("SELECT ")
|
||||
.append(String.join(", ", selectItems))
|
||||
.append(" FROM (")
|
||||
.append(buildVmsstbprptViewSql())
|
||||
.append(") t ")
|
||||
.append("WHERE 1 = 1 ");
|
||||
@ -141,8 +162,24 @@ public class VdMonitorServiceImpl implements VdMonitorService {
|
||||
sql.append(" AND ").append(filterSql).append(" ");
|
||||
}
|
||||
|
||||
sql.append(" GROUP BY t.sttpCode ");
|
||||
sql.append(buildOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getGroup()));
|
||||
List<String> groupByColumns = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(groupDescriptors)) {
|
||||
for (DataSourceRequest.GroupDescriptor descriptor : groupDescriptors) {
|
||||
if (descriptor == null || StrUtil.isBlank(descriptor.getField())) {
|
||||
continue;
|
||||
}
|
||||
String column = mapColumn(descriptor.getField());
|
||||
if (StrUtil.isNotBlank(column)) {
|
||||
groupByColumns.add(column);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!groupByColumns.isEmpty()) {
|
||||
sql.append(" GROUP BY ").append(String.join(", ", groupByColumns));
|
||||
} else {
|
||||
sql.append(" GROUP BY t.sttpCode ");
|
||||
}
|
||||
sql.append(buildOrderBySql(groupDescriptors));
|
||||
|
||||
List<Map<String, Object>> rows = microservicDynamicSQLMapper.pageAllList(null, sql.toString(), paramMap);
|
||||
DataSourceResult<VdVmsstbprptVo> result = new DataSourceResult<>();
|
||||
|
||||
@ -212,5 +212,30 @@
|
||||
</if>
|
||||
ORDER BY t.ORDER_PATH ASC, t.RVCD ASC
|
||||
</select>
|
||||
<select id="selectRvcdDropdown" resultType="com.yfd.platform.qgc_base.domain.SdRvcdDic">
|
||||
SELECT
|
||||
RVCD,
|
||||
RVNM,
|
||||
PRVCD,
|
||||
GRD,
|
||||
PATH,
|
||||
ORDER_INDEX,
|
||||
SHORTNAME,
|
||||
SHEPRANGE,
|
||||
BASEID
|
||||
|
||||
FROM SD_RVCD_DIC
|
||||
WHERE NVL(ENABLED, 1) = 1
|
||||
AND NVL(IS_DELETED, 0) = 0
|
||||
AND (PRVCD IS NULL OR PRVCD = '' OR PRVCD = '0')
|
||||
<if test="baseId != null and baseId != ''">
|
||||
AND BASEID = #{baseId}
|
||||
</if>
|
||||
|
||||
<if test="rvnm != null and rvnm != ''">
|
||||
AND RVNM LIKE '%' || #{rvnm} || '%'
|
||||
</if>
|
||||
ORDER BY ORDER_INDEX ASC, RVCD ASC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user