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<MwDisposalUnitMapper, MwDisposalUnit> implements IMwDisposalUnitService {
|
|
@Autowired
|
private ISysDepartmentService sysDepartmentService;
|
|
@Override
|
public IPage<MwDisposalUnitVo> queryPageList(MwDisposalUnitSeacherDto dto) {
|
// 设置默认分页参数
|
if (dto.getPageNo() == null) {
|
dto.setPageNo(1);
|
}
|
if (dto.getPageSize() == null) {
|
dto.setPageSize(10);
|
}
|
|
Page<MwDisposalUnitVo> page = new Page<>(dto.getPageNo(), dto.getPageSize());
|
List<Integer> hospitalIdList = sysDepartmentService.getSearchHospitalIdList(dto.getHospitalId());
|
if (CollectionUtils.isEmpty(hospitalIdList)) {
|
return page;
|
}
|
dto.setHospitalIdList(hospitalIdList);
|
IPage<MwDisposalUnitVo> result = baseMapper.queryPageList(page, dto);
|
return result;
|
}
|
|
@Override
|
public List<MwDisposalUnitVo> queryList(MwDisposalUnitSeacherDto dto) {
|
List<Integer> hospitalIdList = sysDepartmentService.getSearchHospitalIdList(dto.getHospitalId());
|
if (CollectionUtils.isEmpty(hospitalIdList)) {
|
return new ArrayList<>();
|
}
|
dto.setHospitalIdList(hospitalIdList);
|
List<MwDisposalUnitVo> 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<Integer> userHospitalIds = sysDepartmentService.getSearchHospitalIdList(hospitalId);
|
|
return userHospitalIds.contains(hospitalId);
|
}
|
}
|