From a382fedba62fa46b3d73c2e988fa6908412a99c9 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 27 三月 2025 14:44:47 +0800
Subject: [PATCH] bug修改

---
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java
index d5327f9..d3a84e4 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java
@@ -5,11 +5,14 @@
 import com.sinata.common.entity.PageDTO;
 import com.sinata.common.exception.ServiceException;
 import com.sinata.common.utils.BeanUtils;
+import com.sinata.common.utils.CollUtils;
 import com.sinata.common.utils.StringUtils;
 import com.sinata.system.domain.MwTransitRoute;
 import com.sinata.system.domain.MwTransitRouteCar;
 import com.sinata.system.domain.MwTransitRoutePoints;
+import com.sinata.system.domain.SysDepartment;
 import com.sinata.system.domain.dto.MwTransitRouteDTO;
+import com.sinata.system.domain.dto.MwTransitRoutePointsDTO;
 import com.sinata.system.domain.query.MwTransitRouteQuery;
 import com.sinata.system.domain.vo.MwTransitRouteVO;
 import com.sinata.system.mapper.MwTransitRouteMapper;
@@ -83,6 +86,8 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void add(MwTransitRouteDTO dto) {
+        //校验医院是否有关联线路
+        validateHospitalUnique(dto);
         MwTransitRoute mwTransitRoute = BeanUtils.copyBean(dto, MwTransitRoute.class);
         mwTransitRoute.setHospitalQuantity(dto.getHostpitalList().size());
         save(mwTransitRoute);
@@ -100,6 +105,19 @@
         mwTransitRouteCarService.saveBatch(mwTransitRouteCars);
     }
 
+    private void validateHospitalUnique(MwTransitRouteDTO dto) {
+        //医院id列表
+        List<Long> departmentIdList = dto.getHostpitalList().stream().map(MwTransitRoutePointsDTO::getDepartmentId).collect(Collectors.toList());
+        List<MwTransitRoutePoints> list = mwTransitRoutePointsService.lambdaQuery()
+                .in(MwTransitRoutePoints::getDepartmentId, departmentIdList)
+                .ne(Objects.nonNull(dto.getId()), MwTransitRoutePoints::getRouteId, dto.getId())
+                .list();
+        if (CollUtils.isNotEmpty(list)) {
+            SysDepartment department = sysDepartmentService.getById(list.get(0).getDepartmentId());
+            throw new ServiceException(department.getDepartmentName() + "已关联转运线路!");
+        }
+    }
+
     /**
      * 编辑
      *
@@ -112,6 +130,7 @@
         if (Objects.isNull(dto.getId())) {
             throw new ServiceException("线路id不能为空");
         }
+        validateHospitalUnique(dto);
         MwTransitRoute mwTransitRoute = BeanUtils.copyBean(dto, MwTransitRoute.class);
         mwTransitRoute.setHospitalQuantity(dto.getHostpitalList().size());
         updateById(mwTransitRoute);

--
Gitblit v1.7.1