软测单独项目
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.
 
 
 
 
 
 

496 lines
19 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 System.IO;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace FangYar.WebUI.ashx
{
/// <summary>
/// OaLeaveHandler 的摘要说明
/// </summary>
public class PersonAccessHandler : IHttpHandler
{
private FangYar.BLL.TBL_PERSONACCESS bll = new FangYar.BLL.TBL_PERSONACCESS();
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string action = context.Request.Params["Action"];
string returnstr = "";
switch (action)
{
case "List":
returnstr = perList(context);
break;
case "APPCountList":
returnstr = APPCountList(context);
break;
case "EpuReport":
returnstr = EpuReport(context);
break;
case "personAccessSta":
returnstr = personAccessSta(context);
break;
case "personTravel":
returnstr = personTravel(context);
break;
case "TravelList":
returnstr = TravelList(context);
break;
}
context.Response.Write(returnstr);
}
//查询
private string perList(HttpContext context)
{
string returnstr = "";
try
{
string OrgId = context.Request.Params["OrgId"];
string keyword = context.Request.Params["keywords"];
string page = context.Request.Params["page"];
string limit = context.Request.Params["limit"];
string startTime = context.Request.Params["startTime"];
string endTime = context.Request.Params["endTime"];
string treeID = context.Request.Params["treeID"];
string type = context.Request.Params["type"];
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(treeID) && treeID != OrgId)
{
where = " ORG_ID = '" + treeID + "'";
}
else
{
where = " ORG_ID = '" + OrgId + "'";
}
if (!string.IsNullOrEmpty(startTime))
{
if (!startTime.Contains("请选择"))
{
where += " and start_time >= date_format('" + startTime + "','%Y-%m-%d %H:%i:%s')";
}
}
if (!string.IsNullOrEmpty(endTime))
{
if (!endTime.Contains("请选择"))
{
where += " and start_time <= date_format('" + endTime + "','%Y-%m-%d %H:%i:%s')";
}
}
if (!string.IsNullOrEmpty(keyword))
{
if (where != null)
{
where += " and ";
}
where += "( name like '%" + keyword + "%' or ADDR like '%" + keyword + "%' or EXTEND2 like '%" + keyword + "%')";
}
returnstr = "{\"code\":0,\"msg\":\"\",";
int count = bll.GetRecordCount(where);
returnstr += "\"count\":" + count + ",\"data\":";
if (count == 0)
{
returnstr += "[]";
}
else
{
//List<FangYar.Model.TBL_PERSONACCESS> list = bll.QueryList(pageIndex, pageSize, where, "");
//returnstr += FangYar.Common.JsonHelper.ToJson(list);
string data = "[";
List<FangYar.Model.TBL_PERSONACCESS> list = bll.QueryList(pageIndex, pageSize, where, " START_TIMESTAMP DESC ");
for (int i = 0; i < list.Count; i++)
{
string pic1 = "";
string pic2 = "";
if (list[i].PICTURE != null && list[i].PICTURE.ToString() != "")
{
pic1 = Convert.ToBase64String((byte[])list[i].PICTURE);
}
if (list[i].CLOSEUP_PIC != null && list[i].CLOSEUP_PIC.ToString() != "")
{
pic2 = Convert.ToBase64String((byte[])list[i].CLOSEUP_PIC);
}
data += "{\"ID\":\"" + list[i].ID + "\",\"NAME\":\"" + list[i].NAME.Replace("\0", "") + "\",\"EMPID\":\"" + list[i].EMPID + "\",\"SEX\":\"" + list[i].SEX + "\",\"PROF\":\"" + list[i].PROF + "\",\"START_TIMESTAMP\":\"" + list[i].START_TIMESTAMP + "\",\"START_TIME\":\"" + list[i].START_TIME + "\",";
data += "\"CAMERA_ID\":\"" + list[i].CAMERA_ID + "\",\"ORG_ID\":\"" + list[i].ORG_ID + "\",\"INOROUT\":\"" + list[i].INOROUT + "\",\"ADDR\":\"" + list[i].ADDR + "\",\"ORG_NAME\":\"" + list[i].ORG_NAME + "\",";
data += "\"EXTEND1\":\"" + list[i].EXTEND1 + "\",\"EXTEND2\":\"" + list[i].EXTEND2 + "\",\"EXTEND3\":\"" + list[i].EXTEND3 + "\",\"EXTEND4\":\"" + list[i].EXTEND4 + "\",";
data += "\"CLOSEUP_PIC_URL\":\"" + list[i].CLOSEUP_PIC_URL + "\",";
data += "\"PICTURE\":\"" + pic1 + "\",\"CLOSEUP_PIC\":\"" + pic2 + "\"}";
if (i != list.Count - 1)
{
data += ",";
}
}
returnstr += data + "]";
}
returnstr += "}";
}
catch
{
returnstr = "{\"code\":0,\"msg\":\"\",\"count\":0,\"data\":[]}";
}
return returnstr;
}
//查询
private string APPCountList(HttpContext context)
{
string returnstr = "";
try
{
string orgId = context.Request.Params["orgId"];
string strSql = "select * from viewinorout where org_id = '" + orgId + "'";
returnstr = "{\"code\":0,\"msg\":\"\",";
returnstr += "\"count\":" + 1 + ",\"data\":";
DataTable dt = bll.GetAPPList(strSql);
//DataTable dt = new DataTable();
if (dt.Rows.Count > 0)
{
returnstr += "{ ";
for (int i = 0; i < dt.Rows.Count; i++)
{
if (i == 0)
{
returnstr += "\"" + dt.Rows[i]["TYPE"] + "\":" + "\"" + dt.Rows[i]["NUM"] + "\"";
}
else
{
returnstr += ",\"" + dt.Rows[i]["TYPE"] + "\":" + "\"" + dt.Rows[i]["NUM"] + "\"";
}
}
returnstr += "}";
}
else
{
returnstr += "{ }";
}
//returnstr += FangYar.Common.JsonHelper.ToJson(dt);
returnstr += "}";
}
catch
{
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
}
return returnstr;
}
private string EpuReport2(HttpContext context)
{
WriteLog("进入!");
string returnstr = "";
try
{
WriteLog(JsonConvert.SerializeObject(context.Request.QueryString));
string context_str = JsonConvert.SerializeObject(context.Request.Params);
WriteLog("\r\n" + context_str);
string libraryId = context.Request.Params["libraryId"];
string idNumber = context.Request.Params["idNumber"];
string name = context.Request.Params["name"];
string result = context.Request.Params["result"];
string authTime = context.Request.Params["authTime"];
string deviceNumber = context.Request.Params["deviceNumber"];
string deviceName = context.Request.Params["deviceName"];
string avatar = context.Request.Params["avatar"];
string visitorFlag = context.Request.Params["visitorFlag"];
string icNumber = context.Request.Params["icNumber"];
string return_str = "libraryId=" + libraryId + "&idNumber=" + idNumber + "&name=" + name + "&result=" + result + "&authTime=" + authTime + "&deviceNumber=" + deviceNumber + "&deviceNamer=" + deviceName + "&visitorFlag=" + visitorFlag + "&avatar=" + avatar + "&icNumber=" + icNumber;
WriteLog("\r\n" + return_str);
FangYar.Model.MJ_DATA mj_data = new FangYar.Model.MJ_DATA();
mj_data.libraryId = libraryId;
mj_data.idNumber = idNumber;
mj_data.name = name;
mj_data.result = result;
mj_data.authTime = authTime;
mj_data.deviceNumber = deviceNumber;
mj_data.deviceName = deviceName;
mj_data.avatar = avatar;
mj_data.visitorFlag = visitorFlag;
mj_data.icNumber = icNumber;
returnstr += "返回值:";
bool flag = bll.MjData_Add(mj_data);
returnstr += flag;
}
catch (Exception e)
{
WriteLog("\r\n错误!" + e);
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
}
return returnstr;
}
//石河子硬件推送的数据接收
private string EpuReport(HttpContext context)
{
WriteLog("进入!");
HttpRequest request = context.Request;
Stream stream = request.InputStream;
string data = string.Empty;
string response = string.Empty;
bool isadd = false;
if (stream.Length != 0)
{
try
{
StreamReader streamReader = new StreamReader(stream);
data = streamReader.ReadToEnd();
#region 用于传递数据的输出
if (stream.Length != 0)
{
WriteLog(data.ToString());
}
#endregion
string redata_string = data.Replace(Environment.NewLine, "");
string redata_string_json = "[";
if (redata_string.Contains("} {"))
{
redata_string = redata_string.Replace("} {", "},{");
}
else if (redata_string.Contains("}{"))
{
redata_string = redata_string.Replace("}{", "},{");
}
redata_string_json += redata_string;
redata_string_json += "]";
bool flag = false;
try
{
JArray jsonStr = JsonConvert.DeserializeObject<JArray>(redata_string_json);
flag = true;
}
catch (Exception e)
{
flag = false;
}
if (flag)
{
List<FangYar.Model.MJ_DATA> rz_data = JsonConvert.DeserializeObject<List<FangYar.Model.MJ_DATA>>(redata_string_json);
for (int i = 0; i < rz_data.Count; i++)
{
bll.MjData_Add(rz_data[i]);
}
}
else
{
WriteLog("\r\n 数据有误: 字符串不是json格式");
}
}
catch (Exception e)
{
WriteLog(e.Message);
}
}
else
{
WriteLog("输入流的长度为0!");
}
if (isadd == true)
{
return "true";
}
else
{
return "false";
}
}
private void WriteLog(string msg)
{
string path = AppDomain.CurrentDomain.BaseDirectory + "log\\PersonAccessHandler\\";
string filename = DateTime.Now.ToString("yyyyMMdd") + ".txt";
if (Directory.Exists(path) == false)//如果不存在就创建文件夹
{
Directory.CreateDirectory(path);
}
FileInfo file = new FileInfo(path + filename);
if (!file.Exists)
{
FileStream fs;
fs = File.Create(path + filename);
fs.Close();
}
using (FileStream fs = new FileStream(path + filename, FileMode.Append, FileAccess.Write))
{
using (StreamWriter sw = new StreamWriter(fs))
{
sw.WriteLine("时间:" + DateTime.Now.ToString() + " 信息:" + msg);
}
}
}
//请假统计
private string personAccessSta(HttpContext context)
{
string returnstr = "";
int code = -1;
string msg = "";
string data = "";
string strWhere = " 1=1";
try
{
string ORG_ID = context.Request.Params["Org_Id"];
string S_Time = context.Request.Params["S_Time"];
string E_Time = context.Request.Params["E_Time"];
if (!string.IsNullOrEmpty(ORG_ID))
{
code = 1;
strWhere += " and ORG_ID='" + ORG_ID + "'";
if (!string.IsNullOrEmpty(S_Time) && !string.IsNullOrEmpty(E_Time))
{
strWhere += " and (date_format('" + S_Time + "','%Y-%m-%d')) < START_TIME";
strWhere += " and (date_format('" + E_Time + "','%Y-%m-%d')) > START_TIME";
}
else
{
strWhere += " and date_format(now(),'%Y-%m-%d') = date_format(START_TIME,'%Y-%m-%d')";
}
DataTable dt = bll.personAccessSta(strWhere);
data = FangYar.Common.JsonHelper.ToJson(dt);
}
}
catch
{
msg = "获取失败!";
}
returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":" + data + "}";
return returnstr;
}
//获取进出轨迹人员列表
private string personTravel(HttpContext context)
{
string returnstr = "";
try
{
string OrgId = context.Request.Params["OrgId"];
string keyword = context.Request.Params["keywords"];
string page = context.Request.Params["page"];
string limit = context.Request.Params["limit"];
string searchTime = context.Request.Params["searchTime"];
string searchIDCard = context.Request.Params["searchIDCard"];
string searchName = context.Request.Params["searchName"];
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 '" + searchTime + "'= date_format(t.start_time,'%Y-%m')";
}
if (!string.IsNullOrEmpty(searchIDCard))
{
where += " and extend2= '" + searchIDCard + "'";
}
if (!string.IsNullOrEmpty(searchName))
{
where += " and name= '" + searchName + "'";
}
returnstr = "{\"code\":0,\"msg\":\"\",";
//获取人员出入表中查询条件下的重复人员数据
DataTable dt = bll.getPAccessRepeat(where);
returnstr += "\"count\":" + dt.Rows.Count + ",\"data\":";
returnstr += FangYar.Common.JsonHelper.ToJson(dt);
returnstr += "}";
}
catch
{
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
}
return returnstr;
}
//获取进出轨迹
private string TravelList(HttpContext context)
{
string returnstr = "";
try
{
string OrgId = context.Request.Params["OrgId"];
string searchTime = context.Request.Params["searchTime"];
string searchIDCard = context.Request.Params["searchIDCard"];
string where = " 1=1 ";
if (!string.IsNullOrEmpty(searchTime))
{
where += " and '" + searchTime + "'= date_format(t.start_time,'%Y-%m')";
}
if (!string.IsNullOrEmpty(searchIDCard))
{
where += " and extend2= '" + searchIDCard + "'";
}
returnstr = "{\"code\":0,\"msg\":\"\",";
//获取人员出入记录
DataTable dt = bll.TravelList(where);
returnstr += "\"count\":" + dt.Rows.Count + ",\"data\":";
returnstr += FangYar.Common.JsonHelper.ToJson(dt);
returnstr += "}";
}
catch
{
returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}";
}
return returnstr;
}
public bool IsReusable
{
get
{
return false;
}
}
}
}