yc_t před 7 roky
rodič
revize
1358cf643e

+ 20 - 26
parkMonitor/server/CoreThread/AbstractCmd.cs

@@ -393,11 +393,11 @@ namespace parkMonitor.server.CoreThread
             {
                 if (!queueCmd.manual)
                 {
-                    ppp = ParkingSpaceManager.ins.MallocParkingSpace(cEntrance, DBConnection.remoteStr, queueCmd, out count);//自动 
+                    ppp = ParkingSpaceManager.ins.MallocParkingSpace(cEntrance, DBConnection.remoteConf, queueCmd, out count);//自动 
                 }
                 else
                 {
-                    ppp = ParkingSpaceManager.ins.MallocParkingSpace(cEntrance, DBConnection.localStr, queueCmd, out count);//手动
+                    ppp = ParkingSpaceManager.ins.MallocParkingSpace(cEntrance, DBConnection.localConf, queueCmd, out count);//手动
                 }
                 if (ppp != null)
                 {
@@ -743,13 +743,12 @@ namespace parkMonitor.server.CoreThread
                 }
                 else
                 {
-                    connectionStr = DBConnection.localStr;
                     //更新本地车位表车位状态
-                    oper.UpdateParkingSpaceState(connectionStr, ppp.parkingSpaceID, 1);
+                    oper.UpdateParkingSpaceState(DBConnection.localConf, ppp.parkingSpaceID, 1);
                     //更新车库表剩余车位数
                     //int freeSpaceCount = oper.getGarageFreeSpace(connectionStr, garageID);
                     //freeSpaceCount = freeSpaceCount - 1;
-                    oper.UpdateGarageFreeSpace(connectionStr, freeSpaceCount, garageID);
+                    oper.UpdateGarageFreeSpace(DBConnection.localConf, freeSpaceCount, garageID);
                 }
                 //号牌失效,数据库回滚
                 if (disappeared)
@@ -757,13 +756,11 @@ namespace parkMonitor.server.CoreThread
                     NumReset(queueCmd);
                     if (!queueCmd.manual)
                     {
-                        connectionStr = DBConnection.remoteStr;
-                        oper.UpdateVehicleParkState(connectionStr, queueCmd.LicenseNum, 0);
+                        oper.UpdateVehicleParkState(DBConnection.remoteConf, queueCmd.LicenseNum, 0);
                     }
                     else
                     {
-                        connectionStr = DBConnection.localStr;
-                        oper.UpdateVehicleParkState(connectionStr, queueCmd.LicenseNum, 0);
+                        oper.UpdateVehicleParkState(DBConnection.remoteConf, queueCmd.LicenseNum, 0);
                     }
                     return;
                 }
@@ -868,8 +865,8 @@ namespace parkMonitor.server.CoreThread
                         int parkingRecordsID = 0;
                         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);
                                 string insertRecordSql = "insert into parkingrecords(userID,numberPlate,parkingSpaceID,garageID,parkingRecordsState,realParkTime) values('" + userID + "','" + queueCmd.LicenseNum + "','" + ppp.parkingSpaceID + "','" + garageID + "',3,'" + realParkTime + "')";
@@ -879,8 +876,8 @@ namespace parkMonitor.server.CoreThread
                                     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);
                                 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 + "'";
@@ -899,9 +896,8 @@ namespace parkMonitor.server.CoreThread
                     }
                     else
                     {
-                        connectionStr = DBConnection.localStr;
                         //插入停车记录表
-                        int parkingRecordsID = oper.InsertToLocalParkingRecords(connectionStr, 1, userID, queueCmd.LicenseNum, ppp.parkingSpaceID, garageID, 3, realParkTime, frontWheelbase, rearWheelbase);
+                        int parkingRecordsID = oper.InsertToLocalParkingRecords(DBConnection.localConf, 1, userID, queueCmd.LicenseNum, ppp.parkingSpaceID, garageID, 3, realParkTime, frontWheelbase, rearWheelbase);
                     }
                 }
             }
