2021与蓝度共同重构项目,服务端
zhanzhiqin
2022-04-18 f2dfd5e6fbbb9c4e96e91c86be0bb6f7a44d87c3
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -44,10 +44,7 @@
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -91,6 +88,8 @@
        if (pole == null) {
            throw new BusinessException("未找到该灯杆");
        }
        // 删除灯杆绑定关系
        poleBindingService.remove(Wrappers.<PoleBinding>lambdaQuery().eq(PoleBinding::getPoleId, poleId));
        return removeById(poleId);
    }
@@ -114,13 +113,39 @@
    }
    /**
     * 统计在线灯杆数量
     * @return
     */
    public Map<String,Integer> poleCount() {
        Map<String,Integer> result = new HashMap<>();
        List<Pole> list = new ArrayList<>();
        LambdaQueryWrapper<Pole> wrapper = new LambdaQueryWrapper<>();
        if (SecurityUtils.getClientId() == null) {
            wrapper = Wrappers.lambdaQuery(Pole.class);
        } else {
            wrapper = Wrappers.lambdaQuery(Pole.class).eq(Pole::getClientId, SecurityUtils.getUserId()).or(
                    w -> {
                        w.eq(Pole::getUserId, SecurityUtils.getUserId());
                    });
        }
        list = list(wrapper);
        List<Pole> poles = isOnLine(list);
        result.put("onlineCount",poles.size());
        result.put("totalCount",list.size());
        return result;
    }
    public List<Pole> queryAllStatesAndList(Integer pageNo, Integer pageSize, PoleStatesParam param) {
        List<Pole> list = new ArrayList<>();
        LambdaQueryWrapper<Pole> wrapper = new LambdaQueryWrapper<>();
        if (SecurityUtils.getClientId() == null) {
            wrapper = Wrappers.lambdaQuery(Pole.class);
        } else {
            wrapper = Wrappers.lambdaQuery(Pole.class).eq(Pole::getClientId, SecurityUtils.getUserId());
            wrapper = Wrappers.lambdaQuery(Pole.class).eq(Pole::getClientId, SecurityUtils.getUserId()).or(
                    w -> {
                        w.eq(Pole::getUserId, SecurityUtils.getUserId());
                    });
        }
        if (!param.getKeyword().isEmpty()) {
            wrapper.like(Pole::getPoleCode, param.getKeyword()).or(
@@ -215,6 +240,26 @@
            return offline;
        }
        return list;
    }
    /**
     * 在线灯杆
     *
     * @param list
     * @param
     * @return
     */
    public List<Pole> isOnLine(List<Pole> list) {
        setOnline(list);
        List<Pole> online = new ArrayList<>();//在线
        list.forEach(onLinePole -> {
            if (("ONLINE").equals(onLinePole.getOnLineState())) {
                online.add(onLinePole);
            }
        });
        return online;
    }
    /**
@@ -646,7 +691,7 @@
            } else if (poleBinding.getDeviceType() == 3) {//大气
                bindVO.setAirMonitoring(SpringContextHolder.getBean(AirEquipmentService.class).getAirEquipment(poleBinding.getDeviceCode()));
            } else if (poleBinding.getDeviceType() == 4) {//水质
                 bindVO.setWaterMonitoring(SpringContextHolder.getBean(WaterQualityDataService.class).getWaterQualityDataInfo(poleBinding.getDeviceCode()));
                bindVO.setWaterMonitoring(SpringContextHolder.getBean(WaterQualityDataService.class).getWaterQualityDataInfo(poleBinding.getDeviceCode()));
            } else if (poleBinding.getDeviceType() == 5) {//音柱
                bindVO.setIpVolume(SpringContextHolder.getBean(IpVolumeService.class).getIpTerminalDetail(Integer.valueOf(poleBinding.getDeviceCode())));
            } else if (poleBinding.getDeviceType() == 6) {//LCD