/// <summary> /// 安防小区人脸抓拍信息订阅 /// </summary> private void XiaoQuData() { HttpUtillib.SetPlatformInfo("27628571", "TJzjgMqgM41EezwD36aV", "10.172.33.2", 443, true); // 组装POST请求body //string body = "{\"eventTypes\":[131614],\"eventDest\":\"" + url + "\",\"subType\":1,\"eventLvl\":[2]}"; string body = "{\"eventTypes\":[131614,1157632001,1157632002,1157632003,1157632004,1157632005],\"eventDest\":\"http://112.17.130.233:4474/api/v1/FireFighting/XiaoQuAnFang/GetAction\",\"subType\":0,\"eventLvl\":[2]}"; // 填充Url string uri = "/artemis/api/eventService/v1/eventSubscriptionByEventTypes"; // 发起POST请求,超时时间15秒,返回响应字节数组 byte[] result = HttpUtillib.HttpPost(uri, body, 15); if (result != null) { string tmp = System.Text.Encoding.UTF8.GetString(result); Result ady = JsonConvert.DeserializeObject <Result>(tmp); if (ady.code == 0) { MessageBox.Show("订阅成功!"); } } else { MessageBox.Show("/api/eventService/v1/eventSubscriptionByEventTypes: POST fail"); } }
/// <summary> /// 执行所有任务 /// </summary> void ExecuteAllTask() { DataHandlerDAO dataHandlerDAO = DataHandlerDAO.GetInstance(); SqlServerDapperDber qgcDapperDber = new SqlServerDapperDber(commonDAO.GetCommonAppletConfigString("全过程接口连接字符串")); taskSimpleScheduler.StartNewTask("同步全过程基础信息", () => { dataHandlerDAO.SyncBaseInfoForCHLGL(this.rTxtOutputer.Output, qgcDapperDber); //dataHandlerDAO.SyncBaseInfoForDYJH(this.rTxtOutputer.Output, qgcDapperDber); dataHandlerDAO.SyncBaseInfoForGYS(this.rTxtOutputer.Output, qgcDapperDber); //dataHandlerDAO.SyncBaseInfoForCHYSH(this.rTxtOutputer.Output, qgcDapperDber); dataHandlerDAO.SyncBaseInfoForKB(this.rTxtOutputer.Output, qgcDapperDber); dataHandlerDAO.SyncBaseInfoForMZ(this.rTxtOutputer.Output, qgcDapperDber); dataHandlerDAO.SyncBaseInfoForDYJHK(this.rTxtOutputer.Output, qgcDapperDber); dataHandlerDAO.SyncBaseInfoForYAPFK(this.rTxtOutputer.Output, qgcDapperDber); dataHandlerDAO.SyncBaseInfoForQCLMYGP(this.rTxtOutputer.Output, qgcDapperDber); dataHandlerDAO.SyncBaseInfoForWZJHCL(this.rTxtOutputer.Output, qgcDapperDber); dataHandlerDAO.SyncBaseInfoForJLMZ(this.rTxtOutputer.Output, qgcDapperDber); dataHandlerDAO.SyncBaseInfoForJLPZ(this.rTxtOutputer.Output, qgcDapperDber); dataHandlerDAO.SyncBaseInfoForcCLGLLSPZ(this.rTxtOutputer.Output, qgcDapperDber); }, 10000, OutputError); taskSimpleScheduler.StartNewTask("处理集控首页数据", () => { dataHandlerDAO.HandleHomePageData(this.rTxtOutputer.Output); }, 10000, OutputError); //初始化Api string ip = commonDAO.GetCommonAppletConfigString("海康平台地址"); int port = commonDAO.GetCommonAppletConfigInt32("海康协议端口号"); string Appkey = commonDAO.GetCommonAppletConfigString("海康Appkey"); string Secret = commonDAO.GetCommonAppletConfigString("海康Secret"); HttpUtillib.SetPlatformInfo(Appkey, Secret, ip, port, false); taskSimpleScheduler.StartNewTask("同步门禁数据", () => { dataHandlerDAO.SyncDoorEventData(this.rTxtOutputer.Output); }, 60000, OutputError); }
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); }
public object GetAllIdCardsFormHik() { string logPath = HttpContext.Current.Server.MapPath("~/logs/menjin/"); try { //设置推送的参数(由海康提供) HttpUtillib.SetPlatformInfo(Config.GetValue("appKey"), Config.GetValue("appSecret"), Config.GetValue("appIP"), int.Parse(Config.GetValue("appPort")), bool.Parse(Config.GetValue("isHttps"))); //根据身份证号获取海康人员信息 byte[] bytes = HttpUtillib.HttpPost("/artemis/api/resource/v2/person/personList", Newtonsoft.Json.JsonConvert.SerializeObject(new { pageSize = 1000, pageNo = 1 }), 300); string data = System.Text.Encoding.UTF8.GetString(bytes);//获取调用结果 dynamic dy = JsonConvert.DeserializeObject <ExpandoObject>(data); //如果调用成功 List <string> lstIdCards = new List <string>(); if (dy.code == "0") { StringBuilder sbSql = new StringBuilder("begin\r\n"); deptBll.ExecuteSql("delete from tmp_idcards"); List <object> lstUsers = dy.data.list; long total = dy.data.total; if (total <= 1000) { foreach (object obj in lstUsers) { dy = obj; long certType = dy.certificateType; if (certType == 111) { sbSql.AppendFormat("insert into tmp_idcards(idcard) values('{0}');\r\n", dy.certificateNo); lstIdCards.Add(dy.certificateNo); } } } else { int page = 2; //分页设置,因接口最多支持1000个查询条件 int totalCount = int.Parse(total.ToString()); if (totalCount % 1000 == 0) { page = totalCount / 1000; } else { page = totalCount / 1000 + 1; } for (int i = 2; i <= page; i++) { bytes = HttpUtillib.HttpPost("/artemis/api/resource/v2/person/personList", Newtonsoft.Json.JsonConvert.SerializeObject(new { pageSize = 1000, pageNo = i }), 300); data = System.Text.Encoding.UTF8.GetString(bytes);//获取调用结果 dy = JsonConvert.DeserializeObject <ExpandoObject>(data); if (dy.code == "0") { lstUsers = dy.data.list; foreach (object obj in lstUsers) { dy = obj; long certType = dy.certificateType; if (certType == 111) { sbSql.AppendFormat("insert into tmp_idcards(idcard) values('{0}');\r\n", dy.certificateNo); lstIdCards.Add(dy.certificateNo); } } } } } sbSql.Append("commit;\r\n end;"); if (lstIdCards.Count > 0) { deptBll.ExecuteSql(sbSql.ToString()); } System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:查询到的用户身份证件号:{lstIdCards.ToJson()}。SQL:{sbSql.ToString()}\n\n"); } return(new { code = 0, message = "操作成功", data = string.Join(",", lstIdCards) }); } catch (Exception ex) { System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:查询身份证号出现异常:{ex.Message}。\n\n"); return(new { code = 1, message = ex.Message }); } }
public object SyncUsers(int pfrom, string orgId = "") { string logPath = HttpContext.Current.Server.MapPath("~/logs/menjin/"); try { string accounts = HttpContext.Current.Request["accounts"]; //需要推送的用户账号 List <object> lstUsers = new List <object>(); //用户存储要推送的用户集合 StringBuilder sbSql = new StringBuilder(); //Sql语句 byte[] bytes; Dictionary <long, string> dict = new Dictionary <long, string>(); //临时存储培训平台推送的用户信息 if (pfrom == 0) //培训平台 { string sql = string.Format("select userid, u.realname,u.gender,u.identifyid,u.email,u.mobile,u.birthday,u.encode,account from base_user u where u.account in ('{0}') or newaccount in ('{0}')", accounts.Replace(",", "','")); DataTable dtUsers = deptBll.GetDataTable(sql); int j = 0; System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:查询到的用户信息:{dtUsers.ToJson()}。\n\n"); foreach (DataRow dr in dtUsers.Rows) { string account = dr["account"].ToString(); //用户id string userId = dr["userid"].ToString(); //用户id string userName = dr["realname"].ToString(); //姓名 string sex = dr["gender"].ToString(); //性别 string idCard = dr["identifyid"].ToString(); //身份证号 string email = dr["email"].ToString(); //邮箱 string mobile = dr["mobile"].ToString(); //手机号 string birthday = dr["birthday"].ToString(); //生日 string encode = dr["encode"].ToString(); //工号 //转换生日格式 if (!string.IsNullOrWhiteSpace(birthday)) { DateTime time; bool flag = DateTime.TryParse(birthday, out time); if (flag) { birthday = time.ToString("yyyy-MM-dd"); } else { birthday = ""; } } //转换性别 int gender = 0; int certType = 111;//表示身份证类型 if (sex.Length > 0) { gender = sex == "男" ? 1 : 2; } //构造需要推送的用户参数 lstUsers.Add(new { clientId = j, personId = userId, personName = userName, gender = gender, certificateType = certType, certificateNo = idCard, orgIndexCode = "a10d1bf0-c9d5-4b0b-82c3-abd624a79f76", jobNo = encode, email = email, phoneNo = mobile, birthday = birthday }); j++; dict.Add(j, account); } } if (pfrom == 1)//工具箱 { //查询需要推送的用户 DataTable dtUsers = deptBll.GetDataTable(string.Format("select id,username,idcard from PX_TRAINRECORD t where account in('{0}')", accounts.Replace(",", "','"))); int j = 0; System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:查询到的用户信息:{dtUsers.ToJson()}。\n\n"); foreach (DataRow dr in dtUsers.Rows) { int gender = 0; //性别,0:未知,1:男,2:女 string id = dr["id"].ToString(); //主键ID string userName = dr["username"].ToString().Trim(); string idCard = dr["idcard"].ToString().Trim(); //证件号 int len = idCard.Length; int certType = 414; //护照类型 if (len == 15 || len == 18) { certType = 111; //身份证类型 string ch = idCard.Substring(len - 2, 1); int i; bool result = int.TryParse(ch, out i); if (result) { if (i % 2 == 0) { gender = 2; } else { gender = 1; } } } //构造需要推送的用户参数 lstUsers.Add(new { clientId = j, personId = id, personName = userName, gender = gender, certificateType = certType, certificateNo = idCard, orgIndexCode = "a10d1bf0-c9d5-4b0b-82c3-abd624a79f76" }); j++; } } string usersData = Newtonsoft.Json.JsonConvert.SerializeObject(lstUsers); System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:Api地址:/artemis/api/resource/v1/person/batch/add,推送的数据:{usersData}。\n\n"); //设置推送的参数(由海康提供) HttpUtillib.SetPlatformInfo(Config.GetValue("appKey"), Config.GetValue("appSecret"), Config.GetValue("appIP"), int.Parse(Config.GetValue("appPort")), bool.Parse(Config.GetValue("isHttps"))); //开始推送数据 bytes = HttpUtillib.HttpPost("/artemis/api/resource/v1/person/batch/add", usersData, 300); string data = System.Text.Encoding.UTF8.GetString(bytes);//获取调用结果 System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:海康门禁服务返回的结果:{data}。\n\n"); dynamic dy = JsonConvert.DeserializeObject <ExpandoObject>(data); //如果调用成功 if (dy.code == "0") { //获取海康门禁推送成功的记录 List <object> lstSuccess = dy.data.successes; int count = lstSuccess.Count; if (count > 0) { System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:调用海康门禁推送人员接口成功,成功记录数{count}\n\n"); List <string> lstUserIds = new List <string>(); foreach (object obj in lstSuccess) { dynamic dy1 = obj; if (pfrom == 1) { string personId = dy1.personId; if (!lstUserIds.Contains(personId)) { lstUserIds.Add(personId); } } if (pfrom == 0) { long clientId = dy1.clientId; if (!dict.ContainsKey(clientId)) { lstUserIds.Add(dict[clientId]); } } } //把推送成功的记录插入推送历史记录表 if (lstUserIds.Count > 0) { //根据推送结果查询成功的用户信息 sbSql.AppendFormat("insert into px_pushrecord(id,username,account,idcard,unitname,deptname,postname,worktype,score,datatype,deviceno,projectid,time) select id,username,account,idcard,unitname,deptname,postname,worktype,score,{1},deviceno,projectid,'{2}' from PX_TRAINRECORD where id in('{0}')", string.Join(",", lstUserIds).Replace(",", "','"), pfrom, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } if (pfrom == 0) { if (lstUserIds.Count > 0) { System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:开始准备获取培训平台人员培训记录\n\n"); DepartmentEntity dept = deptBll.GetEntity(orgId); WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; Dictionary <string, string> dictData = new Dictionary <string, string>(); dictData.Add("companyId", dept.InnerPhone); dictData.Add("pageIndex", "1"); dictData.Add("pageSize", "1000"); dictData.Add("userAccounts", string.Join(",", lstUserIds).Replace(",", "','")); dictData.Add("type", "1"); wc.Headers.Add("Content-Type", "application/json;charset=UTF-8"); wc.Encoding = Encoding.UTF8; string apiUrl = new ERCHTMS.Busines.SystemManage.DataItemDetailBLL().GetItemValue("TrainApiAddress", "Train"); string dicData = Newtonsoft.Json.JsonConvert.SerializeObject(dictData); System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"Api地址:{apiUrl}/api/api/trainRecord/queryTrainList,给培训平台推送的数据:{dicData}。\n\n"); string result = wc.UploadString(apiUrl + "/api/api/trainRecord/queryTrainList", "POST", dicData); System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:培训平台返回的结果:{result}。\n\n"); dynamic dyData = JsonConvert.DeserializeObject <ExpandoObject>(result); if (dyData.meta.success) { sbSql.Append("begin \r\n"); List <object> lstTrainUsers = dyData.data.trainList; foreach (object obj in lstTrainUsers) { dyData = obj; string id = Guid.NewGuid().ToString(); string userName = dyData.userName; string sex = dyData.sex == "1" ? "男" : "女"; string account = dyData.userAccount; string idCard = dyData.idNumber; string unitName = dyData.companyName; string deptName = dyData.deptName; string postName = dyData.category; string workType = dyData.station; string score = dyData.examScore; string projectId = dyData.projectId; sbSql.AppendFormat("insert into PX_PUSHRECORD(id,username,account,sex,idcard,unitname,deptname,postname,worktype,score,projectid,time) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}'); \r\n", Guid.NewGuid().ToString(), userName, account, sex, idCard, unitName, deptName, postName, workType, score, projectId, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } sbSql.Append("commit;\r\n end;"); System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:执行的SQL语句:{sbSql.ToString()}。\n\n"); } } } //插入记录到推送记录表 if (sbSql.Length > 0) { deptBll.ExecuteSql(sbSql.ToString()); } } if (dy.data.failures.Count > 0) { System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:海康门禁推送人员接口有失败的记录。\n\n"); return(new { code = 1, message = "推送失败的数据:" + Newtonsoft.Json.JsonConvert.SerializeObject(dy.data.failures), data = dy.data }); } else { return(new { code = 0, message = dy.msg, data = dy.data }); } } else { return(new { code = 1, message = dy.msg, data = data }); } } catch (Exception ex) { System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:异常信息:{ex.Message}。\n\n"); return(new { code = 1, message = ex.Message }); } }
public object DeleteUsers() { string logPath = HttpContext.Current.Server.MapPath("~/logs/menjin/"); try { string userIds = HttpContext.Current.Request["userIds"];//需要推送的用户账号 string sql = string.Format("select personid from HIK_USERRELATION where userid in('{0}')", userIds.Replace(",", "','")); DataTable dtUsers = deptBll.GetDataTable(sql); System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"删除的用户信息:{dtUsers.ToJson()}。\n\n"); if (dtUsers.Rows.Count > 0) { string[] personIds = dtUsers.AsEnumerable().Select(t => t.Field <string>("personid")).ToArray(); //设置推送的参数(由海康提供) HttpUtillib.SetPlatformInfo(Config.GetValue("appKey"), Config.GetValue("appSecret"), Config.GetValue("appIP"), int.Parse(Config.GetValue("appPort")), bool.Parse(Config.GetValue("isHttps"))); System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"推送的数据:{personIds.ToJson()}。\n\n"); //开始推送数据 byte[] bytes = HttpUtillib.HttpPost("/artemis/api/resource/v1/person/batch/delete", Newtonsoft.Json.JsonConvert.SerializeObject(new { personIds = personIds }), 300); string data = System.Text.Encoding.UTF8.GetString(bytes);//获取调用结果 System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"门禁返回的结果:{data}。\n\n"); dynamic dy = JsonConvert.DeserializeObject <ExpandoObject>(data); StringBuilder sbMessge = new StringBuilder(); //如果调用成功 if (dy.code == "0") { //同步删除人员进入通道权限配置 List <object> lstData = new List <object>(); lstData.Add(new { indexCodes = personIds, personDataType = "person" }); bytes = HttpUtillib.HttpPost("/artemis/api/acps/v1/auth_config/delete", Newtonsoft.Json.JsonConvert.SerializeObject(new { personDatas = lstData }), 300); data = System.Text.Encoding.UTF8.GetString(bytes);//获取调用结果 dy = JsonConvert.DeserializeObject <ExpandoObject>(data); if (dy.code == "0") { sbMessge.AppendFormat("批量删除人员门禁通道权限成功,返回信息:{0}。", dy.msg); System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"调用结果:{ sbMessge.ToString()}。\n\n"); return(new { code = 0, message = sbMessge.ToString() }); } else { sbMessge.AppendFormat("批量删除人员门禁通道权限失败,返回信息:{0}。", data); System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"调用结果:{ sbMessge.ToString()}。\n\n"); return(new { code = 1, message = sbMessge.ToString() }); } } else { sbMessge.AppendFormat("批量删除人员失败,返回信息:{0}。", data); return(new { code = 1, message = sbMessge.ToString() }); } } else { return(new { code = 1, message = "没有找到符合条件的记录" }); } } catch (Exception ex) { System.IO.File.AppendAllText(logPath + $"{DateTime.Now.ToString("yyyyMMdd")}.txt", $"异常信息:{ ex.Message}。\n\n"); return(new { code = 1, message = ex.Message }); } }
public object ConfigUsers() { string logPath = HttpContext.Current.Server.MapPath("~/logs/menjin/"); try { //获取所有人员的身份证号 DataTable dtUsers = deptBll.GetDataTable(string.Format("select identifyid from base_user")); string[] idcards = new string[] { }; int page = 0; //分页设置,因接口最多支持1000个查询条件 int totalCount = dtUsers.Rows.Count; if (totalCount % 1000 == 0) { page = totalCount / 1000; } else { page = totalCount / 1000 + 1; } System.IO.File.AppendAllText(logPath + "\\configusers.log", page.ToString() + "\r\n"); int count = 0; for (int j = 0; j < page; j++) { //根据分页获取身份证号 idcards = dtUsers.AsEnumerable().Select(t => t.Field <string>("identifyid")).Skip(j * 1000).Take(1000).ToArray(); //设置推送的参数(由海康提供) HttpUtillib.SetPlatformInfo(Config.GetValue("appKey"), Config.GetValue("appSecret"), Config.GetValue("appIP"), int.Parse(Config.GetValue("appPort")), bool.Parse(Config.GetValue("isHttps"))); System.IO.File.AppendAllText(@"d:\logs\configusers.log", idcards + "\r\n\n"); //根据身份证号获取海康人员信息 byte[] bytes = HttpUtillib.HttpPost("/artemis/api/resource/v1/person/condition/personInfo", Newtonsoft.Json.JsonConvert.SerializeObject(new { paramName = "certificateNo", paramValue = idcards }), 300); string data = System.Text.Encoding.UTF8.GetString(bytes);//获取调用结果 dynamic dy = JsonConvert.DeserializeObject <ExpandoObject>(data); StringBuilder sbSql = new StringBuilder(); //如果调用成功 if (dy.code == "0") { sbSql.Append("begin \r\n"); List <object> lstUsers = dy.data.list; System.IO.File.AppendAllText(logPath + "\\configusers.log", lstUsers.Count + "\r\n\n"); foreach (object obj in lstUsers) { dy = obj; long certType = dy.certificateType; if (certType == 111) { string idCard = dy.certificateNo; string personId = dy.personId; string deptId = dy.orgIndexCode; string personName = dy.personName; DataTable dtUser = deptBll.GetDataTable(string.Format("select userid,account from base_user where identifyid='{0}'", idCard)); if (dtUser.Rows.Count > 0) { DataRow drUser = dtUser.Rows[0]; sbSql.AppendFormat("delete from HIK_USERRELATION where personId='{0}';\r\n", personId); sbSql.AppendFormat("insert into HIK_USERRELATION(userid,account,idcard,personid,orgindexcode) values('{0}','{1}','{2}','{3}','{4}');\r\n", drUser[0].ToString(), drUser[1].ToString(), idCard, personId, deptId); count++; } } } System.IO.File.AppendAllText(logPath + "\\configusers.log", "3\r\n\n"); sbSql.Append("commit;\r\n end;"); deptBll.ExecuteSql(sbSql.ToString()); System.IO.File.AppendAllText(logPath + "\\configusers.log", sbSql.ToString() + "\r\n\n"); } } string message = string.Format("成功匹配{0}条数据", count); return(new { code = 0, message = "操作成功", data = message }); } catch (Exception ex) { System.IO.File.AppendAllText(logPath + "\\configusers.log", ex.Message + "\r\n\n"); return(new { code = 1, message = ex.Message }); } }