2021与蓝度共同重构项目,服务端
liuhaonan
2022-05-17 83be53d31f313a341238fc9422cc0e42bd3c12cc
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
@@ -3,7 +3,6 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.util.StrUtil;
import com.aliyuncs.iot.model.v20180120.BatchGetDeviceStateResponse;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.sandu.common.domain.CommonPage;
@@ -100,37 +99,12 @@
    public List<LightBo> listLight(int pageNo, int pageSize, String keyword) {
        Long clientId = SecurityUtils.getClientId();
      //  PageHelper.startPage(pageNo, pageSize);
        PageHelper.startPage(pageNo, pageSize);
        List<LightBo> listLight = baseMapper.listLight(clientId, keyword);
        // 获取最近的上报时间
        List<String> deviceCodeList = listLight.stream().map(Light::getDeviceCode).collect(Collectors.toList());
        //拆分list
        List<List<String>> split = CollectionUtil.split(deviceCodeList, 100);
        List<BatchGetDeviceStateResponse.DeviceStatus> deviceStatuses=null;
        for (List<String> splist : split) {
            deviceStatuses=MainBoardInvokeSyncService.getInstance().batchGetDeviceState(splist);
            if (deviceStatuses != null) {
                for (LightBo lightBo : listLight) {
                    for (BatchGetDeviceStateResponse.DeviceStatus deviceStatus : deviceStatuses) {
                        if (lightBo.getDeviceCode() != null && lightBo.getDeviceCode().equals(deviceStatus.getDeviceName())) {
                            if("ONLINE".equals(deviceStatus.getStatus()) ){
                                lightBo.setOnlineStatus(0);
                            }else if("OFFLINE".equals(deviceStatus.getStatus())){
                                lightBo.setOnlineStatus(1);
                            }else {
                                lightBo.setOnlineStatus(2);
                            }
                        }
                    }
                }
            }
        }
        if (CollectionUtil.isNotEmpty(deviceCodeList)) {
            List<LightReportData> reportDataList = lightReportDataService.getNewestReportByDeviceCode(deviceCodeList);
            for (LightBo lightBo : listLight) {