From f0aa0f9ea4bc9a924a4078fea175c41bc124151d Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 29 八月 2024 16:25:52 +0800
Subject: [PATCH] OSD定时任务
---
ycl-server/src/main/java/com/ycl/task/CarTask.java | 24 -
ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java | 13
ycl-server/src/main/java/com/ycl/platform/controller/SynPY/SynPYController.java | 4
ycl-common/src/main/java/constant/ApiConstants.java | 13
ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java | 102 ++++++
ycl-server/src/main/resources/application-prod.yml | 11
ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java | 2
ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java | 61 ++
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java | 1
ycl-server/src/main/java/com/ycl/calculate/VideoOsdCalculation.java | 40 -
ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java | 14
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 16
ycl-server/src/main/java/com/ycl/platform/service/UYErrorTypeCheckService.java | 2
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 6
ycl-server/src/main/resources/application-dev.yml | 18
ycl-pojo/src/main/java/com/ycl/platform/domain/result/OSDResult.java | 44 ++
/dev/null | 145 --------
ycl-server/src/main/java/com/ycl/task/FaceTask.java | 20
ycl-common/src/main/java/enumeration/general/AreaDeptEnum.java | 12
ycl-server/src/main/java/com/ycl/api/HK/HKApi.java | 129 +++++--
ycl-server/src/main/java/com/ycl/api/DH/utils/DHApi.java | 17 +
ycl-server/src/main/java/com/ycl/task/OsdTask.java | 229 +++++++++++++
ycl-server/src/main/java/com/ycl/task/VideoTask.java | 33 -
ycl-server/src/main/java/com/ycl/task/UYTask.java | 35 --
ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java | 5
25 files changed, 633 insertions(+), 363 deletions(-)
diff --git a/ycl-common/src/main/java/constant/ApiConstants.java b/ycl-common/src/main/java/constant/ApiConstants.java
index 436c6ae..ea06696 100644
--- a/ycl-common/src/main/java/constant/ApiConstants.java
+++ b/ycl-common/src/main/java/constant/ApiConstants.java
@@ -59,10 +59,10 @@
public final static Integer UY_OnlineStatus_Offline = -1;
public final static Integer UY_OnlineStatus_Unknown = 0;
- //Python鏍¢獙鏍囪瘑
- public final static Integer PY_OSD_Correct = 1;
- public final static Integer PY_OSD_Unknown = 0;
- public final static Integer PY_OSD_Error = -1;
+ //OSD鏍¢獙鏍囪瘑
+ public final static Integer OSD_Correct = 1;
+ public final static Integer OSD_Unknown = 0;
+ public final static Integer OSD_Error = -1;
//鑷础琛屾斂缂栫爜
public final static String AreaNo = "5103";
@@ -70,7 +70,10 @@
//鐪佸巺鍓嶇紑
public final static String Province = "Province_";
-
+ //娴峰悍璁块棶OSD璺緞
+ public final static String HK_OSD_PATH = "/ISAPI/System/Video/inputs/channels/1/overlays";
+ //娴峰悍璁块棶鏃堕棿璺緞
+ public final static String HK_OSD_TIME = "/ISAPI/System/time";
}
diff --git a/ycl-common/src/main/java/enumeration/general/AreaDeptEnum.java b/ycl-common/src/main/java/enumeration/general/AreaDeptEnum.java
index 5ec96c3..4e8d169 100644
--- a/ycl-common/src/main/java/enumeration/general/AreaDeptEnum.java
+++ b/ycl-common/src/main/java/enumeration/general/AreaDeptEnum.java
@@ -7,13 +7,13 @@
*/
@Getter
public enum AreaDeptEnum {
- ZLJQ("鑷祦浜曞尯", "510302", 201),
- GJQ("璐′簳鍖�", "510303", 202),
- DAQ("澶у畨鍖�", "510304", 102),
- YTQ("娌挎哗鍖�", "510311", 211),
+ ZLJQ("鑷祦浜�", "510302", 201),
+ GJQ("璐′簳", "510303", 202),
+ DAQ("澶у畨", "510304", 102),
+ YTQ("娌挎哗", "510311", 211),
RX("鑽e幙", "510321", 203),
- FSX("瀵岄『鍘�", "510322", 101),
- GXQ("楂樻柊鍖�", "510399", 210),
+ FSX("瀵岄『", "510322", 101),
+ GXQ("楂樻柊", "510399", 210),
;
private final String name;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java
index 4bba239..797ac77 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java
@@ -1,11 +1,9 @@
package com.ycl.platform.base;
import com.fasterxml.jackson.annotation.JsonFormat;
-import enumeration.ContractStatus;
import lombok.Data;
import java.util.Date;
-import java.util.List;
/**
* 鍩虹鍝嶅簲
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java
index 4b6c13f..a233222 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java
@@ -2,6 +2,7 @@
import annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.system.entity.BaseEntity;
import lombok.Data;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/OSDResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/OSDResult.java
new file mode 100644
index 0000000..ade1021
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/OSDResult.java
@@ -0,0 +1,44 @@
+package com.ycl.platform.domain.result;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class OSDResult {
+ /**
+ * 璁惧缂栧彿
+ */
+ private String serialNumber;
+ /**
+ * 璁惧鏃堕棿
+ */
+ private Date osdTime;
+ /**
+ * 妫�娴嬫椂闂�
+ */
+ private Date checkTime;
+ //osd鍙充笅鎸夐『搴�
+ /**
+ * 鐪佷唤
+ */
+ private String OSD1;
+ /**
+ * 鍩庡競
+ */
+ private String OSD2;
+ /**
+ * 鍖哄幙
+ */
+ private String OSD3;
+ /**
+ * 閫氶亾鍚嶏紙monitor鐨勮澶囧悕锛�
+ */
+ private String name;
+
+ //osd宸︿笅
+ /**
+ * 鍥恒�佹灙銆佽矾銆佽タ鍖�
+ */
+ private String OSD4;
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java
new file mode 100644
index 0000000..83a1247
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java
@@ -0,0 +1,102 @@
+package com.ycl.platform.domain.result.UY;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ycl.platform.domain.result.BaseResult;
+import lombok.Data;
+import org.springframework.data.mongodb.core.annotation.Collation;
+
+import java.util.Date;
+
+/**
+ * python鑾峰彇osd鏁版嵁
+ *
+ * @author锛歺p
+ * @date锛�2024/8/8 19:35
+ */
+@Data
+@Collation("osd_check_result")
+public class OsdCheckResult extends BaseResult {
+
+ /**
+ * 鍥芥爣鐮�
+ */
+ private String deviceNo;
+
+ /**
+ * 璁惧绫诲瀷
+ */
+ private String deviceType;
+
+ /**
+ * ip
+ */
+ private String ip;
+
+ /**
+ * 妫�娴嬫椂闂�
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date checkTime;
+
+ /**
+ * 鏍囨敞鏃堕棿
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date setTime;
+
+ /**
+ * osd閫氶亾鍚�
+ */
+ private String osdName;
+ /**
+ * osd鐪�
+ */
+ private String osdProvince;
+
+ /**
+ * osd甯�
+ */
+ private String osdCity;
+
+ /**
+ * osd鍖�
+ */
+ private String osdPart;
+
+ /**
+ * osd 宸︿笅瑙�
+ */
+ private String osdLB;
+
+ /**
+ * osdTimeCorrect鏃堕棿鏄惁姝g‘
+ */
+ private Integer osdTimeCorrect;
+
+ /**
+ * osd閫氶亾鍚嶆槸鍚︽纭�
+ */
+ private Integer osdNameCorrect;
+ /**
+ * osd鐪佹槸鍚︽纭�
+ */
+ private Integer osdProvinceCorrect;
+
+ /**
+ * osd甯傛槸鍚︽纭�
+ */
+ private Integer osdCityCorrect;
+
+ /**
+ * osd鍖烘槸鍚︽纭�
+ */
+ private Integer osdPartCorrect;
+
+ /**
+ * osd宸︿笅瑙掓槸鍚︽纭�
+ */
+ private Integer osdLbCorrect;
+
+
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/PyOsdResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/PyOsdResult.java
deleted file mode 100644
index defd2ee..0000000
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/PyOsdResult.java
+++ /dev/null
@@ -1,145 +0,0 @@
-package com.ycl.platform.domain.result.UY;
-
-import com.ycl.platform.domain.result.BaseResult;
-import lombok.Data;
-import org.springframework.data.mongodb.core.annotation.Collation;
-
-/**
- * python鑾峰彇osd鏁版嵁
- *
- * @author锛歺p
- * @date锛�2024/8/8 19:35
- */
-@Data
-@Collation("py_osd")
-public class PyOsdResult extends BaseResult {
-
- /**
- * 鍥芥爣鐮�
- */
- private String deviceNo;
-
- /**
- * 鏉嗕綋缂栫爜
- */
- private String bodyNo;
-
- /**
- * 璁惧绫诲瀷
- */
- private String deviceType;
-
- /**
- * 鏃堕棿鏍煎紡
- */
- private String timeFormat;
-
- private String ODS1;
-
- private String ODS2;
-
- /**
- * ip
- */
- private String ip;
-
- /**
- * 鐪佸巺鑰冩牳
- */
- private String provinceCheck;
-
- /**
- * 鍏畨閮ㄨ�冩牳
- */
- private String policeCheck;
-
- /**
- * 鏂癐P
- */
- private String newIp;
-
- /**
- * ip鐘舵��
- */
- private String ipStatus;
-
- /**
- * 妫�娴嬫椂闂�
- */
- private String checkTime;
-
- /**
- * OSD妫�娴嬬姸鎬�
- */
- private String checkStatus;
-
- /**
- * 鏍囨敞鏃堕棿
- */
- private String setTime;
-
- /**
- * osd1鐪�
- */
- private String osd1Province;
-
- /**
- * osd1甯�
- */
- private String osd1City;
-
- /**
- * osd1鍖�
- */
- private String osd1Part;
-
- /**
- * osd1 宸︿笅瑙�
- */
- private Integer osd1LB;
-
- /**
- * osd1_osd
- */
- private Integer osd1OSD;
-
- /**
- * osd1_鏃堕棿鏍煎紡鏄惁姝g‘
- */
- private Integer osd1TimeFormat;
-
- /**
- * osd1_鐪佽缃�
- */
- private String osd1ProvinceSet;
-
- /**
- * osd1_甯傝缃�
- */
- private String osd1CitySet;
-
- /**
- * osd1_鍖鸿缃槸鍚�
- */
- private String osd1PartSet;
-
- /**
- * osd1_osd宸︿笅瑙掕缃槸鍚︽纭�
- */
- private String osd1OsdLbSet;
-
- /**
- * osd1_osd璁剧疆
- */
- private Integer osd1OsdSet;
-
- /**
- * osd1 鏃堕棿鏍煎紡
- */
- private String osd1TimeFormatSet;
-
- /**
- * ntp_server
- */
- private String ntpServer;
-}
diff --git a/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java b/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java
index 5ad0cbb..6064fcb 100644
--- a/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java
+++ b/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java
@@ -9,13 +9,17 @@
import com.ycl.api.DH.lib.NetSDKLib.NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY;
import com.ycl.api.DH.lib.ToolKits;
import com.ycl.api.DH.lib.structure.*;
+import com.ycl.platform.domain.result.OSDResult;
import com.ycl.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.Arrays;
+import java.util.Date;
import static com.ycl.api.DH.lib.NetSDKLib.NET_EM_OSD_BLEND_TYPE.NET_EM_OSD_BLEND_TYPE_MAIN;
import static com.ycl.api.DH.lib.enumeration.NET_EM_CFG_OPERATE_TYPE.NET_EM_CFG_CUSTOMTITLE;
@@ -159,40 +163,69 @@
return bRet;
}
- public static String getOsdTime() {
+ public static OSDResult getOsd() {
+ OSDResult osdResult = new OSDResult();
NetSDKLib.NET_TIME deviceTime = new NetSDKLib.NET_TIME();
-
if (!netsdk.CLIENT_QueryDeviceTime(m_hLoginHandle, deviceTime, 3000)) {
- System.err.println("CLIENT_QueryDeviceTime Failed!" + ToolKits.getErrorCodePrint());
+ log.error("CLIENT_QueryDeviceTime Failed!" + ToolKits.getErrorCodePrint());
return null;
}
+ Date checkTime = new Date();
+ osdResult.setCheckTime(checkTime);
String date = deviceTime.toStringTime();
date = date.replace("/", "-");
- log.info("鎴愬姛鑾峰彇妫�娴媜sd鏃堕棿" + date);
-
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ try {
+ Date time = simpleDateFormat.parse(date);
+ osdResult.setOsdTime(time);
+ } catch (ParseException e) {
+ log.error("鏃堕棿瑙f瀽澶辫触");
+ }
NET_CFG_GBMODE_INFO reserve = new NET_CFG_GBMODE_INFO();
NET_CFG_GBMODE_INFO osdInfo = new NET_CFG_GBMODE_INFO();
osdInfo.write();
boolean b = netsdk.CLIENT_GetConfig(m_hLoginHandle, NET_EM_CFG_GBMODE, 0, osdInfo.getPointer(), osdInfo.size(), 3000, reserve.getPointer());
if (!b) {
- log.info(("CLIENT_GetConfig Failed!" + ToolKits.getErrorCodePrint()));
+ log.error("CLIENT_GetConfig Failed!" + ToolKits.getErrorCodePrint());
+ return null;
} else {
osdInfo.read();
NET_GBMODE_CUSTOMTITLE_INFO[] stuCustomTitle = osdInfo.stuCustomTitle;
for (NET_GBMODE_CUSTOMTITLE_INFO title : stuCustomTitle) {
- NET_TITLE_OSD_INFO[] stuOSD = title.stuOSD;
- for (NET_TITLE_OSD_INFO osd : stuOSD) {
- String osdStr = null;
- osdStr = new String(osd.szText, StandardCharsets.UTF_8);
- if (!StringUtils.isEmpty(osdStr)) {
- log.info("osd浜岀骇鏂囨湰" + osdStr);
+ String position = new String(title.szPositon, StandardCharsets.UTF_8).trim();
+ if("LeftDown".equals(position)) {
+ NET_TITLE_OSD_INFO[] stuOSD = title.stuOSD;
+ for (NET_TITLE_OSD_INFO osd : stuOSD) {
+ String osdStr = null;
+ osdStr = new String(osd.szText, StandardCharsets.UTF_8);
+ if (!StringUtils.isEmpty(osdStr)) {
+ osdResult.setOSD4(osdStr);
+ }
+ }
+ }else if("RightDown".equals(position)){
+ NET_TITLE_OSD_INFO[] stuOSD = title.stuOSD;
+ int num = 0;
+ for (NET_TITLE_OSD_INFO osd : stuOSD) {
+ String osdStr = null;
+ osdStr = new String(osd.szText, StandardCharsets.UTF_8);
+ if (!StringUtils.isEmpty(osdStr)) {
+ if(num ==0){
+ osdResult.setOSD1(osdStr);
+ }else if(num ==1){
+ osdResult.setOSD2(osdStr);
+ }else if(num ==2){
+ osdResult.setOSD3(osdStr);
+ }else if(num ==3){
+ osdResult.setName(osdStr);
+ }
+ }
+ num++;
}
}
}
}
-
- return date;
+ return osdResult;
}
}
diff --git a/ycl-server/src/main/java/com/ycl/api/DH/utils/DHApi.java b/ycl-server/src/main/java/com/ycl/api/DH/utils/DHApi.java
new file mode 100644
index 0000000..83a6a5c
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/api/DH/utils/DHApi.java
@@ -0,0 +1,17 @@
+package com.ycl.api.DH.utils;
+
+import com.ycl.api.DH.module.LoginModule;
+import com.ycl.platform.domain.result.OSDResult;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+
+@Slf4j
+public class DHApi {
+
+ public static OSDResult getOsd(String ip, String userName, String password){
+ LoginModule.login(ip, 80, userName, password);
+ OSDResult osd = LoginModule.getOsd();
+ LoginModule.logout();
+ return osd;
+ }
+}
diff --git a/ycl-server/src/main/java/com/ycl/api/HK/HKApi.java b/ycl-server/src/main/java/com/ycl/api/HK/HKApi.java
index 1b4e116..1360fea 100644
--- a/ycl-server/src/main/java/com/ycl/api/HK/HKApi.java
+++ b/ycl-server/src/main/java/com/ycl/api/HK/HKApi.java
@@ -1,65 +1,120 @@
package com.ycl.api.HK;
+import com.ycl.platform.domain.result.OSDResult;
+import constant.ApiConstants;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.Credentials;
import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.IOException;
import java.io.StringReader;
import java.net.URI;
+import java.net.URISyntaxException;
+import java.time.OffsetDateTime;
+import java.util.Date;
@Slf4j
public class HKApi {
- public static void getOsdByIP(String ip) {
- DefaultHttpClient httpclient = new DefaultHttpClient();
+ //TODO:楠岃瘉閿欒鐨勬儏鍐�
+ public static OSDResult getOsdByIP(String ip, String userName, String password) {
+ OSDResult osdResult = new OSDResult();
+ CloseableHttpClient httpClient = HttpClients.createDefault();
String hostUrl = "http://" + ip;
- // 鑾峰彇鐒﹁窛
- String url = hostUrl + "/ISAPI/System/Video/inputs/channels/1/overlays";
- URI serverURI = null;
try {
- serverURI = new URI(url);
- HttpGet httpGet = new HttpGet(url);
- String username = "admin";
- String password = "zg@2024dx";
- Credentials creds = new UsernamePasswordCredentials(username,
- password);
- httpclient.getCredentialsProvider().
-
- setCredentials(
- new AuthScope(serverURI.getHost(), serverURI.
-
- getPort()), (Credentials) creds);
-
- HttpResponse response = httpclient.execute(httpGet);
-
- String resultString = EntityUtils.toString(response.getEntity(), "utf-8");
- log.info(resultString);
+ //鑾峰彇OSD
+ HttpResponse OSDResponse = getHttpResponse(httpClient, hostUrl + ApiConstants.HK_OSD_PATH, userName, password);
+ String OSDString = EntityUtils.toString(OSDResponse.getEntity(), "utf-8");
//瑙f瀽xml
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder builder = factory.newDocumentBuilder();
- Document document = builder.parse(new InputSource(new StringReader(resultString)));
- document.getDocumentElement().normalize();
- NodeList nodeList = document.getElementsByTagName("TextOverlay");
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node node = nodeList.item(i);
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element) node;
- log.info("TEXT : " + element.getElementsByTagName("displayText").item(0).getTextContent());
- }
- }
+ parseXMl(OSDString, "TextOverlay", "displayText", osdResult, null);
+ //鑾峰彇Time
+ HttpResponse TimeResponse = getHttpResponse(httpClient, hostUrl + ApiConstants.HK_OSD_TIME, userName, password);
+ Date date = new Date();
+ String timeString = EntityUtils.toString(TimeResponse.getEntity(), "utf-8");
+ //瑙f瀽xml
+ parseXMl(timeString, "Time", "localTime", osdResult, date);
} catch (Exception e) {
- e.printStackTrace();
+ log.error(e.getMessage());
+ return null;
+ }
+ return osdResult;
+ }
+
+ private static void parseXMl(String OSDString, String tagName1, String tagName2, OSDResult osdResult, Date date) throws ParserConfigurationException, SAXException, IOException {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document document = builder.parse(new InputSource(new StringReader(OSDString)));
+ document.getDocumentElement().normalize();
+ NodeList nodeList = document.getElementsByTagName(tagName1);
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node node = nodeList.item(i);
+ if (node.getNodeType() == Node.ELEMENT_NODE && "TextOverlay".equals(tagName1)) {
+ Element element = (Element) node;
+ String textContent = element.getElementsByTagName(tagName2).item(0).getTextContent();
+ log.info("TEXT : " + textContent);
+ if (i == 0) {
+ osdResult.setOSD1(textContent);
+ } else if (i == 1) {
+ osdResult.setOSD2(textContent);
+ } else if (i == 2) {
+ osdResult.setOSD3(textContent);
+ } else if (i == 3) {
+ osdResult.setName(textContent);
+ } else if (i == 4) {
+ osdResult.setOSD4(textContent);
+ }
+ } else if (node.getNodeType() == Node.ELEMENT_NODE && "Time".equals(tagName1)) {
+ Element element = (Element) node;
+ String textContent = element.getElementsByTagName(tagName2).item(0).getTextContent();
+ log.info("TEXT : " + textContent);
+ osdResult.setCheckTime(date);
+ OffsetDateTime dateTime = OffsetDateTime.parse(textContent);
+ // 灏哋ffsetDateTime杞崲涓篋ate瀵硅薄
+ osdResult.setOsdTime(Date.from(dateTime.toInstant()));
+ }
+ }
+ }
+
+ private static HttpResponse getHttpResponse(CloseableHttpClient httpClient, String url, String userName, String password) throws URISyntaxException, IOException {
+ CredentialsProvider credsProvider = new BasicCredentialsProvider();
+ credsProvider.setCredentials(
+ new AuthScope(new URI(url).getHost(), new URI(url).getPort()),
+ new UsernamePasswordCredentials(userName, password));
+
+ HttpGet httpGet = new HttpGet(url);
+
+ // 璁剧疆璇锋眰閰嶇疆
+ RequestConfig requestConfig = RequestConfig.custom()
+ .setConnectTimeout(2000)
+ .setSocketTimeout(2000)
+ .build();
+ httpGet.setConfig(requestConfig);
+
+ // 缁戝畾鍑瘉鎻愪緵鑰呭埌HttpClient
+ httpClient = HttpClientBuilder.create()
+ .setDefaultCredentialsProvider(credsProvider)
+ .build();
+ try {
+ return httpClient.execute(httpGet);
+ } catch (Exception e){
+ throw new RuntimeException("娴峰悍OSD鎵ц澶辫触");
}
}
}
diff --git a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
index 24d8cdc..80c425b 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
@@ -200,11 +200,8 @@
}
//杩斿洖monitor
- //TODO:鏃堕棿鍐欐浜�
public List<String> getMonitorFromMongo() {
- Date date = DateUtils.getDay(2024, 7, 13);
- Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
-// Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+ Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class);
return CollectionUtils.isEmpty(oneMachineFileResults) ? new ArrayList<>() : oneMachineFileResults.stream().map(result -> result.getSerialNumber().getValue()).collect(Collectors.toList());
diff --git a/ycl-server/src/main/java/com/ycl/calculate/VideoOsdCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/VideoOsdCalculation.java
index 54ddecb..b8e8747 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/VideoOsdCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/VideoOsdCalculation.java
@@ -1,8 +1,7 @@
package com.ycl.calculate;
import com.ycl.platform.domain.entity.CheckIndexVideo;
-import com.ycl.platform.domain.result.UY.PyOsdResult;
-import com.ycl.platform.domain.result.UY.VideoOnlineResult;
+import com.ycl.platform.domain.result.UY.OsdCheckResult;
import com.ycl.platform.domain.vo.TMonitorVO;
import com.ycl.platform.mapper.CheckIndexVideoMapper;
import com.ycl.platform.mapper.TMonitorMapper;
@@ -32,7 +31,7 @@
*/
@Component
@Slf4j
-public class VideoOsdCalculation extends IndexCalculationServe implements CalculationStrategy<PyOsdResult> {
+public class VideoOsdCalculation extends IndexCalculationServe implements CalculationStrategy<OsdCheckResult> {
@Autowired
private CheckIndexVideoMapper checkIndexVideoMapper;
@Autowired
@@ -52,14 +51,14 @@
}
@Override
- public void calculate(List<PyOsdResult> list) {
+ public void calculate(List<OsdCheckResult> list) {
if (CollectionUtils.isEmpty(list)) {
log.info("鏁版嵁涓虹┖");
return;
}
//鑾峰緱鍥芥爣鐮佷负key鐨勮澶噈ap
- Map<String, TMonitorVO> monitorMap = monitorMapper.selectListByIds(list.stream().map(PyOsdResult::getDeviceNo).collect(Collectors.toList()))
+ Map<String, TMonitorVO> monitorMap = monitorMapper.selectListByIds(list.stream().map(OsdCheckResult::getDeviceNo).collect(Collectors.toList()))
.stream().collect(Collectors.toMap(TMonitorVO::getSerialNumber, Function.identity()));
//鑾峰彇鐪佸巺鍥芥爣鐮侀泦鍚�
List<String> provinceIds = getProvince();
@@ -67,7 +66,7 @@
List<String> important = getImportant();
Map<String, AreaStats> areaStatsMap = new HashMap<>();
- for (PyOsdResult result : list) {
+ for (OsdCheckResult result : list) {
TMonitorVO monitor = monitorMap.get(result.getDeviceNo());
if (monitor == null) continue;
@@ -99,7 +98,7 @@
/**
* 绱osd鍚堟牸鏁般�佹椂闂村亸宸悎鏍兼暟
*/
- private void updateAreaStats(Map<String, AreaStats> areaStatsMap, String key, PyOsdResult result, List<String> important) {
+ private void updateAreaStats(Map<String, AreaStats> areaStatsMap, String key, OsdCheckResult result, List<String> important) {
//杩斿洖瀵硅薄鐨勫紩鐢紝濡傛灉涓嶅瓨鍦ㄤ細鏀惧叆鏂扮殑key,value
AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats());
stats.totalSites++;
@@ -123,27 +122,16 @@
}
}
- private Boolean checkOsd(PyOsdResult result) {
- return ApiConstants.PY_OSD_Correct.equals(result.getOsd1Province()) &&
- ApiConstants.PY_OSD_Correct.equals(result.getOsd1City()) &&
- ApiConstants.PY_OSD_Correct.equals(result.getOsd1Part()) &&
- ApiConstants.PY_OSD_Correct.equals(result.getOsd1LB()) &&
- ApiConstants.PY_OSD_Correct.equals(result.getOsd1OSD()) &&
- ApiConstants.PY_OSD_Correct.equals(result.getOsd1TimeFormat()) &&
- ApiConstants.PY_OSD_Correct.equals(result.getOsd1OsdSet());
+ private Boolean checkOsd(OsdCheckResult result) {
+ return ApiConstants.OSD_Correct.equals(result.getOsdTimeCorrect()) &&
+ ApiConstants.OSD_Correct.equals(result.getOsdNameCorrect()) &&
+ ApiConstants.OSD_Correct.equals(result.getOsdProvinceCorrect()) &&
+ ApiConstants.OSD_Correct.equals(result.getOsdCityCorrect()) &&
+ ApiConstants.OSD_Correct.equals(result.getOsdPartCorrect());
}
- private Boolean checkTime(PyOsdResult result) {
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- // 瑙f瀽鏃堕棿瀛楃涓�
- LocalDateTime checkTime = LocalDateTime.parse(result.getCheckTime(), formatter);
- LocalDateTime osdTime = LocalDateTime.parse(result.getSetTime(), formatter);
- // 璁$畻鏃堕棿宸紙Duration锛�
- Duration duration = Duration.between(checkTime, osdTime);
- // 灏嗘椂闂村樊杞崲涓虹
- long secondsBetween = duration.getSeconds();
- // 鍒ゆ柇鏃堕棿宸槸鍚﹀湪60绉掍互鍐�
- return secondsBetween <= 60;
+ private Boolean checkTime(OsdCheckResult result) {
+ return ApiConstants.OSD_Correct.equals(result.getOsdTimeCorrect());
}
/**
diff --git a/ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java b/ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java
index cb5ae8f..cc344d3 100644
--- a/ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java
+++ b/ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java
@@ -9,6 +9,7 @@
import com.ycl.utils.DateUtils;
import constant.ApiConstants;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
@@ -24,6 +25,12 @@
@Slf4j
public class HkApiUtil {
+ @Value("${HK.host}")
+ public static String host;
+ @Value("${HK.appKey}")
+ public static String appKey;
+ @Value("${HK.appSecret}")
+ public static String appSecret;
/**
* 璋冪敤娴峰悍鎺ュ彛
*
@@ -35,9 +42,9 @@
public static <T> List<T> sendAPI(String apiUrl, BaseParam params, Class<T> resultType) {
// STEP1锛氳缃钩鍙板弬鏁帮紝鏍规嵁瀹為檯鎯呭喌,璁剧疆host appkey appsecret 涓変釜鍙傛暟.
- ArtemisConfig.host = "51.92.65.49"; // 骞冲彴鐨刬p绔彛
- ArtemisConfig.appKey = "29555942"; // 瀵嗛挜appkey
- ArtemisConfig.appSecret = "t9U7tCplCyYHzQPPL7cH";// 瀵嗛挜appSecret
+ ArtemisConfig.host = host; // 骞冲彴鐨刬p绔彛
+ ArtemisConfig.appKey = appKey; // 瀵嗛挜appkey
+ ArtemisConfig.appSecret = appSecret;// 瀵嗛挜appSecret
// STEP2锛氳缃甇penAPI鎺ュ彛鐨勪笂涓嬫枃
final String ARTEMIS_PATH = "/artemis";
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/SynPY/SynPYController.java b/ycl-server/src/main/java/com/ycl/platform/controller/SynPY/SynPYController.java
index 2270144..dcc4120 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/SynPY/SynPYController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/SynPY/SynPYController.java
@@ -1,6 +1,6 @@
package com.ycl.platform.controller.SynPY;
-import com.ycl.platform.domain.result.UY.PyOsdResult;
+import com.ycl.platform.domain.result.UY.OsdCheckResult;
import com.ycl.system.Result;
import lombok.RequiredArgsConstructor;
import org.springframework.data.mongodb.core.MongoTemplate;
@@ -23,7 +23,7 @@
private final MongoTemplate mongoTemplate;
@PostMapping("/osd")
- public Result pySynOSD(@RequestBody List<PyOsdResult> dataList) {
+ public Result pySynOSD(@RequestBody List<OsdCheckResult> dataList) {
mongoTemplate.insertAll(dataList);
return Result.ok();
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
index 239924e..f46e204 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -22,7 +22,7 @@
* @date 2024-03-04
*/
@Mapper
-public interface TMonitorMapper extends BaseMapper<TMonitor>
+public interface TMonitorMapper
{
/**
* 鏌ヨ璁惧璧勪骇
@@ -137,5 +137,7 @@
* @param list
* @return
*/
- int batchUpdateDeviceType(@Param("list") List<TMonitor> list);
+ int batchUpdateDeviceType(@Param("numbers") List<String> list,@Param("deviceType") Integer deviceType);
+
+ List<TMonitor> selectByNumbers(@Param("numbers")List<String> numbers);
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/UYErrorTypeCheckService.java b/ycl-server/src/main/java/com/ycl/platform/service/UYErrorTypeCheckService.java
index f06ec06..ce38103 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/UYErrorTypeCheckService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/UYErrorTypeCheckService.java
@@ -37,7 +37,7 @@
*
* @param dataList
*/
- void osdCheck(List<PyOsdResult> dataList);
+ void osdCheck(List<OsdCheckResult> dataList);
// /**
// * 瑙嗛鏍囨敞
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
index 78fd917..58d6544 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
@@ -5,6 +5,7 @@
import com.ycl.platform.service.UYErrorTypeCheckService;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.utils.uuid.IdUtils;
+import constant.ApiConstants;
import enumeration.ErrorType;
import enumeration.general.WorkOrderStatusEnum;
import lombok.RequiredArgsConstructor;
@@ -134,19 +135,18 @@
@Override
- public void osdCheck(List<PyOsdResult> dataList) {
+ public void osdCheck(List<OsdCheckResult> dataList) {
List<WorkOrder> workOrderList = dataList.stream().map(item -> {
WorkOrder workOrder = new WorkOrder();
// osd鏃堕棿
- if (!item.getCheckTime().equals(item.getSetTime())) {
+ if (!ApiConstants.OSD_Correct.equals(item.getOsdTimeCorrect())) {
this.genWorkOrder(workOrder, ErrorType.CLOCK_SKEW, item.getDeviceNo());
}
// osd淇℃伅
- if (!"璁剧疆姝g‘".equals(item.getOsd1Province())
- || (!"璁剧疆姝g‘".equals(item.getOsd1City()))
- || (!"璁剧疆姝g‘".equals(item.getOsd1Part()))
- || (!"璁剧疆姝g‘".equals(item.getOsd1TimeFormat()))
- || (!"璁剧疆姝g‘".equals(item.getOsd1OSD()))
+ if (!ApiConstants.OSD_Correct.equals(item.getOsdProvinceCorrect())
+ || (!ApiConstants.OSD_Correct.equals(item.getOsdCityCorrect()))
+ || (!ApiConstants.OSD_Correct.equals(item.getOsdPartCorrect()))
+ || (!ApiConstants.OSD_Correct.equals(item.getOsdNameCorrect()))
) {
this.genWorkOrder(workOrder, ErrorType.OSD_ERROR, item.getDeviceNo());
}
diff --git a/ycl-server/src/main/java/com/ycl/task/CarTask.java b/ycl-server/src/main/java/com/ycl/task/CarTask.java
index 26b1c93..cb5c6a6 100644
--- a/ycl-server/src/main/java/com/ycl/task/CarTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/CarTask.java
@@ -36,12 +36,10 @@
public void siteOnlineTask() {
log.info("寮�濮嬭绠楄溅杈嗙偣浣嶅湪绾跨巼鍜岃鍥惧簱瀵规帴绋冲畾鎬�");
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭��
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date))
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))
.and("dataType").is(ApiConstants.HK_DataType_CAR));
List<SnapshotDataMonitorResult> results = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
CalculationStrategy<SnapshotDataMonitorResult> calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_SiteOnline_ViewStability);
@@ -52,12 +50,10 @@
public void deviceSampleTask() {
log.info("寮�濮嬭绠楄溅杈嗗崱鍙h澶囨暟鎹瘑鍒噯纭�с�乽rl鍙敤鎬с�佸ぇ鍥惧彲鐢ㄦ��");
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻杞﹁締鍗″彛璁惧鏁版嵁璇嗗埆鍑嗙‘鎬с�乽rl鍙敤鎬с�佸ぇ鍥惧彲鐢ㄦ��
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
List<VehicleDeviceSamplingResult> results = mongoTemplate.find(query, VehicleDeviceSamplingResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_DataAccuracy_Url_PicUsability);
calculator.calculate(results);
@@ -67,12 +63,10 @@
public void infoAccuracyTask() {
log.info("寮�濮嬭绠楄溅杈嗗崱鍙d俊鎭噰闆嗗噯纭巼");
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
List<CrossDetailResult> results = mongoTemplate.find(query, CrossDetailResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_InfoAccuracy);
calculator.calculate(results);
@@ -82,12 +76,10 @@
public void snapShopDelayTask() {
log.info("寮�濮嬭绠楄溅杈嗘姄鎷嶆暟鎹笂浼犲強鏃舵��");
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻杞﹁締鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date))
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))
.and("dataType").is(ApiConstants.HK_DataType_CAR));
List<SnapshotDelayMonitorResult> results = mongoTemplate.find(query, SnapshotDelayMonitorResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_SnapshotDelay);
@@ -98,12 +90,10 @@
public void snapShopDataIntegrity() {
log.info("寮�濮嬭绠楄溅杈嗘暟鎹姄鎷嶅畬鏁存��");
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻杞﹁締鏁版嵁鎶撴媿瀹屾暣鎬�
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
List<DataIntegrityMonitoringResult> results = mongoTemplate.find(query, DataIntegrityMonitoringResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_DataIntegrity);
calculator.calculate(results);
@@ -113,12 +103,10 @@
public void clockAccuracyTask() {
log.info("寮�濮嬭绠楄溅杈嗗崱鍙h澶囨椂閽熷噯纭��");
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬�
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
List<VehicleDeviceInspectionResult> results = mongoTemplate.find(query, VehicleDeviceInspectionResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_ClockAccuracy);
calculator.calculate(results);
diff --git a/ycl-server/src/main/java/com/ycl/task/FaceTask.java b/ycl-server/src/main/java/com/ycl/task/FaceTask.java
index cf4ba45..c04538e 100644
--- a/ycl-server/src/main/java/com/ycl/task/FaceTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/FaceTask.java
@@ -37,12 +37,10 @@
public void siteOnlineTask() {
log.info("寮�濮嬭绠椾汉鑴哥偣浣嶅湪绾跨巼鍜岃鍥惧簱瀵规帴绋冲畾鎬�");
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭��
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date))
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))
.and("dataType").is(ApiConstants.HK_DataType_FACE));
List<SnapshotDataMonitorResult> results = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Face_SiteOnline_ViewStability);
@@ -52,12 +50,10 @@
public void deviceSampleTask() {
log.info("寮�濮嬭绠椾汉鑴稿浘鐗囧悎鏍肩巼銆佸ぇ鍥惧彲鐢ㄦ��");
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻浜鸿劯鍥剧墖鍚堟牸鐜囥�佸ぇ鍥惧彲鐢ㄦ��
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
List<FaceDeviceSamplingResult> results = mongoTemplate.find(query, FaceDeviceSamplingResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Face_DataAccuracy_PicUsability);
calculator.calculate(results);
@@ -66,12 +62,10 @@
public void infoAccuracyTask(){
log.info("寮�濮嬭绠椾汉鑴稿崱鍙d俊鎭噰闆嗗噯纭巼");
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻浜鸿劯鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
List<MonitoringDetailResult> results = mongoTemplate.find(query, MonitoringDetailResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Face_InfoAccuracy);
calculator.calculate(results);
@@ -80,12 +74,10 @@
public void snapShopDelay(){
log.info("寮�濮嬭绠椾汉鑴告姄鎷嶆暟鎹笂浼犲強鏃舵��");
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻浜鸿劯鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date))
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))
.and("dataType").is(ApiConstants.HK_DataType_FACE));
List<SnapshotDelayMonitorResult> results = mongoTemplate.find(query, SnapshotDelayMonitorResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Face_SnapshotDelay);
@@ -95,12 +87,10 @@
public void clockAccuracyTask() {
log.info("寮�濮嬭绠椾汉鑴歌澶囨椂閽熷噯纭��");
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻浜鸿劯璁惧鏃堕挓鍑嗙‘鎬�
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
List<FaceDeviceInspectionResult> results = mongoTemplate.find(query, FaceDeviceInspectionResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Face_ClockAccuracy);
calculator.calculate(results);
diff --git a/ycl-server/src/main/java/com/ycl/task/OsdTask.java b/ycl-server/src/main/java/com/ycl/task/OsdTask.java
index 0e75f94..511633b 100644
--- a/ycl-server/src/main/java/com/ycl/task/OsdTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/OsdTask.java
@@ -1,18 +1,239 @@
package com.ycl.task;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.mongodb.client.result.DeleteResult;
import com.ycl.api.DH.module.LoginModule;
+import com.ycl.api.DH.utils.DHApi;
import com.ycl.api.HK.HKApi;
+import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.result.OSDResult;
+import com.ycl.platform.domain.result.UY.MonitorQualifyResult;
+import com.ycl.platform.domain.result.UY.OsdCheckResult;
+import com.ycl.platform.mapper.TMonitorMapper;
+import com.ycl.platform.service.UYErrorTypeCheckService;
+import com.ycl.utils.DateUtils;
+import com.ycl.utils.StringUtils;
+import constant.ApiConstants;
+import enumeration.DeviceType;
+import enumeration.general.AreaDeptEnum;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Function;
+import java.util.stream.Collectors;
@Slf4j
@Component("OsdTask")
public class OsdTask {
+ @Value("${HK.userName}")
+ public String HKUserName;
+ @Value("${HK.password}")
+ public String HKPassword;
+ @Value("${DH.userName}")
+ public String DHUserName;
+ @Value("${DH.password}")
+ public String DHPassword;
+ @Autowired
+ private MongoTemplate mongoTemplate;
+ @Autowired
+ private TMonitorMapper monitorMapper;
+ @Autowired
+ private UYErrorTypeCheckService uyErrorTypeCheckService;
+
+ private static final ExecutorService executorService = new ThreadPoolExecutor(8,
+ 24,
+ 5000,
+ TimeUnit.SECONDS,
+ new ArrayBlockingQueue<>(10),
+ new ThreadPoolExecutor.CallerRunsPolicy()
+ );
+
+ /**
+ * 閫氳繃鏌ongoDB姣忔棩涓�鏈轰竴妗f暟鎹幏鍙栬澶噄p
+ * 閫氳繃璁惧ip銆佸搧鐗岃皟鐢ㄤ笉鍚宎pi鑾峰彇osd淇℃伅
+ * 姣斿mongoDB涓�鏈轰竴妗d俊鎭紝鏁寸悊鎴恟esult瀛樺叆mongo
+ * 鍚屾鍝佺墝鍒癿ysql
+ */
public void getOSD() {
- HKApi.getOsdByIP("51.95.68.80");
- long loginId = LoginModule.login("51.95.67.189", 80, "admin", "zg@2024dx");
- String osdTime = LoginModule.getOsdTime();
- LoginModule.logout();
+ //鎵归噺淇敼娴峰悍鍝佺墝闆嗗悎
+ List<String> hkList = new ArrayList<>();
+ //鎵归噺淇敼澶у崕鍝佺墝闆嗗悎
+ List<String> dhList = new ArrayList<>();
+ //鎵归噺淇敼瀹囪鍝佺墝闆嗗悎
+ List<String> ysList = new ArrayList<>();
+ List<OSDResult> osdResultList = new ArrayList<>();
+ //鏌ヤ竴鏈轰竴妗onitor
+ Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+ List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class);
+ //闇�瑕佽�冩牳鐨勬暟鎹�
+ List<String> serialNumbers = oneMachineFileResults.stream().map(result -> result.getSerialNumber().getValue()).collect(Collectors.toList());
+
+ List<TMonitor> monitors = monitorMapper.selectByNumbers(serialNumbers);
+ for (TMonitor monitor : monitors) {
+ executorService.submit(() -> {
+ if (DeviceType.HK.getType().equals(monitor.getDeviceType())) {
+ //娴峰悍鍝佺墝
+ OSDResult osd = HKApi.getOsdByIP(monitor.getIp(), HKUserName, HKPassword);
+ if (checkSuccess(osdResultList, monitor, osd)) return;
+ } else if (DeviceType.DH.getType().equals(monitor.getDeviceType())) {
+ //澶у崕鍝佺墝
+ OSDResult osd = DHApi.getOsd(monitor.getIp(), DHUserName, DHPassword);
+ if (checkSuccess(osdResultList, monitor, osd)) return;
+ } else if (DeviceType.YS.getType().equals(monitor.getDeviceType())) {
+ //TODO锛氬畤瑙哸pi
+ }
+ //鏈煡鍝佺墝鎴栬�卆pi璋冪敤澶辫触锛屾尐涓墽琛屾墍鏈塧pi
+ OSDResult osd = tryAllApi(monitor, hkList, dhList, ysList);
+ if (osd != null) {
+ synchronized (osdResultList) {
+ osdResultList.add(osd);
+ }
+ }
+ });
+ }
+ executorService.shutdown();
+ //缁撴潫api鎵ц锛屽紑濮嬫牎楠�
+ List<OsdCheckResult> checkResults = new ArrayList<>();
+ Map<String, TMonitor> monitorMap = monitors.stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity()));
+ for (OSDResult osdResult : osdResultList) {
+ TMonitor monitor = monitorMap.get(osdResult.getSerialNumber());
+ //灏佽OsdCheckResult
+ OsdCheckResult osdCheckResult = getOsdCheckResult(osdResult, monitor);
+ checkCorrect(osdResult, monitor, osdCheckResult);
+ checkResults.add(osdCheckResult);
+ }
+ //缁撴灉瀛樺叆mongo
+ if(CollectionUtils.isEmpty(checkResults)){
+ //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+ Query pyQuery = new Query(Criteria
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+ DeleteResult result = mongoTemplate.remove(pyQuery, OsdCheckResult.class);
+ //瀛樻斁鍦╩ongo涓�
+ mongoTemplate.insertAll(checkResults);
+ // 宸ュ崟鐢熸垚
+ uyErrorTypeCheckService.osdCheck(checkResults);
+ }
+ //淇敼鏁版嵁搴撳搧鐗�
+ if(!CollectionUtils.isEmpty(hkList)){
+ monitorMapper.batchUpdateDeviceType(hkList,DeviceType.HK.getType());
+ }
+ if(!CollectionUtils.isEmpty(dhList)){
+ monitorMapper.batchUpdateDeviceType(dhList,DeviceType.DH.getType());
+ }
+ //TODO:瀹囪
+ log.info("缁撴潫鑾峰彇OSD");
+ }
+
+ private OsdCheckResult getOsdCheckResult(OSDResult osdResult, TMonitor monitor) {
+ OsdCheckResult osdCheckResult = new OsdCheckResult();
+ osdCheckResult.setDeviceNo(osdResult.getSerialNumber());
+ osdCheckResult.setIp(monitor.getIp());
+ osdCheckResult.setDeviceType(monitor.getCameraFunType());
+ osdCheckResult.setCheckTime(osdResult.getCheckTime());
+ osdCheckResult.setSetTime(osdResult.getOsdTime());
+ osdCheckResult.setOsdProvince(osdResult.getOSD1());
+ osdCheckResult.setOsdCity(osdResult.getOSD2());
+ osdCheckResult.setOsdPart(osdResult.getOSD3());
+ osdCheckResult.setOsdLB(osdResult.getOSD4());
+ osdCheckResult.setOsdName(osdResult.getName());
+ return osdCheckResult;
+ }
+
+ private void checkCorrect(OSDResult osdResult, TMonitor monitor, OsdCheckResult osdCheckResult) {
+ //妫�鏌ユ椂闂存槸鍚︽纭�
+ if (osdResult.getCheckTime() != null && osdResult.getOsdTime() != null) {
+ long checkTime = osdResult.getCheckTime().getTime();
+ long osdTime = osdResult.getOsdTime().getTime();
+ long timeDiff = (checkTime - osdTime) / 1000;
+ if (timeDiff <=60) {
+ osdCheckResult.setOsdTimeCorrect(ApiConstants.OSD_Correct);
+ } else {
+ osdCheckResult.setOsdTimeCorrect(ApiConstants.OSD_Error);
+ }
+ }
+ //妫�鏌ラ�氶亾鍚嶆槸鍚︽纭�
+ if (!StringUtils.isEmpty(osdResult.getName()) && !StringUtils.isEmpty(monitor.getName())) {
+ if (monitor.getName().equals(osdResult.getName())) {
+ osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Correct);
+ } else {
+ osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Error);
+ }
+ }
+ //妫�鏌ョ渷鏄惁姝g‘
+ if (!StringUtils.isEmpty(osdResult.getOSD1())) {
+ if ("鍥涘窛".equals(osdResult.getOSD1())) {
+ osdCheckResult.setOsdProvinceCorrect(ApiConstants.OSD_Correct);
+ } else {
+ osdCheckResult.setOsdProvinceCorrect(ApiConstants.OSD_Error);
+ }
+ }
+ //妫�鏌ュ競鏄惁姝g‘
+ if (!StringUtils.isEmpty(osdResult.getOSD2())) {
+ if ("鑷础".equals(osdResult.getOSD2())) {
+ osdCheckResult.setOsdCityCorrect(ApiConstants.OSD_Correct);
+ } else {
+ osdCheckResult.setOsdCityCorrect(ApiConstants.OSD_Error);
+ }
+ }
+ //妫�鏌ュ尯鍘挎槸鍚︽纭�
+ if (!StringUtils.isEmpty(osdResult.getOSD3())) {
+ AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromCode(monitor.getSerialNumber().substring(0, 6));
+ if (areaDeptEnum != null && osdResult.getOSD3().equals(areaDeptEnum.getName())) {
+ osdCheckResult.setOsdPartCorrect(ApiConstants.OSD_Correct);
+ } else {
+ osdCheckResult.setOsdPartCorrect(ApiConstants.OSD_Error);
+ }
+ }
+ }
+
+ private boolean checkSuccess(List<OSDResult> osdResultList, TMonitor monitor, OSDResult osd) {
+ if (osd != null) {
+ osd.setSerialNumber(monitor.getSerialNumber());
+ synchronized (osdResultList) {
+ osdResultList.add(osd);
+ }
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ private OSDResult tryAllApi(TMonitor monitor, List<String> hkList, List<String> dhList, List<String> ysList) {
+ //灏濊瘯娴峰悍鐨刟pi
+ OSDResult hkosd = HKApi.getOsdByIP(monitor.getIp(), HKUserName, HKPassword);
+ if (hkosd != null) {
+ hkosd.setSerialNumber(monitor.getSerialNumber());
+ synchronized (hkList) {
+ hkList.add(monitor.getSerialNumber());
+ }
+ return hkosd;
+ }
+ //灏濊瘯澶у崕鐨刟pi
+ OSDResult dhosd = DHApi.getOsd(monitor.getIp(), DHUserName, DHPassword);
+ if (dhosd != null) {
+ dhosd.setSerialNumber(monitor.getSerialNumber());
+ synchronized (dhList) {
+ dhList.add(monitor.getSerialNumber());
+ }
+ return dhosd;
+ }
+ //TODO锛氬畤瑙哸pi
+ return null;
}
}
diff --git a/ycl-server/src/main/java/com/ycl/task/UYTask.java b/ycl-server/src/main/java/com/ycl/task/UYTask.java
index 3241096..a475107 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -218,39 +218,4 @@
log.info("缁撴潫鎵ц褰曞儚鍙敤鏁版嵁鍚屾");
}
-
- //瑙嗛鏍囨敞
- public void OsdMonitorTask() {
- //瑙嗛鏍囨敞
- log.info("寮�濮嬫墽琛岃棰戞爣娉ㄦ暟鎹悓姝�");
- OsdMonitorParam param = new OsdMonitorParam();
- param.setPageNum(ApiConstants.PageNo);
- param.setPageSize(ApiConstants.PageSize);
- JSONObject jsonObject = uyClient.osdMonitorList(param, tenantId);
- if (jsonObject != null) {
- if (ApiConstants.UYSuccessCodeStr.equals(jsonObject.getString("code"))) {
- JSONObject data = jsonObject.getJSONObject("data");
- if (data != null) {
- List<OsdMonitorResult> records = data.getList("records", OsdMonitorResult.class);
- if (!CollectionUtils.isEmpty(records)) {
- //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
- Query query = new Query(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
- DeleteResult result = mongoTemplate.remove(query, OsdMonitorResult.class);
- //瀛樻斁鍦╩ongo涓�
- mongoTemplate.insertAll(records);
- } else {
- log.error("瑙嗛鏍囨敞鏁版嵁涓虹┖{}", data);
- }
- } else {
- log.error("瑙嗛鏍囨敞鏁版嵁涓虹┖{}", jsonObject);
- }
- } else {
- log.error("瑙嗛鏍囨敞鏁版嵁涓虹┖{}", jsonObject);
- }
- } else {
- log.error("瑙嗛鏍囨敞鏁版嵁涓虹┖");
- }
- log.info("缁撴潫鎵ц瑙嗛鏍囨敞鏁版嵁鍚屾");
- }
}
diff --git a/ycl-server/src/main/java/com/ycl/task/VideoTask.java b/ycl-server/src/main/java/com/ycl/task/VideoTask.java
index 522d096..3aa39a4 100644
--- a/ycl-server/src/main/java/com/ycl/task/VideoTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/VideoTask.java
@@ -3,34 +3,22 @@
import com.ycl.calculate.CalculationStrategy;
import com.ycl.factory.IndexCalculationFactory;
-import com.ycl.platform.domain.entity.CheckIndexVideo;
-import com.ycl.platform.domain.param.UY.RecordMetaDSumParam;
-import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult;
import com.ycl.platform.domain.result.UY.*;
import com.ycl.platform.domain.vo.PlatformOnlineVO;
import com.ycl.platform.domain.vo.TMonitorVO;
-import com.ycl.platform.mapper.CheckIndexVideoMapper;
import com.ycl.platform.mapper.PlatformOnlineMapper;
import com.ycl.platform.mapper.TMonitorMapper;
-import com.ycl.platform.service.PlatformOnlineService;
-import com.ycl.system.mapper.SysDeptMapper;
import com.ycl.utils.DateUtils;
-import constant.ApiConstants;
import constant.CalculationStrategyConstants;
-import constant.CheckConstants;
-import enumeration.general.AreaDeptEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
import java.util.Date;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
/**
* 瑙嗛璁$畻鑰冩牳鎸囨爣浠诲姟
@@ -48,12 +36,10 @@
public void siteOnlineTask() {
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻鐐逛綅鍦ㄧ嚎鐜囧拰閲嶇偣鐐逛綅鍦ㄧ嚎鐜囧拰鎸囨尌鍥惧儚鍦ㄧ嚎鐜�
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
List<VideoOnlineResult> results = mongoTemplate.find(query, VideoOnlineResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_SiteOnline);
@@ -62,12 +48,10 @@
public void videoUsabilityTask() {
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
//璁$畻褰曞儚鍙敤鐜囧拰閲嶇偣褰曞儚鍙敤鐜�
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
List<RecordMetaDSumResult> results = mongoTemplate.find(query, RecordMetaDSumResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_Usability);
@@ -82,12 +66,11 @@
}
public void oneMonitorQualifyTask(){
//璁$畻涓�鏈轰竴妗e悎鏍肩巼
-// Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
+ Date yesterday = DateUtils.addDays(new Date(), -1);
+
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
List<MonitorQualifyResult> results = mongoTemplate.find(query, MonitorQualifyResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_MonitorQualify);
calculator.calculate(results);
@@ -101,12 +84,10 @@
public void osdTask() {
//璁$畻Osd鏍囨敞銆佹椂闂村噯纭巼
Date yesterday = DateUtils.addDays(new Date(), -1);
- //TODO:鏃堕棿鍐欐浜�
- Date date = DateUtils.getDay(2024,7,13);
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
- List<PyOsdResult> results = mongoTemplate.find(query, PyOsdResult.class);
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
+ List<OsdCheckResult> results = mongoTemplate.find(query, OsdCheckResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_OsdTime);
calculator.calculate(results);
}
diff --git a/ycl-server/src/main/resources/application-dev.yml b/ycl-server/src/main/resources/application-dev.yml
index b0129c1..b71e1c8 100644
--- a/ycl-server/src/main/resources/application-dev.yml
+++ b/ycl-server/src/main/resources/application-dev.yml
@@ -76,12 +76,12 @@
spring.data:
redis:
# 鍦板潃
- #host: 42.193.1.25
- host: 127.0.0.1
+ host: 42.193.1.25
+# host: 127.0.0.1
# 绔彛锛岄粯璁や负6379
port: 6379
- #password: ycl2018
- password:
+ password: ycl2018
+# password:
# 鏁版嵁搴撶储寮�
database: 0
# 瀵嗙爜(濡傛病鏈夊瘑鐮佽娉ㄩ噴鎺�)
@@ -140,6 +140,16 @@
apikey: 72fcfd6825304f7fa0453134de620f3a
accesskey: fc9503a521544e76a8e69b912a2f177bc6362b19
+HK:
+ userName: admin
+ passWord: zg@2024dx
+ host: 51.92.65.49
+ appKey: 29555942
+ appSecret: t9U7tCplCyYHzQPPL7cH
+
+DH:
+ userName: admin
+ password: zg@2024dx
# gb281瑙嗛缃戝叧鍦板潃锛岀敤浜庤幏鍙杛tsp鏍煎紡鐨勬祦鍦板潃
rtsp:
server: http://192.168.3.88:7788
diff --git a/ycl-server/src/main/resources/application-prod.yml b/ycl-server/src/main/resources/application-prod.yml
index 5df6354..891eab7 100644
--- a/ycl-server/src/main/resources/application-prod.yml
+++ b/ycl-server/src/main/resources/application-prod.yml
@@ -130,7 +130,6 @@
retry: 4 # 鏈�澶ч噸璇曟鏁�
youYunDomain: http://51.92.65.56 # 浼樹簯鍦板潃
haiKangDomain: 51.92.65.48 # 娴峰悍鍦板潃
-
youYun:
tenantId: e10adc3949ba59abbe56e057f20f88dd
email: yunwei
@@ -138,6 +137,16 @@
apikey: 72fcfd6825304f7fa0453134de620f3a
accesskey: fc9503a521544e76a8e69b912a2f177bc6362b19
+HK:
+ userName: admin
+ passWord: zg@2024dx
+ host: 51.92.65.49
+ appKey: 29555942
+ appSecret: t9U7tCplCyYHzQPPL7cH
+
+DH:
+ userName: admin
+ password: zg@2024dx
# gb281瑙嗛缃戝叧鍦板潃锛岀敤浜庤幏鍙杛tsp鏍煎紡鐨勬祦鍦板潃
rtsp:
server: http://192.168.3.88:7788
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index b97bffc..6775baf 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -89,6 +89,13 @@
</foreach>
</select>
+ <select id="selectByNumbers" resultType="com.ycl.platform.domain.vo.TMonitor">
+ select * from t_monitor where serial_number in
+ <foreach collection="numbers" separator="," open="(" close=")" item="number">
+ #{number}
+ </foreach>
+ </select>
+
<select id="selectTMonitorList" resultType="com.ycl.platform.domain.vo.TMonitorVO">
select m.id, m.serial_number, name, site_type, mac_addr, ip, camera_fun_type, longitude, latitude,
camera_capture_area, on_state, civil_code, d.dept_id, d.dept_name, d.area, p.province_tag,
@@ -224,12 +231,9 @@
</insert>
<update id="batchUpdateDeviceType">
- <foreach collection="list" separator=";" item="item">
- UPDATE t_monitor
- SET
- update_time = #{item.updateTime},
- device_type = #{item.deviceType}
- WHERE id = #{item.id}
+ update t_monitor set device_type = #{deviceType} where serial_number in
+ <foreach collection="numbers" separator="," open="(" close=")" item="number">
+ #{number}
</foreach>
</update>
--
Gitblit v1.8.0