From e5ce5078d4a368296fac45688c179312fdc537c0 Mon Sep 17 00:00:00 2001 From: liu Date: Fri, 5 Jan 2024 14:12:48 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BE=85=E5=8A=A9=E6=A3=80=E6=9F=A5=E9=A1=B9?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/AncillaryItemManageController.java | 34 +++++++- .../service/AncillaryItemManageService.java | 11 +++ .../impl/AncillaryItemManageServiceImpl.java | 85 +++++++++++++++++++ 3 files changed, 127 insertions(+), 3 deletions(-) diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java index 3e9a651d..f6db2f2c 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java @@ -1,16 +1,18 @@ package com.supervision.manage.controller.config; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.supervision.manage.service.AncillaryItemManageService; +import com.supervision.model.ConfigAncillaryItem; import com.supervision.vo.ask.AncillaryItemReqVo; import com.supervision.vo.ask.ConfigAncillaryItemResVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; @Api(tags = "辅助检查项管理") @@ -20,9 +22,35 @@ import java.util.List; public class AncillaryItemManageController { private final AncillaryItemManageService ancillaryItemManageService; + @ApiOperation("查询辅助检查项目列表") @GetMapping("queryAncillaryItemList") public List queryAncillaryItemList(AncillaryItemReqVo ancillaryItemReqVo) { return ancillaryItemManageService.queryAncillaryItemList(ancillaryItemReqVo); } + + @ApiOperation("分页查询辅助检查") + @GetMapping("queryAncillaryPage") + public IPage queryAncillaryPage(String name, String type, Integer pageNum, Integer pageSize) { + return ancillaryItemManageService.queryAncillaryPage(name, type, pageNum, pageSize); + } + + @ApiOperation("保存辅助检查项") + @PostMapping("saveAncillaryItem") + public void saveAncillaryItem(@RequestBody ConfigAncillaryItem configAncillaryItem) { + ancillaryItemManageService.saveAncillaryItem(configAncillaryItem); + } + + @ApiOperation("修改辅助检查项") + @PostMapping("modifyAncillaryItem") + public void modifyAncillaryItem(@RequestBody ConfigAncillaryItem configAncillaryItem) { + ancillaryItemManageService.modifyAncillaryItem(configAncillaryItem); + } + + @ApiOperation("删除辅助检查项") + @GetMapping("deleteAncillaryItem") + public void deleteAncillaryItem(String id){ + ancillaryItemManageService.deleteAncillaryItem(id); + } + } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/AncillaryItemManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/AncillaryItemManageService.java index 9c27aa65..1bfe011d 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/AncillaryItemManageService.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/AncillaryItemManageService.java @@ -1,11 +1,22 @@ package com.supervision.manage.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.supervision.model.ConfigAncillaryItem; import com.supervision.vo.ask.AncillaryItemReqVo; import com.supervision.vo.ask.ConfigAncillaryItemResVO; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; public interface AncillaryItemManageService { List queryAncillaryItemList(AncillaryItemReqVo ancillaryItemReqVo); + + IPage queryAncillaryPage(String name, String type, Integer pageNum, Integer pageSize); + + void saveAncillaryItem(ConfigAncillaryItem configAncillaryItem); + + void modifyAncillaryItem(ConfigAncillaryItem configAncillaryItem); + + void deleteAncillaryItem(String id); } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AncillaryItemManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AncillaryItemManageServiceImpl.java index 2ac56a7f..8dfda5c8 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AncillaryItemManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AncillaryItemManageServiceImpl.java @@ -1,9 +1,16 @@ package com.supervision.manage.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.supervision.exception.BusinessException; import com.supervision.manage.service.AncillaryItemManageService; +import com.supervision.model.CommonDic; +import com.supervision.model.ConfigAncillaryItem; import com.supervision.model.DiseaseAncillary; +import com.supervision.service.CommonDicService; import com.supervision.service.ConfigAncillaryItemService; import com.supervision.service.DiseaseAncillaryService; import com.supervision.vo.ask.AncillaryItemReqVo; @@ -15,15 +22,93 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; +import static cn.hutool.core.util.NumberUtil.add; +import static cn.hutool.core.util.NumberUtil.isValid; + @Service @RequiredArgsConstructor public class AncillaryItemManageServiceImpl implements AncillaryItemManageService { private final ConfigAncillaryItemService configAncillaryItemService; + + private final CommonDicService commonDicService; + + private final DiseaseAncillaryService diseaseAncillaryService; + @Override public List queryAncillaryItemList(AncillaryItemReqVo ancillaryItemReqVo) { return configAncillaryItemService.queryAncillaryItemList(ancillaryItemReqVo); } + + @Override + public IPage queryAncillaryPage(String name, String type, Integer pageNum, Integer pageSize) { + return configAncillaryItemService.lambdaQuery().like(StrUtil.isNotBlank(name), ConfigAncillaryItem::getItemName, name) + .eq(StrUtil.isNotBlank(type), ConfigAncillaryItem::getType, type) + .orderByAsc(ConfigAncillaryItem::getItemPriority) + .orderByDesc(ConfigAncillaryItem::getUpdateTime) + .page(new Page<>(pageNum, pageSize)); + } + + + @Override + public void saveAncillaryItem(ConfigAncillaryItem configAncillaryItem) { + Assert.notBlank(configAncillaryItem.getType(), () -> new BusinessException("类型不能为空")); + Assert.notBlank(configAncillaryItem.getItemName(), () -> new BusinessException("中文名不能为空")); + Assert.notBlank(configAncillaryItem.getItemNameEn(), () -> new BusinessException("英文名不能为空")); + if (0 > configAncillaryItemService.lambdaQuery().eq(ConfigAncillaryItem::getType, configAncillaryItem.getType()) + .eq(ConfigAncillaryItem::getItemName, configAncillaryItem.getItemName()).count()) { + throw new BusinessException("中文名已存在,请重新输入"); + } + if (0 > configAncillaryItemService.lambdaQuery().eq(ConfigAncillaryItem::getType, configAncillaryItem.getType()) + .eq(ConfigAncillaryItem::getItemName, configAncillaryItem.getItemNameEn()).count()) { + throw new BusinessException("英文名名已存在,请重新输入"); + } + CommonDic one = commonDicService.lambdaQuery().eq(CommonDic::getNameZh, configAncillaryItem.getItemName()) + .eq(CommonDic::getGroupCode, "ANCILLARY_ITEM_PRIORITY").last("limit 1").one(); + Assert.notNull(one, () -> new BusinessException("检查项类型不正确")); + configAncillaryItem.setTypePriority(Integer.valueOf(one.getCode())); + configAncillaryItemService.save(configAncillaryItem); + } + + @Override + public void modifyAncillaryItem(ConfigAncillaryItem configAncillaryItem) { + Assert.notBlank(configAncillaryItem.getId(), () -> new BusinessException("ID不能为空")); + Assert.notBlank(configAncillaryItem.getType(), () -> new BusinessException("类型不能为空")); + Assert.notBlank(configAncillaryItem.getItemName(), () -> new BusinessException("中文名不能为空")); + Assert.notBlank(configAncillaryItem.getItemNameEn(), () -> new BusinessException("英文名不能为空")); + // 首先找到原先的 + ConfigAncillaryItem old = Optional.ofNullable(configAncillaryItemService.getById(configAncillaryItem.getId())).orElseThrow(() -> new BusinessException("未找到数据")); + + if (0 > configAncillaryItemService.lambdaQuery() + .ne(ConfigAncillaryItem::getId, configAncillaryItem.getId()) + .eq(ConfigAncillaryItem::getType, configAncillaryItem.getType()) + .eq(ConfigAncillaryItem::getItemName, configAncillaryItem.getItemName()).count()) { + throw new BusinessException("中文名已存在,请重新输入"); + } + if (0 > configAncillaryItemService.lambdaQuery() + .ne(ConfigAncillaryItem::getId, configAncillaryItem.getId()) + .eq(ConfigAncillaryItem::getType, configAncillaryItem.getType()) + .eq(ConfigAncillaryItem::getItemName, configAncillaryItem.getItemNameEn()).count()) { + throw new BusinessException("英文名名已存在,请重新输入"); + } + if (!StrUtil.equals(configAncillaryItem.getType(), old.getType())) { + CommonDic one = commonDicService.lambdaQuery().eq(CommonDic::getNameZh, configAncillaryItem.getItemName()) + .eq(CommonDic::getGroupCode, "ANCILLARY_ITEM_PRIORITY").last("limit 1").one(); + Assert.notNull(one, () -> new BusinessException("检查项类型不正确")); + configAncillaryItem.setTypePriority(Integer.valueOf(one.getCode())); + } + configAncillaryItemService.saveOrUpdate(configAncillaryItem); + } + + @Override + public void deleteAncillaryItem(String id) { + // 首先检查辅助检查项是否被使用 + if (0 > diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getItemId, id).count()){ + throw new BusinessException("辅助检查项已被使用,无法删除"); + } + configAncillaryItemService.removeById(id); + } }