2025-12-25 10:01:53 +08:00

View File

@@ -573,6 +573,16 @@ namespace UI.Controllers
public string DevName { get; set; } // 设备名称
}
private class RoomVisitLogFormRow
{
public string HotelID { get; set; }
public string RoomNumber { get; set; }
public string EquipmentStatus { get; set; }
public string FaultDescription { get; set; }
public string UpdateDate { get; set; }
public string DevName { get; set; }
}
/// <summary>
/// 写入房间设备访问日志
/// </summary>
@@ -596,25 +606,24 @@ namespace UI.Controllers
}
// 创建日志列表
var logList = new List<object>();
string updateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
foreach (var equipment in EquipmentList)
var logList = EquipmentList.Select(equipment => new RoomVisitLogFormRow
{
logList.Add(new {
HotelID = HotelID,
RoomNumber = RoomNumber,
EquipmentStatus = equipment.EquipmentStatus,
FaultDescription = equipment.FaultDescription,
UpdateDate = updateDate,
DevName = equipment.DevName
});
}
HotelID = HotelID,
RoomNumber = RoomNumber,
EquipmentStatus = equipment.EquipmentStatus,
FaultDescription = equipment.FaultDescription,
UpdateDate = updateDate,
DevName = equipment.DevName
}).ToList();
// 批量写入数据库
SqlSugarBase.RcuDb.Ado.ExecuteCommand("INSERT INTO tbl_roomvisitlogform (HotelID, RoomNumber, EquipmentStatus, FaultDescription, UpdateDate, DevName) VALUES (@HotelID, @RoomNumber, @EquipmentStatus, @FaultDescription, @UpdateDate, @DevName)", logList);
var insertCount = SqlSugarBase.RcuDb.Insertable(logList)
.AS("tbl_roomvisitlogform")
.ExecuteCommand();
return Json(new { Status = 1, Message = "写入成功", Count = logList.Count }, JsonRequestBehavior.AllowGet);
return Json(new { Status = 1, Message = "写入成功", Count = insertCount }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
@@ -643,13 +652,43 @@ namespace UI.Controllers
// 构建查询条件
string whereClause = "WHERE HotelID = @HotelID AND RoomNumber = @RoomNumber";
var parameters = new { HotelID, RoomNumber };
var parameters = new Dictionary<string, object>
{
{ "HotelID", HotelID },
{ "RoomNumber", RoomNumber }
};
DateTime startDateTime = default(DateTime);
DateTime endDateTime = default(DateTime);
bool hasStart = !string.IsNullOrWhiteSpace(StartTime);
bool hasEnd = !string.IsNullOrWhiteSpace(EndTime);
if (hasStart && !DateTime.TryParse(StartTime, out startDateTime))
{
return Json(new { Status = 0, Message = "StartTime 格式错误,应为 yyyy-MM-dd HH:mm:ss" }, JsonRequestBehavior.AllowGet);
}
if (hasEnd && !DateTime.TryParse(EndTime, out endDateTime))
{
return Json(new { Status = 0, Message = "EndTime 格式错误,应为 yyyy-MM-dd HH:mm:ss" }, JsonRequestBehavior.AllowGet);
}
// 如果提供了开始时间和结束时间,则添加时间范围条件
if (!string.IsNullOrWhiteSpace(StartTime) && !string.IsNullOrWhiteSpace(EndTime))
if (hasStart && hasEnd)
{
whereClause += " AND UpdateDate BETWEEN @StartTime AND @EndTime";
parameters = new { HotelID, RoomNumber, StartTime, EndTime };
parameters["StartTime"] = startDateTime.ToString("yyyy-MM-dd HH:mm:ss");
parameters["EndTime"] = endDateTime.ToString("yyyy-MM-dd HH:mm:ss");
}
else if (hasStart)
{
whereClause += " AND UpdateDate >= @StartTime";
parameters["StartTime"] = startDateTime.ToString("yyyy-MM-dd HH:mm:ss");
}
else if (hasEnd)
{
whereClause += " AND UpdateDate <= @EndTime";
parameters["EndTime"] = endDateTime.ToString("yyyy-MM-dd HH:mm:ss");
}
// 构建完整的SQL查询语句