using MySql.Data.MySqlClient; using Spire.Xls; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Web; namespace FangYar.WebUI.ashx { /// /// OAEmpApprovalHandler 的摘要说明 /// public class OAEmpApprovalHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Other, "人员审核操作请求", ""); context.Response.ContentType = "text/plain"; string action = context.Request.Params["Action"]; string returnstr = ""; switch (action) { //查询审批数据列表 case "GetEmpApprovalList": returnstr = GetEmpApprovalList(context); break; //返回全部机构信息 case "GetAllOrg": returnstr = GetAllOrg(context); break; // 搜索选择人员 case "GetEmpSearch": returnstr = GetEmpSearch(context); break; //获取上一级别审批人信息 case "GetUpLevelEmp": returnstr = GetUpLevelEmp(context); break; //删除人员申请 case "DelEmpApproval": returnstr = DelEmpApproval(context); break; //调整人员申请 case "AdjustEmpApproval": returnstr = AdjustEmpApproval(context); break; //添加人员申请 case "AddOrgEmpApproval": returnstr = AddOrgEmpApproval(context); break; // 返回审核流程详情 case "GetApprovalDetails": returnstr = GetApprovalDetails(context); break; //批量添加人员 case "AddImpExcel": returnstr = AddImpExcel(context); break; } context.Response.Write(returnstr); } //根据机构ID查询 private string GetEmpApprovalList(HttpContext context) { string returnstr = ""; try { // 组织机构ID string OrgId = context.Request.Params["OrgId"]; // 缓存数据信息类型:1、新增;2、跨营区调整;3、删除; string Cache_Type = context.Request.Params["Cache_Type"]; // 是否包含下级 string is_content = context.Request.Params["is_content"]; // 操作用户所属营区 string Operation_Org_Id = context.Request.Params["Operation_Org_Id"]; // 插叙内容 string keywords = context.Request.Params["keywords"]; // 分页信息 string page = context.Request.Params["page"]; string limit = context.Request.Params["limit"]; int.TryParse(page, out int pageIndex); int.TryParse(limit, out int pageSize); pageSize = pageSize < 1 ? 1 : pageSize; pageIndex = pageIndex < 1 ? 1 : pageIndex; int numStart = (pageIndex - 1) * pageSize; string sqlStr = " SELECT * from tbl_sys_emp_cache "; if (is_content == "1") { sqlStr += " ,(select get_Org_child_list('" + OrgId + "') cids ) s "; } //添加操作机构查询 sqlStr += " where Operation_Org_Id='" + Operation_Org_Id + "' "; // 添加查询下级机构查询条件 if (is_content == "1") { sqlStr += " and find_in_set(org_id,cids) "; } else { sqlStr += " and org_id='" + OrgId + "' "; } if (!string.IsNullOrWhiteSpace(keywords)) { sqlStr += " and ( USERS_UID like '%" + keywords + "%' or EMP_NAME like '%" + keywords + "%' or EMP_MOBILE like '%" + keywords + "%' ) "; } // 添加数据信息类型:1、新增;2、跨营区调整;3、删除;查询条件 sqlStr += " and Cache_Type='" + Cache_Type + "' "; string sqlStrCount = sqlStr.Replace("*", " count(1) "); var dtCount = FangYar.Common.MySqlHelper.QueryTable(sqlStrCount); sqlStr += " order by createtime desc limit " + numStart + ", " + pageSize; var dtQuery = FangYar.Common.MySqlHelper.QueryTable(sqlStr); returnstr = "{\"code\":0,\"msg\":\"\","; returnstr += "\"count\":" + dtCount.Rows[0][0] + ",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(dtQuery); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "查询审核提交信息异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "查询审核提交信息"); return returnstr; } /// /// 查询所有机构以及部门信息 /// /// /// private string GetAllOrg(HttpContext context) { string returnstr = ""; try { string sqlStr = " SELECT * from fire_org WHERE EXTENDCODE4 LIKE '0_1%' ORDER BY EXTENDCODE4 "; var list = FangYar.Common.MySqlHelper.QueryTable(sqlStr); returnstr = "{\"code\":0,\"msg\":\"\","; returnstr += "\"count\":" + list.Rows.Count + ",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(list); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "查询所有机构信息异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "查询所有机构信息"); return returnstr; } /// /// 人员搜索查询 /// /// /// private string GetEmpSearch(HttpContext context) { string returnstr = ""; try { // 查询关键字 string SearchStr = context.Request.Params["SearchStr"]; // 组织机构ID string OrgId = context.Request.Params["OrgId"]; // 搜索显示条数 string PageSize = context.Request.Params["PageSize"]; string sqlStr = @" WITH t1 as(SELECT id, EMP_NAME, ORG_ID from tbl_sys_emp,(select get_Org_child_list('" + OrgId + @"') cids ) s WHERE IS_ADMIN = '0' and IS_DEL = '0' and find_in_set(org_id, cids) and EMP_NAME LIKE '%" + SearchStr + "%' LIMIT " + PageSize + @" ) SELECT t1.*,o.ORG_NAME from t1 LEFT JOIN fire_org o on t1.ORG_ID = o.ORG_ID "; var list = FangYar.Common.MySqlHelper.QueryTable(sqlStr); returnstr = "{\"code\":0,\"msg\":\"\",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(list); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "人员搜索异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "人员搜索"); return returnstr; } /// /// 返回上级人员信息 /// /// /// private string GetUpLevelEmp(HttpContext context) { string returnstr = ""; try { // 组织机构ID string OrgId = context.Request.Params["OrgId"]; // 组织机构ID string ADMIN_LEVEL = context.Request.Params["ADMIN_LEVEL"]; int.TryParse(ADMIN_LEVEL, out int numLevel); if (numLevel > 1) { numLevel = numLevel - 1; } else { numLevel = 1; } string sqlStr = @" SELECT * from tbl_sys_emp WHERE ORG_ID='" + OrgId + "' and IS_DEL='0' and ADMIN_LEVEL='" + numLevel + "' "; var list = FangYar.Common.MySqlHelper.QueryTable(sqlStr); returnstr = "{\"code\":0,\"msg\":\"\",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(list); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "上级管理员查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "上级管理员查询"); return returnstr; } /// /// 删除人员申请 /// /// /// private string DelEmpApproval(HttpContext context) { string returnstr = ""; try { // 操作用户机构ID string OpOrgId = context.Request.Params["OpOrgId"]; // 操作用户ID string OpEid = context.Request.Params["OpEid"]; // 删除用户ID string DelEid = context.Request.Params["DelEid"]; // 审批用户ID string ApprovalEid = context.Request.Params["ApprovalEid"]; // 操作说明 string Cache_Remark = context.Request.Params["Cache_Remark"]; string guid = Guid.NewGuid().ToString("N"); string guid1 = Guid.NewGuid().ToString("N"); string sqlStr = @" INSERT into tbl_sys_emp_cache (ID,EmpId,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IS_DEL,IDNUMBER,FIRE_PRO,CERT,NATION,FACE,MAR ,IS_WORK,PROF,POL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,DURING_ACCESS_PERIOD,ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD ,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,CID,POSTS,TAGS,IS_TRAIN,IS_ADMIN ,IS_ADMIN_DB,TAGS_BAK,createtime,IS_VISITOR_CHECK,OPENID,DURING_ACCESS_PERIOD2,ACCESSALLOWEDMODE,IS_SUBCAMPVIDEO ,New_Org_ID,New_DEPT_ID,Cache_Type,Operation_EmpId,Operation_Org_Id,Cache_Remark) SELECT '" + guid + @"',ID,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IS_DEL,IDNUMBER,FIRE_PRO,CERT,NATION,FACE,MAR ,IS_WORK,PROF,POL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,DURING_ACCESS_PERIOD,ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD ,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,CID,POSTS,TAGS,IS_TRAIN,IS_ADMIN ,IS_ADMIN_DB,TAGS_BAK,now(),IS_VISITOR_CHECK,OPENID,DURING_ACCESS_PERIOD2,ACCESSALLOWEDMODE,IS_SUBCAMPVIDEO ,'','','3','" + OpEid + "','" + OpOrgId + "','" + Cache_Remark + "' FROM tbl_sys_emp WHERE id = '" + DelEid + "' ; "; sqlStr += @" insert into tbl_sys_emp_move (ID,INSTANCEID,APPROVAL_RANK,SENDERID,SENDERNAME,SEND_ORG_ID,SENDERTIME,RECEIVEID,RECEIVE_ORG_ID,OP_STATUS,Cache_Type) SELECT '" + guid1 + "','" + guid + "',ADMIN_LEVEL-1,id,EMP_NAME,ORG_ID,now(),'" + ApprovalEid + "',(SELECT ORG_ID from tbl_sys_emp WHERE id='" + ApprovalEid + "' LIMIT 1),'0','3' from tbl_sys_emp WHERE id = '" + OpEid + "' ; "; var num = FangYar.Common.MySqlHelper.Execute(sqlStr); if (num > 0) { returnstr = "{\"code\":1,\"msg\":\"操作成功\",\"count\":0,\"data\":[]}"; } else { returnstr = "{\"code\":0,\"msg\":\"操作识别\",\"count\":0,\"data\":[]}"; } } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"操作异常\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "删除人员申请异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "删除人员申请"); return returnstr; } /// /// 调整人员申请 /// /// /// private string AdjustEmpApproval(HttpContext context) { string returnstr = ""; try { // 操作用户机构ID string OpOrgId = context.Request.Params["OpOrgId"]; // 操作用户ID string OpEid = context.Request.Params["OpEid"]; // 删除用户ID string DelEid = context.Request.Params["DelEid"]; // 审批用户ID string ApprovalEid = context.Request.Params["ApprovalEid"]; // 操作说明 string Cache_Remark = context.Request.Params["Cache_Remark"]; // 目标营区 string newOrgId = context.Request.Params["newOrgId"]; // 目标部门 string newDepId = context.Request.Params["newDepId"]; string guid = Guid.NewGuid().ToString("N"); string guid1 = Guid.NewGuid().ToString("N"); string sqlStr = @" INSERT into tbl_sys_emp_cache (ID,EmpId,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IS_DEL,IDNUMBER,FIRE_PRO,CERT,NATION,FACE,MAR ,IS_WORK,PROF,POL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,DURING_ACCESS_PERIOD,ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD ,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,CID,POSTS,TAGS,IS_TRAIN,IS_ADMIN ,IS_ADMIN_DB,TAGS_BAK,createtime,IS_VISITOR_CHECK,OPENID,DURING_ACCESS_PERIOD2,ACCESSALLOWEDMODE,IS_SUBCAMPVIDEO ,New_Org_ID,New_DEPT_ID,Cache_Type,Operation_EmpId,Operation_Org_Id,Cache_Remark) SELECT '" + guid + @"',ID,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IS_DEL,IDNUMBER,FIRE_PRO,CERT,NATION,FACE,MAR ,IS_WORK,PROF,POL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,DURING_ACCESS_PERIOD,ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD ,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,CID,POSTS,TAGS,IS_TRAIN,IS_ADMIN ,IS_ADMIN_DB,TAGS_BAK,now(),IS_VISITOR_CHECK,OPENID,DURING_ACCESS_PERIOD2,ACCESSALLOWEDMODE,IS_SUBCAMPVIDEO ,'" + newOrgId + "','" + newDepId + "','2','" + OpEid + "','" + OpOrgId + "','" + Cache_Remark + "' FROM tbl_sys_emp WHERE id = '" + DelEid + "' ; "; sqlStr += @" insert into tbl_sys_emp_move (ID,INSTANCEID,APPROVAL_RANK,SENDERID,SENDERNAME,SEND_ORG_ID,SENDERTIME,RECEIVEID,RECEIVE_ORG_ID,OP_STATUS,Cache_Type) SELECT '" + guid1 + "','" + guid + "',ADMIN_LEVEL-1,id,EMP_NAME,ORG_ID,now(),'" + ApprovalEid + "',(SELECT ORG_ID from tbl_sys_emp WHERE id='" + ApprovalEid + "' LIMIT 1),'0','2' from tbl_sys_emp WHERE id = '" + OpEid + "' ; "; var num = FangYar.Common.MySqlHelper.Execute(sqlStr); if (num > 0) { returnstr = "{\"code\":1,\"msg\":\"操作成功\",\"count\":0,\"data\":[]}"; } else { returnstr = "{\"code\":0,\"msg\":\"操作识别\",\"count\":0,\"data\":[]}"; } } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"操作异常\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "删除人员申请异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "删除人员申请"); return returnstr; } /// /// 返回审核流程详情 /// /// /// private string GetApprovalDetails(HttpContext context) { string returnstr = ""; try { // 审核信息ID string mId = context.Request.Params["mId"]; string sqlStr1 = " SELECT * from tbl_sys_emp_cache WHERE id='" + mId + "' "; string sqlStr2 = @" SELECT m.*,e1.EMP_NAME JS_NAME, e2.EMP_NAME CL_NAME from tbl_sys_emp_move m LEFT JOIN tbl_sys_emp e1 on e1.ID = m.RECEIVEID LEFT JOIN tbl_sys_emp e2 on m.COMPLETEDID = e2.ID WHERE INSTANCEID = '" + mId + "' ORDER BY SENDERTIME "; var dt1 = FangYar.Common.MySqlHelper.QueryTable(sqlStr1); var dt2 = FangYar.Common.MySqlHelper.QueryTable(sqlStr2); returnstr = "{\"code\":0,\"msg\":\"\",\"data1\":" + FangYar.Common.JsonHelper.ToJson(dt1); returnstr += ",\"data2\":" + FangYar.Common.JsonHelper.ToJson(dt2) + "}"; } catch (Exception e) { returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员审核操作请求", "查询审核提交信息异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "查询审核提交信息"); return returnstr; } //添加人员 private string AddOrgEmpApproval(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { // 操作用户机构ID string OpOrgId = context.Request.Params["OpOrgId"]; // 操作用户ID string OpEid = context.Request.Params["OpEid"]; // 审批用户ID string ApprovalEid = context.Request.Params["ApprovalEid"]; // 操作说明 string Cache_Remark = context.Request.Params["Cache_Remark"]; string empName = context.Request.Params["emp_name"]; string empNum = context.Request.Params["emp_num"]; string empSex = context.Request.Params["emp_sex"]; string BLOOD_TYPE = context.Request.Params["BLOOD_TYPE"]; string orgId = context.Request.Params["org_id"]; string deptId = context.Request.Params["dept_id"]; string empEmail = context.Request.Params["emp_email"]; string empMobile = context.Request.Params["emp_mobile"]; string idnumber = context.Request.Params["idnumber"]; string birthday = context.Request.Params["birthday"]; string familyaddr = context.Request.Params["familyaddr"]; string cert = context.Request.Params["cert"]; string nation = context.Request.Params["nation"]; string face = context.Request.Params["face"]; string mar = context.Request.Params["mar"]; string isWork = context.Request.Params["is_work"]; string prof = context.Request.Params["prof"]; string tags = context.Request.Params["tags"]; string posts = context.Request.Params["posts"]; string pol = context.Request.Params["pol"]; string photo = context.Request.Params["photo"]; string isLeader = context.Request.Params["isLeader"]; string enlisted_time = context.Request.Params["enlisted_time"]; string is_access = context.Request.Params["is_access"]; string is_SubCampVideo = context.Request.Params["is_SubCampVideo"]; string AccessAllowedMode = context.Request.Params["AccessAllowedMode"]; string during_access_period = context.Request.Params["during_access_period"]; string isdriver = context.Request.Params["isdriver"]; string filenum = context.Request.Params["filenum"]; string permissionnum = context.Request.Params["permissionnum"]; string firstcard = context.Request.Params["firstcard"]; string effictivetime = context.Request.Params["effictivetime"]; string permittedorgan = context.Request.Params["permittedorgan"]; string ALL_ANNUAL_LEAVE = context.Request.Params["ALL_ANNUAL_LEAVE"]; string AVAILABLE_ANNUAL_LEAVE = context.Request.Params["AVAILABLE_ANNUAL_LEAVE"]; string IS_ADMIN = context.Request.Params["IS_ADMIN"] + ""; string strWhere = " EMP_NUM ='" + empNum + "' and ORG_ID ='" + orgId + "' and EMP_NUM is not null "; string sql = " SELECT ID,EMP_NAME,USERS_UID,EMP_MOBILE,IDNUMBER,EMP_NUM from tbl_sys_emp WHERE USERS_UID='" + empMobile + "' or EMP_MOBILE='" + empMobile + "' or IDNUMBER ='" + idnumber + "' or (ORG_ID='" + orgId + "' and EMP_NUM ='" + empNum + "') "; var dt = FangYar.Common.MySqlHelper.QueryTable(sql); //获取是否存在现有人员编号重的情况 //int count = bll.GetRecordCount(" EMP_NUM ='" + empNum + "' and ORG_ID ='" + orgId + "' and EMP_NUM is not null and is_del='0' "); int count = dt.Rows.Count; if (count > 0) { //msg = "单位内编号重复,请修改后添加!"; msg = "重复信息:
"; for (int i = 0; i < dt.Rows.Count; i++) { if ((dt.Rows[i]["USERS_UID"] + "").Trim() == empMobile) { msg += "已有账号与手机号重复;
"; } if ((dt.Rows[i]["EMP_MOBILE"] + "").Trim() == empMobile) { msg += "手机号重复;
"; } if ((dt.Rows[i]["idnumber"] + "").Trim() == idnumber) { msg += "身份证号重复;
"; } if ((dt.Rows[i]["EMP_NUM"] + "").Trim() == empNum) { msg += "编号重复;
"; } } msg += "请确认输入信息是否正确"; } else { Model.TBL.TBL_SYS_EMP_Model model = new Model.TBL.TBL_SYS_EMP_Model(); //员工表 model.ID = Guid.NewGuid().ToString("N"); //model.USERS_UID = usersUid; model.EMP_NAME = empName; model.EMP_NUM = empNum; model.EMP_SEX = empSex; model.BLOOD_TYPE = BLOOD_TYPE; model.ORG_ID = orgId; model.DEPT_ID = deptId; model.EMP_EMAIL = empEmail; model.EMP_MOBILE = empMobile; model.IDNUMBER = idnumber; model.BIRTHDAY = birthday; model.FAMILYADDR = familyaddr; model.CERT = cert; model.NATION = nation; model.FACE = face; model.MAR = mar; model.IS_WORK = isWork; model.PROF = prof; model.TAGS = tags; model.POSTS = posts; model.POL = pol; model.PHOTO = photo; model.IS_LEADER = isLeader; model.IS_DEL = "0"; model.ENLISTED_TIME = enlisted_time; model.IS_ACCESS = is_access; model.IS_SUBCAMPVIDEO = is_SubCampVideo; //model.DURING_ACCESS_PERIOD = during_access_period; model.DURING_ACCESS_PERIOD2 = during_access_period; model.ISDRIVER = isdriver; model.FILENUM = filenum; model.PERMISSIONNUM = permissionnum; model.FIRSTCARD = firstcard; model.EFFECTIVETIME = effictivetime; model.PERMITTEDORGAN = permittedorgan; model.IS_ADMIN = IS_ADMIN; if (!string.IsNullOrEmpty(ALL_ANNUAL_LEAVE)) { model.ALL_ANNUAL_LEAVE = decimal.Parse(ALL_ANNUAL_LEAVE); } if (!string.IsNullOrEmpty(AVAILABLE_ANNUAL_LEAVE)) { model.AVAILABLE_ANNUAL_LEAVE = decimal.Parse(AVAILABLE_ANNUAL_LEAVE); } if (!string.IsNullOrEmpty(AccessAllowedMode)) { model.ACCESSALLOWEDMODE = int.Parse(AccessAllowedMode); } //审核表ID string guid = Guid.NewGuid().ToString("N"); // string guid1 = Guid.NewGuid().ToString("N"); StringBuilder strsql = new StringBuilder(); strsql.Append("insert into tbl_sys_emp_cache (ID,EmpId,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IDNUMBER," + "FIRE_PRO,CERT,NATION,FACE,MAR,IS_WORK,PROF,POL,IS_DEL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,IS_SUBCAMPVIDEO,DURING_ACCESS_PERIOD," + "ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,TAGS," + "POSTS,IS_ADMIN,DURING_ACCESS_PERIOD2,ACCESSALLOWEDMODE,Cache_Type,Operation_EmpId,Operation_Org_Id,Cache_Remark,BLOOD_TYPE)"); strsql.Append("values"); strsql.Append("(@ID,@EmpId,@USERS_UID,@EMP_NAME,@EMP_NUM,@EMP_SEX,@ORG_ID,@DEPT_ID,@EMP_EMAIL,@EMP_MOBILE,@IDNUMBER,@FIRE_PRO,@CERT,@NATION," + "@FACE,@MAR,@IS_WORK,@PROF,@POL,@IS_DEL,@PHOTO,@IS_LEADER,@ENLISTED_TIME,@IS_ACCESS,@IS_SUBCAMPVIDEO,@DURING_ACCESS_PERIOD,@ISDRIVER,@FILENUM," + "@PERMISSIONNUM,@FIRSTCARD,@EFFECTIVETIME,@PERMITTEDORGAN,@BIRTHDAY,@FAMILYADDR,@ALL_ANNUAL_LEAVE,@AVAILABLE_ANNUAL_LEAVE,@TAGS,@POSTS,@IS_ADMIN," + "@DURING_ACCESS_PERIOD2,@ACCESSALLOWEDMODE,1,@Operation_EmpId,@Operation_Org_Id,@Cache_Remark,@BLOOD_TYPE) ;"); MySqlParameter[] paras ={ new MySqlParameter("@ID",guid), new MySqlParameter("@EmpId",Guid.NewGuid().ToString("N")), new MySqlParameter("@USERS_UID",model.EMP_MOBILE), new MySqlParameter("@EMP_NAME",model.EMP_NAME), new MySqlParameter("@EMP_NUM",model.EMP_NUM), new MySqlParameter("@EMP_SEX",model.EMP_SEX), new MySqlParameter("@ORG_ID", model.ORG_ID), new MySqlParameter("@DEPT_ID", model.DEPT_ID), new MySqlParameter("@EMP_EMAIL", model.EMP_EMAIL), new MySqlParameter("@EMP_MOBILE",model.EMP_MOBILE), new MySqlParameter("@IDNUMBER",model.IDNUMBER), new MySqlParameter("@FIRE_PRO",model.FIRE_PRO), new MySqlParameter("@CERT",model.CERT), new MySqlParameter("@NATION", model.NATION), new MySqlParameter("@FACE", model.FACE), new MySqlParameter("@MAR",model.MAR), new MySqlParameter("@IS_WORK", model.IS_WORK), new MySqlParameter("@PROF",model.PROF), new MySqlParameter("@POL", model.POL), new MySqlParameter("@IS_DEL",model.IS_DEL), new MySqlParameter("@PHOTO",model.PHOTO), new MySqlParameter("@IS_LEADER",model.IS_LEADER), new MySqlParameter("@ENLISTED_TIME",model.ENLISTED_TIME), new MySqlParameter("@IS_ACCESS",model.IS_ACCESS), new MySqlParameter("@IS_SUBCAMPVIDEO",model.IS_SUBCAMPVIDEO), new MySqlParameter("@DURING_ACCESS_PERIOD",model.DURING_ACCESS_PERIOD), new MySqlParameter("@ISDRIVER",model.ISDRIVER), new MySqlParameter("@FILENUM",model.FILENUM), new MySqlParameter("@PERMISSIONNUM", model.PERMISSIONNUM), new MySqlParameter("@FIRSTCARD",model.FIRSTCARD), new MySqlParameter("@EFFECTIVETIME",model.EFFECTIVETIME), new MySqlParameter("@PERMITTEDORGAN",model.PERMITTEDORGAN), new MySqlParameter("@BIRTHDAY",model.BIRTHDAY), new MySqlParameter("@FAMILYADDR",model.FAMILYADDR), new MySqlParameter("@ALL_ANNUAL_LEAVE",model.ALL_ANNUAL_LEAVE), new MySqlParameter("@AVAILABLE_ANNUAL_LEAVE", model.AVAILABLE_ANNUAL_LEAVE), new MySqlParameter("@TAGS",model.TAGS), new MySqlParameter("@POSTS", model.POSTS), new MySqlParameter("@IS_ADMIN",model.IS_ADMIN), new MySqlParameter("@DURING_ACCESS_PERIOD2",model.DURING_ACCESS_PERIOD2), new MySqlParameter("@ACCESSALLOWEDMODE",model.ACCESSALLOWEDMODE), new MySqlParameter("@Operation_EmpId",OpEid), new MySqlParameter("@Operation_Org_Id",OpOrgId), new MySqlParameter("@Cache_Remark",Cache_Remark), new MySqlParameter("@BLOOD_TYPE",BLOOD_TYPE), }; strsql.Append(@" insert into tbl_sys_emp_move (ID,INSTANCEID,APPROVAL_RANK,SENDERID,SENDERNAME,SEND_ORG_ID,SENDERTIME,RECEIVEID,RECEIVE_ORG_ID,OP_STATUS,Cache_Type) SELECT '" + guid1 + "','" + guid + "',ADMIN_LEVEL-1,id,EMP_NAME,ORG_ID,now(),'" + ApprovalEid + "',(SELECT ORG_ID from tbl_sys_emp WHERE id='" + ApprovalEid + "' LIMIT 1),'0','3' from tbl_sys_emp WHERE id = '" + OpEid + "' ; "); int i = FangYar.Common.MySqlHelper.ExecuteSql(strsql.ToString(), paras); if (i > 0) { msg = "添加成功!"; code = 1; } else { msg = "添加失败!"; } } } catch (Exception e) { msg = e.Message; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员操作请求", "添加异常:" + e); } returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Add, "人员操作请求", "添加"); return returnstr; } #region 导入人员 //上传excel private string AddImpExcel(HttpContext context) { string returnstr = "{\"code\":0,\"msg\":\"error\",\"count\":0,\"data\":[]}"; try { // 操作用户机构ID string OpOrgId = context.Request.Params["OpOrgId"]; // 操作用户ID string OpEid = context.Request.Params["OpEid"]; // 审批用户ID string ApprovalEid = context.Request.Params["ApprovalEid"]; // 操作说明 string Cache_Remark = "批量导入"; if (string.IsNullOrWhiteSpace(ApprovalEid)) { //没有内容 return "{\"code\":0,\"msg\":\"没有选择审批用户\",\"count\":0,\"data\":[]}"; } var file = context.Request.Files[0]; //获取选中文件 var fileName = Path.GetFileNameWithoutExtension(file.FileName); Cache_Remark += "[" + fileName + "]"; string PC_CODE = DateTime.Now.ToString("yyyyMMddHHmmssfff"); Stream stream = file.InputStream; //将文件转为流 Workbook workbook = new Workbook(); //将文件流内容读取到workbook对象里面 workbook.LoadFromStream(stream); //得到第一个Sheet页 Worksheet sheet = workbook.Worksheets[0]; DataTable dtImp = SheetToDataTable(true, sheet); if (dtImp.Rows.Count < 1) { //没有内容 return "{\"code\":0,\"msg\":\"导入文件没有内容\",\"count\":0,\"data\":[]}"; } string filename = file.FileName; string filetype = Path.GetExtension(filename).ToLower(); //上传的目录 string uploaddir = "~/File/ImpEmpFile/" + DateTime.Now.ToString("yyyyMM") + "/"; //上传的路径 //生成年月文件夹及日文件夹 if (Directory.Exists(context.Server.MapPath(uploaddir)) == false) { Directory.CreateDirectory(context.Server.MapPath(uploaddir)); } var guidFile = Guid.NewGuid().ToString("N"); string uploadpath = uploaddir + guidFile + filetype; //保存文件 file.SaveAs(context.Server.MapPath(uploadpath)); //数据库保存文件路径 string dbFileUlr = uploadpath.Replace("~", ""); if (dtImp.Rows.Count > 0) { //有内容 //判断头部信息是否异常 if (!(dtImp.Columns[0].ColumnName).Trim().Equals("姓名")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[1] + "").Trim().Equals("性别")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[2] + "").Trim().Equals("营区")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[3] + "").Trim().Equals("所属部门")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[4] + "").Trim().Equals("身份证号")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[5] + "").Trim().Equals("手机号")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[6] + "").Trim().Equals("电子邮箱")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[7] + "").Trim().Equals("学历")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[8] + "").Trim().Equals("民族")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[9] + "").Trim().Equals("政治面貌")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[10] + "").Trim().Equals("婚姻状况")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[11] + "").Trim().Equals("职位")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[12] + "").Trim().Equals("消防救援衔")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[13] + "").Trim().Equals("入伍时间")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[14] + "").Trim().Equals("家庭住址")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[15] + "").Trim().Equals("标签")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } //判断头部信息是否异常 if (!(dtImp.Columns[16] + "").Trim().Equals("血型")) { returnstr = "{\"code\":0,\"msg\":\"导入文件模板错误\",\"count\":0,\"data\":[]}"; return returnstr; } // 查询机构信息 string sqlOrg = @" SELECT * from fire_org ,(select get_Org_child_list('D8DC637B8B984848A63F82A018AFAEB0') cids ) s WHERE TYPE = '0' and find_in_set(org_id,cids) and ORG_ID not in (SELECT ORG_ID from fire_org WHERE pid = 'D8DC637B8B984848A63F82A018AFAEB0' ) and ORG_ID<> 'D8DC637B8B984848A63F82A018AFAEB0' or ORG_ID = '734389c7ae364584aea9918693bba3de' ORDER BY EXTENDCODE4 "; var dtOrg = FangYar.Common.MySqlHelper.QueryTable(sqlOrg); //机构数据缓存 List lisOrg = new List(); for (int i = 0; i < dtOrg.Rows.Count; i++) { lisOrg.Add(new ImpOrgMo() { ORG_ID = dtOrg.Rows[i]["ORG_ID"] + "", ORG_NAME = dtOrg.Rows[i]["ORG_NAME"] + "", }); } //配置字典选项信息 string sqlDic = " SELECT * from tbl_sys_dicdetail "; var dtDic = FangYar.Common.MySqlHelper.QueryTable(sqlDic); List listDic = new List(); for (int i = 0; i < dtDic.Rows.Count; i++) { listDic.Add(new ImpDicMo() { ID = dtDic.Rows[i]["ID"] + "", IS_ORG = dtDic.Rows[i]["IS_ORG"] + "", DIC_FID = dtDic.Rows[i]["DIC_FID"] + "", DIC_TEXT = dtDic.Rows[i]["DIC_TEXT"] + "", MOD_CODE = dtDic.Rows[i]["MOD_CODE"] + "", DIC_ORDER = dtDic.Rows[i]["DIC_ORDER"] + "", DIC_VALUE = dtDic.Rows[i]["DIC_VALUE"] + "", }); } //导入人员信息缓存 List listImpEmp = new List(); for (int i = 0; i < dtImp.Rows.Count; i++) { //姓名 string str0 = dtImp.Rows[i][0] + ""; if (string.IsNullOrWhiteSpace(str0)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行姓名信息为空\",\"data\":[]}"; return returnstr; } //性别 string str1 = dtImp.Rows[i][1] + ""; if (string.IsNullOrWhiteSpace(str1)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")性别信息为空\",\"data\":[]}"; return returnstr; } //营区 string str2 = dtImp.Rows[i][2] + ""; if (string.IsNullOrWhiteSpace(str2)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")营区信息为空\",\"data\":[]}"; return returnstr; } //所属部门 string str3 = dtImp.Rows[i][3] + ""; //身份证号 string str4 = dtImp.Rows[i][4] + ""; if (string.IsNullOrWhiteSpace(str4)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")身份证号信息为空\",\"data\":[]}"; return returnstr; } //手机号 string str5 = dtImp.Rows[i][5] + ""; if (string.IsNullOrWhiteSpace(str5)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")手机号信息为空\",\"data\":[]}"; return returnstr; } //电子邮箱 string str6 = dtImp.Rows[i][6] + ""; //学历 string str7 = dtImp.Rows[i][7] + ""; if (string.IsNullOrWhiteSpace(str7)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")学历信息为空\",\"data\":[]}"; return returnstr; } //民族 string str8 = dtImp.Rows[i][8] + ""; if (string.IsNullOrWhiteSpace(str8)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")民族信息为空\",\"data\":[]}"; return returnstr; } //政治面貌 string str9 = dtImp.Rows[i][9] + ""; if (string.IsNullOrWhiteSpace(str9)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")政治面貌信息为空\",\"data\":[]}"; return returnstr; } //婚姻状况 string str10 = dtImp.Rows[i][10] + ""; if (string.IsNullOrWhiteSpace(str10)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")婚姻状况信息为空\",\"data\":[]}"; return returnstr; } //职位 string str11 = dtImp.Rows[i][11] + ""; if (string.IsNullOrWhiteSpace(str11)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")职位信息为空\",\"data\":[]}"; return returnstr; } //消防救援衔 string str12 = dtImp.Rows[i][12] + ""; if (string.IsNullOrWhiteSpace(str12)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")消防救援衔信息为空\",\"data\":[]}"; return returnstr; } //入伍时间 string str13 = dtImp.Rows[i][13] + ""; if (string.IsNullOrWhiteSpace(str13)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")入伍时间信息为空\",\"data\":[]}"; return returnstr; } //家庭住址 string str14 = dtImp.Rows[i][14] + ""; //标签 string str15 = dtImp.Rows[i][15] + ""; if (string.IsNullOrWhiteSpace(str15)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")标签信息为空\",\"data\":[]}"; return returnstr; } //血型 string str16 = dtImp.Rows[i][16] + ""; if (string.IsNullOrWhiteSpace(str16)) { returnstr = "{\"code\":0,\"msg\":\"第" + (i + 1) + "行(姓名:" + str0 + ")血型信息为空\",\"data\":[]}"; return returnstr; } listImpEmp.Add(new ImpEmpMo { EMP_NAME = str0, EMP_SEX = str1, ORG_Name = str2, DEPT_Name = str3, IDNUMBER = str4, EMP_MOBILE = str5, EMP_EMAIL = str6, CERT = str7, NATION = str8, FACE = str9, MAR = str10, PROF = str11, POL = str12, ENLISTED_TIME = str13, FAMILYADDR = str14, TAGS = str15, BLOOD_TYPE = str16, }); } //验证手机号是否重复 var l1 = listImpEmp.GroupBy(p => p.EMP_MOBILE); if (l1.Count() != listImpEmp.Count) { string str = "表格内手机号:"; var l1_1 = l1.Where(p => p.Count() > 1).ToList(); foreach (var item in l1_1) { str += "[" + item.Key + "] "; } str += "存在重复"; returnstr = "{\"code\":0,\"msg\":\"" + str + "\",\"data\":[]}"; return returnstr; } //验证身份证号是否重复 var l2 = listImpEmp.GroupBy(p => p.IDNUMBER); if (l2.Count() != listImpEmp.Count) { string str = "表格内身份证号:"; var l2_1 = l2.Where(p => p.Count() > 1).ToList(); foreach (var item in l2_1) { str += "[" + item.Key + "] "; } str += "存在重复"; returnstr = "{\"code\":0,\"msg\":\"" + str + "\",\"data\":[]}"; return returnstr; } //遍历验证手机号、身份证号是否在数据库存在重复 for (int i = 0; i < listImpEmp.Count; i++) { string str0 = listImpEmp[i].EMP_NAME; string strMobile = listImpEmp[i].EMP_MOBILE; string strIdnumber = listImpEmp[i].IDNUMBER; //验证手机号或身份证号是否存在 string sqlCheck = @"SELECT 1 c, 1 t from tbl_sys_emp WHERE USERS_UID = '" + strMobile + "' or EMP_MOBILE = '" + strMobile + @"' union all SELECT 1 c,2 t FROM tbl_sys_emp_cache WHERE Cache_Type='1' and Cache_State in ('0','1') and EMP_MOBILE = '" + strMobile + @"' union all SELECT 1 c, 3 t from tbl_sys_emp WHERE IDNUMBER = '" + strIdnumber + @"' union all SELECT 1 c,4 t FROM tbl_sys_emp_cache WHERE Cache_Type='1' and Cache_State in ('0','1') and IDNUMBER = '" + strIdnumber + "' "; var dtCheck = FangYar.Common.MySqlHelper.QueryTable(sqlCheck); if (dtCheck.Rows.Count > 0) { string str = "第" + (i + 1) + "行(姓名:" + str0 + "):"; for (int k = 0; k < dtCheck.Rows.Count; k++) { string strTyp = dtCheck.Rows[k]["t"] + ""; switch (strTyp) { //人员信息表手机号重复 case "1": str += "手机号信息系统已经存在;"; break; //新增审核手机号重复 case "2": str += "手机号信息新增审核人员中存在重复;"; break; //人员信息表身份证号重复 case "3": str += "身份证号信息系统已经存在;"; break; //新增审核身份证号重复 case "4": str += "身份证号信息新增审核人员中存在重复;"; break; } } returnstr = "{\"code\":0,\"msg\":\"" + str + "\",\"data\":[]}"; return returnstr; } } string num = DateTime.Now.ToString("yyyyMMddhhmmssf"); //循环添加信息 for (int j = 0; j < listImpEmp.Count; j++) { var orgInfo = lisOrg.Where(p => p.ORG_NAME == listImpEmp[j].ORG_Name).FirstOrDefault(); string org_id = ""; if (orgInfo != null) { org_id = orgInfo.ORG_ID; } //审核表ID string guid = Guid.NewGuid().ToString("N"); // string guid1 = Guid.NewGuid().ToString("N"); StringBuilder strsql = new StringBuilder(); strsql.Append("insert into tbl_sys_emp_cache (ID,EmpId,USERS_UID,EMP_NAME,EMP_NUM,EMP_SEX,ORG_ID,DEPT_ID,EMP_EMAIL,EMP_MOBILE,IDNUMBER," + "CERT,NATION,FACE,MAR,IS_WORK,PROF,POL,IS_DEL,PHOTO,IS_LEADER,ENLISTED_TIME,IS_ACCESS,IS_SUBCAMPVIDEO," + "ISDRIVER,FILENUM,PERMISSIONNUM,FIRSTCARD,EFFECTIVETIME,PERMITTEDORGAN,BIRTHDAY,FAMILYADDR,ALL_ANNUAL_LEAVE,AVAILABLE_ANNUAL_LEAVE,TAGS," + "POSTS,IS_ADMIN,ACCESSALLOWEDMODE,Cache_Type,Operation_EmpId,Operation_Org_Id,Cache_Remark,BLOOD_TYPE,PC_CODE,PC_FILE_NAME,PC_FILE_URL)"); strsql.Append("values"); strsql.Append("(@ID,@EmpId,@USERS_UID,@EMP_NAME,@EMP_NUM,@EMP_SEX,@ORG_ID,@DEPT_ID,@EMP_EMAIL,@EMP_MOBILE,@IDNUMBER,@CERT,@NATION," + "@FACE,@MAR,@IS_WORK,@PROF,@POL,@IS_DEL,@PHOTO,@IS_LEADER,@ENLISTED_TIME,@IS_ACCESS,@IS_SUBCAMPVIDEO,@ISDRIVER,@FILENUM," + "@PERMISSIONNUM,@FIRSTCARD,@EFFECTIVETIME,@PERMITTEDORGAN,@BIRTHDAY,@FAMILYADDR,@ALL_ANNUAL_LEAVE,@AVAILABLE_ANNUAL_LEAVE,@TAGS,@POSTS,@IS_ADMIN," + "@ACCESSALLOWEDMODE,1,@Operation_EmpId,@Operation_Org_Id,@Cache_Remark,@BLOOD_TYPE,@PC_CODE,@PC_FILE_NAME,@PC_FILE_URL) ;"); MySqlParameter[] paras ={ new MySqlParameter("@ID",guid), new MySqlParameter("@EmpId",Guid.NewGuid().ToString("N")), new MySqlParameter("@USERS_UID",listImpEmp[j].EMP_MOBILE), new MySqlParameter("@EMP_NAME",listImpEmp[j].EMP_NAME), new MySqlParameter("@EMP_NUM",num+j), new MySqlParameter("@EMP_SEX",listImpEmp[j].EMP_SEX), new MySqlParameter("@ORG_ID", org_id), new MySqlParameter("@DEPT_ID", ""), new MySqlParameter("@EMP_EMAIL", listImpEmp[j].EMP_EMAIL), new MySqlParameter("@EMP_MOBILE",listImpEmp[j].EMP_MOBILE), new MySqlParameter("@IDNUMBER",listImpEmp[j].IDNUMBER), new MySqlParameter("@CERT",GetDicVidel(listDic,"CERTTYPE", listImpEmp[j].CERT)),//需要处理 new MySqlParameter("@NATION",GetDicVidel(listDic,"NATIONTYPE", listImpEmp[j].NATION)),//需要处理 new MySqlParameter("@FACE", GetDicVidel(listDic,"FACETYPE", listImpEmp[j].FACE)),//需要处理 new MySqlParameter("@MAR",GetDicVidel(listDic,"MARTYPE",listImpEmp[j].MAR)),//需要处理 new MySqlParameter("@IS_WORK", "1"), new MySqlParameter("@PROF",GetDicVidel(listDic,"PROFTYPE",listImpEmp[j].PROF)),//需要处理 new MySqlParameter("@POL", GetDicVidel(listDic,"POLTYPE",listImpEmp[j].POL)),//需要处理 new MySqlParameter("@IS_DEL","0"), new MySqlParameter("@PHOTO",""), new MySqlParameter("@IS_LEADER","0"), new MySqlParameter("@ENLISTED_TIME",listImpEmp[j].ENLISTED_TIME), new MySqlParameter("@IS_ACCESS","1"), new MySqlParameter("@IS_SUBCAMPVIDEO","0"), new MySqlParameter("@ISDRIVER","0"), new MySqlParameter("@FILENUM",""), new MySqlParameter("@PERMISSIONNUM", ""), new MySqlParameter("@FIRSTCARD",""), new MySqlParameter("@EFFECTIVETIME",""), new MySqlParameter("@PERMITTEDORGAN",""), new MySqlParameter("@BIRTHDAY",GetBirthDayByIdCard(listImpEmp[j].IDNUMBER)),//根据身份证获取出生日期 new MySqlParameter("@FAMILYADDR",listImpEmp[j].FAMILYADDR), new MySqlParameter("@ALL_ANNUAL_LEAVE","0"), new MySqlParameter("@AVAILABLE_ANNUAL_LEAVE","0"), new MySqlParameter("@TAGS",listImpEmp[j].TAGS), new MySqlParameter("@POSTS", ""), new MySqlParameter("@IS_ADMIN","0"), new MySqlParameter("@ACCESSALLOWEDMODE","0"), new MySqlParameter("@Operation_EmpId",OpEid), new MySqlParameter("@Operation_Org_Id",OpOrgId), new MySqlParameter("@Cache_Remark",Cache_Remark), new MySqlParameter("@BLOOD_TYPE",listImpEmp[j].BLOOD_TYPE), new MySqlParameter("@PC_CODE",PC_CODE), new MySqlParameter("@PC_FILE_NAME",fileName), new MySqlParameter("@PC_FILE_URL",dbFileUlr), }; strsql.Append(@" insert into tbl_sys_emp_move (ID,INSTANCEID,APPROVAL_RANK,SENDERID,SENDERNAME,SEND_ORG_ID ,SENDERTIME,RECEIVEID,RECEIVE_ORG_ID,OP_STATUS,Cache_Type,PC_CODE,PC_FILE_NAME,PC_FILE_URL) SELECT '" + guid1 + "','" + guid + "',ADMIN_LEVEL-1,id,EMP_NAME,ORG_ID,now(),'" + ApprovalEid + "',(SELECT ORG_ID from tbl_sys_emp WHERE id='" + ApprovalEid + "' LIMIT 1),'0','3','" + PC_CODE + "','" + fileName + "','" + dbFileUlr + "' from tbl_sys_emp WHERE id = '" + OpEid + "' ; "); int i = FangYar.Common.MySqlHelper.ExecuteSql(strsql.ToString(), paras); } } returnstr = "{\"code\":1,\"msg\":\"操作成功\",\"count\":0,\"data\":[]}"; } catch (Exception ex) { returnstr = "{\"code\":0,\"msg\":\"导入异常:" + ex + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "导入人员信息异常:" + ex); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员审核操作请求", "导入人员信息"); return returnstr; } /// /// 根据身份证号返回出生日期 /// /// /// private string GetBirthDayByIdCard(string idStr) { try { var ss = idStr.Substring(6, 8); DateTime dt = DateTime.ParseExact(ss, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); var str = dt.ToString("yyyy-MM-dd"); return str; } catch (Exception ex) { } return "1900-01-01"; } private string GetDicVidel(List lisDic, string typeStr, string nameStr) { try { var l1 = lisDic.Where(p => p.MOD_CODE == typeStr && p.DIC_TEXT == nameStr); if (l1.Count() > 0) { if (l1.Count() > 1) { var l2 = l1.Where(p => p.IS_ORG == "1"); if (l2.Count() > 0) { return l2.First().DIC_VALUE; } } return l1.First().DIC_VALUE; } } catch (Exception ex) { } return ""; } private DataTable SheetToDataTable(bool hasTitle, Worksheet sheet) { int iRowCount = sheet.Rows.Length; int iColCount = sheet.Columns.Length; DataTable dt = new DataTable(); //生成列头 for (int i = 0; i < iColCount; i++) { var name = "column" + i; if (hasTitle) { var txt = sheet.Range[1, i + 1].Text; if (!string.IsNullOrEmpty(txt)) name = txt; } while (dt.Columns.Contains(name)) name = name + "_1";//重复行名称会报错。 dt.Columns.Add(new DataColumn(name, typeof(string))); } //生成行数据 int rowIdx = hasTitle ? 2 : 1; for (int iRow = rowIdx; iRow <= iRowCount; iRow++) { DataRow dr = dt.NewRow(); for (int iCol = 1; iCol <= iColCount; iCol++) { dr[iCol - 1] = sheet.Range[iRow, iCol].DisplayedText; } dt.Rows.Add(dr); } return RemoveEmpty(dt); } /// /// 去除空行 /// /// /// private DataTable RemoveEmpty(DataTable dt) { List removelist = new List(); for (int i = 0; i < dt.Rows.Count; i++) { bool rowdataisnull = true; for (int j = 0; j < dt.Columns.Count; j++) { if (!string.IsNullOrEmpty(dt.Rows[i][j].ToString().Trim())) { rowdataisnull = false; } } if (rowdataisnull) { removelist.Add(dt.Rows[i]); } } for (int i = 0; i < removelist.Count; i++) { dt.Rows.Remove(removelist[i]); } return dt; } /// /// 导入人员模型 /// public class ImpEmpMo { /// /// 姓名 /// public string EMP_NAME { get; set; } /// /// 性别 /// public string EMP_SEX { get; set; } /// /// 营区 /// public string ORG_Name { get; set; } /// /// 部门名称 /// public string DEPT_Name { get; set; } /// /// 身份证号 /// public string IDNUMBER { get; set; } /// /// 手机号 /// public string EMP_MOBILE { get; set; } /// /// 邮箱 /// public string EMP_EMAIL { get; set; } /// /// 学历 /// public string CERT { get; set; } /// /// 民族 /// public string NATION { get; set; } /// /// 政治面貌 /// public string FACE { get; set; } /// /// 婚姻状况 /// public string MAR { get; set; } /// /// 职位 /// public string PROF { get; set; } /// /// 消防救援衔 /// public string POL { get; set; } /// /// 入伍时间 /// public string ENLISTED_TIME { get; set; } /// /// 家庭住址 /// public string FAMILYADDR { get; set; } /// /// 标签 /// public string TAGS { get; set; } /// /// 血型 /// public string BLOOD_TYPE { get; set; } } /// /// 导入机构模型 /// public class ImpOrgMo { /// /// 机构ID /// public string ORG_ID { get; set; } /// /// 机构名称 /// public string ORG_NAME { get; set; } } /// /// 导入选项数据模型 /// public class ImpDicMo { /// /// 信息ID /// public string ID { get; set; } /// /// 信息编码 /// public string MOD_CODE { get; set; } /// /// 信息名称 /// public string DIC_TEXT { get; set; } /// /// 信息值 /// public string DIC_VALUE { get; set; } /// /// 上级编码 /// public string DIC_FID { get; set; } /// /// 排序 /// public string DIC_ORDER { get; set; } /// /// 0:新疆;1:西藏 /// public string IS_ORG { get; set; } } #endregion public bool IsReusable { get { return false; } } } }