You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
702 lines
32 KiB
702 lines
32 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Data;
|
|
using System.Text;
|
|
using System.Collections;
|
|
using System.Reflection;
|
|
using System.Web.Script.Serialization;
|
|
using FangYar.Model;
|
|
using FangYar.BLL;
|
|
using Newtonsoft.Json;
|
|
using Spire.Doc;
|
|
using Spire.Doc.Documents;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using Spire.Doc.Fields;
|
|
using FangYar.Common;
|
|
|
|
namespace FangYar.WebUI.ashx
|
|
{
|
|
/// <summary>
|
|
/// OaLeaveHandler 的摘要说明
|
|
/// </summary>
|
|
public class VisitorHandler : IHttpHandler
|
|
{
|
|
private FangYar.BLL.TBL_VISITOR bll = new FangYar.BLL.TBL_VISITOR();
|
|
public void ProcessRequest(HttpContext context)
|
|
{
|
|
context.Response.ContentType = "text/plain";
|
|
string action = context.Request.Params["Action"];
|
|
string returnstr = "";
|
|
|
|
switch (action)
|
|
{
|
|
case "List":
|
|
returnstr = visList(context);
|
|
break;
|
|
case "editWait":
|
|
returnstr = editWait(context);
|
|
break;
|
|
case "GetVisitorWeek":
|
|
returnstr = GetVisitorWeek(context);
|
|
break;
|
|
case "GetInfo":
|
|
returnstr = GetInfo(context);
|
|
break;
|
|
case "expList":
|
|
expList(context);
|
|
break;
|
|
case "visitorReportDetail"://统计报表
|
|
returnstr = VisitorReportDetail(context);
|
|
break;
|
|
case "visitorReportBar"://柱状图
|
|
returnstr = VisitorReportBar(context);
|
|
break;
|
|
case "htmlToWord":
|
|
returnstr = HtmlToWord(context);
|
|
break;
|
|
case "getVisitorList"://
|
|
returnstr = getVisitorList(context);
|
|
break;
|
|
case "getVisitorTrajectoryList"://
|
|
returnstr = getVisitorTrajectoryList(context);
|
|
break;
|
|
}
|
|
context.Response.Write(returnstr);
|
|
}
|
|
|
|
|
|
//查询
|
|
private string visList(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
|
|
//searchTime searchIDCard searchName searchVedName
|
|
string OrgId = context.Request.Params["OrgId"];
|
|
string searchTime = context.Request.Params["searchTime"];
|
|
string searchIDCard = context.Request.Params["searchIDCard"];
|
|
string searchName = context.Request.Params["searchName"];
|
|
string searchVedName = context.Request.Params["searchVedName"];
|
|
string page = context.Request.Params["page"];
|
|
string limit = context.Request.Params["limit"];
|
|
int pageIndex = 1;
|
|
int pageSize = 10;
|
|
if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); }
|
|
if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); }
|
|
string where = " 1=1 ";
|
|
if (!string.IsNullOrEmpty(OrgId))
|
|
{
|
|
where += " and (ORG_ID ='" + OrgId + "')"; //现在只查看本单位的访客信息
|
|
}
|
|
if (!string.IsNullOrEmpty(searchTime))
|
|
{
|
|
if (!searchTime.Contains("请选择"))
|
|
{
|
|
where += " and date_format(INTIME,'%Y-%m-%d') =date_format('" + searchTime + "','%Y-%m-%d')";
|
|
}
|
|
}
|
|
if (!string.IsNullOrEmpty(searchIDCard))
|
|
{
|
|
where += " and EXTEND2 like '%" + searchIDCard + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(searchName))
|
|
{
|
|
where += " and NAME like '%" + searchName + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(searchVedName))
|
|
{
|
|
where += " and VED_MAN like '%" + searchVedName + "%'";
|
|
}
|
|
returnstr = "{\"code\":0,\"msg\":\"\",";
|
|
int count = bll.GetRecordCount(where);
|
|
returnstr += "\"count\":" + count + ",\"data\":";
|
|
if (count == 0)
|
|
{
|
|
returnstr += "[]";
|
|
}
|
|
else
|
|
{
|
|
//访客出入记录表
|
|
string data = "[";
|
|
List<FangYar.Model.TBL_VISITOR> list = bll.QueryList(pageIndex, pageSize, where, " intime desc ");
|
|
|
|
for (int i = 0; i < list.Count; i++)
|
|
{
|
|
string pic2 = "";
|
|
if (list[i].V_PIC != null && list[i].V_PIC.ToString() != "")
|
|
{
|
|
pic2 = Convert.ToBase64String((byte[])list[i].V_PIC);
|
|
}
|
|
data += "{\"ID\":\"" + list[i].ID + "\",\"NAME\":\"" + list[i].NAME + "\",\"SEX\":\"" + list[i].SEX + "\",\"AGE\":\"" + list[i].AGE + "\",\"UNIT\":\"" + list[i].UNIT + "\",\"NATION\":\"" + list[i].NATION + "\",\"ADDR\":\"" + list[i].ADDR + "\",\"H_REG\":\"" + list[i].H_REG + "\",";
|
|
data += "\"ID_NUM\":\"" + list[i].ID_NUM + "\",\"ORG_ID\":\"" + list[i].ORG_ID + "\",\"M_ID\":\"" + list[i].M_ID + "\",\"M_ADDR\":\"" + list[i].M_ADDR + "\",\"VED_MAN\":\"" + list[i].VED_MAN + "\",";
|
|
data += "\"VED_ID\":\"" + list[i].VED_ID + "\",\"REASON\":\"" + list[i].REASON + "\",\"GOODS\":\"" + list[i].GOODS + "\",";
|
|
data += "\"DRICAR\":\"" + list[i].DRICAR + "\",\"TRAVELNUM\":\"" + list[i].TRAVELNUM + "\",\"ABOUTTIME\":\"" + list[i].ABOUTTIME + "\",\"REGISTERTIME\":\"" + list[i].REGISTERTIME + "\",";
|
|
data += "\"INTIME\":\"" + list[i].INTIME + "\",\"OUTTIME\":\"" + list[i].OUTTIME + "\",\"ACTUALTIME\":\"" + list[i].ACTUALTIME + "\",\"STATE\":\"" + list[i].STATE + "\",";
|
|
data += "\"APPROVALTIME\":\"" + list[i].APPROVALTIME + "\",\"QRINFO\":\"" + list[i].QRINFO + "\",\"INMACHINEID\":\"" + list[i].INMACHINEID + "\",\"INADDR\":\"" + list[i].INADDR + "\",";
|
|
data += "\"OUTMACHINEID\":\"" + list[i].OUTMACHINEID + "\",\"OUTADDR\":\"" + list[i].OUTADDR + "\",";
|
|
data += "\"EXTEND1\":\"" + list[i].EXTEND1 + "\",\"EXTEND2\":\"" + list[i].EXTEND2 + "\",\"EXTEND3\":\"" + list[i].EXTEND3 + "\",\"EXTEND4\":\"" + list[i].EXTEND4 + "\",";
|
|
data += "\"VED_DEPT\":\"" + list[i].VED_DEPT + "\",\"VIS_START_DATA\":\"" + list[i].VIS_START_DATA + "\",\"VIS_START_TIME\":\"" + list[i].VIS_START_TIME + "\",\"PHONE\":\"" + list[i].PHONE + "\",\"FEEDBACK\":\"" + list[i].FEEDBACK + "\",\"VIS_END_DATA\":\"" + list[i].VIS_END_DATA + "\",";
|
|
data += "\"VIS_END_TIME\":\"" + list[i].VIS_END_TIME + "\",\"BIRTHDAY\":\"" + list[i].BIRTHDAY + "\",\"VIS_START_TIME\":\"" + list[i].VIS_START_TIME + "\",\"SIGNOFFICE\":\"" + list[i].SIGNOFFICE + "\",\"LEGALDATE\":\"" + list[i].LEGALDATE + "\",";
|
|
data += "\"V_PIC\":\"" + pic2 + "\",\"INPIC_URL\":\"" + list[i].INPIC_URL + "\"}";
|
|
if (i != list.Count - 1)
|
|
{
|
|
data += ",";
|
|
}
|
|
}
|
|
returnstr += data + "]";
|
|
}
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
//访客审批
|
|
private string editWait(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
int code = -1;
|
|
string msg = "";
|
|
try
|
|
{
|
|
string taskId = context.Request.Params["taskId"];
|
|
string waitId = context.Request.Params["waitId"];
|
|
string state = context.Request.Params["state"];
|
|
string sort = context.Request.Params["sort"];
|
|
string aOpinion = context.Request.Params["a_opinion"];
|
|
string isOver = context.Request.Params["isOver"];
|
|
|
|
FangYar.Model.OA_WAITPROCESSED model = new Model.OA_WAITPROCESSED();
|
|
model.ID = waitId;
|
|
model.TASK_ID = taskId;
|
|
model.STATE = state;
|
|
model.SORT = Convert.ToInt32(sort);
|
|
model.A_OPINION = aOpinion;
|
|
if (bll.editWait(model, isOver))
|
|
{
|
|
msg = "审批成功!";
|
|
code = 1;
|
|
}
|
|
else { msg = "审批失败!"; }
|
|
}
|
|
catch
|
|
{
|
|
msg = "审批失败!";
|
|
}
|
|
returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}";
|
|
return returnstr;
|
|
}
|
|
|
|
//获取访客数量趋势
|
|
private string GetVisitorWeek(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
returnstr = "{\"code\":1,\"msg\":\"\",";
|
|
returnstr += "\"data\":";
|
|
string ORG_ID = context.Request.Params["ORG_ID"];
|
|
string where = "1=1";
|
|
where += " and (ORG_ID ='" + ORG_ID + "' or ORG_ID in (select o.org_id from fire_org o where o.pid = '" + ORG_ID + "') )";
|
|
returnstr += JsonConvert.SerializeObject(bll.TotalDaysAlarm(7, where));
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":-1,\"msg\":\"\",";
|
|
returnstr += "}";
|
|
}
|
|
return returnstr;
|
|
}
|
|
private string GetInfo(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
|
|
//searchTime searchIDCard searchName searchVedName
|
|
string taskId = context.Request.Params["taskId"];
|
|
|
|
if (!string.IsNullOrEmpty(taskId))
|
|
{ }
|
|
returnstr = "{\"code\":0,\"msg\":\"\",";
|
|
|
|
FangYar.Model.TBL_VISITOR visModel = bll.QueryList(1, 1, " ID = '" + taskId + "'", " intime desc ")[0];
|
|
returnstr += "\"count\":1,\"data\":";
|
|
|
|
//访客出入记录表
|
|
string data = "[";
|
|
|
|
string pic2 = "";
|
|
|
|
if (visModel.V_PIC != null && visModel.V_PIC.ToString() != "")
|
|
{
|
|
pic2 = Convert.ToBase64String((byte[])visModel.V_PIC);
|
|
}
|
|
data += "{\"ID\":\"" + visModel.ID + "\",\"NAME\":\"" + visModel.NAME + "\",\"SEX\":\"" + visModel.SEX + "\",\"AGE\":\"" + visModel.AGE + "\",\"UNIT\":\"" + visModel.UNIT + "\",\"NATION\":\"" + visModel.NATION + "\",\"ADDR\":\"" + visModel.ADDR + "\",\"H_REG\":\"" + visModel.H_REG + "\",";
|
|
data += "\"ID_NUM\":\"" + visModel.ID_NUM + "\",\"ORG_ID\":\"" + visModel.ORG_ID + "\",\"M_ID\":\"" + visModel.M_ID + "\",\"M_ADDR\":\"" + visModel.M_ADDR + "\",\"VED_MAN\":\"" + visModel.VED_MAN + "\",";
|
|
data += "\"VED_ID\":\"" + visModel.VED_ID + "\",\"REASON\":\"" + visModel.REASON + "\",\"GOODS\":\"" + visModel.GOODS + "\",";
|
|
data += "\"DRICAR\":\"" + visModel.DRICAR + "\",\"TRAVELNUM\":\"" + visModel.TRAVELNUM + "\",\"ABOUTTIME\":\"" + visModel.ABOUTTIME + "\",\"REGISTERTIME\":\"" + visModel.REGISTERTIME + "\",";
|
|
data += "\"INTIME\":\"" + visModel.INTIME + "\",\"OUTTIME\":\"" + visModel.OUTTIME + "\",\"ACTUALTIME\":\"" + visModel.ACTUALTIME + "\",\"STATE\":\"" + visModel.STATE + "\",";
|
|
data += "\"APPROVALTIME\":\"" + visModel.APPROVALTIME + "\",\"QRINFO\":\"" + visModel.QRINFO + "\",\"INMACHINEID\":\"" + visModel.INMACHINEID + "\",\"INADDR\":\"" + visModel.INADDR + "\",";
|
|
data += "\"OUTMACHINEID\":\"" + visModel.OUTMACHINEID + "\",\"OUTADDR\":\"" + visModel.OUTADDR + "\",";
|
|
data += "\"EXTEND1\":\"" + visModel.EXTEND1 + "\",\"EXTEND2\":\"" + visModel.EXTEND2 + "\",\"EXTEND3\":\"" + visModel.EXTEND3 + "\",\"EXTEND4\":\"" + visModel.EXTEND4 + "\",";
|
|
data += "\"VED_DEPT\":\"" + visModel.VED_DEPT + "\",\"VIS_START_DATA\":\"" + visModel.VIS_START_DATA + "\",\"VIS_START_TIME\":\"" + visModel.VIS_START_TIME + "\",\"PHONE\":\"" + visModel.PHONE + "\",\"FEEDBACK\":\"" + visModel.FEEDBACK + "\",\"VIS_END_DATA\":\"" + visModel.VIS_END_DATA + "\",";
|
|
data += "\"VIS_END_TIME\":\"" + visModel.VIS_END_TIME + "\",\"BIRTHDAY\":\"" + visModel.BIRTHDAY + "\",\"VIS_START_TIME\":\"" + visModel.VIS_START_TIME + "\",\"SIGNOFFICE\":\"" + visModel.SIGNOFFICE + "\",\"LEGALDATE\":\"" + visModel.LEGALDATE + "\",";
|
|
data += "\"V_PIC\":\"" + pic2 + "\",\"INPIC_URL\":\"" + visModel.INPIC_URL + "\"}";
|
|
|
|
returnstr += data + "]";
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]";
|
|
}
|
|
return returnstr;
|
|
}
|
|
//导出
|
|
private void expList(HttpContext context)
|
|
{
|
|
try
|
|
{
|
|
|
|
//searchTime searchIDCard searchName searchVedName
|
|
string OrgId = context.Request.Params["OrgId"];
|
|
string searchTime = context.Request.Params["searchTime"];
|
|
string searchIDCard = context.Request.Params["searchIDCard"];
|
|
string searchName = context.Request.Params["searchName"];
|
|
string searchVedName = context.Request.Params["searchVedName"];
|
|
string page = context.Request.Params["page"];
|
|
string limit = context.Request.Params["limit"];
|
|
int pageIndex = 1;
|
|
int pageSize = 10;
|
|
if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); }
|
|
if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); }
|
|
string where = " 1=1 ";
|
|
if (!string.IsNullOrEmpty(OrgId))
|
|
{
|
|
where += " and (ORG_ID ='" + OrgId + "' or ORG_ID in (select o.org_id from fire_org o where o.pid = '" + OrgId + "') )";
|
|
}
|
|
if (!string.IsNullOrEmpty(searchTime))
|
|
{
|
|
where += " and date_format(INTIME,'%Y-%m-%d') =date_format('" + searchTime + "','%Y-%m-%d')";
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(searchIDCard))
|
|
{
|
|
where += " and EXTEND2 like '%" + searchIDCard + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(searchName))
|
|
{
|
|
where += " and NAME like '%" + searchName + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(searchVedName))
|
|
{
|
|
where += " and VED_MAN like '%" + searchVedName + "%'";
|
|
}
|
|
|
|
int count = bll.GetRecordCount(where);
|
|
if (count == 0)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
//访客出入记录表
|
|
DataTable dt = bll.expList(1, count, where, " intime desc ");
|
|
System.Collections.Generic.Dictionary<string, string> cellHeaders = new System.Collections.Generic.Dictionary<string, string>();
|
|
|
|
cellHeaders.Add("NAME", "姓名");
|
|
cellHeaders.Add("SEX", "性别");
|
|
cellHeaders.Add("AGE", "年龄");
|
|
cellHeaders.Add("UNIT", "单位");
|
|
cellHeaders.Add("NATION", "民族");
|
|
|
|
cellHeaders.Add("ADDR", "住址");
|
|
cellHeaders.Add("H_REG", "户籍");
|
|
cellHeaders.Add("ID_NUM", "身份证号");
|
|
cellHeaders.Add("ORG_NAME", "机构");
|
|
cellHeaders.Add("M_ADDR", "设备地址");
|
|
|
|
cellHeaders.Add("VED_MAN", "被访问人员姓名");
|
|
cellHeaders.Add("REASON", "访问事由");
|
|
cellHeaders.Add("GOODS", "携带重要物品");
|
|
cellHeaders.Add("DRICAR", "驾驶车辆牌照");
|
|
cellHeaders.Add("TRAVELNUM", "访客人数");
|
|
|
|
cellHeaders.Add("ABOUTTIME", "大约访问时长");
|
|
cellHeaders.Add("REGISTERTIME", "登记时间");
|
|
cellHeaders.Add("INTIME", "通过时间");
|
|
cellHeaders.Add("OUTTIME", "离开时间");
|
|
cellHeaders.Add("ACTUALTIME", "实际访问时间");
|
|
|
|
cellHeaders.Add("STATE", "访客状态");
|
|
cellHeaders.Add("APPROVALTIME", "审批时间");
|
|
cellHeaders.Add("INADDR", "进入门禁卡机位置");
|
|
cellHeaders.Add("OUTMACHINEID", "离开门禁卡机");
|
|
cellHeaders.Add("OUTADDR", "离开门禁卡机位置");
|
|
|
|
cellHeaders.Add("EXTEND2", "身份证号");
|
|
cellHeaders.Add("VISIN_NAME", "来访人姓名");
|
|
cellHeaders.Add("VED_DEPT", "被访问部门");
|
|
cellHeaders.Add("VIS_START_TIME", "来访时间");
|
|
cellHeaders.Add("PHONE", "电话");
|
|
|
|
cellHeaders.Add("FEEDBACK", "反馈信息");
|
|
cellHeaders.Add("VIS_END_TIME", "结束时间");
|
|
cellHeaders.Add("BIRTHDAY", "出生日期");
|
|
cellHeaders.Add("SIGNOFFICE", "签发机关");
|
|
cellHeaders.Add("LEGALDATE", "有效期限");
|
|
|
|
FangYar.Common.NPOIExcelHelper.ExportByWeb(dt, null, cellHeaders, DateTime.Now.ToString("yyyyMMddHHmmss") + "访客出入表.xls");
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
}
|
|
public bool IsReusable
|
|
{
|
|
get
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
#region 统计报表详情
|
|
|
|
/// <summary>
|
|
/// 统计报表详情
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
public string VisitorReportDetail(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string orgId = context.Request.Params["orgId"];
|
|
string startDate = context.Request.Params["startDate"];
|
|
string endDate = context.Request.Params["endDate"];
|
|
string isContainBelow = context.Request.Params["iscontain"];
|
|
string page = context.Request.Params["page"];
|
|
string limit = context.Request.Params["limit"];
|
|
int pageIndex = 1;
|
|
int pageSize = 10;
|
|
if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); }
|
|
if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); }
|
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
if (isContainBelow == "1")
|
|
{
|
|
strSql.AppendFormatWithSafe("org_id in (select o.org_id from fire_org o,(select get_Org_child_list('{0}') cids ) s where o.type = '0' and find_in_set(org_id,cids) )", orgId, strSql);
|
|
}
|
|
else
|
|
{
|
|
strSql.AppendFormatWithSafe("org_id = '{0}'", orgId, strSql);
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(startDate))
|
|
{
|
|
strSql.AppendFormatWithSafe(" and date_format(INTIME, '%Y-%m-%d') >= date_format('{0}-01', '%Y-%m-%d') ", startDate, strSql);
|
|
}
|
|
if (!string.IsNullOrEmpty(endDate))
|
|
{
|
|
strSql.AppendFormatWithSafe(" and date_format(INTIME, '%Y-%m-%d') < date_format('{0}-01', '%Y-%m-%d') ", endDate, strSql);
|
|
}
|
|
returnstr = "{\"code\":0,\"msg\":\"\",";
|
|
strSql.Append(" order by INTIME desc ");
|
|
List<Model.TBL_VISITOR> list = bll.QueryList(pageIndex, pageSize, strSql.ToString(), "");
|
|
returnstr += "\"count\":" + list.Count + ",\"data\":";
|
|
if (list.Count() > 0)
|
|
{
|
|
returnstr += JsonHelper.ToJson(list);
|
|
}
|
|
else
|
|
{
|
|
returnstr += "[]";
|
|
|
|
}
|
|
returnstr += "}";
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
|
|
}
|
|
return returnstr;
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 柱状图
|
|
/// <summary>
|
|
/// 柱状图
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
public string VisitorReportBar(HttpContext context)
|
|
{
|
|
string returnstr = string.Empty;
|
|
try
|
|
{
|
|
string orgId = context.Request.Params["orgId"];
|
|
string year = context.Request.Params["year"];
|
|
string isContainBelow = context.Request.Params["isContain"];
|
|
DataTable dt = bll.VisitorReportBar(orgId, year, isContainBelow);
|
|
returnstr = JsonHelper.ToJson(dt);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
returnstr = null;
|
|
}
|
|
return returnstr;
|
|
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region HtmlToWord
|
|
/// <summary>
|
|
/// HtmlToWord
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
private string HtmlToWord(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string by1 = context.Request.Params["by1"];
|
|
|
|
|
|
//实例化一个Document对象
|
|
Document doc = new Document();
|
|
doc.Watermark = null;
|
|
|
|
//添加section和段落
|
|
Section section = doc.AddSection();
|
|
Paragraph para = section.AddParagraph();
|
|
//加载图片到System.Drawing.Image对象, 使用AppendPicture方法将图片插入到段落
|
|
if (by1 != null && by1 != "")
|
|
{
|
|
by1 = HttpUtility.UrlDecode(by1);
|
|
Image image1 = GetImage(by1.Replace("data:image/png;base64,", ""));
|
|
Spire.Doc.Fields.DocPicture picture1 = doc.Sections[0].Paragraphs[0].AppendPicture(image1);
|
|
//设置图片大小
|
|
picture1.Width = 595;
|
|
}
|
|
|
|
String[] headerQiandi = { "姓名", "身份证号", "来访时间", "来访原因", "审批领导" }; //表头字段
|
|
|
|
#region 获取table数据
|
|
string orgId = context.Request.Params["orgId"];
|
|
string startDate = context.Request.Params["startDate"];
|
|
string endDate = context.Request.Params["endDate"];
|
|
string is_content = context.Request.Params["iscontain"];
|
|
int pageIndex = 1;
|
|
int pageSize = 99999;
|
|
string where = null;
|
|
|
|
if (is_content == "1")
|
|
{
|
|
where = " org_id in (select o.org_id from fire_org o,(select get_Org_child_list('" + orgId + "') cids ) s where o.type = '0' and find_in_set(org_id,cids) ) ";
|
|
}
|
|
else
|
|
{
|
|
where = " org_id = '" + orgId + "' ";
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(startDate))
|
|
{
|
|
where += " and date_format(INTIME,'%Y-%m-%d') >= date_format('" + startDate + "-01', '%Y-%m-%d') ";
|
|
}
|
|
if (!string.IsNullOrEmpty(endDate))
|
|
{
|
|
where += " and date_format(INTIME,'%Y-%m-%d') < date_format('" + endDate + "-01', '%Y-%m-%d') ";
|
|
}
|
|
where += " order by INTIME desc";
|
|
List<Model.TBL_VISITOR> list = bll.QueryList(pageIndex, pageSize, where, "");
|
|
#endregion 获取table数据
|
|
|
|
if (list.Count > 0)
|
|
{
|
|
string[][] arrQiandiData = new string[list.Count][];
|
|
for (int i = 0; i < list.Count; i++)
|
|
{
|
|
arrQiandiData[i] = new string[] {
|
|
list[i].NAME,
|
|
list[i].EXTEND2,
|
|
list[i].INTIME.ToString(),
|
|
list[i].REASON,
|
|
list[i].VED_MAN
|
|
};
|
|
}
|
|
#region 创建Word表格
|
|
Table tableQiandi = section.AddTable(); //新建表格
|
|
tableQiandi.ResetCells(list.Count + 1, headerQiandi.Length);
|
|
tableQiandi.TableFormat.Borders.BorderType = BorderStyle.Single;
|
|
TableRow rowQiandi = tableQiandi.Rows[0]; //添加行
|
|
rowQiandi.IsHeader = true; //设为表头
|
|
rowQiandi.Height = 30;
|
|
rowQiandi.HeightType = TableRowHeightType.Auto;
|
|
for (int i = 0; i < headerQiandi.Length; i++) //生成表头
|
|
{
|
|
rowQiandi.Cells[i].Width = 145;
|
|
rowQiandi.Height = 30;
|
|
rowQiandi.Cells[i].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
|
|
rowQiandi.HeightType = TableRowHeightType.Auto;
|
|
Paragraph p = rowQiandi.Cells[i].AddParagraph();
|
|
AddTextRange(section, p, headerQiandi[i], 14, true, "黑体", HorizontalAlignment.Center);
|
|
}
|
|
|
|
for (int r = 0; r < arrQiandiData.Length; r++) //生成表体
|
|
{
|
|
TableRow dataRow = tableQiandi.Rows[r + 1];
|
|
dataRow.RowFormat.BackColor = Color.Empty;
|
|
for (int c = 0; c < arrQiandiData[r].Length; c++)
|
|
{
|
|
dataRow.Cells[c].Width = 145;
|
|
dataRow.Height = 20;
|
|
dataRow.Cells[c].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
|
|
TextRange tr = dataRow.Cells[c].AddParagraph().AppendText(arrQiandiData[r][c]);
|
|
tr.CharacterFormat.FontSize = 12;
|
|
}
|
|
}
|
|
#endregion 创建Word表格
|
|
}
|
|
//保存到文档
|
|
string path = AppDomain.CurrentDomain.BaseDirectory + "\\OA\\VisitorReport\\";
|
|
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".doc";
|
|
if (Directory.Exists(path) == false)//如果不存在就创建文件夹
|
|
{
|
|
Directory.CreateDirectory(path);
|
|
}
|
|
doc.SaveToFile(path + fileName, FileFormat.Doc);
|
|
returnstr = "{\"code\":0,\"msg\":\"\",\"url\":\"/OA/VisitorReport/" + fileName + "\"}";
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\"}";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
private Image GetImage(string fileName)
|
|
{
|
|
byte[] bytes = Convert.FromBase64String(fileName);
|
|
using (MemoryStream ms = new MemoryStream(bytes))
|
|
{
|
|
return Image.FromStream(ms);
|
|
}
|
|
}
|
|
|
|
|
|
private void AddTextRange(Section section, Paragraph pragraph, string word, float fontSize, bool isBold, string fontName, Spire.Doc.Documents.HorizontalAlignment alignType)
|
|
{
|
|
|
|
TextRange textRange = pragraph.AppendText(word);
|
|
textRange.CharacterFormat.FontSize = fontSize;
|
|
textRange.CharacterFormat.Bold = isBold;
|
|
textRange.CharacterFormat.FontName = fontName;
|
|
pragraph.Format.HorizontalAlignment = alignType;
|
|
}
|
|
|
|
|
|
|
|
//查询
|
|
private string getVisitorList(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string OrgId = context.Request.Params["OrgId"];
|
|
string name = context.Request.Params["name"];
|
|
string startDate = context.Request.Params["startDate"];
|
|
string endDate = context.Request.Params["endDate"];
|
|
string page = context.Request.Params["page"];
|
|
string limit = context.Request.Params["limit"];
|
|
int pageIndex = 1;
|
|
int pageSize = 10;
|
|
if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); }
|
|
if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); }
|
|
string where = " 1=1 ", regwhere = " 1=1 ";
|
|
if (!string.IsNullOrEmpty(OrgId))
|
|
{
|
|
where += " and ORG_ID ='" + OrgId + "'";
|
|
regwhere += " and ORG_ID ='" + OrgId + "'";
|
|
}
|
|
if (!string.IsNullOrEmpty(name))
|
|
{
|
|
where += " and name ='" + name + "'";
|
|
regwhere += " and name ='" + name + "'";
|
|
}
|
|
if (!string.IsNullOrEmpty(startDate))
|
|
{
|
|
where += " and date_format(intime,'%Y-%m-%d %H:%i:%s') >= date_format('" + startDate + "', '%Y-%m-%d %H:%i:%s') ";
|
|
regwhere += " and date_format(registertime, '%Y-%m-%d %H:%i:%s') >= date_format('" + startDate + "', '%Y-%m-%d %H:%i:%s') ";
|
|
}
|
|
if (!string.IsNullOrEmpty(endDate))
|
|
{
|
|
where += " and date_format(intime,'%Y-%m-%d %H:%i:%s') <= date_format('" + endDate + "', '%Y-%m-%d %H:%i:%s') ";
|
|
regwhere += " and date_format(registertime, '%Y-%m-%d %H:%i:%s') <= date_format('" + endDate + "', '%Y-%m-%d %H:%i:%s') ";
|
|
}
|
|
|
|
returnstr = "{\"code\":0,\"msg\":\"\",";
|
|
int count = bll.GetQueryVisitorListCount(where, regwhere);
|
|
returnstr += "\"count\":" + count + ",\"data\":";
|
|
if (count == 0)
|
|
{
|
|
returnstr += "[]";
|
|
}
|
|
else
|
|
{
|
|
//访客出入记录表
|
|
DataTable dt = bll.QueryVisitorList(pageIndex, pageSize, where, regwhere);
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(dt);
|
|
|
|
}
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
|
|
}
|
|
return returnstr;
|
|
}
|
|
|
|
|
|
//查询
|
|
private string getVisitorTrajectoryList(HttpContext context)
|
|
{
|
|
string returnstr = "";
|
|
try
|
|
{
|
|
string OrgId = context.Request.Params["OrgId"];
|
|
string name = context.Request.Params["name"];
|
|
string visitorTime = context.Request.Params["visitorTime"];
|
|
|
|
returnstr = "{\"code\":0,\"msg\":\"\",";
|
|
|
|
//访客出入记录表
|
|
DataTable dt = bll.QueryVisitorInfoList(OrgId, name, visitorTime);
|
|
returnstr += "\"count\":" + dt.Rows.Count + ",\"data\":";
|
|
returnstr += FangYar.Common.JsonHelper.ToJson(dt);
|
|
returnstr += "}";
|
|
}
|
|
catch
|
|
{
|
|
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
|
|
}
|
|
return returnstr;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|