using FangYar.Common; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace FangYar.WebUI.ashx { /// /// EmpSyncIccHandler 的摘要说明 /// public class EmpSyncIccHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Other, "人员ICC同步请求", ""); context.Response.ContentType = "text/plain"; string action = context.Request.Params["Action"]; string returnstr = ""; switch (action) { //获取营区人员ICC同步信息状态 case "GetOrgICCState": returnstr = GetOrgICCState(context); break; //获取单个人员ICC同步信息状态 case "GetEmpICCState": returnstr = GetEmpICCState(context); break; //ICC人员信息添加 case "EmpInfoAdd": returnstr = EmpInfoAdd(context); break; //ICC人员信息更新 case "EmpInfoUpd": returnstr = EmpInfoUpd(context); break; //ICC人员信息删除 case "EmpInfoDel": returnstr = EmpInfoDel(context); break; //ICC人脸信息添加 case "EmpImgAdd": returnstr = EmpImgAdd(context); break; //ICC人脸信息修改 case "EmpImgUpd": returnstr = EmpImgUpd(context); break; //ICC人脸信息删除 case "EmpImgDel": returnstr = EmpImgDel(context); break; //ICC人员门禁信息同步 case "EmpDoorSync": returnstr = EmpDoorSync(context); break; //ICC人员门禁信息删除 case "EmpDoorDel": returnstr = EmpDoorDel(context); break; //全部信息同步 case "EmpAllSync": returnstr = EmpAllSync(context); break; //全部信息删除 case "EmpAllDel": returnstr = EmpAllDel(context); break; } context.Response.Write(returnstr); } /// /// 获取机构下人员ICC同步信息状态详情 /// /// /// private string GetOrgICCState(HttpContext context) { string returnstr = ""; try { string orgId = context.Request.Params["orgId"]; string sqlStr = @" WITH t1 as( SELECT ID,USERS_UID,EMP_NAME,ORG_ID from tbl_sys_emp WHERE ORG_ID='" + orgId + @"' and IS_ADMIN='0' and IS_DEL='0' ) , t2 as( SELECT t1.* ,IFNULL((SELECT Upd_State from tbl_sys_emp_icc_sync_state es WHERE t1.id=es.EMP_ID and INFO_TYPE='1' ORDER BY Upd_Time DESC LIMIT 1 ),0) ICC_EMP_INFO_STATE ,IFNULL((SELECT Info_Msg from tbl_sys_emp_icc_sync_state es WHERE t1.id=es.EMP_ID and INFO_TYPE='1' ORDER BY Upd_Time DESC LIMIT 1 ),'') ICC_EMP_INFO_MSG_CODE ,IFNULL((SELECT Operat_Type from tbl_sys_emp_icc_sync_state es WHERE t1.id=es.EMP_ID and INFO_TYPE='1' ORDER BY Upd_Time DESC LIMIT 1 ),'') ICC_EMP_INFO_TYPE ,IFNULL((SELECT Upd_State from tbl_sys_emp_icc_sync_state es WHERE t1.id=es.EMP_ID and INFO_TYPE='3' ORDER BY Upd_Time DESC LIMIT 1 ),0) ICC_EMP_FACE_STATE ,IFNULL((SELECT Info_Msg from tbl_sys_emp_icc_sync_state es WHERE t1.id=es.EMP_ID and INFO_TYPE='3' ORDER BY Upd_Time DESC LIMIT 1 ),'') ICC_EMP_FACE_MSG_CODE ,IFNULL((SELECT Operat_Type from tbl_sys_emp_icc_sync_state es WHERE t1.id=es.EMP_ID and INFO_TYPE='3' ORDER BY Upd_Time DESC LIMIT 1 ),'') ICC_EMP_FACE_TYPE ,IFNULL((SELECT count(1) from tbl_sys_emp_icc_sync_state es WHERE t1.id=es.EMP_ID and INFO_TYPE='2' and Operat_Type <> '2' and Upd_State='2' and Device_Code in (SELECT EPUIP_ID from tbl_epuip_org WHERE ORG_ID ='" + orgId + @"' and EXTEND2='0')),0) ICC_DEVICE_COUNT ,IFNULL((SELECT count(1) from tbl_epuip_org WHERE ORG_ID ='" + orgId + @"' and EXTEND2='0' ),0) DEVICE_COUNT from t1 ) SELECT * from t2 ORDER BY ICC_EMP_INFO_STATE desc ,EMP_NAME "; var data = FangYar.Common.MySqlHelper.QueryTable(sqlStr); returnstr = "{\"code\":0,\"msg\":\"\",\"count\":" + data.Rows.Count + ",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(data); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "获取人员ICC同步信息状态异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员ICC同步请求", "获取人员ICC同步信息状态"); return returnstr; } /// /// 获取人员ICC同步信息状态 /// /// /// private string GetEmpICCState(HttpContext context) { string returnstr = ""; try { string eId = context.Request.Params["eId"]; string sqlStr = @" with t1 as( SELECT 1 typ,'' dCode,'' DEVICE_NAME,1 sort UNION SELECT 3 typ,'' dCode,'' DEVICE_NAME,2 sort ) ,t2 as( SELECT * from t1 LEFT JOIN tbl_sys_emp_icc_sync_state on typ=INFO_TYPE and EMP_ID='" + eId + @"' ) ,t3 as(SELECT 2 typ, EPUIP_ID dCode, NAME DEVICE_NAME,3 sort from tbl_epuip_org WHERE ORG_ID in (select ORG_ID from tbl_sys_emp WHERE id='" + eId + @"') and EXTEND2='0') ,t4 as( SELECT * from t3 LEFT JOIN tbl_sys_emp_icc_sync_state on typ=INFO_TYPE and dCode=device_code and EMP_ID='" + eId + @"' ) ,t5 as(SELECT * from t2 UNION select * from t4) SELECT * from t5 ORDER BY sort "; var data = FangYar.Common.MySqlHelper.QueryTable(sqlStr); returnstr = "{\"code\":0,\"msg\":\"\",\"count\":" + data.Rows.Count + ",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(data); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "获取人员ICC同步信息状态异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员ICC同步请求", "获取人员ICC同步信息状态"); return returnstr; } #region Icc人员信息操作 /// /// ICC人员信息添加 /// /// /// private string EmpInfoAdd(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string EmpList = context.Request.Params["EmpList"]; string[] EmpArray = EmpList.Split(','); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpInfoAdd(EmpArray[i]); } msg = "操作成功!"; code = 1; } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "ICC人员信息添加异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "人员ICC同步请求", "ICC人员信息添加"); return returnstr; } /// /// ICC人员信息修改 /// /// /// private string EmpInfoUpd(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string EmpList = context.Request.Params["EmpList"]; string[] EmpArray = EmpList.Split(','); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpInfoUpd(EmpArray[i]); } msg = "操作成功!"; code = 1; } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "ICC人员信息添加异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "人员ICC同步请求", "ICC人员信息添加"); return returnstr; } /// /// ICC人员信息删除 /// /// /// private string EmpInfoDel(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string EmpList = context.Request.Params["EmpList"]; string[] EmpArray = EmpList.Split(','); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpImgDel(EmpArray[i]); //EmpSyncIccHelper.EmpInfoDel(EmpArray[i]); } EmpSyncIccHelper.EmpInfoDelByEmpList(EmpArray.ToList()); msg = "操作成功!"; code = 1; } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "ICC人员信息添加异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "人员ICC同步请求", "ICC人员信息添加"); return returnstr; } #endregion #region ICC人脸信息操作 /// /// ICC人脸信息添加 /// /// /// private string EmpImgAdd(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string EmpList = context.Request.Params["EmpList"]; string[] EmpArray = EmpList.Split(','); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpImgAdd(EmpArray[i]); } msg = "操作成功!"; code = 1; } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "ICC人员信息添加异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "人员ICC同步请求", "ICC人员信息添加"); return returnstr; } /// /// ICC人脸信息修改 /// /// /// private string EmpImgUpd(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string EmpList = context.Request.Params["EmpList"]; string[] EmpArray = EmpList.Split(','); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpImgUpd(EmpArray[i]); } msg = "操作成功!"; code = 1; } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "ICC人员信息添加异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "人员ICC同步请求", "ICC人员信息添加"); return returnstr; } /// /// ICC人脸信息删除 /// /// /// private string EmpImgDel(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string EmpList = context.Request.Params["EmpList"]; string orgId = context.Request.Params["orgId"]; string[] EmpArray = EmpList.Split(','); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpImgDel(EmpArray[i]); //EmpSyncIccHelper.EmpInfoDel(EmpArray[i]); } msg = "操作成功!"; code = 1; } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "ICC人员信息添加异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "人员ICC同步请求", "ICC人员信息添加"); return returnstr; } #endregion #region ICC门禁授权操作 /// /// ICC人员门禁信息同步 /// /// /// private string EmpDoorSync(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string EmpList = context.Request.Params["EmpList"]; string[] EmpArray = EmpList.Split(','); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpInfoAdd(EmpArray[i]); } System.Threading.Thread.Sleep(10000); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpDoorSync(EmpArray[i]); } msg = "操作成功!"; code = 1; } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "ICC人员信息添加异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "人员ICC同步请求", "ICC人员信息添加"); return returnstr; } /// /// ICC人员门禁信息删除 /// /// /// private string EmpDoorDel(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string EmpList = context.Request.Params["EmpList"]; string[] EmpArray = EmpList.Split(','); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpDoorDel(EmpArray[i]); } msg = "操作成功!"; code = 1; } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "ICC人员信息添加异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "人员ICC同步请求", "ICC人员信息添加"); return returnstr; } #endregion #region Icc一键授权操作 /// /// 人员一键同步 /// /// /// private string EmpAllSync(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string EmpList = context.Request.Params["EmpList"]; string[] EmpArray = EmpList.Split(','); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpInfoAdd(EmpArray[i]); EmpSyncIccHelper.EmpImgAdd(EmpArray[i]); } System.Threading.Thread.Sleep(10000); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpDoorSync(EmpArray[i]); } msg = "操作成功!"; code = 1; } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "ICC人员信息添加异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "人员ICC同步请求", "ICC人员信息添加"); return returnstr; } /// /// 人员一键删除 /// /// /// private string EmpAllDel(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string EmpList = context.Request.Params["EmpList"]; string orgId = context.Request.Params["orgId"]; string[] EmpArray = EmpList.Split(','); for (int i = 0; i < EmpArray.Length; i++) { EmpSyncIccHelper.EmpImgDel(EmpArray[i]); //EmpSyncIccHelper.EmpInfoDel(EmpArray[i]); } EmpSyncIccHelper.EmpInfoDelByEmpList(EmpArray.ToList()); msg = "操作成功!"; code = 1; } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员ICC同步请求", "ICC人员信息删除异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\",\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "人员ICC同步请求", "ICC人员信息删除"); return returnstr; } #endregion public bool IsReusable { get { return false; } } } }