Files
Web_CRICS_Server_VS2010_Prod/WebSite/Controllers/HostRoomCardController.cs

220 lines
8.9 KiB
C#
Raw Normal View History

2025-12-11 09:17:16 +08:00
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Domain;
using Service;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace WebSite.Controllers
{
public class HostRoomCardController : BaseController
{
private static log4net.ILog logger = log4net.LogManager.GetLogger(typeof(HostRoomCardController));
private const int AUTHORITY_HostRoomCard = 1004;
public IHostRoomCardManager HostRoomCardManager { get; set; }
public IRoomCardManager RoomCardManager { get; set; }
public IRoomCardTypeManager RoomCardTypeManager { get; set; }
public ISysUserManager SysUserManager { get; set; }
public ActionResult Index()
{
ViewData["EnableDelData"] = SysUserManager.HasAuthority(User.Identity.Name, AUTHORITY_HostRoomCard);
#if SIMON
return View("SimonIndex");
#else
return View();
#endif
}
/// <summary>
/// 加载刷卡记录数据
/// </summary>
/// <param name="roomNumber"></param>
/// <param name="userName"></param>
/// <param name="cardNumber"></param>
/// <param name="page"></param>
/// <param name="rows"></param>
/// <param name="order"></param>
/// <param name="sort"></param>
/// <returns></returns>
public ActionResult LoadAllByPage(int page, int rows, string order, string sort, string roomNumber = "", string cardTypeID = "", string cardNumber = "", string startDate = "", string endDate = "")
{
long total = 0;
var lists = HostRoomCardManager.LoadAllByPage(out total, page, rows, order, sort, CurrentHotelID, roomNumber,
Convert.ToInt16(cardTypeID), cardNumber, "", Convert.ToDateTime(startDate), Convert.ToDateTime(endDate));
var result = lists.Select(r => new
{
r.ID,
r.RoomNumber,
CardType = ReturnNameByLanguage(r.CardType.Name, r.CardType.EName, r.CardType.TWName),
r.CardNumber,
r.UserNumber,
r.UserName,
InCardTime = Convert.ToDateTime(r.InCardTime).ToString("yyyy-MM-dd HH:mm:ss"),
OutCardTime = Convert.ToDateTime(r.OutCardTime).ToString("yyyy-MM-dd HH:mm:ss"),
r.Duration
}).ToList<object>();
//var table = HostRoomCardManager.LoadHostRoomCard(out total, page, rows, order, sort, CurrentHotelID, CardType, RoomNumber, UserName, CardNumber, StartDate, EndDate);
//IList<object> services = new List<object>();
//if (lists != null)
//{
// foreach (System.Data.DataRow row in table.Rows)
// {
// services.Add(new
// {
// ID = row[0],
// RoomNumber = row[1],
// CardNumber = row[2],
// CardType = ReturnNameByLanguage(row[3].ToString(), row[4].ToString(), row[5].ToString()),
// UserNumber = row[6],
// UserName = row[7],
// InCardTime = Convert.ToDateTime(row[8]).ToString("yyyy-MM-dd HH:mm:ss"),
// OutCardTime = Convert.ToDateTime(row[9]).ToString("yyyy-MM-dd HH:mm:ss"),
// Duration = row[10]
// });
// }
//}
return Json(new { total = total, rows = result }, JsonRequestBehavior.AllowGet);
}
/// <summary>
/// 删除多条数据
/// </summary>
/// <param name="idList"></param>
/// <returns></returns>
[Authorize]
public ActionResult Delete(IList<long> idList)
{
HostRoomCardManager.Delete(idList.Cast<object>().ToList());
SaveSystemLog(AUTHORITY_HostRoomCard, HttpContext.InnerLanguage("Delete"), "【" + String.Join(",", CurrentHotelID) + "】");
return Json(new { IsSuccess = true, Message = HttpContext.InnerLanguage("DeleteSuccess") });
}
/// <summary>
/// 清空数据
/// </summary>
/// <returns></returns>
[Authorize]
public ActionResult DeleteAll()
{
HostRoomCardManager.DeleteAll(CurrentHotelID);
SaveSystemLog(AUTHORITY_HostRoomCard, HttpContext.InnerLanguage("Delete"), "【" + String.Join(",", CurrentHotelID) + "】");
return Json(new { IsSuccess = true, Message = HttpContext.InnerLanguage("EmptySuccess") });
}
/// <summary>
///导出刷卡记录信息
/// </summary>
/// <param name="roomNumber"></param>
/// <param name="userName"></param>
/// <returns></returns>
[Authorize]
public ActionResult Export(string roomNumber, string userName)
{
var list = HostRoomCardManager.LoadAll(CurrentHotelID, roomNumber, userName);
NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1");
sheet1.SetColumnWidth(0, 10 * 256);
sheet1.SetColumnWidth(1, 10 * 256);
sheet1.SetColumnWidth(2, 10 * 256);
sheet1.SetColumnWidth(3, 10 * 256);
sheet1.SetColumnWidth(4, 10 * 256);
sheet1.SetColumnWidth(5, 20 * 256);
sheet1.SetColumnWidth(6, 20 * 256);
sheet1.SetColumnWidth(7, 10 * 256);
NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue(HttpContext.InnerLanguage("RoomNumber"));
row1.CreateCell(1).SetCellValue(HttpContext.InnerLanguage("CardNumber"));
row1.CreateCell(2).SetCellValue(HttpContext.InnerLanguage("CardType"));
row1.CreateCell(3).SetCellValue(HttpContext.InnerLanguage("UserNumber"));
row1.CreateCell(4).SetCellValue(HttpContext.InnerLanguage("UserName"));
row1.CreateCell(5).SetCellValue(HttpContext.InnerLanguage("InCardTime"));
row1.CreateCell(6).SetCellValue(HttpContext.InnerLanguage("OutCardTime"));
row1.CreateCell(7).SetCellValue(HttpContext.InnerLanguage("DurationMinute"));
for (int i = 0; i < list.Count; i++)
{
NPOI.SS.UserModel.IRow row = sheet1.CreateRow(i + 1);
row.CreateCell(0).SetCellValue(list[i].RoomNumber);
row.CreateCell(1).SetCellValue(list[i].CardNumber);
row.CreateCell(2).SetCellValue(list[i].CardType != null ? list[i].CardType.Name : "");
row.CreateCell(3).SetCellValue(list[i].UserNumber);
row.CreateCell(4).SetCellValue(list[i].UserName);
row.CreateCell(5).SetCellValue(list[i].InCardTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
row.CreateCell(6).SetCellValue(list[i].OutCardTime.HasValue ? list[i].OutCardTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "");
row.CreateCell(7).SetCellValue(list[i].Duration);
}
using (MemoryStream stream = new MemoryStream())
{
book.Write(stream);
stream.Seek(0, SeekOrigin.Begin);
return File(stream, "application/vnd.ms-excel", "刷卡记录.xls");
}
}
#region
/// <summary>
/// 房卡类型
/// </summary>
/// <returns></returns>
[Authorize]
public ActionResult LoadDataForCardTypeCombobox()
{
var cardType = RoomCardTypeManager.LoadAll();
var result = cardType.Select(r => new { r.ID, CardType = ReturnNameByLanguage(r.Name,r.EName,r.TWName) }).ToList<object>();
result.Insert(0, new { ID = -1, CardType = HttpContext.InnerLanguage("Choice") });
return Json(result);
}
/// <summary>
/// 房卡编号
/// </summary>
/// <returns></returns>
[Authorize]
public ActionResult LoadDataForCardNumberCombobox()
{
var cardNumber = RoomCardManager.LoadAll().Where(r => r.HotelID == CurrentHotelID && r.RoomCardType != null).ToList();
var result = cardNumber.Select(r => new
{
r.ID,
CardNumber = r.CardNumber,
Name = r.CardNumber + "(" + ReturnNameByLanguage(r.RoomCardType.Name, r.RoomCardType.EName, r.RoomCardType.TWName) + "|" + r.UserName + ")"
}).ToList<object>();
result.Insert(0, new { ID = 0, CardNumber = "", Name = HttpContext.InnerLanguage("CheckAll") });
return Json(result);
}
/// <summary>
/// 员工姓名
/// </summary>
/// <returns></returns>
[Authorize]
public ActionResult LoadDataForUserNameCombobox()
{
var userName = RoomCardManager.LoadAll().Where(r => r.HotelID == CurrentHotelID).ToList();
var result = userName.Select(r => new { r.ID, UserName = r.UserName }).ToList<object>();
result.Insert(0, new { ID = 0, UserName = HttpContext.InnerLanguage("CheckAll") });
return Json(result);
}
#endregion
}
}