diff --git a/src/main/java/com/xydl/cac/excel/CacExcelListener.java b/src/main/java/com/xydl/cac/excel/CacExcelListener.java index edeea83..008a3df 100644 --- a/src/main/java/com/xydl/cac/excel/CacExcelListener.java +++ b/src/main/java/com/xydl/cac/excel/CacExcelListener.java @@ -2,15 +2,13 @@ package com.xydl.cac.excel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; -import com.xydl.cac.entity.N103Point; -import com.xydl.cac.entity.N103Sensor; -import com.xydl.cac.entity.NPoint; -import com.xydl.cac.entity.NSensor; +import com.xydl.cac.entity.*; import com.xydl.cac.entity.constants.Constants; import com.xydl.cac.service.N103SensorService; import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.stream.Collectors; @@ -21,13 +19,17 @@ import static com.xydl.cac.entity.constants.Constants.YaoXin; public class CacExcelListener extends AnalysisEventListener { N103SensorService n103SensorService; + HashMap typeMap = new HashMap<>(); int base = 16385; int type; LinkedHashMap sensorList = new LinkedHashMap<>(); List errorList = new ArrayList<>(); - public CacExcelListener(N103SensorService service) { + public CacExcelListener(N103SensorService service, List modevTypeList) { n103SensorService = service; + for (ModevType type : modevTypeList) { + typeMap.put(type.getTablename(), type); + } } @Override @@ -58,6 +60,11 @@ public class CacExcelListener extends AnalysisEventListener { sensor.setEquipmentId(line.getEquipmentCode()); if (StringUtils.isBlank(line.getTableName())) { errorList.add("第" + row + "行的表名不能为空"); + } else { + ModevType modevType = typeMap.get(line.getTableName()); + if (modevType == null) { + errorList.add("第" + row + "行的表名" + line.getTableName() + "未找到对应的监测设备类型"); + } } sensor.setTableName(line.getTableName()); if (StringUtils.isBlank(line.getDevid())) { diff --git a/src/main/java/com/xydl/cac/service/impl/ReportServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/ReportServiceImpl.java index e8b0b9f..fea88d2 100644 --- a/src/main/java/com/xydl/cac/service/impl/ReportServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/ReportServiceImpl.java @@ -8,6 +8,7 @@ import com.xydl.cac.entity.NPoint; import com.xydl.cac.excel.CacExcelListener; import com.xydl.cac.excel.CacLine; import com.xydl.cac.model.SensorDetail; +import com.xydl.cac.service.ModevTypeService; import com.xydl.cac.service.N103SensorService; import com.xydl.cac.service.ReportService; import lombok.extern.slf4j.Slf4j; @@ -28,6 +29,8 @@ public class ReportServiceImpl implements ReportService { @Resource N103SensorService n103SensorService; + @Resource + ModevTypeService modevTypeService; @Override public void exportSensor(SensorDetail> detail, OutputStream output) throws Exception { @@ -70,7 +73,7 @@ public class ReportServiceImpl implements ReportService { @Override 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) .sheet(0) .doRead();