修改新版协议主机 协议触发的机制,新增 缓存机制
This commit is contained in:
@@ -402,26 +402,6 @@ namespace RCUHost.Implement
|
||||
|
||||
}
|
||||
|
||||
//int hostid = host.ID;
|
||||
//StringBuilder sb = new StringBuilder();
|
||||
//sb.Append(CacheKey.CarbonVIP_Prefix);
|
||||
//sb.Append("_");
|
||||
//sb.Append(hostid.ToString());
|
||||
//string Key = sb.ToString();
|
||||
//CSRedisCacheHelper.Set<string>(Key, current_status);
|
||||
//var data = CSRedisCacheHelper.Get<string>(Key);
|
||||
//if (!string.IsNullOrEmpty(data))
|
||||
//{
|
||||
// if (!current_status.Equals(data))
|
||||
// {
|
||||
// CarbonDataSend(host, hhhg1);
|
||||
// }
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// CarbonDataSend(host, hhhg1);
|
||||
//}
|
||||
|
||||
CarbonDataSend(host, hhhg1);
|
||||
var nfc = CarbonScene_SetRepository.GetDataBy(host.ID);
|
||||
|
||||
@@ -465,8 +445,6 @@ namespace RCUHost.Implement
|
||||
}
|
||||
|
||||
string KKey = CacheKey.HostModalStatus_Prefix + "_" + host.ID + "_" + device.Value.Address;
|
||||
|
||||
|
||||
var hostModal = CSRedisCacheHelper.Get_Partition<HostModal_Cache>(KKey);
|
||||
if (hostModal != null)
|
||||
{
|
||||
@@ -475,21 +453,33 @@ namespace RCUHost.Implement
|
||||
else
|
||||
{
|
||||
//这里有点问题,如果一个Model删除了,又更新了,那它的ID就变了。但是内存中记录的没变,所以这里会出问题
|
||||
var hostModal_old = HostModalRepository.Get(host.ID, device.Value.Address);
|
||||
//var hostModal_old = HostModalRepository.Get(host.ID, device.Value.Address);
|
||||
|
||||
string HostID_O = CSRedisCacheHelper.HMGet<string>(5, CacheKey.HostId_HostNumber, HOSTNUMBER)[0];
|
||||
if (string.IsNullOrEmpty(HostID_O))
|
||||
{
|
||||
return;
|
||||
}
|
||||
string[] NNN111 = HostID_O.Split('#');
|
||||
string HostID = NNN111[0];
|
||||
string RoomTypeID = NNN111[1];
|
||||
int room_type_id = int.Parse(RoomTypeID);
|
||||
var hostModal_old= QuanJuVar.RoomTypeDeviceModal.FirstOrDefault(A=>A.RoomType.ID==room_type_id&&A.ModalAddress.Equals(device.Value.Address));
|
||||
|
||||
if (hostModal_old != null)
|
||||
{
|
||||
HostModal_Cache c = new HostModal_Cache();
|
||||
c.HostID = hostModal_old.HostID;
|
||||
c.ModalType = hostModal_old.Modal.Type;
|
||||
c.HostID = host.ID;
|
||||
c.ModalType = hostModal_old.Type;
|
||||
c.AirConditionData = new AirConditionData();
|
||||
c.Modal = new RoomTypeModalCache()
|
||||
{
|
||||
RoomTypeID = hostModal_old.Modal.RoomType.ID,
|
||||
ID = hostModal_old.Modal.ID,
|
||||
Name = hostModal_old.Modal.Name,
|
||||
ModalAddress = hostModal_old.Modal.ModalAddress,
|
||||
ActiveIndicator = hostModal_old.Modal.ActiveIndicator,
|
||||
Sort = hostModal_old.Modal.Sort
|
||||
RoomTypeID = hostModal_old.RoomType.ID,
|
||||
ID = hostModal_old.ID,
|
||||
Name = hostModal_old.Name,
|
||||
ModalAddress = hostModal_old.ModalAddress,
|
||||
ActiveIndicator = hostModal_old.ActiveIndicator,
|
||||
Sort = hostModal_old.Sort
|
||||
};
|
||||
hostModal = c;
|
||||
}
|
||||
@@ -694,6 +684,7 @@ namespace RCUHost.Implement
|
||||
}
|
||||
else//设备关
|
||||
{
|
||||
#region 设备关
|
||||
if (hostModal.Status != status)//设备有变化时才去更改状态,窗帘6是停,其他是关
|
||||
{
|
||||
flag = 0;
|
||||
@@ -712,6 +703,7 @@ namespace RCUHost.Implement
|
||||
|
||||
hostModal.Status = status;
|
||||
hostModal.Brightness = 0;
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -721,7 +713,7 @@ namespace RCUHost.Implement
|
||||
CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, hostModal);
|
||||
#endregion
|
||||
|
||||
#region 取电,门磁
|
||||
#region 取电门磁,触发特殊动作
|
||||
switch (hostModal.Modal.ModalAddress)
|
||||
{
|
||||
case "004000013"://门磁
|
||||
@@ -748,13 +740,13 @@ namespace RCUHost.Implement
|
||||
case "004000001"://取电
|
||||
#region 取电开关
|
||||
//拨卡操作
|
||||
if (flag == 0 && host.RoomCard != null)
|
||||
{
|
||||
//if (flag == 0 && host.RoomCard != null)
|
||||
//{
|
||||
//host.RoomCard = null;
|
||||
//HostRepository.SetRoomCard(host, null);//拔卡操作
|
||||
}
|
||||
else if (flag == 1 && host.RoomCard == null)
|
||||
{
|
||||
//}
|
||||
//else if (flag == 1 && host.RoomCard == null)
|
||||
//{
|
||||
|
||||
//CSRedisCacheHelper.HMSet(CacheKey.TakeCardOnLine,host.SysHotel.Code+"###"+ host.RoomNumber);
|
||||
//RoomCardType roomCardType = null;
|
||||
@@ -801,7 +793,7 @@ namespace RCUHost.Implement
|
||||
//}
|
||||
//host.RoomCard = roomCard;
|
||||
//HostRepository.SetRoomCard(host, roomCard);//插卡操作
|
||||
}
|
||||
//}
|
||||
|
||||
#region 语音机器人
|
||||
if (flag != 2)//取电或断电时处理
|
||||
@@ -1699,138 +1691,143 @@ namespace RCUHost.Implement
|
||||
|
||||
//只有服务信息才会入库
|
||||
//bool isonly_serviceinfo = true;
|
||||
bool bbbaaa = hostModal.Modal.Name.Contains("红外") || hostModal.Modal.Name.Contains("infrared") || hostModal.Modal.Name.Contains("雷达") || hostModal.Modal.Name.Contains("radar");
|
||||
if (hostModal.ModalType == DeviceType.ServiceInfo && bbbaaa == false)
|
||||
if (hostModal.ModalType == DeviceType.ServiceInfo)
|
||||
{
|
||||
|
||||
HostModal FinallyData = new HostModal();
|
||||
FinallyData.HostID = hostModal.HostID;
|
||||
FinallyData.Status = hostModal.Status;
|
||||
FinallyData.Brightness = hostModal.Brightness;
|
||||
FinallyData.CurrentTemp = hostModal.AirConditionData.CurrentTemp;
|
||||
FinallyData.FanSpeed = hostModal.AirConditionData.FanSpeed;
|
||||
FinallyData.Mode = hostModal.AirConditionData.Mode;
|
||||
FinallyData.SettingTemp = hostModal.AirConditionData.SettingTemp;
|
||||
FinallyData.UpdateTime = hostModal.UpdateTime;
|
||||
FinallyData.Valve = hostModal.AirConditionData.Valve;
|
||||
|
||||
FinallyData.Modal = new RoomTypeModal()
|
||||
if (!string.IsNullOrEmpty(hostModal.Modal.Name))
|
||||
{
|
||||
ID = hostModal.Modal.ID,
|
||||
Name = hostModal.Modal.Name,
|
||||
ModalAddress = hostModal.Modal.ModalAddress,
|
||||
ActiveIndicator = hostModal.Modal.ActiveIndicator,
|
||||
Sort = hostModal.Modal.Sort
|
||||
};
|
||||
FinallyData.Modal.RoomType = new RoomType()
|
||||
{
|
||||
ID = hostModal.Modal.RoomTypeID
|
||||
};
|
||||
FinallyData.Modal.ID = hostModal.Modal.ID;
|
||||
FinallyData.UpdateTime = now;
|
||||
|
||||
#region 有可能有异常
|
||||
try
|
||||
{
|
||||
HostModalRecord hostModalRecord;
|
||||
switch (flag)
|
||||
bool bbbaaa = hostModal.Modal.Name.Contains("红外") || hostModal.Modal.Name.Contains("infrared") || hostModal.Modal.Name.Contains("雷达") || hostModal.Modal.Name.Contains("radar");
|
||||
if (bbbaaa == false)
|
||||
{
|
||||
case 0://0关闭设备
|
||||
if (hostModal.UpdateTime.HasValue)
|
||||
{
|
||||
hostModal.Time += Convert.ToInt32((now - hostModal.UpdateTime.Value).TotalMinutes);
|
||||
}
|
||||
hostModal.UpdateTime = now;
|
||||
FinallyData.UpdateTime = now;
|
||||
//阿宝添加内存
|
||||
try
|
||||
{
|
||||
HostModalRepository.Update(FinallyData);//sbSQL.ToString());
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
logger.Error(FinallyData.HostID + ":" + host.SysHotel.Code + " " + hostModal.Modal.ModalAddress);
|
||||
}
|
||||
//CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, hostModal);
|
||||
if (hostModal.Modal.ActiveIndicator)//处理回路状态记录,只记录启用的回路 add by wuzhuihui 20190918
|
||||
{
|
||||
hostModalRecord = new HostModalRecord();
|
||||
hostModalRecord.HostID = host.ID;
|
||||
hostModalRecord.RoomNumber = host.RoomNumber;
|
||||
hostModalRecord.RoomTypeID = host.RoomType.ID;
|
||||
hostModalRecord.RoomTypeModalID = hostModal.Modal.ID;
|
||||
hostModalRecord.ModalAddress = hostModal.Modal.ModalAddress;
|
||||
hostModalRecord.StartTime = now;
|
||||
hostModalRecord.Status = 2;
|
||||
try
|
||||
{
|
||||
HostModalRecordRepository.Save(hostModalRecord);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
HostModal FinallyData = new HostModal();
|
||||
FinallyData.HostID = hostModal.HostID;
|
||||
FinallyData.Status = hostModal.Status;
|
||||
FinallyData.Brightness = hostModal.Brightness;
|
||||
FinallyData.CurrentTemp = hostModal.AirConditionData.CurrentTemp;
|
||||
FinallyData.FanSpeed = hostModal.AirConditionData.FanSpeed;
|
||||
FinallyData.Mode = hostModal.AirConditionData.Mode;
|
||||
FinallyData.SettingTemp = hostModal.AirConditionData.SettingTemp;
|
||||
FinallyData.UpdateTime = hostModal.UpdateTime;
|
||||
FinallyData.Valve = hostModal.AirConditionData.Valve;
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1://1打开设备且当前设备处于关闭状态
|
||||
hostModal.UpdateTime = now;
|
||||
FinallyData.UpdateTime = now;
|
||||
//阿宝这里修改
|
||||
try
|
||||
{
|
||||
HostModalRepository.Update(FinallyData);//sbSQL.ToString());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error(FinallyData.HostID + ":" + host.SysHotel.Code + " " + hostModal.Modal.ModalAddress);
|
||||
}
|
||||
//CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, hostModal);
|
||||
if (hostModal.Modal.ActiveIndicator)//处理回路状态记录,只记录启用的回路 add by wuzhuihui 20190918
|
||||
{
|
||||
hostModalRecord = new HostModalRecord();
|
||||
hostModalRecord.HostID = host.ID;
|
||||
hostModalRecord.RoomNumber = host.RoomNumber;
|
||||
hostModalRecord.RoomTypeID = host.RoomType.ID;
|
||||
hostModalRecord.RoomTypeModalID = hostModal.Modal.ID;
|
||||
hostModalRecord.ModalAddress = hostModal.Modal.ModalAddress;
|
||||
hostModalRecord.StartTime = now;
|
||||
hostModalRecord.Status = 1;
|
||||
try
|
||||
{
|
||||
HostModalRecordRepository.Save(hostModalRecord);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
FinallyData.Modal = new RoomTypeModal()
|
||||
{
|
||||
ID = hostModal.Modal.ID,
|
||||
Name = hostModal.Modal.Name,
|
||||
ModalAddress = hostModal.Modal.ModalAddress,
|
||||
ActiveIndicator = hostModal.Modal.ActiveIndicator,
|
||||
Sort = hostModal.Modal.Sort
|
||||
};
|
||||
FinallyData.Modal.RoomType = new RoomType()
|
||||
{
|
||||
ID = hostModal.Modal.RoomTypeID
|
||||
};
|
||||
FinallyData.Modal.ID = hostModal.Modal.ID;
|
||||
FinallyData.UpdateTime = now;
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2://2打开设备且当前设备处于打开状态
|
||||
hostModal.UpdateTime = now;
|
||||
FinallyData.UpdateTime = now;
|
||||
try
|
||||
#region 有可能有异常
|
||||
try
|
||||
{
|
||||
HostModalRecord hostModalRecord;
|
||||
switch (flag)
|
||||
{
|
||||
HostModalRepository.Update(FinallyData);
|
||||
case 0://0关闭设备
|
||||
if (hostModal.UpdateTime.HasValue)
|
||||
{
|
||||
hostModal.Time += Convert.ToInt32((now - hostModal.UpdateTime.Value).TotalMinutes);
|
||||
}
|
||||
hostModal.UpdateTime = now;
|
||||
FinallyData.UpdateTime = now;
|
||||
//阿宝添加内存
|
||||
try
|
||||
{
|
||||
HostModalRepository.Update(FinallyData);//sbSQL.ToString());
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
logger.Error(FinallyData.HostID + ":" + host.SysHotel.Code + " " + hostModal.Modal.ModalAddress);
|
||||
}
|
||||
//CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, hostModal);
|
||||
if (hostModal.Modal.ActiveIndicator)//处理回路状态记录,只记录启用的回路 add by wuzhuihui 20190918
|
||||
{
|
||||
hostModalRecord = new HostModalRecord();
|
||||
hostModalRecord.HostID = host.ID;
|
||||
hostModalRecord.RoomNumber = host.RoomNumber;
|
||||
hostModalRecord.RoomTypeID = host.RoomType.ID;
|
||||
hostModalRecord.RoomTypeModalID = hostModal.Modal.ID;
|
||||
hostModalRecord.ModalAddress = hostModal.Modal.ModalAddress;
|
||||
hostModalRecord.StartTime = now;
|
||||
hostModalRecord.Status = 2;
|
||||
try
|
||||
{
|
||||
HostModalRecordRepository.Save(hostModalRecord);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1://1打开设备且当前设备处于关闭状态
|
||||
hostModal.UpdateTime = now;
|
||||
FinallyData.UpdateTime = now;
|
||||
//阿宝这里修改
|
||||
try
|
||||
{
|
||||
HostModalRepository.Update(FinallyData);//sbSQL.ToString());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error(FinallyData.HostID + ":" + host.SysHotel.Code + " " + hostModal.Modal.ModalAddress);
|
||||
}
|
||||
//CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, hostModal);
|
||||
if (hostModal.Modal.ActiveIndicator)//处理回路状态记录,只记录启用的回路 add by wuzhuihui 20190918
|
||||
{
|
||||
hostModalRecord = new HostModalRecord();
|
||||
hostModalRecord.HostID = host.ID;
|
||||
hostModalRecord.RoomNumber = host.RoomNumber;
|
||||
hostModalRecord.RoomTypeID = host.RoomType.ID;
|
||||
hostModalRecord.RoomTypeModalID = hostModal.Modal.ID;
|
||||
hostModalRecord.ModalAddress = hostModal.Modal.ModalAddress;
|
||||
hostModalRecord.StartTime = now;
|
||||
hostModalRecord.Status = 1;
|
||||
try
|
||||
{
|
||||
HostModalRecordRepository.Save(hostModalRecord);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2://2打开设备且当前设备处于打开状态
|
||||
hostModal.UpdateTime = now;
|
||||
FinallyData.UpdateTime = now;
|
||||
try
|
||||
{
|
||||
HostModalRepository.Update(FinallyData);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error(FinallyData.HostID + ":" + host.SysHotel.Code + " " + hostModal.Modal.ModalAddress);
|
||||
}
|
||||
//CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, hostModal);
|
||||
break;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error(FinallyData.HostID + ":" + host.SysHotel.Code + " " + hostModal.Modal.ModalAddress);
|
||||
}
|
||||
//CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, hostModal);
|
||||
break;
|
||||
|
||||
string StatusKey = "RoomStatus_ServerInfo";
|
||||
RCUHost.RCUHostCommon.tools.LanJieData(StatusKey, HOTEL_CODE);
|
||||
CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, hostModal);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error("数据处理error: " + ex.Message);
|
||||
logger.Error(FinallyData.HostID + ":" + host.SysHotel.Code + " " + hostModal.Modal.ModalAddress);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
string StatusKey = "RoomStatus_ServerInfo";
|
||||
RCUHost.RCUHostCommon.tools.LanJieData(StatusKey, HOTEL_CODE);
|
||||
CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, hostModal);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error("数据处理error: " + ex.Message);
|
||||
logger.Error(FinallyData.HostID + ":" + host.SysHotel.Code + " " + hostModal.Modal.ModalAddress);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user