diff --git a/UI/Controllers/UpgradeController.cs b/UI/Controllers/UpgradeController.cs index 1457b70..e86fca4 100644 --- a/UI/Controllers/UpgradeController.cs +++ b/UI/Controllers/UpgradeController.cs @@ -574,6 +574,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; } + } + /// /// 写入房间设备访问日志 /// @@ -597,25 +607,24 @@ namespace UI.Controllers } // 创建日志列表 - var logList = new List(); 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) { @@ -644,13 +653,43 @@ namespace UI.Controllers // 构建查询条件 string whereClause = "WHERE HotelID = @HotelID AND RoomNumber = @RoomNumber"; - var parameters = new { HotelID, RoomNumber }; + var parameters = new Dictionary + { + { "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查询语句