123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.IO;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- using Bowin.Web.Controls.Mvc;
- using Bowin.Common.Utility;
- using Bowin.Common.Data;
- using EMIS.Utility;
- using EMIS.Web.Controls;
- using EMIS.ViewModel;
- using EMIS.ViewModel.EnrollManage.NewStudentManage;
- using EMIS.CommonLogic.EnrollManage.NewStudentManage;
- namespace EMIS.Web.Controllers.EnrollManage.NewStudentManage
- {
- [Authorization]
- public class NewStudentController : Controller
- {
- public INewStudentServices newStudentServices { get; set; }
- /// <summary>
- /// 新生名单页面
- /// </summary>
- /// <returns></returns>
- public ActionResult List()
- {
- return View();
- }
- /// <summary>
- /// 新生名单页面列表查询
- /// </summary>
- /// <param name="pararms"></param>
- /// <returns></returns>
- [HttpPost]
- public ActionResult List(QueryParamsModel pararms)
- {
- ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(pararms);
- var gradeID = pararms.getExtraInt("DictionaryGrade") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("DictionaryGrade");
- var standardID = pararms.getExtraInt("DictionaryStandard") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("DictionaryStandard");
- var educationID = pararms.getExtraInt("DictionaryEducation") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("DictionaryEducation");
- var learningformID = pararms.getExtraInt("DictionaryLearningform") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("DictionaryLearningform");
- var learnSystem = pararms.getExtraString("DictionaryLearnSystem");
- var isPhotoUrl = pararms.getExtraInt("IsPhotoUrlDropdown") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("IsPhotoUrlDropdown");
- return base.Json(newStudentServices.GetNewStudentViewGrid(configuretView, gradeID, standardID, educationID, learningformID, learnSystem, isPhotoUrl, (int)pararms.page, (int)pararms.rows));
- }
- /// <summary>
- /// 复制新增
- /// </summary>
- /// <param name="newStudentID"></param>
- /// <returns></returns>
- public ActionResult CopyAdd(Guid newStudentID)
- {
- NewStudentView newStudentView = new NewStudentView();
- newStudentView = newStudentServices.GetNewStudentView(newStudentID);
- return View("Edit", newStudentView);
- }
- /// <summary>
- /// 复制新增
- /// </summary>
- /// <param name="newStudentView"></param>
- /// <returns></returns>
- [HttpPost]
- public ActionResult CopyAdd(NewStudentView newStudentView)
- {
- newStudentView.NewStudentID = Guid.Empty;
- return this.Edit(newStudentView);
- }
- /// <summary>
- /// 编辑、复制新增(新增、修改,业务主键:考生号唯一)
- /// </summary>
- /// <param name="newNewStudentID"></param>
- /// <param name="type"></param>
- /// <returns></returns>
- [HttpGet]
- public ActionResult Edit(Guid? newNewStudentID, string type)
- {
- NewStudentView newStudentView = new NewStudentView();
- if (newNewStudentID.HasValue && newNewStudentID != Guid.Empty)
- {
- newStudentView = newStudentServices.GetNewStudentView(newNewStudentID);
- if (type == "copyAdd")
- {
- newStudentView.NewStudentID = Guid.Empty;
- newStudentView.RecruitPictureUrl = null;
- }
- }
- else
- {
- newStudentView.NationID = (int)CF_Nation.Han;
- newStudentView.PoliticsID = (int)CF_Politics.YouthLeague;
- newStudentView.CertificatesType = (int)CF_CertificatesType.IdCrad;
- newStudentView.GradeID = BaseExtensions.GetCurrentYearID();
- newStudentView.SemesterID = BaseExtensions.GetEntranceSemesterID();
- newStudentView.AssignStatus = (int)CF_AssignStatus.NotAssigned;
- }
- return View(newStudentView);
- }
- /// <summary>
- /// 编辑、复制新增(新增、修改,业务主键:考生号唯一)
- /// </summary>
- /// <param name="newStudentView"></param>
- /// <returns></returns>
- [HttpPost]
- public ActionResult Edit(NewStudentView newStudentView)
- {
- try
- {
- var accepts = new List<string> { ".jpg", ".jpeg", ".png", ".bmp" };
- var postedFile = Request.Files["RecruitPictureUrl"];
- if (!string.IsNullOrEmpty(postedFile.FileName) && !accepts.Contains(Path.GetExtension(postedFile.FileName).ToLower()))
- {
- throw new Exception("只允许上传.jpg、.jpeg、.png、.bmp格式的文件。");
- }
- string photoUrl = FileUploadHelper.UploadFile(postedFile);
- newStudentServices.NewStudentEdit(newStudentView, photoUrl);
- return RedirectToAction("MsgShow", "Common", new
- {
- WindowID = Request["WindowID"],
- msg = "保存成功。",
- url = Url.Action("List").AddMenuParameter()
- });
- }
- catch (Exception ex)
- {
- return RedirectToAction("MsgShowAndOpen", "Common", new
- {
- WindowID = Request["WindowID"],
- msg = "保存失败,原因:" + ex.Message
- });
- }
- }
- /// <summary>
- /// 删除
- /// </summary>
- /// <param name="newStudentIDs"></param>
- /// <returns></returns>
- [HttpPost]
- public ActionResult Delete(string newStudentIDs)
- {
- try
- {
- List<Guid?> list = newStudentIDs.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => (Guid?)new Guid(x)).ToList();
- newStudentServices.NewStudentDelete(list);
- return Json(new ReturnMessage()
- {
- IsSuccess = true,
- Message = "删除成功。"
- });
- }
- catch (Exception ex)
- {
- return Json(new ReturnMessage()
- {
- IsSuccess = false,
- Message = "删除失败,原因:" + ex.Message
- });
- }
- }
- /// <summary>
- /// 删除照片(单个删除)
- /// </summary>
- /// <param name="newStudentID"></param>
- /// <returns></returns>
- [HttpPost]
- public ActionResult DeletePhoto(Guid? newStudentID)
- {
- try
- {
- this.newStudentServices.DeletePhoto(newStudentID);
- return Json(new ReturnMessage()
- {
- IsSuccess = true,
- Message = "删除照片成功。"
- });
- }
- catch (Exception ex)
- {
- return Json(new ReturnMessage()
- {
- IsSuccess = false,
- Message = "删除照片失败:" + ex.Message
- });
- }
- }
- /// <summary>
- /// 删除照片(批量删除)
- /// </summary>
- /// <param name="newStudentIDs"></param>
- /// <returns></returns>
- [HttpPost]
- public ActionResult PicDelete(string newStudentIDs)
- {
- try
- {
- List<Guid?> list = newStudentIDs.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => (Guid?)new Guid(x)).ToList();
- newStudentServices.PicDelete(list);
- return Json(new ReturnMessage()
- {
- IsSuccess = true,
- Message = "删除照片成功。"
- });
- }
- catch (Exception ex)
- {
- return Json(new ReturnMessage()
- {
- IsSuccess = false,
- Message = "删除照片失败:" + ex.Message
- });
- }
- }
- /// <summary>
- /// 导入照片
- /// </summary>
- /// <param name="errorFile"></param>
- /// <param name="operationTips"></param>
- /// <returns></returns>
- [HttpGet]
- public ActionResult PicImport(string errorFile, string operationTips)
- {
- ViewBag.ErrorFile = errorFile;
- if (string.IsNullOrEmpty(operationTips))
- {
- operationTips = "点击查看失败原因...";
- }
- ViewBag.operationTips = operationTips;
- return View();
- }
- /// <summary>
- /// 导入照片
- /// </summary>
- /// <param name="file"></param>
- /// <param name="importPicType"></param>
- /// <returns></returns>
- [HttpPost]
- public ActionResult PicImport(HttpPostedFileBase file, string importPicType)
- {
- try
- {
- if (file.ContentLength <= 0)
- {
- throw new Exception("请选择你要上传的照片(注:格式为zip或rar的压缩包文件)。");
- }
- var acceptFileExtensions = new[] { ".zip", ".rar" };
- var fileExtensionName = Path.GetExtension(file.FileName);
- if (!acceptFileExtensions.Contains(fileExtensionName))
- {
- throw new Exception("格式错误,只允许上传zip或rar格式的压缩包文件。");
- }
- string fileSourceWebPath = null;
- string errorSourceWebPath = null;
- var photoPathList = FileUploadHelper.UploadFileAndExtractFile(file, out fileSourceWebPath, out errorSourceWebPath);
- System.IO.File.Delete(Server.MapPath(fileSourceWebPath));
- if (photoPathList == null || photoPathList.Count <= 0)
- {
- throw new Exception("压缩包中文件为空。");
- }
- var acceptPicExtensions = new[] { ".jpg", ".jpeg", ".png", ".bmp" };
- List<string> newPhotoPathList = new List<string>();
- foreach (var photoPath in photoPathList)
- {
- string photoExtensionName = Path.GetExtension(photoPath).ToLower();
- if (acceptPicExtensions.Contains(photoExtensionName))
- {
- newPhotoPathList.Add(photoPath);
- }
- else
- {
- throw new Exception("压缩包中含有不支持的照片格式。");
- }
- }
- int? inCount = 0;
- int? errCount = 0;
- var errDataTable = new DataTable();
- newStudentServices.NewStudentPicImport(newPhotoPathList, importPicType, out inCount, out errCount, out errDataTable);
- if (errDataTable != null && errDataTable.Rows.Count > 0)
- {
- NpoiExcelHelper npoiExcelHelper = new NpoiExcelHelper();
- npoiExcelHelper.SaveInServer(errDataTable, Server.MapPath(errorSourceWebPath));
- string errorWebPath = string.Format("{0}", errorSourceWebPath);
- ViewBag.ErrorFile = errorWebPath;
- string Errinfo = string.Format("提示:{0}个照片导入成功,{1}个照片导入失败,点击查看。", inCount, errCount);
- ViewBag.operationTips = Errinfo;
- return RedirectToAction("MsgShow", "Common", new
- {
- WindowID = "none",
- msg = Errinfo,
- url = Url.Action("PicImport").AddMenuParameter() + "&errorFile=" + errorWebPath + "&operationTips=" + Errinfo + "&WindowID=" + Request["WindowID"]
- });
- }
- else
- {
- string successInfo = string.Format("提示:{0}个照片导入成功。", inCount);
- return RedirectToAction("MsgShow", "Common", new
- {
- WindowID = Request["WindowID"],
- msg = successInfo,
- url = Url.Action("List").AddMenuParameter()
- });
- }
- }
- catch (Exception ex)
- {
- return RedirectToAction("MsgShow", "Common", new
- {
- WindowID = "none",
- msg = "导入照片失败,原因:" + ex.Message,
- url = Url.Action("PicImport").AddMenuParameter() + "&WindowID=" + Request["WindowID"]
- });
- }
- }
- /// <summary>
- /// Excel导入
- /// </summary>
- /// <param name="errorFile"></param>
- /// <param name="operationTips"></param>
- /// <returns></returns>
- [HttpGet]
- public ActionResult Import(string errorFile, string operationTips)
- {
- ViewBag.ErrorFile = errorFile;
- if (string.IsNullOrEmpty(operationTips))
- {
- operationTips = "点击查看失败原因...";
- }
- ViewBag.operationTips = operationTips;
- return View();
- }
- /// <summary>
- /// Excel导入
- /// </summary>
- /// <param name="file"></param>
- /// <returns></returns>
- [HttpPost]
- public ActionResult Import(HttpPostedFileBase file)
- {
- try
- {
- if (!NpoiExcelHelper.GetIsCompatible(file.FileName))
- {
- throw new Exception("格式错误,只允许导入xls或xlsx格式的Excel文件。");
- }
- Dictionary<string, string> cellheader = new Dictionary<string, string>
- {
- { "ExamineeNum", "考生号" },
- { "AdmissionTicketNo", "准考证号" },
- { "Name", "姓名" },
- { "SexStr", "性别" },
- { "NationStr", "民族" },
- { "PoliticsStr", "政治面貌" },
- { "BirthDateStr", "出生日期" },
- { "CertificatesTypeStr", "证件类型" },
- { "IDNumber", "身份证号" },
- { "GradeStr", "年级" },
- { "SemesterStr", "学期" },
- { "StandardCode", "专业代码" },
- { "StandardName", "专业名称" },
- { "EducationStr", RSL.Get("EducationID") },
- { "LearningformStr", "学习形式" },
- { "LearnSystemStr", "学制" },
- { "EntranceDateStr", "入学日期" },
- { "ScoreStr", "总分" },
- { "Telephone", "联系电话" },
- { "Address", "通讯地址" },
- { "Dormitory", "宿舍地址" },
- { "Remark", "备注" },
- { "ErrorMessage", "未导入原因" }
- };
- int? inCount = 0;
- int? upCount = 0;
- int? errCount = 0;
- List<NewStudentView> errList = new List<NewStudentView>();
- string sourceWebPath = FileUploadHelper.UploadFile(file);
- var sourcePhysicalPath = Server.MapPath(sourceWebPath);
- newStudentServices.NewStudentImport(cellheader, out inCount, out upCount, out errList, out errCount, sourcePhysicalPath);
- System.IO.File.Delete(sourcePhysicalPath);
- if (errList.Count() > 0)
- {
- string errorWebPath = string.Format("{0}", NpoiExcelHelper.EntityListToExcel2003(cellheader, errList, "新生信息导入失败文件", sourcePhysicalPath));
- ViewBag.ErrorFile = errorWebPath;
- string Errinfo = string.Format("提示:{0}条新生信息导入成功,{1}条新生信息更新成功,{2}条新生信息导入失败,点击查看。", inCount, upCount, errCount);
- ViewBag.operationTips = Errinfo;
- return RedirectToAction("MsgShow", "Common", new
- {
- WindowID = "none",
- msg = Errinfo,
- url = Url.Action("Import").AddMenuParameter() + "&errorFile=" + errorWebPath + "&operationTips=" + Errinfo + "&WindowID=" + Request["WindowID"]
- });
- }
- else
- {
- string successInfo = string.Format("提示:{0}条新生信息导入成功,{1}条新生信息更新成功。", inCount, upCount);
- return RedirectToAction("MsgShow", "Common", new
- {
- WindowID = Request["WindowID"],
- msg = successInfo,
- url = Url.Action("List").AddMenuParameter()
- });
- }
- }
- catch (Exception ex)
- {
- return RedirectToAction("MsgShow", "Common", new
- {
- WindowID = "none",
- msg = "导入失败,原因:" + ex.Message,
- url = Url.Action("Import").AddMenuParameter() + "&WindowID=" + Request["WindowID"]
- });
- }
- }
- /// <summary>
- /// Excel导出
- /// </summary>
- /// <returns></returns>
- [HttpPost]
- public ActionResult Excel()
- {
- NpoiExcelHelper neh = new NpoiExcelHelper();
- ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(null);
- var gradeID = Request.Form["DictionaryGrade"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryGrade"].ParseStrTo<int>();
- var standardID = Request.Form["DictionaryStandard"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryStandard"].ParseStrTo<int>();
- var educationID = Request.Form["DictionaryEducation"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryEducation"].ParseStrTo<int>();
- var learningformID = Request.Form["DictionaryLearningform"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryLearningform"].ParseStrTo<int>();
- var learnSystem = Request.Form["DictionaryLearnSystem"].ToString();
- var isPhotoUrl = Request.Form["IsPhotoUrlDropdown"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["IsPhotoUrlDropdown"].ParseStrTo<int>();
- var dt = newStudentServices.GetNewStudentViewList(configuretView, gradeID, standardID, educationID, learningformID, learnSystem, isPhotoUrl)
- .Select(x => new
- {
- x.ExamineeNum,
- x.AdmissionTicketNo,
- x.Name,
- x.SexName,
- x.NationName,
- x.PoliticsName,
- BirthDate = x.BirthDate.HasValue ? x.BirthDate.Value.ToString("yyyy-MM-dd") : "",
- x.CertificatesTypeName,
- x.IDNumber,
- x.GradeID,
- x.SemesterName,
- x.StandardCode,
- x.StandardID,
- x.StandardName,
- x.EducationName,
- x.LearningformName,
- LearnSystem = x.LearnSystem.HasValue ? x.LearnSystem.Value.ToString("#.#") : null,
- EntranceDate = x.EntranceDate.HasValue ? x.EntranceDate.Value.ToString("yyyy-MM-dd") : "",
- x.Score,
- x.Telephone,
- x.Address,
- x.Dormitory,
- x.RecruitPictureUrl,
- x.AssignStatusName,
- x.Remark
- }).ToTable();
- string[] liststring = {
- "考生号", "准考证号","姓名", "性别", "民族", "政治面貌", "出生日期", "证件类型", "身份证号",
- "年级", "学期", "专业代码", "专业ID(Value)", "专业名称", RSL.Get("EducationID"), "学习形式", "学制",
- "入学日期", "总分", "联系电话", "通讯地址", "宿舍地址", "照片Url", "分配状态", "备注"
- };
- neh.Export(dt, liststring, "新生名单信息" + DateTime.Now.ToString("yyyyMMdd"));
- return Json(new ReturnMessage()
- {
- IsSuccess = true,
- Message = "导出成功。"
- });
- }
- }
- }
|