123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331 |
- 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.model.system.SysUser;
- 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.SecurityUtils;
- 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.LocalDate;
- 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 = SecurityUtils.getLoginUser().getUser().getUserId().intValue();
- 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) {
- Integer userId = SecurityUtils.getLoginUser().getUser().getUserId().intValue();
- return baseMapper.list(userId, name);
- }
- @Override
- public List<Map<String, Object>> siteList(String name) {
- return null;
- }
- @Override
- public List<SiteVO> siteAndStatusList(String name) {
- List<SiteVO> list = new ArrayList<>();
- Integer userId = SecurityUtils.getLoginUser().getUser().getUserId().intValue();
- List<Site> sites = baseMapper.list(userId, 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;
- }
- @Override
- 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){
- SysUser user = SecurityUtils.getLoginUser().getUser();
- 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(user.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(user.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);
- }
- }
- @Override
- public List<TemplateData> getSite(String id){
- List<TemplateData> TemplateDataList = null;
- TemplateDataList = baseMapper.templateQuery(Integer.parseInt(id));
- // TemplateData TemplateDataListOne = (TemplateData) TemplateDataList.get(0);
- return TemplateDataList;
- }
- @Override
- public void siteUpdate(String id,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){
- // Site site=new Site();
- List<Site> SiteList = null;
- SiteList = baseMapper.list1(Integer.parseInt(id));
- Site SiteList1 = (Site) SiteList.get(0);
- SiteList1.setId(Integer.parseInt(id));
- if (!site_name.equals("")&&!site_name.equals("null")){
- SiteList1.setSiteName(site_name);
- }
- if (!site_address.equals("")&&!site_address.equals("null")){
- SiteList1.setSiteAddress(site_address);
- }
- if (!user_name.equals("")&&!user_name.equals("null")){
- SiteList1.setUserName(user_name);
- }
- if (!phone.equals("")&&!phone.equals("null")){
- SiteList1.setPhone(phone);
- }
- if (!station_area_id.equals("")&&!station_area_id.equals("0")&&!station_area_id.equals("null")){
- SiteList1.setStationAreaId(Integer.parseInt(station_area_id));
- }
- if (!route_id.equals("")&&!route_id.equals("0")&&!route_id.equals("null")){
- SiteList1.setRouteId(Integer.parseInt(route_id));
- }
- if (!installed_capacity.equals("")&&!installed_capacity.equals("null")){
- SiteList1.setInstalledCapacity(installed_capacity);
- }
- if (!rheological_change.equals("")&&!rheological_change.equals("null")){
- SiteList1.setRheologicalChange(rheological_change);
- }
- if (!longitude.equals("")&&!longitude.equals("null")){
- SiteList1.setLongitude(longitude);
- }
- if (!latitude.equals("")&&!latitude.equals("null")){
- SiteList1.setLatitude(latitude);
- }
- if (!region.equals("")&&!region.equals("0")&&!region.equals("null")){
- SiteList1.setRegion(Integer.parseInt(region));
- }
- // if (!grouping_id.equals("")&&!grouping_id.equals("0")){
- // site.setGroupingId(Integer.parseInt(grouping_id));
- // }
- List<SiteDynamicProperties> SiteDynamicPropertiesList = null;
- SiteDynamicPropertiesList = baseMapper.SiteDynamicPropertieslist(Integer.parseInt(id));
- SiteDynamicProperties SiteDynamicPropertiesList1 = (SiteDynamicProperties) SiteDynamicPropertiesList.get(0);
- if (!fault_status.equals("")&&!fault_status.equals("null")){
- SiteDynamicPropertiesList1.setFaultStatus(fault_status);
- }
- if (!real_time_load.equals("")&&!real_time_load.equals("null")){
- SiteDynamicPropertiesList1.setRealTimeLoad(real_time_load);
- }
- if (!total_electricity.equals("")&&!total_electricity.equals("null")){
- SiteDynamicPropertiesList1.setTotalElectricity(total_electricity);
- }
- if (!power_factor.equals("")&&!power_factor.equals("null")){
- SiteDynamicPropertiesList1.setPowerFactor(power_factor);
- }
- if (!site_type.equals("")&&!site_type.equals("0")&&!site_type.equals("null")){
- SiteDynamicPropertiesList1.setSiteType(Integer.parseInt(site_type));
- }
- if (!user_company.equals("")&&!user_company.equals("null")){
- SiteDynamicPropertiesList1.setUserCompany(user_company);
- }
- if (!operation_time.equals("")&&!operation_time.equals("null")){
- SiteDynamicPropertiesList1.setOperationTime(LocalDate.parse(operation_time));
- }
- if (!service_deadline.equals("")&&!service_deadline.equals("null")){
- SiteDynamicPropertiesList1.setServiceDeadline(LocalDate.parse(service_deadline));
- }
- if (!power_supply_type.equals("")&&!power_supply_type.equals("0")&&!power_supply_type.equals("null")){
- SiteDynamicPropertiesList1.setPowerSupplyType(Integer.parseInt(power_supply_type));
- }
- if (!voltage_level.equals("")&&!voltage_level.equals("null")){
- SiteDynamicPropertiesList1.setVoltageLevel(voltage_level);
- }
- if (!Demolition_standard_coal.equals("")&&!Demolition_standard_coal.equals("0")&&!Demolition_standard_coal.equals("null")){
- SiteDynamicPropertiesList1.setDemolitionStandardCoal(Integer.parseInt(Demolition_standard_coal));
- }
- if (!Demolition_standard_coal1.equals("")&&!Demolition_standard_coal1.equals("null")){
- SiteDynamicPropertiesList1.setDemolitionStandardCoal1(Demolition_standard_coal1);
- }
- if (!sitePictureOne.equals("")&&!sitePictureOne.equals("null")){
- SiteDynamicPropertiesList1.setSitePictureOne(sitePictureOne);
- }
- if (!sitePictureTwo.equals("")&&!sitePictureTwo.equals("null")){
- SiteDynamicPropertiesList1.setSitePictureTwo(sitePictureTwo);
- }
- if (!sitePictureThree.equals("")&&!sitePictureThree.equals("null")){
- SiteDynamicPropertiesList1.setSitePictureThree(sitePictureThree);
- }
- this.updateById(SiteList1);
- siteDynamicPropertiesService.SiteDynamicPropertiesUpdate(SiteDynamicPropertiesList1);
- }
- @Override
- public void sitedel(String id){
- List<Site> SiteList = null;
- SiteList = baseMapper.list1(Integer.parseInt(id));
- Site SiteList1 = (Site) SiteList.get(0);
- SiteList1.setId(Integer.parseInt(id));
- SiteList1.setEnable(0);
- this.updateById(SiteList1);
- }
- }
|