package com.bizmatics.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.bizmatics.common.core.bean.CommonPage; import com.bizmatics.common.mvc.base.AbstractCrudService; import com.bizmatics.model.Device; import com.bizmatics.model.DeviceAttribute; import com.bizmatics.model.PlatformArea; import com.bizmatics.model.Site; import com.bizmatics.model.vo.DeviceVo; import com.bizmatics.model.vo.PlatformAreaVo; import com.bizmatics.model.vo.ProcessingTimeVo; import com.bizmatics.model.vo.SiteDeviceList; import com.bizmatics.persistence.mapper.PlatformAreaMapper; import com.bizmatics.service.PlatformAreaService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Map; /** *

* 服务实现类 *

* * @author ya * @since 2021-09-29 */ @Service public class PlatformAreaServiceImpl extends AbstractCrudService implements PlatformAreaService { @Autowired private SiteServiceImpl siteService; @Autowired private DeviceServiceImpl deviceService; @Autowired private DeviceStatusServiceImpl deviceStatusService; @Autowired private DeviceAttributeServiceImpl deviceAttributeService; @Override public void platformAreaAdd(PlatformArea platformArea){ platformArea.setEnable(1); this.save(platformArea); } @Override public void platformAreaUpdate(PlatformArea platformArea){ this.updateById(platformArea); } @Override public List platformAreaList(Integer id){ LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(PlatformArea::getEnable, 1).eq(PlatformArea::getId, id); List platformAreaList = this.list(queryWrapper); LambdaQueryWrapper siteQueryWrapper = Wrappers.lambdaQuery(); siteQueryWrapper.eq(Site::getStationAreaId,platformAreaList.get(0).getId()).eq(Site::getEnable, 1); List siteList = siteService.list(siteQueryWrapper); int siteCount = siteList.size(); List siteListOne = new ArrayList<>(); List deviceList = new ArrayList<>(); if (siteList.size()>0){ for (int i = 0; i < siteList.size(); i++) { siteListOne.add(siteList.get(i).getId()); } LambdaQueryWrapper deviceQueryWrapper = Wrappers.lambdaQuery(); deviceQueryWrapper.in(Device::getSiteId,siteListOne).eq(Device::getEnable, 1); deviceList = deviceService.list(deviceQueryWrapper); } Integer deviceCount = deviceList.size(); PlatformAreaVo platformAreaVo = new PlatformAreaVo(); platformAreaVo.setPlatformAreaName(platformAreaList.get(0).getPlatformAreaName()); platformAreaVo.setPlatformAreaAddress(platformAreaList.get(0).getPlatformAreaAddress()); platformAreaVo.setPlatformAreaCode(platformAreaList.get(0).getPlatformAreaCode()); platformAreaVo.setSiteCount(siteCount); platformAreaVo.setDeviceCount(deviceCount); platformAreaVo.setSite(siteList); platformAreaVo.setId(platformAreaList.get(0).getId()); platformAreaVo.setEnable(platformAreaList.get(0).getEnable()); List platformAreaVoList = new ArrayList<>(); platformAreaVoList.add(platformAreaVo); return platformAreaVoList; } @Override public CommonPage platformAreaListOne(String platformAreaName,Integer current,Integer size){ List platformAreaVoSiteOne = baseMapper.siteCount(platformAreaName,null,0); int startCurrent = (current - 1) * size; List platformAreaVoSite = baseMapper.siteCount(platformAreaName,startCurrent,size); List platformAreaVoDevice =baseMapper.deviceCount(platformAreaName); List platformAreaList = new ArrayList<>(); for (int i = 0; i < platformAreaVoSite.size(); i++) { PlatformAreaVo platformArea = new PlatformAreaVo(); platformArea.setPlatformAreaName(platformAreaVoSite.get(i).getPlatformAreaName()); platformArea.setPlatformAreaAddress(platformAreaVoSite.get(i).getPlatformAreaAddress()); platformArea.setPlatformAreaCode(platformAreaVoSite.get(i).getPlatformAreaCode()); platformArea.setId(platformAreaVoSite.get(i).getId()); platformArea.setEnable(platformAreaVoSite.get(i).getEnable()); platformArea.setSiteCount(platformAreaVoSite.get(i).getSiteCount()); if (platformAreaVoDevice.size()>0){ Integer deviceCount = 0; for (int j = 0; j < platformAreaVoDevice.size(); j++) { if (platformAreaVoSite.get(i).getId()==platformAreaVoDevice.get(j).getId()){ deviceCount = deviceCount + platformAreaVoDevice.get(j).getDeviceCount(); } } platformArea.setDeviceCount(deviceCount); }else { platformArea.setDeviceCount(0); } platformAreaList.add(platformArea); } return new CommonPage<>(platformAreaList, platformAreaVoSiteOne.size(), size, current); } @Override public void platformAreaDel(int id){ PlatformArea platformArea = new PlatformArea(); platformArea.setId(id); platformArea.setEnable(0); this.updateById(platformArea); } @Override public List siteDeviceList(int stationAreaId){ List siteDeviceList = baseMapper.deviceList(stationAreaId); return siteDeviceList; } @Override public void siteDeviceUpdate (DeviceVo deviceVo){ deviceService.updateById(deviceVo.getDevice()); deviceAttributeService.updateById(deviceVo.getDeviceAttribute()); } @Override public void siteDeviceDel(int deviceId,int deviceAttributeId){ Device device = new Device(); DeviceAttribute deviceAttribute = new DeviceAttribute(); device.setId(deviceId); device.setEnable(0); deviceAttribute.setId(deviceAttributeId); deviceAttribute.setStatus(0); deviceService.updateById(device); deviceAttributeService.updateById(deviceAttribute); } }