using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace FangYar.Common { /// /// 人员同步ICC帮助类 /// public class EmpSyncIccHelper { // IccSyncUrlHead /// /// 人员新增ICC人脸库 /// public static string IccEmpImgAddUrl = System.Configuration.ConfigurationManager.AppSettings["IccSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["IccEmpImgAddUrl"] + ""; /// /// 人员修改ICC人脸库 /// public static string IccEmpImgUpdUrl = System.Configuration.ConfigurationManager.AppSettings["IccSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["IccEmpImgUpdUrl"] + ""; /// /// 人员删除ICC人脸库 /// public static string IccEmpImgDelUrl = System.Configuration.ConfigurationManager.AppSettings["IccSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["IccEmpImgDelUrl"] + ""; /// /// 人员新增ICC人员信息 /// public static string IccEmpInfoAddUrl = System.Configuration.ConfigurationManager.AppSettings["IccSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["IccEmpInfoAddUrl"] + ""; /// /// 人员修改ICC人员信息 /// public static string IccEmpInfoUpdUrl = System.Configuration.ConfigurationManager.AppSettings["IccSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["IccEmpInfoUpdUrl"] + ""; /// /// 人员删除ICC人员信息 /// public static string IccEmpInfoDelUrl = System.Configuration.ConfigurationManager.AppSettings["IccSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["IccEmpInfoDelUrl"] + ""; /// /// 人员门禁同步信息 /// public static string IccEmpDoorSync = System.Configuration.ConfigurationManager.AppSettings["IccSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["IccEmpDoorSync"] + ""; #region 人员信息操作 /// /// 人员信息添加 /// /// public static void EmpInfoAdd(string eid) { //new Thread(() => //{ try { //拼接数据查询sql string sql = " SELECT * from tbl_sys_emp_icc_sync_state WHERE EMP_ID='" + eid + "' and INFO_TYPE='1' "; //查询数据 var dtq = MySqlHelper.QueryTable(sql); //判断数据是否存在 if (dtq.Rows.Count == 0) { //不存在,新增一条数据 string sqlIns = " insert into tbl_sys_emp_icc_sync_state (ID,EMP_ID,Device_Code,Upd_State,INFO_TYPE,Operat_Type) VALUES ('" + Guid.NewGuid().ToString("N") + "','" + eid + "','','1','1','0') "; //执行插入 MySqlHelper.Execute(sqlIns); } // 拼接调用同步接口参数 string paramStr = "userId=" + eid; //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, EMP_ID = eid, INFO_TYPE = "3", POST_URL = IccEmpInfoAddUrl + "?" + paramStr }); //调用接口同步数据并获取返回值 //var retStr = WebCommonUtil.PostWebRequest(IccEmpInfoAddUrl, paramStr); var retStr = WebCommonUtil.GetPostUrl(IccEmpInfoAddUrl + "?" + paramStr); EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON(retStr); //更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr, POST_RETURN_CODE = postRetMo.code }); //信息更新状态:0、初始状态;1、提交(同步中);2、成功;3、失败; string Upd_State = "3"; //验证返回数据 switch (postRetMo.code) { //正常 case "200": //更新同步状态为正常 Upd_State = "2"; break; default: //同步失败,调用更新 EmpInfoUpd(eid); break; } // 更新状态表信息 string sqlUpd = " update tbl_sys_emp_icc_sync_state set Upd_State='" + Upd_State + "',Upd_Time=now(),Operat_Type='0',Info_Msg='" + postRetMo.code + "' where EMP_ID='" + eid + "' and INFO_TYPE='1' "; //执行更新 MySqlHelper.Execute(sqlUpd); } catch (Exception ex) { string str = "Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } //}).Start(); } /// /// 人员信息更新 /// /// public static void EmpInfoUpd(string eid) { //new Thread(() => //{ try { //拼接数据查询sql string sql = " SELECT * from tbl_sys_emp_icc_sync_state WHERE EMP_ID='" + eid + "' and INFO_TYPE='1' "; //查询数据 var dtq = MySqlHelper.QueryTable(sql); //判断数据是否存在 if (dtq.Rows.Count == 0) { //不存在,新增一条数据 string sqlIns = " insert into tbl_sys_emp_icc_sync_state (ID,EMP_ID,Device_Code,Upd_State,INFO_TYPE,Operat_Type) VALUES ('" + Guid.NewGuid().ToString("N") + "','" + eid + "','','1','1','1') "; //执行插入 MySqlHelper.Execute(sqlIns); } // 拼接调用同步接口参数 string paramStr = "userId=" + eid; //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, EMP_ID = eid, INFO_TYPE = "4", POST_URL = IccEmpInfoUpdUrl + "?" + paramStr }); //调用接口同步数据并获取返回值 //var retStr = WebCommonUtil.PostWebRequest(IccEmpInfoUpdUrl, paramStr); var retStr = WebCommonUtil.GetPostUrl(IccEmpInfoUpdUrl + "?" + paramStr); EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON(retStr); //更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr, POST_RETURN_CODE = postRetMo.code }); //信息更新状态:0、初始状态;1、提交(同步中);2、成功;3、失败; string Upd_State = "3"; //验证返回数据 switch (postRetMo.code) { //正常 case "200": //更新同步状态为正常 Upd_State = "2"; break; } // 更新状态表信息 string sqlUpd = " update tbl_sys_emp_icc_sync_state set Upd_State='" + Upd_State + "',Upd_Time=now(),Operat_Type='1',Info_Msg='" + postRetMo.code + "' where EMP_ID='" + eid + "' and INFO_TYPE='1' "; //执行更新 MySqlHelper.Execute(sqlUpd); } catch (Exception ex) { string str = "Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } //}).Start(); } /// /// 人员信息删除 /// /// public static void EmpInfoDel(string eid) { //new Thread(() => //{ try { //拼接数据查询sql string sql = " SELECT * from tbl_sys_emp_icc_sync_state WHERE EMP_ID='" + eid + "' and INFO_TYPE='1' "; //查询数据 var dtq = MySqlHelper.QueryTable(sql); //判断数据是否存在 if (dtq.Rows.Count == 0) { //不存在,新增一条数据 string sqlIns = " insert into tbl_sys_emp_icc_sync_state (ID,EMP_ID,Device_Code,Upd_State,INFO_TYPE,Operat_Type) VALUES ('" + Guid.NewGuid().ToString("N") + "','" + eid + "','','1','1','2') "; //执行插入 MySqlHelper.Execute(sqlIns); } // 拼接调用同步接口参数 string paramStr = "userId=" + eid; //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, EMP_ID = eid, INFO_TYPE = "5", POST_URL = IccEmpInfoDelUrl + "?" + paramStr }); //调用接口同步数据并获取返回值 //var retStr = WebCommonUtil.PostWebRequest(IccEmpInfoDelUrl, paramStr); var retStr = WebCommonUtil.GetPostUrl(IccEmpInfoDelUrl + "?" + paramStr); EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON(retStr); //更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr, POST_RETURN_CODE = postRetMo.code }); //信息更新状态:0、初始状态;1、提交(同步中);2、成功;3、失败; string Upd_State = "3"; //验证返回数据 switch (postRetMo.code) { //正常 case "200": //更新同步状态为正常 Upd_State = "2"; break; } // 更新状态表信息 string sqlUpd = " update tbl_sys_emp_icc_sync_state set Upd_State='" + Upd_State + "',Upd_Time=now(),Operat_Type='2',Info_Msg='" + postRetMo.code + "' where EMP_ID='" + eid + "' and INFO_TYPE='1' "; //执行更新 MySqlHelper.Execute(sqlUpd); } catch (Exception ex) { string str = "Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } //}).Start(); } /// /// 批量人员信息删除 /// /// public static void EmpInfoDelByEmpList(List empList) { //new Thread(() => //{ try { string empStr = GetListConvertStr(empList); //拼接数据删除sql string sql = " DELETE FROM tbl_sys_emp_icc_sync_state WHERE EMP_ID in (" + empStr + ") and INFO_TYPE='1' "; //执行删除信息状态 MySqlHelper.Execute(sql); //拼接添加数据Sql string sqlIns = " insert into tbl_sys_emp_icc_sync_state (ID,EMP_ID,Device_Code,Upd_State,INFO_TYPE,Operat_Type) " + " SELECT UUID(),ID,'','1','1','2' FROM tbl_sys_emp WHERE ID in (" + empStr + ") "; //执行数据插入 MySqlHelper.Execute(sqlIns); // 拼接调用同步接口参数 string paramStr = "userId=" + string.Join(",", empList); //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, EMP_ID = empList.Count + "", INFO_TYPE = "5", POST_URL = IccEmpInfoDelUrl + "?" + paramStr }); //调用接口同步数据并获取返回值 //var retStr = WebCommonUtil.PostWebRequest(IccEmpInfoDelUrl, paramStr); var retStr = WebCommonUtil.GetPostUrl(IccEmpInfoDelUrl + "?" + paramStr); EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON(retStr); ////更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr, POST_RETURN_CODE = postRetMo.code }); //信息更新状态:0、初始状态;1、提交(同步中);2、成功;3、失败; string Upd_State = "3"; //验证返回数据 switch (postRetMo.code) { //正常 case "200": //更新同步状态为正常 Upd_State = "2"; break; } // 更新状态表信息 string sqlUpd = " update tbl_sys_emp_icc_sync_state set Upd_State='" + Upd_State + "',Upd_Time=now(),Operat_Type='2',Info_Msg='" + postRetMo.code + "' where EMP_ID in (" + empStr + ") and INFO_TYPE='1' "; //执行更新 MySqlHelper.Execute(sqlUpd); } catch (Exception ex) { string str = "Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } //}).Start(); } #endregion #region 人脸信息操作 /// /// 人脸信息添加 /// /// public static void EmpImgAdd(string eid) { //new Thread(() => //{ try { //拼接数据查询sql string sql = " SELECT * from tbl_sys_emp_icc_sync_state WHERE EMP_ID='" + eid + "' and INFO_TYPE='3' "; //查询数据 var dtq = MySqlHelper.QueryTable(sql); //判断数据是否存在 if (dtq.Rows.Count == 0) { //不存在,新增一条数据 string sqlIns = " insert into tbl_sys_emp_icc_sync_state (ID,EMP_ID,Device_Code,Upd_State,INFO_TYPE,Operat_Type) VALUES ('" + Guid.NewGuid().ToString("N") + "','" + eid + "','','1','3','0') "; //执行插入 MySqlHelper.Execute(sqlIns); } //查询数据 var mo = GetEmpSyncIccByEid(eid); // 拼接调用同步接口参数 string paramStr = "userId=" + eid + "&deptId=" + mo.ORG_ID; //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, EMP_ID = eid, INFO_TYPE = "0", POST_URL = IccEmpImgAddUrl + "?" + paramStr }); //调用接口同步数据并获取返回值 //var retStr = WebCommonUtil.PostWebRequest(IccEmpImgAddUrl, paramStr); var retStr = WebCommonUtil.GetPostUrl(IccEmpImgAddUrl + "?" + paramStr); EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON(retStr); //更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr, POST_RETURN_CODE = postRetMo.code }); //信息更新状态:0、初始状态;1、提交(同步中);2、成功;3、失败; string Upd_State = "3"; //验证返回数据 switch (postRetMo.code) { //正常 case "200": //更新同步状态为正常 Upd_State = "2"; break; default: //同步失败,调用更新 EmpImgUpd(eid); break; } // 更新状态表信息 string sqlUpd = " update tbl_sys_emp_icc_sync_state set Upd_State='" + Upd_State + "',Upd_Time=now(),Operat_Type='0',Info_Msg='" + postRetMo.code + "' where EMP_ID='" + eid + "' and INFO_TYPE='3' "; //执行更新 MySqlHelper.Execute(sqlUpd); } catch (Exception ex) { string str = "Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } //}).Start(); } /// /// 人脸信息修改 /// /// public static void EmpImgUpd(string eid) { //new Thread(() => //{ try { //拼接数据查询sql string sql = " SELECT * from tbl_sys_emp_icc_sync_state WHERE EMP_ID='" + eid + "' and INFO_TYPE='3' "; //查询数据 var dtq = MySqlHelper.QueryTable(sql); //判断数据是否存在 if (dtq.Rows.Count == 0) { //不存在,新增一条数据 string sqlIns = " insert into tbl_sys_emp_icc_sync_state (ID,EMP_ID,Device_Code,Upd_State,INFO_TYPE,Operat_Type) VALUES ('" + Guid.NewGuid().ToString("N") + "','" + eid + "','','1','3','1') "; //执行插入 MySqlHelper.Execute(sqlIns); } //查询数据 var mo = GetEmpSyncIccByEid(eid); // 拼接调用同步接口参数 string paramStr = "userId=" + eid + "&deptId=" + mo.ORG_ID; //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, EMP_ID = eid, INFO_TYPE = "1", POST_URL = IccEmpImgUpdUrl + "?" + paramStr }); //调用接口同步数据并获取返回值 //var retStr = WebCommonUtil.PostWebRequest(IccEmpImgUpdUrl, paramStr); var retStr = WebCommonUtil.GetPostUrl(IccEmpImgUpdUrl + "?" + paramStr); EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON(retStr); //更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr, POST_RETURN_CODE = postRetMo.code }); //信息更新状态:0、初始状态;1、提交(同步中);2、成功;3、失败; string Upd_State = "3"; //验证返回数据 switch (postRetMo.code) { //正常 case "200": //更新同步状态为正常 Upd_State = "2"; break; } // 更新状态表信息 string sqlUpd = " update tbl_sys_emp_icc_sync_state set Upd_State='" + Upd_State + "',Upd_Time=now(),Operat_Type='1',Info_Msg='" + postRetMo.code + "' where EMP_ID='" + eid + "' and INFO_TYPE='3' "; //执行更新 MySqlHelper.Execute(sqlUpd); } catch (Exception ex) { string str = "Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } //}).Start(); } /// /// 人脸信息删除 /// /// public static void EmpImgDel(string eid) { //new Thread(() => //{ try { //拼接数据查询sql string sql = " SELECT * from tbl_sys_emp_icc_sync_state WHERE EMP_ID='" + eid + "' and INFO_TYPE='3' "; //查询数据 var dtq = MySqlHelper.QueryTable(sql); //判断数据是否存在 if (dtq.Rows.Count == 0) { //不存在,新增一条数据 string sqlIns = " insert into tbl_sys_emp_icc_sync_state (ID,EMP_ID,Device_Code,Upd_State,INFO_TYPE,Operat_Type) VALUES ('" + Guid.NewGuid().ToString("N") + "','" + eid + "','','1','3','2') "; //执行插入 MySqlHelper.Execute(sqlIns); } //查询数据 var mo = GetEmpSyncIccByEid(eid); // 拼接调用同步接口参数 string paramStr = "userId=" + eid + "&deptId=" + mo.ORG_ID; //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, EMP_ID = eid, INFO_TYPE = "2", POST_URL = IccEmpImgDelUrl + "?" + paramStr }); //调用接口同步数据并获取返回值 //var retStr = WebCommonUtil.PostWebRequest(IccEmpImgDelUrl, paramStr); var retStr = WebCommonUtil.GetPostUrl(IccEmpImgDelUrl + "?" + paramStr); //返回数据转对象 EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON(retStr); //更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr, POST_RETURN_CODE = postRetMo.code }); //信息更新状态:0、初始状态;1、提交(同步中);2、成功;3、失败; string Upd_State = "3"; //验证返回数据 switch (postRetMo.code) { //正常 case "200": //更新同步状态为正常 Upd_State = "2"; break; } // 更新状态表信息 string sqlUpd = " update tbl_sys_emp_icc_sync_state set Upd_State='" + Upd_State + "',Upd_Time=now(),Operat_Type='2',Info_Msg='" + postRetMo.code + "' where EMP_ID='" + eid + "' and INFO_TYPE='3' "; //执行更新 MySqlHelper.Execute(sqlUpd); } catch (Exception ex) { string str = "Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } //}).Start(); } ///// ///// 批量人脸信息删除 ///// ///// 人员信息集合 ///// 机构信息ID //public static void EmpImgDelByEmpList(List empList, string orgId) //{ // //new Thread(() => // //{ // try // { // string empStr = GetListConvertStr(empList); // //拼接数据删除sql // string sql = " DELETE FROM tbl_sys_emp_icc_sync_state WHERE EMP_ID in (" + empStr + ") and INFO_TYPE='3' "; // //执行删除信息状态 // MySqlHelper.Execute(sql); // //拼接添加数据Sql // string sqlIns = " insert into tbl_sys_emp_icc_sync_state (ID,EMP_ID,Device_Code,Upd_State,INFO_TYPE,Operat_Type) " + // " SELECT UUID(),ID,'','1','3','2' FROM tbl_sys_emp WHERE ID in (" + empStr + ") "; // //执行数据插入 // MySqlHelper.Execute(sqlIns); // // 拼接调用同步接口参数 // string paramStr = "userId=" + string.Join(",", empList) + "&deptId=" + orgId; // //插入日志信息ID // string insLogId = Guid.NewGuid().ToString("N"); // //插入日志记录 // InsLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, EMP_ID = empList.Count + "", INFO_TYPE = "2", POST_URL = IccEmpImgDelUrl + "?" + paramStr }); // //调用接口同步数据并获取返回值 // //var retStr = WebCommonUtil.PostWebRequest(IccEmpImgDelUrl, paramStr); // var retStr = WebCommonUtil.GetPostUrl(IccEmpImgDelUrl + "?" + paramStr); // //返回数据转对象 // EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON(retStr); // //更新调用接口返回结果到日志记录 // UpdLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr, POST_RETURN_CODE = postRetMo.code }); // //信息更新状态:0、初始状态;1、提交(同步中);2、成功;3、失败; // string Upd_State = "3"; // //验证返回数据 // switch (postRetMo.code) // { // //正常 // case "200": // //更新同步状态为正常 // Upd_State = "2"; // break; // } // // 更新状态表信息 // string sqlUpd = " update tbl_sys_emp_icc_sync_state set Upd_State='" + Upd_State + "',Upd_Time=now(),Operat_Type='2',Info_Msg='" + // postRetMo.code + "' where EMP_ID in (" + empStr + ") and INFO_TYPE='3' "; // //执行更新 // MySqlHelper.Execute(sqlUpd); // } // catch (Exception ex) // { // string str = "Web请求异常:" + ex; // FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() // { // message = str, // msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, // path = "EmpSyncICC" // }); // } // //}).Start(); //} #endregion #region 人员门禁信息操作 /// /// 人员门禁信息同步 /// /// public static void EmpDoorSync(string eid) { //new Thread(() => //{ try { //查询数据 var mo = GetEmpSyncIccByEid(eid); // 拼接调用同步接口参数 string paramStr = "userIds=" + eid + "&deviceIds=" + mo.Devices; //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, EMP_ID = eid, INFO_TYPE = "6", POST_URL = IccEmpDoorSync + "?" + paramStr }); //调用接口同步数据并获取返回值 //var retStr = WebCommonUtil.PostWebRequest(IccEmpDoorSync, paramStr); var retStr = WebCommonUtil.GetPostUrl(IccEmpDoorSync + "?" + paramStr); EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON(retStr); //更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr, POST_RETURN_CODE = postRetMo.code }); List SQLStringList = new List(); var doorArr = mo.Devices.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in doorArr) { //拼接数据查询sql string sql = " SELECT * from tbl_sys_emp_icc_sync_state WHERE EMP_ID='" + eid + "' and INFO_TYPE='2' and Device_Code='" + item + "' "; //查询数据 var dtq = MySqlHelper.QueryTable(sql); //判断数据是否存在 if (dtq.Rows.Count == 0) { //不存在,新增一条数据 string sqlIns = " insert into tbl_sys_emp_icc_sync_state (ID,EMP_ID,Device_Code,Upd_State,INFO_TYPE,Operat_Type) VALUES ('" + Guid.NewGuid().ToString("N") + "','" + eid + "','" + item + "','1','2','0') "; SQLStringList.Add(sqlIns); } else { string sqlUpd = " update tbl_sys_emp_icc_sync_state set Upd_State='1',Upd_Time=now(),Operat_Type='0',Info_Msg='' where EMP_ID='" + eid + "' and INFO_TYPE='2'and Device_Code='" + item + "' "; SQLStringList.Add(sqlUpd); } } //执行插入 MySqlHelper.ExecuteSqlTran(SQLStringList); } catch (Exception ex) { string str = "Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } //}).Start(); } /// /// 人员门禁信息删除 /// /// public static void EmpDoorDel(string eid) { //new Thread(() => //{ try { //查询数据 var mo = GetEmpSyncIccByEid(eid); // 拼接调用同步接口参数 string paramStr = "userIds=" + eid + "&deviceIds="; //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, EMP_ID = eid, INFO_TYPE = "8", POST_URL = IccEmpDoorSync + "?" + paramStr }); //调用接口同步数据并获取返回值 //var retStr = WebCommonUtil.PostWebRequest(IccEmpDoorSync, paramStr); var retStr = WebCommonUtil.GetPostUrl(IccEmpDoorSync + "?" + paramStr); EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON(retStr); //更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpIccSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr, POST_RETURN_CODE = postRetMo.code }); List SQLStringList = new List(); var doorArr = mo.Devices.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in doorArr) { //拼接数据查询sql string sql = " SELECT * from tbl_sys_emp_icc_sync_state WHERE EMP_ID='" + eid + "' and INFO_TYPE='2' and Device_Code='" + item + "' "; //查询数据 var dtq = MySqlHelper.QueryTable(sql); //判断数据是否存在 if (dtq.Rows.Count == 0) { //不存在,新增一条数据 string sqlIns = " insert into tbl_sys_emp_icc_sync_state (ID,EMP_ID,Device_Code,Upd_State,INFO_TYPE,Operat_Type) VALUES ('" + Guid.NewGuid().ToString("N") + "','" + eid + "','" + item + "','1','2','2') "; SQLStringList.Add(sqlIns); } else { string sqlUpd = " update tbl_sys_emp_icc_sync_state set Upd_State='1',Upd_Time=now(),Operat_Type='2',Info_Msg='' where EMP_ID='" + eid + "' and INFO_TYPE='2'and Device_Code='" + item + "' "; SQLStringList.Add(sqlUpd); } } //执行插入 MySqlHelper.ExecuteSqlTran(SQLStringList); } catch (Exception ex) { string str = "Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } //}).Start(); } #endregion #region 根据人员信息ID获取同步信息 private static EmpSyncIccMo GetEmpSyncIccByEid(string eid) { EmpSyncIccMo retMo = new EmpSyncIccMo(); try { string sqlStr = "SELECT ID,ORG_ID,(SELECT GROUP_CONCAT(EPUIP_ID) from tbl_epuip_org eo WHERE e.ORG_ID=eo.ORG_ID and EXTEND2='0') Devices from tbl_sys_emp e WHERE ID='" + eid + "'"; var dt = MySqlHelper.QueryTable(sqlStr); if (dt.Rows.Count > 0) { retMo = new EmpSyncIccMo() { ID = dt.Rows[0]["ID"] + "", ORG_ID = dt.Rows[0]["ORG_ID"] + "", Devices = dt.Rows[0]["Devices"] + "", //ORG_ID = "1cc32e7245694343b1e5ff41014eee74", //Devices = "1000040,1000318", }; } } catch (Exception ex) { string str = "根据ID获取对象异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } return retMo; } #endregion /// /// 人员同步请求ICC日志信息插入 /// /// public static void InsLog(TblSysEmpIccSyncLogMo mo) { try { if (mo != null) { //信息类型:0、人像库新增;1、人像库修改;2、人像库删除;3、icc人员新增;4、icc人员修改;5、icc人员删除;6、门禁授权新增;7、门禁授权修改;8、门禁授权删除; switch (mo.INFO_TYPE) { case "0": mo.INFO_TYPE_STR = "人像库新增"; break; case "1": mo.INFO_TYPE_STR = "人像库修改"; break; case "2": mo.INFO_TYPE_STR = "人像库删除"; break; case "3": mo.INFO_TYPE_STR = "icc人员新增"; break; case "4": mo.INFO_TYPE_STR = "icc人员修改"; break; case "5": mo.INFO_TYPE_STR = "icc人员删除"; break; case "6": mo.INFO_TYPE_STR = "门禁授权新增"; break; case "7": mo.INFO_TYPE_STR = "门禁授权修改"; break; case "8": mo.INFO_TYPE_STR = "门禁授权删除"; break; } //返回结果插入到日志表 string sqlInsLog = " insert into tbl_sys_emp_icc_sync_log (ID,EMP_ID,INFO_TYPE,INFO_TYPE_STR,POST_URL) VALUES ('" + mo.ID + "','" + mo.EMP_ID + "','" + mo.INFO_TYPE + "','" + mo.INFO_TYPE_STR + "','" + mo.POST_URL + "') "; //执行插入 MySqlHelper.Execute(sqlInsLog); } } catch (Exception ex) { string str = "插入日志信息异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } } /// /// 人员同步请求ICC日志信息更新 /// /// public static void UpdLog(TblSysEmpIccSyncLogMo mo) { try { if (mo != null) { //返回结果插入到日志表 string sqlInsLog = " update tbl_sys_emp_icc_sync_log set POST_RETURN_CODE = '" + mo.POST_RETURN_CODE + "',POST_RETURN_MSG='" + mo.POST_RETURN_MSG + "',POST_RETURN_TIME=now() where id='" + mo.ID + "' "; //执行插入 MySqlHelper.Execute(sqlInsLog); } } catch (Exception ex) { string str = "更新日志信息异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } } /// /// 人员ID集合转In查询条件字符串 /// /// /// private static string GetListConvertStr(List list) { string retStr = ""; retStr = "'" + string.Join("','", list) + "'"; if (string.IsNullOrWhiteSpace(retStr)) { retStr = "''"; } return retStr; } } /// /// 营区人员同步ICC /// public class EmpSyncIccMo { /// /// 信息ID /// public string ID { get; set; } /// /// 机构ID /// public string ORG_ID { get; set; } /// /// 设备集合 /// public string Devices { get; set; } } /// /// 提交数据返回模型 /// public class EmpSyncIccReturnMo { /// /// 返回编码:200、正常;400、错误;500、异常; /// public string code { get; set; } /// /// 结果:true、成功;;false、失败 /// public string success { get; set; } /// /// 返回数据 /// public object data { get; set; } /// /// 返回消息 /// public string msg { get; set; } } /// /// 营区人员ICC信息同步操作日志 /// public class TblSysEmpIccSyncLogMo { /// /// 信息ID /// public string ID { get; set; } /// /// 人员信息ID /// public string EMP_ID { get; set; } /// /// 调用更新后返回内容 /// public string POST_RETURN_MSG { get; set; } /// /// 信息类型:0、人像库新增;1、人像库修改;2、人像库删除;3、icc人员新增;4、icc人员修改;5、icc人员删除;6、门禁授权新增;7、门禁授权修改;8、门禁授权删除; /// public string INFO_TYPE { get; set; } /// /// 提交返回状态码:200:正常;400:错误;500:异常; /// public string POST_RETURN_CODE { get; set; } /// /// 信息创建时间 /// public string createtime { get; set; } /// /// /// public string Device_Code { get; set; } /// /// 请求信息路径 /// public string POST_URL { get; set; } /// /// 请求信息返回时间 /// public string POST_RETURN_TIME { get; set; } /// /// 请求信息操作中文:0、人像库新增;1、人像库修改;2、人像库删除;3、icc人员新增;4、icc人员修改;5、icc人员删除;6、门禁授权新增;7、门禁授权修改;8、门禁授权删除; /// public string INFO_TYPE_STR { get; set; } } }