升级 ,以及修复一些BUG

This commit is contained in:
2026-01-23 09:01:50 +08:00
parent f038ca3260
commit 3a5ace4817
20 changed files with 1218 additions and 25 deletions

View File

@@ -1230,9 +1230,10 @@ namespace RCUHost.Implement
string CODE = context111.SystemHeader.Value.HostNumber.ToHotelCode().ToString();
string hotelCode = CODE;
string EndPoint = context111.RemoteEndPoint.ToString();
//if (cmdType != 0x01)
if (cmdType != 0x01 && cmdType != 0xb1)
//if (!(cmdType==0x01||cmdType==0xb1) )
//在线状态 不排队 注册0x01
if (true)
//if (true)
{
#region
string EndPointStr = context111.RemoteEndPoint.ToString();
@@ -1833,6 +1834,10 @@ namespace RCUHost.Implement
string HostID = CSRedisCacheHelper.HMGet<string>(5, CacheKey.HostId_HostNumber, HostNNN)[0];
string RoomNUMBER = CSRedisCacheHelper.HMGet<string>(5, CacheKey.RoomNumber_HostNumber, HostNNN)[0];
if (string.IsNullOrEmpty(RoomNUMBER))
{
return;
}
List<DingShiReportDate> DeviceList = new List<DingShiReportDate>();
@@ -2051,7 +2056,7 @@ namespace RCUHost.Implement
ccc.UpdateTime = DateTime.Now;
ccc.Modal = new RoomTypeModalCache() { };
ccc.AirConditionData = new AirConditionData();
CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey,ccc);
CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, ccc);
}
}

View File

@@ -399,13 +399,20 @@ namespace RCUHost.Implement
var hostModal = CSRedisCacheHelper.Get_Partition<HostModal_Cache>(KKey);
if (hostModal != null)
{
if (hostModal.AirConditionData==null)
if (hostModal.AirConditionData == null)
{
hostModal.AirConditionData = new AirConditionData();
hostModal.AirConditionData = new AirConditionData();
}
if (hostModal.Modal==null)
if (hostModal.Modal == null)
{
hostModal.Modal = new RoomTypeModalCache() { ModalAddress=device.Value.Address};
hostModal.Modal = new RoomTypeModalCache() { ModalAddress = device.Value.Address };
}
if (hostModal.Modal!=null)
{
if (string.IsNullOrEmpty(hostModal.Modal.ModalAddress))
{
hostModal.Modal.ModalAddress = device.Value.Address;
}
}
}
else
@@ -548,12 +555,12 @@ namespace RCUHost.Implement
{
TCLCommon.SendData(hotelcode, roomnum, TCLcuid, skillid, "SLEEP");
}
if (hostModal.Modal.Name.Equals("睡眠息屏"))
{
}
//if (hostModal.Modal.Name.Equals("睡眠息屏"))
//{
//}
//呼叫前台
if (hostModal.Modal.ModalAddress.Equals("004000023"))
if (hostModal.Modal != null && hostModal.Modal.ModalAddress.Equals("004000023"))
{
TCLCommon.SendData(hotelcode, roomnum, TCLcuid, skillid, "SIP");
}
@@ -606,7 +613,7 @@ namespace RCUHost.Implement
else//设备关
{
//清理
if (hostModal.Modal.ModalAddress.Equals("004000003"))
if (hostModal.Modal != null && hostModal.Modal.ModalAddress.Equals("004000003"))
{
//通过LocationUUID确定订单号
string OrderUUID = CSRedisCacheHelper.Get_Partition<string>(CacheKey.FCSRoom_Mapping_Order + "_" + UUID, 3);
@@ -622,6 +629,8 @@ namespace RCUHost.Implement
catch (Exception ex)
{
logger.Error("取电数据有异常: " + host.SysHotel.Code + "," + host.RoomNumber + " Msg:" + ex.Message);
logger.Error(Newtonsoft.Json.JsonConvert.SerializeObject(hostModal));
logger.Error(ex.StackTrace);
}
CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, hostModal);
#endregion

View File

@@ -699,7 +699,7 @@ namespace RCUHost.Implement
}
catch (Exception ex)
{
logger.Error("取电数据有异常: " + host.SysHotel.Code + "," + host.RoomNumber + " Msg:" + ex.Message);
logger.Error("取电数据有异常: " + host.SysHotel.Code + "," + host.RoomNumber + " Msg:" + ex.Message + ex.StackTrace);
}
CSRedisCacheHelper.Set_Partition<HostModal_Cache>(KKey, hostModal);
#endregion

View File

@@ -97,13 +97,13 @@ namespace RCUHost.Implement
Upgrade_Status = "升级失败";
break;
}
BarData bbb = new BarData();
bbb.HostID = host.ID;
bbb.Upgrade_status = Upgrade_Status;
bbb.Upgrade_DateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
UploadCurrentVersionReceiver.UP_Grade_Json(host, bbb);
host.UpgradeTime = DateTime.Now;
HostRepository.Update(host);
}

View File

