123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- package com.bizmatics.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.bizmatics.common.core.exception.BusinessException;
- import com.bizmatics.common.core.util.BeanMapperUtils;
- import com.bizmatics.common.mvc.base.AbstractCrudService;
- import com.bizmatics.model.*;
- import com.bizmatics.persistence.mapper.AlarmPowerMapper;
- import com.bizmatics.persistence.mapper.DeviceMapper;
- import com.bizmatics.persistence.mapper.SiteMapper;
- import com.bizmatics.service.DeviceService;
- import com.bizmatics.service.SiteDynamicPropertiesService;
- import com.bizmatics.service.SiteService;
- import com.bizmatics.service.UserSiteService;
- 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 lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.time.format.DateTimeFormatter;
- import java.util.*;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author ya
- * @since 2021-07-07
- */
- @Slf4j
- @Service
- public class SiteServiceImpl extends AbstractCrudService<SiteMapper, Site> implements SiteService {
- @Autowired
- private DeviceMapper deviceMapper;
- @Autowired
- private DeviceService deviceService;
- @Autowired
- private AlarmPowerMapper alarmPowerMapper;
- @Autowired
- private UserSiteService userSiteService;
- @Autowired
- private SiteDynamicPropertiesService siteDynamicPropertiesService;
- @Override
- public DeviceCountVO selectCount() {
- // Integer userId = UserUtil.getUserId();
- 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()));
- deviceCountVO.setCount(userSiteService.count(userId));
- return deviceCountVO;
- }
- @Override
- public List<Site> list(String name) {
- return baseMapper.list(SessionLocal.getUserId(), name);
- }
- @Override
- public List<Map<String, Object>> Sitelist(String name) {
- List<Map<String, Object>> list = new ArrayList<>();
- List<SiteList> site_list = null;
- List<GroupingList> grouping_list = null;
- List<SiteList> site_grouping_list = null;
- grouping_list = baseMapper.GroupingList(name,SessionLocal.getUser().getUserName());
- site_list = baseMapper.Sitelist(SessionLocal.getUserId(), name);
- site_grouping_list = baseMapper.SiteGroupinglist(SessionLocal.getUserId(), name);
- List<Map<String, Object>> list1 = new ArrayList<>();
- if (grouping_list.size() > 0) {
- for (int i = 0; i < grouping_list.size(); i++) {
- GroupingList grouping_list_one = (GroupingList) grouping_list.get(i);
- Map<String, Object> map1 = new HashMap<>();
- List<Map<String, Object>> list2 = new ArrayList<>();
- map1.put("id", grouping_list_one.getId());
- map1.put("grouping_id", grouping_list_one.getId());
- map1.put("grouping_name", grouping_list_one.getGroupingName());
- if (site_list.size() > 0) {
- for (int j = 0; j < site_list.size(); j++) {
- SiteList site_list_one = (SiteList) site_list.get(j);
- Map<String, Object> map2 = new HashMap<>();
- if (grouping_list_one.getId().equals(site_list_one.getGroupingId())) {
- map2.put("site_id", site_list_one.getId());
- map2.put("site_name", site_list_one.getSiteName());
- // map2.put("grouping_id",site_list_one.getGroupingId());
- list2.add(map2);
- }
- }
- map1.put("site_list", list2);
- }else {
- map1.put("site_list", list2);
- }
- list1.add(map1);
- }
- }
- if (site_grouping_list.size() > 0) {
- List<Map<String, Object>> list3 = new ArrayList<>();
- for (int i = 0; i < site_grouping_list.size(); i++) {
- SiteList site_grouping_list_one = (SiteList) site_grouping_list.get(i);
- Map<String, Object> map3 = new HashMap<>();
- map3.put("id", site_grouping_list_one.getId());
- map3.put("grouping_id", 0);
- map3.put("grouping_name", site_grouping_list_one.getSiteName());
- map3.put("site_list", list3);
- list1.add(map3);
- }
- }
- return list1;
- }
- @Override
- public List<SiteVO> siteAndStatusList(String name) {
- List<SiteVO> list = new ArrayList<>();
- // Integer userId = UserUtil.getUserId();
- Integer userId = SessionLocal.getUserId();
- List<Site> sites = baseMapper.list(SessionLocal.getUserId(), name);
- List<Device> deviceList = deviceMapper.list(userId, null, null, null, null, null);
- List<AlarmPower> alarmPowers = alarmPowerMapper.list(userId, null, null, null, null, null, 1);
- sites.forEach(site -> list.add(enhanceSite(deviceList, site, alarmPowers)));
- 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 -> {
- LambdaQueryWrapper<Device> deviceLambdaQueryWrapper = Wrappers.lambdaQuery();
- deviceLambdaQueryWrapper.eq(Device::getSiteId, site.getId());
- List<Device> list = deviceService.list(deviceLambdaQueryWrapper);
- Integer count = alarmPowerMapper.selectCount(null, site.getId(), null, null, null, null, 1);
- SiteVO siteVO = enhanceSite(list, site, null);
- siteVO.setAlarmPowerCount(count);
- return siteVO;
- })
- .orElseThrow(() -> new BusinessException("站点信息不存在"));
- }
- public SiteVO enhanceSite(List<Device> list, Site site, List<AlarmPower> alarmPowers) {
- SiteVO siteVo = BeanMapperUtils.map(site, SiteVO.class);
- siteVo.setDeviceCount(list.size());
- long deviceCount = list.stream()
- .filter(device -> device.getSiteId().equals(site.getId()))
- .filter(device -> DeviceStatusCode.DEVICE.getValue().equals(device.getDeviceStatus()))
- .count();
- long faultCount = list.stream()
- .filter(device -> device.getSiteId().equals(site.getId()))
- .filter(device -> DeviceStatusCode.FAULT.getValue().equals(device.getDeviceStatus()))
- .count();
- long offCount = list.stream()
- .filter(device -> device.getSiteId().equals(site.getId()))
- .filter(device -> DeviceStatusCode.OFFLINE.getValue().equals(device.getDeviceStatus()))
- .count();
- if (CollectionUtils.isNotEmpty(alarmPowers)) {
- siteVo.setAlarmPowerCount((int) alarmPowers.stream().filter(alarmPower -> alarmPower.getSiteId().equals(site.getId())).count());
- } else {
- siteVo.setAlarmPowerCount(0);
- }
- if (deviceCount > 0) {
- siteVo.setStatus(DeviceStatusCode.FAULT.getDescribe());
- } else if (offCount > 0) {
- siteVo.setStatus(DeviceStatusCode.OFFLINE.getDescribe());
- } else if (faultCount > 0) {
- siteVo.setStatus(DeviceStatusCode.FAULT.getDescribe());
- } else {
- siteVo.setStatus(DeviceStatusCode.NORMAL.getDescribe());
- }
- List<String> deviceTypes = list.stream()
- .filter(device -> device.getSiteId().equals(site.getId()))
- .map(Device::getDeviceType).collect(Collectors.toList());
- siteVo.setDeviceType(deviceTypes);
- return siteVo;
- }
- public void SiteAdd(String site_name,String site_address,String user_name,String phone,
- String station_area_id,String route_id,String installed_capacity,String rheological_change,String longitude,
- String latitude,String region,String grouping_id,String fault_status, String real_time_load,
- String total_electricity, String power_factor, String site_type, String user_company,
- String operation_time, String service_deadline, String power_supply_type, String voltage_level,
- String Demolition_standard_coal, String Demolition_standard_coal1,String sitePictureOne,
- String sitePictureTwo,String sitePictureThree,String templateId){
- if (templateId.equals("")){
- Site site=new Site();
- site.setSiteName(site_name);
- site.setSiteAddress(site_address);
- site.setCompanyCode(11111);
- site.setUserName(user_name);
- site.setPhone(phone);
- site.setStationAreaId(Integer.parseInt(station_area_id));
- site.setRouteId(Integer.parseInt(route_id));
- site.setInstalledCapacity(installed_capacity);
- site.setRheologicalChange(rheological_change);
- site.setLongitude(longitude);
- site.setLatitude(latitude);
- site.setRegion(Integer.parseInt(region));
- site.setCreateTime(new Date());
- site.setCreator(SessionLocal.getUser().getUserName());
- site.setEnable(1);
- site.setGroupingId(Integer.parseInt(grouping_id));
- this.save(site);
- int ID = site.getId();
- siteDynamicPropertiesService.SiteDynamicPropertiesAdd(fault_status,real_time_load,total_electricity,power_factor,
- ID,site_type, user_company, operation_time, service_deadline, power_supply_type, voltage_level,
- Demolition_standard_coal, Demolition_standard_coal1,sitePictureOne,sitePictureTwo,sitePictureThree);
- userSiteService.UserSiteAdd(ID);
- }else {
- List<TemplateData> TemplateDataList = null;
- TemplateDataList = baseMapper.templateQuery(Integer.parseInt(templateId));
- TemplateData TemplateDataListOne = (TemplateData) TemplateDataList.get(0);
- Site site=new Site();
- site.setSiteName(site_name);
- site.setSiteAddress(TemplateDataListOne.getSiteAddress());
- site.setCompanyCode(11111);
- site.setUserName(TemplateDataListOne.getUserName());
- site.setPhone(TemplateDataListOne.getPhone());
- site.setStationAreaId(TemplateDataListOne.getStationAreaId());
- site.setRouteId(TemplateDataListOne.getRouteId());
- site.setInstalledCapacity(TemplateDataListOne.getInstalledCapacity());
- site.setRheologicalChange(TemplateDataListOne.getRheologicalChange());
- site.setLongitude(TemplateDataListOne.getLongitude());
- site.setLatitude(TemplateDataListOne.getLatitude());
- site.setRegion(TemplateDataListOne.getRegion());
- site.setCreateTime(new Date());
- site.setCreator(SessionLocal.getUser().getUserName());
- site.setEnable(1);
- // site.setGroupingId(TemplateDataListOne.getGroupingId());
- this.save(site);
- int ID = site.getId();
- DateTimeFormatter fmt12 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- siteDynamicPropertiesService.SiteDynamicPropertiesAdd(TemplateDataListOne.getFaultStatus(),TemplateDataListOne.getRealTimeLoad()
- ,TemplateDataListOne.getTotalElectricity(),TemplateDataListOne.getPowerFactor(),
- ID,Integer.toString(TemplateDataListOne.getSiteType()), TemplateDataListOne.getUserCompany(),
- TemplateDataListOne.getOperationTime().format(fmt12), TemplateDataListOne.getServiceDeadline().format(fmt12),
- Integer.toString(TemplateDataListOne.getPowerSupplyType()),TemplateDataListOne.getVoltageLevel(),
- Integer.toString(TemplateDataListOne.getDemolitionStandardCoal()),TemplateDataListOne.getDemolitionStandardCoal1()
- ,TemplateDataListOne.getSitePictureOne(),TemplateDataListOne.getSitePictureTwo(),TemplateDataListOne.getSitePictureThree());
- userSiteService.UserSiteAdd(ID);
- }
- }
- public List<TemplateData> GetSite(String id){
- List<TemplateData> TemplateDataList = null;
- TemplateDataList = baseMapper.templateQuery(Integer.parseInt(id));
- // TemplateData TemplateDataListOne = (TemplateData) TemplateDataList.get(0);
- return TemplateDataList;
- }
- }
|