feat: 条件过滤数据列表定制

This commit is contained in:
tangwei 2026-06-29 17:52:46 +08:00
parent a5eb2496c6
commit b566d7bacf
3 changed files with 114 additions and 0 deletions

View File

@ -21,6 +21,12 @@ public class WeFishController {
@Resource @Resource
private WeFishService weFishService; private WeFishService weFishService;
@PostMapping("/we/fisht/GetKendoListCust")
@Operation(summary = "条件过滤数据列表定制")
public ResponseResult getWeFishTKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
return ResponseResult.successData(weFishService.getWeFishTKendoListCust(dataSourceRequest));
}
@PostMapping("/we/fisht/qgc/GetKendoListCust") @PostMapping("/we/fisht/qgc/GetKendoListCust")
@Operation(summary = "全过程沿程鱼类变化情况") @Operation(summary = "全过程沿程鱼类变化情况")
public ResponseResult getQgcWeFishTKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) { public ResponseResult getQgcWeFishTKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {

View File

@ -21,6 +21,8 @@ import java.util.Map;
public interface WeFishService { public interface WeFishService {
DataSourceResult<WeFishTQgcVo> getWeFishTKendoListCust(DataSourceRequest dataSourceRequest);
DataSourceResult<WeFishTQgcVo> getQgcWeFishTKendoListCust(DataSourceRequest dataSourceRequest); DataSourceResult<WeFishTQgcVo> getQgcWeFishTKendoListCust(DataSourceRequest dataSourceRequest);
DataSourceResult<WeFishListQgcVo> getQgcWeFishList(DataSourceRequest dataSourceRequest); DataSourceResult<WeFishListQgcVo> getQgcWeFishList(DataSourceRequest dataSourceRequest);

View File

@ -47,6 +47,57 @@ public class WeFishServiceImpl implements WeFishService {
@Resource @Resource
private MicroservicDynamicSQLMapper microservicDynamicSQLMapper; private MicroservicDynamicSQLMapper microservicDynamicSQLMapper;
@Override
public DataSourceResult<WeFishTQgcVo> getWeFishTKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
GroupingInfo[] groupInfos = loadOptions == null ? null : loadOptions.getGroup();
Map<String, Object> paramMap = new HashMap<>();
String filterSql = buildWeFishQgcFilterCondition(
dataSourceRequest == null ? null : dataSourceRequest.getFilter(),
paramMap,
new int[]{0}
);
StringBuilder sql = new StringBuilder();
sql.append("SELECT r.* FROM (")
.append(buildWeFishTDetailSql())
.append(") r WHERE 1 = 1 ");
if (StrUtil.isNotBlank(filterSql)) {
sql.append(" AND ").append(filterSql).append(" ");
}
DataSourceResult<WeFishTQgcVo> result = new DataSourceResult<>();
if (CollUtil.isNotEmpty(dataSourceRequest == null ? null : dataSourceRequest.getGroup())) {
String groupedSql = buildWeFishQgcGroupSql(sql.toString(), groupInfos);
List<Map<String, Object>> rows = microservicDynamicSQLMapper.getAllList(groupedSql, paramMap);
if (Boolean.TRUE.equals(dataSourceRequest.getGroupResultFlat())) {
result.setData((List<WeFishTQgcVo>) (List<?>) new GroupHelper().faltGroup(rows, Arrays.asList(groupInfos)));
} else {
result.setData((List<WeFishTQgcVo>) (List<?>) new GroupHelper().group(rows, Arrays.asList(groupInfos)));
}
result.setTotal((long) rows.size());
result.setAggregates(new HashMap<>());
return result;
}
sql.append(buildWeFishQgcOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
Page<?> page = loadOptions == null ? null
: QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
List<WeFishTQgcVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(
page,
sql.toString(),
paramMap,
WeFishTQgcVo.class
);
fillWeFishDerivedFields(list);
result.setData(list);
result.setTotal(page != null ? page.getTotal() : list.size());
result.setAggregates(new HashMap<>());
return result;
}
@Override @Override
public DataSourceResult<WeFishTQgcVo> getQgcWeFishTKendoListCust(DataSourceRequest dataSourceRequest) { public DataSourceResult<WeFishTQgcVo> getQgcWeFishTKendoListCust(DataSourceRequest dataSourceRequest) {
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest(); DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
@ -2414,6 +2465,61 @@ public class WeFishServiceImpl implements WeFishService {
return vo; return vo;
} }
private String buildWeFishTDetailSql() {
return "SELECT " +
"section.STCD AS stcd, " +
"section.STNM AS stnm, " +
"eng.BASE_ID AS baseId, " +
"eng.BASE_NAME AS baseName, " +
"eng.RVCD AS rvcd, " +
"eng.RVCD_NAME AS rvcdName, " +
"eng.ADDVCD AS addvcd, " +
"eng.ADDVCD_NAME AS addvcdName, " +
"eng.HBRVCD AS hbrvcd, " +
"eng.HBRVCD_NAME AS hbrvcdName, " +
"we.DCPC AS dcpc, " +
"we.TM AS tm, " +
"we.FID AS werFid, " +
"fish.WER_ID AS werId, " +
"fish.FTP AS ftp, " +
"fish.FSZ AS fsz, " +
"fish.FCNT AS fcnt, " +
"fish.FWGH AS fwgh, " +
"fish.ST AS st, " +
"fish.PS AS ps, " +
"fish.AVG_FWGT AS avgFwgt, " +
"fish.AVG_FSZ AS avgFsz, " +
"fish.FID AS fid, " +
"fish.FILE_ID AS fileId, " +
"dict.ID AS id, " +
"dict.NAME AS name, " +
"dict.ALIAS AS alias, " +
"dict.GENUS AS genus, " +
"dict.FAMILY AS family, " +
"dict.SPECIES AS species, " +
"dict.TYPE AS type, " +
"dict.RARE AS rare, " +
"dict.SPEC_ORIGIN AS specOrigin, " +
"dict.PTYPE AS ptype, " +
"TO_CHAR(we.TM, 'yyyy') AS yr, " +
"CASE " +
"WHEN dict.SPEC_ORIGIN = 2 THEN 1 " +
"WHEN dict.SPEC_ORIGIN = 1 AND NVL(dict.PTYPE, -1) <> 6 THEN 2 " +
"WHEN dict.SPEC_ORIGIN = 1 AND dict.PTYPE = 6 THEN 3 " +
"END AS ty " +
"FROM SD_WE_R we " +
"INNER JOIN SD_WEFISH_R fish ON fish.WER_ID = we.ID " +
" AND NVL(fish.IS_DELETED, 0) = 0 " +
"INNER JOIN SD_WE_B_H section ON section.STCD = we.STCD " +
" AND NVL(section.USFL, 0) = 1 " +
"LEFT JOIN SD_ENGINFO_B_H eng ON eng.STCD = section.RSTCD " +
" AND NVL(eng.IS_DELETED, 0) = 0 " +
"LEFT JOIN SD_FISHDICTORY_B dict ON dict.ID = fish.FTP " +
" AND NVL(dict.IS_DELETED, 0) = 0 " +
"WHERE NVL(we.IS_DELETED, 0) = 0 " +
"AND NVL(we.STATUS, 1) = 1 ";
}
private String buildWeFishQgcDetailSql() { private String buildWeFishQgcDetailSql() {
return "SELECT " + return "SELECT " +
"section.STCD AS stcd, " + "section.STCD AS stcd, " +