From ab96d801d6c5e2feea9677367c1b44c2e08b78ee Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 24 十二月 2024 19:02:21 +0800 Subject: [PATCH] 监控视频播放、短信、转运线路设置 --- medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwTransitRouteServiceImpl.java | 135 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 132 insertions(+), 3 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 adb7119..7962370 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 @@ -1,10 +1,30 @@ package com.sinata.system.service.impl; -import com.sinata.system.domain.MwTransitRoute; -import com.sinata.system.mapper.MwTransitRouteMapper; -import com.sinata.system.service.MwTransitRouteService; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.sinata.common.entity.PageDTO; +import com.sinata.common.exception.ServiceException; +import com.sinata.common.utils.BeanUtils; +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.dto.MwTransitRouteDTO; +import com.sinata.system.domain.query.MwTransitRouteQuery; +import com.sinata.system.domain.vo.MwTransitRouteVO; +import com.sinata.system.mapper.MwTransitRouteMapper; +import com.sinata.system.service.MwTransitCarService; +import com.sinata.system.service.MwTransitRouteCarService; +import com.sinata.system.service.MwTransitRoutePointsService; +import com.sinata.system.service.MwTransitRouteService; +import com.sinata.system.service.SysDepartmentService; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -15,6 +35,115 @@ * @since 2024-12-02 */ @Service +@RequiredArgsConstructor public class MwTransitRouteServiceImpl extends ServiceImpl<MwTransitRouteMapper, MwTransitRoute> implements MwTransitRouteService { + private final SysDepartmentService sysDepartmentService; + private final MwTransitCarService mwTransitCarService; + private final MwTransitRoutePointsService mwTransitRoutePointsService; + private final MwTransitRouteCarService mwTransitRouteCarService; + /** + * 分页列表 + * + * @param query + * @return + */ + @Override + public PageDTO<MwTransitRouteVO> pageList(MwTransitRouteQuery query) { + String treeCode = sysDepartmentService.getTreeCodeByDepartmentId(query.getDepartmentId()); + if (StringUtils.isBlank(treeCode)) { + return PageDTO.empty(0L, 0L); + } + Page<MwTransitRouteVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), treeCode); + return PageDTO.of(page); + } + + /** + * 详情 + * + * @param id + * @return + */ + @Override + public MwTransitRouteVO detail(Long id) { + MwTransitRouteVO vo = baseMapper.detail(id); + //关联医院 + vo.setHostpitalList(sysDepartmentService.getHospitalListByRouteId(vo.getId())); + //关联车辆列表 + vo.setCarList(mwTransitCarService.getCarListByRouteId(vo.getId())); + return vo; + } + + /** + * 新增 + * + * @param dto + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void add(MwTransitRouteDTO dto) { + MwTransitRoute mwTransitRoute = BeanUtils.copyBean(dto, MwTransitRoute.class); + mwTransitRoute.setHospitalQuantity(dto.getHostpitalList().size()); + save(mwTransitRoute); + //关联医院 + List<MwTransitRoutePoints> mwTransitRoutePoints = BeanUtils.copyToList(dto.getHostpitalList(), MwTransitRoutePoints.class); + mwTransitRoutePoints.forEach(points -> points.setRouteId(mwTransitRoute.getId())); + mwTransitRoutePointsService.saveBatch(mwTransitRoutePoints); + //关联车辆 + List<MwTransitRouteCar> mwTransitRouteCars = dto.getCarIdList().stream().map(carId -> { + MwTransitRouteCar routeCar = new MwTransitRouteCar(); + routeCar.setRouteId(mwTransitRoute.getId()); + routeCar.setCarId(carId); + return routeCar; + }).collect(Collectors.toList()); + mwTransitRouteCarService.saveBatch(mwTransitRouteCars); + } + + /** + * 编辑 + * + * @param dto + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void edit(MwTransitRouteDTO dto) { + if (Objects.isNull(dto.getId())) { + throw new ServiceException("线路id不能为空"); + } + MwTransitRoute mwTransitRoute = BeanUtils.copyBean(dto, MwTransitRoute.class); + mwTransitRoute.setHospitalQuantity(dto.getHostpitalList().size()); + updateById(mwTransitRoute); + //移除关联医院 + mwTransitRoutePointsService.lambdaUpdate().eq(MwTransitRoutePoints::getRouteId, dto.getId()).remove(); + //关联医院 + List<MwTransitRoutePoints> mwTransitRoutePoints = BeanUtils.copyToList(dto.getHostpitalList(), MwTransitRoutePoints.class); + mwTransitRoutePoints.forEach(points -> points.setRouteId(mwTransitRoute.getId())); + mwTransitRoutePointsService.saveBatch(mwTransitRoutePoints); + //移除关联车辆 + mwTransitRouteCarService.lambdaUpdate().eq(MwTransitRouteCar::getRouteId, dto.getId()).remove(); + //关联车辆 + List<MwTransitRouteCar> mwTransitRouteCars = dto.getCarIdList().stream().map(carId -> { + MwTransitRouteCar routeCar = new MwTransitRouteCar(); + routeCar.setRouteId(mwTransitRoute.getId()); + routeCar.setCarId(carId); + return routeCar; + }).collect(Collectors.toList()); + mwTransitRouteCarService.saveBatch(mwTransitRouteCars); + } + + /** + * 删除 + * + * @param id + */ + @Override + public void delete(Long id) { + //移除关联医院 + mwTransitRoutePointsService.lambdaUpdate().eq(MwTransitRoutePoints::getRouteId, id).remove(); + //移除关联车辆 + mwTransitRouteCarService.lambdaUpdate().eq(MwTransitRouteCar::getRouteId, id).remove(); + removeById(id); + } } -- Gitblit v1.7.1