@@ -48,8 +48,8 @@ namespace RCUHost.Implement
//添加升级功能标志,告诉缓存,不能被拦截
foreach (var item in hosts)
{
string Key="Upgrade_UpdateSQL_"+ item.HostNumber;
MemoryCacheHelper.Set(Key,item.ID,DateTimeOffset.Now.AddMinutes(3));
string Key = "Upgrade_UpdateSQL_" + item.HostNumber;
MemoryCacheHelper.Set(Key, item.ID, DateTimeOffset.Now.AddMinutes(3));
}
FileInfo fileInfo = new FileInfo(updateFile);
@@ -85,7 +85,7 @@ namespace RCUHost.Implement
{
int startIndex = StructConverter.SizeOf(context1.SystemHeader);
UpdateHostPacketReply? reply1 = DecodeUpdateHostPacketReply(context1.Data, startIndex);
var TTT = new Tuple<ReceiverContext, UpdateHostPacketReply?>(context1,reply1);
var TTT = new Tuple<ReceiverContext, UpdateHostPacketReply?>(context1, reply1);
//logger.Error(string.Format("收到tftp升级回复命令{0}:{1}{2},解析结果:{3}", context.RemoteEndPoint.Address.ToString(), context.RemoteEndPoint.Port, Tools.ByteToString(context.Data), reply.HasValue));
if (reply1.HasValue)
{
@@ -95,8 +95,20 @@ namespace RCUHost.Implement
var context = NNN.Item1;
var reply = NNN.Item2;
var updateHostWorker = this.updateHostList.FirstOrDefault(r => r.Host.HostNumber == context.SystemHeader.Value.HostNumber.ToString());
//logger.Error(string.Format("酒店{0}客房{1}升级({2}),状态{3}", updateHostWorker.Host.SysHotel.Code, updateHostWorker.Host.RoomNumber, updateHostWorker.RemoteFile, reply.Value.Status));
SaveSystemLog(30, "升级主机", string.Format("收到主机({0})升级回复命令,状态:{1}", updateHostWorker.Host.RoomNumber, reply.Value.Status), "收到命令", "RCU", context.RemoteEndPoint.Address.ToString(), updateHostWorker.Host.SysHotel.ID);
var data= Tools.ByteToString( context1.Data);
logger.Error(string.Format("主机{0}升级返回:{1}", context.SystemHeader.Value.HostNumber.ToString(),data));
if (updateHostWorker == null)
{
return;
}
try
{
SaveSystemLog(30, "升级主机", string.Format("收到主机({0})升级回复命令,状态:{1}", updateHostWorker.Host.RoomNumber, reply.Value.Status), "收到命令", "RCU", context.RemoteEndPoint.Address.ToString(), updateHostWorker.Host.SysHotel.ID);
}
catch (Exception)
{
}
if (updateHostWorker.HostUpdate == null)
{
BarData bbb = new BarData();
@@ -114,6 +126,18 @@ namespace RCUHost.Implement
HostRepository.SetUpgradeStatus(updateHostWorker.Host, 1);//升级完成
bbb.Upgrade_status = "升级完成";
break;
case UpdateHostPacketReply.BlockNumError:
bbb.Upgrade_status = "块错误";
HostRepository.SetUpgradeStatus(updateHostWorker.Host, 2);//升级失败
break;
case UpdateHostPacketReply.FileTypeError:
bbb.Upgrade_status = "文件错误";
HostRepository.SetUpgradeStatus(updateHostWorker.Host, 2);//升级失败
break;
case UpdateHostPacketReply.FileMD5Error:
bbb.Upgrade_status = "文件MD5校验错误";
HostRepository.SetUpgradeStatus(updateHostWorker.Host, 2);//升级失败
break;
default:
HostRepository.SetUpgradeStatus(updateHostWorker.Host, 2);//升级失败
bbb.Upgrade_status = "升级失败";
@@ -147,6 +171,21 @@ namespace RCUHost.Implement
hostUpdateStatus.Status = 1;//升级完成
updateHostList.Remove(updateHostWorker);
break;
case UpdateHostPacketReply.BlockNumError:
bbb.Upgrade_status = "块错误";
hostUpdateStatus.Status = 2;//升级失败
updateHostList.Remove(updateHostWorker);
break;
case UpdateHostPacketReply.FileTypeError:
bbb.Upgrade_status = "文件错误";
hostUpdateStatus.Status = 2;//升级失败
updateHostList.Remove(updateHostWorker);
break;
case UpdateHostPacketReply.FileMD5Error:
bbb.Upgrade_status = "文件MD5校验错误";
hostUpdateStatus.Status = 2;//升级失败
updateHostList.Remove(updateHostWorker);
break;
default:
bbb.Upgrade_status = "升级失败";
hostUpdateStatus.Status = 2;//升级失败
@@ -158,7 +197,7 @@ namespace RCUHost.Implement
hostUpdateStatus.UpdatedTime = DateTime.Now;
HostUpdateStatusRepository.SaveOrUpdate(hostUpdateStatus);
}
},TTT);
}, TTT);
}
}
public override CommandType CommandType
@@ -175,6 +214,7 @@ namespace RCUHost.Implement
/// <param name="updateFileMd5">升级文件MD5值</param>
private void SendUpdateRequest(Host host, string updateFileMd5, ushort blockNum, byte fileType, string fileName)
{
logger.Error("主机升级:"+host.SysHotel.Code+":"+host.RoomNumber);
byte[] data = CreateUpdateRequestPacket(updateFileMd5, blockNum, fileType, fileName);
Send(data, host.HostNumber, host.MAC);// host.IP, host.Port);
}

View File

@@ -60,6 +60,10 @@ namespace RCUHost.Implement
{
try
{
if (string.IsNullOrEmpty(bbb.Upgrade_status))
{
return;
}
string id = host.ID.ToString();
string Key = CacheKey.UPGradeProgressBar + "_" + id;
var DDD = CSRedisCacheHelper.Get<BarData>(Key);