|
@@ -0,0 +1,48 @@
|
|
|
|
|
+package com.middle.platform.data.biz.service.http;
|
|
|
|
|
+
|
|
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
+import com.middle.platform.data.biz.service.DataService;
|
|
|
|
|
+import com.middle.platform.data.biz.service.ProductAnalyse;
|
|
|
|
|
+import com.middle.platform.manage.api.pojo.ProductVo;
|
|
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.Objects;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * @author xucaiqin
|
|
|
|
|
+ * @date 2023-12-25 17:26:23
|
|
|
|
|
+ */
|
|
|
|
|
+@Component
|
|
|
|
|
+@RequiredArgsConstructor
|
|
|
|
|
+@Slf4j
|
|
|
|
|
+public class HttpService {
|
|
|
|
|
+ private final ProductAnalyse productAnalyse;
|
|
|
|
|
+ private final DataService dataService;
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 数据上报
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param code
|
|
|
|
|
+ * @param deviceSn
|
|
|
|
|
+ * @param data
|
|
|
|
|
+ */
|
|
|
|
|
+ public void dataReport(String code, String deviceSn, JSONObject data) {
|
|
|
|
|
+ ProductVo productVo = productAnalyse.getProduct(code, deviceSn);
|
|
|
|
|
+ if (Objects.isNull(productVo)) {
|
|
|
|
|
+ log.warn("产品:{} 设备:{} 不存在", code, deviceSn);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ String msgId = IdUtil.fastSimpleUUID();
|
|
|
|
|
+ //1.源数据处理
|
|
|
|
|
+ dataService.rawData(msgId, productVo, data);
|
|
|
|
|
+ //2.云函数解析
|
|
|
|
|
+ Object cloudData = productAnalyse.dataConvert(productVo, data);
|
|
|
|
|
+ //3.物模型解析
|
|
|
|
|
+ Object modData = productAnalyse.modConvert(productVo, cloudData);
|
|
|
|
|
+ //4.存储解析后的数据
|
|
|
|
|
+ dataService.analyzeData(msgId, productVo, modData);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|