From e80e11f4ec01375621b123c68d0afebb6b507928 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Fri, 8 May 2026 15:42:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=81=E8=AE=B8=E4=B8=8D=E5=8A=A0=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/QueryCenterServiceImpl.java | 6 ++- .../impl/QuerySavedHeaderServiceImpl.java | 44 ++++++++++++++++--- .../sift/utils/QueryUserSettingUtils.java | 10 +++-- 3 files changed, 47 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/sift/service/impl/QueryCenterServiceImpl.java b/src/main/java/com/xujie/sys/modules/sift/service/impl/QueryCenterServiceImpl.java index 2e5504b..968d1cb 100644 --- a/src/main/java/com/xujie/sys/modules/sift/service/impl/QueryCenterServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/sift/service/impl/QueryCenterServiceImpl.java @@ -207,9 +207,11 @@ public class QueryCenterServiceImpl implements QueryCenterService { throw new RuntimeException("方案名称不能为空"); } List detailList = querySavedVo.getQuerySavedDetailList(); - if (detailList == null || detailList.isEmpty()) { - throw new RuntimeException("请至少选择一个查询字段"); + if (detailList == null) { + detailList = new ArrayList<>(); } + detailList = detailList.stream().filter(Objects::nonNull).collect(Collectors.toList()); + querySavedVo.setQuerySavedDetailList(detailList); int idx = 1; for (QuerySavedDetail item : detailList) { item.setMenuId(querySavedVo.getMenuId()); diff --git a/src/main/java/com/xujie/sys/modules/sift/service/impl/QuerySavedHeaderServiceImpl.java b/src/main/java/com/xujie/sys/modules/sift/service/impl/QuerySavedHeaderServiceImpl.java index 25e276f..8a799b5 100644 --- a/src/main/java/com/xujie/sys/modules/sift/service/impl/QuerySavedHeaderServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/sift/service/impl/QuerySavedHeaderServiceImpl.java @@ -8,11 +8,12 @@ import com.xujie.sys.modules.sift.service.QuerySavedDetailService; import com.xujie.sys.modules.sift.service.QuerySavedHeaderService; import com.xujie.sys.modules.sift.vo.QuerySavedVo; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -67,12 +68,25 @@ public class QuerySavedHeaderServiceImpl extends ServiceImpl list = querySavedHeader.getQuerySavedDetailList().stream().peek(querySavedDetail -> { - querySavedDetail.setItemNo(querySavedHeader.getItemNo()); - querySavedDetail.setItemDesc(querySavedHeader.getItemDesc()); - }).collect(Collectors.toList()); + List sourceList = querySavedHeader.getQuerySavedDetailList(); + if (sourceList == null) { + sourceList = new ArrayList<>(); + } + List list = sourceList + .stream() + .filter(Objects::nonNull) + .peek(querySavedDetail -> { + querySavedDetail.setMenuId(querySavedHeader.getMenuId()); + querySavedDetail.setUserId(querySavedHeader.getUserId()); + querySavedDetail.setDtsName(StringUtils.isNotBlank(querySavedDetail.getDtsName()) ? querySavedDetail.getDtsName() : "ADOQResult"); + querySavedDetail.setItemNo(querySavedHeader.getItemNo()); + querySavedDetail.setItemDesc(querySavedHeader.getItemDesc()); + }) + .collect(Collectors.toList()); // 3、新增Detail - detailService.saveBatch(list); + if (!list.isEmpty()) { + detailService.saveBatch(list); + } } @Override @@ -125,6 +139,22 @@ public class QuerySavedHeaderServiceImpl extends ServiceImpl sourceList = querySavedVo.getQuerySavedDetailList(); + if (sourceList == null || sourceList.isEmpty()) { + return; + } + List list = sourceList.stream() + .filter(Objects::nonNull) + .peek(querySavedDetail -> { + querySavedDetail.setMenuId(querySavedVo.getMenuId()); + querySavedDetail.setUserId(querySavedVo.getUserId()); + querySavedDetail.setItemNo(querySavedVo.getItemNo()); + querySavedDetail.setItemDesc(querySavedVo.getItemDesc()); + querySavedDetail.setDtsName(StringUtils.isNotBlank(querySavedDetail.getDtsName()) ? querySavedDetail.getDtsName() : "ADOQResult"); + }) + .collect(Collectors.toList()); + if (!list.isEmpty()) { + detailService.saveBatch(list); + } } } diff --git a/src/main/java/com/xujie/sys/modules/sift/utils/QueryUserSettingUtils.java b/src/main/java/com/xujie/sys/modules/sift/utils/QueryUserSettingUtils.java index 35df0b9..e4866ef 100644 --- a/src/main/java/com/xujie/sys/modules/sift/utils/QueryUserSettingUtils.java +++ b/src/main/java/com/xujie/sys/modules/sift/utils/QueryUserSettingUtils.java @@ -30,8 +30,8 @@ public class QueryUserSettingUtils { throw new RuntimeException("查询参数为空"); } List list = querySavedVo.getQuerySavedDetailList(); - if (list.isEmpty()){ - throw new RuntimeException("参数列表为空"); + if (list == null){ + throw new RuntimeException("查询参数为空"); } // 2、判断是否存在上一次修改 QuerySavedHeader querySavedHeader = querySavedHeaderService.lambdaQuery() @@ -56,7 +56,7 @@ public class QueryUserSettingUtils { } // 2-2、新增 QuerySavedHeader finalQuerySavedHeader = querySavedHeader; - List collect = list.stream().map(queryUserSetting -> { + List collect = list.stream().filter(Objects::nonNull).map(queryUserSetting -> { QuerySavedDetail detail = new QuerySavedDetail(); detail.setMenuId(finalQuerySavedHeader.getMenuId()); detail.setUserId(finalQuerySavedHeader.getUserId()); @@ -75,6 +75,8 @@ public class QueryUserSettingUtils { detail.setITagId(queryUserSetting.getITagId()); return detail; }).collect(Collectors.toList()); - querySavedDetailService.saveBatch(collect); + if (!collect.isEmpty()) { + querySavedDetailService.saveBatch(collect); + } } }