修复了批处理未加载路径类型,去掉数据库读取的默认值

This commit is contained in:
tian 2026-01-29 13:44:26 +08:00
parent 4069668a2a
commit 5836da25f5

View File

@ -571,10 +571,10 @@ namespace NavisworksTransport
TestTime = Convert.ToDateTime(reader["TestTime"]),
CollisionCount = Convert.ToInt32(reader["CollisionCount"]),
AnimationCollisionCount = Convert.ToInt32(reader["AnimationCollisionCount"]),
FrameRate = reader["FrameRate"] != DBNull.Value ? Convert.ToInt32(reader["FrameRate"]) : 0,
Duration = reader["Duration"] != DBNull.Value ? Convert.ToDouble(reader["Duration"]) : 0.0,
DetectionGap = reader["DetectionGap"] != DBNull.Value ? Convert.ToDouble(reader["DetectionGap"]) : 0.0,
AnimatedObjectName = reader["AnimatedObjectName"]?.ToString(),
FrameRate = Convert.ToInt32(reader["FrameRate"]),
Duration = Convert.ToDouble(reader["Duration"]),
DetectionGap = Convert.ToDouble(reader["DetectionGap"]),
AnimatedObjectName = reader["AnimatedObjectName"].ToString(),
CreatedAt = Convert.ToDateTime(reader["CreatedAt"])
});
}
@ -624,10 +624,10 @@ namespace NavisworksTransport
TestTime = Convert.ToDateTime(reader["TestTime"]),
CollisionCount = Convert.ToInt32(reader["CollisionCount"]),
AnimationCollisionCount = Convert.ToInt32(reader["AnimationCollisionCount"]),
FrameRate = reader["FrameRate"] != DBNull.Value ? Convert.ToInt32(reader["FrameRate"]) : 0,
Duration = reader["Duration"] != DBNull.Value ? Convert.ToDouble(reader["Duration"]) : 0.0,
DetectionGap = reader["DetectionGap"] != DBNull.Value ? Convert.ToDouble(reader["DetectionGap"]) : 0.0,
AnimatedObjectName = reader["AnimatedObjectName"]?.ToString(),
FrameRate = Convert.ToInt32(reader["FrameRate"]),
Duration = Convert.ToDouble(reader["Duration"]),
DetectionGap = Convert.ToDouble(reader["DetectionGap"]),
AnimatedObjectName = reader["AnimatedObjectName"].ToString(),
CreatedAt = Convert.ToDateTime(reader["CreatedAt"])
};
}
@ -691,12 +691,12 @@ namespace NavisworksTransport
TestTime = Convert.ToDateTime(reader["TestTime"]),
CollisionCount = Convert.ToInt32(reader["CollisionCount"]),
AnimationCollisionCount = Convert.ToInt32(reader["AnimationCollisionCount"]),
FrameRate = reader["FrameRate"] != DBNull.Value ? Convert.ToInt32(reader["FrameRate"]) : 0,
Duration = reader["Duration"] != DBNull.Value ? Convert.ToDouble(reader["Duration"]) : 0.0,
DetectionGap = reader["DetectionGap"] != DBNull.Value ? Convert.ToDouble(reader["DetectionGap"]) : 0.0,
AnimatedObjectName = reader["AnimatedObjectName"]?.ToString(),
FrameRate = Convert.ToInt32(reader["FrameRate"]),
Duration = Convert.ToDouble(reader["Duration"]),
DetectionGap = Convert.ToDouble(reader["DetectionGap"]),
AnimatedObjectName = reader["AnimatedObjectName"].ToString(),
CreatedAt = Convert.ToDateTime(reader["CreatedAt"]),
ScreenshotPath = reader["ScreenshotPath"] != DBNull.Value ? reader["ScreenshotPath"].ToString() : null
ScreenshotPath = reader["ScreenshotPath"].ToString()
};
}
}
@ -941,22 +941,23 @@ namespace NavisworksTransport
{
while (reader.Read())
{
// 🔥 不使用默认值数据缺失时抛出异常避免隐藏bug
var route = new PathRoute
{
Id = reader["Id"].ToString(),
Name = reader["Name"].ToString(),
TotalLength = Convert.ToDouble(reader["TotalLength"]),
EstimatedTime = Convert.ToDouble(reader["EstimatedTime"]),
TurnRadius = reader.IsDBNull(reader.GetOrdinal("TurnRadius")) ? 0.0 : Convert.ToDouble(reader["TurnRadius"]), // 0.0 表示未设置,实际使用时从配置获取
IsCurved = reader.IsDBNull(reader.GetOrdinal("IsCurved")) ? false : Convert.ToInt32(reader["IsCurved"]) == 1,
MaxVehicleLength = reader.IsDBNull(reader.GetOrdinal("MaxVehicleLength")) ? 1.0 : Convert.ToDouble(reader["MaxVehicleLength"]),
MaxVehicleWidth = reader.IsDBNull(reader.GetOrdinal("MaxVehicleWidth")) ? 1.0 : Convert.ToDouble(reader["MaxVehicleWidth"]),
MaxVehicleHeight = reader.IsDBNull(reader.GetOrdinal("MaxVehicleHeight")) ? 2.0 : Convert.ToDouble(reader["MaxVehicleHeight"]),
SafetyMargin = reader.IsDBNull(reader.GetOrdinal("SafetyMargin")) ? 0.5 : Convert.ToDouble(reader["SafetyMargin"]),
GridSize = reader.IsDBNull(reader.GetOrdinal("GridSize")) ? 0.5 : Convert.ToDouble(reader["GridSize"]),
PathType = reader.IsDBNull(reader.GetOrdinal("PathType")) ? PathType.Ground : (PathType)Convert.ToInt32(reader["PathType"]),
AerialSubType = reader.IsDBNull(reader.GetOrdinal("AerialSubType")) ? AerialSubType.Rail : (AerialSubType)Convert.ToInt32(reader["AerialSubType"]),
LiftHeightMeters = reader.IsDBNull(reader.GetOrdinal("LiftHeightMeters")) ? 0.0 : Convert.ToDouble(reader["LiftHeightMeters"]),
TurnRadius = Convert.ToDouble(reader["TurnRadius"]),
IsCurved = Convert.ToInt32(reader["IsCurved"]) == 1,
MaxVehicleLength = Convert.ToDouble(reader["MaxVehicleLength"]),
MaxVehicleWidth = Convert.ToDouble(reader["MaxVehicleWidth"]),
MaxVehicleHeight = Convert.ToDouble(reader["MaxVehicleHeight"]),
SafetyMargin = Convert.ToDouble(reader["SafetyMargin"]),
GridSize = Convert.ToDouble(reader["GridSize"]),
PathType = (PathType)Convert.ToInt32(reader["PathType"]),
AerialSubType = (AerialSubType)Convert.ToInt32(reader["AerialSubType"]),
LiftHeightMeters = Convert.ToDouble(reader["LiftHeightMeters"]),
CreatedTime = Convert.ToDateTime(reader["CreatedTime"]),
LastModified = Convert.ToDateTime(reader["LastModified"])
};
@ -1360,7 +1361,9 @@ namespace NavisworksTransport
using (var cmd = new SQLiteCommand(_connection))
{
cmd.CommandText = @"
SELECT Id, Name, CreatedTime, LastModified, TotalLength
SELECT Id, Name, CreatedTime, LastModified, TotalLength,
TurnRadius, IsCurved, MaxVehicleLength, MaxVehicleWidth, MaxVehicleHeight,
SafetyMargin, GridSize, PathType, AerialSubType, LiftHeightMeters
FROM PathRoutes
WHERE Id = @Id";
@ -1375,7 +1378,17 @@ namespace NavisworksTransport
Id = reader["Id"].ToString(),
CreatedTime = DateTime.Parse(reader["CreatedTime"].ToString()),
LastModified = DateTime.Parse(reader["LastModified"].ToString()),
TotalLength = Convert.ToDouble(reader["TotalLength"])
TotalLength = Convert.ToDouble(reader["TotalLength"]),
TurnRadius = Convert.ToDouble(reader["TurnRadius"]),
IsCurved = Convert.ToInt32(reader["IsCurved"]) == 1,
MaxVehicleLength = Convert.ToDouble(reader["MaxVehicleLength"]),
MaxVehicleWidth = Convert.ToDouble(reader["MaxVehicleWidth"]),
MaxVehicleHeight = Convert.ToDouble(reader["MaxVehicleHeight"]),
SafetyMargin = Convert.ToDouble(reader["SafetyMargin"]),
GridSize = Convert.ToDouble(reader["GridSize"]),
PathType = (PathType)Convert.ToInt32(reader["PathType"]),
AerialSubType = (AerialSubType)Convert.ToInt32(reader["AerialSubType"]),
LiftHeightMeters = Convert.ToDouble(reader["LiftHeightMeters"])
};
// 加载路径点和路径边