using System; using System.Collections.Generic; using System.Web; using System.Data; using System.Text; using System.IO; using NPOI.XWPF.UserModel; using NPOI.OpenXmlFormats.Wordprocessing; using NPOI.Util; using ICSharpCode.SharpZipLib.Zip; using Newtonsoft.Json; namespace FangYar.WebUI.ashx { /// /// SysEmpMoveHandle 人员档案 /// public class SysEmpArchivesHandle : 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 "list": returnstr = list(context); break; case "add": returnstr = add(context); break; case "edit": returnstr = edit(context); break; case "del": returnstr = del(context); break; case "dels": returnstr = dels(context); break; case "getModelById": returnstr = getModelById(context); break; case "report": returnstr = report(context); break; case "sta_xianji": returnstr = sta_xianji(context); break; case "sta_zhuanyegangwei": returnstr = sta_zhuanyegangwei(context); break; case "sta_zizhizhengshu": returnstr = sta_zizhizhengshu(context); break; case "sta_minzu": returnstr = sta_minzu(context); break; case "sta_xuexing": returnstr = sta_xuexing(context); break; case "sta_zhengzhimianmao": returnstr = sta_zhengzhimianmao(context); break; case "sta_wenhuachengdu": returnstr = sta_wenhuachengdu(context); break; case "sta_shangji": returnstr = sta_shangji(context); break; case "sta_hunyinqingkuang": returnstr = sta_hunyinqingkuang(context); break; case "sta_yuyouzinv": returnstr = sta_yuyouzinv(context); break; case "sta_infoList": returnstr = sta_infoList(context); break; case "sta_exp": returnstr = sta_exp(context); break; } context.Response.Write(returnstr); } private string list(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string keyword = context.Request.Params["keywords"]; string treeID = context.Request.Params["treeID"]; string page = context.Request.Params["page"]; string limit = context.Request.Params["limit"]; string is_content = context.Request.Params["is_content"]; string selDeptId = context.Request.Params["selDeptId"]; string pol = context.Request.Params["pol"]; string posts = context.Request.Params["posts"]; string nation = context.Request.Params["nation"]; string cert = context.Request.Params["cert"]; string face = context.Request.Params["face"]; string blood_type = context.Request.Params["blood_type"]; string mar = context.Request.Params["mar"]; string is_children = context.Request.Params["is_children"]; string prof = context.Request.Params["prof"]; string department = context.Request.Params["department"]; string qualification = context.Request.Params["qualification"]; string ageRange = context.Request.Params["ageRange"]; int pageIndex = 1; int pageSize = 10; if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); } if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); } int startnum = (pageIndex - 1) * pageSize; StringBuilder countSql = new StringBuilder(); countSql.Append(" SELECT count(1) FROM TBL_SYS_EMP_ARCHIVES t "); StringBuilder strSql = new StringBuilder(); strSql.Append(" SELECT t.*, "); strSql.Append(" (select o.org_name from fire_org o where o.org_id = t.org_id ) org_name , "); strSql.Append(" (select o.org_name from fire_org o where o.org_id = t.dept_id ) dept_name , "); strSql.Append(" t.is_leader sort "); strSql.Append(" FROM TBL_SYS_EMP_ARCHIVES t "); if (!string.IsNullOrEmpty(treeID) && treeID != OrgId) { OrgId = treeID; } if (is_content == "1") { if (!string.IsNullOrWhiteSpace(selDeptId)) { countSql.Append("where DEPT_ID = '" + selDeptId + "' "); strSql.Append("where DEPT_ID = '" + selDeptId + "' "); } else { countSql.Append(",(select get_Org_child_list('" + OrgId + "') cids) s where find_in_set(org_id, cids) "); strSql.Append(",(select get_Org_child_list('" + OrgId + "') cids) s where find_in_set(org_id, cids) "); } } else { if (!string.IsNullOrWhiteSpace(selDeptId)) { countSql.Append("where DEPT_ID = '" + selDeptId + "' "); strSql.Append("where DEPT_ID = '" + selDeptId + "' "); } else { countSql.Append("where ORG_ID = '" + OrgId + "' "); strSql.Append("where ORG_ID = '" + OrgId + "' "); } } if (!string.IsNullOrEmpty(keyword)) { countSql.Append(" and ( emp_name like '%" + keyword + "%' or EMP_MOBILE like '%" + keyword + "%')"); strSql.Append(" and ( emp_name like '%" + keyword + "%' or EMP_MOBILE like '%" + keyword + "%')"); } if (!string.IsNullOrEmpty(pol)) { countSql.Append(" and pol = '" + pol + "'"); strSql.Append(" and pol = '" + pol + "' "); } if (!string.IsNullOrEmpty(posts)) { countSql.Append(" and posts = '" + posts + "'"); strSql.Append(" and posts = '" + posts + "' "); } if (!string.IsNullOrEmpty(nation)) { countSql.Append(" and nation = '" + nation + "'"); strSql.Append(" and nation = '" + nation + "' "); } if (!string.IsNullOrEmpty(cert)) { countSql.Append(" and cert = '" + cert + "'"); strSql.Append(" and cert = '" + cert + "' "); } if (!string.IsNullOrEmpty(face)) { countSql.Append(" and face = '" + face + "'"); strSql.Append(" and face = '" + face + "' "); } if (!string.IsNullOrEmpty(blood_type)) { countSql.Append(" and blood_type = '" + blood_type + "'"); strSql.Append(" and blood_type = '" + blood_type + "' "); } if (!string.IsNullOrEmpty(mar)) { countSql.Append(" and mar = '" + mar + "'"); strSql.Append(" and mar = '" + mar + "' "); } if (!string.IsNullOrEmpty(is_children)) { countSql.Append(" and is_children = '" + is_children + "'"); strSql.Append(" and is_children = '" + is_children + "' "); } if (!string.IsNullOrEmpty(prof)) { countSql.Append(" and prof = '" + prof + "'"); strSql.Append(" and prof = '" + prof + "' "); } if (!string.IsNullOrEmpty(department)) { countSql.Append(" and department = '" + department + "'"); strSql.Append(" and department = '" + department + "' "); } if (!string.IsNullOrEmpty(qualification)) { countSql.Append(" and qualification = '" + qualification + "'"); strSql.Append(" and qualification = '" + qualification + "' "); } object obj = FangYar.Common.MySqlHelper.GetSingle(countSql.ToString()); int count = 0; if (obj != null) { count = Convert.ToInt32(obj); } returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"count\":" + count + ",\"data\":"; if (count == 0) { returnstr += "[]"; } else { strSql.Append(" order by sort desc"); strSql.Append(" limit " + startnum + ", " + pageSize); DataTable dt = FangYar.Common.MySqlHelper.QueryTable(strSql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); } returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } private string add(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string ID = Guid.NewGuid().ToString("N"); string empName = context.Request.Params["empName"];//姓名 string orgId = context.Request.Params["orgId"];//机构ID string deptId = context.Request.Params["deptId"];//部门ID string empMobile = context.Request.Params["empMobile"];//本人主要联系方式 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 prof = context.Request.Params["prof"];//专业岗位 string posts = context.Request.Params["posts"];//职务 string pol = context.Request.Params["pol"];//消防救援衔 string photo = context.Request.Params["photo"];//照片 string nativePlace = context.Request.Params["nativePlace"];//籍贯 string enlistedTime = context.Request.Params["enlistedTime"];//入队时间 string enlistedAddr = context.Request.Params["enlistedAddr"];//入队地点 string partyTime = context.Request.Params["partyTime"];//党团时间 string bloodType = context.Request.Params["bloodType"];//血型 string workTime = context.Request.Params["workTime"];//工作时间 string isChildren = context.Request.Params["isChildren"];//育有子女情况 string graduationSchool = context.Request.Params["graduationSchool"];//毕业院校 string qualification = context.Request.Params["qualification"];//取得鉴定资格证书 string firemanCard = context.Request.Params["firemanCard"];//消防员证号 string department = context.Request.Params["department"];//部别 string workUnit = context.Request.Params["workUnit"];//工作单位 string familyMember = context.Request.Params["familyMember"];//家庭成员联系方式 string isInjury = context.Request.Params["isInjury"];//是否患有伤疾 string isCommentInjury = context.Request.Params["isCommentInjury"];//是否参加评残 string awardSituation = context.Request.Params["awardSituation"];//立功受奖情况 string cultivateSituation = context.Request.Params["cultivateSituation"];//参加培训情况 string personWorkResume = context.Request.Params["personWorkResume"];//个人工作简历 string remarks = context.Request.Params["remarks"];//备注 string sql = "insert into tbl_sys_emp_archives(" + "ID,EMP_NAME,ORG_ID,DEPT_ID,EMP_MOBILE,IDNUMBER,BIRTHDAY,FAMILYADDR,CERT,NATION,FACE,MAR," + "PROF,POSTS,POL,PHOTO,native_place,enlisted_time,enlisted_addr,party_time,blood_type,work_time," + "is_children,graduation_school,qualification,fireman_card,department,work_unit,family_member," + "is_injury,is_comment_injury,award_situation,cultivate_situation,person_work_resume,remarks" + ") values (" + "'" + ID + "','" + empName + "', '" + orgId + "','" + deptId + "','" + empMobile + "','" + idnumber + "','" + birthday + "','" + familyaddr + "','" + cert + "','" + nation + "','" + face + "','" + mar + "'," + "'" + prof + "','" + posts + "','" + pol + "','" + photo + "','" + nativePlace + "','" + enlistedTime + "','" + enlistedAddr + "','" + partyTime + "','" + bloodType + "','" + workTime + "'," + "'" + isChildren + "','" + graduationSchool + "','" + qualification + "','" + firemanCard + "','" + department + "','" + workUnit + "','" + familyMember + "'," + "'" + isInjury + "','" + isCommentInjury + "','" + awardSituation + "','" + cultivateSituation + "','" + personWorkResume + "','" + remarks + "')"; int i = FangYar.Common.MySqlHelper.Execute(sql); if (i > 0) { msg = "添加成功!"; code = 1; } else { msg = "添加失败!"; } } catch (Exception e) { msg = "添加失败!"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员档案操作请求", "添加异常:" + e); } returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Update, "人员档案操作请求", "添加"); return returnstr; } private string edit(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string ID = context.Request.Params["ID"]; string empName = context.Request.Params["empName"];//姓名 string orgId = context.Request.Params["orgId"];//机构ID string deptId = context.Request.Params["deptId"];//部门ID string empMobile = context.Request.Params["empMobile"];//本人主要联系方式 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 prof = context.Request.Params["prof"];//专业岗位 string posts = context.Request.Params["posts"];//职务 string pol = context.Request.Params["pol"];//消防救援衔 string photo = context.Request.Params["photo"];//照片 string nativePlace = context.Request.Params["nativePlace"];//籍贯 string enlistedTime = context.Request.Params["enlistedTime"];//入队时间 string enlistedAddr = context.Request.Params["enlistedAddr"];//入队地点 string partyTime = context.Request.Params["partyTime"];//党团时间 string bloodType = context.Request.Params["bloodType"];//血型 string workTime = context.Request.Params["workTime"];//工作时间 string isChildren = context.Request.Params["isChildren"];//育有子女情况 string graduationSchool = context.Request.Params["graduationSchool"];//毕业院校 string qualification = context.Request.Params["qualification"];//取得鉴定资格证书 string firemanCard = context.Request.Params["firemanCard"];//消防员证号 string department = context.Request.Params["department"];//部别 string workUnit = context.Request.Params["workUnit"];//工作单位 string familyMember = context.Request.Params["familyMember"];//家庭成员联系方式 string isInjury = context.Request.Params["isInjury"];//是否患有伤疾 string isCommentInjury = context.Request.Params["isCommentInjury"];//是否参加评残 string awardSituation = context.Request.Params["awardSituation"];//立功受奖情况 string cultivateSituation = context.Request.Params["cultivateSituation"];//参加培训情况 string personWorkResume = context.Request.Params["personWorkResume"];//个人工作简历 string remarks = context.Request.Params["remarks"];//备注 string sql = "update tbl_sys_emp_archives set " + "EMP_NAME = '" + empName + "'," + "ORG_ID = '" + orgId + "'," + "DEPT_ID = '" + deptId + "'," + "EMP_MOBILE = '" + empMobile + "'," + "IDNUMBER = '" + idnumber + "'," + "BIRTHDAY = '" + birthday + "'," + "FAMILYADDR = '" + familyaddr + "'," + "CERT = '" + cert + "'," + "NATION = '" + nation + "'," + "FACE = '" + face + "'," + "MAR = '" + mar + "'," + "PROF = '" + prof + "'," + "POSTS = '" + posts + "'," + "POL = '" + pol + "'," + "PHOTO = '" + photo + "'," + "native_place = '" + nativePlace + "'," + "enlisted_time = '" + enlistedTime + "'," + "enlisted_addr = '" + enlistedAddr + "'," + "party_time = '" + partyTime + "'," + "blood_type = '" + bloodType + "'," + "work_time = '" + workTime + "'," + "is_children = '" + isChildren + "'," + "graduation_school = '" + graduationSchool + "'," + "qualification = '" + qualification + "'," + "fireman_card = '" + firemanCard + "'," + "department = '" + department + "'," + "work_unit = '" + workUnit + "'," + "family_member = '" + familyMember + "'," + "is_injury = '" + isInjury + "'," + "is_comment_injury = '" + isCommentInjury + "'," + "award_situation = '" + awardSituation + "'," + "cultivate_situation = '" + cultivateSituation + "'," + "person_work_resume = '" + personWorkResume + "'," + "remarks = '" + remarks + "' " + "where ID = '" + ID + "'"; int i = FangYar.Common.MySqlHelper.Execute(sql); if (i > 0) { msg = "修改成功!"; code = 1; } else { msg = "修改失败!"; } } catch (Exception e) { msg = "修改失败!"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "人员档案操作请求", "修改异常:" + e); } returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Update, "人员档案操作请求", "修改"); return returnstr; } private string del(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string ID = context.Request.Params["ID"]; string sql = "delete from tbl_sys_emp_archives where id = '" + ID + "' "; int i = FangYar.Common.MySqlHelper.Execute(sql); if (i > 0) { msg = "删除成功!"; code = 1; } else { msg = "删除失败!"; } } catch (Exception e) { msg = "删除失败!"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "消防员电子档案操作请求", "删除异常:" + e); } returnstr = "{\"msg\":\"" + msg + "\",\"code\":" + code + "}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Update, "消防员电子档案操作请求", "删除"); return returnstr; } private string dels(HttpContext context) { string returnstr = ""; int code = -1; string msg = ""; try { string empList = context.Request.Params["empList"]; string[] empArray = empList.Split(','); string empListString = ""; for (int i = 0; i < empArray.Length; i++) { if (i == 0) { empListString = "'" + empArray[i] + "'"; } else { empListString += ",'" + empArray[i] + "'"; } } string sql = "delete from tbl_sys_emp_archives where id in (" + empListString + ") "; int count = FangYar.Common.MySqlHelper.Execute(sql); if (count > 0) { msg = "批量删除成功!"; code = 1; } else { msg = "批量删除失败!"; } } catch (Exception e) { msg = "批量删除失败!"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Error, "消防员电子档案操作请求", "批量删除异常:" + e); } returnstr = "{\"code\":" + code + ",\"msg\":\"" + msg + "\"}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Delete, "消防员电子档案操作请求", "批量删除"); return returnstr; } private string getModelById(HttpContext context) { string returnstr = ""; try { string id = context.Request.Params["id"]; if (!string.IsNullOrEmpty(id)) { string sql = "select t.* from TBL_SYS_EMP_ARCHIVES t where id = '" + id + "'"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql); returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"data\":"; returnstr += FangYar.Common.JsonHelper.ToJson(dt); returnstr += "}"; } else { returnstr = "{\"code\":-1,\"msg\":\"id不能为空!\",\"count\":0,\"data\":[]}"; } } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "审批异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "审批"); return returnstr; } private string report(HttpContext context) { string returnstr = ""; try { string ids = context.Request.Params["ids"]; string existUrl_S = ""; List files = new List(); if (!string.IsNullOrEmpty(ids)) { string[] id_s = ids.Split(','); for (int i = 0; i < id_s.Length; i++) { if (!string.IsNullOrEmpty(id_s[i])) { string templateUrl = "/UISysManage/EmpArchives/消防员电子档案.docx"; Stream stream = File.OpenRead(HttpContext.Current.Server.MapPath(templateUrl)); XWPFDocument doc = new XWPFDocument(stream); Dictionary dic = new Dictionary(); string sql = "select * from TBL_SYS_EMP_ARCHIVES where id = '" + id_s[i] + "'"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql); if (dt.Rows.Count > 0) { //string workUnit = dt.Rows[0]["work_unit"].ToString(); string orgId = dt.Rows[0]["org_id"].ToString(); //if (workUnit != null || workUnit != "") //{ // orgId = workUnit; //} string empName = dt.Rows[0]["emp_name"].ToString(); string workUnit = dt.Rows[0]["work_unit"].ToString(); string fileName = empName; if (!string.IsNullOrEmpty(workUnit)) { fileName = workUnit + "_" + empName; } string existUrl = "/Upload/EmpArchives/" + orgId + "/" + fileName + ".docx"; string existUrl1 = "/Upload/EmpArchives/" + orgId + "/"; //如果不存在就创建文件夹 var pathFile = HttpContext.Current.Server.MapPath(existUrl1); if (!Directory.Exists(pathFile)) { Directory.CreateDirectory(pathFile); } bool exist = System.IO.File.Exists(HttpContext.Current.Server.MapPath(existUrl));//如果不存在就创建文件夹 dic.Add("${work_unit_title}", dt.Rows[0]["work_unit"].ToString()); dic.Add("${emp_name}", empName); dic.Add("${pol}", dt.Rows[0]["pol"].ToString()); dic.Add("${posts}", dt.Rows[0]["posts"].ToString()); dic.Add("${nation}", dt.Rows[0]["nation"].ToString()); dic.Add("${native_place}", dt.Rows[0]["native_place"].ToString()); dic.Add("${enlisted_addr}", dt.Rows[0]["enlisted_addr"].ToString()); dic.Add("${cert}", dt.Rows[0]["cert"].ToString()); dic.Add("${face}", dt.Rows[0]["face"].ToString()); dic.Add("${party_time}", dt.Rows[0]["party_time"].ToString()); dic.Add("${blood_type}", dt.Rows[0]["blood_type"].ToString()); dic.Add("${birthday}", dt.Rows[0]["birthday"].ToString()); dic.Add("${work_time}", dt.Rows[0]["work_time"].ToString()); dic.Add("${mar}", dt.Rows[0]["mar"].ToString()); dic.Add("${is_children}", dt.Rows[0]["is_children"].ToString()); dic.Add("${graduation_school}", dt.Rows[0]["graduation_school"].ToString()); dic.Add("${prof}", dt.Rows[0]["prof"].ToString()); dic.Add("${qualification}", dt.Rows[0]["qualification"].ToString()); dic.Add("${idnumber}", dt.Rows[0]["idnumber"].ToString()); dic.Add("${fireman_card}", dt.Rows[0]["fireman_card"].ToString()); dic.Add("${work_unit}", dt.Rows[0]["work_unit"].ToString()); dic.Add("${department}", dt.Rows[0]["department"].ToString()); dic.Add("${emp_mobile}", dt.Rows[0]["emp_mobile"].ToString()); dic.Add("${family_member}", dt.Rows[0]["family_member"].ToString()); dic.Add("${familyaddr}", dt.Rows[0]["familyaddr"].ToString()); dic.Add("${is_injury}", dt.Rows[0]["is_injury"].ToString()); dic.Add("${is_comment_injury}", dt.Rows[0]["is_comment_injury"].ToString()); dic.Add("${award_situation}", dt.Rows[0]["award_situation"].ToString()); dic.Add("${cultivate_situation}", dt.Rows[0]["cultivate_situation"].ToString()); dic.Add("${person_work_resume}", dt.Rows[0]["person_work_resume"].ToString()); dic.Add("${remarks}", dt.Rows[0]["remarks"].ToString()); if (!string.IsNullOrEmpty(dt.Rows[0]["photo"].ToString())) { dic.Add("${photo}", HttpContext.Current.Server.MapPath("/" + dt.Rows[0]["photo"].ToString())); } foreach (var para in doc.Paragraphs) { ReplaceKey(dic, para); } XWPFTable iterator = doc.Tables[0]; List rows = iterator.Rows; foreach (XWPFTableRow row in rows) { List cells = row.GetTableCells(); foreach (XWPFTableCell cell in cells) { IList paras = cell.Paragraphs; foreach (XWPFParagraph para in paras) { ReplaceKey(dic, para); } } } //所有替换符改为空字符串 ReplaceKey2(doc); //MemoryStream ms = new MemoryStream(); //doc.Write(ms); ////保存修改后的文档 //// 把 byte[] 写入文件 //FileStream fs = new FileStream(HttpContext.Current.Server.MapPath(existUrl), FileMode.Create); //BinaryWriter bw = new BinaryWriter(fs); //bw.Write(ms.GetBuffer()); //bw.Close(); //fs.Close(); FileStream file = new FileStream(HttpContext.Current.Server.MapPath(existUrl), FileMode.Create, FileAccess.Write); doc.Write(file); stream.Close(); doc.Close(); file.Close(); returnstr = "{\"code\":0,\"msg\":\"生成成功\",\"count\":0,\"data\":\"" + existUrl + "\"}"; existUrl_S += existUrl + ","; files.Add(HttpContext.Current.Server.MapPath(existUrl)); } } } } string zipUrl = "/Upload/EmpArchives/" + System.DateTime.Now.ToString("yyyyHHddHHmmssfff") + Guid.NewGuid().ToString() + ".zip"; string zipUrl_disk = HttpContext.Current.Server.MapPath(zipUrl); FilesZip(files, zipUrl_disk); returnstr = "{\"code\":200,\"exist\":\"true\",\"dataUrl\":\"" + zipUrl + "\"}"; } catch (Exception e) { } return returnstr; } //所有替换符改为空字符串 private static void ReplaceKey2(XWPFDocument doc) { Dictionary dic = new Dictionary(); dic.Add("${work_unit_title}", ""); dic.Add("${emp_name}", ""); dic.Add("${pol}", ""); dic.Add("${posts}", ""); dic.Add("${nation}", ""); dic.Add("${native_place}", ""); dic.Add("${enlisted_addr}", ""); dic.Add("${cert}", ""); dic.Add("${face}", ""); dic.Add("${party_time}", ""); dic.Add("${blood_type}", ""); dic.Add("${birthday}", ""); dic.Add("${work_time}", ""); dic.Add("${mar}", ""); dic.Add("${is_children}", ""); dic.Add("${graduation_school}", ""); dic.Add("${prof}", ""); dic.Add("${qualification}", ""); dic.Add("${idnumber}", ""); dic.Add("${fireman_card}", ""); dic.Add("${work_unit}", ""); dic.Add("${department}", ""); dic.Add("${emp_mobile}", ""); dic.Add("${family_member}", ""); dic.Add("${familyaddr}", ""); dic.Add("${is_injury}", ""); dic.Add("${is_comment_injury}", ""); dic.Add("${award_situation}", ""); dic.Add("${cultivate_situation}", ""); dic.Add("${person_work_resume}", ""); dic.Add("${remarks}", ""); dic.Add("${photo}", ""); foreach (var para in doc.Paragraphs) { ReplaceKey(dic, para); } XWPFTable iterator = doc.Tables[0]; List rows = iterator.Rows; foreach (XWPFTableRow row in rows) { List cells = row.GetTableCells(); foreach (XWPFTableCell cell in cells) { IList paras = cell.Paragraphs; foreach (XWPFParagraph para in paras) { ReplaceKey(dic, para); } } } } /// /// word模板内容替换 /// /// /// 实体数据 /// 段落 private static void ReplaceKey(Dictionary dic, XWPFParagraph para) { var runs = para.Runs; foreach (var run in runs) { foreach (string key in dic.Keys) { string oldText = key; string newText = dic[key]; string text = run.ToString(); if (text.Contains(oldText)) { if (oldText == "${photo}" && dic[oldText] != "") { run.ReplaceText(oldText, ""); int widthEmus = (int)(127.0 * 6025); int heightEmus = (int)(212.0 * 6525); try { using (FileStream picData = new FileStream(dic[oldText], FileMode.Open, FileAccess.Read)) { run.AddPicture(picData, (int)PictureType.PNG, "photo", widthEmus, heightEmus); } } catch (Exception e) { } } else { text = text.Replace(oldText, newText); } } run.SetText(text);//替换标签文本(重要) } } } public void FilesZip(List fileNames, string saveFullPath, int? compresssionLevel = 9, string password = "", string comment = "") { using (ZipOutputStream zos = new ZipOutputStream(System.IO.File.Open(saveFullPath, FileMode.OpenOrCreate))) { if (compresssionLevel.HasValue) { zos.SetLevel(compresssionLevel.Value);//设置压缩级别 } if (!string.IsNullOrEmpty(password)) { zos.Password = password;//设置zip包加密密码 } if (!string.IsNullOrEmpty(comment)) { zos.SetComment(comment);//设置zip包的注释 } foreach (string file in fileNames) { if (System.IO.File.Exists(file)) { FileInfo item = new FileInfo(file); FileStream fs = System.IO.File.OpenRead(item.FullName); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); ZipEntry entry = new ZipEntry(item.Name); zos.PutNextEntry(entry); zos.Write(buffer, 0, buffer.Length); fs.Close(); } } zos.Close(); } } //设置字体样式 public XWPFParagraph SetCellText(XWPFDocument doc, XWPFTable table, string setText) { //table中的文字格式设置 CT_P para = new CT_P(); XWPFParagraph pCell = new XWPFParagraph(para, table.Body); pCell.Alignment = ParagraphAlignment.CENTER;//字体居中 pCell.VerticalAlignment = TextAlignment.CENTER;//字体居中 XWPFRun r1c1 = pCell.CreateRun(); r1c1.SetText(setText); r1c1.FontSize = 12; r1c1.FontFamily = "宋体"; return pCell; } //衔级统计 private string sta_xianji(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string is_content = context.Request.Params["is_content"]; string sql = " select MOD_TEXT, DIC_TEXT, DIC_ORDER, IFNULL(SUM(num), 0) NUM from(SELECT * FROM tbl_sys_emp_archives_dicdetail td"; sql += " LEFT JOIN (SELECT ifnull(pol, '其他' ) as pol , count(1) AS num FROM tbl_sys_emp_archives"; if (is_content == "0") { sql += " where ORG_ID = '" + OrgId + "' "; } else { sql += " where ORG_ID in (select org_id from fire_org, (SELECT get_Org_child_list('" + OrgId + "') cids) t where find_in_set(ORG_ID, cids)) "; } sql += " GROUP BY pol ) ta ON td.DIC_TEXT = ta.pol WHERE MOD_CODE = 'pol') a GROUP BY MOD_TEXT, DIC_TEXT, DIC_ORDER ORDER BY DIC_ORDER + 0"; returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"data\":"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } //专业岗位统计 private string sta_zhuanyegangwei(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string is_content = context.Request.Params["is_content"]; string sql = " select MOD_TEXT, DIC_TEXT, DIC_ORDER, IFNULL(SUM(num), 0) NUM from( SELECT * FROM tbl_sys_emp_archives_dicdetail td"; sql += " LEFT JOIN (SELECT ifnull(prof, '其他' ) as prof , count(1) AS num FROM tbl_sys_emp_archives"; if (is_content == "0") { sql += " where ORG_ID = '" + OrgId + "' "; } else { sql += " where ORG_ID in (select org_id from fire_org, (SELECT get_Org_child_list('" + OrgId + "') cids) t where find_in_set(ORG_ID, cids)) "; } sql += " GROUP BY prof ) ta ON td.DIC_TEXT = ta.prof WHERE MOD_CODE = 'prof') a GROUP BY MOD_TEXT, DIC_TEXT, DIC_ORDER ORDER BY DIC_ORDER + 0"; returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"data\":"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } //取得鉴定资质证书统计 private string sta_zizhizhengshu(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string is_content = context.Request.Params["is_content"]; string sql = " select MOD_TEXT,DIC_TEXT,DIC_ORDER ,IFNULL(SUM(num),0) NUM from ( SELECT * FROM tbl_sys_emp_archives_dicdetail td"; sql += " LEFT JOIN(SELECT ifnull(qualification, '其他' ) as qualification , count(1) AS num FROM tbl_sys_emp_archives "; if (is_content == "0") { sql += " where ORG_ID = '" + OrgId + "' "; } else { sql += " where ORG_ID in (select org_id from fire_org, (SELECT get_Org_child_list('" + OrgId + "') cids) t where find_in_set(ORG_ID, cids)) "; } sql += " GROUP BY qualification ) ta ON td.DIC_TEXT = ta.qualification WHERE MOD_CODE = 'qualification') a GROUP BY MOD_TEXT, DIC_TEXT, DIC_ORDER ORDER BY DIC_ORDER + 0"; returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"data\":"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } //民族统计 private string sta_minzu(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string is_content = context.Request.Params["is_content"]; string sql = " select MOD_TEXT,DIC_TEXT,DIC_ORDER ,IFNULL(SUM(num),0) NUM from ( SELECT * FROM tbl_sys_emp_archives_dicdetail td"; sql += " LEFT JOIN(SELECT ifnull(nation, '其他' ) as nation , count(1) AS num FROM tbl_sys_emp_archives "; if (is_content == "0") { sql += " where ORG_ID = '" + OrgId + "' "; } else { sql += " where ORG_ID in (select org_id from fire_org, (SELECT get_Org_child_list('" + OrgId + "') cids) t where find_in_set(ORG_ID, cids)) "; } sql += " GROUP BY nation ) ta ON td.DIC_TEXT = ta.nation WHERE MOD_CODE = 'nation') a GROUP BY MOD_TEXT, DIC_TEXT, DIC_ORDER ORDER BY DIC_ORDER + 0"; returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"data\":"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } //血型统计 private string sta_xuexing(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string is_content = context.Request.Params["is_content"]; string sql = " select MOD_TEXT,DIC_TEXT,DIC_ORDER ,IFNULL(SUM(num),0) NUM from ( SELECT * FROM tbl_sys_emp_archives_dicdetail td"; sql += " LEFT JOIN(SELECT ifnull(blood_type, '其他' ) as blood_type , count(1) AS num FROM tbl_sys_emp_archives "; if (is_content == "0") { sql += " where ORG_ID = '" + OrgId + "' "; } else { sql += " where ORG_ID in (select org_id from fire_org, (SELECT get_Org_child_list('" + OrgId + "') cids) t where find_in_set(ORG_ID, cids)) "; } sql += " GROUP BY blood_type ) ta ON td.DIC_TEXT = ta.blood_type WHERE MOD_CODE = 'bloodType') a GROUP BY MOD_TEXT, DIC_TEXT, DIC_ORDER ORDER BY DIC_ORDER + 0"; returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"data\":"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } //政治面貌统计 private string sta_zhengzhimianmao(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string is_content = context.Request.Params["is_content"]; string sql = " select MOD_TEXT,DIC_TEXT,DIC_ORDER ,IFNULL(SUM(num),0) NUM from (SELECT * FROM tbl_sys_emp_archives_dicdetail td"; sql += " LEFT JOIN(SELECT ifnull(face, '其他' ) as face , count(1) AS num FROM tbl_sys_emp_archives "; if (is_content == "0") { sql += " where ORG_ID = '" + OrgId + "' "; } else { sql += " where ORG_ID in (select org_id from fire_org, (SELECT get_Org_child_list('" + OrgId + "') cids) t where find_in_set(ORG_ID, cids)) "; } sql += " GROUP BY face ) ta ON td.DIC_TEXT = ta.face WHERE MOD_CODE = 'face') a GROUP BY MOD_TEXT, DIC_TEXT, DIC_ORDER ORDER BY DIC_ORDER + 0"; returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"data\":"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } //文化程度统计 private string sta_wenhuachengdu(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string is_content = context.Request.Params["is_content"]; string sql = " select MOD_TEXT,DIC_TEXT,DIC_ORDER ,IFNULL(SUM(num),0) NUM from (SELECT * FROM tbl_sys_emp_archives_dicdetail td"; sql += " LEFT JOIN(SELECT ifnull(cert, '其他' ) as cert , count(1) AS num FROM tbl_sys_emp_archives "; if (is_content == "0") { sql += " where ORG_ID = '" + OrgId + "' "; } else { sql += " where ORG_ID in (select org_id from fire_org, (SELECT get_Org_child_list('" + OrgId + "') cids) t where find_in_set(ORG_ID, cids)) "; } sql += " GROUP BY cert ) ta ON td.DIC_TEXT = ta.CERT WHERE MOD_CODE = 'cert') a GROUP BY MOD_TEXT, DIC_TEXT, DIC_ORDER ORDER BY DIC_ORDER + 0"; returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"data\":"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } //是否伤残疾病统计 private string sta_shangji(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string is_content = context.Request.Params["is_content"]; string sql = " select MOD_TEXT,DIC_TEXT,DIC_ORDER ,IFNULL(SUM(num),0) NUM from (SELECT * FROM ("; sql += " select '是否患有伤疾' as MOD_TEXT, '是' DIC_TEXT, 0 DIC_ORDER from dual union all select '是否患有伤疾' as MOD_TEXT, '否' DIC_TEXT, 1 DIC_ORDER from dual"; sql += " ) td LEFT JOIN(SELECT ifnull(is_injury, '其他') as is_injury, count(1) AS num FROM tbl_sys_emp_archives "; if (is_content == "0") { sql += " where ORG_ID = '" + OrgId + "' "; } else { sql += " where ORG_ID in (select org_id from fire_org, (SELECT get_Org_child_list('" + OrgId + "') cids) t where find_in_set(ORG_ID, cids)) "; } sql += " GROUP BY is_injury ) ta ON td.DIC_TEXT = ta.is_injury ) a GROUP BY MOD_TEXT, DIC_TEXT, DIC_ORDER ORDER BY DIC_ORDER + 0"; returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"data\":"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } //婚姻状况统计 private string sta_hunyinqingkuang(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string is_content = context.Request.Params["is_content"]; string sql = " select MOD_TEXT,DIC_TEXT,DIC_ORDER ,IFNULL(SUM(num),0) NUM from (SELECT * FROM tbl_sys_emp_archives_dicdetail td"; sql += " LEFT JOIN(SELECT ifnull(mar, '其他' ) as mar , count(1) AS num FROM tbl_sys_emp_archives "; if (is_content == "0") { sql += " where ORG_ID = '" + OrgId + "' "; } else { sql += " where ORG_ID in (select org_id from fire_org, (SELECT get_Org_child_list('" + OrgId + "') cids) t where find_in_set(ORG_ID, cids)) "; } sql += " GROUP BY mar ) ta ON td.DIC_TEXT = ta.mar WHERE MOD_CODE = 'mar') a GROUP BY MOD_TEXT, DIC_TEXT, DIC_ORDER ORDER BY DIC_ORDER + 0"; returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"data\":"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } //育有子女情况统计 private string sta_yuyouzinv(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string is_content = context.Request.Params["is_content"]; string sql = " select MOD_TEXT,DIC_TEXT,DIC_ORDER ,IFNULL(SUM(num),0) NUM from (SELECT * FROM tbl_sys_emp_archives_dicdetail td"; sql += " LEFT JOIN(SELECT ifnull(is_children, '其他' ) as is_children , count(1) AS num FROM tbl_sys_emp_archives "; if (is_content == "0") { sql += " where ORG_ID = '" + OrgId + "' "; } else { sql += " where ORG_ID in (select org_id from fire_org, (SELECT get_Org_child_list('" + OrgId + "') cids) t where find_in_set(ORG_ID, cids)) "; } sql += " GROUP BY is_children ) ta ON td.DIC_TEXT = ta.is_children WHERE MOD_CODE = 'isChildren' ) a GROUP BY MOD_TEXT, DIC_TEXT, DIC_ORDER ORDER BY DIC_ORDER + 0"; returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"data\":"; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } //电子档案统计人员列表 private string sta_infoList(HttpContext context) { string returnstr = ""; try { string OrgId = context.Request.Params["OrgId"]; string keyword = context.Request.Params["keywords"]; string treeID = context.Request.Params["treeID"]; string page = context.Request.Params["page"]; string limit = context.Request.Params["limit"]; string is_content = context.Request.Params["isContent"]; string selDeptId = context.Request.Params["selDeptId"]; string field = context.Request.Params["field"]; string searchType = context.Request.Params["searchType"]; int pageIndex = 1; int pageSize = 10; if (!string.IsNullOrEmpty(page)) { pageIndex = int.Parse(page); } if (!string.IsNullOrEmpty(limit)) { pageSize = int.Parse(limit); } int startnum = (pageIndex - 1) * pageSize; StringBuilder countSql = new StringBuilder(); countSql.Append(" SELECT count(1) FROM TBL_SYS_EMP_ARCHIVES t "); StringBuilder strSql = new StringBuilder(); strSql.Append(" SELECT t.*, "); strSql.Append(" (select o.org_name from fire_org o where o.org_id = t.org_id ) org_name , "); strSql.Append(" (select o.org_name from fire_org o where o.org_id = t.dept_id ) dept_name , "); strSql.Append(" t.is_leader sort "); strSql.Append(" FROM TBL_SYS_EMP_ARCHIVES t "); if (!string.IsNullOrEmpty(treeID) && treeID != OrgId) { OrgId = treeID; } if (is_content == "1") { countSql.Append(",(select get_Org_child_list('" + OrgId + "') cids) s where find_in_set(org_id, cids) "); strSql.Append(",(select get_Org_child_list('" + OrgId + "') cids) s where find_in_set(org_id, cids) "); } else { if (!string.IsNullOrWhiteSpace(selDeptId)) { countSql.Append("where DEPT_ID = '" + selDeptId + "' "); strSql.Append("where DEPT_ID = '" + selDeptId + "' "); } else { countSql.Append("where ORG_ID = '" + OrgId + "' "); strSql.Append("where ORG_ID = '" + OrgId + "' "); } } if (!string.IsNullOrEmpty(keyword)) { countSql.Append("and ( emp_name like '%" + keyword + "%' or EMP_MOBILE like '%" + keyword + "%')"); strSql.Append("and ( emp_name like '%" + keyword + "%' or EMP_MOBILE like '%" + keyword + "%')"); } if (searchType == "其他") { countSql.Append("and (" + field + " = '" + searchType + "' or " + field + " is null)"); strSql.Append("and (" + field + " = '" + searchType + "' or " + field + " is null)"); } else { countSql.Append("and " + field + " = '" + searchType + "'"); strSql.Append("and " + field + " = '" + searchType + "'"); } object obj = FangYar.Common.MySqlHelper.GetSingle(countSql.ToString()); int count = 0; if (obj != null) { count = Convert.ToInt32(obj); } returnstr = "{\"code\":0,\"msg\":\"操作成功!\",\"count\":" + count + ",\"data\":"; if (count == 0) { returnstr += "[]"; } else { strSql.Append(" order by sort desc"); strSql.Append(" limit " + startnum + ", " + pageSize); DataTable dt = FangYar.Common.MySqlHelper.QueryTable(strSql.ToString()); returnstr += FangYar.Common.JsonHelper.ToJson(dt); } returnstr += "}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } //电子档案统计导出 private string sta_exp(HttpContext context) { string returnstr = ""; try { string orgID = context.Request.Params["orgID"]; string orgName = context.Request.Params["orgName"]; string image_xianji = context.Request.Params["image_xianji"]; string image_zhuanyegangwei = context.Request.Params["image_zhuanyegangwei"]; string image_zizhizhengshu = context.Request.Params["image_zizhizhengshu"]; string image_minzu = context.Request.Params["image_minzu"]; string image_xuexing = context.Request.Params["image_xuexing"]; string image_zhengzhimianmao = context.Request.Params["image_zhengzhimianmao"]; string image_wenhuachengdu = context.Request.Params["image_wenhuachengdu"]; string image_shangji = context.Request.Params["image_shangji"]; string image_hunyinqingkuang = context.Request.Params["image_hunyinqingkuang"]; string image_yuyouzinv = context.Request.Params["image_yuyouzinv"]; string tableData = context.Request.Params["tableData"]; tableDataModel tabledatamodel = new tableDataModel(); tabledatamodel =FangYar.Common.JsonHelper.FromJSON(tableData); string templateUrl = "/UISysManage/EmpArchives/statistics/电子档案统计导出模板.docx"; Stream stream = File.OpenRead(HttpContext.Current.Server.MapPath(templateUrl)); XWPFDocument doc = new XWPFDocument(stream); Dictionary dic = new Dictionary(); //设置导出日期 dic.Add("${export_time}", DateTime.Now.ToString("yyyy年MM月dd日")); ReplaceKey(dic, doc.Paragraphs[1]); //操作table XWPFTable tableContent1 = doc.Tables[0]; //开始编辑的第一行 int k = 1; //衔级 for (int i = 0; i < tabledatamodel.xianji.xAxisData.Length; i++) { XWPFTableRow newRow = tableContent1.CreateRow(); tableContent1.GetRow(k).GetCell(0).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.xianji.field)); tableContent1.GetRow(k).GetCell(1).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.xianji.xAxisData[i])); tableContent1.GetRow(k).GetCell(2).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.xianji.seriesData[i])); tableContent1.GetRow(k).GetCell(3).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.xianji.rateData[i])); k++; } mergeVertically(tableContent1, 0, k- tabledatamodel.xianji.xAxisData.Length , k-1); // 渲染完成后进行单元格合并 table 第几列 第几行 到 第几行 //专业岗位 for (int i = 0; i < tabledatamodel.zhuanyegangwei.xAxisData.Length; i++) { XWPFTableRow newRow = tableContent1.CreateRow(); tableContent1.GetRow(k).GetCell(0).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zhuanyegangwei.field)); tableContent1.GetRow(k).GetCell(1).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zhuanyegangwei.xAxisData[i])); tableContent1.GetRow(k).GetCell(2).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zhuanyegangwei.seriesData[i])); tableContent1.GetRow(k).GetCell(3).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zhuanyegangwei.rateData[i])); k++; } mergeVertically(tableContent1, 0, k - tabledatamodel.zhuanyegangwei.xAxisData.Length, k-1); // 渲染完成后进行单元格合并 table 第几列 第几行 到 第几行 //取得鉴定资质证书统计 for (int i = 0; i < tabledatamodel.zizhizhengshu.xAxisData.Length; i++) { XWPFTableRow newRow = tableContent1.CreateRow(); tableContent1.GetRow(k).GetCell(0).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zizhizhengshu.field)); tableContent1.GetRow(k).GetCell(1).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zizhizhengshu.xAxisData[i])); tableContent1.GetRow(k).GetCell(2).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zizhizhengshu.seriesData[i])); tableContent1.GetRow(k).GetCell(3).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zizhizhengshu.rateData[i])); k++; } mergeVertically(tableContent1, 0, k - tabledatamodel.zizhizhengshu.xAxisData.Length, k - 1); // 渲染完成后进行单元格合并 table 第几列 第几行 到 第几行 //民族统计 for (int i = 0; i < tabledatamodel.minzu.xAxisData.Length; i++) { XWPFTableRow newRow = tableContent1.CreateRow(); tableContent1.GetRow(k).GetCell(0).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.minzu.field)); tableContent1.GetRow(k).GetCell(1).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.minzu.xAxisData[i])); tableContent1.GetRow(k).GetCell(2).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.minzu.seriesData[i])); tableContent1.GetRow(k).GetCell(3).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.minzu.rateData[i])); k++; } mergeVertically(tableContent1, 0, k - tabledatamodel.minzu.xAxisData.Length, k - 1); // 渲染完成后进行单元格合并 table 第几列 第几行 到 第几行 //民族统计 for (int i = 0; i < tabledatamodel.xuexing.xAxisData.Length; i++) { XWPFTableRow newRow = tableContent1.CreateRow(); tableContent1.GetRow(k).GetCell(0).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.xuexing.field)); tableContent1.GetRow(k).GetCell(1).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.xuexing.xAxisData[i])); tableContent1.GetRow(k).GetCell(2).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.xuexing.seriesData[i])); tableContent1.GetRow(k).GetCell(3).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.xuexing.rateData[i])); k++; } mergeVertically(tableContent1, 0, k - tabledatamodel.xuexing.xAxisData.Length, k - 1); // 渲染完成后进行单元格合并 table 第几列 第几行 到 第几行 //政治面貌统计 for (int i = 0; i < tabledatamodel.zhengzhimianmao.xAxisData.Length; i++) { XWPFTableRow newRow = tableContent1.CreateRow(); tableContent1.GetRow(k).GetCell(0).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zhengzhimianmao.field)); tableContent1.GetRow(k).GetCell(1).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zhengzhimianmao.xAxisData[i])); tableContent1.GetRow(k).GetCell(2).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zhengzhimianmao.seriesData[i])); tableContent1.GetRow(k).GetCell(3).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.zhengzhimianmao.rateData[i])); k++; } mergeVertically(tableContent1, 0, k - tabledatamodel.zhengzhimianmao.xAxisData.Length, k - 1); // 渲染完成后进行单元格合并 table 第几列 第几行 到 第几行 //文化程度统计 for (int i = 0; i < tabledatamodel.wenhuachengdu.xAxisData.Length; i++) { XWPFTableRow newRow = tableContent1.CreateRow(); tableContent1.GetRow(k).GetCell(0).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.wenhuachengdu.field)); tableContent1.GetRow(k).GetCell(1).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.wenhuachengdu.xAxisData[i])); tableContent1.GetRow(k).GetCell(2).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.wenhuachengdu.seriesData[i])); tableContent1.GetRow(k).GetCell(3).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.wenhuachengdu.rateData[i])); k++; } mergeVertically(tableContent1, 0, k - tabledatamodel.wenhuachengdu.xAxisData.Length, k - 1); // 渲染完成后进行单元格合并 table 第几列 第几行 到 第几行 //是否患有伤疾统计 for (int i = 0; i < tabledatamodel.shangji.xAxisData.Length; i++) { XWPFTableRow newRow = tableContent1.CreateRow(); tableContent1.GetRow(k).GetCell(0).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.shangji.field)); tableContent1.GetRow(k).GetCell(1).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.shangji.xAxisData[i])); tableContent1.GetRow(k).GetCell(2).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.shangji.seriesData[i])); tableContent1.GetRow(k).GetCell(3).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.shangji.rateData[i])); k++; } mergeVertically(tableContent1, 0, k - tabledatamodel.shangji.xAxisData.Length, k - 1); // 渲染完成后进行单元格合并 table 第几列 第几行 到 第几行 //婚姻情况统计 for (int i = 0; i < tabledatamodel.hunyinqingkuang.xAxisData.Length; i++) { XWPFTableRow newRow = tableContent1.CreateRow(); tableContent1.GetRow(k).GetCell(0).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.hunyinqingkuang.field)); tableContent1.GetRow(k).GetCell(1).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.hunyinqingkuang.xAxisData[i])); tableContent1.GetRow(k).GetCell(2).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.hunyinqingkuang.seriesData[i])); tableContent1.GetRow(k).GetCell(3).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.hunyinqingkuang.rateData[i])); k++; } mergeVertically(tableContent1, 0, k - tabledatamodel.hunyinqingkuang.xAxisData.Length, k - 1); // 渲染完成后进行单元格合并 table 第几列 第几行 到 第几行 //育有子女情况统计 for (int i = 0; i < tabledatamodel.yuyouzinv.xAxisData.Length; i++) { XWPFTableRow newRow = tableContent1.CreateRow(); tableContent1.GetRow(k).GetCell(0).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.yuyouzinv.field)); tableContent1.GetRow(k).GetCell(1).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.yuyouzinv.xAxisData[i])); tableContent1.GetRow(k).GetCell(2).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.yuyouzinv.seriesData[i])); tableContent1.GetRow(k).GetCell(3).SetParagraph(SetCellText(doc, tableContent1, tabledatamodel.yuyouzinv.rateData[i])); k++; } mergeVertically(tableContent1, 0, k - tabledatamodel.yuyouzinv.xAxisData.Length, k - 1); // 渲染完成后进行单元格合并 table 第几列 第几行 到 第几行 //MemoryStream ms = new MemoryStream(); //doc.Write(ms); ////保存修改后的文档 //// 把 byte[] 写入文件 //string existUrl = "/UISysManage/EmpArchives/statistics/导出.docx"; //FileStream fs = new FileStream(HttpContext.Current.Server.MapPath(existUrl), FileMode.Create); //BinaryWriter bw = new BinaryWriter(fs); //bw.Write(ms.GetBuffer()); //doc.Close(); //bw.Close(); //fs.Close(); string path = AppDomain.CurrentDomain.BaseDirectory + "Upload\\EmpArchives\\" + orgName + orgID+"\\"; if (Directory.Exists(path) == false)//如果不存在就创建文件夹 { Directory.CreateDirectory(path); } string existUrl = "/Upload/EmpArchives/"+ orgName + orgID+ "/" + orgName + "_电子档案统计.docx"; //string existUrl = "/UISysManage/EmpArchives/statistics/导出.docx"; FileStream file = new FileStream(HttpContext.Current.Server.MapPath(existUrl), FileMode.Create, FileAccess.Write); doc.Write(file); stream.Close(); doc.Close(); file.Close(); returnstr = "{\"code\":0,\"msg\":\"生成成功\",\"count\":0,\"data\":\""+ existUrl + "\"}"; } catch (Exception e) { returnstr = "{\"code\":-1,\"msg\":\"" + e.Message + "\",\"count\":0,\"data\":[]}"; // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询异常:" + e); } // 记录操作日志 BLL.SysOperationLogHelp.AddSysOperationLog(context, Common.EnumOperationLogType.Query, "人员档案操作请求", "查询"); return returnstr; } public void mergeVertically(XWPFTable table, int col, int fromRow, int toRow) { //如果开始行大于结束行则退出 if (!(fromRow > toRow)) { for (int rowIndex = fromRow; rowIndex <= toRow; rowIndex++) { XWPFTableCell cell = table.GetRow(rowIndex).GetCell(col); if (rowIndex == fromRow) { cell.GetCTTc().AddNewTcPr().AddNewVMerge().val= ST_Merge.restart; } else { cell.GetCTTc().AddNewTcPr().AddNewVMerge().val= ST_Merge.@continue; } } //合并后垂直居中 table.GetRow(fromRow).GetCell(col).SetVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); } } //合并行 public void mergeHorizontal(XWPFTable table, int row, int fromCell, int toCell) { //如果开始列大于结束列则退出 if (!(fromCell > toCell)) { for (int cellIndex = fromCell; cellIndex <= toCell; cellIndex++) { XWPFTableCell cell = table.GetRow(row).GetCell(cellIndex); if (cellIndex == fromCell) { cell.GetCTTc().AddNewTcPr().AddNewHMerge().val = ST_Merge.restart; } else { cell.GetCTTc().AddNewTcPr().AddNewHMerge().val = ST_Merge.@continue; } } } } //电子档案统计数据导出所需Model public class tableDataModel { public tableDataDetailModel xianji { get; set; } public tableDataDetailModel zhuanyegangwei { get; set; } public tableDataDetailModel zizhizhengshu { get; set; } public tableDataDetailModel minzu { get; set; } public tableDataDetailModel xuexing { get; set; } public tableDataDetailModel zhengzhimianmao { get; set; } public tableDataDetailModel wenhuachengdu { get; set; } public tableDataDetailModel shangji { get; set; } public tableDataDetailModel hunyinqingkuang { get; set; } public tableDataDetailModel yuyouzinv { get; set; } } //电子档案统计数据导出所需Model public class tableDataDetailModel { public string field { get; set; } public string[] xAxisData { get; set; } public string[] seriesData { get; set; } public string[] rateData { get; set; } } public bool IsReusable { get { return false; } } } }