using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Text; 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.GraduationManage.GraduationManage; using EMIS.CommonLogic.GraduationManage.CompletionManage; namespace EMIS.Web.Controllers.GraduationManage.CompletionManage { [Authorization] public class CompletionListController : Controller { public ICompletionListServices CompletionListServices { get; set; } /// /// 结业名单页面 /// /// public ActionResult List() { return View(); } /// /// 结业名单列表查询 /// /// /// [HttpPost] public ActionResult List(QueryParamsModel pararms) { ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(pararms); var gradSchoolyearID = pararms.getExtraGuid("GradSchoolyearDropdown"); var campusID = pararms.getExtraGuid("CampusDropdown"); var collegeID = pararms.getExtraGuid("CollegeDropdown"); var yearID = pararms.getExtraInt("DictionarySchoolyear") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("DictionarySchoolyear"); 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 graduationTypeID = pararms.getExtraInt("DictionaryGraduationType") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("DictionaryGraduationType"); //培养类型 var educationTypeID = pararms.getExtraInt("DictionaryEducationType") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("DictionaryEducationType"); //在校状态 var inSchoolStatus = pararms.getExtraInt("DictionaryInschoolStatus") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("DictionaryInschoolStatus"); return base.Json(CompletionListServices.GetCompletionListViewGrid(configuretView, gradSchoolyearID, campusID, collegeID, yearID, standardID, educationID, learningformID, learnSystem, graduationTypeID, educationTypeID, inSchoolStatus, (int)pararms.page, (int)pararms.rows)); } /// /// 编辑(新增、修改,业务主键:学生信息ID、流程结束状态(已通过)) /// /// /// [HttpGet] public ActionResult Edit(Guid? graduationApplyID) { GraduationApplyView graduationApplyView = new GraduationApplyView(); if (graduationApplyID.HasValue && graduationApplyID != Guid.Empty) { graduationApplyView = CompletionListServices.GetCompletionListView(graduationApplyID); } else { graduationApplyView.GraduatingSemesterID = BaseExtensions.GetGradSchoolYearID(); graduationApplyView.ApplySchoolyearID = BaseExtensions.GetCurrentSchoolYearID(); graduationApplyView.GraduationResult = (int)ER_GraduationResult.Completion; } return View(graduationApplyView); } /// /// 编辑(新增、修改,业务主键:学生信息ID、流程结束状态(已通过)) /// /// /// [HttpPost] public ActionResult Edit(GraduationApplyView graduationApplyView) { try { CompletionListServices.CompletionListEdit(graduationApplyView); return Json(new ReturnMessage() { IsSuccess = true, Message = "保存成功。" }); } catch (Exception ex) { return Json(new ReturnMessage() { IsSuccess = false, Message = "保存失败,原因:" + ex.Message }); } } /// /// 通用学生成绩报表 /// /// public ActionResult CompletionScoreReport() { return View(); } /// /// 广体学生成绩报表 /// /// public ActionResult GztyCompletionScoreReport() { return View(); } /// /// 工大学生成绩报表 /// /// public ActionResult HbgdCompletionScoreReport() { return View(); } /// /// 结业证书打印 /// /// public ActionResult Certificate() { return View(); } /// /// 删除(事务处理) /// 注:需考虑对应的在校状态、毕结业证书编号等信息的处理 /// /// /// [HttpPost] public ActionResult Delete(string graduationApplyIDs) { try { List list = graduationApplyIDs.Split(',').Where(x => !string.IsNullOrEmpty(x)) .Select(x => (Guid?)new Guid(x)).ToList(); CompletionListServices.CompletionListDelete(list); return base.Json("删除成功。"); } catch (Exception ex) { return base.Json("删除失败,原因:" + ex.Message); } } /// /// Excel导出 /// /// [HttpPost] public ActionResult Excel() { NpoiExcelHelper neh = new NpoiExcelHelper(); ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(null); var gradSchoolyearID = Request.Form["GradSchoolyearDropdown"] == DropdownList.SELECT_ALL.ToString() ? null : Request.Form["GradSchoolyearDropdown"].ParseStrTo(); var campusID = Request.Form["CampusDropdown"].ParseStrTo(); var collegeID = Request.Form["CollegeDropdown"].ParseStrTo(); var yearID = Request.Form["DictionarySchoolyear"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["DictionarySchoolyear"].ParseStrTo(); var standardID = Request.Form["DictionaryStandard"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryStandard"].ParseStrTo(); var educationID = Request.Form["DictionaryEducation"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryEducation"].ParseStrTo(); var learningformID = Request.Form["DictionaryLearningform"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryLearningform"].ParseStrTo(); var learnSystem = Request.Form["DictionaryLearnSystem"].ToString(); //毕业类型 var graduationTypeID = Request.Form["DictionaryGraduationType"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryGraduationType"].ParseStrTo(); //培养类型 var educationTypeID = Request.Form["DictionaryEducationType"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryEducationType"].ParseStrTo(); //在校状态 var inSchoolStatus = Request.Form["DictionaryInschoolStatus"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryInschoolStatus"].ParseStrTo(); var dt = CompletionListServices.GetCompletionListViewList(configuretView, gradSchoolyearID, campusID, collegeID, yearID, standardID, educationID, learningformID, learnSystem, graduationTypeID, educationTypeID, inSchoolStatus) .Select(x => new { x.GraduatingSemesterCode, x.StudentNo, x.UserName, x.SexName, x.GraduationTypeName, BirthDate = x.BirthDate.HasValue ? x.BirthDate.Value.ToString("yyyyMMdd") : "", x.StandardID, x.StandardCode, x.StandardName, x.ScienceclassName, x.SchoolyearID, x.CampusName, x.CollegeNo, x.CollegeName, x.GrademajorCode, x.GrademajorName, x.ClassNo, x.ClassName, x.EducationName, x.LearningformName, LearnSystem = x.LearnSystem.HasValue ? x.LearnSystem.Value.ToString("#.#") : null, x.ExamineeNum, x.NationName, x.PoliticsName, x.IDNumber, EntranceDate = x.EntranceDate.HasValue ? x.EntranceDate.Value.ToString("yyyyMMdd") : "", x.ZIPCode, x.Telephone, x.Address, x.InSchoolStatusName, x.StudentStatusName, x.GraduationResultName, x.GraduateCardNo, x.ApprovalResult, x.Remark }).ToTable(); string[] liststring = { "结业学期", "学号", "姓名", "性别", "毕业类型", "出生日期", "专业ID(Value)", "专业代码", "专业名称", "专业科类", "年级", RSL.Get("CampusName"), RSL.Get("CollegeCode"), RSL.Get("CollegeName"), "年级专业编号", "年级专业名称", "班级编号", "班级名称", RSL.Get("EducationID"), "学习形式", "学制", "考生号", "民族", "政治面貌", "身份证号", "入学日期", "邮政编码", "联系电话", "通讯地址", "在校状态", "学籍状态", "毕业结论", "结业证书编号", "预审说明", "备注" }; neh.Export(dt, liststring, "结业名单信息" + DateTime.Now.ToString("yyyyMMdd")); return Json(new ReturnMessage() { IsSuccess = true, Message = "导出成功。" }); } /// /// 结业证书编号Excel导入 /// /// /// /// [HttpGet] public ActionResult CompletionNoImport(string errorFile, string operationTips) { ViewBag.ErrorFile = errorFile; if (string.IsNullOrEmpty(operationTips)) { operationTips = "点击查看失败原因..."; } ViewBag.operationTips = operationTips; return View(); } /// /// 结业证书编号Excel导入 /// /// /// [HttpPost] public ActionResult CompletionNoImport(HttpPostedFileBase file) { try { if (!NpoiExcelHelper.GetIsCompatible(file.FileName)) { throw new Exception("格式错误,只允许导入xls或xlsx格式的Excel文件。"); } Dictionary cellheader = new Dictionary { { "StudentNo", "学号" }, { "GraduateCardNo", "结业证书编号" }, { "ErrorMessage", "未导入原因" } }; StringBuilder errorMsg = new StringBuilder(); // 错误信息 string sourceWebPath = FileUploadHelper.UploadFile(file); var sourcePhysicalPath = Server.MapPath(sourceWebPath); List errList = new List(); List dataList = new List(); int? inCount = 0; //导入个数 int? upCount = 0; //更新个数 int? errCount = 0; //失败个数 //导入 CompletionListServices.CompletionNoImport(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}条结业证书编号导入失败,点击查看。", upCount, errCount); ViewBag.operationTips = Errinfo; return RedirectToAction("MsgShow", "Common", new { WindowID = "none", msg = Errinfo, url = Url.Action("CompletionNoImport").AddMenuParameter() + "&errorFile=" + errorWebPath + "&operationTips=" + Errinfo + "&WindowID=" + Request["WindowID"] }); } else { string successInfo = string.Format("提示:{0}条结业证书编号导入成功。", 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("CompletionNoImport").AddMenuParameter() + "&WindowID=" + Request["WindowID"] }); } } } }