/// <summary> /// 同步门禁数据 /// </summary> /// <param name="output"></param> public void SyncDoorData(Action <string, eOutputType> output, AccessDapperDber doorDapperDber) { int res = 0; string sql = " select * from acc_monitor_log where time>#2018-08-08#"; sql += " order by time"; DataTable dtNum = doorDapperDber.ExecuteDataTable(sql); if (dtNum.Rows.Count > 0) { for (int i = 0; i < dtNum.Rows.Count; i++) { string id = dtNum.Rows[i]["id"].ToString(); string userId = dtNum.Rows[i]["pin"].ToString(); string deviceId = dtNum.Rows[i]["device_id"].ToString(); string consumerName = GetConsumer(userId, doorDapperDber); string doorName = GetMachine(deviceId, doorDapperDber); if (string.IsNullOrEmpty(consumerName)) { continue; } if (string.IsNullOrEmpty(doorName)) { continue; } CmcsGuardInfo entity = Dbers.GetInstance().SelfDber.Entity <CmcsGuardInfo>("where NId=:NId", new { NId = id }); if (entity == null) { entity = new CmcsGuardInfo() { DataFrom = "智能化", F_ConsumerId = userId, F_ConsumerName = consumerName, F_InOut = "1", F_ReaderId = deviceId, F_ReaderName = doorName, NId = id, F_ReadDate = DateTime.Parse(dtNum.Rows[i]["time"].ToString()) }; res += Dbers.GetInstance().SelfDber.Insert(entity); } } } output(string.Format("同步门禁数据{0}条", res), eOutputType.Normal); }
public void SyncDoorEventData(Action <string, eOutputType> output) { int res = 0; try { List <Dictionary <string, object> > acsEventList = new List <Dictionary <string, object> >(); List <string> cameraNameList = new List <string>(); DoorEventRequest doorEventRequest = new DoorEventRequest() { startTime = DateTime.Now.AddDays(-10), endTime = DateTime.Now, pageNo = 1, pageSize = 1000 }; string uri = "/artemis/api/acs/v1/door/events"; string body = JsonHelper.SerializeObject(doorEventRequest); byte[] resultByte = HttpUtillib.HttpPost(uri, body, 20); string resultStr = Encoding.UTF8.GetString(resultByte); Result result = JsonHelper.DeserializeJsonToObject <Result>(resultStr); if (result.Code.Equals("0")) { ResultData resultData = JsonHelper.DeserializeJsonToObject <ResultData>(result.Data.ToString()); acsEventList = JsonHelper.DeserializeJsonToObject <List <Dictionary <string, object> > >(resultData.List.ToString()); foreach (Dictionary <string, object> doorEvents in acsEventList) { int eventType = Convert.ToInt32(doorEvents["eventType"]); string personName = doorEvents["personName"].ToString(); //只处理成功的事件 if (dicEventType.ContainsKey(eventType) && !string.IsNullOrWhiteSpace(personName)) { string eventId = doorEvents["eventId"].ToString(); DateTime eventTime = DateTime.Parse(doorEvents["eventTime"].ToString()); string personId = doorEvents["personId"].ToString(); string doorIndexCode = doorEvents["doorIndexCode"].ToString(); string doorName = doorEvents["doorName"].ToString(); CmcsGuardInfo entity = Dbers.GetInstance().SelfDber.Entity <CmcsGuardInfo>("where NId=:NId", new { NId = eventId }); if (entity == null) { entity = new CmcsGuardInfo() { DataFrom = "智能化", F_ConsumerId = personId, F_ConsumerName = personName, F_InOut = "1", F_ReaderId = doorIndexCode, F_ReaderName = doorName, NId = eventId, F_ReadDate = eventTime, Remark = dicEventType[eventType] }; res += Dbers.GetInstance().SelfDber.Insert(entity); } } } } } catch (Exception ex) { output("同步门禁数据异常" + ex.Message, eOutputType.Error); return; } output(string.Format("同步门禁数据{0}条", res), eOutputType.Normal); }