| | |
| | | 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> |
| | |
| | | * @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; |
| | | } |
| | | } |