例子1:
public List<IndicatorInstance> findAllIndicatorInstance(String indicatorRange, String dimensionGroupRange, String timeType) {
List<String> conditionDimensionGroups = this.split(dimensionGroupRange, ",");
List<String> conditionIndicators = this.split(indicatorRange, ",");
AtomicInteger index = new AtomicInteger();
Map<String, Integer> orderMap = new HashMap<>();
conditionIndicators.forEach(key -> {
orderMap.put(key, index.getAndIncrement());
});
List<IndicatorInstance> result = indicatorInstanceService.findAllByIndicatorCodeInAndDimensionGroupCodeInAndTimeTypeAndDeletedFalse(conditionIndicators, conditionDimensionGroups, IndicatorTimeType.valueOf(timeType));
//查询常量的指标
List<IndicatorInstance> constantResult = indicatorInstanceService.findAllByIndicatorCodeInAndDimensionGroupCodeInAndConstantTrueAndDeletedFalse(conditionIndicators, conditionDimensionGroups);
result.addAll(constantResult);
//去重
List<IndicatorInstance> last = result.stream().distinct().collect(Collectors.toList());
//排序
Collections.sort(last,
Comparator.comparing((IndicatorInstance o) -> orderMap.get(o.getIndicator().getCode()))
.thenComparing((IndicatorInstance o) -> o.getIndicator().getName()));
return last;
}
例子2:
@GetMapping("/indicatorDefinitions")
@ApiOperation(value = "根据指标定义code查询")
public ResponseEntity<List<Indicator>> findIndicatorDefinitionsByCodes(@RequestParam String codes) {
String[] codeArr = StringUtils.split(codes, ",");
List<String> codeList=Arrays.asList(codeArr);
AtomicInteger index=new AtomicInteger();
Map<String, Integer> orderMap = new HashMap<>();
codeList.forEach(key -> {
orderMap.put(key, index.getAndIncrement());
});
List<Indicator> indicators = indicatorDefinitionService.findAllByCodeIn(codeList);
//排序
Collections.sort(indicators,Comparator.comparing((Indicator o)->orderMap.get(o.getCode())).thenComparing(Indicator::getName));
return ResponseEntity.ok(indicators);
}
例子3:
String indicatorDefinitionRange = formCondition.getIndicatorDefinitionRange();
if (StringUtils.isNotBlank(indicatorDefinitionRange)) {
String[] indicatorDefinitionCodes = StringUtils.split(indicatorDefinitionRange, ",");
List<String> codeList = Arrays.asList(indicatorDefinitionCodes);
AtomicInteger idx = new AtomicInteger();
Map<String, Integer> orderMap = new HashMap<>();
codeList.forEach(key -> {
orderMap.put(key, idx.getAndIncrement());
});
//先根据前端传递的String类型逗号隔开code顺序排序,再根据name属性排序
List<Indicator> indicators = indicatorDefinitionService.findAllByCodeIn(codeList)
.stream()
.sorted(Comparator.comparing((Indicator o) -> orderMap.get(o.getCode())).thenComparing(Indicator::getName))
.collect(Collectors.toList());
response.setIndicatorDefinitionRange(indicators);
}
因篇幅问题不能全部显示,请点此查看更多更全内容