From 7dff38876f582644ae95daad8ac21d4f57088d56 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期六, 28 十二月 2024 16:19:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java |   66 +++++++++++++++++++++++++++++++-
 1 files changed, 63 insertions(+), 3 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 29f2ab5..063af5a 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
@@ -1,10 +1,25 @@
 package com.sinata.system.service.impl;
 
-import com.sinata.system.domain.MwWarningConfig;
-import com.sinata.system.mapper.MwWarningConfigMapper;
-import com.sinata.system.service.MwWarningConfigService;
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sinata.common.exception.ServiceException;
+import com.sinata.common.utils.CollUtils;
+import com.sinata.system.domain.MwWarningConfig;
+import com.sinata.system.domain.MwWarningConfigItem;
+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.enums.WarningConfigTypeEnum;
+import com.sinata.system.mapper.MwWarningConfigMapper;
+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;
 
 /**
  * <p>
@@ -15,6 +30,51 @@
  * @since 2024-12-02
  */
 @Service
+@RequiredArgsConstructor
 public class MwWarningConfigServiceImpl extends ServiceImpl<MwWarningConfigMapper, MwWarningConfig> implements MwWarningConfigService {
+    private final MwWarningConfigItemService mwWarningConfigItemService;
 
+    /**
+     * 保存设置
+     *
+     * @param dto
+     * @return
+     */
+    @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);
+        saveOrUpdate(mwWarningConfig);
+        if (dto.getType().equals(WarningConfigTypeEnum.MEDICAL_WASTE.getCode()) || dto.getType().equals(WarningConfigTypeEnum.STAGING_ROOM_CAPACITY.getCode())) {
+            if (CollUtils.isEmpty(dto.getWarningConfigItemList())) {
+                throw new ServiceException("预警配置项不能为空");
+            }
+            //清空配置项
+            mwWarningConfigItemService.lambdaUpdate().eq(MwWarningConfigItem::getConfigId, mwWarningConfig.getId()).remove();
+            List<MwWarningConfigItem> mwWarningConfigItems = BeanUtil.copyToList(dto.getWarningConfigItemList(), MwWarningConfigItem.class);
+            mwWarningConfigItems.forEach(item -> item.setConfigId(mwWarningConfig.getId()));
+            mwWarningConfigItemService.saveBatch(mwWarningConfigItems);
+        }
+    }
+
+    /**
+     * 根据类型获取配置信息
+     *
+     * @param type
+     * @return
+     */
+    @Override
+    public MwWarningConfigVO getByType(Integer type) {
+        MwWarningConfig mwWarningConfig = lambdaQuery().eq(MwWarningConfig::getType, type).last("limit 1").one();
+        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();
+                mwWarningConfigVO.setWarningConfigItemList(BeanUtil.copyToList(mwWarningConfigItems, MwWarningConfigItemVO.class));
+            }
+        }
+        return mwWarningConfigVO;
+    }
 }

--
Gitblit v1.7.1