feat: 水生生态调查对比(柱状图)
This commit is contained in:
parent
4480109fb0
commit
0295c67e41
@ -69,6 +69,12 @@ public class WeFishController {
|
||||
return ResponseResult.successData(weFishService.getWvaDefaultList(dataSourceRequest));
|
||||
}
|
||||
|
||||
@PostMapping("/we/compareBar/GetKendoListCust")
|
||||
@Operation(summary = "水生生态调查对比(柱状图)")
|
||||
public ResponseResult getWeCompareBarList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||
return ResponseResult.successData(weFishService.getWeCompareBarList(dataSourceRequest));
|
||||
}
|
||||
|
||||
@PostMapping("/we/fisht/year/qgc/GetKendoListCust")
|
||||
@Operation(summary = "全过程沿程鱼类变化情况有数据的流域和年份")
|
||||
public ResponseResult getQgcFishStaticsYearList(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
package com.yfd.platform.qgc_env.wte.entity.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@AllArgsConstructor
|
||||
@Schema(description = "水生生态调查对比柱状图表头")
|
||||
public class WeCompareBarHeadColumnVo {
|
||||
|
||||
@Schema(description = "字段名")
|
||||
private String dataIndex;
|
||||
|
||||
@Schema(description = "标题")
|
||||
private String title;
|
||||
|
||||
@Schema(description = "是否可见")
|
||||
private Boolean visible;
|
||||
|
||||
@Schema(description = "键")
|
||||
private String key;
|
||||
|
||||
@Schema(description = "单位")
|
||||
private boolean merge;
|
||||
|
||||
@Schema(description = "子列")
|
||||
private List<WeCompareBarHeadColumnVo> children;
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package com.yfd.platform.qgc_env.wte.entity.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(description = "水生生态调查对比柱状图表格")
|
||||
public class WeCompareBarTableVo {
|
||||
|
||||
@Schema(description = "表头")
|
||||
private List<WeCompareBarHeadColumnVo> columns;
|
||||
|
||||
@Schema(description = "表格数据")
|
||||
private Object dataSource;
|
||||
|
||||
@Schema(description = "总数")
|
||||
private Long total;
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package com.yfd.platform.qgc_env.wte.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 WeCompareBarVo {
|
||||
|
||||
@Schema(description = "鱼类名称")
|
||||
private String ftp;
|
||||
|
||||
@Schema(description = "科属")
|
||||
private String genus;
|
||||
|
||||
@Schema(description = "调查批次")
|
||||
private String dcpc;
|
||||
|
||||
@Schema(description = "对比批次")
|
||||
private String dcpc2;
|
||||
|
||||
@Schema(description = "鱼类数量")
|
||||
private Integer fcnt;
|
||||
|
||||
@Schema(description = "对比鱼类数量")
|
||||
private Integer fcnt2;
|
||||
}
|
||||
@ -4,6 +4,7 @@ import com.yfd.platform.common.DataSourceRequest;
|
||||
import com.yfd.platform.common.DataSourceResult;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishListQgcVo;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishListStatQgcVo;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeCompareBarTableVo;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishDetailVo;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeMsstbprptVo;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishPointQgcVo;
|
||||
@ -38,6 +39,8 @@ public interface WeFishService {
|
||||
|
||||
DataSourceResult<WeWvaYearQgcVo> getWvaDefaultYearList(DataSourceRequest dataSourceRequest);
|
||||
|
||||
DataSourceResult<WeCompareBarTableVo> getWeCompareBarList(DataSourceRequest dataSourceRequest);
|
||||
|
||||
DataSourceResult<Map<String, List<String>>> getQgcFishStaticsYearList(DataSourceRequest dataSourceRequest);
|
||||
|
||||
DataSourceResult<WeStaticsVo> getQgcWeFishStatics(DataSourceRequest dataSourceRequest);
|
||||
|
||||
@ -10,6 +10,9 @@ import com.yfd.platform.common.DataSourceResult;
|
||||
import com.yfd.platform.common.GroupHelper;
|
||||
import com.yfd.platform.common.GroupingInfo;
|
||||
import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeCompareBarHeadColumnVo;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeCompareBarTableVo;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeCompareBarVo;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishListQgcVo;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishListStatQgcVo;
|
||||
import com.yfd.platform.qgc_env.wte.entity.vo.WeFishDetailVo;
|
||||
@ -423,6 +426,58 @@ public class WeFishServiceImpl implements WeFishService {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSourceResult<WeCompareBarTableVo> getWeCompareBarList(DataSourceRequest dataSourceRequest) {
|
||||
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||
DataSourceRequest.FilterDescriptor filter = dataSourceRequest == null ? null : dataSourceRequest.getFilter();
|
||||
|
||||
String stcd = getFirstWeFishFilterText(filter, "stcd");
|
||||
String dcpc = getFirstWeFishFilterText(filter, "dcpc");
|
||||
String dcpc2 = getFirstWeFishFilterText(filter, "dcpc2");
|
||||
|
||||
List<WeCompareBarVo> list = new ArrayList<>();
|
||||
long total = 0L;
|
||||
if (StrUtil.isNotBlank(stcd) && StrUtil.isNotBlank(dcpc) && StrUtil.isNotBlank(dcpc2)) {
|
||||
Map<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("stcd", stcd);
|
||||
paramMap.put("dcpc", dcpc);
|
||||
paramMap.put("dcpc2", dcpc2);
|
||||
|
||||
String sql = "SELECT dict.NAME AS ftp, " +
|
||||
"MAX(NVL(dict.FAMILY, '') || NVL(dict.GENUS, '')) AS genus, " +
|
||||
"#{map.dcpc} AS dcpc, " +
|
||||
"#{map.dcpc2} AS dcpc2, " +
|
||||
"SUM(CASE WHEN we.DCPC = #{map.dcpc} THEN NVL(fish.FCNT, 0) ELSE 0 END) AS fcnt, " +
|
||||
"SUM(CASE WHEN we.DCPC = #{map.dcpc2} THEN NVL(fish.FCNT, 0) ELSE 0 END) AS fcnt2 " +
|
||||
"FROM SD_WE_R we " +
|
||||
"INNER JOIN SD_WEFISH_R fish ON we.ID = fish.WER_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 " +
|
||||
"INNER 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 " +
|
||||
"AND we.STCD = #{map.stcd} " +
|
||||
"AND we.DCPC IN (#{map.dcpc}, #{map.dcpc2}) " +
|
||||
"GROUP BY dict.NAME " +
|
||||
"ORDER BY dict.NAME";
|
||||
|
||||
Page<?> page = loadOptions == null ? null
|
||||
: QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||
list = microservicDynamicSQLMapper.pageAllListWithResultType(page, sql, paramMap, WeCompareBarVo.class);
|
||||
total = page != null ? page.getTotal() : list.size();
|
||||
}
|
||||
|
||||
WeCompareBarTableVo tableVo = new WeCompareBarTableVo()
|
||||
.setColumns(buildWeCompareBarColumns(dcpc, dcpc2))
|
||||
.setDataSource(list)
|
||||
.setTotal(total);
|
||||
|
||||
DataSourceResult<WeCompareBarTableVo> result = new DataSourceResult<>();
|
||||
result.setData(Collections.singletonList(tableVo));
|
||||
result.setTotal(total);
|
||||
result.setAggregates(new HashMap<>());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSourceResult<Map<String, List<String>>> getQgcFishStaticsYearList(DataSourceRequest dataSourceRequest) {
|
||||
Map<String, Object> paramMap = new HashMap<>();
|
||||
@ -1357,6 +1412,17 @@ public class WeFishServiceImpl implements WeFishService {
|
||||
return splitWeFishText(names);
|
||||
}
|
||||
|
||||
private List<WeCompareBarHeadColumnVo> buildWeCompareBarColumns(String dcpc, String dcpc2) {
|
||||
List<WeCompareBarHeadColumnVo> columns = new ArrayList<>();
|
||||
columns.add(new WeCompareBarHeadColumnVo("ftp", "鱼种类", true, "ftp", false, new ArrayList<>()));
|
||||
columns.add(new WeCompareBarHeadColumnVo("genus", "科属", true, "genus", false, new ArrayList<>()));
|
||||
columns.add(new WeCompareBarHeadColumnVo("dcpc", StrUtil.isBlank(dcpc) ? "调查批次" : dcpc, true, "dcpc", false, new ArrayList<>()));
|
||||
columns.add(new WeCompareBarHeadColumnVo("dcpc2", StrUtil.isBlank(dcpc2) ? "对比批次" : dcpc2, true, "dcpc2", false, new ArrayList<>()));
|
||||
columns.add(new WeCompareBarHeadColumnVo("fcnt", "鱼类数量(尾)", true, "fnct", false, new ArrayList<>()));
|
||||
columns.add(new WeCompareBarHeadColumnVo("fcnt2", "对比鱼类数量(尾)", true, "fcnt2", false, new ArrayList<>()));
|
||||
return columns;
|
||||
}
|
||||
|
||||
private String firstNonBlankWeFishFilter(DataSourceRequest.FilterDescriptor filter, String... fields) {
|
||||
if (fields == null) {
|
||||
return null;
|
||||
@ -3088,6 +3154,12 @@ public class WeFishServiceImpl implements WeFishService {
|
||||
return values;
|
||||
}
|
||||
|
||||
private List<Object> normalizeWeWvaValues(Object value) {
|
||||
List<Object> values = new ArrayList<>();
|
||||
appendWeFishQgcValues(values, value);
|
||||
return values;
|
||||
}
|
||||
|
||||
private String buildWeFishListStatFilterCondition(DataSourceRequest.FilterDescriptor filter,
|
||||
Map<String, Object> paramMap,
|
||||
int[] indexHolder) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user