mitao
2025-03-27 a382fedba62fa46b3d73c2e988fa6908412a99c9
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);