From a98ab7f009865d113b75708a69ef1a0a8e3d8d3b Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期四, 24 二月 2022 16:33:37 +0800
Subject: [PATCH] 功能完善

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java | 1312 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 659 insertions(+), 653 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
index 3a816b4..a2e2bb6 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
@@ -1,343 +1,660 @@
-//package com.sandu.ximon.admin.service;
-//
-//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-//import com.google.gson.Gson;
-//import com.sandu.common.service.impl.BaseServiceImpl;
-//import com.sandu.ximon.admin.config.NginxConfigBean;
-//import com.sandu.ximon.admin.config.RealtimeServerBean;
-//import com.sandu.ximon.admin.entity.*;
-//import com.sandu.ximon.admin.utils.Constant;
-//import com.sandu.ximon.admin.utils.FileUtil;
-//import com.sandu.ximon.admin.utils.HtmlTemplateUtils;
-//import com.sandu.ximon.admin.utils.LightemitUtils;
-//import com.sandu.ximon.admin.utils.request.SubTitleSet;
-//import com.sandu.ximon.dao.domain.PoleLightemitEntity;
-//import org.apache.commons.lang3.StringUtils;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.cache.annotation.EnableCaching;
-//import org.springframework.context.ApplicationContext;
-//import org.springframework.scheduling.annotation.Async;
-//import org.springframework.stereotype.Service;
-//
-//import javax.annotation.PostConstruct;
-//import java.io.File;
-//import java.io.IOException;
-//import java.util.*;
-//
-//
-//@Service
-//@EnableCaching
-//public class PoleLightemitService extends BaseServiceImpl<PoleLightemitDao, PoleLightemitEntity> {
-//
-//    @Autowired
+package com.sandu.ximon.admin.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.google.gson.Gson;
+import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.config.NginxConfigBean;
+import com.sandu.ximon.admin.config.RealtimeServerBean;
+import com.sandu.ximon.admin.entity.*;
+import com.sandu.ximon.admin.utils.Constant;
+import com.sandu.ximon.admin.utils.FileUtil;
+import com.sandu.ximon.admin.utils.HtmlTemplateUtils;
+import com.sandu.ximon.admin.utils.LightemitUtils;
+import com.sandu.ximon.admin.utils.request.SubTitleSet;
+import com.sandu.ximon.dao.domain.PoleLightemitEntity;
+import com.sandu.ximon.dao.mapper.PoleLightemitEntityMapper;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.context.ApplicationContext;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
+
+
+@Service
+@EnableCaching
+public class PoleLightemitService extends BaseServiceImpl<PoleLightemitEntityMapper, PoleLightemitEntity> {
+
+    //    @Autowired
 //    PoleStreetlightLightemitService poleStreetlightLightemitService;
-//    LightemitUtils lightemitUtils;
-//    @Autowired
-//    RealtimeServerBean realtimeServerBean;
-//    @Value("${server.port}")
-//    private String port;
-//    @Autowired
-//    ApplicationContext applicationContext;
-//    @Autowired
+
+    LightemitUtils lightemitUtils;
+    @Autowired
+    private RealtimeServerBean realtimeServerBean;
+    @Value("${server.port}")
+    private String port;
+    @Autowired
+    ApplicationContext applicationContext;
+    //    @Autowired
 //    FfmpegUtils ffmpegUtils;
 //    @Autowired
 //    FileUploadPathBean fileUploadPathBean;
-//    @Autowired
-//    NginxConfigBean nginxConfigBean;
-//    @Autowired
-//    PoleLightemitDao poleLightemitDao;
-//
-//    @PostConstruct
-//    public  void init(){
-//        //閲嶆柊鑾峰彇鍗曚緥
-//        lightemitUtils = applicationContext.getBean(LightemitUtils.class);
+    @Autowired
+    NginxConfigBean nginxConfigBean;
+
+    @Autowired
+    PoleLightemitEntityMapper poleLightemitDao;
+
+    @PostConstruct
+    public void init() {
+        //閲嶆柊鑾峰彇鍗曚緥
+        lightemitUtils = applicationContext.getBean(LightemitUtils.class);
+    }
+
+    /*@Override
+    public PageUtils queryPage(Map<String, Object> params, Long userId) {
+
+        String key = (String)params.get("key");
+
+        Long groupId = StringUtils.isNotBlank((String)params.get("group"))? Long.valueOf((String)params.get("group")): null;
+
+        String order = (String)params.get("order");
+
+        String column = (String)params.get("sortby");
+
+        IPage<PoleLightemitEntity> page = new Page<>();
+        //鑾峰彇瑙掕壊鍒楄〃
+        Long roleId = (sysUserRoleService.queryRoleId(userId));
+
+        if(roleId == null || roleId == 0){
+            return null;
+        }
+
+        if(roleId.longValue() == Constant.SUPER_ADMIN){
+//            page = this.page(
+//                    new Query<PoleLightemitEntity>().getPage(params),
+//                    new QueryWrapper<PoleLightemitEntity>().like(StringUtils.isNotBlank(key),"lightemit_name", key));
+            if (order != null && order.equals("ASC") && column.equals("isOpen")) {
+                Map<String, Object> map = new HashMap<>();
+                Integer pg = 1;
+                Integer size = 200;
+                map.put("page",pg);
+                params.put("limit",size);
+                page = baseMapper.superAdminSelectPageVo(PageTransform.transformPage(params),key,groupId,order,column);
+                ledOnlineCheck(page.getRecords());
+                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(true)).collect(Collectors.toList()));
+                return new PageUtils(page);
+            }else if (order != null && order.equals("DESC") && column.equals("isOpen")){
+                Map<String, Object> map = new HashMap<>();
+                Integer pg = 1;
+                Integer size = 200;
+                map.put("page",pg);
+                params.put("limit",size);
+                page = baseMapper.superAdminSelectPageVo(PageTransform.transformPage(params),key,groupId,order,column);
+                ledOnlineCheck(page.getRecords());
+                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(false)).collect(Collectors.toList()));
+                return new PageUtils(page);
+            }else {
+                page = baseMapper.superAdminSelectPageVo(PageTransform.transformPage(params), key, groupId,order,column);
+            }
+
+        }else if(roleId.longValue() == Constant.ADMIN){
+            if (order != null && order.equals("ASC") && column.equals("isOpen")) {
+                Map<String, Object> map = new HashMap<>();
+                Integer pg = 1;
+                Integer size = 200;
+                map.put("page",pg);
+                params.put("limit",size);
+                page = baseMapper.adminSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+                ledOnlineCheck(page.getRecords());
+                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(true)).collect(Collectors.toList()));
+                return new PageUtils(page);
+            }else if (order != null && order.equals("DESC") && column.equals("isOpen")){
+                Map<String, Object> map = new HashMap<>();
+                Integer pg = 1;
+                Integer size = 200;
+                map.put("page",pg);
+                params.put("limit",size);
+                page = baseMapper.adminSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+                ledOnlineCheck(page.getRecords());
+                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(false)).collect(Collectors.toList()));
+                return new PageUtils(page);
+            }else {
+                page = baseMapper.adminSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+            }
+
+        }else if(roleId.longValue() == Constant.USER){
+            if (order != null && order.equals("ASC") && column.equals("isOpen")) {
+                Map<String, Object> map = new HashMap<>();
+                Integer pg = 1;
+                Integer size = 200;
+                map.put("page",pg);
+                params.put("limit",size);
+                page = baseMapper.userSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+                ledOnlineCheck(page.getRecords());
+                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(true)).collect(Collectors.toList()));
+                return new PageUtils(page);
+            }else if (order != null && order.equals("DESC") && column.equals("isOpen")){
+                Map<String, Object> map = new HashMap<>();
+                Integer pg = 1;
+                Integer size = 200;
+                map.put("page",pg);
+                params.put("limit",size);
+                page = baseMapper.userSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+                ledOnlineCheck(page.getRecords());
+                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(false)).collect(Collectors.toList()));
+                return new PageUtils(page);
+            }else {
+                page = baseMapper.userSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
+            }
+
+        }
+        ledOnlineCheck(page.getRecords());
+        return new PageUtils(page);
+    }
+*//*
+    @Override
+    public List<PoleLightemitEntity> getAll(Long userId) {
+        //鑾峰彇瑙掕壊鍒楄〃
+        Long roleId = (sysUserRoleService.queryRoleId(userId));
+
+        if(roleId == null || roleId == 0){
+            return null;
+        }
+        List<PoleLightemitEntity> list = null;
+        if(roleId.longValue() == Constant.SUPER_ADMIN){
+            list = poleLightemitDao.selectAll();
+        }else if(roleId.longValue() == Constant.ADMIN){
+            list = poleLightemitDao.selectAllByCompany(userId);
+        }else if(roleId.longValue() == Constant.USER){
+            list = poleLightemitDao.selectAllByUser(userId);
+        }
+        return list;
+    }
+*/
+
+/*    public void ledOnlineCheck(List<PoleLightemitEntity> list) {
+
+        for(PoleLightemitEntity poleLightemitEntity : list){
+            poleLightemitEntity.setIsOpen(lightemitUtils.getIsScreenOpen(poleLightemitEntity.getLightemitControlCode()).contains("true"));
+        }
+    }*/
+
+
+    public void savePoleLightemit(PoleLightemitEntity poleLightemit) {
+        boolean save = this.save(poleLightemit);
+        // 缁戝畾鐏潌
+        if(save&&poleLightemit.getPoleId()!=null){
+
+        }
+      //  poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
+    }
+
+
+  /*  public void updatePoleLightemit(PoleLightemitEntity poleLightemit) {
+        this.updateById(poleLightemit);
+        poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
+    }*/
+
+    /**
+     * 鏌ヨ鏉冮檺鑼冨洿鍐呯殑鎵�鏈塴ed灞忎俊鎭�
+     *
+     * @param
+     * @return
+     */
+   /* public List<PoleLightemitEntity> selectLightemitByUserId(Long userId) {
+        List<PoleLightemitEntity> list = new ArrayList<>();
+
+        Long roleId = sysUserRoleService.queryRoleId(userId);
+
+        if(roleId == null || roleId == 0){
+            return new ArrayList<>();
+        }
+        if(roleId.longValue() == Constant.SUPER_ADMIN){
+            list = this.list();
+        }else if(roleId.longValue() == Constant.ADMIN){
+            list = baseMapper.selectCompanyLightemitByUserId(userId);
+        }else if(roleId.longValue() == Constant.USER){
+            list = baseMapper.selectLightemitByUserId(userId);
+        }
+        return list;
+    }
+*/
+    /*
+    閫氳繃灞忓箷缂栫爜鏌ヨ
+     */
+    public PoleLightemitEntity selectByLightemitControlCode(String lightemitControlCode) {
+        QueryWrapper<PoleLightemitEntity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("lightemit_control_code", lightemitControlCode);
+        return this.getOne(queryWrapper);
+    }
+
+    /*
+    led涓婁紶鍥剧墖
+     */
+    @Async("taskExecutor")
+    public void photoUpload(String lightemitControlCode, String path, List<String> filenameList, String userName) throws IOException {
+        //鑾峰彇灞忓箷瀹�
+        String screenWidth = lightemitUtils.getScreenWidth(lightemitControlCode);
+        String screenHeight = lightemitUtils.getScreenHeight(lightemitControlCode);
+
+        //html鍦板潃
+        String filenameTemp = path + userName + "_" + lightemitControlCode + ".html";
+        File htmlFile = new File(filenameTemp);
+        if (!htmlFile.exists() || htmlFile.delete()) {
+            htmlFile.createNewFile();
+        }
+
+        //鑾峰彇body鐨刪tml
+        Map<String, Object> params = new HashMap<>();
+        params.put("imgList", filenameList);
+        params.put("screenWidth", screenWidth);
+        params.put("screenHeight", screenHeight);
+
+        String body = new HtmlTemplateUtils().renderPath("classpath:templates/lightemitTemplates/photoTemplates.html", params);
+
+        boolean flag = new FileUtil().writeToFile(body, filenameTemp);
+
+        if (flag) {
+            //娓呭睆鎿嶄綔
+            lightemitUtils.clear(lightemitControlCode);
+            //娓呴櫎鎾斁鍒楄〃
+            lightemitUtils.clearVideoPlay(lightemitControlCode);
+            //娓呴櫎鑺傜洰鍒楄〃
+            lightemitUtils.clearPlayerTask(lightemitControlCode);
+            //鎺ㄩ�佸浘鐗�
+            lightemitUtils.postHtml(lightemitControlCode, userName);
+        }
+    }
+
+    /*
+    led涓婁紶瑙嗛
+     */
+
+    @Async("taskExecutor")
+    public void videoUpload(String lightemitControlCode, String filename, String path, String userName) throws IOException {
+        //鑾峰彇灞忓箷瀹�
+        String screenWidth = lightemitUtils.getScreenWidth(lightemitControlCode);
+        String screenHeight = lightemitUtils.getScreenHeight(lightemitControlCode);
+
+        //鍙戦�佽棰戣嚦寮�鍙戞澘骞舵挱鏀�
+        lightemitUtils.postVideo(screenWidth, screenHeight, filename, lightemitControlCode);
+
+        //娓呭睆
+        lightemitUtils.clear(lightemitControlCode);
+
+    }
+
+    /**
+     * LED涓婁紶鍗曡瀛楀箷
+     */
+    @Async("taskExecutor")
+    public Boolean subTitleSet(SubTitleSetEntity subTitleSetEntity, String path, String userName) {
+        if (subTitleSetEntity == null) {
+            return false;
+        }
+        if (subTitleSetEntity.getDirection().equals(Constant.LEFT) || subTitleSetEntity.getDirection().equals(Constant.RIGHT)) {
+            //瀛楀箷妯悜婊氬姩
+            this.BuildHorizonSingSubTitleText(subTitleSetEntity);
+        } else if (subTitleSetEntity.getDirection().equals(Constant.UP) || subTitleSetEntity.getDirection().equals(Constant.DOWN)) {
+            //瀛楀箷绾靛悜婊氬姩
+            try {
+                this.BuildVerticalSingSubTitleText(subTitleSetEntity, path, userName);
+            } catch (IOException e) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * LED涓婁紶澶氳瀛楀箷
+     */
+    @Async("taskExecutor")
+    public Boolean subMultiTitleSet(SubTitleSetEntity subTitleSetEntity, String path, String userName) {
+        try {
+            this.BuildVerticalMultiSubTitleText(subTitleSetEntity, path, userName);
+            return true;
+        } catch (IOException e) {
+            return false;
+        }
+    }
+
+    /*
+    鍒犻櫎
+     */
+
+   /* public void deleteByIds(List<Long> lightemitIds) {
+        this.removeByIds(lightemitIds);
+        //鍒犻櫎鍏崇郴琛ㄤ腑鐨勬暟鎹�
+        poleStreetlightLightemitService.remove(
+                new UpdateWrapper<PoleStreetlightLightemitEntity>().in("lightemit_id", lightemitIds.toArray()));
+    }*/
+
+    /*
+    鐔欒瑙嗛璁剧疆
+     */
+
+    @Async("taskExecutor")
+    public void videoXixunPlayer(String lightemitControlCode, String ip, String filename, Long filesize, Integer videoTime) {
+        //鑾峰彇灞忓箷瀹�
+        Integer screenWidth = Integer.valueOf(lightemitUtils.getScreenWidth(lightemitControlCode));
+        Integer screenHeight = Integer.valueOf(lightemitUtils.getScreenHeight(lightemitControlCode));
+        Source source = new Source();
+        Layer layer = new Layer();
+        Program pro = new Program();
+        TaskItem items = new TaskItem();
+        ProgramsTask task = new ProgramsTask();
+        Command command = new Command();
+        XixunPlayer xixun = new XixunPlayer();
+        source.set_id(UUID.randomUUID().toString());//鎵�鏈塤id閮藉彲鐢║UID闅忔満鐢熸垚
+        source.setId(filename);//璇锋眰澶存嫾鎺ヨID涓鸿璧勬簮鐨勫畬鏁翠笅杞藉湴鍧�
+        source.set_type("Video");    //璁剧疆璧勬簮绫诲瀷锛屽叾浠栬祫婧愮被鍨嬭鍙傝�儀ixunplayer鑺傜洰json璇存槑鏂囨。
+        source.setFileExt(".mp4");    //璧勬簮鍚庣紑鍚�
+        source.setHeight(screenHeight);        //璧勬簮楂樺害
+        source.setWidth(screenWidth);        //璧勬簮瀹藉害
+        source.setLeft(0);            //璺濆乏
+        source.setMd5("dd135d5d2d44d619a542db773ab529a4");
+        source.setMime("video/mp4");
+        source.setName(filename);
+        source.setPlayTime(0);    //鎾斁璧峰鏃堕棿
+        source.setSize(filesize);    //璧勬簮瀛楄妭鏁帮紝瑕佺簿鍑�
+        source.setTimeSpan(videoTime);        //璇ヨ祫婧愭挱鏀炬椂闀�
+        source.setTop(0);            //璺濋《
+        List<Source> list = new ArrayList<Source>();
+        list.add(source);
+        layer.setSources(list);
+        pro.set_id(UUID.randomUUID().toString());
+        pro.setHeight(screenHeight);        //鑺傜洰楂樺害
+        List<Layer> list1 = new ArrayList<Layer>();
+        list1.add(layer);
+        pro.setLayers(list1);
+        pro.setName("demo");    //鑺傜洰鍚嶇О
+        pro.setOthers(true);//濡傛灉涓簍rue锛屽垯璇ヨ妭鐩潵鑷涓夋柟鎺ュ彛锛屼笉鏄潵鑷垜浠嚜宸辩殑web锛屼簩娆″紑鍙戣鍔″繀璧嬪�间负true
+        pro.setTotalSize(filesize);    //鎵�鏈夎祫婧愭�诲瓧鑺傛暟
+        pro.setVersion(0);            //楂樼骇鑺傜洰=0锛岀畝鏄撹妭鐩�=2
+        pro.setWidth(screenWidth);        //鑺傜洰瀹藉害
+        items.set_id(UUID.randomUUID().toString());
+        items.set_program(pro);
+        items.setRepeatTimes(1);
+        items.setSchedules(null);//瀹氭椂娈碉紝涓嶅仛瀹氭椂鍙负null
+        task.set_id(UUID.randomUUID().toString());
+        task.setName("杩欐槸涓�涓ず渚�");
+        List<TaskItem> list2 = new ArrayList<TaskItem>();
+        list2.add(items);
+        task.setItems(list2);
+        command.setId(UUID.randomUUID().toString());
+        //杩欓噷鏄笅鏂圭殑post鍥炶皟鍦板潃锛岄渶瑕佷慨鏀笽P鍦板潃
+        command.setNotificationURL("http://" + ip + ":" + port + "/machine-fast/serv/download/getJSON");
+        //璧勬簮涓嬭浇閾炬帴鐨勮姹傚ご
+        command.setPreDownloadURL("http://" + ip + ":" + port + "/machine-fast/serv/download/downloadFile/");
+        command.setTask(task);
+        xixun.set_id(UUID.randomUUID().toString());
+        xixun.setCommand(command);
+        xixun.setType("commandXixunPlayer");    //鍛戒护鍥哄畾绫诲瀷锛屼笉鍙洿鏀�
+        String jsondata = new Gson().toJson(xixun);
+        lightemitUtils.clear(lightemitControlCode);
+        poleLightemitDao.updateRequestBody(lightemitControlCode, jsondata);
+        lightemitUtils.post(realtimeServerBean.getCommand() + lightemitControlCode, jsondata);
+    }
+
+    /*
+    鎺ㄩ�佸ぉ姘旀暟鎹�
+     */
+
+    //@Async("taskExecutor")
+   /* public Boolean pushWeather(String lightemitControlCode, PoleSensorEntity sensorEntity, PoleStreetlightEntity 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.getBrightness() == null? "-": sensorEntity.getBrightness()) + "lux<br/>" +
+                        "椋庨�燂細" + (sensorEntity == null || sensorEntity.getWindSpeed() == null? "-": sensorEntity.getWindSpeed()) + "m/s<br/>" +
+                        "CO2锛�" + (sensorEntity == null || sensorEntity.getEco2() == null? "-": sensorEntity.getEco2()) + "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);
+        }
+    }*/
+
+    /*
+    鏇存柊璇锋眰鏁版嵁
+     */
+
+    public void updateRequestBody(String ledCode, String postBody) {
+        baseMapper.updateRequestBody(ledCode, postBody);
+    }
+
+    /*
+    鏍规嵁led灞忕紪鐮佽幏鍙栫伅鏉嗘墍鏈変俊鎭�
+     */
+
+//    public PoleStreetlightEntity getStreetlightByLedCode(String ledCode) {
+//        return baseMapper.getStreetlightByLedCode(ledCode);
 //    }
-//
-//    /*@Override
-//    public PageUtils queryPage(Map<String, Object> params, Long userId) {
-//
-//        String key = (String)params.get("key");
-//
-//        Long groupId = StringUtils.isNotBlank((String)params.get("group"))? Long.valueOf((String)params.get("group")): null;
-//
-//        String order = (String)params.get("order");
-//
-//        String column = (String)params.get("sortby");
-//
-//        IPage<PoleLightemitEntity> page = new Page<>();
-//        //鑾峰彇瑙掕壊鍒楄〃
-//        Long roleId = (sysUserRoleService.queryRoleId(userId));
-//
-//        if(roleId == null || roleId == 0){
-//            return null;
-//        }
-//
-//        if(roleId.longValue() == Constant.SUPER_ADMIN){
-////            page = this.page(
-////                    new Query<PoleLightemitEntity>().getPage(params),
-////                    new QueryWrapper<PoleLightemitEntity>().like(StringUtils.isNotBlank(key),"lightemit_name", key));
-//            if (order != null && order.equals("ASC") && column.equals("isOpen")) {
-//                Map<String, Object> map = new HashMap<>();
-//                Integer pg = 1;
-//                Integer size = 200;
-//                map.put("page",pg);
-//                params.put("limit",size);
-//                page = baseMapper.superAdminSelectPageVo(PageTransform.transformPage(params),key,groupId,order,column);
-//                ledOnlineCheck(page.getRecords());
-//                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(true)).collect(Collectors.toList()));
-//                return new PageUtils(page);
-//            }else if (order != null && order.equals("DESC") && column.equals("isOpen")){
-//                Map<String, Object> map = new HashMap<>();
-//                Integer pg = 1;
-//                Integer size = 200;
-//                map.put("page",pg);
-//                params.put("limit",size);
-//                page = baseMapper.superAdminSelectPageVo(PageTransform.transformPage(params),key,groupId,order,column);
-//                ledOnlineCheck(page.getRecords());
-//                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(false)).collect(Collectors.toList()));
-//                return new PageUtils(page);
-//            }else {
-//                page = baseMapper.superAdminSelectPageVo(PageTransform.transformPage(params), key, groupId,order,column);
-//            }
-//
-//        }else if(roleId.longValue() == Constant.ADMIN){
-//            if (order != null && order.equals("ASC") && column.equals("isOpen")) {
-//                Map<String, Object> map = new HashMap<>();
-//                Integer pg = 1;
-//                Integer size = 200;
-//                map.put("page",pg);
-//                params.put("limit",size);
-//                page = baseMapper.adminSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
-//                ledOnlineCheck(page.getRecords());
-//                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(true)).collect(Collectors.toList()));
-//                return new PageUtils(page);
-//            }else if (order != null && order.equals("DESC") && column.equals("isOpen")){
-//                Map<String, Object> map = new HashMap<>();
-//                Integer pg = 1;
-//                Integer size = 200;
-//                map.put("page",pg);
-//                params.put("limit",size);
-//                page = baseMapper.adminSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
-//                ledOnlineCheck(page.getRecords());
-//                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(false)).collect(Collectors.toList()));
-//                return new PageUtils(page);
-//            }else {
-//                page = baseMapper.adminSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
-//            }
-//
-//        }else if(roleId.longValue() == Constant.USER){
-//            if (order != null && order.equals("ASC") && column.equals("isOpen")) {
-//                Map<String, Object> map = new HashMap<>();
-//                Integer pg = 1;
-//                Integer size = 200;
-//                map.put("page",pg);
-//                params.put("limit",size);
-//                page = baseMapper.userSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
-//                ledOnlineCheck(page.getRecords());
-//                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(true)).collect(Collectors.toList()));
-//                return new PageUtils(page);
-//            }else if (order != null && order.equals("DESC") && column.equals("isOpen")){
-//                Map<String, Object> map = new HashMap<>();
-//                Integer pg = 1;
-//                Integer size = 200;
-//                map.put("page",pg);
-//                params.put("limit",size);
-//                page = baseMapper.userSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
-//                ledOnlineCheck(page.getRecords());
-//                page.setRecords(page.getRecords().stream().filter(h-> h.getIsOpen().equals(false)).collect(Collectors.toList()));
-//                return new PageUtils(page);
-//            }else {
-//                page = baseMapper.userSelectPageVo(PageTransform.transformPage(params), userId, key, groupId,order,column);
-//            }
-//
-//        }
-//        ledOnlineCheck(page.getRecords());
-//        return new PageUtils(page);
+
+    /*
+    鏍规嵁led灞忕紪鐮佽缃煶閲�
+     */
+
+    @Async("taskExecutor")
+    public void setVolume(String lightemitControlCode, Integer volume) {
+        lightemitUtils.setVoiume(lightemitControlCode, volume);
+    }
+
+
+//    public List<PoleLightemitEntity> listOfStreetlight(String streetlightId) {
+//        return baseMapper.listOfStreetlight(streetlightId);
 //    }
-//*//*
-//    @Override
-//    public List<PoleLightemitEntity> getAll(Long userId) {
-//        //鑾峰彇瑙掕壊鍒楄〃
-//        Long roleId = (sysUserRoleService.queryRoleId(userId));
-//
-//        if(roleId == null || roleId == 0){
-//            return null;
-//        }
-//        List<PoleLightemitEntity> list = null;
-//        if(roleId.longValue() == Constant.SUPER_ADMIN){
-//            list = poleLightemitDao.selectAll();
-//        }else if(roleId.longValue() == Constant.ADMIN){
-//            list = poleLightemitDao.selectAllByCompany(userId);
-//        }else if(roleId.longValue() == Constant.USER){
-//            list = poleLightemitDao.selectAllByUser(userId);
-//        }
-//        return list;
+
+
+//    public List<PoleLightemitEntity> selectLedByStreetlightId(String streetlightId) {
+//        return baseMapper.getLedByStreetlightId(streetlightId);
 //    }
-//*/
-//
-///*    public void ledOnlineCheck(List<PoleLightemitEntity> list) {
-//
-//        for(PoleLightemitEntity poleLightemitEntity : list){
-//            poleLightemitEntity.setIsOpen(lightemitUtils.getIsScreenOpen(poleLightemitEntity.getLightemitControlCode()).contains("true"));
-//        }
-//    }*/
-//
-//
-//   /* public void savePoleLightemit(PoleLightemitEntity poleLightemit) {
-//        this.save(poleLightemit);
-//        poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
-//    }*/
-//
-//
-//  /*  public void updatePoleLightemit(PoleLightemitEntity poleLightemit) {
-//        this.updateById(poleLightemit);
-//        poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
-//    }*/
-//
-//    /**
-//     * 鏌ヨ鏉冮檺鑼冨洿鍐呯殑鎵�鏈塴ed灞忎俊鎭�
-//     * @param
-//     * @return
-//     */
-//   /* public List<PoleLightemitEntity> selectLightemitByUserId(Long userId) {
-//        List<PoleLightemitEntity> list = new ArrayList<>();
-//
-//        Long roleId = sysUserRoleService.queryRoleId(userId);
-//
-//        if(roleId == null || roleId == 0){
-//            return new ArrayList<>();
-//        }
-//        if(roleId.longValue() == Constant.SUPER_ADMIN){
-//            list = this.list();
-//        }else if(roleId.longValue() == Constant.ADMIN){
-//            list = baseMapper.selectCompanyLightemitByUserId(userId);
-//        }else if(roleId.longValue() == Constant.USER){
-//            list = baseMapper.selectLightemitByUserId(userId);
-//        }
-//        return list;
-//    }
-//*/
-//    /*
-//    閫氳繃灞忓箷缂栫爜鏌ヨ
-//     */
-//
-//    public PoleLightemitEntity selectByLightemitControlCode(String lightemitControlCode) {
-//        QueryWrapper<PoleLightemitEntity> queryWrapper = new QueryWrapper<>();
-//        queryWrapper.eq("lightemit_control_code", lightemitControlCode);
-//        return this.getOne(queryWrapper);
-//    }
-//
-//    /*
-//    led涓婁紶鍥剧墖
-//     */
-//    @Async("taskExecutor")
-//    public void photoUpload(String lightemitControlCode, String path, List<String> filenameList, String userName) throws IOException {
-//        //鑾峰彇灞忓箷瀹�
-//        String screenWidth = lightemitUtils.getScreenWidth(lightemitControlCode);
-//        String screenHeight = lightemitUtils.getScreenHeight(lightemitControlCode);
-//
-//        //html鍦板潃
-//        String filenameTemp = path + userName + "_"+lightemitControlCode + ".html";
-//        File htmlFile = new File(filenameTemp);
-//        if (!htmlFile.exists() || htmlFile.delete()) {
-//            htmlFile.createNewFile();
-//        }
-//
-//        //鑾峰彇body鐨刪tml
-//        Map<String, Object> params = new HashMap<>();
-//        params.put("imgList",filenameList);
-//        params.put("screenWidth",screenWidth);
-//        params.put("screenHeight",screenHeight);
-//
-//        String body = new HtmlTemplateUtils().renderPath("classpath:templates/lightemitTemplates/photoTemplates.html", params);
-//
-//        boolean flag = new FileUtil().writeToFile(body, filenameTemp);
-//
-//        if(flag){
-//            //娓呭睆鎿嶄綔
-//            lightemitUtils.clear(lightemitControlCode);
-//            //娓呴櫎鎾斁鍒楄〃
-//            lightemitUtils.clearVideoPlay(lightemitControlCode);
-//            //娓呴櫎鑺傜洰鍒楄〃
-//            lightemitUtils.clearPlayerTask(lightemitControlCode);
-//            //鎺ㄩ�佸浘鐗�
-//            lightemitUtils.postHtml(lightemitControlCode,userName);
-//        }
-//    }
-//
-//    /*
-//    led涓婁紶瑙嗛
-//     */
-//
-//    @Async("taskExecutor")
-//    public void videoUpload(String lightemitControlCode, String filename, String path, String userName) throws IOException {
-//        //鑾峰彇灞忓箷瀹�
-//        String screenWidth = lightemitUtils.getScreenWidth(lightemitControlCode);
-//        String screenHeight = lightemitUtils.getScreenHeight(lightemitControlCode);
-//
-//        //鍙戦�佽棰戣嚦寮�鍙戞澘骞舵挱鏀�
-//        lightemitUtils.postVideo(screenWidth, screenHeight, filename, lightemitControlCode);
-//
-//        //娓呭睆
-//        lightemitUtils.clear(lightemitControlCode);
-//
-//    }
-//
-//    /**
-//     * LED涓婁紶鍗曡瀛楀箷
-//     */
-//    @Async("taskExecutor")
-//    public Boolean subTitleSet(SubTitleSetEntity subTitleSetEntity, String path, String userName) {
-//        if(subTitleSetEntity == null){
-//            return false;
-//        }
-//        if(subTitleSetEntity.getDirection().equals(Constant.LEFT) || subTitleSetEntity.getDirection().equals(Constant.RIGHT)){
-//            //瀛楀箷妯悜婊氬姩
-//            this.BuildHorizonSingSubTitleText(subTitleSetEntity);
-//        }else if (subTitleSetEntity.getDirection().equals(Constant.UP) || subTitleSetEntity.getDirection().equals(Constant.DOWN)){
-//            //瀛楀箷绾靛悜婊氬姩
-//            try {
-//                this.BuildVerticalSingSubTitleText(subTitleSetEntity, path, userName);
-//            }catch (IOException e){
-//                return false;
-//            }
-//        }
-//        return true;
-//    }
-//
-//    /**
-//     * LED涓婁紶澶氳瀛楀箷
-//     */
-//    @Async("taskExecutor")
-//    public Boolean subMultiTitleSet(SubTitleSetEntity subTitleSetEntity, String path, String userName) {
-//        try{
-//            this.BuildVerticalMultiSubTitleText(subTitleSetEntity, path, userName);
-//            return true;
-//        }catch (IOException e){
-//            return false;
-//        }
-//    }
-//
-//    /*
-//    鍒犻櫎
-//     */
-//
-//   /* public void deleteByIds(List<Long> lightemitIds) {
-//        this.removeByIds(lightemitIds);
-//        //鍒犻櫎鍏崇郴琛ㄤ腑鐨勬暟鎹�
-//        poleStreetlightLightemitService.remove(
-//                new UpdateWrapper<PoleStreetlightLightemitEntity>().in("lightemit_id", lightemitIds.toArray()));
-//    }*/
-//
-//    /*
-//    鐔欒瑙嗛璁剧疆
-//     */
-//
-//    @Async("taskExecutor")
-//    public void videoXixunPlayer(String lightemitControlCode, String ip, String filename, Long filesize, Integer videoTime) {
-//        //鑾峰彇灞忓箷瀹�
+
+    /*
+        涓婁紶姘村钩婊氬姩鍗曡瀛楀箷
+         */
+    private void BuildHorizonSingSubTitleText(SubTitleSetEntity subTitleSetEntity) {
+        //鎷艰LED灞忓箷璁剧疆璇锋眰body
+        SubTitleSet subTitleSet = new SubTitleSet();
+        subTitleSet.num = subTitleSetEntity.getNum() != null ? subTitleSetEntity.getNum() : subTitleSet.num;
+        subTitleSet.interval = subTitleSetEntity.getInterval() != null ? subTitleSetEntity.getInterval() : subTitleSet.interval;
+        subTitleSet.step = subTitleSetEntity.getStep() != null ? subTitleSetEntity.getStep() : subTitleSet.step;
+        subTitleSet.direction = subTitleSetEntity.getDirection() != null ? subTitleSetEntity.getDirection() : subTitleSet.direction;
+        subTitleSet.align = subTitleSetEntity.getAlign() != null ? subTitleSetEntity.getAlign() : subTitleSet.align;
+        //鎷兼帴html 鑳屾櫙榛樿鏄捐壊涓虹櫧鑹�
+        subTitleSet.html = "<head><style type=\"text/css\">body{background-color:" +
+                (subTitleSetEntity.getColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getColor()) ? subTitleSetEntity.getColor() : "#000000") +
+                "}</style></head><i style=\"color:" +
+                (subTitleSetEntity.getFontColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontColor()) ? subTitleSetEntity.getFontColor() : "#ffffff")
+                + "; font-size: " +
+                (subTitleSetEntity.getFontSize() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontSize()) ? subTitleSetEntity.getFontSize() : "1")
+                + "em\">" + subTitleSetEntity.getContent() + "</i>";
+
+        //鑾峰彇鎵�鏈塴ed鏁版嵁
+        Collection poleLightemitControllers = this.listByIds(Arrays.asList(subTitleSetEntity.getId()));
+        if (!poleLightemitControllers.isEmpty()) {
+            Iterator iterator = poleLightemitControllers.iterator();
+            while (iterator.hasNext()) {
+                PoleLightemitEntity poleLightemitEntity = (PoleLightemitEntity) iterator.next();
+                //娓呭睆鎿嶄綔
+                lightemitUtils.clear(poleLightemitEntity.getLightemitControlCode());
+                //娓呴櫎鎾斁鍒楄〃
+                lightemitUtils.clearVideoPlay(poleLightemitEntity.getLightemitControlCode());
+                //娓呴櫎鑺傜洰鍒楄〃
+                lightemitUtils.clearPlayerTask(poleLightemitEntity.getLightemitControlCode());
+                //鍙戦�佸瓧骞曡缃姹�
+                lightemitUtils.subTitleSet(subTitleSet, poleLightemitEntity.getLightemitControlCode(), true);
+            }
+        }
+    }
+
+    /*
+    涓婁紶鍨傜洿婊氬姩鍗曡瀛楀箷
+     */
+    private void BuildVerticalSingSubTitleText(SubTitleSetEntity subTitleSetEntity, String path, String userName) throws IOException {
+        //html鍦板潃
+        //鑾峰彇鎵�鏈塴ed鏁版嵁
+        Collection poleLightemitControllers = this.listByIds(Arrays.asList(subTitleSetEntity.getId()));
+        if (!poleLightemitControllers.isEmpty()) {
+            Iterator iterator = poleLightemitControllers.iterator();
+            while (iterator.hasNext()) {
+                PoleLightemitEntity poleLightemitEntity = (PoleLightemitEntity) iterator.next();
+
+                String lightemitControlCode = poleLightemitEntity.getLightemitControlCode();
+
+                //鑾峰彇灞忓箷瀹�
+                Integer screenWidth = Integer.valueOf(lightemitUtils.getScreenWidth(lightemitControlCode));
+                Integer screenHeight = Integer.valueOf(lightemitUtils.getScreenHeight(lightemitControlCode));
+
+                String filenameTemp = path + userName + "_" + lightemitControlCode + ".html";
+                File htmlFile = new File(filenameTemp);
+                if (!htmlFile.exists() || htmlFile.delete()) {
+                    htmlFile.createNewFile();
+                }
+
+                //鑻ュ悜涓嬫粴鍔紝鏂囧瓧椤哄簭鐩稿弽
+                if (Constant.DOWN.equals(subTitleSetEntity.getDirection())) {
+                    subTitleSetEntity.setContent(StringUtils.reverse(subTitleSetEntity.getContent()));
+                }
+
+                Map<String, Object> params = new HashMap<>();
+                params.put("direction", subTitleSetEntity.getDirection());
+                params.put("screenWidth", screenWidth);
+                params.put("screenHeight", screenHeight);
+                params.put("fontSize", subTitleSetEntity.getFontSize() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontSize()) ? subTitleSetEntity.getFontSize() : "1");
+                params.put("align", subTitleSetEntity.getAlign());
+                params.put("fontColor", subTitleSetEntity.getFontColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontColor()) ? subTitleSetEntity.getFontColor() : "#ffffff");
+                params.put("backgroundColor", subTitleSetEntity.getColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getColor()) ? subTitleSetEntity.getColor() : "#000000");
+                params.put("interval", subTitleSetEntity.getInterval() != null ? subTitleSetEntity.getInterval() : 50);
+                params.put("step", subTitleSetEntity.getStep() != null ? subTitleSetEntity.getStep() : 1);
+                params.put("num", subTitleSetEntity.getNum() != null ? subTitleSetEntity.getNum() : -1);
+                params.put("contentArray", subTitleSetEntity.getContent().toCharArray());
+
+                String body = new HtmlTemplateUtils().renderPath("classpath:templates/lightemitTemplates/buildVerticalSingSubTitleTemplates.html", params);
+
+                boolean flag = new FileUtil().writeToFile(body, filenameTemp);
+
+                if (flag) {
+                    //娓呭睆鎿嶄綔
+                    lightemitUtils.clear(lightemitControlCode);
+                    //娓呴櫎鎾斁鍒楄〃
+                    lightemitUtils.clearVideoPlay(lightemitControlCode);
+                    //娓呴櫎鑺傜洰鍒楄〃
+                    lightemitUtils.clearPlayerTask(lightemitControlCode);
+                    //鎺ㄩ��
+                    lightemitUtils.postHtmlUseNginx(lightemitControlCode, userName);
+                }
+            }
+        }
+    }
+
+
+    /*
+    涓婁紶鍨傜洿婊氬姩澶氳瀛楀箷
+     */
+    private void BuildVerticalMultiSubTitleText(SubTitleSetEntity subTitleSetEntity, String path, String userName) throws IOException {
+        //html鍦板潃
+        //鑾峰彇鎵�鏈塴ed鏁版嵁
+        Collection poleLightemitControllers = this.listByIds(Arrays.asList(subTitleSetEntity.getId()));
+        if (!poleLightemitControllers.isEmpty()) {
+            Iterator iterator = poleLightemitControllers.iterator();
+            while (iterator.hasNext()) {
+                PoleLightemitEntity poleLightemitEntity = (PoleLightemitEntity) iterator.next();
+
+                String lightemitControlCode = poleLightemitEntity.getLightemitControlCode();
+
+                //鑾峰彇灞忓箷瀹�
+                Integer screenWidth = Integer.valueOf(lightemitUtils.getScreenWidth(lightemitControlCode));
+                Integer screenHeight = Integer.valueOf(lightemitUtils.getScreenHeight(lightemitControlCode));
+
+                String filenameTemp = path + userName + "_" + lightemitControlCode + ".html";
+                File htmlFile = new File(filenameTemp);
+                if (!htmlFile.exists() || htmlFile.delete()) {
+                    htmlFile.createNewFile();
+                }
+
+                Map<String, Object> params = new HashMap<>();
+                params.put("direction", subTitleSetEntity.getDirection());
+                params.put("screenWidth", screenWidth);
+                params.put("screenHeight", screenHeight);
+                params.put("fontSize", subTitleSetEntity.getFontSize() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontSize()) ? subTitleSetEntity.getFontSize() : "1");
+                params.put("align", subTitleSetEntity.getAlign());
+                params.put("fontColor", subTitleSetEntity.getFontColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontColor()) ? subTitleSetEntity.getFontColor() : "#ffffff");
+                params.put("backgroundColor", subTitleSetEntity.getColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getColor()) ? subTitleSetEntity.getColor() : "#000000");
+                params.put("interval", subTitleSetEntity.getInterval() != null ? subTitleSetEntity.getInterval() : 50);
+                params.put("step", subTitleSetEntity.getStep() != null ? subTitleSetEntity.getStep() : 1);
+                params.put("num", subTitleSetEntity.getNum() != null ? subTitleSetEntity.getNum() : -1);
+                params.put("contentArray", subTitleSetEntity.getContent().split("\n"));
+
+                String body = new HtmlTemplateUtils().renderPath("classpath:templates/lightemitTemplates/buildVerticalSingSubTitleTemplates.html", params);
+
+                boolean flag = new FileUtil().writeToFile(body, filenameTemp);
+
+                if (flag) {
+                    //娓呭睆鎿嶄綔
+                    lightemitUtils.clear(lightemitControlCode);
+                    //娓呴櫎鎾斁鍒楄〃
+                    lightemitUtils.clearVideoPlay(lightemitControlCode);
+                    //娓呴櫎鑺傜洰鍒楄〃
+                    lightemitUtils.clearPlayerTask(lightemitControlCode);
+                    //鎺ㄩ��
+                    lightemitUtils.postHtmlUseNginx(lightemitControlCode, userName);
+                }
+            }
+        }
+    }
+
+    //   @Override
+    public void xixunplaySetting(String lightemitControlCode) {
+        //鑾峰彇灞忓箷瀹�
 //        Integer screenWidth = Integer.valueOf(lightemitUtils.getScreenWidth(lightemitControlCode));
 //        Integer screenHeight = Integer.valueOf(lightemitUtils.getScreenHeight(lightemitControlCode));
 //        Source source = new Source();
@@ -345,7 +662,7 @@
 //        Program pro = new Program();
 //        TaskItem items = new TaskItem();
 //        ProgramsTask task = new ProgramsTask();
-//        Command command = new Command();
+//        Command payload = new Command();
 //        XixunPlayer xixun = new XixunPlayer();
 //        source.set_id(UUID.randomUUID().toString());//鎵�鏈塤id閮藉彲鐢║UID闅忔満鐢熸垚
 //        source.setId(filename);//璇锋眰澶存嫾鎺ヨID涓鸿璧勬簮鐨勫畬鏁翠笅杞藉湴鍧�
@@ -361,7 +678,7 @@
 //        source.setSize(filesize);	//璧勬簮瀛楄妭鏁帮紝瑕佺簿鍑�
 //        source.setTimeSpan(videoTime);		//璇ヨ祫婧愭挱鏀炬椂闀�
 //        source.setTop(0);			//璺濋《
-//        List<Source> list=new ArrayList<Source>();
+//        List<Source> list = new ArrayList<Source>();
 //        list.add(source);
 //        layer.setSources(list);
 //        pro.set_id(UUID.randomUUID().toString());
@@ -383,329 +700,18 @@
 //        List<TaskItem> list2=new ArrayList<TaskItem>();
 //        list2.add(items);
 //        task.setItems(list2);
-//        command.setId(UUID.randomUUID().toString());
+//        payload.setId(UUID.randomUUID().toString());
 //        //杩欓噷鏄笅鏂圭殑post鍥炶皟鍦板潃锛岄渶瑕佷慨鏀笽P鍦板潃
-//        command.setNotificationURL("http://" + ip + ":" + port + "/machine-fast/serv/download/getJSON");
+//        payload.setNotificationURL("http://" + ip + ":" + port + "/machine-fast/serv/download/getJSON");
 //        //璧勬簮涓嬭浇閾炬帴鐨勮姹傚ご
-//        command.setPreDownloadURL("http://" + ip + ":" + port + "/machine-fast/serv/download/downloadFile/");
-//        command.setTask(task);
+//        payload.setPreDownloadURL("http://" + ip + ":" + port + "/machine-fast/serv/download/downloadFile/");
+//        payload.setTask(task);
 //        xixun.set_id(UUID.randomUUID().toString());
-//        xixun.setCommand(command);
+//        xixun.setCommand(payload);
 //        xixun.setType("commandXixunPlayer");	//鍛戒护鍥哄畾绫诲瀷锛屼笉鍙洿鏀�
 //        String jsondata = new Gson().toJson(xixun);
 //        lightemitUtils.clear(lightemitControlCode);
 //        this.updateRequestBody(lightemitControlCode,jsondata);
 //        lightemitUtils.post(realtimeServerBean.getCommand() + lightemitControlCode,jsondata);
-//    }
-//
-//    /*
-//    鎺ㄩ�佸ぉ姘旀暟鎹�
-//     */
-//
-//    //@Async("taskExecutor")
-//   /* public Boolean pushWeather(String lightemitControlCode, PoleSensorEntity sensorEntity, PoleStreetlightEntity 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.getBrightness() == null? "-": sensorEntity.getBrightness()) + "lux<br/>" +
-//                        "椋庨�燂細" + (sensorEntity == null || sensorEntity.getWindSpeed() == null? "-": sensorEntity.getWindSpeed()) + "m/s<br/>" +
-//                        "CO2锛�" + (sensorEntity == null || sensorEntity.getEco2() == null? "-": sensorEntity.getEco2()) + "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);
-//        }
-//    }*/
-//
-//    /*
-//    鏇存柊璇锋眰鏁版嵁
-//     */
-//
-//    public void updateRequestBody(String ledCode, String postBody) {
-//        baseMapper.updateRequestBody(ledCode, postBody);
-//    }
-//
-//    /*
-//    鏍规嵁led灞忕紪鐮佽幏鍙栫伅鏉嗘墍鏈変俊鎭�
-//     */
-//
-//    public PoleStreetlightEntity getStreetlightByLedCode(String ledCode) {
-//        return baseMapper.getStreetlightByLedCode(ledCode);
-//    }
-//
-//    /*
-//    鏍规嵁led灞忕紪鐮佽缃煶閲�
-//     */
-//
-//    @Async("taskExecutor")
-//    public void setVolume(String lightemitControlCode, Integer volume) {
-//        lightemitUtils.setVoiume(lightemitControlCode, volume);
-//    }
-//
-//
-//    public List<PoleLightemitEntity> listOfStreetlight(String streetlightId) {
-//        return baseMapper.listOfStreetlight(streetlightId);
-//    }
-//
-//
-//    public List<PoleLightemitEntity> selectLedByStreetlightId(String streetlightId) {
-//        return baseMapper.getLedByStreetlightId(streetlightId);
-//    }
-//
-//    /*
-//        涓婁紶姘村钩婊氬姩鍗曡瀛楀箷
-//         */
-//    private void BuildHorizonSingSubTitleText(SubTitleSetEntity subTitleSetEntity){
-//        //鎷艰LED灞忓箷璁剧疆璇锋眰body
-//        SubTitleSet subTitleSet = new SubTitleSet();
-//        subTitleSet.num = subTitleSetEntity.getNum() != null ? subTitleSetEntity.getNum(): subTitleSet.num;
-//        subTitleSet.interval = subTitleSetEntity.getInterval() != null ? subTitleSetEntity.getInterval(): subTitleSet.interval;
-//        subTitleSet.step = subTitleSetEntity.getStep() != null ? subTitleSetEntity.getStep(): subTitleSet.step;
-//        subTitleSet.direction = subTitleSetEntity.getDirection() != null ? subTitleSetEntity.getDirection(): subTitleSet.direction;
-//        subTitleSet.align = subTitleSetEntity.getAlign() != null ? subTitleSetEntity.getAlign(): subTitleSet.align;
-//        //鎷兼帴html 鑳屾櫙榛樿鏄捐壊涓虹櫧鑹�
-//        subTitleSet.html = "<head><style type=\"text/css\">body{background-color:" +
-//                (subTitleSetEntity.getColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getColor())? subTitleSetEntity.getColor(): "#000000") +
-//                "}</style></head><i style=\"color:" +
-//                (subTitleSetEntity.getFontColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontColor())? subTitleSetEntity.getFontColor(): "#ffffff")
-//                + "; font-size: " +
-//                (subTitleSetEntity.getFontSize() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontSize())? subTitleSetEntity.getFontSize(): "1")
-//                + "em\">" + subTitleSetEntity.getContent() + "</i>";
-//
-//        //鑾峰彇鎵�鏈塴ed鏁版嵁
-//        Collection poleLightemitControllers = this.listByIds(Arrays.asList(subTitleSetEntity.getId()));
-//        if (!poleLightemitControllers.isEmpty()) {
-//            Iterator iterator = poleLightemitControllers.iterator();
-//            while (iterator.hasNext()){
-//                PoleLightemitEntity poleLightemitEntity = (PoleLightemitEntity) iterator.next();
-//                //娓呭睆鎿嶄綔
-//                lightemitUtils.clear(poleLightemitEntity.getLightemitControlCode());
-//                //娓呴櫎鎾斁鍒楄〃
-//                lightemitUtils.clearVideoPlay(poleLightemitEntity.getLightemitControlCode());
-//                //娓呴櫎鑺傜洰鍒楄〃
-//                lightemitUtils.clearPlayerTask(poleLightemitEntity.getLightemitControlCode());
-//                //鍙戦�佸瓧骞曡缃姹�
-//                lightemitUtils.subTitleSet(subTitleSet, poleLightemitEntity.getLightemitControlCode(),true);
-//            }
-//        }
-//    }
-//
-//    /*
-//    涓婁紶鍨傜洿婊氬姩鍗曡瀛楀箷
-//     */
-//    private void BuildVerticalSingSubTitleText(SubTitleSetEntity subTitleSetEntity, String path, String userName) throws IOException {
-//        //html鍦板潃
-//        //鑾峰彇鎵�鏈塴ed鏁版嵁
-//        Collection poleLightemitControllers = this.listByIds(Arrays.asList(subTitleSetEntity.getId()));
-//        if (!poleLightemitControllers.isEmpty()) {
-//            Iterator iterator = poleLightemitControllers.iterator();
-//            while (iterator.hasNext()) {
-//                PoleLightemitEntity poleLightemitEntity = (PoleLightemitEntity) iterator.next();
-//
-//                String lightemitControlCode = poleLightemitEntity.getLightemitControlCode();
-//
-//                //鑾峰彇灞忓箷瀹�
-//                Integer screenWidth = Integer.valueOf(lightemitUtils.getScreenWidth(lightemitControlCode));
-//                Integer screenHeight = Integer.valueOf(lightemitUtils.getScreenHeight(lightemitControlCode));
-//
-//                String filenameTemp = path + userName + "_"+ lightemitControlCode + ".html";
-//                File htmlFile = new File(filenameTemp);
-//                if (!htmlFile.exists() || htmlFile.delete()) {
-//                    htmlFile.createNewFile();
-//                }
-//
-//                //鑻ュ悜涓嬫粴鍔紝鏂囧瓧椤哄簭鐩稿弽
-//                if(Constant.DOWN.equals(subTitleSetEntity.getDirection())){
-//                    subTitleSetEntity.setContent(StringUtils.reverse(subTitleSetEntity.getContent()));
-//                }
-//
-//                Map<String, Object> params = new HashMap<>();
-//                params.put("direction", subTitleSetEntity.getDirection());
-//                params.put("screenWidth", screenWidth);
-//                params.put("screenHeight", screenHeight);
-//                params.put("fontSize", subTitleSetEntity.getFontSize() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontSize())? subTitleSetEntity.getFontSize(): "1");
-//                params.put("align", subTitleSetEntity.getAlign());
-//                params.put("fontColor", subTitleSetEntity.getFontColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontColor())? subTitleSetEntity.getFontColor(): "#ffffff");
-//                params.put("backgroundColor", subTitleSetEntity.getColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getColor())? subTitleSetEntity.getColor(): "#000000");
-//                params.put("interval", subTitleSetEntity.getInterval() != null? subTitleSetEntity.getInterval(): 50);
-//                params.put("step", subTitleSetEntity.getStep() != null? subTitleSetEntity.getStep(): 1);
-//                params.put("num", subTitleSetEntity.getNum() != null? subTitleSetEntity.getNum(): -1);
-//                params.put("contentArray", subTitleSetEntity.getContent().toCharArray());
-//
-//                String body = new HtmlTemplateUtils().renderPath("classpath:templates/lightemitTemplates/buildVerticalSingSubTitleTemplates.html", params);
-//
-//                boolean flag = new FileUtil().writeToFile(body, filenameTemp);
-//
-//                if(flag){
-//                    //娓呭睆鎿嶄綔
-//                    lightemitUtils.clear(lightemitControlCode);
-//                    //娓呴櫎鎾斁鍒楄〃
-//                    lightemitUtils.clearVideoPlay(lightemitControlCode);
-//                    //娓呴櫎鑺傜洰鍒楄〃
-//                    lightemitUtils.clearPlayerTask(lightemitControlCode);
-//                    //鎺ㄩ��
-//                    lightemitUtils.postHtmlUseNginx(lightemitControlCode,userName);
-//                }
-//            }
-//        }
-//    }
-//
-//
-//    /*
-//    涓婁紶鍨傜洿婊氬姩澶氳瀛楀箷
-//     */
-//    private void BuildVerticalMultiSubTitleText(SubTitleSetEntity subTitleSetEntity, String path, String userName) throws IOException {
-//        //html鍦板潃
-//        //鑾峰彇鎵�鏈塴ed鏁版嵁
-//        Collection poleLightemitControllers = this.listByIds(Arrays.asList(subTitleSetEntity.getId()));
-//        if (!poleLightemitControllers.isEmpty()) {
-//            Iterator iterator = poleLightemitControllers.iterator();
-//            while (iterator.hasNext()) {
-//                PoleLightemitEntity poleLightemitEntity = (PoleLightemitEntity) iterator.next();
-//
-//                String lightemitControlCode = poleLightemitEntity.getLightemitControlCode();
-//
-//                //鑾峰彇灞忓箷瀹�
-//                Integer screenWidth = Integer.valueOf(lightemitUtils.getScreenWidth(lightemitControlCode));
-//                Integer screenHeight = Integer.valueOf(lightemitUtils.getScreenHeight(lightemitControlCode));
-//
-//                String filenameTemp = path + userName + "_" + lightemitControlCode + ".html";
-//                File htmlFile = new File(filenameTemp);
-//                if (!htmlFile.exists() || htmlFile.delete()) {
-//                    htmlFile.createNewFile();
-//                }
-//
-//                Map<String, Object> params = new HashMap<>();
-//                params.put("direction", subTitleSetEntity.getDirection());
-//                params.put("screenWidth", screenWidth);
-//                params.put("screenHeight", screenHeight);
-//                params.put("fontSize", subTitleSetEntity.getFontSize() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontSize())? subTitleSetEntity.getFontSize(): "1");
-//                params.put("align", subTitleSetEntity.getAlign());
-//                params.put("fontColor", subTitleSetEntity.getFontColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getFontColor())? subTitleSetEntity.getFontColor(): "#ffffff");
-//                params.put("backgroundColor", subTitleSetEntity.getColor() != null && StringUtils.isNotBlank(subTitleSetEntity.getColor())? subTitleSetEntity.getColor(): "#000000");
-//                params.put("interval", subTitleSetEntity.getInterval() != null? subTitleSetEntity.getInterval(): 50);
-//                params.put("step", subTitleSetEntity.getStep() != null? subTitleSetEntity.getStep(): 1);
-//                params.put("num", subTitleSetEntity.getNum() != null? subTitleSetEntity.getNum(): -1);
-//                params.put("contentArray", subTitleSetEntity.getContent().split("\n"));
-//
-//                String body = new HtmlTemplateUtils().renderPath("classpath:templates/lightemitTemplates/buildVerticalSingSubTitleTemplates.html", params);
-//
-//                boolean flag = new FileUtil().writeToFile(body, filenameTemp);
-//
-//                if (flag) {
-//                    //娓呭睆鎿嶄綔
-//                    lightemitUtils.clear(lightemitControlCode);
-//                    //娓呴櫎鎾斁鍒楄〃
-//                    lightemitUtils.clearVideoPlay(lightemitControlCode);
-//                    //娓呴櫎鑺傜洰鍒楄〃
-//                    lightemitUtils.clearPlayerTask(lightemitControlCode);
-//                    //鎺ㄩ��
-//                    lightemitUtils.postHtmlUseNginx(lightemitControlCode, userName);
-//                }
-//            }
-//        }
-//    }
-//
-//    @Override
-//    public void xixunplaySetting(String lightemitControlCode) {
-//        //鑾峰彇灞忓箷瀹�
-////        Integer screenWidth = Integer.valueOf(lightemitUtils.getScreenWidth(lightemitControlCode));
-////        Integer screenHeight = Integer.valueOf(lightemitUtils.getScreenHeight(lightemitControlCode));
-////        Source source = new Source();
-////        Layer layer = new Layer();
-////        Program pro = new Program();
-////        TaskItem items = new TaskItem();
-////        ProgramsTask task = new ProgramsTask();
-////        Command payload = new Command();
-////        XixunPlayer xixun = new XixunPlayer();
-////        source.set_id(UUID.randomUUID().toString());//鎵�鏈塤id閮藉彲鐢║UID闅忔満鐢熸垚
-////        source.setId(filename);//璇锋眰澶存嫾鎺ヨID涓鸿璧勬簮鐨勫畬鏁翠笅杞藉湴鍧�
-////        source.set_type("Video");	//璁剧疆璧勬簮绫诲瀷锛屽叾浠栬祫婧愮被鍨嬭鍙傝�儀ixunplayer鑺傜洰json璇存槑鏂囨。
-////        source.setFileExt(".mp4");	//璧勬簮鍚庣紑鍚�
-////        source.setHeight(screenHeight);		//璧勬簮楂樺害
-////        source.setWidth(screenWidth);		//璧勬簮瀹藉害
-////        source.setLeft(0);			//璺濆乏
-////        source.setMd5("dd135d5d2d44d619a542db773ab529a4");
-////        source.setMime("video/mp4");
-////        source.setName(filename);
-////        source.setPlayTime(0);	//鎾斁璧峰鏃堕棿
-////        source.setSize(filesize);	//璧勬簮瀛楄妭鏁帮紝瑕佺簿鍑�
-////        source.setTimeSpan(videoTime);		//璇ヨ祫婧愭挱鏀炬椂闀�
-////        source.setTop(0);			//璺濋《
-////        List<Source> list = new ArrayList<Source>();
-////        list.add(source);
-////        layer.setSources(list);
-////        pro.set_id(UUID.randomUUID().toString());
-////        pro.setHeight(screenHeight);		//鑺傜洰楂樺害
-////        List<Layer> list1=new ArrayList<Layer>();
-////        list1.add(layer);
-////        pro.setLayers(list1);
-////        pro.setName("demo");	//鑺傜洰鍚嶇О
-////        pro.setOthers(true);//濡傛灉涓簍rue锛屽垯璇ヨ妭鐩潵鑷涓夋柟鎺ュ彛锛屼笉鏄潵鑷垜浠嚜宸辩殑web锛屼簩娆″紑鍙戣鍔″繀璧嬪�间负true
-////        pro.setTotalSize(filesize);	//鎵�鏈夎祫婧愭�诲瓧鑺傛暟
-////        pro.setVersion(0);			//楂樼骇鑺傜洰=0锛岀畝鏄撹妭鐩�=2
-////        pro.setWidth(screenWidth);		//鑺傜洰瀹藉害
-////        items.set_id(UUID.randomUUID().toString());
-////        items.set_program(pro);
-////        items.setRepeatTimes(1);
-////        items.setSchedules(null);//瀹氭椂娈碉紝涓嶅仛瀹氭椂鍙负null
-////        task.set_id(UUID.randomUUID().toString());
-////        task.setName("杩欐槸涓�涓ず渚�");
-////        List<TaskItem> list2=new ArrayList<TaskItem>();
-////        list2.add(items);
-////        task.setItems(list2);
-////        payload.setId(UUID.randomUUID().toString());
-////        //杩欓噷鏄笅鏂圭殑post鍥炶皟鍦板潃锛岄渶瑕佷慨鏀笽P鍦板潃
-////        payload.setNotificationURL("http://" + ip + ":" + port + "/machine-fast/serv/download/getJSON");
-////        //璧勬簮涓嬭浇閾炬帴鐨勮姹傚ご
-////        payload.setPreDownloadURL("http://" + ip + ":" + port + "/machine-fast/serv/download/downloadFile/");
-////        payload.setTask(task);
-////        xixun.set_id(UUID.randomUUID().toString());
-////        xixun.setCommand(payload);
-////        xixun.setType("commandXixunPlayer");	//鍛戒护鍥哄畾绫诲瀷锛屼笉鍙洿鏀�
-////        String jsondata = new Gson().toJson(xixun);
-////        lightemitUtils.clear(lightemitControlCode);
-////        this.updateRequestBody(lightemitControlCode,jsondata);
-////        lightemitUtils.post(realtimeServerBean.getCommand() + lightemitControlCode,jsondata);
-//    }
-//}
\ No newline at end of file
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3