feat: 沿程鱼类变化情况二级弹窗-按照新逻辑重写
This commit is contained in:
parent
7e89aefe6a
commit
a5eb2496c6
@ -87,6 +87,12 @@ public class WeFishController {
|
||||
return ResponseResult.successData(weFishService.getWeFishStatList(dataSourceRequest));
|
||||
}
|
||||
|
||||
@PostMapping("/we/fisht/qgcDetail/GetKendoListCust")
|
||||
@Operation(summary = "沿程鱼类变化情况二级弹窗-按照新逻辑重写")
|
||||
public ResponseResult getQgcWeFishDetailList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||
return ResponseResult.successData(weFishService.getQgcWeFishDetailList(dataSourceRequest));
|
||||
}
|
||||
|
||||
@PostMapping("/we/fisht/detail/GetKendoListCust")
|
||||
@Operation(summary = "沿程鱼类变化情况二级弹窗")
|
||||
public ResponseResult getWeFishDetailList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||
|
||||
@ -43,6 +43,8 @@ public interface WeFishService {
|
||||
|
||||
DataSourceResult<WeFishStatQgcVo> getWeFishStatList(DataSourceRequest dataSourceRequest);
|
||||
|
||||
DataSourceResult<WeFishDetailVo> getQgcWeFishDetailList(DataSourceRequest dataSourceRequest);
|
||||
|
||||
DataSourceResult<WeFishDetailVo> getWeFishDetailList(DataSourceRequest dataSourceRequest);
|
||||
|
||||
DataSourceResult<WeFishStatTabVo> getWeFishStatTabList(DataSourceRequest dataSourceRequest);
|
||||
|
||||
@ -441,6 +441,30 @@ public class WeFishServiceImpl implements WeFishService {
|
||||
return buildWeFishStatResult(rows);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSourceResult<WeFishDetailVo> getQgcWeFishDetailList(DataSourceRequest dataSourceRequest) {
|
||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||
Page<?> page = loadOptions == null ? null
|
||||
: QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||
Map<String, Object> paramMap = new HashMap<>();
|
||||
DataSourceRequest.FilterDescriptor filter = dataSourceRequest == null ? null : dataSourceRequest.getFilter();
|
||||
|
||||
String baseId = firstNonBlankWeFishFilter(filter, "baseId", "base_id");
|
||||
String rstcd = getFirstWeFishFilterText(filter, "stcd");
|
||||
String rvcd = firstNonBlankWeFishFilter(filter, "rvcd", "hbrvcd");
|
||||
String yr = getFirstWeFishFilterText(filter, "yr");
|
||||
String ty = getFirstWeFishFilterText(filter, "ty");
|
||||
|
||||
String sql = buildQgcWeFishDetailSql(baseId, rstcd, rvcd, yr, ty, paramMap);
|
||||
List<Map<String, Object>> rows = microservicDynamicSQLMapper.pageAllList(page, sql, paramMap);
|
||||
|
||||
DataSourceResult<WeFishDetailVo> result = new DataSourceResult<>();
|
||||
result.setData(buildQgcWeFishDetailResult(rows));
|
||||
result.setTotal(page != null ? page.getTotal() : (long) rows.size());
|
||||
result.setAggregates(new HashMap<>());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSourceResult<WeFishDetailVo> getWeFishDetailList(DataSourceRequest dataSourceRequest) {
|
||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||
@ -977,6 +1001,63 @@ public class WeFishServiceImpl implements WeFishService {
|
||||
return result;
|
||||
}
|
||||
|
||||
private String buildQgcWeFishDetailSql(String baseId,
|
||||
String rstcd,
|
||||
String rvcd,
|
||||
String yr,
|
||||
String ty,
|
||||
Map<String, Object> paramMap) {
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("SELECT ")
|
||||
.append("section.RSTCD AS rstcd, ")
|
||||
.append("eng.ENNM AS rstcdName, ")
|
||||
.append("TO_CHAR(WM_CONCAT(DISTINCT section.STCD)) AS stcd, ")
|
||||
.append("TO_CHAR(WM_CONCAT(DISTINCT section.STNM)) AS stnm, ")
|
||||
.append("TO_CHAR(WM_CONCAT(DISTINCT dict.ZY_FISH_ID)) AS id ")
|
||||
.append("FROM SD_WE_B_H section ")
|
||||
.append("INNER JOIN SD_WE_R we ON section.STCD = we.STCD ")
|
||||
.append(" AND NVL(we.IS_DELETED, 0) = 0 ")
|
||||
.append(" AND NVL(we.STATUS, 1) = 1 ")
|
||||
.append("INNER JOIN SD_WEFISH_R fish ON we.ID = fish.WER_ID ")
|
||||
.append(" AND NVL(fish.IS_DELETED, 0) = 0 ")
|
||||
.append("LEFT JOIN SD_ENGINFO_B_H eng ON section.RSTCD = eng.STCD ")
|
||||
.append(" AND NVL(eng.IS_DELETED, 0) = 0 ")
|
||||
.append("LEFT JOIN V_SD_FISHDICTORY_B dict ON fish.FTP = dict.FISH_ID ")
|
||||
.append(" AND (section.HBRVCD = dict.RVCD OR dict.RVCD = 'ZY') ")
|
||||
.append("WHERE NVL(section.USFL, 0) = 1 ")
|
||||
.append("AND section.RSTCD IS NOT NULL ")
|
||||
.append("AND dict.ZY_FISH_ID IS NOT NULL ");
|
||||
|
||||
if (StrUtil.isNotBlank(baseId)) {
|
||||
paramMap.put("qgcWeFishDetailBaseId", baseId);
|
||||
sql.append("AND section.BASE_ID = #{map.qgcWeFishDetailBaseId} ");
|
||||
}
|
||||
if (StrUtil.isNotBlank(rstcd)) {
|
||||
paramMap.put("qgcWeFishDetailRstcd", rstcd);
|
||||
sql.append("AND section.RSTCD = #{map.qgcWeFishDetailRstcd} ");
|
||||
}
|
||||
if (StrUtil.isNotBlank(rvcd)) {
|
||||
paramMap.put("qgcWeFishDetailRvcd", rvcd);
|
||||
sql.append("AND section.HBRVCD = #{map.qgcWeFishDetailRvcd} ");
|
||||
}
|
||||
if (StrUtil.isNotBlank(yr)) {
|
||||
paramMap.put("qgcWeFishDetailYr", yr);
|
||||
sql.append("AND TO_CHAR(we.TM, 'yyyy') = #{map.qgcWeFishDetailYr} ");
|
||||
}
|
||||
if (StrUtil.isNotBlank(ty)) {
|
||||
paramMap.put("qgcWeFishDetailTy", ty);
|
||||
sql.append("AND CASE ")
|
||||
.append("WHEN dict.SPEC_ORIGIN = 2 THEN '1' ")
|
||||
.append("WHEN dict.SPEC_ORIGIN = 1 AND NVL(dict.PTYPE, -1) <> 6 THEN '2' ")
|
||||
.append("WHEN dict.SPEC_ORIGIN = 1 AND dict.PTYPE = 6 THEN '3' ")
|
||||
.append("END = #{map.qgcWeFishDetailTy} ");
|
||||
}
|
||||
|
||||
sql.append("GROUP BY section.RSTCD, eng.ENNM ")
|
||||
.append("ORDER BY eng.ENNM ASC NULLS LAST");
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
private String buildWeFishDetailSql(String baseId,
|
||||
String rstcd,
|
||||
String rvcd,
|
||||
@ -1107,6 +1188,27 @@ public class WeFishServiceImpl implements WeFishService {
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<WeFishDetailVo> buildQgcWeFishDetailResult(List<Map<String, Object>> rows) {
|
||||
List<WeFishDetailVo> result = new ArrayList<>();
|
||||
if (CollUtil.isEmpty(rows)) {
|
||||
return result;
|
||||
}
|
||||
Map<String, String> fishNameMap = loadWeFishNameMap();
|
||||
for (Map<String, Object> row : rows) {
|
||||
String stcd = safeWeFishString(firstPresentWeFishValue(row, "STCD", "stcd"));
|
||||
String stnm = safeWeFishString(firstPresentWeFishValue(row, "STNM", "stnm"));
|
||||
String fishIds = safeWeFishString(firstPresentWeFishValue(row, "ID", "id"));
|
||||
|
||||
WeFishDetailVo vo = new WeFishDetailVo()
|
||||
.setRsctd(safeWeFishString(firstPresentWeFishValue(row, "RSTCD", "rstcd")))
|
||||
.setRsctdName(safeWeFishString(firstPresentWeFishValue(row, "RSTCDNAME", "rstcdName")))
|
||||
.setFishList(resolveWeFishNameList(fishIds, fishNameMap))
|
||||
.setStcdList(buildWeFishStationItems(stcd, stnm));
|
||||
result.add(vo);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<WeFishDetailVo.StationItem> buildWeFishStationItems(String stcdText, String stnmText) {
|
||||
List<WeFishDetailVo.StationItem> result = new ArrayList<>();
|
||||
if (StrUtil.isBlank(stcdText) || StrUtil.isBlank(stnmText)) {
|
||||
@ -1140,6 +1242,11 @@ public class WeFishServiceImpl implements WeFishService {
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<String> resolveWeFishNameList(String idsText, Map<String, String> fishNameMap) {
|
||||
String names = resolveWeFishNames(idsText, fishNameMap);
|
||||
return splitWeFishText(names);
|
||||
}
|
||||
|
||||
private String firstNonBlankWeFishFilter(DataSourceRequest.FilterDescriptor filter, String... fields) {
|
||||
if (fields == null) {
|
||||
return null;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user