|
|
@@ -1,11 +1,13 @@
|
|
|
package com.kym.service.admin.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson2.JSON;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
import com.kym.common.annotation.DynamicCache;
|
|
|
import com.kym.common.enums.EnPlusApi;
|
|
|
+import com.kym.common.exception.BusinessException;
|
|
|
import com.kym.common.utils.AESUtil;
|
|
|
import com.kym.common.utils.CommUtil;
|
|
|
import com.kym.entity.admin.ConnectorInfo;
|
|
|
@@ -25,6 +27,7 @@ import com.kym.service.admin.StationService;
|
|
|
import com.kym.service.cache.KymCache;
|
|
|
import com.kym.service.enplus.EnPlusService;
|
|
|
import jakarta.annotation.PostConstruct;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
@@ -32,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -44,6 +48,7 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
|
@Service
|
|
|
@DS("db-admin")
|
|
|
+@Slf4j
|
|
|
public class StationServiceImpl extends MPJBaseServiceImpl<StationMapper, Station> implements StationService {
|
|
|
|
|
|
private final EnPlusService enPlusService;
|
|
|
@@ -235,4 +240,42 @@ public class StationServiceImpl extends MPJBaseServiceImpl<StationMapper, Statio
|
|
|
// TODO redis发布订阅?
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public void importData(JSONObject data) {
|
|
|
+ log.debug("导入数据:{}", data.toString());
|
|
|
+ var fieldIndexes = data.getJSONArray("fieldIndexes");
|
|
|
+ if (fieldIndexes.size() != 7) {
|
|
|
+ throw new BusinessException("导入数据格式错误,请正确匹配对应数据列");
|
|
|
+ }
|
|
|
+
|
|
|
+ String dataList = data.getString("dataList");
|
|
|
+ var list = JSON.parseArray(dataList, EquipmentRelation.class);
|
|
|
+
|
|
|
+ // t_station
|
|
|
+ var stations = list.stream().filter(CommUtil.distinctByKey(EquipmentRelation::getStationId))
|
|
|
+ .map(item -> Map.of("stationId", item.getStationId(), "stationName", item.getStationName())).toList();
|
|
|
+ var stationList = stations.stream().map(map -> new Station().setStationId(map.get("stationId")).setStationName(map.get("stationName"))).toList();
|
|
|
+ saveBatch(stationList);
|
|
|
+
|
|
|
+ // t_equipment_info
|
|
|
+ var equipmentInfoList = list.stream().map(item -> {
|
|
|
+ var equipmentInfo = new EquipmentInfo();
|
|
|
+ BeanUtils.copyProperties(item, equipmentInfo, "id");
|
|
|
+ return equipmentInfo;
|
|
|
+ }).toList();
|
|
|
+ equipmentInfoService.saveBatch(equipmentInfoList);
|
|
|
+
|
|
|
+ // t_connector_info
|
|
|
+ var connectorInfoList = list.stream().map(item -> {
|
|
|
+ var connectorInfo = new ConnectorInfo();
|
|
|
+ BeanUtils.copyProperties(item, connectorInfo, "id");
|
|
|
+ return connectorInfo;
|
|
|
+ }).toList();
|
|
|
+ connectorInfoService.saveBatch(connectorInfoList);
|
|
|
+
|
|
|
+ // t_equipment_relation
|
|
|
+ equipmentRelationService.saveBatch(list);
|
|
|
+ }
|
|
|
+
|
|
|
}
|