fix: 增加表关联类型判断

dev
huangfeng 1 year ago
parent 7300883c91
commit 0ec6e896df

@ -2,15 +2,13 @@ package com.xydl.cac.excel;
import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.event.AnalysisEventListener;
import com.xydl.cac.entity.N103Point; import com.xydl.cac.entity.*;
import com.xydl.cac.entity.N103Sensor;
import com.xydl.cac.entity.NPoint;
import com.xydl.cac.entity.NSensor;
import com.xydl.cac.entity.constants.Constants; import com.xydl.cac.entity.constants.Constants;
import com.xydl.cac.service.N103SensorService; import com.xydl.cac.service.N103SensorService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -21,13 +19,17 @@ import static com.xydl.cac.entity.constants.Constants.YaoXin;
public class CacExcelListener extends AnalysisEventListener<CacLine> { public class CacExcelListener extends AnalysisEventListener<CacLine> {
N103SensorService n103SensorService; N103SensorService n103SensorService;
HashMap<String, ModevType> typeMap = new HashMap<>();
int base = 16385; int base = 16385;
int type; int type;
LinkedHashMap<String, N103Sensor> sensorList = new LinkedHashMap<>(); LinkedHashMap<String, N103Sensor> sensorList = new LinkedHashMap<>();
List<String> errorList = new ArrayList<>(); List<String> errorList = new ArrayList<>();
public CacExcelListener(N103SensorService service) { public CacExcelListener(N103SensorService service, List<ModevType> modevTypeList) {
n103SensorService = service; n103SensorService = service;
for (ModevType type : modevTypeList) {
typeMap.put(type.getTablename(), type);
}
} }
@Override @Override
@ -58,6 +60,11 @@ public class CacExcelListener extends AnalysisEventListener<CacLine> {
sensor.setEquipmentId(line.getEquipmentCode()); sensor.setEquipmentId(line.getEquipmentCode());
if (StringUtils.isBlank(line.getTableName())) { if (StringUtils.isBlank(line.getTableName())) {
errorList.add("第" + row + "行的表名不能为空"); errorList.add("第" + row + "行的表名不能为空");
} else {
ModevType modevType = typeMap.get(line.getTableName());
if (modevType == null) {
errorList.add("第" + row + "行的表名" + line.getTableName() + "未找到对应的监测设备类型");
}
} }
sensor.setTableName(line.getTableName()); sensor.setTableName(line.getTableName());
if (StringUtils.isBlank(line.getDevid())) { if (StringUtils.isBlank(line.getDevid())) {

@ -8,6 +8,7 @@ import com.xydl.cac.entity.NPoint;
import com.xydl.cac.excel.CacExcelListener; import com.xydl.cac.excel.CacExcelListener;
import com.xydl.cac.excel.CacLine; import com.xydl.cac.excel.CacLine;
import com.xydl.cac.model.SensorDetail; import com.xydl.cac.model.SensorDetail;
import com.xydl.cac.service.ModevTypeService;
import com.xydl.cac.service.N103SensorService; import com.xydl.cac.service.N103SensorService;
import com.xydl.cac.service.ReportService; import com.xydl.cac.service.ReportService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -28,6 +29,8 @@ public class ReportServiceImpl implements ReportService {
@Resource @Resource
N103SensorService n103SensorService; N103SensorService n103SensorService;
@Resource
ModevTypeService modevTypeService;
@Override @Override
public void exportSensor(SensorDetail<Map<String, Object>> detail, OutputStream output) throws Exception { public void exportSensor(SensorDetail<Map<String, Object>> detail, OutputStream output) throws Exception {
@ -70,7 +73,7 @@ public class ReportServiceImpl implements ReportService {
@Override @Override
public void importCac(InputStream input) throws Exception { public void importCac(InputStream input) throws Exception {
CacExcelListener listener = new CacExcelListener(n103SensorService); CacExcelListener listener = new CacExcelListener(n103SensorService, modevTypeService.listAll());
EasyExcel.read(input, CacLine.class, listener) EasyExcel.read(input, CacLine.class, listener)
.sheet(0) .sheet(0)
.doRead(); .doRead();

Loading…
Cancel
Save