@@ -1006,12 +1002,12 @@ namespace parkMonitor.server.CoreThread
             //获取车辆表中车辆相关信息
             if (queueCmd.manual)
             {
-                connectionStr = DBConnection.localStr;
+                connectionStr = DBConnection.localConf;
                 vehiclelist = oper.GetLocalVehicle(connectionStr, queueCmd.LicenseNum, queueCmd.garageID);
             }
             else
             {
-                connectionStr = DBConnection.remoteStr;
+                connectionStr = DBConnection.remoteConf;
                 vehiclelist = oper.GetVehicle(connectionStr, queueCmd.LicenseNum);
             }
             if (vehiclelist == null)
@@ -1147,8 +1143,8 @@ namespace parkMonitor.server.CoreThread
                         //取车事务
                         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);
                                 bool DBStoreStatus = false;       //判断数据库事务操作是否正常 
@@ -1180,17 +1176,16 @@ namespace parkMonitor.server.CoreThread
                     }
                     else
                     {
-                        connectionStr = DBConnection.localStr;
                         //更新车库表车位数
                         //int freeSpaceCount = oper.getGarageFreeSpace(connectionStr, garageID);
                         //freeSpaceCount = freeSpaceCount + 1;
-                        oper.UpdateGarageFreeSpace(connectionStr, freeSpaceCount, garageID);
+                        oper.UpdateGarageFreeSpace(DBConnection.localConf, freeSpaceCount, garageID);
                         //更新车位表车位状态
-                        oper.UpdateParkingSpaceState(connectionStr, ps.parkingSpaceID, 0);
+                        oper.UpdateParkingSpaceState(DBConnection.localConf, ps.parkingSpaceID, 0);
                         ////更新车辆表车辆停车状态
                         //locationOper.UpdateVehicleParkState(queueCmd.LicenseNum, 0);
                         //更新停车记录表
-                        oper.UpdateParkingRecords(connectionStr, 0, 6, queueCmd.TimeRecord, queueCmd.parkingRecordsID);
+                        oper.UpdateParkingRecords(DBConnection.localConf, 0, 6, queueCmd.TimeRecord, queueCmd.parkingRecordsID);
                     }
                 }
                 Thread.Sleep(1000);
