2025-12-24 19:56:20 +08:00
2 changed files with 286 additions and 0 deletions

View File

@@ -563,6 +563,109 @@ namespace UI.Controllers
}
}
/// <summary>
/// 设备信息类
/// </summary>
public class EquipmentInfo
{
public string EquipmentStatus { get; set; } // 设备状态
public string FaultDescription { get; set; } // 故障描述
public string DevName { get; set; } // 设备名称
}
/// <summary>
/// 写入房间设备访问日志
/// </summary>
/// <param name="HotelID">酒店ID</param>
/// <param name="RoomNumber">房号</param>
/// <param name="EquipmentList">设备信息列表</param>
/// <returns>返回操作结果</returns>
[HttpPost]
public ActionResult WriteRoomVisitLog(string HotelID, string RoomNumber, List<EquipmentInfo> EquipmentList)
{
try
{
if (string.IsNullOrWhiteSpace(HotelID) || string.IsNullOrWhiteSpace(RoomNumber))
{
return Json(new { Status = 0, Message = "酒店ID和房号不能为空" }, JsonRequestBehavior.AllowGet);
}
if (EquipmentList == null || EquipmentList.Count == 0)
{
return Json(new { Status = 0, Message = "设备信息列表不能为空" }, JsonRequestBehavior.AllowGet);
}
// 创建日志列表
var logList = new List<object>();
string updateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
foreach (var equipment in EquipmentList)
{
logList.Add(new {
HotelID = HotelID,
RoomNumber = RoomNumber,
EquipmentStatus = equipment.EquipmentStatus,
FaultDescription = equipment.FaultDescription,
UpdateDate = updateDate,
DevName = equipment.DevName
});
}
// 批量写入数据库
SqlSugarBase.RcuDb.Ado.ExecuteCommand("INSERT INTO tbl_roomvisitlogform (HotelID, RoomNumber, EquipmentStatus, FaultDescription, UpdateDate, DevName) VALUES (@HotelID, @RoomNumber, @EquipmentStatus, @FaultDescription, @UpdateDate, @DevName)", logList);
return Json(new { Status = 1, Message = "写入成功", Count = logList.Count }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
logger.Error(ex, "WriteRoomVisitLog error");
return Json(new { Status = -1, Message = "写入失败", Detail = ex.Message }, JsonRequestBehavior.AllowGet);
}
}
/// <summary>
/// 查询房间设备访问日志
/// </summary>
/// <param name="HotelID">酒店ID</param>
/// <param name="RoomNumber">房号</param>
/// <param name="StartTime">开始时间格式yyyy-MM-dd HH:mm:ss</param>
/// <param name="EndTime">结束时间格式yyyy-MM-dd HH:mm:ss</param>
/// <returns>返回查询结果</returns>
[HttpPost]
public ActionResult QueryRoomVisitLog(string HotelID, string RoomNumber, string StartTime = null, string EndTime = null)
{
try
{
if (string.IsNullOrWhiteSpace(HotelID) || string.IsNullOrWhiteSpace(RoomNumber))
{
return Json(new { Status = 0, Message = "酒店ID和房号不能为空" }, JsonRequestBehavior.AllowGet);
}
// 构建查询条件
string whereClause = "WHERE HotelID = @HotelID AND RoomNumber = @RoomNumber";
var parameters = new { HotelID, RoomNumber };
// 如果提供了开始时间和结束时间,则添加时间范围条件
if (!string.IsNullOrWhiteSpace(StartTime) && !string.IsNullOrWhiteSpace(EndTime))
{
whereClause += " AND UpdateDate BETWEEN @StartTime AND @EndTime";
parameters = new { HotelID, RoomNumber, StartTime, EndTime };
}
// 构建完整的SQL查询语句
string sql = $"SELECT ID, HotelID, RoomNumber, EquipmentStatus, FaultDescription, UpdateDate, DevName FROM tbl_roomvisitlogform {whereClause} ORDER BY UpdateDate DESC";
// 执行查询
var result = SqlSugarBase.RcuDb.Ado.SqlQuery<dynamic>(sql, parameters);
return Json(new { Status = 1, Message = "查询成功", Data = result }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
logger.Error(ex, "QueryRoomVisitLog error");
return Json(new { Status = -1, Message = "查询失败", Detail = ex.Message }, JsonRequestBehavior.AllowGet);
}
}
}
public class RCUDBData