| | |
| | | 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; |
| | |
| | | @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); |
| | |
| | | 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() + "已关联转运线路!"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 编辑 |
| | | * |
| | |
| | | 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); |
| | |
| | | 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; |
| | | } |
| | | } |