Infrastructure/OpenAuth.App/ServiceApp/FmFireSiteManage/FmFireSiteApp.cs

685 lines
31 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using DocumentFormat.OpenXml.Office2021.DocumentTasks;
using DocumentFormat.OpenXml.Spreadsheet;
using Infrastructure;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Options;
using NPOI.XSSF.UserModel;
using OpenAuth.App.BaseApp.Base;
using OpenAuth.App.Common;
using OpenAuth.App.Interface;
using OpenAuth.App.Response;
using OpenAuth.App.ServiceApp.FireManagement.Response;
using OpenAuth.App.ServiceApp.FmFireSiteManage.Response;
using OpenAuth.Repository;
using OpenAuth.Repository.Domain;
using OpenAuth.Repository.Domain.FireManagement;
using Org.BouncyCastle.Ocsp;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
using Yitter.IdGenerator;
namespace OpenAuth.App.ServiceApp.FmFireSiteManage
{
public class FmFireSiteApp : SqlSugarBaseApp<FmSiteInfo, SugarDbContext>
{
private ClientWebSocket _socket;
private IConfiguration _configuration;
IOptions<KikvisionConfig> _options;
IOptions<KikvisionConfig2> _options2;
IOptions<JPushClientConfig> _jpoptions;
public FmFireSiteApp(IConfiguration configuration, IOptions<KikvisionConfig> options, IOptions<KikvisionConfig2> options2,
IOptions<JPushClientConfig> jpoptions, ISugarUnitOfWork<SugarDbContext> unitWork,
ISimpleClient<FmSiteInfo> repository, IAuth auth) : base(unitWork, repository, auth)
{
_auth = auth;
_options = options;
_options2 = options2;
_configuration = configuration;
_jpoptions = jpoptions;
}
#region 站点管理
/// <summary>
/// 查询所有站点
/// </summary>
/// <param name="siteName"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="state"></param>
/// <returns></returns>
public async Task<Response<PageInfo<List<FmSiteInfo>>>> LoadAllSite(string siteName, int pageIndex, int pageSize, int state)
{
var currentUser = _auth.GetCurrentUser();
using (var db = base.UnitWork.CreateContext())
{
RefAsync<int> totalNumber = 0;
var list = await db.FmSiteInfo.AsQueryable()
.WhereIF(state != 3, (a) => a.State == state)
.WhereIF(!string.IsNullOrEmpty(siteName), (a) => a.SiteName.Contains(siteName))
.Select((a) => new FmSiteInfo
{
Id = a.Id.SelectAll(),
})
.OrderByDescending(a => a.CreateTime)
.ToPageListAsync(pageIndex, pageSize, totalNumber);
return new Response<PageInfo<List<FmSiteInfo>>>
{
Result = new PageInfo<List<FmSiteInfo>> { Items = list, Total = totalNumber }
};
}
}
/// <summary>
/// 导出所有站点
/// </summary>
/// <returns></returns>
public MemoryStream ExportSite(int state)
{
var currentUser = _auth.GetCurrentUser();
using (var db = base.UnitWork.CreateContext())
{
List<FmSiteInfo> list = new List<FmSiteInfo>();
list = db.FmSiteInfo.AsQueryable()
.WhereIF(state != 3, (a) => a.State == state)
.Select((a) => new FmSiteInfo
{
Id = a.Id.SelectAll(),
})
.OrderByDescending(a => a.CreateTime)
.ToList();
//根目录
var root = AppDomain.CurrentDomain.BaseDirectory;
//Execl 文件
var execlPath = "ExportFiles/ExportInterphoneInfo.xlsx";
using (FileStream fs = new FileStream($"{root}{execlPath}", FileMode.Open, FileAccess.Read))
{
var workBook = new XSSFWorkbook(fs);
#region
var sheet = workBook.GetSheetAt(0);
var columnWidth = 20 * 256; // 一个字符等于 256 个单位
for (int i = 0; i < list.Count; i++)
{
sheet.SetColumnWidth(i, columnWidth);
}
var row1 = sheet.CreateRow(0);
row1.Height = 30 * 20;
row1.CreateCell(0).SetCellValue("站点名称");
row1.CreateCell(1).SetCellValue("站点地址");
row1.CreateCell(2).SetCellValue("审核状态");
row1.CreateCell(3).SetCellValue("负责人");
row1.CreateCell(4).SetCellValue("负责人电话");
for (int i = 0; i < list.Count; i++)
{
var num = i + 1;
var row = sheet.CreateRow(num);
row.Height = 30 * 20;
row.CreateCell(0).SetCellValue(list[i].SiteName == null ? "" : list[i].SiteName);
row.CreateCell(1).SetCellValue(list[i].SiteAddress == null ? "" : list[i].SiteAddress);
row.CreateCell(2).SetCellValue(list[i].State == 0 ? "未审核" : (list[i].State == 1 ? "审核通过" : "审核未通过"));
row.CreateCell(3).SetCellValue(list[i].Director == null ? "" : list[i].Director);
row.CreateCell(4).SetCellValue(list[i].Phone == null ? "" : list[i].Phone);
}
#endregion
MemoryStream ms = new MemoryStream();
workBook.Write(ms);
return ms;
}
}
}
/// <summary>
/// 站点审核
/// </summary>
/// <param name="siteId">站点id</param>
/// <param name="state"></param>
/// <param name="content"></param>
/// <returns></returns>
public async Task<Response<bool>> AuditSite(long siteId, int state, string content)
{
using (var db = base.UnitWork.CreateContext())
{
var model = db.FmSiteInfo.AsQueryable().First(r => r.Id == siteId);
if (model == null)
{
throw new Exception("未查询到站点");
}
else
{
model.AuditTime = DateTime.Now;
model.State = state;
model.StateContent = content;
var flag = await db.FmSiteInfo.UpdateAsync(model);
if (db.Commit() && flag)
{
return new Response<bool> { Result = true, Message = "审核成功" };
}
else
{
return new Response<bool> { Result = false, Message = "审核失败" };
}
}
}
}
#endregion
#region 站点管理
/// <summary>
/// 获取站点管理人员及消息接收人员
/// </summary>
/// <param name="siteId"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
public async Task<Response<PageInfo<List<SiteUserRes>>>> LoadSiteUser(long siteId, long roleid, int pageIndex, int pageSize)
{
using (var db = base.UnitWork.CreateContext())
{
RefAsync<int> totalNumber = 0;
var list = await db.FmSiteUser.AsQueryable()
.LeftJoin<SysUser>((a, b) => a.SiteUserId == b.Id.ToString())
.LeftJoin<SysUserRole>((a, b, c) => a.SiteUserId == c.UserId.ToString())
.Where((a, b, c) => c.RoleId == roleid && a.SiteId == siteId)
.Select((a, b) => new SiteUserRes()
{
Id = a.Id,
Name = b.Name,
SiteId = a.SiteId,
SiteUserId = a.SiteUserId,
UserRole = a.UserRole,
Account = b.Account
}).ToPageListAsync(pageIndex, pageSize, totalNumber);
return new Response<PageInfo<List<SiteUserRes>>>
{
Result = new PageInfo<List<SiteUserRes>> { Items = list, Total = totalNumber }
};
}
}
/// <summary>
/// 获取林场所有管理员
/// </summary>
/// <param name="roleid">角色id传林场管理员角色id</param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
public TableData LoadSiteAllUser(long roleid, int pageIndex, int pageSize)
{
TableData data = new TableData();
using (var db = base.UnitWork.CreateContext())
{
int totalCount = 0;
var list = db.User.AsQueryable()
.LeftJoin<SysUserRole>((a, r) => a.Id == r.UserId)
.Where((a, r) => r.RoleId == roleid)
.Select((a) => (dynamic)new
{
a.Id,
a.Name,
a.Account
})
.ToPageList(pageIndex, pageSize, ref totalCount);
data.data = list;
data.count = totalCount;
data.code = 200;
data.msg = "请求成功";
}
return data;
}
/// <summary>
/// 获取站点列表
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public TableData LoadSiteByUserId(string userId, int pageIndex, int pageSize)
{
TableData data = new TableData();
using (var db = base.UnitWork.CreateContext())
{
//查询user的所有场地
var siteids = db.FmSiteUser.AsQueryable().Where(a => a.SiteUserId == userId).Select(a => a.SiteId).ToList();
var startTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
var endTime = DateTime.Now;
int totalCount = 0;
var list = db.FmSiteInfo.AsQueryable()
//.LeftJoin<FmEnteringInfo>((a, b) => a.Id == b.SiteId)
.Where((a) => siteids.Contains(a.Id))
//.Where((a, b) => b.InTime >= startTime && b.InTime <= endTime)
//.GroupBy((a, b) => a.Id)
.Select((a) => (dynamic)new
{
Id = a.Id.SelectAll(),
incount = SqlFunc.Subqueryable<FmEnteringInfo>().Where(r => r.SiteId == a.Id && r.InTime >= startTime && r.InTime <= endTime).Count(),
}).ToPageList(pageIndex, pageSize, ref totalCount);
data.data = list;
data.count = totalCount;
data.code = 200;
data.msg = "请求成功";
}
return data;
}
/// <summary>
/// 站点注册
/// </summary>
/// <param name="FmSiteInfo">站点信息</param>
/// <returns></returns>
public async Task<Response<bool>> AddSite(FmSiteInfo fmSite)
{
if (fmSite != null)
{
fmSite.CreateTime = DateTime.Now;
fmSite.State = 0;
using (var db = base.UnitWork.CreateContext())
{
if (db.FmSiteInfo.AsQueryable().Any(a => a.SiteName == fmSite.SiteName))
{
throw new Exception("该站点名称已被注册");
}
else
{
fmSite.Id = YitIdHelper.NextId();
fmSite.AuditTime = fmSite.CreateTime;
if (fmSite.State != 1)
{
fmSite.State = 0;
}
fmSite.SiteUser.ForEach(a =>
{
a.Id = YitIdHelper.NextId();
a.SiteId = fmSite.Id;
});
FmSiteUser sugar_SiteUser = new FmSiteUser();
sugar_SiteUser.Id = YitIdHelper.NextId();
sugar_SiteUser.SiteId = fmSite.Id;
sugar_SiteUser.SiteUserId = fmSite.CreateUserId;
sugar_SiteUser.UserRole = 1;
fmSite.SiteUser.Add(sugar_SiteUser);
await db.FmSiteInfo.InsertAsync(fmSite);
await db.FmSiteUser.InsertRangeAsync(fmSite.SiteUser);
if (db.Commit())
{
return new Response<bool> { Result = true, Message = "操作成功" };
}
else
{
return new Response<bool> { Result = false, Message = "操作失败" };
}
}
}
}
else
{
throw new Exception("提交数据为空");
}
}
/// <summary>
/// 站点编辑
/// </summary>
/// <param name="fmSite">站点编辑</param>
/// <returns></returns>
public async Task<Response<bool>> EditSite(FmSiteInfo fmSite)
{
if (fmSite != null)
{
using (var db = base.UnitWork.CreateContext())
{
if (fmSite.SiteUser != null)
{
fmSite.SiteUser.ForEach(a =>
{
a.Id = YitIdHelper.NextId();
a.SiteId = fmSite.Id;
});
await db.FmSiteUser.DeleteAsync(r => r.SiteId == fmSite.Id);
await db.FmSiteUser.InsertRangeAsync(fmSite.SiteUser);
}
// Update the fmSite object
await db.FmSiteInfo.UpdateAsync(fmSite);
if (db.Commit())
{
return new Response<bool> { Result = true, Message = "操作成功" };
}
else
{
return new Response<bool> { Result = false, Message = "操作失败" };
}
}
}
else
{
throw new Exception("提交数据为空");
}
}
/// <summary>
/// 获取站点详情
/// </summary>
/// <param name="siteId"></param>
/// <returns></returns>
public async Task<Response<FmSiteRes>> GetSiteInfo(long siteId)
{
TableData data = new TableData();
using (var db = base.UnitWork.CreateContext())
{
var info = await db.FmSiteInfo.AsQueryable()
.Where((a) => a.Id == siteId)
.Select((a) => new FmSiteRes
{
Id = a.Id.SelectAll(),
Accumulate = SqlFunc.Subqueryable<FmEnteringInfo>().Where(r => r.SiteId == a.Id).Count(),
}).FirstAsync();
var inf = await db.FmSiteUser.AsQueryable()
.LeftJoin<SysUser>((a, b) => a.SiteUserId == b.Id.ToString())
.Where(a => a.SiteId == siteId)
.Select((a, b) => new FmSiteUser()
{
Id = a.Id,
SiteUserId = a.SiteUserId,
SiteId = a.SiteId,
UserRole = a.UserRole,
Name = b.Name,
Phone = b.Account
}).ToListAsync();
info.SiteUser = inf;
return new Response<FmSiteRes> { Result = info };
}
}
#endregion
//#region 进山人员管理
///// <summary>
///// 进出山类型
///// </summary>
///// <returns></returns>
//public TableData InTypes()
//{
// List<EnumItem> list = new List<EnumItem>();
// foreach (var e in Enum.GetValues(typeof(InType)))
// {
// list.Add(new EnumItem
// {
// Value = Convert.ToInt32(e),
// Descprtion = ((InType)e).GetDescription()
// });
// }
// return new TableData
// {
// code = 200,
// count = list.Count,
// data = list.OrderBy(a => a.Value),
// msg = "success"
// };
//}
///// <summary>
///// 获取进出山人员信息
///// </summary>
///// <param name="userName"></param>
///// <param name="cardNo"></param>
///// <param name="siteId"></param>
///// <param name="pageIndex"></param>
///// <param name="pageSize"></param>
///// <returns></returns>
//// This code is a method that loads in user data from a database. It takes in seven parameters: userName, cardNo, siteId, pageIndex, pageSize, startTime, and endTime
//// It then creates a TableData object and sets the startTime and endTime to the current date and time if the year is 0001. It then uses the SqlSugarOper class to query
//// the FmEnteringInfo, SysUser, and FmSiteInfo tables. It filters the results based on the parameters passed in and selects certain fields from the tables.
//// It then orders the results by InTime in descending order and maps the InType field to its description. Finally, it returns the TableData object with the filtered
//// results and the total count of the results.
//public TableData LoadInUser(string userName, string cardNo, long siteId, int pageIndex, int pageSize, DateTime startTime, DateTime endTime)
//{
// var currentUser = _auth.GetCurrentUser();
// TableData data = new TableData();
// if (startTime.Year == 0001)
// {
// startTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
// endTime = DateTime.Now;
// }
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// int totalCount = 0;
// //获取当前用户的乡镇信息
// var currentAreaUser = db.Queryable<Sugar_ForestryUser>().Where(r => r.UserId == currentUser.User.Id && r.UserRole == 1).ToList();
// if (currentAreaUser.Count > 0)
// {
// var areaid = currentAreaUser.Select(r => r.AreaId);
// var areaids = db.Queryable<Sugar_GridInfo>()
// .Where(r => areaid.Contains(r.PId) || areaid.Contains(r.Id))
// .Select(r => r.Id).ToList();
// var fuser = db.Queryable<Sugar_ForestryUser>()
// .Where((a) => areaids.Contains(a.AreaId))
// .Select(r => r.UserId).ToList();
// var site = db.Queryable<FmSiteUser>()
// .Where(r => fuser.Contains(r.SiteUserId))
// .Select(r => r.SiteId).ToList();
// var list = db.Queryable<FmEnteringInfo>()
// .LeftJoin<SysUser>((a, b) => a.CreateUserId == b.Id)
// .LeftJoin<FmSiteInfo>((a, b, c) => a.SiteId == c.Id)
// .WhereIF(siteId != 0, (a, b, c) => a.SiteId == siteId)
// .WhereIF(!string.IsNullOrEmpty(userName), (a, b, c) => a.UserName.Contains(userName))
// .WhereIF(!string.IsNullOrEmpty(cardNo), (a, b, c) => a.CardNo == cardNo)
// .Where((a, b, c) => a.InTime >= startTime && a.InTime <= endTime)
// .Where((a, b, c) => site.Contains(a.SiteId))
// .Select((a, b, c) => new EnteringInfoResp()
// {
// Id = a.Id,
// UserName = a.UserName,
// InType = a.InType,
// Phone = a.Phone,
// InTime = a.InTime,
// SiteName = c.SiteName,
// CardNo = a.CardNo,
// UserAddress = a.UserAddress,
// Name = b.Name,
// OutTime = a.OutTime,
// Reason = a.Reason,
// RegistrationType = a.RegistrationType,
// ProjectName = a.ProjectName
// })
// .OrderBy((a) => a.InTime, OrderByType.Desc)//倒序
// .Mapper(it => it.InTypeName = ((InType)it.InType).GetDescription())
// .Mapper(it => it.RegistrationTypeName = ((RegistrationType)it.RegistrationType).GetDescription())
// .ToPageList(pageIndex, pageSize, ref totalCount);
// data.data = list;
// data.count = totalCount;
// data.code = 200;
// data.msg = "请求成功";
// }
// else
// {
// var list = db.Queryable<FmEnteringInfo>()
// .LeftJoin<SysUser>((a, b) => a.CreateUserId == b.Id)
// .LeftJoin<FmSiteInfo>((a, b, c) => a.SiteId == c.Id)
// .WhereIF(siteId != 0, (a, b, c) => a.SiteId == siteId)
// .WhereIF(!string.IsNullOrEmpty(userName), (a, b, c) => a.UserName.Contains(userName))
// .WhereIF(!string.IsNullOrEmpty(cardNo), (a, b, c) => a.CardNo == cardNo)
// .Where((a, b, c) => a.InTime >= startTime && a.InTime <= endTime)
// .Select((a, b, c) => new EnteringInfoResp()
// {
// Id = a.Id,
// UserName = a.UserName,
// InType = a.InType,
// Phone = a.Phone,
// InTime = a.InTime,
// SiteName = c.SiteName,
// CardNo = a.CardNo,
// UserAddress = a.UserAddress,
// Name = b.Name,
// OutTime = a.OutTime,
// Reason = a.Reason,
// RegistrationType = a.RegistrationType,
// ProjectName = a.ProjectName
// })
// .OrderBy((a) => a.InTime, OrderByType.Desc)//倒序
// .Mapper(it => it.InTypeName = ((InType)it.InType).GetDescription())
// .Mapper(it => it.RegistrationTypeName = ((RegistrationType)it.RegistrationType).GetDescription())
// .ToPageList(pageIndex, pageSize, ref totalCount);
// data.data = list;
// data.count = totalCount;
// data.code = 200;
// data.msg = "请求成功";
// }
// }
// return data;
//}
///// <summary>
///// 导出进出山人员信息
///// </summary>
///// <returns></returns>
//public MemoryStream ExportInUser(long siteId, DateTime startTime, DateTime endTime)
//{
// var currentUser = _auth.GetCurrentUser();
// if (startTime.Year == 0001)
// {
// startTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
// endTime = DateTime.Now;
// }
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// List<EnteringInfoResp> list = new List<EnteringInfoResp>();
// //获取当前用户的乡镇信息
// var currentAreaUser = db.Queryable<Sugar_ForestryUser>().Where(r => r.UserId == currentUser.User.Id).ToList();
// if (currentAreaUser.Count > 0)
// {
// var areaid = currentAreaUser.Select(r => r.AreaId);
// var areaids = db.Queryable<Sugar_GridInfo>()
// .Where(r => areaid.Contains(r.PId) || areaid.Contains(r.Id))
// .Select(r => r.Id).ToList();
// var fuser = db.Queryable<Sugar_ForestryUser>()
// .Where((a) => areaids.Contains(a.AreaId))
// .Select(r => r.UserId).ToList();
// var site = db.Queryable<FmSiteUser>()
// .Where(r => fuser.Contains(r.SiteUserId))
// .Select(r => r.SiteId).ToList();
// list = db.Queryable<FmEnteringInfo>()
// .LeftJoin<SysUser>((a, b) => a.CreateUserId == b.Id)
// .LeftJoin<FmSiteInfo>((a, b, c) => a.SiteId == c.Id)
// .WhereIF(siteId != 0, (a, b, c) => a.SiteId == siteId)
// .Where((a, b, c) => a.InTime >= startTime && a.InTime <= endTime)
// .Where((a, b, c) => site.Contains(a.SiteId))
// .Select((a, b, c) => new EnteringInfoResp()
// {
// Id = a.Id,
// UserName = a.UserName,
// InType = a.InType,
// Phone = a.Phone,
// InTime = a.InTime,
// SiteName = c.SiteName,
// CardNo = a.CardNo,
// UserAddress = a.UserAddress,
// Name = b.Name,
// OutTime = a.OutTime,
// Reason = a.Reason,
// RegistrationType = a.RegistrationType,
// ProjectName = a.ProjectName
// })
// .OrderBy((a) => a.InTime, OrderByType.Desc)//倒序
// .Mapper(it => it.InTypeName = ((InType)it.InType).GetDescription())
// .Mapper(it => it.RegistrationTypeName = ((RegistrationType)it.RegistrationType).GetDescription())
// .ToList();
// }
// else
// {
// list = db.Queryable<FmEnteringInfo>()
// .LeftJoin<SysUser>((a, b) => a.CreateUserId == b.Id)
// .LeftJoin<FmSiteInfo>((a, b, c) => a.SiteId == c.Id)
// .WhereIF(siteId != 0, (a, b, c) => a.SiteId == siteId)
// .Where((a, b, c) => a.InTime >= startTime && a.InTime <= endTime)
// .Select((a, b, c) => new EnteringInfoResp()
// {
// Id = a.Id,
// UserName = a.UserName,
// InType = a.InType,
// Phone = a.Phone,
// InTime = a.InTime,
// SiteName = c.SiteName,
// CardNo = a.CardNo,
// UserAddress = a.UserAddress,
// Name = b.Name,
// OutTime = a.OutTime,
// Reason = a.Reason,
// RegistrationType = a.RegistrationType,
// ProjectName = a.ProjectName
// })
// .OrderBy((a) => a.InTime, OrderByType.Desc)//倒序
// .Mapper(it => it.InTypeName = ((InType)it.InType).GetDescription())
// .Mapper(it => it.RegistrationTypeName = ((RegistrationType)it.RegistrationType).GetDescription())
// .ToList();
// }
// //根目录
// var root = AppDomain.CurrentDomain.BaseDirectory;
// //Execl 文件
// var execlPath = "ExportFiles/ExportInterphoneInfo.xlsx";
// using (FileStream fs = new FileStream($"{root}{execlPath}", FileMode.Open, FileAccess.Read))
// {
// var workBook = new XSSFWorkbook(fs);
// #region
// var sheet = workBook.GetSheetAt(0);
// var columnWidth = 20 * 256; // 一个字符等于 256 个单位
// for (int i = 0; i < list.Count; i++)
// {
// sheet.SetColumnWidth(i, columnWidth);
// }
// var row1 = sheet.CreateRow(0);
// row1.Height = 30 * 20;
// row1.CreateCell(0).SetCellValue("人员姓名");
// row1.CreateCell(1).SetCellValue("身份证号");
// row1.CreateCell(2).SetCellValue("电话");
// row1.CreateCell(3).SetCellValue("登记类型");
// row1.CreateCell(4).SetCellValue("进山时间");
// row1.CreateCell(5).SetCellValue("出山时间");
// row1.CreateCell(6).SetCellValue("防火站点");
// row1.CreateCell(7).SetCellValue("登记方式");
// row1.CreateCell(8).SetCellValue("进山原因");
// for (int i = 0; i < list.Count; i++)
// {
// var num = i + 1;
// var row = sheet.CreateRow(num);
// row.Height = 30 * 20;
// row.CreateCell(0).SetCellValue(list[i].UserName == null ? "" : list[i].UserName);
// row.CreateCell(1).SetCellValue(list[i].CardNo == null ? "" : list[i].CardNo);
// row.CreateCell(2).SetCellValue(list[i].Phone == null ? "" : list[i].Phone);
// row.CreateCell(3).SetCellValue(list[i].RegistrationTypeName == null ? "" : list[i].RegistrationTypeName);
// row.CreateCell(4).SetCellValue(list[i].InTime == null ? "" : list[i].InTime.ToString());
// row.CreateCell(5).SetCellValue(list[i].OutTime == null ? "" : list[i].OutTime.ToString());
// row.CreateCell(6).SetCellValue(list[i].SiteName == null ? "" : list[i].SiteName);
// row.CreateCell(7).SetCellValue(list[i].InTypeName == null ? "" : list[i].InTypeName);
// row.CreateCell(8).SetCellValue(list[i].Reason == null ? "" : list[i].Reason);
// }
// #endregion
// MemoryStream ms = new MemoryStream();
// workBook.Write(ms);
// return ms;
// }
// }
//}
//#endregion
}
}