|
@@ -228,7 +228,8 @@ namespace parkMonitor.server.CoreThread
|
|
}
|
|
}
|
|
try
|
|
try
|
|
{
|
|
{
|
|
- using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
|
|
|
|
|
|
+ using (MySqlConnection conn = DBConnectionPool.getPool(DBConnection.remoteConf).getConnection())
|
|
|
|
+ //using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
|
|
{
|
|
{
|
|
Operation.TryOpen(conn);
|
|
Operation.TryOpen(conn);
|
|
bool DBStoreStatus = false; //判断数据库事务操作是否正常
|
|
bool DBStoreStatus = false; //判断数据库事务操作是否正常
|
|
@@ -266,7 +267,8 @@ namespace parkMonitor.server.CoreThread
|
|
}
|
|
}
|
|
try
|
|
try
|
|
{
|
|
{
|
|
- using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
|
|
|
|
|
|
+ using (MySqlConnection conn = DBConnectionPool.getPool(DBConnection.remoteConf).getConnection())
|
|
|
|
+ //using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
|
|
{
|
|
{
|
|
Operation.TryOpen(conn);
|
|
Operation.TryOpen(conn);
|
|
bool DBStoreStatus = false; //判断数据库事务操作是否正常
|
|
bool DBStoreStatus = false; //判断数据库事务操作是否正常
|
|
@@ -667,29 +669,7 @@ namespace parkMonitor.server.CoreThread
|
|
{
|
|
{
|
|
bool displayed = false;
|
|
bool displayed = false;
|
|
//等待获取缓冲位资源
|
|
//等待获取缓冲位资源
|
|
- while (pb == null && !MyTimer.restart)
|
|
|
|
- {
|
|
|
|
- pb = ParkingBufferManager.ins.MallocParkingBuffer(queueCmd.id);
|
|
|
|
- if (pb != null)
|
|
|
|
- {
|
|
|
|
- Log.WriteLog(LogType.NOT_DATABASE, LogFile.INFO, queueCmd.LicenseNum + "分配缓冲位:" + pb.bufferID);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- else if (!displayed)
|
|
|
|
- {
|
|
|
|
- UILogServer.ins.error(queueCmd.LicenseNum + "缓冲位已满");
|
|
|
|
- Log.WriteLog(LogType.NOT_DATABASE, LogFile.WARNING, queueCmd.LicenseNum + "缓冲位分配失败");
|
|
|
|
- displayed = true;
|
|
|
|
- }
|
|
|
|
- Thread.Sleep(2000);
|
|
|
|
- }
|
|
|
|
- if (pb == null)
|
|
|
|
- {
|
|
|
|
- UILogServer.ins.error("缓冲位分配失败,流程已回滚");
|
|
|
|
- Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "缓冲位分配失败,流程已回滚");
|
|
|
|
- Rollback(queueCmd, 0, false, true, lmToBeReleased);
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
|
|
//获取车位资源
|
|
//获取车位资源
|
|
ppp = WaitForParkingSpaceResource(queueCmd, out freeSpaceCount);
|
|
ppp = WaitForParkingSpaceResource(queueCmd, out freeSpaceCount);
|
|
@@ -737,9 +717,35 @@ namespace parkMonitor.server.CoreThread
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ while (pb == null && !MyTimer.restart)
|
|
|
|
+ {
|
|
|
|
+ //pb = ParkingBufferManager.ins.MallocParkingBuffer(queueCmd.id);
|
|
|
|
+ pb = new ParkingBuffer(ppp.parkingSpaceX, true);
|
|
|
|
+ ParkingBufferManager.ins.SetParkingBuffer(ppp.parkingSpaceX, true);
|
|
|
|
+ if (pb != null)
|
|
|
|
+ {
|
|
|
|
+ Log.WriteLog(LogType.NOT_DATABASE, LogFile.INFO, queueCmd.LicenseNum + "分配缓冲位:" + pb.bufferID);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ else if (!displayed)
|
|
|
|
+ {
|
|
|
|
+ UILogServer.ins.error(queueCmd.LicenseNum + "缓冲位已满");
|
|
|
|
+ Log.WriteLog(LogType.NOT_DATABASE, LogFile.WARNING, queueCmd.LicenseNum + "缓冲位分配失败");
|
|
|
|
+ displayed = true;
|
|
|
|
+ }
|
|
|
|
+ Thread.Sleep(2000);
|
|
|
|
+ }
|
|
|
|
+ if (pb == null)
|
|
|
|
+ {
|
|
|
|
+ UILogServer.ins.error("缓冲位分配失败,流程已回滚");
|
|
|
|
+ Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "缓冲位分配失败,流程已回滚");
|
|
|
|
+ Rollback(queueCmd, 0, false, true, lmToBeReleased);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
//车位赋值与写数据库
|
|
//车位赋值与写数据库
|
|
if (!queueCmd.manual)
|
|
if (!queueCmd.manual)
|
|
- {
|
|
|
|
|
|
+ {
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
@@ -796,8 +802,8 @@ namespace parkMonitor.server.CoreThread
|
|
//分配的车位数据
|
|
//分配的车位数据
|
|
cm.parkingSpaceID = Convert.ToString(ppp.parkingSpaceID);
|
|
cm.parkingSpaceID = Convert.ToString(ppp.parkingSpaceID);
|
|
//!!!之前把停车位X坐标当做缓冲位ID,现修改为被管理的缓冲位ID,之后PLC地址需调整!!!
|
|
//!!!之前把停车位X坐标当做缓冲位ID,现修改为被管理的缓冲位ID,之后PLC地址需调整!!!
|
|
- //cm.parkingSpaceX = Convert.ToString(ppp.parkingSpaceX);
|
|
|
|
- cm.parkingSpaceX = Convert.ToString(pb.bufferID);
|
|
|
|
|
|
+ cm.parkingSpaceX = Convert.ToString(ppp.parkingSpaceX);
|
|
|
|
+ //cm.parkingSpaceX = Convert.ToString(pb.bufferID);
|
|
cm.parkingSpaceY = Convert.ToString(ppp.parkingSpaceY);
|
|
cm.parkingSpaceY = Convert.ToString(ppp.parkingSpaceY);
|
|
cm.parkingSpaceZ = Convert.ToString(ppp.parkingSpaceZ);
|
|
cm.parkingSpaceZ = Convert.ToString(ppp.parkingSpaceZ);
|
|
PLC.SetMessage(cm);
|
|
PLC.SetMessage(cm);
|
|
@@ -839,7 +845,7 @@ namespace parkMonitor.server.CoreThread
|
|
Robot.robot1.waitCount -= 1;
|
|
Robot.robot1.waitCount -= 1;
|
|
//自动化测试用
|
|
//自动化测试用
|
|
//ManualParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
//ManualParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
- ParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
|
|
|
+ //ParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
//根据号牌查找车型
|
|
//根据号牌查找车型
|
|
//int vehicleTypeID = oper.getVehicleTypeID(numberPlate);
|
|
//int vehicleTypeID = oper.getVehicleTypeID(numberPlate);
|
|
//判断测量数据是否准确
|
|
//判断测量数据是否准确
|
|
@@ -865,10 +871,11 @@ namespace parkMonitor.server.CoreThread
|
|
int parkingRecordsID = 0;
|
|
int parkingRecordsID = 0;
|
|
try
|
|
try
|
|
{
|
|
{
|
|
- //using (MySqlConnection conn = DBConnectionPool.getPool(DBConnection.remoteConf).getConnection())
|
|
|
|
- using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
|
|
|
|
|
|
+ using (MySqlConnection conn = DBConnectionPool.getPool(DBConnection.remoteConf).getConnection())
|
|
|
|
+ //using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
|
|
{
|
|
{
|
|
Operation.TryOpen(conn);
|
|
Operation.TryOpen(conn);
|
|
|
|
+ //string insertRecordSql = "insert into parkingrecords(userID,numberPlate,parkingSpaceID,garageID,parkingRecordsState,realParkTime) values('" + userID + "','" + queueCmd.LicenseNum + "','" + ppp.parkingSpaceID + "','" + garageID + "',3,'" + realParkTime + "')";
|
|
string insertRecordSql = "insert into parkingrecords(userID,numberPlate,parkingSpaceID,garageID,parkingRecordsState,realParkTime) values('" + userID + "','" + queueCmd.LicenseNum + "','" + ppp.parkingSpaceID + "','" + garageID + "',3,'" + realParkTime + "')";
|
|
string insertRecordSql = "insert into parkingrecords(userID,numberPlate,parkingSpaceID,garageID,parkingRecordsState,realParkTime) values('" + userID + "','" + queueCmd.LicenseNum + "','" + ppp.parkingSpaceID + "','" + garageID + "',3,'" + realParkTime + "')";
|
|
if (!Operation.MyTransaction(conn, insertRecordSql, out parkingRecordsID))
|
|
if (!Operation.MyTransaction(conn, insertRecordSql, out parkingRecordsID))
|
|
{
|
|
{
|
|
@@ -876,8 +883,8 @@ namespace parkMonitor.server.CoreThread
|
|
Log.WriteLog(LogType.DATABASE, "1", insertRecordSql);
|
|
Log.WriteLog(LogType.DATABASE, "1", insertRecordSql);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //using (MySqlConnection conn = DBConnectionPool.getPool(DBConnection.remoteConf).getConnection())
|
|
|
|
- using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
|
|
|
|
|
|
+ using (MySqlConnection conn = DBConnectionPool.getPool(DBConnection.remoteConf).getConnection())
|
|
|
|
+ //using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
|
|
{
|
|
{
|
|
Operation.TryOpen(conn);
|
|
Operation.TryOpen(conn);
|
|
string updateVehicleSql = "update vehicle set vehiclepParkState = 1,scanEntryTime = '" + queueCmd.TimeRecord + "',parkingRecordsID = '" + parkingRecordsID + "',parkingSpaceID = '" + ppp.parkingSpaceID + "',vehicleTypeConfirm = 1,frontwheelbase = '" + frontWheelbase + "',rearwheelbase = '" + rearWheelbase + "' where numberPlate = '" + queueCmd.LicenseNum + "'";
|
|
string updateVehicleSql = "update vehicle set vehiclepParkState = 1,scanEntryTime = '" + queueCmd.TimeRecord + "',parkingRecordsID = '" + parkingRecordsID + "',parkingSpaceID = '" + ppp.parkingSpaceID + "',vehicleTypeConfirm = 1,frontwheelbase = '" + frontWheelbase + "',rearwheelbase = '" + rearWheelbase + "' where numberPlate = '" + queueCmd.LicenseNum + "'";
|
|
@@ -1119,7 +1126,7 @@ namespace parkMonitor.server.CoreThread
|
|
|
|
|
|
//自动化测试用
|
|
//自动化测试用
|
|
//ManualParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
//ManualParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
- ParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
|
|
|
+ //ParkingSimul.ins.Update(Int32.Parse(queueCmd.LicenseNum.Substring(2, 1)));
|
|
|
|
|
|
int freeSpaceCount = ParkingSpaceManager.ins.GetFreeSpaceCount();
|
|
int freeSpaceCount = ParkingSpaceManager.ins.GetFreeSpaceCount();
|
|
//数据库更新
|
|
//数据库更新
|
|
@@ -1129,41 +1136,30 @@ namespace parkMonitor.server.CoreThread
|
|
{
|
|
{
|
|
if (!queueCmd.manual)
|
|
if (!queueCmd.manual)
|
|
{
|
|
{
|
|
- //云端数据库更新
|
|
|
|
- //更新车库表车位数
|
|
|
|
- //int freeSpaceCount = oper.getGarageFreeSpace(DBConnection.remoteStr, 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);
|
|
|
|
//取车事务
|
|
//取车事务
|
|
try
|
|
try
|
|
{
|
|
{
|
|
- //using (MySqlConnection conn = DBConnectionPool.getPool(DBConnection.remoteConf).getConnection())
|
|
|
|
- using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
|
|
|
|
|
|
+ using (MySqlConnection conn = DBConnectionPool.getPool(DBConnection.remoteConf).getConnection())
|
|
|
|
+ //using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
|
|
{
|
|
{
|
|
Operation.TryOpen(conn);
|
|
Operation.TryOpen(conn);
|
|
bool DBStoreStatus = false; //判断数据库事务操作是否正常
|
|
bool DBStoreStatus = false; //判断数据库事务操作是否正常
|
|
int temp;
|
|
int temp;
|
|
List<string> strs = new List<string>();
|
|
List<string> strs = new List<string>();
|
|
- string updateParkingSpaceStateSql = "update parkingspace set parkingSpaceState = 0 where parkingSpaceID = '" + ps.parkingSpaceID + "'";
|
|
|
|
- string updateFreeSpaceSql = "update garage set garageFreeSpace = '" + freeSpaceCount + "' where garageID = '" + garageID + "'";
|
|
|
|
|
|
+ //string updateParkingSpaceStateSql = "update parkingspace set parkingSpaceState = 0 where parkingSpaceID = '" + ps.parkingSpaceID + "'";
|
|
|
|
+ //string updateFreeSpaceSql = "update garage set garageFreeSpace = '" + freeSpaceCount + "' where garageID = '" + garageID + "'";
|
|
string updateVehicleStateSql = "update vehicle set vehiclepParkState = 0 where numberPlate = '" + queueCmd.LicenseNum + "'";
|
|
string updateVehicleStateSql = "update vehicle set vehiclepParkState = 0 where numberPlate = '" + queueCmd.LicenseNum + "'";
|
|
string updateParkingRecordsSql = "update parkingrecords set parkingRecordsState = 6,realGetTime = '" + queueCmd.TimeRecord + "'where parkingRecordsID = '" + queueCmd.parkingRecordsID + "'";
|
|
string updateParkingRecordsSql = "update parkingrecords set parkingRecordsState = 6,realGetTime = '" + queueCmd.TimeRecord + "'where parkingRecordsID = '" + queueCmd.parkingRecordsID + "'";
|
|
- strs.Add(updateParkingSpaceStateSql);
|
|
|
|
- strs.Add(updateFreeSpaceSql);
|
|
|
|
|
|
+ //strs.Add(updateParkingSpaceStateSql);
|
|
|
|
+ //strs.Add(updateFreeSpaceSql);
|
|
strs.Add(updateVehicleStateSql);
|
|
strs.Add(updateVehicleStateSql);
|
|
strs.Add(updateParkingRecordsSql);
|
|
strs.Add(updateParkingRecordsSql);
|
|
if (!Operation.MyTransaction(conn, strs, out temp))
|
|
if (!Operation.MyTransaction(conn, strs, out temp))
|
|
{
|
|
{
|
|
Log.WriteLog(LogType.NOT_DATABASE, "数据库操作出错,记录sql语句等待流程回滚");
|
|
Log.WriteLog(LogType.NOT_DATABASE, "数据库操作出错,记录sql语句等待流程回滚");
|
|
//写日志记录sql,以待之后处理
|
|
//写日志记录sql,以待之后处理
|
|
- Log.WriteLog(LogType.DATABASE, "0", updateParkingSpaceStateSql);
|
|
|
|
- Log.WriteLog(LogType.DATABASE, "0", updateFreeSpaceSql);
|
|
|
|
|
|
+ //Log.WriteLog(LogType.DATABASE, "0", updateParkingSpaceStateSql);
|
|
|
|
+ //Log.WriteLog(LogType.DATABASE, "0", updateFreeSpaceSql);
|
|
Log.WriteLog(LogType.DATABASE, "0", updateVehicleStateSql);
|
|
Log.WriteLog(LogType.DATABASE, "0", updateVehicleStateSql);
|
|
Log.WriteLog(LogType.DATABASE, "0", updateParkingRecordsSql);
|
|
Log.WriteLog(LogType.DATABASE, "0", updateParkingRecordsSql);
|
|
}
|
|
}
|