From ae7f04be9321ddbe17c46fae8ab05d34e7493f9f Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 19 二月 2025 13:40:06 +0800
Subject: [PATCH] 管理后台bug修改

---
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java
index 88910fb..f80de7c 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java
@@ -19,8 +19,11 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -80,18 +83,20 @@
             mwWarningConfigVO = BeanUtil.copyProperties(mwWarningConfig, MwWarningConfigVO.class);
             List<MwWarningConfigItem> mwWarningConfigItems = mwWarningConfigItemService.lambdaQuery().eq(MwWarningConfigItem::getConfigId, mwWarningConfig.getId()).list();
             if (type.equals(WarningConfigTypeEnum.MEDICAL_WASTE.getCode())) {
-                mwWarningConfigVO.setWarningConfigItemList(BeanUtil.copyToList(mwWarningConfigItems, MwWarningConfigItemVO.class));
-                if (CollUtils.isEmpty(mwWarningConfigItems)) {
-                    List<SysDictDataVO> sysDictDataVOS = sysDictDataService.medicalWasteTypeList();
-                    List<MwWarningConfigItemVO> res = sysDictDataVOS.stream().map(item -> {
-                        MwWarningConfigItemVO vo = new MwWarningConfigItemVO();
-                        vo.setWasteType(item.getDictCode());
-                        vo.setWasteTypeStr(item.getDictLabel());
-                        return vo;
-                    }).collect(Collectors.toList());
-                    mwWarningConfigVO.setWarningConfigItemList(res);
+                List<SysDictDataVO> sysDictDataVOS = sysDictDataService.medicalWasteTypeList();
+                Map<Long, MwWarningConfigItemVO> configItemMap = new HashMap<>();
+                if (CollUtils.isNotEmpty(mwWarningConfigItems)) {
+                    List<MwWarningConfigItemVO> mwWarningConfigItemVOS = BeanUtil.copyToList(mwWarningConfigItems, MwWarningConfigItemVO.class);
+                    configItemMap = mwWarningConfigItemVOS.stream().collect(Collectors.toMap(MwWarningConfigItemVO::getWasteType, Function.identity()));
                 }
-
+                Map<Long, MwWarningConfigItemVO> finalConfigItemMap = configItemMap;
+                List<MwWarningConfigItemVO> res = sysDictDataVOS.stream().map(item -> {
+                    MwWarningConfigItemVO config = finalConfigItemMap.getOrDefault(item.getDictCode(), new MwWarningConfigItemVO());
+                    config.setWasteType(item.getDictCode());
+                    config.setWasteTypeStr(item.getDictLabel());
+                    return config;
+                }).collect(Collectors.toList());
+                mwWarningConfigVO.setWarningConfigItemList(res);
             }
             if (type.equals(WarningConfigTypeEnum.STAGING_ROOM_CAPACITY.getCode())) {
                 mwWarningConfigVO.setWarningConfigItemList(BeanUtil.copyToList(mwWarningConfigItems, MwWarningConfigItemVO.class));

--
Gitblit v1.7.1