From 2f3d3fb97bd4ebdc00c40a2774465c8b3487b6d1 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 02 四月 2025 17:14:27 +0800 Subject: [PATCH] bug修改 --- medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwWarningConfigServiceImpl.java | 41 ++++++++++++++++++++++++++++++++++------- 1 files changed, 34 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..f80de7c 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,22 @@ 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.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; /** * <p> @@ -33,7 +38,7 @@ @RequiredArgsConstructor public class MwWarningConfigServiceImpl extends ServiceImpl<MwWarningConfigMapper, MwWarningConfig> implements MwWarningConfigService { private final MwWarningConfigItemService mwWarningConfigItemService; - + private final ISysDictDataService sysDictDataService; /** * 保存设置 * @@ -43,8 +48,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 +61,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 +81,24 @@ 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())) { + List<SysDictDataVO> sysDictDataVOS = sysDictDataService.medicalWasteTypeList(); + Map<Long, MwWarningConfigItemVO> configItemMap = new HashMap<>(); + if (CollUtils.isNotEmpty(mwWarningConfigItems)) { + List<MwWarningConfigItemVO> mwWarningConfigItemVOS = BeanUtil.copyToList(mwWarningConfigItems, MwWarningConfigItemVO.class); + configItemMap = mwWarningConfigItemVOS.stream().collect(Collectors.toMap(MwWarningConfigItemVO::getWasteType, Function.identity())); + } + Map<Long, MwWarningConfigItemVO> finalConfigItemMap = configItemMap; + List<MwWarningConfigItemVO> res = sysDictDataVOS.stream().map(item -> { + MwWarningConfigItemVO config = finalConfigItemMap.getOrDefault(item.getDictCode(), new MwWarningConfigItemVO()); + config.setWasteType(item.getDictCode()); + config.setWasteTypeStr(item.getDictLabel()); + return config; + }).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