2021与蓝度共同重构项目,服务端
liuhaonan
2022-04-27 c8ce26aac0004e249a0cef35fe15b2ddb280ad25
ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
@@ -10,22 +10,23 @@
import com.sandu.ximon.admin.config.RealtimeServerBean;
import com.sandu.ximon.admin.config.XiXunConfig;
import com.sandu.ximon.admin.entity.*;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.JsonUtil;
import com.sandu.ximon.admin.utils.LightemitUtils;
import com.sandu.ximon.admin.utils.LogUtils;
import com.sandu.ximon.dao.domain.LEDProgram;
import com.sandu.ximon.admin.utils.request.SubTitleSet;
import com.sandu.ximon.dao.domain.LedSFile;
import com.sandu.ximon.dao.domain.Pole;
import com.sandu.ximon.dao.domain.PoleLightemitEntity;
import com.sandu.ximon.dao.domain.PoleXixunPlayerEntity;
import com.sandu.ximon.dao.mapper.PoleXixunPlayerEntityMapper;
import lombok.AllArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.UUID;
import java.util.*;
/**
 * 熙讯节目
@@ -129,7 +130,6 @@
    }
//    public Object getProgram(String json) {
////        PoleXixunPlayerEntity byId = getById(pid);
//        List<Long> fileIds = new ArrayList<>();
@@ -226,7 +226,59 @@
    /**
     * 推送大气数据到熙讯LED
     */
    @Async("taskExecutor")
    public Boolean pushWeather(String lightemitControlCode, A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage sensorEntity, Pole streetlightEntity) {
        if (StringUtils.isBlank(lightemitControlCode)) {
            return Boolean.valueOf(false);
        }
        Integer screenHeight = Integer.parseInt(lightemitUtils.getScreenHeight(lightemitControlCode));
        String size = String.valueOf(screenHeight / 18);
        //字幕主体拼接
        String body =
                "<head><style type=\"text/css\">body{background-color:#000;}</style></head>" +
                        "<p style=\"font-size:" + size + "px;line-height:17px;color:#fff\">" +
                        (streetlightEntity == null || streetlightEntity.getCity() == null ? "" : streetlightEntity.getCity().replace("市", "")) + "<br/>" +
                        "温度:" + (sensorEntity == null || sensorEntity.getTemperature() == null ? "   -" : sensorEntity.getTemperature()) + "℃<br/>" +
                        "湿度:" + (sensorEntity == null || sensorEntity.getHumidity() == null ? "-" : sensorEntity.getHumidity()) + "%RH<br/>" +
                        "亮度:" + (sensorEntity == null || sensorEntity.getLightIntensity() == null ? "-" : sensorEntity.getLightIntensity()) + "lux<br/>" +
                        "风速:" + (sensorEntity == null || sensorEntity.getWindSpeed() == null ? "-" : sensorEntity.getWindSpeed()) + "m/s<br/>" +
                        "CO2:" + (sensorEntity == null || sensorEntity.getCo2() == null ? "-" : sensorEntity.getCo2()) + "ppm<br/>" +
                        "甲醛:" + (sensorEntity == null || sensorEntity.getEch2o() == null ? "-" : sensorEntity.getEch2o()) + "mg/m³<br/>" +
                        "TVOC:" + (sensorEntity == null || sensorEntity.getTvoc() == null ? "-" : sensorEntity.getTvoc()) + "mg/m³<br/>" +
                        "PM25:" + (sensorEntity == null || sensorEntity.getPm25() == null ? "-" : sensorEntity.getPm25()) + "mg/m³<br/>" +
                        "PM10:" + (sensorEntity == null || sensorEntity.getPm10() == null ? "-" : sensorEntity.getPm10()) + "mg/m³<br/>";
        //组装请求参数
        SubTitleSet subTitleSet = new SubTitleSet();
        subTitleSet.html = body;
        subTitleSet.num = 1;
        //清屏操作
        lightemitUtils.clear(lightemitControlCode);
        //清除播放列表
        lightemitUtils.clearVideoPlay(lightemitControlCode);
        //清除节目列表
        lightemitUtils.clearPlayerTask(lightemitControlCode);
        try {
            lightemitUtils.subTitleSet(subTitleSet, lightemitControlCode, false);
            return true;
        } catch (Exception e) {
            return false;
        } finally {
            //一分钟后清除屏幕
            new Timer().schedule(new TimerTask() {
                @Override
                public void run() {
                    lightemitUtils.clear(lightemitControlCode);
                    //清除播放列表
                    lightemitUtils.clearVideoPlay(lightemitControlCode);
                    //清除节目列表
                    lightemitUtils.clearPlayerTask(lightemitControlCode);
                    //推送最后命令
                    lightemitUtils.sendLastCommand(lightemitControlCode);
                }
            }, 60 * 1000);
        }
    }
}