package cn.besteam.modules.medical.service.impl;
|
|
import cn.besteam.common.constant.DepartmentEnum;
|
import cn.besteam.modules.medical.dto.MwCollectRecordOpsDTO;
|
import cn.besteam.modules.medical.entity.MwCollectionAmendantRecord;
|
import cn.besteam.modules.medical.mapper.MwCollectionAmendantRecordMapper;
|
import cn.besteam.modules.medical.service.IMwCollectionAmendantRecordService;
|
import cn.besteam.modules.medical.vo.MwCollectionAmendantRecordVO;
|
import cn.besteam.modules.shiro.authc.util.EnvUtils;
|
import cn.besteam.modules.system.entity.SysDepartment;
|
import cn.besteam.modules.system.service.ISysDepartmentService;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import org.apache.commons.collections.CollectionUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* @Description: 医废修改记录
|
* @author: besteam
|
* @date: 2022-02-14
|
* @version: V1.0
|
*/
|
@Service
|
public class MwCollectionAmendantRecordServiceImpl extends ServiceImpl<MwCollectionAmendantRecordMapper, MwCollectionAmendantRecord> implements IMwCollectionAmendantRecordService {
|
|
|
@Autowired
|
private ISysDepartmentService sysDepartmentService;
|
|
@Override
|
public IPage<MwCollectionAmendantRecordVO> queryPageCollectList(Integer pageNo, Integer pageSize, MwCollectRecordOpsDTO dto) {
|
|
Page<MwCollectionAmendantRecordVO> page = new Page<>(pageNo, pageSize);
|
List<Integer> hospitalIdList = getSearchHospitalIdList(dto.getHospitalId());
|
if (CollectionUtils.isEmpty(hospitalIdList)) {
|
return page;
|
}
|
dto.setHospitalIdList(hospitalIdList);
|
IPage<MwCollectionAmendantRecordVO> result = baseMapper.queryPageCollectList(page, dto);
|
return result;
|
}
|
|
@Override
|
public List<MwCollectionAmendantRecordVO> queryPageCollectList(MwCollectRecordOpsDTO dto) {
|
List<Integer> hospitalIdList = getSearchHospitalIdList(dto.getHospitalId());
|
if (CollectionUtils.isEmpty(hospitalIdList)) {
|
return null;
|
}
|
dto.setHospitalIdList(hospitalIdList);
|
List<MwCollectionAmendantRecordVO> list=baseMapper.queryPageCollectList(dto);
|
return list;
|
}
|
|
private List<Integer> getSearchHospitalIdList(Integer hospitalId) {
|
|
if (hospitalId == null) {
|
return sysDepartmentService.listMyHospital(EnvUtils.getUser().getId()).stream().map(SysDepartment::getId).collect(Collectors.toList());
|
} else {
|
SysDepartment sysDepartment = sysDepartmentService.getById(hospitalId);
|
if (sysDepartment == null) {
|
return new ArrayList<>();
|
}
|
List<SysDepartment> childrenList = sysDepartmentService.list(new QueryWrapper<SysDepartment>().lambda().likeRight(SysDepartment::getTreeCode, sysDepartment.getTreeCode()).eq(SysDepartment::getOrgType, DepartmentEnum.OrgTypeEnum.HOSPITAL.getType()));
|
if (CollectionUtils.isEmpty(childrenList)) {
|
return new ArrayList<>();
|
}
|
return childrenList.stream().map(SysDepartment::getId).collect(Collectors.toList());
|
}
|
}
|
}
|