From f6593a5f6f1138abf09a0ee69fc5119fdce412c9 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期六, 07 十二月 2024 17:52:07 +0800
Subject: [PATCH] 标签bug
---
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/HKTreeResult.java | 32 ++++
ycl-pojo/src/main/java/com/ycl/platform/domain/param/HK/TreeParam.java | 9 +
ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java | 154 +++++++++++-------
ycl-server/src/main/java/com/ycl/task/HKTask.java | 24 +++
ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml | 2
ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java | 95 ++++++-----
ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java | 111 +++++++++++++
ycl-server/src/main/java/com/ycl/task/UYTask.java | 4
ycl-server/src/main/java/com/ycl/utils/bean/BeanUtils.java | 17 +
9 files changed, 336 insertions(+), 112 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/param/HK/TreeParam.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/param/HK/TreeParam.java
new file mode 100644
index 0000000..a85da52
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/param/HK/TreeParam.java
@@ -0,0 +1,9 @@
+package com.ycl.platform.domain.param.HK;
+
+import lombok.Data;
+
+@Data
+public class TreeParam extends BaseParam{
+ private String startDate;
+ private String endDate;
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/HKTreeResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/HKTreeResult.java
new file mode 100644
index 0000000..63b4f98
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/HKTreeResult.java
@@ -0,0 +1,32 @@
+package com.ycl.platform.domain.result.HK;
+
+import com.ycl.platform.domain.result.BaseResult;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+//鑰冩牳涓氬姟鏍�
+@Data
+public class HKTreeResult extends BaseResult {
+ //涓氬姟鏍戠被鍨� face/car
+ private String type;
+
+ private List<Tree> treeList;
+
+ /**
+ * 鑰冩牳涓氬姟鏍�
+ */
+ @Data
+ public static class Tree {
+ //涓氬姟鏍戠紪鐮�
+ private String cTreeCode;
+ //涓氬姟鏍戝悕绉�
+ private String cTreeName;
+ private Integer cType;
+ private String open;
+ private String iSystem;
+ private Date dCreateTime;
+
+ }
+}
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 20beae5..46d442f 100644
--- a/ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java
+++ b/ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java
@@ -2,16 +2,20 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import com.ycl.platform.domain.param.HK.BaseParam;
import com.ycl.platform.domain.param.HK.FaceDetectParam;
import com.ycl.utils.DateUtils;
+import com.ycl.utils.bean.BeanUtils;
import constant.ApiConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.CollectionUtils;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -27,7 +31,7 @@
/**
- * 璋冪敤娴峰悍鎺ュ彛
+ * 璋冪敤娴峰悍鎺ュ彛 鍩虹鏁版嵁骞冲彴 Post璇锋眰
*
* @param apiUrl 鎺ュ彛鍦板潃锛�/api/dqd/service/rs/v2/data/faceDetect/query
* @param params 璇锋眰鍙傛暟
@@ -80,6 +84,61 @@
return dataList;
}
+
+ /**
+ * 璋冪敤娴峰悍鎺ュ彛 鍩虹鏁版嵁骞冲彴 Get璇锋眰
+ *
+ * @param apiUrl 鎺ュ彛鍦板潃锛�
+ * @param params 璇锋眰鍙傛暟
+ * @param resultType 鍝嶅簲缁撴灉鎺ユ敹绫�
+ * @return 璋冪敤缁撴灉
+ */
+ public static <T> List<T> sendGetAPI(String host,String appKey,String appSecret,String apiUrl, BaseParam params, Class<T> resultType) {
+ // STEP1锛氳缃钩鍙板弬鏁帮紝鏍规嵁瀹為檯鎯呭喌,璁剧疆host appkey appsecret 涓変釜鍙傛暟.
+ ArtemisConfig.host = host; // 骞冲彴鐨刬p绔彛
+ ArtemisConfig.appKey = appKey; // 瀵嗛挜appkey
+ ArtemisConfig.appSecret = appSecret;// 瀵嗛挜appSecret
+
+ // STEP2锛氳缃甇penAPI鎺ュ彛鐨勪笂涓嬫枃
+ final String ARTEMIS_PATH = "/artemis/aaoo";
+
+ // STEP3锛氳缃帴鍙g殑URI鍦板潃
+ final String previewURLsApi = ARTEMIS_PATH + apiUrl;
+ Map<String, String> path = new HashMap<String, String>(2) {
+ {
+ put("https://", previewURLsApi);
+ }
+ };
+
+ // STEP4锛氳缃弬鏁版彁浜ゆ柟寮�
+ // STEP5锛氱粍瑁呰姹傚弬鏁�
+ Map<String, String> queryMap = object2Map(params);
+ log.info("璇锋眰鍙傛暟"+queryMap);
+ // STEP6锛氳皟鐢ㄦ帴鍙�
+ String result = null;
+ List<T> dataList = new ArrayList<>();
+ for (int i = 0; i < 10; i++) {
+ result = ArtemisHttpUtil.doGetArtemis(path, queryMap, null, null , null);
+ JSONObject jsonObject = JSONObject.parseObject(result);
+ log.info("璇锋眰缁撴灉"+jsonObject);
+ if(jsonObject.getString("code") == null || !ApiConstants.HKSuccessCode.equals(jsonObject.getString("code"))){
+ log.error("璇锋眰澶辫触{}",result);
+ dataList = null;
+ break;
+ }
+ List<T> resultList = HkApiUtil.getDataList(JSONObject.parseObject(result), resultType);
+ if(CollectionUtils.isEmpty(resultList) || resultList.size()<ApiConstants.HKPageSize) {
+ dataList.addAll(resultList);
+ break;
+ }else {
+ dataList.addAll(resultList);
+ params.setPageNo(params.getPageNo()+1);
+ }
+ }
+
+ return dataList;
+ }
+
//瑙f瀽鏁版嵁
private static <T> List<T> getDataList(JSONObject jsonObject, Class<T> resultClass) {
if (jsonObject != null && ApiConstants.HKSuccessCode.equals(jsonObject.getString("code"))) {
@@ -96,6 +155,56 @@
return null;
}
+ /**
+ * 瀹炰綋瀵硅薄杞垚Map
+ * @param obj 瀹炰綋瀵硅薄
+ * @return
+ */
+ public static Map<String, String> object2Map(Object obj) {
+ Map<String, String> map = new HashMap<>();
+ if (obj == null) {
+ return map;
+ }
+ Class clazz = obj.getClass();
+ Field[] fields = clazz.getDeclaredFields();
+ try {
+ for (Field field : fields) {
+ field.setAccessible(true);
+ map.put(field.getName(), field.get(obj).toString());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return map;
+ }
+ /**
+ * Map杞垚瀹炰綋瀵硅薄
+ * @param map map瀹炰綋瀵硅薄鍖呭惈灞炴��
+ * @param clazz 瀹炰綋瀵硅薄绫诲瀷
+ * @return
+ */
+ public static Object map2Object(Map<String, Object> map, Class<?> clazz) {
+ if (map == null) {
+ return null;
+ }
+ Object obj = null;
+ try {
+ obj = clazz.newInstance();
+
+ Field[] fields = obj.getClass().getDeclaredFields();
+ for (Field field : fields) {
+ int mod = field.getModifiers();
+ if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
+ continue;
+ }
+ field.setAccessible(true);
+ field.set(obj, map.get(field.getName()));
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return obj;
+ }
}
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 6d642bd..d238b64 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
@@ -37,6 +37,7 @@
private final WorkOrderService workOrderService;
private final IYwThresholdService ywThresholdService;
+
/**
* 鍥惧儚妫�娴嬬敓鎴愬伐鍗�
*
@@ -45,40 +46,40 @@
@Override
public void imageDetectionCheck(List<ImageDetectionResult> dataList) {
List<WorkOrder> workOrderList = dataList.stream().filter(item -> -1 == item.getSignal()
- || -1 == item.getImage()
- )
- .map(item -> {
- WorkOrder workOrder = new WorkOrder();
- // 淇″彿缂哄け
- if (-1 == item.getSigna1() ) {
- this.genWorkOrder(workOrder, ErrorType.SIGNAL_LOSS, item.getDeviceId());
- }
- // 鐢婚潰鍋忚壊
- if (-1 == item.getColor()) {
- this.genWorkOrder(workOrder, ErrorType.SCREEN_COLOR_DEVIATION, item.getDeviceId());
- }
- // 闆姳骞叉壈
- if (-1 == item.getSnow()) {
- this.genWorkOrder(workOrder, ErrorType.SNOW_STORM, item.getDeviceId());
- }
- // 鏉$汗骞叉壈
- if (-1 == item.getStripe()) {
- this.genWorkOrder(workOrder, ErrorType.STRIPE_INTERFERENCE, item.getDeviceId());
- }
- // 鐢婚潰閬尅
- if (-1 == item.getShade()) {
- this.genWorkOrder(workOrder, ErrorType.SCREEN_OCCLUSION, item.getDeviceId());
- }
- // 娓呮櫚搴﹀紓甯�
- if (-1 == item.getBlur()) {
- this.genWorkOrder(workOrder, ErrorType.ABNORMAL_CLARITY, item.getDeviceId());
- }
+ || -1 == item.getImage()
+ )
+ .map(item -> {
+ WorkOrder workOrder = new WorkOrder();
+ // 淇″彿缂哄け
+ if (-1 == item.getSigna1()) {
+ this.genWorkOrder(workOrder, ErrorType.SIGNAL_LOSS, item.getDeviceId());
+ }
+ // 鐢婚潰鍋忚壊
+ if (-1 == item.getColor()) {
+ this.genWorkOrder(workOrder, ErrorType.SCREEN_COLOR_DEVIATION, item.getDeviceId());
+ }
+ // 闆姳骞叉壈
+ if (-1 == item.getSnow()) {
+ this.genWorkOrder(workOrder, ErrorType.SNOW_STORM, item.getDeviceId());
+ }
+ // 鏉$汗骞叉壈
+ if (-1 == item.getStripe()) {
+ this.genWorkOrder(workOrder, ErrorType.STRIPE_INTERFERENCE, item.getDeviceId());
+ }
+ // 鐢婚潰閬尅
+ if (-1 == item.getShade()) {
+ this.genWorkOrder(workOrder, ErrorType.SCREEN_OCCLUSION, item.getDeviceId());
+ }
+ // 娓呮櫚搴﹀紓甯�
+ if (-1 == item.getBlur()) {
+ this.genWorkOrder(workOrder, ErrorType.ABNORMAL_CLARITY, item.getDeviceId());
+ }
// // 浜害寮傚父
// if (-1 == item.getLight()) {
// this.genWorkOrder(workOrder, ErrorType.ABNORMAL_BRIGHTNESS, item.getDeviceId());
// }
- return workOrder;
- }).collect(Collectors.toList());
+ return workOrder;
+ }).collect(Collectors.toList());
workOrderService.innerAddWorkOrder(workOrderList);
}
@@ -91,18 +92,22 @@
public void monitorQualifyCheck(List<MonitorQualifyResult> dataList) {
List<WorkOrder> workOrderList = dataList.stream().map(item -> {
WorkOrder workOrder = new WorkOrder();
- if (item.getSerialNumber().getError()
- || item.getCivilCode().getError()
- || item.getIntegrated_device().getError()
- || item.getIp().getError()
- || item.getJkdwlx().getError()
- || item.getLatitude().getError()
- || item.getLongitude().getError()
- || item.getMacdz().getError()
- || item.getSbzt().getError()
- || item.getName().getError()
- || item.getSxjcjqy().getError()
- || item.getSxjgnlx().getError()) {
+ //TODO:寰呬紭浜戜慨澶嶏紝閬垮厤宸ュ崟
+ MonitorQualifyResult.QualifyResult qualifyResult = new MonitorQualifyResult.QualifyResult();
+ qualifyResult.setError(false);
+ item.setIntegrated_device(qualifyResult);
+ if (item.getSerialNumber() == null || item.getSerialNumber().getError() ||
+ item.getCivilCode() == null || item.getCivilCode().getError() ||
+ item.getIntegrated_device() == null || item.getIntegrated_device().getError() ||
+ item.getIp() == null || item.getIp().getError() ||
+ item.getJkdwlx() == null || item.getJkdwlx().getError() ||
+ item.getLatitude() == null || item.getLatitude().getError() ||
+ item.getLongitude() == null || item.getLongitude().getError() ||
+ item.getMacdz() == null || item.getMacdz().getError() ||
+ item.getSbzt() == null || item.getSbzt().getError() ||
+ item.getName() == null || item.getName().getError() ||
+ item.getSxjcjqy() == null || item.getSxjcjqy().getError() ||
+ item.getSxjgnlx() == null || item.getSxjgnlx().getError()) {
this.genWorkOrder(workOrder, ErrorType.POINT_INFO_ERROR, item.getSerialNumber().getValue());
}
return workOrder;
@@ -114,7 +119,7 @@
public void videoOnlineCheck(List<VideoOnlineResult> dataList) {
List<WorkOrder> workOrderList = dataList.stream().map(item -> {
WorkOrder workOrder = new WorkOrder();
- if (ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus()) ) {
+ if (ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus())) {
this.genWorkOrder(workOrder, ErrorType.DEVICE_OFFLINE, item.getDeviceId());
}
// else if (0 == item.getStatus()) {
@@ -160,7 +165,7 @@
long checkTime = item.getCheckTime().getTime();
long osdTime = item.getSetTime().getTime();
Long timeDiff = (checkTime - osdTime) / 1000;
- ywThresholdService.check(YwThreadConstants.Video_DiffTime,timeDiff ,item.getDeviceNo(),ywThresholdMap,workOrder,CompareType.MORE_THAN_EQ,ErrorType.CLOCK_SKEW.getValue());
+ ywThresholdService.check(YwThreadConstants.Video_DiffTime, timeDiff, item.getDeviceNo(), ywThresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.CLOCK_SKEW.getValue());
return workOrder;
}).collect(Collectors.toList());
workOrderService.innerAddWorkOrder(workOrderList);
@@ -170,7 +175,7 @@
* 宸ュ崟淇℃伅
*
* @param workOrder
- * @param errorType 鏁呴殰绫诲瀷
+ * @param errorType 鏁呴殰绫诲瀷
* @param serialNumber 鍥芥爣鐮�
*/
private void genWorkOrder(WorkOrder workOrder, ErrorType errorType, String serialNumber) {
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
index 0ea3f58..8289811 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -72,6 +72,7 @@
@Autowired
private WorkOrderWhiteMapper workOrderWhiteMapper;
+
/**
* 鏌ヨ杩愮淮闃堝��
*
@@ -156,7 +157,7 @@
// 骞冲彴绂荤嚎鏁呴殰妫�娴�
if (CollectionUtils.isEmpty(list)) {
Boolean ping = PingUtil.ping("", 5);
- if (! ping) {
+ if (!ping) {
}
}
@@ -197,23 +198,35 @@
}
WorkOrder workOrder = new WorkOrder();
//妫�鏌ユ椂閽熷噯纭巼
- Float clockPercent = result.getSnapClock().getClockPercent();
- check(YwThreadConstants.Face_ClockPercent, clockPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.CLOCK_RIGHT.getValue());
+ if (result.getSnapClock() != null) {
+ Float clockPercent = result.getSnapClock().getClockPercent();
+ check(YwThreadConstants.Face_ClockPercent, clockPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.CLOCK_RIGHT.getValue());
+ }
//妫�鏌ユ暟鎹強鏃剁巼
- Float timelyPercent = result.getSnapTimely().getTimelyPercent();
- check(YwThreadConstants.Face_TimelyPercent, timelyPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.DATA_TIMELY_ERROR.getValue());
+ if (result.getSnapTimely() != null) {
+ Float timelyPercent = result.getSnapTimely().getTimelyPercent();
+ check(YwThreadConstants.Face_TimelyPercent, timelyPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.DATA_TIMELY_ERROR.getValue());
+ }
//妫�鏌ユ寔缁棤鏁版嵁澶╂暟
- Integer continueNoDataCount = result.getContinueNoDataCount();
- check(YwThreadConstants.Face_ContinueNoDataCount, continueNoDataCount, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.LONG_DAY_NO_DATA.getValue());
+ if (result.getContinueNoDataCount() != null) {
+ Integer continueNoDataCount = result.getContinueNoDataCount();
+ check(YwThreadConstants.Face_ContinueNoDataCount, continueNoDataCount, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.LONG_DAY_NO_DATA.getValue());
+ }
//妫�鏌ヤ笉鍞竴鏁版嵁閲�
- Integer nouniqueCount = result.getSnapUnique().getNouniqueCount();
- check(YwThreadConstants.Face_NouniqueCount, nouniqueCount, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.NOT_UNIQUE_DATA_VOLUME.getValue());
+ if (result.getSnapUnique() != null) {
+ Integer nouniqueCount = result.getSnapUnique().getNouniqueCount();
+ check(YwThreadConstants.Face_NouniqueCount, nouniqueCount, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.NOT_UNIQUE_DATA_VOLUME.getValue());
+ }
//妫�鏌ヤ汉鑴镐綆璇勫垎鐜�
- Float lowScorePercent = result.getSnapValidity().getLowScorePercent();
- check(YwThreadConstants.Face_LowScorePercent, lowScorePercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.FACE_LOW.getValue());
+ if (result.getSnapValidity() != null) {
+ Float lowScorePercent = result.getSnapValidity().getLowScorePercent();
+ check(YwThreadConstants.Face_LowScorePercent, lowScorePercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.FACE_LOW.getValue());
+ }
//妫�鏌ュ缓妯″け璐ョ巼
- Float failPercent = result.getSnapValidity().getFailPercent();
- check(YwThreadConstants.Face_FailPercent, failPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.MODELING_FAIL.getValue());
+ if (result.getSnapValidity() != null) {
+ Float failPercent = result.getSnapValidity().getFailPercent();
+ check(YwThreadConstants.Face_FailPercent, failPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.MODELING_FAIL.getValue());
+ }
// 鐐逛綅鍦ㄧ嚎鐜�
if (2 == result.getSnapResult()) {
workOrder.setSerialNumber(result.getExternalIndexCode());
@@ -259,22 +272,32 @@
Integer continueNoDataCount = result.getContinueNoDataCount();
check(YwThreadConstants.Car_ContinueNoDataCount, continueNoDataCount, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.LONG_DAY_NO_DATA.getValue());
//妫�鏌ユ椂閽熷噯纭巼
- Float clockPercent = result.getSnapClock().getClockPercent();
- check(YwThreadConstants.Car_ClockPercent, clockPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.CLOCK_RIGHT.getValue());
+ if (result.getSnapClock() != null) {
+ Float clockPercent = result.getSnapClock().getClockPercent();
+ check(YwThreadConstants.Car_ClockPercent, clockPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.CLOCK_RIGHT.getValue());
+ }
//妫�鏌ユ暟鎹強鏃剁巼
- Float timelyPercentResult = result.getSnapTimely().getTimelyPercent();
- check(YwThreadConstants.Car_TimelyPercent, timelyPercentResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.DATA_TIMELY_ERROR.getValue());
+ if (result.getSnapTimely() != null) {
+ Float timelyPercentResult = result.getSnapTimely().getTimelyPercent();
+ check(YwThreadConstants.Car_TimelyPercent, timelyPercentResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.DATA_TIMELY_ERROR.getValue());
+ }
//妫�鏌ヤ笉鍞竴鏁版嵁閲�
- Integer nouniqueCountResult = result.getSnapUnique().getNouniqueCount();
- check(YwThreadConstants.Car_NouniqueCount, nouniqueCountResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.NOT_UNIQUE_DATA_VOLUME.getValue());
+ if (result.getSnapUnique() != null) {
+ Integer nouniqueCountResult = result.getSnapUnique().getNouniqueCount();
+ check(YwThreadConstants.Car_NouniqueCount, nouniqueCountResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.NOT_UNIQUE_DATA_VOLUME.getValue());
+ }
//妫�鏌ョ櫧澶╂湭璇嗗埆閲�
- Integer dayNoNumberCountResult = result.getSnapPlate().getDayNoNumberCount();
- check(YwThreadConstants.Car_DayNoNumberCount, dayNoNumberCountResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.UNRECOGNIZED_DAY_VOLUME.getValue());
+ if (result.getSnapPlate() != null) {
+ Integer dayNoNumberCountResult = result.getSnapPlate().getDayNoNumberCount();
+ check(YwThreadConstants.Car_DayNoNumberCount, dayNoNumberCountResult, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.UNRECOGNIZED_DAY_VOLUME.getValue());
+ }
//杞﹁締涓昏灞炴�т竴鑷寸巼
- Integer noIntegrityCountResult = result.getIntegrity().getMainNoIntegrityCount();
- Integer dataCount = result.getDataCount();
- Double integrityRate = ((double)dataCount-noIntegrityCountResult)/dataCount;
- check(YwThreadConstants.Car_NoIntegrityCount, integrityRate, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.CAR_SIX.getValue());
+ if (result.getIntegrity() != null) {
+ Integer noIntegrityCountResult = result.getIntegrity().getMainNoIntegrityCount();
+ Integer dataCount = result.getDataCount();
+ Double integrityRate = ((double) dataCount - noIntegrityCountResult) / dataCount;
+ check(YwThreadConstants.Car_NoIntegrityCount, integrityRate, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.CAR_SIX.getValue());
+ }
// 鐐逛綅鍦ㄧ嚎鐜�
if (2 == result.getSnapResult()) {
workOrder.setSerialNumber(result.getExternalIndexCode());
@@ -316,6 +339,7 @@
/**
* 鐧藉悕鍗曡鎯�
+ *
* @param id
* @return
*/
@@ -326,6 +350,7 @@
workOrderWhite.setErrorTypeList(errorTypeList);
return Result.ok().data(workOrderWhite);
}
+
/**
* 宸ュ崟鐧藉悕鍗曞垪琛�
*
@@ -338,10 +363,10 @@
IPage<WorkOrderWhite> page = PageUtil.getPage(query, WorkOrderWhite.class);
workOrderWhiteMapper.page(page, query);
List<WorkOrderWhite> records = page.getRecords();
- records.forEach(white-> {
+ records.forEach(white -> {
List<String> errorTextList = new ArrayList<>();
List<String> errorTypeList = Arrays.asList(white.getErrorType().split(","));
- errorTypeList.forEach(error->{
+ errorTypeList.forEach(error -> {
String errorText = ErrorType.getDescriptionByValue(error);
errorTextList.add(errorText);
});
@@ -365,12 +390,13 @@
return Result.error("璇ヨ澶囧凡瀛樺湪鐧藉悕鍗�");
} else {
List<String> errorTypeList = workOrderWhite.getErrorTypeList();
- workOrderWhite.setErrorType(String.join(",",errorTypeList));
+ workOrderWhite.setErrorType(String.join(",", errorTypeList));
workOrderWhite.setCreateBy(SecurityUtils.getUsername());
workOrderWhiteMapper.insert(workOrderWhite);
return Result.ok();
}
}
+
/**
* 淇敼宸ュ崟鐧藉悕鍗�
*
@@ -383,7 +409,7 @@
WorkOrderWhite white = workOrderWhiteMapper.selectBySerialNumber(workOrderWhite.getSerialNumber());
workOrderWhite.setId(white.getId());
List<String> errorTypeList = workOrderWhite.getErrorTypeList();
- workOrderWhite.setErrorType(String.join(",",errorTypeList));
+ workOrderWhite.setErrorType(String.join(",", errorTypeList));
workOrderWhiteMapper.updateById(workOrderWhite);
return Result.ok();
}
@@ -399,8 +425,10 @@
workOrderWhiteMapper.batchDelete(ids);
return Result.ok();
}
+
/**
* 鐧藉悕鍗曞鍑�
+ *
* @param response
* @throws IOException
*/
@@ -408,10 +436,10 @@
public void whiteExport(HttpServletResponse response) throws IOException {
//鐧藉悕鍗曟暟鎹�
List<WorkOrderWhiteExport> data = workOrderWhiteMapper.whiteExport();
- data.forEach(white-> {
+ data.forEach(white -> {
List<String> errorTextList = new ArrayList<>();
List<String> errorTypeList = Arrays.asList(white.getErrorType().split(","));
- errorTypeList.forEach(error->{
+ errorTypeList.forEach(error -> {
String errorText = ErrorType.getDescriptionByValue(error);
errorTextList.add(errorText);
});
@@ -426,7 +454,7 @@
errorExports.add(errorExport);
});
ExcelWriter excelWriter = null;
- try(OutputStream outputStream = response.getOutputStream()) {
+ try (OutputStream outputStream = response.getOutputStream()) {
excelWriter = EasyExcel.write(outputStream).build();
WriteSheet whiteSheet = EasyExcel.writerSheet(0, "宸ュ崟鐧藉悕鍗曟竻鍗�").head(WorkOrderWhiteExport.class).build();
@@ -436,7 +464,7 @@
excelWriter.write(errorExports, errorSheet);
excelWriter.finish();
outputStream.flush();
- }catch (Exception e) {
+ } catch (Exception e) {
e.printStackTrace();
} finally {
try {
@@ -451,12 +479,13 @@
/**
* 瀵煎叆宸ュ崟鐧藉悕鍗�
+ *
* @param file
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public Result importWhite(MultipartFile file) throws IOException{
+ public Result importWhite(MultipartFile file) throws IOException {
// Consumer<List<WorkOrderWhiteExport>> consumer = (dataList) -> {
// try {
// this.updateWhite(dataList);
@@ -477,15 +506,17 @@
// 灏嗚鍙栧埌鐨勬瘡涓�琛屽瓨鍏eportDetails闆嗗悎涓�
dataList.add(excel);
}
+
@Override
- public void doAfterAllAnalysed(AnalysisContext analysisContext) {}
+ public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+ }
}).sheet().doRead();
if (CollectionUtils.isEmpty(dataList)) {
throw new RuntimeException("瀵煎叆鏁版嵁涓嶈兘涓虹┖");
}
boolean duplic = checkDuplic(dataList);
- if(duplic) throw new RuntimeException("瀛樺湪閲嶅鍥芥爣璁惧");
+ if (duplic) throw new RuntimeException("瀛樺湪閲嶅鍥芥爣璁惧");
//宸插瓨鍦ㄧ殑鐧藉悕鍗�
Map<String, WorkOrderWhite> whiteMap = workOrderWhiteMapper.selectList().stream().collect(Collectors.toMap(WorkOrderWhite::getSerialNumber, Function.identity()));
List<WorkOrderWhite> addList = new ArrayList<>();
@@ -496,34 +527,36 @@
//澶囨敞
white.setRemark(item.getRemark());
String errorType = item.getErrorType();
- if(StringUtils.isEmpty(errorType)){
- throw new RuntimeException("鍥芥爣鐮佷负"+item.getSerialNumber()+"鐨勮澶囨晠闅滀笉鑳戒负绌�");
+ if (StringUtils.isEmpty(errorType)) {
+ throw new RuntimeException("鍥芥爣鐮佷负" + item.getSerialNumber() + "鐨勮澶囨晠闅滀笉鑳戒负绌�");
}
try {
List<String> errorDataList = new ArrayList<>();
List<String> errorExcelList = Arrays.asList(item.getErrorType().split(","));
- errorExcelList.forEach(desc->{
+ errorExcelList.forEach(desc -> {
//鎶婁腑鏂囪浆鎹负鏁版嵁搴撳瓨鍌ㄦ牸寮�
String errorText = ErrorType.getValueByDescription(desc);
//鎵句笉鍒版姏鍑哄紓甯�
- if(errorText == null) throw new RuntimeException("鍥芥爣鐮佷负"+item.getSerialNumber()+"鐨勮澶囨晠闅滅被鍨嬫湁璇�");
+ if (errorText == null)
+ throw new RuntimeException("鍥芥爣鐮佷负" + item.getSerialNumber() + "鐨勮澶囨晠闅滅被鍨嬫湁璇�");
errorDataList.add(errorText);
});
white.setErrorType(String.join(",", errorDataList));
//濡傛灉宸插瓨鍦ㄨˉ鍏卛d
WorkOrderWhite whiteExsit = whiteMap.get(white.getSerialNumber());
- if(whiteExsit!=null) white.setId(whiteExsit.getId());
+ if (whiteExsit != null) white.setId(whiteExsit.getId());
addList.add(white);
} catch (Exception e) {
- throw new RuntimeException("鍥芥爣鐮佷负"+item.getSerialNumber()+"鐨勮澶囨晠闅滅被鍨嬫湁璇�");
+ throw new RuntimeException("鍥芥爣鐮佷负" + item.getSerialNumber() + "鐨勮澶囨晠闅滅被鍨嬫湁璇�");
}
});
- if(!CollectionUtils.isEmpty(addList)) {
+ if (!CollectionUtils.isEmpty(addList)) {
workOrderWhiteMapper.deleteAll();
workOrderWhiteMapper.insertBatch(addList);
}
return Result.ok();
}
+
/**
* 淇敼鐧藉悕鍗�
*
@@ -545,46 +578,49 @@
//澶囨敞
white.setRemark(item.getRemark());
String errorType = item.getErrorType();
- if(StringUtils.isEmpty(errorType)){
- throw new RuntimeException("鍥芥爣鐮佷负"+item.getSerialNumber()+"鐨勮澶囨晠闅滀笉鑳戒负绌�");
+ if (StringUtils.isEmpty(errorType)) {
+ throw new RuntimeException("鍥芥爣鐮佷负" + item.getSerialNumber() + "鐨勮澶囨晠闅滀笉鑳戒负绌�");
}
try {
List<String> errorDataList = new ArrayList<>();
List<String> errorExcelList = Arrays.asList(item.getErrorType().split(","));
- errorExcelList.forEach(desc->{
+ errorExcelList.forEach(desc -> {
//鎶婁腑鏂囪浆鎹负鏁版嵁搴撳瓨鍌ㄦ牸寮�
String errorText = ErrorType.getValueByDescription(desc);
//鎵句笉鍒版姏鍑哄紓甯�
- if(errorText == null) throw new RuntimeException("鍥芥爣鐮佷负"+item.getSerialNumber()+"鐨勮澶囨晠闅滅被鍨嬫湁璇�");
+ if (errorText == null)
+ throw new RuntimeException("鍥芥爣鐮佷负" + item.getSerialNumber() + "鐨勮澶囨晠闅滅被鍨嬫湁璇�");
errorDataList.add(errorText);
});
white.setErrorType(String.join(",", errorDataList));
- if(!CollectionUtils.isEmpty(serialNumbers) && serialNumbers.contains(white.getSerialNumber())){
+ if (!CollectionUtils.isEmpty(serialNumbers) && serialNumbers.contains(white.getSerialNumber())) {
updateList.add(white);
- }else {
+ } else {
addList.add(white);
}
} catch (Exception e) {
- throw new RuntimeException("鍥芥爣鐮佷负"+item.getSerialNumber()+"鐨勮澶囨晠闅滅被鍨嬫湁璇�");
+ throw new RuntimeException("鍥芥爣鐮佷负" + item.getSerialNumber() + "鐨勮澶囨晠闅滅被鍨嬫湁璇�");
}
});
- if(!CollectionUtils.isEmpty(addList)) workOrderWhiteMapper.insertBatch(addList);
- if(!CollectionUtils.isEmpty(updateList)) workOrderWhiteMapper.updateBatch(updateList);
+ if (!CollectionUtils.isEmpty(addList)) workOrderWhiteMapper.insertBatch(addList);
+ if (!CollectionUtils.isEmpty(updateList)) workOrderWhiteMapper.updateBatch(updateList);
}
/**
* 妫�鏌ラ槇鍊�
*
- * @param key 鏌愰槇鍊兼爣璇�
- * @param value 鎺ュ彛鑾峰彇鍒扮殑鍊�
+ * @param key 鏌愰槇鍊兼爣璇�
+ * @param value 鎺ュ彛鑾峰彇鍒扮殑鍊�
* @param serialNumber 鍥芥爣鐮�
- * @param thresholds 闃堝�兼潯浠秏ap
- * @param compareType 姣旇緝鏂瑰紡锛�>= <=
- * @param errorType 鏁呴殰绫诲瀷
+ * @param thresholds 闃堝�兼潯浠秏ap
+ * @param compareType 姣旇緝鏂瑰紡锛�>= <=
+ * @param errorType 鏁呴殰绫诲瀷
* @param <T>
*/
@Override
- public <T extends Comparable<T>> void check(String key, T value, String serialNumber, Map<String, YwThreshold> thresholds, WorkOrder workOrder, CompareType compareType,String errorType) {
+ public <T extends Comparable<T>> void check(String key, T value, String
+ serialNumber, Map<String, YwThreshold> thresholds, WorkOrder workOrder, CompareType compareType, String
+ errorType) {
Optional.ofNullable(value).ifPresentOrElse(
v -> {
YwThreshold ywThreshold = thresholds.get(key);
@@ -593,7 +629,7 @@
T thresholdAutoValue = parseThreshold(ywThreshold.getValueAuto(), value.getClass());
//鐩存帴涓嬪彂宸ュ崟闃堝��
T thresholdValue = parseThreshold(ywThreshold.getValue(), value.getClass());
- if("percent".equals(ywThreshold.getCountType())){
+ if ("percent".equals(ywThreshold.getCountType())) {
if (thresholdAutoValue instanceof Float) {
thresholdAutoValue = (T) Float.valueOf(((Float) thresholdAutoValue) / 100f);
}
diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java
index 993e794..10815fd 100644
--- a/ycl-server/src/main/java/com/ycl/task/HKTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -406,6 +406,30 @@
log.info("缁撴潫浜鸿劯璁惧鎶芥鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
}
+ //涓氬姟鏍�
+ public void TreeTask() {
+ log.info("寮�濮嬫墽琛屼笟鍔℃爲鏁版嵁");
+ TreeParam param = new TreeParam();
+ param.setStartDate("2024-12-06");
+ param.setEndDate("2024-12-06");
+ List<HKTreeResult> faceList = HkApiUtil.sendGetAPI(host,appKey,appSecret,"/api/third/timeTree", param, HKTreeResult.class);
+// if (!CollectionUtils.isEmpty(faceList)) {
+// //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+// Query query = new Query(Criteria
+// .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+// DeleteResult result = mongoTemplate.remove(query, FaceDeviceSamplingResult.class);
+// faceList.stream().forEach(item -> {
+// if (Objects.nonNull(item.getExternalIndexCode())) {
+// item.setNo(item.getExternalIndexCode());
+// }
+// });
+// pointService.setDeviceTagByGB(faceList,CheckConstants.Rule_Category_Face);
+// //瀛樻斁鍦╩ongo涓�
+// mongoTemplate.insertAll(faceList);
+// }
+ log.info("缁撴潫涓氬姟鏍戞暟鎹�");
+ }
+
//瑙f瀽鏁版嵁
private <T> List<T> getDataList(JSONObject jsonObject, Class<T> resultClass, String message) {
if (jsonObject != null && ApiConstants.HKSuccessCode.equals(jsonObject.getString("code"))) {
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 138418e..a0a9369 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -197,7 +197,9 @@
List<TMonitorResult> monitorList = monitorMapper.getDistinctIP();
//琛ュ厖閿欒鏃堕棿鐐�
Query onlineQuery = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
- Map<String, TMonitorResult> mongoMap = mongoTemplate.find(onlineQuery, TMonitorResult.class).stream().collect(Collectors.toMap(TMonitorResult::getNo, Function.identity()));
+ Map<String, TMonitorResult> mongoMap = mongoTemplate.find(onlineQuery, TMonitorResult.class)
+ .stream()
+ .collect(Collectors.toMap(TMonitorResult::getNo, Function.identity(), (existing, replacement) -> replacement));
for (TMonitorResult result : monitorList) {
TMonitorResult mongoData = mongoMap.get(result.getNo());
if(mongoData!=null){
diff --git a/ycl-server/src/main/java/com/ycl/utils/bean/BeanUtils.java b/ycl-server/src/main/java/com/ycl/utils/bean/BeanUtils.java
index 93cde63..6e5af9e 100644
--- a/ycl-server/src/main/java/com/ycl/utils/bean/BeanUtils.java
+++ b/ycl-server/src/main/java/com/ycl/utils/bean/BeanUtils.java
@@ -1,14 +1,18 @@
package com.ycl.utils.bean;
+import java.lang.reflect.Field;
import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Bean 宸ュ叿绫�
- *
+ *
* @author ruoyi
*/
public class BeanUtils extends org.springframework.beans.BeanUtils
@@ -24,7 +28,7 @@
/**
* Bean灞炴�у鍒跺伐鍏锋柟娉曘��
- *
+ *
* @param dest 鐩爣瀵硅薄
* @param src 婧愬璞�
*/
@@ -42,7 +46,7 @@
/**
* 鑾峰彇瀵硅薄鐨剆etter鏂规硶銆�
- *
+ *
* @param obj 瀵硅薄
* @return 瀵硅薄鐨剆etter鏂规硶鍒楄〃
*/
@@ -70,7 +74,7 @@
/**
* 鑾峰彇瀵硅薄鐨刧etter鏂规硶銆�
- *
+ *
* @param obj 瀵硅薄
* @return 瀵硅薄鐨刧etter鏂规硶鍒楄〃
*/
@@ -97,7 +101,7 @@
/**
* 妫�鏌ean鏂规硶鍚嶄腑鐨勫睘鎬у悕鏄惁鐩哥瓑銆�<br>
* 濡俫etName()鍜宻etName()灞炴�у悕涓�鏍凤紝getName()鍜宻etAge()灞炴�у悕涓嶄竴鏍枫��
- *
+ *
* @param m1 鏂规硶鍚�1
* @param m2 鏂规硶鍚�2
* @return 灞炴�у悕涓�鏍疯繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse
@@ -107,4 +111,7 @@
{
return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX));
}
+
+
+
}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
index 7a95e7d..ae5d9d2 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -232,7 +232,7 @@
deleted = 0 AND serial_number in
<foreach collection="gbList" open="(" separator="," close=")" item="no">#{no}</foreach>
GROUP BY
- serial_number, province_tag_face,province_tag_car,province_tag_videogetTagsByGB, important_tag, important_command_image_tag, dept_tag
+ serial_number, province_tag_face,province_tag_car,province_tag_video, important_tag, important_command_image_tag, dept_tag
</select>
<select id="selectToCount" resultType="com.ycl.platform.domain.vo.YwPointVO">
--
Gitblit v1.8.0