@@ -1205,14 +1200,13 @@ namespace parkMonitor.server.CoreThread
     {
         public override void executeCmd(Command queueCmd)
         {
-            string connectionStr = DBConnection.remoteStr;
             if (queueCmd.commandType == 'e')
             {
                 int userId = Convert.ToInt32(queueCmd.userID);
                 //过期用户指令
-                oper.InsertToMessageQueue(connectionStr, userId, "停车异常,请联系管理员!", 2);
+                oper.InsertToMessageQueue(DBConnection.remoteConf, userId, "停车异常,请联系管理员!", 2);
                 //未能停车,将车辆状态复位
-                oper.UpdateVehicleParkState(connectionStr, queueCmd.LicenseNum, 0);
+                oper.UpdateVehicleParkState(DBConnection.remoteConf, queueCmd.LicenseNum, 0);
                 Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "过期用户指令,车牌号:" + queueCmd.LicenseNum);
                 UILogServer.ins.error("过期用户指令,车牌号:" + queueCmd.LicenseNum);
                 //continue;

+ 39 - 36
parkMonitor/server/CoreThread/CoreThreadTest2.cs

@@ -271,47 +271,50 @@ namespace parkMonitor.server.CoreThread
         /// </summary>
         private void updateGarageAndParkingSpace(object o)
         {
-            int freeSpaceCount = ParkingSpaceManager.ins.GetFreeSpaceCount();
-            try
+            if (EntityForCore.ins.globalStatus && ParkingBufferManager.ins.checkedManually)
             {
-                using (MySqlConnection conn = DBConnectionPool.getPool(DBConnection.remoteConf).getConnection())
-                //using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
+                int freeSpaceCount = ParkingSpaceManager.ins.GetFreeSpaceCount();
+                try
                 {
-
-                    Operation.TryOpen(conn);
-                    bool DBStoreStatus = false;                       //判断数据库事务操作是否正常
-                    int temp;
-                    List<string> strs = new List<string>();
-                    string updateParkingSpaceSql = "";
-                    Dictionary<int, Parking_Space>.Enumerator enumer = ParkingSpaceManager.ins.parkingSpaceStatusMap.GetEnumerator();
-                    while (enumer.MoveNext())
-                    {
-                        updateParkingSpaceSql = "update parkingspace set parkingSpaceState = " + enumer .Current.Value.parkingSpaceState+ " where parkingSpaceID = '" + enumer .Current.Value.parkingSpaceID+ "'";
-                        strs.Add(updateParkingSpaceSql);
-                    }
-                    string updateFreeSpaceSql = "update garage set garageFreeSpace = '" + freeSpaceCount + "' where garageID = '" + ParkingSpaceManager.garageID + "'";
-                    strs.Add(updateFreeSpaceSql);
-                    if (!Operation.MyTransaction(conn, strs, out temp))
+                    //using (MySqlConnection conn = DBConnectionPool.getPool(DBConnection.remoteConf).getConnection())
+                    using (MySqlConnection conn = new MySqlConnection(DBConnection.remoteConf))
                     {
-                        //此处为关键步骤,不记入日志,设置全局状态异常
-                        EntityForCore.ins.globalStatus = false;
-                        int count = 0;
-                        while (!MyTimer.restart)
+
+                        Operation.TryOpen(conn);
+                        bool DBStoreStatus = false;                       //判断数据库事务操作是否正常
+                        int temp;
+                        List<string> strs = new List<string>();
+                        string updateParkingSpaceSql = "";
+                        Dictionary<int, Parking_Space>.Enumerator enumer = ParkingSpaceManager.ins.parkingSpaceStatusMap.GetEnumerator();
+                        while (enumer.MoveNext())
+                        {
+                            updateParkingSpaceSql = "update parkingspace set parkingSpaceState = " + enumer.Current.Value.parkingSpaceState + " where parkingSpaceID = '" + enumer.Current.Value.parkingSpaceID + "'";
+                            strs.Add(updateParkingSpaceSql);
+                        }
+                        string updateFreeSpaceSql = "update garage set garageFreeSpace = '" + freeSpaceCount + "' where garageID = '" + ParkingSpaceManager.garageID + "'";
+                        strs.Add(updateFreeSpaceSql);
+                        if (!Operation.MyTransaction(conn, strs, out temp))
                         {
-                            count++;
-                            if (count == 1)
+                            //此处为关键步骤,不记入日志,设置全局状态异常
+                            EntityForCore.ins.globalStatus = false;
+                            int count = 0;
+                            while (!MyTimer.restart)
                             {
-                                UILogServer.ins.error("数据库操作异常");
-                                Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "缓冲位分配失败,流程已回滚");
+                                count++;
+                                if (count == 1)
+                                {
+                                    UILogServer.ins.error("数据库操作异常");
+                                    Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "缓冲位分配失败,流程已回滚");
+                                }
+                                Thread.Sleep(5000);
                             }
-                            Thread.Sleep(5000);
                         }
                     }
                 }
-            }
-            catch
-            {
-                throw;          //数据库异常待处理
+                catch
+                {
+                    throw;          //数据库异常待处理
+                }
             }
         }
         /// <summary>
@@ -337,8 +340,8 @@ namespace parkMonitor.server.CoreThread
                         int parkingRecordsID = 0;
                         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.MyTransaction(conn, sqlMsg, out parkingRecordsID);
@@ -355,8 +358,8 @@ namespace parkMonitor.server.CoreThread
                         int temp;
                         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.MyTransaction(conn, sqlMsg, out temp);

+ 1 - 1
parkMonitor/server/CoreThread/SpaceManager.cs

@@ -51,7 +51,7 @@ namespace parkMonitor.server.CoreThread
                     catch { UILogServer.ins.error("无法获得车位权重,请检查配置"); Log.WriteLog(LogType.NOT_DATABASE, LogFile.ERROR, "无法获得车位权重"); return false; }
                     if (garageID != 0)
                     {
-                        parkingSpaceStatusMap = oper.GetAllParkingSpace(DBConnection.remoteStr, garageID);
+                        parkingSpaceStatusMap = oper.GetAllParkingSpace(DBConnection.remoteConf, garageID);
                     }
                     else
                     {

+ 1 - 1
parkMonitor/server/NumMachine/ParkingSimul.cs

@@ -17,7 +17,7 @@ namespace parkMonitor.server.NumMachine
     class ParkingSimul
     {
         public static ParkingSimul ins;
-        private const string hostname = "192.168.111.84";
+        private const string hostname = "192.168.10.100";
         private const int port = 9000;
         private const string userId = "18202736439";
         private const string garageId = "1";