Browse Source

测试:BUG下面的【310、314、315、316】修改

git-svn-id: https://202.107.226.68:8443/svn/Services/ResistanceMonitor@159 a05970a1-87b9-9d4f-9ee5-fa77e2ec115b
heqiang 11 months ago
parent
commit
68d4915ae1

+ 1 - 0
2.Web/src/views/AlarmManagement.vue

@@ -616,6 +616,7 @@ export default {
    this.params.mo = query.mo;
    this.params.mp = query.mp;
    this.params.type = query.type;
+   this.times = query.times;
   },
   // 判断URL中是否有参数
   url_is_query() {

+ 0 - 1
2.Web/src/views/Force.vue

@@ -1613,7 +1613,6 @@ export default {
     })
    }
    let option = forceDisassemble(this.curve_data)
-   debugger
    this.myCharts.off('legendselectchanged') // 解除监听legend事件
    this.myCharts.setOption(option, true) // 重新渲染
    console.log(`3.绘制折线图耗时:${+new Date() - date_num} ms`)

+ 17 - 32
4.Data/HttpPrcess.cpp

@@ -2315,20 +2315,10 @@ int DealGetResistData(const httplib::Request& req, const string token, char** js
 					yyjson_mut_obj_add_int(doc, obj, "val", show_val);
 					if (pConvertLimit && pConvertLimit->enable && !sunroof)
 					{
-						if (pInfo->out_name.find("¶¨°â·´") != -1)
-						{
 							if (pConvertLimit->dw_alarm_low_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Red");
 							else if (pConvertLimit->dw_warn_low_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Orange");
-						}
-						else
-						{
-							if (pConvertLimit->up_alarm_high_limit < show_val)
-								yyjson_mut_obj_add_str(doc, obj, "color", "Red");
-							else if (pConvertLimit->up_warn_high_limit < show_val)
-								yyjson_mut_obj_add_str(doc, obj, "color", "Orange");
-						}
 					}
 					if (curr_val < 0)
 						yyjson_mut_obj_add_str(doc, obj, "position", "bottom");
@@ -2350,20 +2340,10 @@ int DealGetResistData(const httplib::Request& req, const string token, char** js
 					yyjson_mut_obj_add_int(doc, obj, "val", show_val);
 					if (pConvertLimit && pConvertLimit->enable && !sunroof)
 					{
-						if (pInfo->out_name.find("·´°â¶¨") != -1)
-						{
-							if (pConvertLimit->dw_alarm_low_limit < show_val)
-								yyjson_mut_obj_add_str(doc, obj, "color", "Red");
-							else if (pConvertLimit->dw_warn_low_limit < show_val)
-								yyjson_mut_obj_add_str(doc, obj, "color", "Orange");
-						}
-						else
-						{
 							if (pConvertLimit->up_alarm_high_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Red");
 							else if (pConvertLimit->up_warn_high_limit < show_val)
 								yyjson_mut_obj_add_str(doc, obj, "color", "Orange");
-						}
 					}
 					if (curr_val < 0)
 						yyjson_mut_obj_add_str(doc, obj, "position", "bottom");
@@ -3937,7 +3917,7 @@ int DealGetResistReport(const httplib::Request& req, const string token, char**
 	{
 		string strStation = UTF8toANSI(station);
 		string table_name = fmt::format("rm_move_{:0>4}{:0>2}", odt.GetYear(), odt.GetMonth());
-		CString sql = fmt::format("SELECT A.*,B.name FROM (SELECT mo, mp, posi, count(*) as num, max(show_val) as l, min(show_val) as s, sum(show_val) as sum, CASE WHEN posi = 3 OR posi = 4 THEN 3 WHEN [type] = 0 THEN 1 ELSE [type] END AS [newtype] FROM {} WHERE mo in (SELECT id FROM rm_mo WHERE up = '{}') AND show_time >= '{}' AND show_time <= '{}' GROUP BY mo, mp, posi, \
+		CString sql = fmt::format("SELECT A.*,B.name FROM (SELECT mo, mp,show_time,posi, count(*) as num, max(show_val) as l, min(show_val) as s, sum(show_val) as sum, CASE WHEN posi = 3 OR posi = 4 THEN 3 WHEN [type] = 0 THEN 1 ELSE [type] END AS [newtype] FROM {} WHERE mo in (SELECT id FROM rm_mo WHERE up = '{}') AND show_time >= '{}' AND show_time <= '{}' GROUP BY mo, mp,show_time, posi, \
 			CASE WHEN posi = 3 OR posi = 4 THEN 3 WHEN [type] = 0 THEN 1 ELSE [type] END ) AS A \
 			LEFT JOIN rm_mo AS B ON A.mo = B.id   order by TRY_CONVERT(INT, B.name)",
 			table_name, strStation, odt.Format("%Y-%m-%d 00:00:00"), odt.Format("%Y-%m-%d 23:59:59.999")).c_str();
@@ -4002,11 +3982,14 @@ int DealGetResistReport(const httplib::Request& req, const string token, char**
 			int num;
 			int max;
 			int min;
+			TIMESTAMP_STRUCT ts;
 			int64_t sum;
 			eDaoChaPosi posi;
 			ePowerName pn;
 			stmt.BindCharCol(nCol++, mo, sizeof(mo));
 			stmt.BindCharCol(nCol++, mp, sizeof(mp));
+			stmt.BindTimeStampCol(nCol++, &ts);
+
 			stmt.BindTinyIntCol(nCol++, (BYTE*)&posi);
 			stmt.BindIntCol(nCol++, &num);
 			stmt.BindIntCol(nCol++, &max);
@@ -4027,6 +4010,8 @@ int DealGetResistReport(const httplib::Request& req, const string token, char**
 				it.mo_name = mo_name;
 				it.mo = mo;
 				it.mp = mp;
+				
+				boolean bSkylight = (ts.hour<4 || ts.hour>=23)?true:false;
 				eSuoBiPosi idx;
 				switch (posi)
 				{
@@ -4047,7 +4032,7 @@ int DealGetResistReport(const httplib::Request& req, const string token, char**
 
 						idx = eSuoBiPosi::SB_FIX;
 						pInfo = (SUOBI_OVER_LIMIT_INFO*)CResistAlarmMng::Instance()->Find(mo, mp, (uint8_t)idx, eZL_ALARMTYPE::SUOBI_LOCK_LIMIT);
-						if (pInfo && pInfo->enable)
+						if (pInfo && pInfo->enable && !bSkylight)
 						{
 							if (max > pInfo->alarm_high_limit)
 								it.d_suobi_lock_max_color = UINT8_ALARM;
@@ -4059,7 +4044,7 @@ int DealGetResistReport(const httplib::Request& req, const string token, char**
 							else if (min < pInfo->warn_low_limit)
 								it.d_suobi_lock_min_color = UINT8_WARN;
 
-							if (num && (it.d_suobi_lock_avg > pInfo->alarm_high_limit || it.d_suobi_lock_avg < pInfo->alarm_low_limit))
+							if (num && (it.d_suobi_lock_avg > pInfo->alarm_high_limit || it.d_suobi_lock_avg < pInfo->alarm_low_limit) )
 								it.d_suobi_lock_avg_color = UINT8_ALARM;
 							else if (num && (it.d_suobi_lock_avg > pInfo->warn_high_limit || it.d_suobi_lock_avg < pInfo->warn_low_limit))
 								it.d_suobi_lock_avg_color = UINT8_WARN;
@@ -4084,7 +4069,7 @@ int DealGetResistReport(const httplib::Request& req, const string token, char**
 
 						idx = eSuoBiPosi::SB_INVERT;
 						pInfo = (SUOBI_OVER_LIMIT_INFO*)CResistAlarmMng::Instance()->Find(mo, mp, (uint8_t)idx, eZL_ALARMTYPE::SUOBI_LOCK_LIMIT);
-						if (pInfo && pInfo->enable)
+						if (pInfo && pInfo->enable && !bSkylight)
 						{
 							if (max > pInfo->alarm_high_limit)
 								it.f_suobi_lock_max_color = UINT8_ALARM;
@@ -4096,9 +4081,9 @@ int DealGetResistReport(const httplib::Request& req, const string token, char**
 							else if (min < pInfo->warn_low_limit)
 								it.f_suobi_lock_min_color = UINT8_WARN;
 
-							if (num && (it.f_suobi_lock_avg > pInfo->alarm_high_limit || it.f_suobi_lock_avg < pInfo->alarm_low_limit))
+							if (num && (it.f_suobi_lock_avg > pInfo->alarm_high_limit || it.f_suobi_lock_avg < pInfo->alarm_low_limit) && !bSkylight)
 								it.f_suobi_lock_avg_color = UINT8_ALARM;
-							else if (num && (it.f_suobi_lock_avg > pInfo->warn_high_limit || it.f_suobi_lock_avg < pInfo->warn_low_limit))
+							else if (num && (it.f_suobi_lock_avg > pInfo->warn_high_limit || it.f_suobi_lock_avg < pInfo->warn_low_limit) && !bSkylight)
 								it.f_suobi_lock_avg_color = UINT8_WARN;
 						}
 					}
@@ -4110,7 +4095,7 @@ int DealGetResistReport(const httplib::Request& req, const string token, char**
 					if (num) it.d_convert_resist_avg = sum / num;
 
 					pInfo2 = (CONVERT_RESIST_OVER_LIMIT*)CResistAlarmMng::Instance()->Find(mo, mp, 2, eZL_ALARMTYPE::CONVERT_LIMIT);
-					if (pInfo2 && pInfo2->enable)
+					if (pInfo2 && pInfo2->enable && !bSkylight)
 					{
 						if (max > pInfo2->dw_alarm_low_limit)
 							it.d_convert_resist_max_color = UINT8_ALARM;
@@ -4122,9 +4107,9 @@ int DealGetResistReport(const httplib::Request& req, const string token, char**
 						else if (min > pInfo2->dw_warn_low_limit)
 							it.d_convert_resist_min_color = UINT8_WARN;
 
-						if (num && it.d_convert_resist_avg > pInfo2->dw_alarm_low_limit)
+						if (num && it.d_convert_resist_avg > pInfo2->dw_alarm_low_limit && !bSkylight)
 							it.d_convert_resist_avg_color = UINT8_ALARM;
-						else if (num && it.d_convert_resist_avg > pInfo2->dw_warn_low_limit)
+						else if (num && it.d_convert_resist_avg > pInfo2->dw_warn_low_limit && !bSkylight)
 							it.d_convert_resist_avg_color = UINT8_WARN;
 					}
 					break;
@@ -4136,7 +4121,7 @@ int DealGetResistReport(const httplib::Request& req, const string token, char**
 
 
 					pInfo2 = (CONVERT_RESIST_OVER_LIMIT*)CResistAlarmMng::Instance()->Find(mo, mp, 2, eZL_ALARMTYPE::CONVERT_LIMIT);
-					if (pInfo2 && pInfo2->enable)
+					if (pInfo2 && pInfo2->enable && !bSkylight)
 					{
 						if (max > pInfo2->up_alarm_high_limit)
 							it.f_convert_resist_max_color = UINT8_ALARM;
@@ -4148,9 +4133,9 @@ int DealGetResistReport(const httplib::Request& req, const string token, char**
 						else if (min > pInfo2->up_warn_high_limit)
 							it.f_convert_resist_min_color = UINT8_WARN;
 
-						if (num && it.f_convert_resist_avg > pInfo2->up_alarm_high_limit)
+						if (num && it.f_convert_resist_avg > pInfo2->up_alarm_high_limit && !bSkylight)
 							it.f_convert_resist_avg_color = UINT8_ALARM;
-						else if (num && it.f_convert_resist_avg > pInfo2->up_warn_high_limit)
+						else if (num && it.f_convert_resist_avg > pInfo2->up_warn_high_limit && !bSkylight)
 							it.f_convert_resist_avg_color = UINT8_WARN;
 					}
 					break;

+ 13 - 46
4.Data/ResistAlarm.cpp

@@ -46,8 +46,8 @@ BOOL CResistAlarmMng::Start(CString strIniPath)
 
 	if (m_pThreadAlarmSet == nullptr) return FALSE;
 	//离线报警
-	m_pThreadDevice = new thread(CResistAlarmMng::ThreadProcDevice, (DWORD_PTR)this);
-	if (m_pThreadDevice == nullptr) return FALSE;
+	/*m_pThreadDevice = new thread(CResistAlarmMng::ThreadProcDevice, (DWORD_PTR)this);
+	if (m_pThreadDevice == nullptr) return FALSE;*/
 
 	if (g_bExternalData)
 	{
@@ -996,7 +996,7 @@ void CResistAlarmMng::JudgeAlarm(CResistAlarmMng* pService, SUOBI_OVER_LIMIT_INF
 
 //判断转换阻力是否超限
 void CResistAlarmMng::JudgeAlarm(CResistAlarmMng* pService, CONVERT_RESIST_OVER_LIMIT* pConvertOverLimit, 
-	time_t show_time, int show_val, eDaoChaPosi posi, eUpOrDownInfo eUpOrDown, string mo, string mp, uint32_t zzjno)
+	time_t show_time, int show_val, eDaoChaPosi posi, string mo, string mp, uint32_t zzjno)
 {
 	if (pConvertOverLimit == nullptr || pConvertOverLimit->enable == false) return;
 	bool bNew = false;
@@ -1004,7 +1004,7 @@ void CResistAlarmMng::JudgeAlarm(CResistAlarmMng* pService, CONVERT_RESIST_OVER_
 	bool bAlarm = false, bWarn = false; int alarm_value = show_val, alarm_refer; time_t alarm_time = show_time;
 	CTime ctAlarmTime = CTime(alarm_time / 1000);
 	{
-		if (eUpOrDown == eUpOrDownInfo::UOD_UP)//缩进
+		if (posi == eDaoChaPosi::DCP_INVERT2FIX)
 		{
 			if (show_val > pConvertOverLimit->up_alarm_high_limit)
 			{
@@ -1017,7 +1017,7 @@ void CResistAlarmMng::JudgeAlarm(CResistAlarmMng* pService, CONVERT_RESIST_OVER_
 				alarm_refer = pConvertOverLimit->up_warn_high_limit;
 			}
 		}
-		else if (eUpOrDown == eUpOrDownInfo::UOD_DOWN)
+		else if (posi == eDaoChaPosi::DCP_FIX2INVERT)
 		{
 			if (show_val > pConvertOverLimit->dw_alarm_low_limit)
 			{
@@ -3592,51 +3592,25 @@ void CResistAlarmMng::ThreadProcMove(DWORD_PTR param)
 						//auto it_start2 = mapData[2]->find(it.tmStart * 1000);
 						//auto it_end2 = mapData[2]->find(it.tmEnd * 1000);
 						eDaoChaPosi posi = eDaoChaPosi::DCP_UNKNOWN;
-						if (it.bUpOrDown == eUpOrDownInfo::UOD_UP)
+						if (posi == eDaoChaPosi::DCP_FIX2INVERT)
 						{
 							if (pMompInfo->in_name.find("定扳反") != -1)
 							{
 								CResistAlarmMng::InsertToDBByMove(mo, mp, it.time, it.tmStart, it.tmEnd, it.val, it.fluctuation_val, i,
 									(uint8_t)eDaoChaPosi::DCP_FIX2INVERT, (uint8_t)ePowerName::PN_MOVE, fmt::format("{}:{}", pMompInfo->in_name, it.fluctuation_val));
 								posi = eDaoChaPosi::DCP_FIX2INVERT;
-
 								CMonitorObjectMng::Instance()->UpdateZZJEPOS(mo + "." + mp, DAOCHA_POSITION::MP_INVERT);
-
-								JudgeAlarm(pService, pConvertResistOverLimitInfo, it.time, it.fluctuation_val, posi, it.bUpOrDown, mo, mp, pMompInfo->zzjno);
+								JudgeAlarm(pService, pConvertResistOverLimitInfo, it.time, it.fluctuation_val, posi, mo, mp, pMompInfo->zzjno);
 							}
-							else
-							{
-								CResistAlarmMng::InsertToDBByMove(mo, mp, it.time, it.tmStart, it.tmEnd, it.val, it.fluctuation_val, i,
-									(uint8_t)eDaoChaPosi::DCP_INVERT2FIX, (uint8_t)ePowerName::PN_MOVE, fmt::format("{}:{}", pMompInfo->in_name, it.fluctuation_val));
-								posi = eDaoChaPosi::DCP_INVERT2FIX;
 
-								CMonitorObjectMng::Instance()->UpdateZZJEPOS(mo + "." + mp, DAOCHA_POSITION::MP_FIX);
-
-								JudgeAlarm(pService, pConvertResistOverLimitInfo, it.time, it.fluctuation_val, posi, it.bUpOrDown, mo, mp, pMompInfo->zzjno);
-							}
 						}
-						else
+						else if(posi == eDaoChaPosi::DCP_INVERT2FIX)
 						{
-							if (pMompInfo->out_name.find("定扳反") != -1)
-							{
-								CResistAlarmMng::InsertToDBByMove(mo, mp, it.time, it.tmStart, it.tmEnd, it.val, it.fluctuation_val, i,
-									(uint8_t)eDaoChaPosi::DCP_FIX2INVERT, (uint8_t)ePowerName::PN_MOVE, fmt::format("{}:{}", pMompInfo->out_name, it.fluctuation_val));
-								posi = eDaoChaPosi::DCP_FIX2INVERT;
-
-								CMonitorObjectMng::Instance()->UpdateZZJEPOS(mo + "." + mp, DAOCHA_POSITION::MP_INVERT);
-
-								JudgeAlarm(pService, pConvertResistOverLimitInfo, it.time, it.fluctuation_val, posi, it.bUpOrDown, mo, mp, pMompInfo->zzjno);
-							}
-							else
-							{
 								CResistAlarmMng::InsertToDBByMove(mo, mp, it.time, it.tmStart, it.tmEnd, it.val, it.fluctuation_val, i,
 									(uint8_t)eDaoChaPosi::DCP_INVERT2FIX, (uint8_t)ePowerName::PN_MOVE, fmt::format("{}:{}", pMompInfo->out_name, it.fluctuation_val));
 								posi = eDaoChaPosi::DCP_INVERT2FIX;
-
 								CMonitorObjectMng::Instance()->UpdateZZJEPOS(mo + "." + mp, DAOCHA_POSITION::MP_FIX);
-
-								JudgeAlarm(pService, pConvertResistOverLimitInfo, it.time, it.fluctuation_val, posi, it.bUpOrDown, mo, mp, pMompInfo->zzjno);
-							}
+								JudgeAlarm(pService, pConvertResistOverLimitInfo, it.time, it.fluctuation_val, posi, mo, mp, pMompInfo->zzjno);
 						}
 
 						SPDLOG_INFO("扳动判断数据{}.{} 315 上送", mo, mp);
@@ -3834,22 +3808,15 @@ void CResistAlarmMng::ThreadProcMoveFromDB(DWORD_PTR param)
 				   //更新状态
 				   CMonitorObjectMng::Instance()->UpdateZZJEPOS(string(mo) + "." + mp, DAOCHA_POSITION::MP_INVERT);
 				   SPDLOG_INFO("[MOVE]{}:{} 更新到反位", mo, mp);
-
-				   if (pMompInfo->out_name.find("定扳反") != -1)
-						JudgeAlarm(pService, pConvertResistOverLimitInfo, show_time_t, show_val, ePosi, eUpOrDownInfo::UOD_DOWN, mo, mp, pMompInfo->zzjno);
-				   else if (pMompInfo->in_name.find("定扳反") != -1)
-					   JudgeAlarm(pService, pConvertResistOverLimitInfo, show_time_t, show_val, ePosi, eUpOrDownInfo::UOD_UP, mo, mp, pMompInfo->zzjno);
+				   JudgeAlarm(pService, pConvertResistOverLimitInfo, show_time_t, show_val, ePosi,  mo, mp, pMompInfo->zzjno);
+				  
 			   }
 			   else if (ePosi == eDaoChaPosi::DCP_INVERT2FIX)
 			   {
 				   //更新状态
 				   CMonitorObjectMng::Instance()->UpdateZZJEPOS(string(mo) + "." + mp, DAOCHA_POSITION::MP_FIX);
 				   SPDLOG_INFO("[MOVE]{}:{} 更新到定位", mo, mp);
-
-				   if (pMompInfo->out_name.find("反扳定") != -1)
-					   JudgeAlarm(pService, pConvertResistOverLimitInfo, show_time_t, show_val, ePosi, eUpOrDownInfo::UOD_DOWN, mo, mp, pMompInfo->zzjno);
-				   else if (pMompInfo->in_name.find("反扳定") != -1)
-					   JudgeAlarm(pService, pConvertResistOverLimitInfo, show_time_t, show_val, ePosi, eUpOrDownInfo::UOD_UP, mo, mp, pMompInfo->zzjno);
+				   JudgeAlarm(pService, pConvertResistOverLimitInfo, show_time_t, show_val, ePosi, mo, mp, pMompInfo->zzjno);
 			   }
 
 				//TODO发送315曲线
@@ -4552,7 +4519,7 @@ BOOL CResistAlarmMng::LoadUnAck()
 	//只加载31天内非天窗期的报警
 	CString sql = "  SELECT [ID],a.[mo],a.[mp],[no],[type],[occur_time],[level],[desc],[suggest],[val],[event_id],[rel_id],[posi],[loworhigh],[referval],[recovery_time],[sunroof],zzjno,[ack_result] FROM [rm_alarm] as A \
 		LEFT JOIN(SELECT mo, mp, zzjno FROM rm_map) AS B ON a.mo = b.mo and a.mp = b.mp \
-		WHERE DATEADD(dd, -31, getdate()) < occur_time  and sunroof =  0 and (ack_result = 0 OR [recovery_time] < '2000') \
+		WHERE DATEADD(dd, -31, getdate()) < occur_time  and sunroof =  0 and type !=32  and (ack_result = 0 OR [recovery_time] < '2000') \
 		ORDER BY occur_time ASC; ";
 	COdbcStatement stmt;
 	if (!CDBConnectPool::Instance()->DBQuery(stmt, sql))

+ 1 - 1
4.Data/ResistAlarm.h

@@ -214,7 +214,7 @@ private:
 		time_t show_time, int show_val, eSuoBiPosi posi, string mo, string mp, uint32_t zzjno);
 
 	static void JudgeAlarm(CResistAlarmMng* pService, CONVERT_RESIST_OVER_LIMIT* pConvertResistOverLimitInfo,
-		time_t show_time, int show_val, eDaoChaPosi posi, eUpOrDownInfo eUpOrDown, string mo, string mp, uint32_t zzjno);
+		time_t show_time, int show_val, eDaoChaPosi posi, string mo, string mp, uint32_t zzjno);
 	//²»µ÷ÓÃ
 	static void JudgeAlarm2(CResistAlarmMng* pService, RETENSION_FORCE_DROP* pRetensionForceDropInfo,
 		time_t show_time, int show_val, eSuoBiPosi posi, string mo, string mp, uint32_t zzjno);

+ 1 - 1
4.Data/SkylightMng.cpp

@@ -44,7 +44,7 @@ BOOL CSkylightMng::IsSkylight(CTime* ptmTime)
 {
 	if (ptmTime)
 	{
-		if (ptmTime->GetHour() < 4)
+		if (ptmTime->GetHour() < 4 || ptmTime->GetHour()>=23)
 			return TRUE;
 	}
 	

BIN
4.Data/TimeSyncServer.rc