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; } }