From 2dc478231fd09a88a4d86d44388ae807aca08bc5 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 01 一月 2025 10:14:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java |   36 +++++++++++++++++++++++++++++-------
 1 files changed, 29 insertions(+), 7 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 063af5a..88910fb 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
@@ -9,17 +9,19 @@
 import com.sinata.system.domain.dto.MwWarningConfigDTO;
 import com.sinata.system.domain.vo.MwWarningConfigItemVO;
 import com.sinata.system.domain.vo.MwWarningConfigVO;
+import com.sinata.system.domain.vo.SysDictDataVO;
 import com.sinata.system.enums.WarningConfigTypeEnum;
 import com.sinata.system.mapper.MwWarningConfigMapper;
+import com.sinata.system.service.ISysDictDataService;
 import com.sinata.system.service.MwWarningConfigItemService;
 import com.sinata.system.service.MwWarningConfigService;
 import lombok.RequiredArgsConstructor;
-import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -33,7 +35,7 @@
 @RequiredArgsConstructor
 public class MwWarningConfigServiceImpl extends ServiceImpl<MwWarningConfigMapper, MwWarningConfig> implements MwWarningConfigService {
     private final MwWarningConfigItemService mwWarningConfigItemService;
-
+    private final ISysDictDataService sysDictDataService;
     /**
      * 保存设置
      *
@@ -43,8 +45,11 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void saveConfig(MwWarningConfigDTO dto) {
-        MwWarningConfig mwWarningConfig = lambdaQuery().eq(MwWarningConfig::getType, dto.getType()).last("limit 1").oneOpt().orElse(new MwWarningConfig());
-        BeanUtils.copyProperties(dto, mwWarningConfig);
+        MwWarningConfig mwWarningConfig = BeanUtil.copyProperties(dto, MwWarningConfig.class);
+        MwWarningConfig config = lambdaQuery().eq(MwWarningConfig::getType, dto.getType()).last("limit 1").one();
+        if (Objects.nonNull(config)) {
+            mwWarningConfig.setId(config.getId());
+        }
         saveOrUpdate(mwWarningConfig);
         if (dto.getType().equals(WarningConfigTypeEnum.MEDICAL_WASTE.getCode()) || dto.getType().equals(WarningConfigTypeEnum.STAGING_ROOM_CAPACITY.getCode())) {
             if (CollUtils.isEmpty(dto.getWarningConfigItemList())) {
@@ -53,7 +58,10 @@
             //清空配置项
             mwWarningConfigItemService.lambdaUpdate().eq(MwWarningConfigItem::getConfigId, mwWarningConfig.getId()).remove();
             List<MwWarningConfigItem> mwWarningConfigItems = BeanUtil.copyToList(dto.getWarningConfigItemList(), MwWarningConfigItem.class);
-            mwWarningConfigItems.forEach(item -> item.setConfigId(mwWarningConfig.getId()));
+            mwWarningConfigItems.forEach(item -> {
+                item.setConfigId(mwWarningConfig.getId());
+                item.setId(null);
+            });
             mwWarningConfigItemService.saveBatch(mwWarningConfigItems);
         }
     }
@@ -70,8 +78,22 @@
         MwWarningConfigVO mwWarningConfigVO = null;
         if (Objects.nonNull(mwWarningConfig)) {
             mwWarningConfigVO = BeanUtil.copyProperties(mwWarningConfig, MwWarningConfigVO.class);
-            if (type.equals(WarningConfigTypeEnum.MEDICAL_WASTE.getCode()) || type.equals(WarningConfigTypeEnum.STAGING_ROOM_CAPACITY.getCode())) {
-                List<MwWarningConfigItem> mwWarningConfigItems = mwWarningConfigItemService.lambdaQuery().eq(MwWarningConfigItem::getConfigId, mwWarningConfig.getId()).list();
+            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);
+                }
+
+            }
+            if (type.equals(WarningConfigTypeEnum.STAGING_ROOM_CAPACITY.getCode())) {
                 mwWarningConfigVO.setWarningConfigItemList(BeanUtil.copyToList(mwWarningConfigItems, MwWarningConfigItemVO.class));
             }
         }

--
Gitblit v1.7.1