1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package com.bizmatics.service.impl;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.bizmatics.common.core.exception.BusinessException;
- import com.bizmatics.common.core.util.BeanMapperUtils;
- import com.bizmatics.model.Site;
- import com.bizmatics.persistence.mapper.DeviceMapper;
- import com.bizmatics.persistence.mapper.SiteMapper;
- import com.bizmatics.service.DeviceService;
- import com.bizmatics.service.SiteService;
- import com.bizmatics.common.mvc.base.AbstractCrudService;
- import com.bizmatics.service.enums.DeviceStatusCode;
- import com.bizmatics.service.util.SessionLocal;
- import com.bizmatics.service.vo.DeviceCountVO;
- import com.bizmatics.service.vo.SiteVO;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Optional;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author ya
- * @since 2021-07-07
- */
- @Service
- public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> implements SiteService {
- @Autowired
- private DeviceMapper deviceMapper;
- @Override
- public DeviceCountVO selectCount() {
- Integer userId = SessionLocal.getUserId();
- DeviceCountVO deviceCountVO = new DeviceCountVO();
- deviceCountVO.setNormalCount(baseMapper.selectCount(userId,null,DeviceStatusCode.NORMAL.getValue()));
- deviceCountVO.setOffLineCount(baseMapper.selectCount(userId,null,DeviceStatusCode.OFFLINE.getValue()));
- deviceCountVO.setDeviceCount(baseMapper.selectCount(userId,null,DeviceStatusCode.DEVICE.getValue()));
- deviceCountVO.setFaultCount(baseMapper.selectCount(userId,null,DeviceStatusCode.FAULT.getValue()));
- return deviceCountVO;
- }
- @Override
- public List<SiteVO> list(String name) {
- List<SiteVO> list = new ArrayList<>();
- List<Site> sites = baseMapper.list(SessionLocal.getUserId());
- Integer userId = SessionLocal.getUserId();
- for (Site site:sites) {
- SiteVO siteVo = BeanMapperUtils.map(site, SiteVO.class);
- siteVo.setDeviceCount(deviceMapper.selectCount(userId,siteVo.getId(),null,null,null,null));
- int deviceCount = baseMapper.selectCount(userId,siteVo.getId(),DeviceStatusCode.DEVICE.getValue());
- int offLineCount = baseMapper.selectCount(userId,siteVo.getId(),DeviceStatusCode.OFFLINE.getValue());
- int faultCount = baseMapper.selectCount(userId,siteVo.getId(),DeviceStatusCode.FAULT.getValue());
- siteVo.setAlarmPowerCount(deviceCount);
- if (deviceCount > 0){
- siteVo.setStatus(DeviceStatusCode.FAULT.getDescribe());
- }else if (offLineCount > 0){
- siteVo.setStatus(DeviceStatusCode.OFFLINE.getDescribe());
- }else if (faultCount > 0){
- siteVo.setStatus(DeviceStatusCode.FAULT.getDescribe());
- }else {
- siteVo.setStatus(DeviceStatusCode.NORMAL.getDescribe());
- }
- list.add(siteVo);
- }
- return list;
- }
- @Override
- public SiteVO getOne(Long siteId) {
- Site site = baseMapper.selectOne(Wrappers.lambdaQuery(Site.class).eq(Site::getId, siteId));
- return Optional.ofNullable(site).map(st -> BeanMapperUtils.map(site,SiteVO.class)).orElseThrow(() -> new BusinessException("站点信息不存在"));
- }
- @Override
- public List<Site> getSiteList(Integer userId) {
- return baseMapper.list(SessionLocal.getUserId());
- }
- }
|