设备维护配置无法导入的解决方案
注意:
导入配置之前必须先确保Excel配置文件里面的驱动名称在系统里面都已添加完整,否则配置文件导入之后会因为找不到对应驱动而异常~~
IOTGateway官方源码设备维护导出的Excel,在所有配置都为空的情况下导入Excel配置文件,会出现下面异常BUG,导致前端页面卡死,并且无法导入。
.\iotgateway\IoTGateway.ViewModel\BasicData\ImportExcelVM.cs
文件的第88行,如下:



解决方案
将“传输配置”的解析代码修改如下,主要原因是默认数据库的SystemConfig表是空的,在执行First操作时,会直接异常,而不是返回空,我们这里只需要做个空检测,并且发现是空表时,按新数据新增进去就行了。
var sheetSystemConfig = xssfworkbook.GetSheet("传输配置");
var newSystemConfig = GetSystemConfig(sheetSystemConfig);
var systemConfig = DC.Set<SystemConfig>().FirstOrDefault();
if (systemConfig == null) systemConfig = new SystemConfig();
systemConfig.GatewayName = newSystemConfig.GatewayName;
systemConfig.ClientId = newSystemConfig.ClientId;
systemConfig.IoTPlatformType = newSystemConfig.IoTPlatformType;
systemConfig.MqttIp = newSystemConfig.MqttIp;
systemConfig.MqttPort = newSystemConfig.MqttPort;
systemConfig.MqttUName = newSystemConfig.MqttUName;
systemConfig.MqttUPwd = newSystemConfig.MqttUPwd;
if(systemConfig.ID.ToString("N").Replace("0","") == "")
{
systemConfig.ID = Guid.NewGuid();
DC.Set<SystemConfig>().AddRange(systemConfig);
}
DC.SaveChanges();