SiteServiceImpl.java 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.bizmatics.service.impl;
  2. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  3. import com.bizmatics.common.core.exception.BusinessException;
  4. import com.bizmatics.common.core.util.BeanMapperUtils;
  5. import com.bizmatics.model.Site;
  6. import com.bizmatics.persistence.mapper.DeviceMapper;
  7. import com.bizmatics.persistence.mapper.SiteMapper;
  8. import com.bizmatics.service.DeviceService;
  9. import com.bizmatics.service.SiteService;
  10. import com.bizmatics.common.mvc.base.AbstractCrudService;
  11. import com.bizmatics.service.enums.DeviceStatusCode;
  12. import com.bizmatics.service.util.SessionLocal;
  13. import com.bizmatics.service.vo.DeviceCountVO;
  14. import com.bizmatics.service.vo.SiteVO;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import java.util.ArrayList;
  18. import java.util.List;
  19. import java.util.Optional;
  20. /**
  21. * <p>
  22. * 服务实现类
  23. * </p>
  24. *
  25. * @author ya
  26. * @since 2021-07-07
  27. */
  28. @Service
  29. public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> implements SiteService {
  30. @Autowired
  31. private DeviceMapper deviceMapper;
  32. @Override
  33. public DeviceCountVO selectCount() {
  34. Integer userId = SessionLocal.getUserId();
  35. DeviceCountVO deviceCountVO = new DeviceCountVO();
  36. deviceCountVO.setNormalCount(baseMapper.selectCount(userId,null,DeviceStatusCode.NORMAL.getValue()));
  37. deviceCountVO.setOffLineCount(baseMapper.selectCount(userId,null,DeviceStatusCode.OFFLINE.getValue()));
  38. deviceCountVO.setDeviceCount(baseMapper.selectCount(userId,null,DeviceStatusCode.DEVICE.getValue()));
  39. deviceCountVO.setFaultCount(baseMapper.selectCount(userId,null,DeviceStatusCode.FAULT.getValue()));
  40. return deviceCountVO;
  41. }
  42. @Override
  43. public List<SiteVO> list(String name) {
  44. List<SiteVO> list = new ArrayList<>();
  45. List<Site> sites = baseMapper.list(SessionLocal.getUserId());
  46. Integer userId = SessionLocal.getUserId();
  47. for (Site site:sites) {
  48. SiteVO siteVo = BeanMapperUtils.map(site, SiteVO.class);
  49. siteVo.setDeviceCount(deviceMapper.selectCount(userId,siteVo.getId(),null,null,null,null));
  50. int deviceCount = baseMapper.selectCount(userId,siteVo.getId(),DeviceStatusCode.DEVICE.getValue());
  51. int offLineCount = baseMapper.selectCount(userId,siteVo.getId(),DeviceStatusCode.OFFLINE.getValue());
  52. int faultCount = baseMapper.selectCount(userId,siteVo.getId(),DeviceStatusCode.FAULT.getValue());
  53. siteVo.setAlarmPowerCount(deviceCount);
  54. if (deviceCount > 0){
  55. siteVo.setStatus(DeviceStatusCode.FAULT.getDescribe());
  56. }else if (offLineCount > 0){
  57. siteVo.setStatus(DeviceStatusCode.OFFLINE.getDescribe());
  58. }else if (faultCount > 0){
  59. siteVo.setStatus(DeviceStatusCode.FAULT.getDescribe());
  60. }else {
  61. siteVo.setStatus(DeviceStatusCode.NORMAL.getDescribe());
  62. }
  63. list.add(siteVo);
  64. }
  65. return list;
  66. }
  67. @Override
  68. public SiteVO getOne(Long siteId) {
  69. Site site = baseMapper.selectOne(Wrappers.lambdaQuery(Site.class).eq(Site::getId, siteId));
  70. return Optional.ofNullable(site).map(st -> BeanMapperUtils.map(site,SiteVO.class)).orElseThrow(() -> new BusinessException("站点信息不存在"));
  71. }
  72. @Override
  73. public List<Site> getSiteList(Integer userId) {
  74. return baseMapper.list(SessionLocal.getUserId());
  75. }
  76. }