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.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<CacLine> {
N103SensorService n103SensorService;
HashMap<String, ModevType> typeMap = new HashMap<>();
int base = 16385;
int type;
LinkedHashMap<String, N103Sensor> sensorList = new LinkedHashMap<>();
List<String> errorList = new ArrayList<>();
public CacExcelListener(N103SensorService service) {
public CacExcelListener(N103SensorService service, List<ModevType> modevTypeList) {
n103SensorService = service;
for (ModevType type : modevTypeList) {
typeMap.put(type.getTablename(), type);
}
}
@Override
@ -58,6 +60,11 @@ public class CacExcelListener extends AnalysisEventListener<CacLine> {
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())) {

@ -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<Map<String, Object>> 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();

Loading…
Cancel
Save