|
@@ -194,15 +194,18 @@ namespace parkMonitor.server.CoreThread
|
|
|
/// </summary>
|
|
|
/// <param name="queueCmd"></param>
|
|
|
/// <param name="parkingSpaceID"></param>
|
|
|
- /// <param name="parkingSpaceUpdated"></param>
|
|
|
+ /// <param name="robotAllocated"></param>
|
|
|
/// <param name="isParking"></param>
|
|
|
- public void Rollback(Command queueCmd, int parkingSpaceID, bool parkingSpaceUpdated, bool isParking, LaserMessage lm)
|
|
|
+ public void Rollback(Command queueCmd, int parkingSpaceID, bool robotAllocated, bool isParking, LaserMessage lm)
|
|
|
{
|
|
|
//命令回退
|
|
|
queueCmd.returnedCount += 1;
|
|
|
queuingThread.SetMessage(queueCmd);
|
|
|
//线程计数调整
|
|
|
- Robot.robot1.occupied = false;
|
|
|
+ if (robotAllocated)
|
|
|
+ {
|
|
|
+ Robot.robot1.occupied = false;
|
|
|
+ }
|
|
|
Robot.robot1.waitCount -= 1;
|
|
|
//释放激光
|
|
|
if (lm != null)
|
|
@@ -226,30 +229,6 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "车位分配出现异常,需要重启");
|
|
|
return;
|
|
|
}
|
|
|
- try
|
|
|
- {
|
|
|
-
|
|
|
- int temp;
|
|
|
- string updateParkingSpaceSql = "update parkingspace set parkingSpaceState = 0 where parkingSpaceID = '" + parkingSpaceID + "'";
|
|
|
- string updateFreeSpaceSql = "update garage set garageFreeSpace = '" + ParkingSpaceManager.ins.GetFreeSpaceCount() + "' where garageID = '" + ParkingSpaceManager.garageID + "'";
|
|
|
- string updateVehicleStateSql = "update vehicle set vehiclepParkState = '" + 0 + "'where numberPlate = '" + queueCmd.LicenseNum + "'";
|
|
|
- List<string> strs = new List<string>();
|
|
|
- strs.Add(updateParkingSpaceSql);
|
|
|
- strs.Add(updateFreeSpaceSql);
|
|
|
- strs.Add(updateVehicleStateSql);
|
|
|
- if (!Operation.MyTransaction(EntityForCore.remoteBQ,strs, out temp))
|
|
|
- {
|
|
|
- //数据库操作失败写日志
|
|
|
- Log.WriteLog(LogType.DATABASE, updateParkingSpaceSql);
|
|
|
- Log.WriteLog(LogType.DATABASE, updateFreeSpaceSql);
|
|
|
- Log.WriteLog(LogType.DATABASE, updateVehicleStateSql);
|
|
|
- //Log.WriteLog(LogType.DATABASE, strs.ToArray().ToString());
|
|
|
- }
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
- throw; //数据库异常待处理
|
|
|
- }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -260,30 +239,6 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "车位分配出现异常,需要重启");
|
|
|
return;
|
|
|
}
|
|
|
- try
|
|
|
- {
|
|
|
-
|
|
|
- int temp;
|
|
|
- string updateParkingSpaceSql = "update parkingspace set parkingSpaceState = 1 where parkingSpaceID = '" + parkingSpaceID + "'";
|
|
|
- string updateFreeSpaceSql = "update garage set garageFreeSpace = '" + ParkingSpaceManager.ins.GetFreeSpaceCount() + "' where garageID = '" + ParkingSpaceManager.garageID + "'";
|
|
|
- string updateVehicleStateSql = "update vehicle set vehiclepParkState = '" + 1 + "'where numberPlate = '" + queueCmd.LicenseNum + "'";
|
|
|
- List<string> strs = new List<string>();
|
|
|
- strs.Add(updateParkingSpaceSql);
|
|
|
- strs.Add(updateFreeSpaceSql);
|
|
|
- strs.Add(updateVehicleStateSql);
|
|
|
- if (!Operation.MyTransaction(EntityForCore.remoteBQ,strs, out temp))
|
|
|
- {
|
|
|
- //数据库操作失败写日志
|
|
|
- Log.WriteLog(LogType.DATABASE, updateParkingSpaceSql);
|
|
|
- Log.WriteLog(LogType.DATABASE, updateFreeSpaceSql);
|
|
|
- Log.WriteLog(LogType.DATABASE, updateVehicleStateSql);
|
|
|
- //Log.WriteLog(LogType.DATABASE, strs.ToArray().ToString());
|
|
|
- }
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
- throw; //数据库异常待处理
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -291,7 +246,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
if (isParking)
|
|
|
{
|
|
|
oper.UpdateVehicleParkState(EntityForCore.remoteBQ, queueCmd.LicenseNum, 0);
|
|
|
- if (parkingSpaceUpdated)
|
|
|
+ if (robotAllocated)
|
|
|
{
|
|
|
oper.UpdateParkingSpaceState(EntityForCore.remoteBQ, parkingSpaceID, 0);
|
|
|
}
|
|
@@ -299,7 +254,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
else
|
|
|
{
|
|
|
oper.UpdateVehicleParkState(EntityForCore.remoteBQ, queueCmd.LicenseNum, 1);
|
|
|
- if (parkingSpaceUpdated)
|
|
|
+ if (robotAllocated)
|
|
|
{
|
|
|
oper.UpdateParkingSpaceState(EntityForCore.remoteBQ, parkingSpaceID, 1);
|
|
|
}
|
|
@@ -770,7 +725,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
//需要先遍历robot数组,根据id找到对应机械手
|
|
|
if (!WaitForRobotResource(robotID))
|
|
|
{
|
|
|
- Rollback(queueCmd, ppp.parkingSpaceID, true, true, lmToBeReleased);
|
|
|
+ Rollback(queueCmd, ppp.parkingSpaceID, false, true, lmToBeReleased);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -872,9 +827,10 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.DATABASE, "0", updateVehicleSql);
|
|
|
}
|
|
|
}
|
|
|
- catch
|
|
|
+ catch(Exception e)
|
|
|
{
|
|
|
UILogServer.ins.error("停车数据库操作失败");
|
|
|
+ Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "\n"+e.StackTrace + "\n" + e.Message);
|
|
|
//throw;//数据库操作失败异常待处理
|
|
|
}
|
|
|
}
|
|
@@ -907,9 +863,10 @@ namespace parkMonitor.server.CoreThread
|
|
|
Log.WriteLog(LogType.DATABASE, "0", updateVehicleSql);
|
|
|
}
|
|
|
}
|
|
|
- catch
|
|
|
+ catch(Exception e)
|
|
|
{
|
|
|
UILogServer.ins.error("停车数据库操作失败");
|
|
|
+ Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "\n" + e.StackTrace + "\n" + e.Message);
|
|
|
//throw;//数据库操作失败异常待处理
|
|
|
}
|
|
|
}
|
|
@@ -1066,7 +1023,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
robotID = parkingSpaceID / 50 + 1;
|
|
|
if (!WaitForRobotResource(robotID))
|
|
|
{
|
|
|
- Rollback(queueCmd, parkingSpaceID, true, false, null);
|
|
|
+ Rollback(queueCmd, parkingSpaceID, false, false, null);
|
|
|
return;
|
|
|
}
|
|
|
//取车
|