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.
226 lines
11 KiB
226 lines
11 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Reflection;
|
|
using System.Collections;
|
|
using System.IO;
|
|
using System.Text;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using System.Configuration;
|
|
using System.Data;
|
|
|
|
namespace FangYar.WebUI.Handle
|
|
{
|
|
/// <summary>
|
|
/// AKSCarRec 的摘要说明 阿克苏支队
|
|
/// </summary>
|
|
public class AKSPersonRec : IHttpHandler
|
|
{
|
|
|
|
FangYar.BLL.TBL_PERSONACCESS bll = new FangYar.BLL.TBL_PERSONACCESS();
|
|
FangYar.BLL.TBL_VISITOR vis_bll = new FangYar.BLL.TBL_VISITOR();
|
|
|
|
public void ProcessRequest(HttpContext context)
|
|
{
|
|
context.Response.ContentType = "text/plain";
|
|
string returnStr = "";
|
|
|
|
returnStr = ReceiveAlarmInfoPlate(context);
|
|
context.Response.Write(returnStr);
|
|
}
|
|
private string ReceiveAlarmInfoPlate(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)
|
|
{
|
|
FangYar.BLL.TBL.SysEmpBLL ebll = new FangYar.BLL.TBL.SysEmpBLL();
|
|
FangYar.BLL.OA.OA_ATTENDANCE_RECORD arbll = new FangYar.BLL.OA.OA_ATTENDANCE_RECORD();
|
|
FangYar.BLL.OA.TBL_EPUIP_ORG EpuOrgBll = new FangYar.BLL.OA.TBL_EPUIP_ORG();
|
|
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++)
|
|
{
|
|
string avatar = rz_data[i].avatar.Replace("\u003d", "=");
|
|
byte[] avatar_byte = Convert.FromBase64String(avatar);
|
|
string ImagePath = GetFilePath(avatar_byte);
|
|
rz_data[i].imagePath = ImagePath;
|
|
rz_data[i].orgId = "fc21743dcaad4225b8be141dd47d8a2f";
|
|
isadd = bll.MjData_Add(rz_data[i]);
|
|
if (rz_data[i].result == "1" && rz_data[i].visitorFlag == "0") {
|
|
FangYar.Model.TBL.TBL_SYS_EMP_Model emodel = ebll.GetModelByIDnumber("fc21743dcaad4225b8be141dd47d8a2f", rz_data[i].idNumber);
|
|
DataTable dt = arbll.GetAttendanceRecordListByUID(emodel.USERS_UID, DateTime.Now.ToString("yyyy-MM-dd"));
|
|
for (int y=0;y<dt.Rows.Count;y++)
|
|
{
|
|
string UP_STATE = dt.Rows[y]["UP_STATE"].ToString();
|
|
string DOWN_STATE = dt.Rows[y]["DOWN_STATE"].ToString();
|
|
string newTime = DateTime.Now.ToString();
|
|
DateTime D_newTime = DateTime.Parse(newTime);
|
|
if (UP_STATE == "0" || string.IsNullOrEmpty(UP_STATE))
|
|
{
|
|
string UP_START_DATE = dt.Rows[y]["UP_START_DATE"].ToString();
|
|
string UP_END_DATE = dt.Rows[y]["UP_END_DATE"].ToString();
|
|
|
|
DateTime D_UP_START_DATE = DateTime.Parse(UP_START_DATE);
|
|
DateTime D_UP_END_DATE = DateTime.Parse(UP_END_DATE);
|
|
if (DateTime.Compare(D_newTime, D_UP_START_DATE) >= 0 && DateTime.Compare(D_newTime, D_UP_END_DATE) <= 0)
|
|
{
|
|
FangYar.Model.OA.TBL_EPUIP_ORG eorgmodel = EpuOrgBll.EpuIdGetModel(rz_data[i].deviceNumber);
|
|
FangYar.Model.OA.OA_ATTENDANCE_RECORD model = new Model.OA.OA_ATTENDANCE_RECORD();
|
|
model.ID = dt.Rows[y]["ID"].ToString();
|
|
model.UP_LOCATION = eorgmodel.EXTEND3;
|
|
model.UP_REPORT_TIME = newTime;
|
|
model.UP_REMARKS = "门禁识别考勤_" + eorgmodel.ADDR;
|
|
model.UP_STATE = "1";
|
|
model.UP_PHOTO = ImagePath;
|
|
arbll.UpAttendanceReport(model);
|
|
}
|
|
}
|
|
if (DOWN_STATE == "0" || string.IsNullOrEmpty(DOWN_STATE))
|
|
{
|
|
string DOWN_START_DATE = dt.Rows[y]["DOWN_START_DATE"].ToString();
|
|
string DOWN_END_DATE = dt.Rows[y]["DOWN_END_DATE"].ToString();
|
|
|
|
DateTime D_DOWN_START_DATE = DateTime.Parse(DOWN_START_DATE);
|
|
DateTime D_DOWN_END_DATE = DateTime.Parse(DOWN_END_DATE);
|
|
|
|
if (DateTime.Compare(D_newTime, D_DOWN_START_DATE) >= 0 && DateTime.Compare(D_newTime, D_DOWN_END_DATE) <= 0)
|
|
{
|
|
FangYar.Model.OA.TBL_EPUIP_ORG eorgmodel = EpuOrgBll.EpuIdGetModel(rz_data[i].deviceNumber);
|
|
FangYar.Model.OA.OA_ATTENDANCE_RECORD model = new Model.OA.OA_ATTENDANCE_RECORD();
|
|
model.ID = dt.Rows[y]["ID"].ToString();
|
|
model.DOWN_LOCATION = eorgmodel.EXTEND3;
|
|
model.DOWN_REPORT_TIME = newTime;
|
|
model.DOWN_REMARKS = "门禁识别考勤_" + eorgmodel.ADDR;
|
|
model.DOWN_STATE = "1";
|
|
model.DOWN_PHOTO = ImagePath;
|
|
arbll.UpAttendanceReport(model);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
WriteLog("\r\n 数据有误: 字符串不是json格式");
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
WriteLog(e.Message);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
WriteLog("输入流的长度为0!");
|
|
}
|
|
|
|
if (isadd == true)
|
|
{
|
|
return "true";
|
|
}
|
|
else
|
|
{
|
|
return "false";
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// base转图片保存到服务器
|
|
/// </summary>
|
|
/// <param name="msg"></param>
|
|
private string GetFilePath(byte[] bytes)
|
|
{
|
|
string fileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString();//年月
|
|
string ImageFilePath = "/Attachment" + "/Person/aks/" + DateTime.Now.Year.ToString() + "/"+DateTime.Now.Month.ToString();
|
|
if (System.IO.Directory.Exists(HttpContext.Current.Server.MapPath(ImageFilePath)) == false)//如果不存在就创建文件夹
|
|
{
|
|
System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath(ImageFilePath));
|
|
}
|
|
string ImagePath;
|
|
//string str = System.DateTime.Now.ToString("yyyyHHddHHmmss");
|
|
string str = System.DateTime.Now.ToString("yyyyHHddHHmmssfff") + Guid.NewGuid().ToString();
|
|
ImagePath = HttpContext.Current.Server.MapPath(ImageFilePath) + "/" + str;//定义图片名称
|
|
File.WriteAllBytes(ImagePath + ".png", bytes); //保存图片到服务器,然后获取路径
|
|
return ImageFilePath + "/" + str + ".png";//获取保存后的路径
|
|
|
|
}
|
|
|
|
|
|
private void WriteLog(string msg)
|
|
{
|
|
FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = msg, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "AKSperson" });
|
|
//string path = AppDomain.CurrentDomain.BaseDirectory + "log\\AKSperson\\";
|
|
//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);
|
|
// }
|
|
//}
|
|
}
|
|
public bool IsReusable
|
|
{
|
|
get
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|