package cn.besteam.modules.medical.service.impl; import cn.besteam.common.constant.DepartmentEnum; import cn.besteam.modules.medical.dto.MwDisposalUnitSeacherDto; import cn.besteam.modules.medical.entity.MwDisposalUnit; import cn.besteam.modules.medical.mapper.MwDisposalUnitMapper; import cn.besteam.modules.medical.service.IMwDisposalUnitService; import cn.besteam.modules.medical.vo.MwDisposalUnitVo; import cn.besteam.modules.shiro.authc.util.EnvUtils; import cn.besteam.modules.system.entity.SysDepartment; import cn.besteam.modules.system.service.ISysDepartmentService; import cn.besteam.modules.system.util.MybatisParameterUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * 处置单位管理Service实现类 * * @author besteam * @date 2023-07-29 */ @Service public class MwDisposalUnitServiceImpl extends ServiceImpl implements IMwDisposalUnitService { @Autowired private ISysDepartmentService sysDepartmentService; @Override public IPage queryPageList(MwDisposalUnitSeacherDto dto) { // 设置默认分页参数 if (dto.getPageNo() == null) { dto.setPageNo(1); } if (dto.getPageSize() == null) { dto.setPageSize(10); } Page page = new Page<>(dto.getPageNo(), dto.getPageSize()); List hospitalIdList = sysDepartmentService.getSearchHospitalIdList(dto.getHospitalId()); if (CollectionUtils.isEmpty(hospitalIdList)) { return page; } dto.setHospitalIdList(hospitalIdList); IPage result = baseMapper.queryPageList(page, dto); return result; } @Override public List queryList(MwDisposalUnitSeacherDto dto) { List hospitalIdList = sysDepartmentService.getSearchHospitalIdList(dto.getHospitalId()); if (CollectionUtils.isEmpty(hospitalIdList)) { return new ArrayList<>(); } dto.setHospitalIdList(hospitalIdList); List result = baseMapper.queryList(dto); return result; } @Override public boolean add(MwDisposalUnit mwDisposalUnit) { // 验证医院权限 if (!validateHospitalPermission(mwDisposalUnit.getHospitalId())) { return false; } // 设置默认值 if (mwDisposalUnit.getStatus() == null) { mwDisposalUnit.setStatus(1); // 默认启用 } mwDisposalUnit.setDelFlag(0); // 未删除 mwDisposalUnit.setCreateBy(EnvUtils.getUser().getName()); return save(mwDisposalUnit); } @Override public boolean update(MwDisposalUnit mwDisposalUnit) { // 验证医院权限 if (!validateHospitalPermission(mwDisposalUnit.getHospitalId())) { return false; } mwDisposalUnit.setUpdateBy(EnvUtils.getUser().getName()); return updateById(mwDisposalUnit); } @Override public boolean delete(Integer id) { MwDisposalUnit disposalUnit = getById(id); if (disposalUnit == null) { return false; } // 验证医院权限 if (!validateHospitalPermission(disposalUnit.getHospitalId())) { return false; } // 逻辑删除 disposalUnit.setDelFlag(1); return updateById(disposalUnit); } /** * 验证医院权限 */ private boolean validateHospitalPermission(Integer hospitalId) { if (hospitalId == null) { return false; } List userHospitalIds = sysDepartmentService.getSearchHospitalIdList(hospitalId); return userHospitalIds.contains(hospitalId); } }