feat: 条件过滤数据列表定制
This commit is contained in:
parent
a5eb2496c6
commit
b566d7bacf
@ -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) {
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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, " +
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user