فهرست منبع

实现转辙机编号。

git-svn-id: https://202.107.226.68:8443/svn/Services/ResistanceMonitor@12 a05970a1-87b9-9d4f-9ee5-fa77e2ec115b
shenchunzhong 1 سال پیش
والد
کامیت
c23245f05c
2فایلهای تغییر یافته به همراه32 افزوده شده و 0 حذف شده
  1. 22 0
      4.Data/HttpPrcess.cpp
  2. 10 0
      4.Data/MonitorObject.h

+ 22 - 0
4.Data/HttpPrcess.cpp

@@ -2394,10 +2394,32 @@ int DealPutChangeZzjno(const char* body_ptr, const size_t body_len, const string
 		auto newNumber = yyjson_get_int(yyjson_obj_get(req_root, "newNumber"));
 		if (mo == nullptr || mp == nullptr || newNumber == 0) break;
 
+		//бàºÅÒÑ´æÔÚ
+		if (CMonitorObjectMng::Instance()->GetMoMpInfoByZZJno(newNumber))
+		{
+			code = 400;
+			break;
+		}
+
+		auto pMoMp = CMonitorObjectMng::Instance()->GetMoMpInfo(string(mo) + "." + mp);
+		if (pMoMp == nullptr)
+		{
+			code = 404;
+			break;
+		}
 
 
+		CString sql = fmt::format("update rm_map set zzjno = {} where mo='{}' and mp = '{}';", 
+			newNumber, mo, mp).c_str();
 
+		if (!CDBConnectPool::Instance()->DBExecuteSQL(sql))
+		{
+			code = 500;
+			break;
+		}
+		pMoMp->zzjno = newNumber;
 		code = 200;
+		break;
 	} while (false);
 
 	return code;

+ 10 - 0
4.Data/MonitorObject.h

@@ -178,6 +178,16 @@ public:
 		return m_mapMoMpInfo[momp];
 	}
 
+	inline ST_MOMP_INFO* GetMoMpInfoByZZJno(const int zzjno)
+	{
+		for (auto& it : m_mapMoMpInfo)
+		{
+			if (it.second->zzjno == zzjno)
+				return it.second;
+		}
+		return nullptr;
+	}
+
 private:
 
 	static CMonitorObject* GetTreeByID(CMonitorObject* p, const string& id);