package cn.besteam.modules.medical.service.impl;
|
|
import cn.besteam.common.constant.DepartmentEnum;
|
import cn.besteam.modules.medical.biz.MonitorDeviceApiNewService;
|
import cn.besteam.modules.medical.entity.MwMonitorDevice;
|
import cn.besteam.modules.medical.mapper.MwMonitorDeviceMapper;
|
import cn.besteam.modules.medical.service.IMwMonitorDeviceService;
|
import cn.besteam.modules.medical.vo.MwMonitorDeviceVO;
|
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 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.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* @Description: 监控设备
|
* @author: besteam
|
* @date: 2020-07-14
|
* @version: V1.0
|
*/
|
@Service
|
public class MwMonitorDeviceServiceImpl extends ServiceImpl<MwMonitorDeviceMapper, MwMonitorDevice> implements IMwMonitorDeviceService {
|
|
@Autowired
|
private ISysDepartmentService sysDepartmentService;
|
@Autowired
|
private MonitorDeviceApiNewService monitorDeviceApiNewService;
|
|
@Override
|
public IPage<MwMonitorDeviceVO> queryPageList(Integer pageNo, Integer pageSize, Integer departmentId, String devIdno) {
|
|
Page<MwMonitorDeviceVO> pageParam = new Page<>(pageNo, pageSize);
|
//
|
SysDepartment myDepartment = sysDepartmentService.getMyDepartment(EnvUtils.getUser().getId());
|
if (myDepartment.getOrgType().equals(DepartmentEnum.OrgTypeEnum.OFFICE.getType()) || myDepartment.getOrgType().equals(DepartmentEnum.OrgTypeEnum.DEPARTMENT.getType())) {
|
return pageParam;
|
}
|
if (departmentId != null) {
|
SysDepartment sysDepartment = sysDepartmentService.getById(departmentId);
|
if (sysDepartment == null) {
|
return pageParam;
|
}
|
myDepartment = sysDepartment;
|
}
|
//获取视频服务器中的在线设备列表
|
List<String> deviceList=monitorDeviceApiNewService.getDeviceList();
|
List<SysDepartment> sysDepartmentList = sysDepartmentService.list(new QueryWrapper<SysDepartment>().lambda().likeRight(SysDepartment::getTreeCode, myDepartment.getTreeCode()));
|
if (CollectionUtils.isNotEmpty(sysDepartmentList)) {
|
IPage<MwMonitorDeviceVO> resultPage = baseMapper.queryPageList(pageParam, sysDepartmentList.stream().map(SysDepartment::getId).collect(Collectors.toList()), devIdno);
|
for (MwMonitorDeviceVO vo : resultPage.getRecords()) {
|
//设置每个设备状态
|
vo.setStateName("离线");
|
for(String deviceID:deviceList){
|
if(deviceID.equals(vo.getDevIdno())){
|
vo.setStateName("在线");
|
break;
|
}
|
}
|
vo.setDepartmentIdList(sysDepartmentService.getParentIdList(vo.getHospitalId()));
|
}
|
return resultPage;
|
}
|
return pageParam;
|
}
|
|
}
|