From 1f5ef3a86b1227f49c6840b2205174e4ab2f0f14 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 27 三月 2025 15:49:37 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/boymi/YiFeiNN

---
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 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 7962370..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);
@@ -146,4 +165,17 @@
         mwTransitRouteCarService.lambdaUpdate().eq(MwTransitRouteCar::getRouteId, id).remove();
         removeById(id);
     }
+    /**
+     * 根据医院查询路线
+     * @param departmentId
+     * @return
+     */
+    @Override
+    public MwTransitRoute queryRouteByDepartmentId(Long departmentId) {
+        MwTransitRoutePoints routePoint = mwTransitRoutePointsService.lambdaQuery().eq(MwTransitRoutePoints::getDepartmentId, departmentId).last("LIMIT 1").one();
+        if (Objects.nonNull(routePoint)) {
+            return this.getById(routePoint.getRouteId());
+        }
+        return null;
+    }
 }

--
Gitblit v1.7.1