From d0542b6f8b7ead9cea467f12d989eaabb8ec6e60 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 07 一月 2025 17:06:57 +0800 Subject: [PATCH] 添加车辆运输路线记录 --- medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java | 88 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 85 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..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 @@ -1,10 +1,27 @@ 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.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.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -15,6 +32,71 @@ * @since 2024-12-02 */ @Service +@RequiredArgsConstructor public class MwWarningConfigServiceImpl extends ServiceImpl<MwWarningConfigMapper, MwWarningConfig> implements MwWarningConfigService { + private final MwWarningConfigItemService mwWarningConfigItemService; + private final ISysDictDataService sysDictDataService; + /** + * 保存设置 + * + * @param dto + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void saveConfig(MwWarningConfigDTO dto) { + 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())) { + 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()); + item.setId(null); + }); + 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); + 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)); + } + } + return mwWarningConfigVO; + } } -- Gitblit v1.7.1