|
|
|
@ -8,7 +8,10 @@ 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;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
public class CacExcelListener extends AnalysisEventListener<CacLine> {
|
|
|
|
|
|
|
|
|
@ -16,6 +19,7 @@ public class CacExcelListener extends AnalysisEventListener<CacLine> {
|
|
|
|
|
int base = 16385;
|
|
|
|
|
int type;
|
|
|
|
|
LinkedHashMap<String, NSensor> sensorList = new LinkedHashMap<>();
|
|
|
|
|
List<String> errorList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
public CacExcelListener(NSensorService service) {
|
|
|
|
|
nSensorService = service;
|
|
|
|
@ -44,11 +48,11 @@ public class CacExcelListener extends AnalysisEventListener<CacLine> {
|
|
|
|
|
sensor.setSensorCode(line.getSensorCode());
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(line.getEquipmentCode())) {
|
|
|
|
|
throw new RuntimeException("第" + row + "行的被监测设备的唯一标识不能为空");
|
|
|
|
|
errorList.add("第" + row + "行的被监测设备的唯一标识不能为空");
|
|
|
|
|
}
|
|
|
|
|
sensor.setEquipmentId(line.getEquipmentCode());
|
|
|
|
|
if (StringUtils.isBlank(line.getTableName())) {
|
|
|
|
|
throw new RuntimeException("第" + row + "行的表名不能为空");
|
|
|
|
|
errorList.add("第" + row + "行的表名不能为空");
|
|
|
|
|
}
|
|
|
|
|
sensor.setTableName(line.getTableName());
|
|
|
|
|
if (StringUtils.isNotBlank(line.getParentName()) && StringUtils.isNotBlank(line.getShortName())) {
|
|
|
|
@ -64,7 +68,7 @@ public class CacExcelListener extends AnalysisEventListener<CacLine> {
|
|
|
|
|
|
|
|
|
|
Integer pointId = Integer.parseInt(line.getPointId()) + base;
|
|
|
|
|
if (StringUtils.isBlank(line.getField())) {
|
|
|
|
|
throw new RuntimeException("第" + row + "行的字段名不能为空");
|
|
|
|
|
errorList.add("第" + row + "行的字段名不能为空");
|
|
|
|
|
}
|
|
|
|
|
NPoint point = NPoint.builder()
|
|
|
|
|
.pointId(pointId)
|
|
|
|
@ -73,12 +77,20 @@ public class CacExcelListener extends AnalysisEventListener<CacLine> {
|
|
|
|
|
.type(type)
|
|
|
|
|
.row(row)
|
|
|
|
|
.build();
|
|
|
|
|
sensor.addPoint(point);
|
|
|
|
|
String err = sensor.addPoint(point);
|
|
|
|
|
if (StringUtils.isNotBlank(err)) {
|
|
|
|
|
errorList.add(err);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
|
|
|
|
|
nSensorService.importFrom(sensorList.values());
|
|
|
|
|
if (errorList.size() > 0) {
|
|
|
|
|
String msg = errorList.stream().collect(Collectors.joining(","));
|
|
|
|
|
throw new RuntimeException(msg);
|
|
|
|
|
} else {
|
|
|
|
|
nSensorService.importFrom(sensorList.values());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|