|
|
|
@ -2,42 +2,47 @@ package com.xydl.cac.excel;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.excel.context.AnalysisContext;
|
|
|
|
|
import com.alibaba.excel.event.AnalysisEventListener;
|
|
|
|
|
import com.xydl.cac.entity.NiecSensor;
|
|
|
|
|
import com.xydl.cac.entity.NPoint;
|
|
|
|
|
import com.xydl.cac.entity.NSensor;
|
|
|
|
|
import com.xydl.cac.entity.constants.Constants;
|
|
|
|
|
import com.xydl.cac.service.NSensorService;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.LinkedHashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
public class CacExcelListener extends AnalysisEventListener<CacLine> {
|
|
|
|
|
|
|
|
|
|
List<CacLine> list = new ArrayList<>();
|
|
|
|
|
NSensorService nSensorService;
|
|
|
|
|
int base = 16385;
|
|
|
|
|
int type;
|
|
|
|
|
LinkedHashMap<String, NiecSensor> sensorList = new LinkedHashMap<>();
|
|
|
|
|
LinkedHashMap<String, NSensor> sensorList = new LinkedHashMap<>();
|
|
|
|
|
|
|
|
|
|
public CacExcelListener(NSensorService service) {
|
|
|
|
|
nSensorService = service;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void invoke(CacLine line, AnalysisContext analysisContext) {
|
|
|
|
|
int row = analysisContext.readRowHolder().getRowIndex();
|
|
|
|
|
if (row > 1) {
|
|
|
|
|
int rowidx = analysisContext.readRowHolder().getRowIndex();
|
|
|
|
|
if (rowidx > 1) {
|
|
|
|
|
if (line.getPointId().contains("遥测")) {
|
|
|
|
|
type = 0;
|
|
|
|
|
} else if (line.getPointId().contains("遥信")) {
|
|
|
|
|
type = 1;
|
|
|
|
|
} else {
|
|
|
|
|
processDate(line, row + 1);
|
|
|
|
|
processLine(line, rowidx + 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void processDate(CacLine line, int row) {
|
|
|
|
|
if (StringUtils.isNotBlank(line.getSensorCode())) {
|
|
|
|
|
NiecSensor sensor = sensorList.get(line.getSensorCode());
|
|
|
|
|
private void processLine(CacLine line, int row) {
|
|
|
|
|
if (StringUtils.isNotBlank(line.getSensorCode()) && StringUtils.isNotBlank(line.getField())) {
|
|
|
|
|
NSensor sensor = sensorList.get(line.getSensorCode());
|
|
|
|
|
if (sensor == null) {
|
|
|
|
|
sensor = new NiecSensor();
|
|
|
|
|
sensor = new NSensor();
|
|
|
|
|
sensor.setSensorCode(line.getSensorCode());
|
|
|
|
|
Integer pointId = Integer.parseInt(line.getPointId()) + base;
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(line.getEquipmentCode())) {
|
|
|
|
|
throw new RuntimeException("第" + row + "行的被监测设备的唯一标识不能为空");
|
|
|
|
|
}
|
|
|
|
@ -51,19 +56,29 @@ public class CacExcelListener extends AnalysisEventListener<CacLine> {
|
|
|
|
|
} else {
|
|
|
|
|
sensor.setName(line.getLongName());
|
|
|
|
|
}
|
|
|
|
|
sensor.setPhase(line.getPhase());
|
|
|
|
|
sensor.setStatus(Constants.NORMAL);
|
|
|
|
|
sensorList.put(line.getSensorCode(), sensor);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Integer pointId = Integer.parseInt(line.getPointId()) + base;
|
|
|
|
|
if (StringUtils.isBlank(line.getField())) {
|
|
|
|
|
throw new RuntimeException("第" + row + "行的字段名不能为空");
|
|
|
|
|
}
|
|
|
|
|
list.add(line);
|
|
|
|
|
NPoint point = NPoint.builder()
|
|
|
|
|
.pointId(pointId)
|
|
|
|
|
.field(line.getField())
|
|
|
|
|
.fieldDesc(line.getFieldDesc())
|
|
|
|
|
.type(type)
|
|
|
|
|
.row(row)
|
|
|
|
|
.build();
|
|
|
|
|
sensor.addPoint(point);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
|
|
|
|
|
|
|
|
|
|
nSensorService.importFrom(sensorList.values());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|