2021与蓝度共同重构项目,服务端
Van333
2022-12-15 5e94332935da62448c17f89a807acf46a5ae3e75
ximon-admin/src/main/java/com/sandu/ximon/admin/newnova/led/NewNovaLedService.java
@@ -7,23 +7,24 @@
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.common.util.SpringContextHolder;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame;
import com.sandu.ximon.admin.newnova.conf.ProgramPathConfig;
import com.sandu.ximon.admin.newnova.param.NewNovaLedParam;
import com.sandu.ximon.admin.newnova.param.ProgramPrarm;
import com.sandu.ximon.admin.newnova.program.LEDInfoParam;
import com.sandu.ximon.admin.newnova.program.NewNovaProgramService;
import com.sandu.ximon.admin.newnova.utils.NovaAPIUtil;
import com.sandu.ximon.admin.newnova.vo.ProWHVO;
import com.sandu.ximon.admin.newnova.vo.StatusVO;
import com.sandu.ximon.admin.newnova.vo.TrasfromStatusVO;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.service.AirDataService;
import com.sandu.ximon.admin.service.PoleBindingService;
import com.sandu.ximon.admin.service.PoleService;
import com.sandu.ximon.dao.bo.AirDataNongGengBo;
import com.sandu.ximon.dao.bo.NewNovaGroupListBo;
import com.sandu.ximon.dao.domain.NewNovaLed;
import com.sandu.ximon.dao.domain.Pole;
import com.sandu.ximon.dao.domain.PoleBinding;
import com.sandu.ximon.dao.mapper.AirDataNongGengMapper;
import com.sandu.ximon.dao.mapper.NewNovaLedMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@@ -128,18 +129,12 @@
        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        List<NewNovaLed> newNovaListBos = baseMapper.listLed(keyword, groupId, SecurityUtils.getClientId());
        //获取在线状态
        instanceUtil.getOnlineStatus(newNovaListBos, onlineStatus);
        //获取屏幕开关
        instanceUtil.getScreenPowerState(newNovaListBos);
        //获取音量
        instanceUtil.getVolumeState(newNovaListBos);
        //获取亮度
        instanceUtil.getScreenBrightness(newNovaListBos);
        //获取同步状态
        instanceUtil.getSync(newNovaListBos);
        List<NewNovaLed> onLine = instanceUtil.getOnlineStatus(newNovaListBos, onlineStatus);
        //获取分辨率
        instanceUtil.getDisplayInfoAsync(onLine);
        updateBatchById(newNovaListBos);
        return newNovaListBos;
        updateBatchById(onLine);
        return onLine;
    }
    public NewNovaLed getInfo(Long ledId) {
@@ -169,6 +164,13 @@
        instanceUtil.getSync(list);
        //获取详情
        instanceUtil.getInfo(byId);
        //获取分辨率
        instanceUtil.getDisplayInfoAsync(list);
        //获取时区
        instanceUtil.getTimezone(list);
        //获取视频源
        instanceUtil.getVideoInfoAsync(list);
        return list.get(0);
    }
@@ -196,16 +198,16 @@
        if (nova == null) {
            throw new BusinessException("未绑定诺瓦设备");
        }
        PoleBinding air = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getPoleId, nova.getPoleId()).eq(PoleBinding::getDeviceType, 3));
        PoleBinding air = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getPoleId, nova.getPoleId()).eq(PoleBinding::getDeviceType, 11));
        if (air == null) {
            throw new BusinessException("未绑定大气设备");
        }
        //获取大气监测数据
        A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage data = SpringContextHolder.getBean(AirDataService.class).getDataByPoleid(nova.getPoleId());
        AirDataNongGengBo data = SpringContextHolder.getBean(AirDataNongGengMapper.class).historyData(air.getDeviceCode()).get(0);
        //解析大气数据
        Map pageInfo = parseData(data, duration,fontSize);
        Map pageInfo = parseData(data, duration, fontSize);
        ProgramPrarm page = new ProgramPrarm();
        page.setPageInfo(pageInfo);
        page.setInsertPlay(true);
