Quellcode durchsuchen

运行记录1229-运行记录保存RY生产日报

yuanchao vor 1 Tag
Ursprung
Commit
9360a4fd1a

+ 18 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotopeationfill/IotOpeationFillController.java

@@ -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())