diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java index 3b72309c60..7d66eac976 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java @@ -23,6 +23,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import cn.hutool.core.collection.CollectionUtil; + import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.*; @@ -100,8 +102,10 @@ public class DataSetTableFieldController { @ApiOperation("多字段值枚举") @PostMapping("linkMultFieldValues") - public List linkMultFieldValues(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception { - HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + public List linkMultFieldValues(@RequestBody MultFieldValuesRequest multFieldValuesRequest) + throws Exception { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) + .getRequest(); String linkToken = request.getHeader(F2CLinkFilter.LINK_TOKEN_KEY); DecodedJWT jwt = JWT.decode(linkToken); Long userId = jwt.getClaim("userId").asLong(); @@ -114,18 +118,21 @@ public class DataSetTableFieldController { public List multFieldValues(@RequestBody MultFieldValuesRequest multFieldValuesRequest) throws Exception { List results = new ArrayList<>(); for (String fieldId : multFieldValuesRequest.getFieldIds()) { - results.addAll(dataSetFieldService.fieldValues(fieldId, multFieldValuesRequest.getUserId())); + List fieldValues = dataSetFieldService.fieldValues(fieldId, multFieldValuesRequest.getUserId()); + if (CollectionUtil.isNotEmpty(fieldValues)) { + results.addAll(fieldValues); + } + } ArrayList list = results.stream().collect( Collectors.collectingAndThen( Collectors.toCollection( () -> new TreeSet<>(Comparator.comparing(t -> { - if (ObjectUtils.isEmpty(t)) return ""; + if (ObjectUtils.isEmpty(t)) + return ""; return t.toString(); - })) - ), ArrayList::new - ) - ); + }))), + ArrayList::new)); return list; } }