|
@@ -687,7 +687,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
}
|
|
|
Robot.robot1.occupied = false;
|
|
|
//自动化测试用
|
|
|
- //ManualParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
+ ManualParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
//根据号牌查找车型
|
|
|
//int vehicleTypeID = oper.getVehicleTypeID(numberPlate);
|
|
|
//判断测量数据是否准确
|
|
@@ -696,22 +696,25 @@ namespace parkMonitor.server.CoreThread
|
|
|
//正常写入数据库
|
|
|
if (userID != 0)
|
|
|
{
|
|
|
- if (!queueCmd.manual)
|
|
|
+ lock (Parking_Space.RecordLock)
|
|
|
{
|
|
|
- connectionStr = "SqlConnectionStr";
|
|
|
- //更新云端数据库
|
|
|
- //插入停车记录表
|
|
|
- int parkingRecordsID = oper.InsertToParkingRecords(connectionStr, userID, numberPlate, ppp.parkingSpaceID, ppp.garageID, 3, realParkTime);
|
|
|
- //车辆表更新车辆信息
|
|
|
- oper.UpdateVehicle(connectionStr, numberPlate, 1, realParkTime, parkingRecordsID, ppp.parkingSpaceID, 1, frontWheelbase, rearWheelbase);
|
|
|
- //插入消息队列表
|
|
|
- oper.InsertToMessageQueue(connectionStr, userID, "停车成功", 1);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- connectionStr = "SqlConnectionLocation";
|
|
|
- //插入停车记录表
|
|
|
- int parkingRecordsID = oper.InsertToLocalParkingRecords(connectionStr, 1, userID, numberPlate, ppp.parkingSpaceID, garageID, 3, realParkTime, frontWheelbase, rearWheelbase);
|
|
|
+ if (!queueCmd.manual)
|
|
|
+ {
|
|
|
+ connectionStr = "SqlConnectionStr";
|
|
|
+ //更新云端数据库
|
|
|
+ //插入停车记录表
|
|
|
+ int parkingRecordsID = oper.InsertToParkingRecords(connectionStr, userID, numberPlate, ppp.parkingSpaceID, ppp.garageID, 3, realParkTime);
|
|
|
+ //车辆表更新车辆信息
|
|
|
+ oper.UpdateVehicle(connectionStr, numberPlate, 1, realParkTime, parkingRecordsID, ppp.parkingSpaceID, 1, frontWheelbase, rearWheelbase);
|
|
|
+ //插入消息队列表
|
|
|
+ oper.InsertToMessageQueue(connectionStr, userID, "停车成功", 1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ connectionStr = "SqlConnectionLocation";
|
|
|
+ //插入停车记录表
|
|
|
+ int parkingRecordsID = oper.InsertToLocalParkingRecords(connectionStr, 1, userID, numberPlate, ppp.parkingSpaceID, garageID, 3, realParkTime, frontWheelbase, rearWheelbase);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//异常写入日志文件
|
|
@@ -811,7 +814,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
}
|
|
|
if (vehiclelist == null)
|
|
|
{
|
|
|
- Rollback(queueCmd, ps.parkingSpaceID, false, false);
|
|
|
+ Rollback(queueCmd, ps.parkingSpaceID, false, false, null);
|
|
|
return;
|
|
|
}
|
|
|
int parkingSpaceID = vehiclelist.parkingSpaceID;
|
|
@@ -830,7 +833,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
}
|
|
|
if (ps == null)
|
|
|
{
|
|
|
- Rollback(queueCmd, parkingSpaceID, false, false);
|
|
|
+ Rollback(queueCmd, parkingSpaceID, false, false, null);
|
|
|
return;
|
|
|
}
|
|
|
cm = new ControlMessage();
|
|
@@ -884,34 +887,40 @@ namespace parkMonitor.server.CoreThread
|
|
|
ManualParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
|
|
|
//数据库更新
|
|
|
- if (!queueCmd.manual)
|
|
|
+ lock (Parking_Space.RecordLock)
|
|
|
{
|
|
|
- connectionStr = "SqlConnectionStr";
|
|
|
- //云端数据库更新
|
|
|
- //更新车库表车位数
|
|
|
- int freeSpaceCount = oper.getGarageFreeSpace(connectionStr, garageID);
|
|
|
- freeSpaceCount = freeSpaceCount + 1;
|
|
|
- oper.UpdateGarageFreeSpace(connectionStr, freeSpaceCount, garageID);
|
|
|
- //更新车位表车位状态
|
|
|
- oper.UpdateParkingSpaceState(connectionStr, ps.parkingSpaceID, 0);
|
|
|
- //更新车辆表车辆停车状态
|
|
|
- oper.UpdateVehicleParkState(connectionStr, queueCmd.LicenseNum, 0);
|
|
|
- //更新停车记录表
|
|
|
- oper.UpdateParkingRecords(connectionStr, 6, queueCmd.TimeRecord, queueCmd.parkingRecordsID);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- connectionStr = "SqlConnectionLocation";
|
|
|
- //更新车库表车位数
|
|
|
- int freeSpaceCount = oper.getGarageFreeSpace(connectionStr, garageID);
|
|
|
- freeSpaceCount = freeSpaceCount + 1;
|
|
|
- oper.UpdateGarageFreeSpace(connectionStr, freeSpaceCount, garageID);
|
|
|
- //更新车位表车位状态
|
|
|
- oper.UpdateParkingSpaceState(connectionStr, ps.parkingSpaceID, 0);
|
|
|
- ////更新车辆表车辆停车状态
|
|
|
- //locationOper.UpdateVehicleParkState(queueCmd.LicenseNum, 0);
|
|
|
- //更新停车记录表
|
|
|
- oper.UpdateParkingRecords(connectionStr, 0, 6, queueCmd.TimeRecord, queueCmd.parkingRecordsID);
|
|
|
+ lock (Parking_Space.spaceLock)
|
|
|
+ {
|
|
|
+ if (!queueCmd.manual)
|
|
|
+ {
|
|
|
+ connectionStr = "SqlConnectionStr";
|
|
|
+ //云端数据库更新
|
|
|
+ //更新车库表车位数
|
|
|
+ int freeSpaceCount = oper.getGarageFreeSpace(connectionStr, garageID);
|
|
|
+ freeSpaceCount = freeSpaceCount + 1;
|
|
|
+ oper.UpdateGarageFreeSpace(connectionStr, freeSpaceCount, garageID);
|
|
|
+ //更新车位表车位状态
|
|
|
+ oper.UpdateParkingSpaceState(connectionStr, ps.parkingSpaceID, 0);
|
|
|
+ //更新车辆表车辆停车状态
|
|
|
+ oper.UpdateVehicleParkState(connectionStr, queueCmd.LicenseNum, 0);
|
|
|
+ //更新停车记录表
|
|
|
+ oper.UpdateParkingRecords(connectionStr, 6, queueCmd.TimeRecord, queueCmd.parkingRecordsID);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ connectionStr = "SqlConnectionLocation";
|
|
|
+ //更新车库表车位数
|
|
|
+ int freeSpaceCount = oper.getGarageFreeSpace(connectionStr, garageID);
|
|
|
+ freeSpaceCount = freeSpaceCount + 1;
|
|
|
+ oper.UpdateGarageFreeSpace(connectionStr, freeSpaceCount, garageID);
|
|
|
+ //更新车位表车位状态
|
|
|
+ oper.UpdateParkingSpaceState(connectionStr, ps.parkingSpaceID, 0);
|
|
|
+ ////更新车辆表车辆停车状态
|
|
|
+ //locationOper.UpdateVehicleParkState(queueCmd.LicenseNum, 0);
|
|
|
+ //更新停车记录表
|
|
|
+ oper.UpdateParkingRecords(connectionStr, 0, 6, queueCmd.TimeRecord, queueCmd.parkingRecordsID);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|