using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using EMIS.CommonLogic.ExamManage; using EMIS.ViewModel; using EMIS.Web.Controls; using Bowin.Common.Exceptions; using Bowin.Common.Utility; using Bowin.Common.Data; using Bowin.Web.Controls.Mvc; using EMIS.CommonLogic.CerificateManage; using System.Text; using EMIS.Utility; namespace EMIS.Web.Controllers.CerificateManage { [Authorization] public class CertisfierDistributeController : Controller { public IExamProjectControlServices IExamProjectControlService { get; set; } public ICertisfierDistributeServices ICertisfierDistributeService { get; set; } // // GET: /CertisfierDistribute/ public ActionResult Index() { return View(); } public ActionResult List() { return View(); } public ActionResult StuList() { return View(); } public ActionResult Confirm(string ViewID) { //try //{ //List list = ViewID.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => (Guid?)new Guid(x)).ToList(); //ICertisfierDistributeService.CheckBeforeConfirm(list); return View(); //} //catch (Exception ex) //{ // return Json(new ReturnMessage() // { // IsSuccess = false, // Message = ex.Message // }); //} } public ActionResult PrintDetail(Guid certisfierDistributeID) { var view = ICertisfierDistributeService.GetView(certisfierDistributeID); return View(view); } public ActionResult View(Guid ID) { var view = ICertisfierDistributeService.GetView(ID); return View(view); } public ActionResult StuEdit(Guid ID, int DistributeTypeID) { var view = ICertisfierDistributeService.GetView(ID); view.DistributeTypeID = DistributeTypeID; return View(view); } /// /// 收费项目编辑页提交 /// /// /// [HttpPost] public ActionResult StuEdit(CerificateView view) { try { ICertisfierDistributeService.UpdateCertisfierDistributeType(view); return Json(new ReturnMessage() { IsSuccess = true, Message = "保存成功。" }); } catch (Exception ex) { return Json(new ReturnMessage() { IsSuccess = false, Message = "保存失败,原因:" + ex.Message }); } } /// /// Excel导入 /// /// /// /// [HttpGet] public ActionResult Import(string errorFile, string operationTips) { ViewBag.ErrorFile = errorFile; if (string.IsNullOrEmpty(operationTips)) { operationTips = "点击查看失败原因..."; } ViewBag.operationTips = operationTips; return View(); } /// /// 项目列表查询 /// /// /// [HttpPost] public ActionResult ProjectListViewGrid(QueryParamsModel pararms) { List configuretViews = new List(); configuretViews.Add(ConfiguretExtensions.GetConfiguretermsView(pararms)); configuretViews.AddRange(pararms.getConditions()); return base.Json(ICertisfierDistributeService.GetExamProjectListViewGrid((int)pararms.page, (int)pararms.rows, configuretViews.ToArray())); } /// /// 列表查询 /// /// /// [HttpPost] public ActionResult List(QueryParamsModel pararms) { ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(pararms); var schoolyearID = pararms.getExtraGuid("ddlSchoolyear"); var examinationBatchID = pararms.getExtraGuid("cgExaminationBatch"); var examinationTypeID = pararms.getExtraGuid("cgExaminationType"); var examinationProjectID = pararms.getExtraGuid("cgExaminationProject"); var collegeID = pararms.getExtraGuid("CollegeID"); var schoolAreaID = pararms.getExtraInt("SchoolAreaID") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("SchoolAreaID"); var year = pararms.getExtraInt("Years") == Bowin.Web.Controls.Mvc.DropdownList.SELECT_ALL ? null : pararms.getExtraInt("Years"); var classmajorID = pararms.getExtraGuid("ClassmajorID"); var standardID = pararms.getExtraInt("StandardDictionaryDropDown") == Bowin.Web.Controls.Mvc.DropdownList.SELECT_ALL ? null : pararms.getExtraInt("StandardDictionaryDropDown"); var distributeTypeID = pararms.getExtraInt("DistributeTypeID") == Bowin.Web.Controls.Mvc.DropdownList.SELECT_ALL ? null : pararms.getExtraInt("DistributeTypeID"); var recordStatus = pararms.getExtraInt("RecordStatus") == Bowin.Web.Controls.Mvc.DropdownList.SELECT_ALL ? null : pararms.getExtraInt("RecordStatus"); Guid? userID = null;//教师端 //List configuretViews = new List(); //configuretViews.Add(ConfiguretExtensions.GetConfiguretermsView(pararms)); //configuretViews.AddRange(pararms.getConditions()); return base.Json(ICertisfierDistributeService.GetCertisfierListViewGrid(configuretView, schoolyearID,examinationProjectID,collegeID,schoolAreaID,year,classmajorID,standardID,distributeTypeID,recordStatus, userID, (int)pararms.page, (int)pararms.rows)); } /// /// 学生端列表查询 /// /// /// [HttpPost] public ActionResult StuList(QueryParamsModel pararms) { //List configuretViews = new List(); ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(pararms); Guid? schoolyearID = null; Guid? collegeID = null; int? schoolAreaID = null; int? year = null; Guid? classmajorID = null; int? standardID = null; var userID = ((EMIS.Utility.FormValidate.CustomPrincipal)HttpContext.User).UserID; var examinationProjectID = pararms.getExtraGuid("ExaminationProjectID"); var distributeTypeID = pararms.getExtraInt("DistributeTypeID") == Bowin.Web.Controls.Mvc.DropdownList.SELECT_ALL ? null : pararms.getExtraInt("DistributeTypeID"); var recordStatus = pararms.getExtraInt("RecordStatus") == Bowin.Web.Controls.Mvc.DropdownList.SELECT_ALL ? null : pararms.getExtraInt("RecordStatus"); //configuretViews.Add(ConfiguretExtensions.GetConfiguretermsView(pararms)); //configuretViews.AddRange(pararms.getConditions()); //configuretViews.Add(new ConfiguretView() //{ // Attribute = "UserID", // Condition = "=", // ConditionValue = ((EMIS.Utility.FormValidate.CustomPrincipal)HttpContext.User).UserID.ToString() //}); return base.Json(ICertisfierDistributeService.GetCertisfierListViewGrid(configuretView, schoolyearID, examinationProjectID, collegeID, schoolAreaID, year, classmajorID, standardID, distributeTypeID, recordStatus, userID, (int)pararms.page, (int)pararms.rows)); } /// /// 删除 /// /// /// [HttpPost] public JsonResult Delete(string IDs) { try { List list = IDs.Split(',').Where(x => !string.IsNullOrEmpty(x)) .Select(x => (Guid?)new Guid(x)).ToList(); ICertisfierDistributeService.Delete(list); return base.Json("删除成功。"); } catch (Exception ex) { string mge = ex.Message; System.Data.SqlClient.SqlException num = ExceptionHelper.GetSqlException(ex); if (num != null) { if (num.Number == 547) { mge = "请先删除与其有关联的数据"; } } return base.Json("删除失败,原因:" + mge); } } /// /// 开放领取 /// /// /// [HttpPost] public JsonResult OpenDistribute(string IDs) { try { List list = IDs.Split(',').Where(x => !string.IsNullOrEmpty(x)) .Select(x => (Guid?)new Guid(x)).ToList(); ICertisfierDistributeService.OpenDistribute(list); return base.Json("开放领取成功。"); } catch (Exception ex) { return base.Json("开放领取失败,原因:" + ex.Message); } } /// /// 撤销开放 /// /// /// [HttpPost] public JsonResult CancelOpenDistribute(string IDs) { try { List list = IDs.Split(',').Where(x => !string.IsNullOrEmpty(x)) .Select(x => (Guid?)new Guid(x)).ToList(); ICertisfierDistributeService.CancelOpenDistribute(list); return base.Json(new ReturnMessage() { IsSuccess = true, Message = "撤销开放成功。" }); } catch (Exception ex) { return base.Json(new ReturnMessage() { IsSuccess = false, Message = "撤销开放失败,原因:" + ex.Message }); } } /// /// 撤销领取 /// /// /// [HttpPost] public JsonResult CancelDistribute(string IDs) { try { List list = IDs.Split(',').Where(x => !string.IsNullOrEmpty(x)) .Select(x => (Guid?)new Guid(x)).ToList(); ICertisfierDistributeService.CancelDistribute(list); return base.Json("撤销领取成功。"); } catch (Exception ex) { return base.Json("撤销领取失败,原因:" + ex.Message); } } /// /// 确认领取 /// /// /// [HttpPost] public JsonResult ConfirmDistribute(string IDs, string Distributer) { try { List list = IDs.Split(',').Where(x => !string.IsNullOrEmpty(x)) .Select(x => (Guid?)new Guid(x)).ToList(); ICertisfierDistributeService.ConfirmDistribute(list, Distributer); return base.Json("确认领取成功。"); } catch (Exception ex) { return base.Json("确认领取失败,原因:" + ex.Message); } } [HttpPost] public ActionResult Excel(string qpararms) { NpoiExcelHelper neh = new NpoiExcelHelper(); ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(null); var schoolyearID = Request.Form["ddlSchoolyear"].ParseStrTo(); var examinationBatchID = Request.Form["cgExaminationBatch"].ParseStrTo(); var examinationTypeID = Request.Form["cgExaminationType"].ParseStrTo(); var examinationProjectID = Request.Form["cgExaminationProject"].ParseStrTo(); var schoolAreaID = Request.Form["SchoolAreaID"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["SchoolAreaID"].ParseStrTo(); var collegeID = Request.Form["CollegeID"].ParseStrTo(); var year = Request.Form["Years"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["Years"].ParseStrTo(); var classmajorID = Request.Form["ClassmajorID"].ParseStrTo(); var standardID = Request.Form["StandardID"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["StandardID"].ParseStrTo(); var distributeTypeID = Request.Form["DistributeTypeID"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["DistributeTypeID"].ParseStrTo(); var recordStatus = Request.Form["RecordStatus"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["RecordStatus"].ParseStrTo(); var certisfierDistributeIDs = Request.Form["SelectedID"]; if (configuretView.Attribute == Bowin.Web.Controls.Mvc.DropdownList.SELECT_ALL.ToString()) configuretView.Attribute = ""; List selectIDlist = new List(); if (certisfierDistributeIDs != "" && certisfierDistributeIDs != null) { selectIDlist = certisfierDistributeIDs.SplitIDString(); } var dt = ICertisfierDistributeService.GetList(configuretView,schoolyearID,examinationProjectID,collegeID,schoolAreaID,year,classmajorID,standardID,distributeTypeID,recordStatus, selectIDlist).Select(q => new { q.Schoolyear, q.ProjectName, q.SchoolAreaName, q.CollegeName, q.Years, q.StandardName, q.ClassmajorName, q.UserName, q.CertificatesTypeName, q.IDNumber, q.DistributeStateName, q.DistributeTypeName, q.ContactPerson, q.ContactNo, q.DeliveryNoteNo, q.Distributer, DistributeTime = q.DistributeTime.HasValue ? q.DistributeTime.Value.ToString("yyyy-MM-dd") : "", q.No, }).ToTable(); string[] liststring = { "学年学期","考试项目", "校区", "院系所","年级","专业","班级","姓名","证件类型","证件号码", "领取状态","领取方式","联系人","联系电话","邮寄单号","领取人","领取时间","领取单号"}; neh.Export(dt, liststring, "证书领取列表" + DateTime.Now.ToString("yyyyMMddhhmmss")); return RedirectToAction("MsgShow", "Common", new { msg = "导出成功!", url = Url.Content("~/ExaminationBatc/List").AddMenuParameter() }); } [HttpPost] public ActionResult EmsExcel(string qpararms) { NpoiExcelHelper neh = new NpoiExcelHelper(); ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(null); var schoolyearID = Request.Form["ddlSchoolyear"].ParseStrTo(); var examinationBatchID = Request.Form["cgExaminationBatch"].ParseStrTo(); var examinationTypeID = Request.Form["cgExaminationType"].ParseStrTo(); var examinationProjectID = Request.Form["cgExaminationProject"].ParseStrTo(); var schoolAreaID = Request.Form["SchoolAreaID"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["SchoolAreaID"].ParseStrTo(); var collegeID = Request.Form["CollegeID"].ParseStrTo(); var year = Request.Form["Years"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["Years"].ParseStrTo(); var classmajorID = Request.Form["ClassmajorID"].ParseStrTo(); var standardID = Request.Form["StandardID"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["StandardID"].ParseStrTo(); var distributeTypeID = Request.Form["DistributeTypeID"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["DistributeTypeID"].ParseStrTo(); var recordStatus = Request.Form["RecordStatus"].ParseStrTo() == DropdownList.SELECT_ALL ? null : Request.Form["RecordStatus"].ParseStrTo(); var certisfierDistributeIDs = Request.Form["SelectedID"]; if (configuretView.Attribute == Bowin.Web.Controls.Mvc.DropdownList.SELECT_ALL.ToString()) configuretView.Attribute = ""; List selectIDlist = new List(); if (certisfierDistributeIDs != "" && certisfierDistributeIDs != null) { selectIDlist = certisfierDistributeIDs.SplitIDString(); } var dt = ICertisfierDistributeService.GetList(configuretView, schoolyearID, examinationProjectID, collegeID, schoolAreaID, year, classmajorID, standardID, distributeTypeID, recordStatus, selectIDlist).Select(q => new { q.Schoolyear, q.ProjectName, q.UserName, q.IDNumber, q.ContactPerson, q.ContactNo, q.Address, q.DeliveryNoteNo, }).ToTable(); string[] liststring = { "学年学期","考试项目","姓名","证件号码","联系人","联系电话","地址","邮寄单号"}; neh.Export(dt, liststring, "邮寄列表" + DateTime.Now.ToString("yyyyMMddhhmmss")); return RedirectToAction("MsgShow", "Common", new { msg = "导出成功!", url = Url.Content("~/ExaminationBatc/List").AddMenuParameter() }); } /// /// Excel导入 /// /// /// [HttpPost] public ActionResult Import(HttpPostedFileBase file) { try { if (!NpoiExcelHelper.GetIsCompatible(file.FileName)) { throw new Exception("格式错误,只允许导入xls或xlsx格式的Excel文件。"); } Dictionary cellheader = new Dictionary { { "Schoolyear", "学年学期" }, { "ProjectName", "考试项目" }, { "UserName", "姓名" }, { "IDNumber", "证件号码" }, { "ContactPerson", "联系人" }, { "ContactNo", "联系电话" }, { "Address", "地址" }, { "DeliveryNoteNo", "邮寄单号" }, }; 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; //失败个数 //导入 ICertisfierDistributeService.Import(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("Import").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("Import").AddMenuParameter() + "&WindowID=" + Request["WindowID"] }); } } [HttpGet] public ActionResult NumberImport(string errorFile, string operationTips) { ViewBag.ErrorFile = errorFile; if (string.IsNullOrEmpty(operationTips)) { operationTips = "点击查看失败原因..."; } ViewBag.operationTips = operationTips; return View(); } /// /// 存放编号导入 /// /// /// [HttpPost] public ActionResult NumberImport(HttpPostedFileBase file) { try { if (!NpoiExcelHelper.GetIsCompatible(file.FileName)) { throw new Exception("格式错误,只允许导入xls或xlsx格式的Excel文件。"); } Dictionary cellheader = new Dictionary { { "Schoolyear", "学年学期" }, { "ProjectName", "考试项目" }, { "UserName", "姓名" }, { "IDNumber", "证件号码" }, { "SaveNo", "存放编号" } }; 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; //失败个数 //导入 ICertisfierDistributeService.NumberImport(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("NumberImport").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("NumberImport").AddMenuParameter() + "&WindowID=" + Request["WindowID"] }); } } } }