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