|
|
@@ -0,0 +1,93 @@
|
|
|
+package com.gyee.runeconomy.service.auto.impl;
|
|
|
+
|
|
|
+import com.gyee.common.model.PointData;
|
|
|
+import com.gyee.runeconomy.init.CacheContext;
|
|
|
+import com.gyee.runeconomy.model.ProBasicOriginalCode;
|
|
|
+import com.gyee.runeconomy.mapper.ProBasicOriginalCodeMapper;
|
|
|
+import com.gyee.runeconomy.service.auto.IProBasicOriginalCodeService;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.gyee.runeconomy.util.realtimesource.IEdosUtil;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 服务实现类
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author
|
|
|
+ * @since 2026-01-15
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class ProBasicOriginalCodeServiceImpl extends ServiceImpl<ProBasicOriginalCodeMapper, ProBasicOriginalCode> implements IProBasicOriginalCodeService {
|
|
|
+ @Resource
|
|
|
+ private IEdosUtil edosUtil;
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, List<ProBasicOriginalCode>> realData(String windturbineIds, String uniformCodes, long time) throws Exception {
|
|
|
+ Map<String, List<ProBasicOriginalCode>> map = new HashMap<>();
|
|
|
+ String[] windturbineId = windturbineIds.split(",");
|
|
|
+ String[] uniformCode = uniformCodes.split(",");
|
|
|
+ for (String wt : windturbineId) {
|
|
|
+ List<ProBasicOriginalCode> orils = CacheContext.oriMap.get(wt);
|
|
|
+ List<String> codes = orils.stream()
|
|
|
+ .filter(ori -> ori.getUniformCode() != null &&
|
|
|
+ Arrays.asList(uniformCode).contains(ori.getUniformCode()))
|
|
|
+ .map(ProBasicOriginalCode::getCode)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<PointData> histMatrix = edosUtil.getHistMatrix(codes, time);
|
|
|
+ List<ProBasicOriginalCode> oriList = new ArrayList<>();
|
|
|
+ for (PointData pointData : histMatrix) {
|
|
|
+ for (ProBasicOriginalCode ori : orils) {
|
|
|
+ if (pointData.getEdnaId().equals(ori.getCode())) {
|
|
|
+ ori.setValue(pointData.getPointValue());
|
|
|
+ oriList.add(ori);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map.put(wt, oriList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new TreeMap<>(map);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PointData> historyData(long startTs, long endTs, String code, int interval) throws Exception {
|
|
|
+ return edosUtil.getHistoryDatasSnap(code, startTs, endTs, interval);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<ProBasicOriginalCode> getData(String modelId, String query) {
|
|
|
+ List<ProBasicOriginalCode> oriLists = CacheContext.oriLists;
|
|
|
+
|
|
|
+ List<ProBasicOriginalCode> description = new ArrayList<>(oriLists.stream()
|
|
|
+ .collect(Collectors.toMap(
|
|
|
+ ProBasicOriginalCode::getDescription,
|
|
|
+ item -> item,
|
|
|
+ (existing, replacement) -> existing,
|
|
|
+ LinkedHashMap::new
|
|
|
+ ))
|
|
|
+ .values());
|
|
|
+
|
|
|
+ if (null != modelId && !modelId.trim().isEmpty() && !"".equals(modelId)) {
|
|
|
+ description = description.stream()
|
|
|
+ .filter(ori -> ori.getModelId().equals(modelId))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (null != query && !query.trim().isEmpty() && !"".equals(query)) {
|
|
|
+ description = description.stream()
|
|
|
+ .filter(ori -> ori.getDescription().contains(query))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ return description;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|