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 { /// /// OaLeaveHandler 的摘要说明 /// 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 list = bll.QueryList(pageIndex, pageSize, where, ""); //returnstr += FangYar.Common.JsonHelper.ToJson(list); string data = "["; List 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(redata_string_json); flag = true; } catch (Exception e) { flag = false; } if (flag) { List rz_data = JsonConvert.DeserializeObject>(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; } } } }