From 4e91adbb41c89688fe5b0ef03807cfe748a7d59d Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期四, 26 五月 2022 17:17:02 +0800
Subject: [PATCH] 角色
---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java | 212 ++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 162 insertions(+), 50 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
index a21f1b9..7b30ecd 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
@@ -10,22 +10,24 @@
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.StoreOperationRecordsUtils;
+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.*;
/**
* 鐔欒鑺傜洰
@@ -67,6 +69,20 @@
}
public boolean insert(ProgramPro programPro) {
+ programPro.getLayers().forEach(
+ layerPro -> {
+ layerPro.getSources().forEach(
+ sourcePro -> {
+ long fileId = Long.parseLong(sourcePro.getId());
+ LedSFile file = xiXunFileService.getById(fileId);
+ String fileUrl = file.getFileUrl();
+ String[] split = fileUrl.split("/");
+ sourcePro.setId(split[split.length - 1]);
+ sourcePro.setMd5(file.getMd5());
+ }
+ );
+ }
+ );
String json = JsonUtil.jsonObj2Sting(programPro);
PoleXixunPlayerEntity poleXixunPlayer = new PoleXixunPlayerEntity();
poleXixunPlayer.setProgramCode(programPro.get_id());
@@ -74,20 +90,27 @@
poleXixunPlayer.setHeight(programPro.getHeight());
poleXixunPlayer.setWidth(programPro.getWidth());
poleXixunPlayer.setTotalSize((float) programPro.getTotalSize() / 1000000 + "MB");
-// poleXixunPlayer.setTotalSize( Long.parseLong(programPro.getTotalSize()) / 1000000 + "MB");
-// programPro.setProgramId(poleXixunPlayer.getProgramId());
-// System.out.println(poleXixunPlayer.getProgramId());
poleXixunPlayer.setRequestBody(json);
poleXixunPlayer.setScreenShot(programPro.getScreenShot());
- // poleXixunPlayer.setCreatTime(sdf.format(date));
- poleXixunPlayer.setCreateUserId(SecurityUtils.getUserId());
if (SecurityUtils.getClientId() != null) {
poleXixunPlayer.setCreateUserId(SecurityUtils.getUserId());
if (clientService.findClientId()) {
poleXixunPlayer.setClientId(clientService.getClientId());
}
}
- return this.save(poleXixunPlayer);
+ boolean save = this.save(poleXixunPlayer);
+ /**
+ * 鐔欐睕鑺傜洰鏂板鏃ュ織璁板綍寮�濮�
+ */
+ String content = "{鑺傜洰id锛�" + poleXixunPlayer.getProgramId()
+ + "锛� 鑺傜洰鍚嶇О锛�" + poleXixunPlayer.getProgramName()
+ + "锛� 鑺傜洰鍐呭锛�" + json
+ + " }";
+ StoreOperationRecordsUtils.storeOperationData(null, null, "鐔欐睕鑺傜洰鏇存敼", content);
+ /**
+ * 鐔欐睕鑺傜洰鏂板鏃ュ織璁板綍缁撴潫
+ */
+ return save;
}
public boolean deleteProgram(Long pid) {
@@ -95,6 +118,16 @@
if (byId == null) {
throw new BusinessException("鏈壘鍒拌鑺傜洰");
}
+ /**
+ * 鐔欐睕鑺傜洰鍒犻櫎鏃ュ織璁板綍寮�濮�
+ */
+ String content = "{鍒犻櫎鐨勮妭鐩甶d锛�" + byId.getProgramId()
+ + "锛� 鍒犻櫎鐨勮妭鐩悕绉帮細" + byId.getProgramName()
+ + " }";
+ StoreOperationRecordsUtils.storeOperationData(null, null, "鐔欐睕鑺傜洰鍒犻櫎", content);
+ /**
+ * 鐔欐睕鑺傜洰鍒犻櫎鏃ュ織璁板綍缁撴潫
+ */
return removeById(pid);
}
@@ -129,44 +162,15 @@
}
-
-// public Object getProgram(String json) {
-//// PoleXixunPlayerEntity byId = getById(pid);
-// List<Long> fileIds = new ArrayList<>();
-// List<LedSFile> file = new ArrayList<>();
-// if (json == null) {
-// throw new BusinessException("鏈壘鍒拌鑺傜洰");
-// }
-// ProgramPro programPro = new ProgramPro();
-// try {
-// programPro = JsonUtil.convertJsonStringToObject(json, ProgramPro.class);
-// programPro.setProgramId(pid);
-// programPro.setScreenShot(byId.getScreenShot());
-// programPro.getLayers().forEach(
-// layerPro -> {
-// layerPro.getSources().forEach(
-// sourcePro -> {
-// long fileId = Long.parseLong(sourcePro.getId());
-// file.add(xiXunFileService.getById(fileId));
-// }
-// );
-// }
-// );
-// programPro.setFileList(file);
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// return programPro;
-// }
-
-
/**
* 鎺ㄩ�佽妭鐩�
*
* @param programId
* @param lightemitIds
*/
- public void videoXixunPlayer(long programId, List<Long> lightemitIds) {
+ public List<Map> videoXixunPlayer(long programId, List<Long> lightemitIds) {
+ //璁板綍鎿嶄綔缁撴灉
+ List<Map> mapList = new ArrayList<>();
ProgramPro pro = new ProgramPro();
ItemPro items = new ItemPro();
@@ -196,10 +200,10 @@
list2.add(items);
taskPro.setItems(list2);
command.setId(UUID.randomUUID().toString());
- //杩欓噷鏄笅鏂圭殑post鍥炶皟鍦板潃锛岄渶瑕佷慨鏀笽P鍦板潃
- command.setNotificationURL("http://" + config.getIp() + ":" + config.getPort() + "/machine-fast/serv/download/getJSON");
+// //杩欓噷鏄笅鏂圭殑post鍥炶皟鍦板潃锛岄渶瑕佷慨鏀笽P鍦板潃
+ command.setNotificationURL("");
//璧勬簮涓嬭浇閾炬帴鐨勮姹傚ご
- command.setPreDownloadURL("http://" + config.getIp() + ":" + config.getPort() + "/machine-fast/serv/download/downliadFileById/");
+ command.setPreDownloadURL("https://ximonsmart.oss-cn-shanghai.aliyuncs.com/");
command.setTask(taskPro);
xixun.set_id(UUID.randomUUID().toString());
xixun.setCommand(command);
@@ -213,14 +217,122 @@
Collection<PoleLightemitEntity> poleLightemitEntities = poleLightemitService.listByIds(lightemitIds);
if (poleLightemitEntities != null) {
+ Map map;
for (PoleLightemitEntity entity : poleLightemitEntities) {
- lightemitUtils.clear(entity.getLightemitControlCode());
- poleLightemitService.updateRequestBody(entity.getLightemitControlCode(), jsondata);
- String post = lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), jsondata);
- LogUtils.error("缁撴灉:" + post);
+ map = new LinkedHashMap();
+ String clearResult = lightemitUtils.clear(entity.getLightemitControlCode());
+ if (clearResult.contains("does not exist")) {
+ map.put("LightemitId", entity.getLightemitId());
+ map.put("Result", "澶辫触");
+ mapList.add(map);
+ } else {
+ poleLightemitService.updateRequestBody(entity.getLightemitControlCode(), jsondata);
+ String post = lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), jsondata);
+ //{"_type":"success","_id":"ce8dc3ff-dc88-43b7-8f55-60abd8700f1a","timestamp":1653555160535}
+ if (post.startsWith("{") && post.endsWith("}") && post.contains("_type\":\"success")) {
+ map.put("LightemitId", entity.getLightemitId());
+ map.put("Result", "鎴愬姛");
+ mapList.add(map);
+ } else {
+ map.put("LightemitId", entity.getLightemitId());
+ map.put("Result", "澶辫触");
+ mapList.add(map);
+ }
+ LogUtils.error("缁撴灉:" + post);
+ }
}
}
+
+
+ /**
+ * 鐔欐睕鑺傜洰鎺ㄩ�佹棩蹇楄褰曞紑濮�
+ */
+ List<String> listCode = new ArrayList<>();
+ for (PoleLightemitEntity bean : poleLightemitEntities) {
+ listCode.add(bean.getLightemitControlCode());
+ }
+ String content = "{鑺傜洰id锛�" + programId
+ + "锛� 鑺傜洰鍚嶇О锛�" + poleXixunPlayerEntity.getProgramName()
+ + "锛� 鑺傜洰鍐呭锛�" + json
+ + " }";
+ StoreOperationRecordsUtils.storeOperationData(listCode, null, "鐔欐睕鑺傜洰鎺ㄩ��", content);
+ /**
+ * 鐔欐睕鑺傜洰鎺ㄩ�佹棩蹇楄褰曠粨鏉�
+ */
+
+ return mapList;
}
+ /**
+ * 鎺ㄩ�佸ぇ姘旀暟鎹埌鐔欒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);
+
+ /**
+ * 鐔欐睕澶ф皵鏁版嵁鎺ㄩ�佹棩蹇楄褰曞紑濮�
+ // */
+// String content = "{璁惧code锛�" + lightemitControlCode
+// + "锛� 鎺ㄩ�佸唴瀹癸細" + body
+// + " }";
+// List<String> listCode = new ArrayList<>();
+// listCode.add(lightemitControlCode);
+// StoreOperationRecordsUtils.storeOperationData(listCode, null, "鐔欐睕澶ф皵鏁版嵁鎺ㄩ��", content);
+ /**
+ * 鐔欐睕澶ф皵鏁版嵁鎺ㄩ�佹棩蹇楄褰曠粨鏉�
+ */
+ }
+ }, 60 * 1000);
+ }
+ }
+
}
--
Gitblit v1.9.3