@@ -216,11 +218,11 @@
        page.setProgramID(pid);
        StatusVO editPro = apiUtil.editProgram(pid, pageInfo);
        if(editPro.getStatusCode()!=0){
        if (editPro.getStatusCode() != 0) {
            throw new BusinessException(editPro.getStatusData());
        }
        StatusVO genVO = apiUtil.genrateProgram(pid);
        if(genVO.getStatusCode()!=0){
        if (genVO.getStatusCode() != 0) {
            throw new BusinessException(genVO.getStatusData());
        }
        page.setProgramID(Integer.valueOf(createPro.getStatusData()));
@@ -246,10 +248,10 @@
     * @return
     */
    private Map parseData(A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage data, Long duration, Long fontSize) {
    private Map parseData(AirDataNongGengBo data, Long duration, Long fontSize) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z+8:00'");
        Date end = new Date();
        end.setTime(end.getTime()+duration);
        end.setTime(end.getTime() + duration);
        String str = "{\n" +
                "        \"name\": \"大气监测\",\n" +
                "        \"widgetContainers\": [\n" +
@@ -300,42 +302,42 @@
                "                                                {\n" +
                "                                                    \"segs\": [\n" +
                "                                                        {\n" +
                "                                                            \"content\": \"温度:" + (data == null || data.getTemperature() == null ? " - " : data.getTemperature()) + "°\"" + "\n" +
                "                                                            \"content\": \"温度:" + (data == null || data.getAirTemperature() == null ? " - " : data.getAirTemperature()) + "\"" + "\n" +
                "                                                        }\n" +
                "                                                    ]\n" +
                "                                                },\n" +
                "                                                {\n" +
                "                                                    \"segs\": [\n" +
                "                                                        {\n" +
                "                                                            \"content\": \"湿度:" + (data == null || data.getHumidity() == null ? " - " : data.getHumidity()) + "%\"" + "\n" +
                "                                                            \"content\": \"湿度:" + (data == null || data.getAirHumidity() == null ? " - " : data.getAirHumidity()) + "\"" + "\n" +
                "                                                        }\n" +
                "                                                    ]\n" +
                "                                                },\n" +
                "                                                {\n" +
                "                                                    \"segs\": [\n" +
                "                                                        {\n" +
                "                                                            \"content\": \"pm25:" + (data == null || data.getPm25() == null ? " - " : data.getPm25()) + "μg/m³\"" + "\n" +
                "                                                            \"content\": \"pm25:" + (data == null || data.getPm2point5() == null ? " - " : data.getPm2point5()) + "\"" + "\n" +
                "                                                        }\n" +
                "                                                    ]\n" +
                "                                                },\n" +
                "                                                {\n" +
                "                                                    \"segs\": [\n" +
                "                                                        {\n" +
                "                                                            \"content\": \"pm10:" + (data == null || data.getPm10() == null ? " - " : data.getPm10()) + "μg/m³\"" + "\n" +
                "                                                            \"content\": \"pm10:" + (data == null || data.getPm10() == null ? " - " : data.getPm10()) + "\"" + "\n" +
                "                                                        }\n" +
                "                                                    ]\n" +
                "                                                },\n" +
                "                                                {\n" +
                "                                                    \"segs\": [\n" +
                "                                                        {\n" +
                "                                                            \"content\": \"甲醛:" + (data == null || data.getEch2o() == null ? " - " : data.getEch2o()) + "μg/m³\"" + "\n" +
                "                                                            \"content\": \"光照:" + (data == null || data.getIllumination() == null ? " - " : data.getIllumination()) + "\"" + "\n" +
                "                                                        }\n" +
                "                                                    ]\n" +
                "                                                },\n" +
                "                                                {\n" +
                "                                                    \"segs\": [\n" +
                "                                                        {\n" +
                "                                                            \"content\": \"CO2:" + (data == null || data.getCo2() == null ? " - " : data.getCo2()) + "ppm\"" + "\n" +
                "                                                            \"content\": \"噪音:" + (data == null || data.getNoise() == null ? " - " : data.getNoise()) + "\"" + "\n" +
                "                                                        }\n" +
                "                                                    ]\n" +
                "                                                }\n" +
@@ -352,7 +354,7 @@
                "                                                        \"Helvetica\"\n" +
                "                                                    ],\n" +
                "                                                    \"isUnderline\": false,\n" +
                "                                                    \"size\": "+fontSize+",\n" +
                "                                                    \"size\": " + fontSize + ",\n" +
                "                                                    \"style\": \"NORMAL\"\n" +
                "                                                },\n" +
                "                                                \"letterSpacing\": 0,\n" +
@@ -377,4 +379,64 @@
    }
    /**
     * 获取状态信息
     *
     * @param param
     * @return
     */
    public Object infoList(LEDInfoParam param) {
        NovaAPIUtil instanceUtil = NovaAPIUtil.getInstanceUtil();
        List<NewNovaLed> newNovaLeds = listByIds(param.getLedIds());
        param.setLedList(newNovaLeds);
        switch (param.getType()) {
            case "all":
                //获取屏幕开关
                instanceUtil.getScreenPowerState(param.getLedList());
                //获取音量
                instanceUtil.getVolumeState(param.getLedList());
                //获取亮度
                instanceUtil.getScreenBrightness(param.getLedList());
                //获取同步状态
                instanceUtil.getSync(param.getLedList());
                //获取分辨率
                instanceUtil.getDisplayInfoAsync(param.getLedList());
                //获取时区
                instanceUtil.getTimezone(param.getLedList());
                //获取视频源
                instanceUtil.getVideoInfoAsync(param.getLedList());
                break;
            case "volumeValue":
                //获取音量
                instanceUtil.getVolumeState(param.getLedList());
                break;
            case "brightnessValue":
                //获取亮度
                instanceUtil.getScreenBrightness(param.getLedList());
                break;
            case "videoSourceValue":
                //获取视频源
                instanceUtil.getVideoInfoAsync(param.getLedList());
                break;
            case "timeValue":
                //获取时区
                instanceUtil.getTimezone(param.getLedList());
                break;
            case "screenPowerStatus":
                //获取屏幕开关
                instanceUtil.getScreenPowerState(param.getLedList());
                break;
            case "syncPlayStatus":
                //获取同步状态
                instanceUtil.getSync(param.getLedList());
                break;
            default:
        }
        return param.getLedList();
    }
}