|
|
@@ -400,6 +400,24 @@ public class IotOpeationFillController {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ // 2. 使用Stream.allMatch()判断所有元素是否满足两个条件(同时满足)
|
|
|
+ boolean allMatch = allFillData.stream()
|
|
|
+ .allMatch(vo -> {
|
|
|
+ // 条件1:isSum == 0(处理包装类型null的情况,避免空指针)
|
|
|
+ boolean isSumEquals0 = Objects.nonNull(vo.getIsSum()) && vo.getIsSum().equals(0);
|
|
|
+ // 条件2:deviceCode 是空串(包含null和""两种情况)
|
|
|
+ // 方式A:使用StringUtils.isEmpty(推荐,简洁)
|
|
|
+ boolean deviceCodeIsEmpty = StringUtils.isEmpty(vo.getDeviceCode());
|
|
|
+ // 方式B:手动双重判断(不依赖第三方工具)
|
|
|
+ // boolean deviceCodeIsEmpty = vo.getDeviceCode() == null || vo.getDeviceCode().trim().isEmpty();
|
|
|
+
|
|
|
+ // 两个条件必须同时满足(逻辑与 &&)
|
|
|
+ return isSumEquals0 && deviceCodeIsEmpty;
|
|
|
+ });
|
|
|
+ if(allMatch){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
// 1. 合并过滤逻辑:一次性过滤出累计数据,按sumId分组(避免两次流式过滤)
|
|
|
Map<Long, List<IotOpeationFillSaveReqVO>> sumDataGroup = allFillData.stream()
|
|
|
.filter(fill -> 1 == fill.getIsSum())
|