package com.bizmatics.service.impl;
import com.bizmatics.common.mvc.base.AbstractCrudService;
import com.bizmatics.model.Device;
import com.bizmatics.model.DeviceList;
import com.bizmatics.model.TemplateData;
import com.bizmatics.persistence.mapper.DeviceMapper;
import com.bizmatics.service.DeviceService;
import com.bizmatics.service.enums.DeviceStatusCode;
import com.bizmatics.service.enums.DeviceType;
import com.bizmatics.service.util.SessionLocal;
import com.bizmatics.service.vo.DeviceCountVO;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Optional;
/**
*
* 服务实现类
*
*
* @author ya
* @since 2021-07-07
*/
@Service
public class DeviceServiceImpl extends AbstractCrudService implements DeviceService {
@Override
public DeviceCountVO selectDeviceCount(Date startTime, Date endTime) {
// Integer userId = UserUtil.getUserId();
Integer userId = SessionLocal.getUserId();
DeviceCountVO deviceCountVo = new DeviceCountVO();
deviceCountVo.setNormalCount(baseMapper
.selectCount(userId,null,DeviceStatusCode.NORMAL.getValue(),startTime,endTime,null));
deviceCountVo.setOffLineCount(baseMapper
.selectCount(userId,null,DeviceStatusCode.OFFLINE.getValue(),startTime,endTime,null));
deviceCountVo.setDeviceCount(baseMapper
.selectCount(userId,null,DeviceStatusCode.DEVICE.getValue(),startTime,endTime,null));
deviceCountVo.setFaultCount(baseMapper
.selectCount(userId,null,DeviceStatusCode.FAULT.getValue(),startTime,endTime,null));
deviceCountVo.setCount(baseMapper
.selectCount(userId,null,null,startTime,endTime,null));
return deviceCountVo;
}
@Override
public DeviceCountVO selectDeviceCountByType(Integer site) {
DeviceCountVO deviceCountVo = new DeviceCountVO();
// Integer userId = UserUtil.getUserId();
Integer userId = SessionLocal.getUserId();
int oneEightThreeEp = baseMapper.selectCount(userId, site, null, null, null, DeviceType.ONE_EIGHT_THREE_EP.getValue());
int oneSevenOneEp = baseMapper.selectCount(userId, site,null , null, null, DeviceType.ONE_SEVEN_ONE_EP.getValue());
int oneSevenThreeEp = baseMapper.selectCount(userId, site, null, null, null, DeviceType.ONE_SEVEN_THREE_EP.getValue());
int video = baseMapper.selectCount(userId, site, null, null, null, DeviceType.VODEO_MONITROING.getValue());
deviceCountVo.setEpCount(oneEightThreeEp+oneSevenOneEp+oneSevenThreeEp);
deviceCountVo.setVideoCount(video);
return deviceCountVo;
}
/**
* 汇总
* @param list
* @param deviceStatus
* @param type
* @return
*/
public Long getCount(List list, Integer deviceStatus, String type){
return list.stream()
.filter(device -> Optional.ofNullable(deviceStatus).map(ds -> ds.equals(device.getDeviceStatus())).orElse(true))
.filter(device -> Optional.ofNullable(type).map(ds -> ds.equals(device.getDeviceType())).orElse(true))
.count();
}
public List DeviceList(String siteId){
List DeviceList = null;
DeviceList = baseMapper.DeviceList(Integer.parseInt(siteId));
return DeviceList;
}
}