using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Bowin.Common.Utility; using Bowin.Common.Data; using Bowin.Web.Controls.Mvc; using Bowin.Common.JSON; using EMIS.Utility; using EMIS.Web.Controls; using EMIS.ViewModel; using EMIS.ViewModel.WorkflowManage; using EMIS.ViewModel.StudentManage.OnlineChecking; using EMIS.CommonLogic.StudentManage.OnlineChecking; namespace EMIS.Web.Controllers.StudentManage.OnlineChecking { [Authorization] public class CheckingApproveController : Controller { public Lazy CheckingApproveServices { get; set; } /// /// 校对审核页面 /// /// public ActionResult List() { return View(); } /// /// 校对审核页面列表查询 /// /// /// [HttpPost] public ActionResult List(QueryParamsModel pararms) { ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(pararms); var campusID = pararms.getExtraGuid("CampusDropdown"); var collegeID = pararms.getExtraGuid("CollegeDropdown"); 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 approvalStatus = pararms.getExtraInt("DictionaryApprovalStatus") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("DictionaryApprovalStatus"); return base.Json(CheckingApproveServices.Value.GetCheckingApproveViewGrid(configuretView, campusID, collegeID, gradeID, standardID, educationID, learningformID, learnSystem, approvalStatus, (int)pararms.page, (int)pararms.rows)); } /// /// 编辑 /// /// /// [HttpGet] public ActionResult Edit(Guid? studentContrastID) { CheckingContrastView checkingContrastView = new CheckingContrastView(); if (studentContrastID.HasValue && studentContrastID != Guid.Empty) { checkingContrastView = CheckingApproveServices.Value.GetStudentContrastView(studentContrastID); } return View(checkingContrastView); } /// /// 编辑 /// /// /// [HttpPost] public ActionResult Edit(CheckingContrastView checkingContrastView) { try { return Json(new ReturnMessage() { IsSuccess = true, Message = "保存成功。" }); } catch (Exception ex) { return Json(new ReturnMessage() { IsSuccess = false, Message = "保存失败,原因:" + ex.Message + "。" }); } } /// /// 审核(单个页面) /// /// /// [HttpGet] public ActionResult Approve(Guid? studentContrastID) { var studentContrastView = CheckingApproveServices.Value.GetStudentContrastView(studentContrastID); if (studentContrastView == null) { return RedirectToAction("MsgShow", "Common", new { WindowID = Request["WindowID"], msg = "操作失败,原因:数据有误。", url = Url.Action("List").AddMenuParameter() }); } var endStatusList = CheckingApproveServices.Value.GetBackpointStatus(); var correctEndStatusID = CheckingApproveServices.Value.GetCorrectEndStatus(); endStatusList.Add(correctEndStatusID); foreach (var endStatus in endStatusList) { if (studentContrastView.ApprovalStatus == endStatus) { return RedirectToAction("MsgShow", "Common", new { WindowID = Request["WindowID"], msg = "无法对已结束的流程进行审核。", url = Url.Action("List").AddMenuParameter() }); } } var user = EMIS.Utility.FormValidate.CustomPrincipal.Current; var actionViewList = CheckingApproveServices.Value.GetActionView((Guid)studentContrastID, user.UserID); if (actionViewList == null || actionViewList.Count() <= 0) { return RedirectToAction("MsgShow", "Common", new { WindowID = Request["WindowID"], msg = "对不起,您没权限操作。", url = Url.Action("List").AddMenuParameter() }); } var dropList = actionViewList.Select(x => new DropdownListItem { Text = x.ActionName, Value = x.ToJson() }).ToList(); ViewBag.ListAction = dropList; return View(studentContrastView); } /// /// 审核(单个页面) /// /// /// [HttpPost] public ActionResult Approve(CheckingContrastView checkingContrastView) { try { var user = EMIS.Utility.FormValidate.CustomPrincipal.Current; string action = Request.Form["ddlAction"]; if (string.IsNullOrEmpty(action)) { throw new Exception("请选择处理动作"); } var actionID = action.JsonToObject().ActionID; List list = new List(); list.Add(checkingContrastView.StudentContrastID); CheckingApproveServices.Value.CheckingApproveConfirm(list, user.UserID, actionID, checkingContrastView.Comment); return Json(new ReturnMessage() { IsSuccess = true, Message = "审核成功。" }); } catch (Exception ex) { return Json(new ReturnMessage() { IsSuccess = false, Message = "审核失败,原因:" + ex.Message }); } } /// /// 查询对应的流程环节动作List(ActionView) /// /// /// [HttpPost] public ActionResult ApprovalHandle(Guid? studentContrastID) { var user = EMIS.Utility.FormValidate.CustomPrincipal.Current; var actionViewList = CheckingApproveServices.Value.GetActionView((Guid)studentContrastID, user.UserID); var dropList = actionViewList.Select(x => new DropdownListItem { Text = x.ActionName, Value = x.ToJson() }).ToList(); return View(dropList); } /// /// 审批确定(批量) /// /// /// /// /// [HttpPost] public ActionResult ApproveConfirm(string studentContrastIDs, Guid actionID, string comment) { try { var user = EMIS.Utility.FormValidate.CustomPrincipal.Current; List list = studentContrastIDs.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => (Guid?)new Guid(x)).ToList(); CheckingApproveServices.Value.CheckingApproveConfirm(list, user.UserID, actionID, comment); return Json(new ReturnMessage() { IsSuccess = true, Message = "审核成功。" }); } catch (Exception ex) { return Json(new ReturnMessage() { IsSuccess = false, Message = "审核失败,原因:" + ex.Message }); } } /// /// 删除 /// /// /// [HttpPost] public ActionResult Delete(string studentContrastIDs) { try { List list = studentContrastIDs.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => (Guid?)new Guid(x)).ToList(); CheckingApproveServices.Value.StudentContrastDelete(list); return base.Json(new ReturnMessage { IsSuccess = true, Message = "删除成功。" }); } catch (Exception ex) { return base.Json(new ReturnMessage { IsSuccess = false, Message = "删除失败,原因:" + ex.Message }); } } /// /// 校对明细页面 /// /// public ActionResult CheckingDetailList() { return View(); } /// /// 校对明细页面 /// /// /// [HttpPost] public ActionResult CheckingDetailList(QueryParamsModel pararms) { ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(pararms); var studentContrastID = Request["studentContrastID"].ParseStrTo(); return Json(CheckingApproveServices.Value.GetCheckingDetailViewGrid(configuretView, studentContrastID, (int)pararms.page, (int)pararms.rows)); } /// /// 导出校对明细Excel /// /// [HttpPost] public ActionResult Excel_CheckingDetail() { NpoiExcelHelper neh = new NpoiExcelHelper(); ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(null); var studentContrastID = Request["studentContrastID"].ParseStrTo(); var dt = CheckingApproveServices.Value.GetCheckingDetailViewList(configuretView, studentContrastID) .Select(x => new { x.StudentNo, x.Name, x.Description, x.CheckingTypeName, x.CheckingBeforeContent, x.CheckingAfterContent, x.IP, x.ModifyTime }).ToTable(); string[] liststring = { "学号", "姓名", "校对名称", "校对类型", "校对前内容", "校对后内容", "IP地址", "申请时间" }; neh.Export(dt, liststring, "校对明细信息" + DateTime.Now.ToString("yyyyMMdd")); return Json(new ReturnMessage() { IsSuccess = true, Message = "导出成功。" }); } /// /// 查询对应的校对信息Style /// /// /// /// /// public static string GetCheckingStyle(T before, T after) where T : IComparable { if (before == null && after == null) { return string.Empty; } else if ((before == null && after != null) || (before != null && after == null) || before.CompareTo(after) != 0) { return "mark"; } else { return string.Empty; } } /// /// 查询对应的校对信息Style /// /// /// /// /// public static string GetCheckingStyle(T? before, T? after) where T : struct, IComparable { if ((before.HasValue && !after.HasValue) || (!before.HasValue && after.HasValue)) { return "mark"; } else { if (before.HasValue && after.HasValue) { return GetCheckingStyle(before.Value, after.Value); } else { return string.Empty; } } } /// /// Excel导出 /// /// [HttpPost] public ActionResult Excel() { NpoiExcelHelper neh = new NpoiExcelHelper(); ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(null); var campusID = Request.Form["CampusDropdown"].ParseStrTo(); var collegeID = Request.Form["CollegeDropdown"].ParseStrTo(); var gradeID = Request.Form["DictionaryGrade"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryGrade"].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 approvalStatus = Request.Form["DictionaryApprovalStatus"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["DictionaryApprovalStatus"].ParseStrTo(); var dt = CheckingApproveServices.Value.GetCheckingApproveViewList(configuretView, campusID, collegeID, gradeID, standardID, educationID, learningformID, learnSystem, approvalStatus) .Select(x => new { x.StudentNo, x.Name, x.SexName, BirthDate = (x.BirthDate.HasValue ? x.BirthDate.Value.ToString("yyyyMMdd") : ""), x.NationName, x.PoliticsName, x.CertificatesTypeName, x.IDNumber, x.StandardCode, x.StandardID, x.StandardName, x.EducationName, x.LearningformName, LearnSystem = x.LearnSystem.HasValue ? x.LearnSystem.Value.ToString("#.#") : "", x.FacultymajorCode, x.FacultymajorName, x.GradeID, x.GrademajorCode, x.GrademajorName, x.ClassmajorNo, x.ClassmajorName, x.ClassNum, x.StudentTypeName, x.InSchoolStatusName, x.StudentStatusName, x.CollegeNo, x.CollegeName, x.CampusCode, x.CampusName, x.SemesterName, x.StartSchoolyearCode, x.GraduateSchoolyearCode, PlanningGraduateDate = (x.PlanningGraduateDate.HasValue ? x.PlanningGraduateDate.Value.ToString("yyyyMMdd") : ""), GraduateDate = (x.GraduateDate.HasValue ? x.GraduateDate.Value.ToString("yyyyMMdd") : ""), x.UsedName, x.Country, x.Place, x.BornPlace, x.ExamineeType, EntranceDate = (x.EntranceDate.HasValue ? x.EntranceDate.Value.ToString("yyyyMMdd") : ""), x.LiteracyLevelName, x.CultureModelName, x.IsDreamProjectName, x.Email, x.Telephone, x.Mobile, x.ZIPCode, x.WeChatNum, x.QQ, x.HealthStateName, x.BloodGroupName, x.Specialty, x.Height, x.Weight, x.DirectorName, x.Score, x.EntranceWayName, x.FeaturesName, x.TerritorialName, x.Area, x.HomeAddress, x.WorkUnit, x.Address, x.Recipient, x.Dormitory, x.BankName, x.CardNo, x.Career, x.IsProofreadName, x.CheckingCount, x.IP, ModifyTime = (x.ModifyTime.HasValue ? x.ModifyTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : ""), x.ApprovalStatusName, x.Comment }).ToTable(); string[] liststring = { "学号", "姓名", "性别", "出生日期", "民族", "政治面貌", "证件类型", "证件号码", "专业代码", "专业ID(Value)", "专业名称", RSL.Get("EducationID"), "学习形式", "学制", "院系专业编号", "院系专业名称", "年级", "年级专业编号", "年级专业名称", "班级编号", "班级名称", "班序", "学生类别", "在校状态", "学籍状态", RSL.Get("CollegeCode"), RSL.Get("College"), RSL.Get("CampusCode"), RSL.Get("Campus"), "入学学期", "入学学年学期", "毕业学期", "预计毕业日期", "毕业日期", "曾用名", "国籍", "籍贯", "出生地", "考生类别", "入学日期", "文化程度", "培养方式", "圆梦计划", "电子邮箱", "家庭电话", "移动电话", "邮政编码", "微信号", "QQ", "健康状况", "血型", "特长", "身高(cm)", "体重(kg)", "导师姓名", "总分", "入学方式", "考生特征", "生源所属地", "来源地区", "家庭住址", "工作单位", "通信地址", "收件人" , "宿舍地址", "开户银行", "银行卡号", "在校经历", "是否核对", "校对数", "IP地址", "申请时间", "审核状态", "处理意见" }; neh.Export(dt, liststring, "校对审核信息" + DateTime.Now.ToString("yyyyMMdd")); return Json(new ReturnMessage() { IsSuccess = true, Message = "导出成功。" }); } } }