public JsonResult MailSendingHandler() { string mailType = Request.Form["mailType"]; string email = Request.Form["email"]; string password = Request.Form["password"]; string CCAddress = System.Configuration.ConfigurationManager.AppSettings["mailCCAddress"]; var service = new HolidayTransferService(); HolidayTransferMailResult result = new HolidayTransferMailResult(); switch (mailType) { case "annual": List <UserHoliday> holidayList = JsonConvert.DeserializeObject <List <UserHoliday> >(Request.Form["staffList"]); Parallel.ForEach(holidayList, (item, state) => { if (item.TotalRemainingHours == 0 || item.PaidLeaveBeginDate > DateTime.Now || item.PaidLeaveEndDate < DateTime.Now) { //state.Stop(); return; } string htmlData = string.Empty; try { htmlData = service.HolidayDataConvert2Html(item); } catch (Exception ex) { result.FailureList.Add(item.StaffName); result.FailureMsg.Add(ex.Message); return; } try { service.MailSending(email, password, item.StaffEmail, htmlData, "annual", CCAddress); result.SuccessList.Add(item.StaffName); } catch (Exception ex) { result.FailureList.Add(item.StaffName); result.FailureMsg.Add(ex.Message); } }); //foreach (UserHoliday ul in holidayList) //{ // if (ul.PaidLeaveRemainingHours == 0 || // ul.PaidLeaveBeginDate > DateTime.Now || // ul.PaidLeaveEndDate < DateTime.Now) // { // continue; // } // string htmlData = string.Empty; // try // { // htmlData = service.HolidayDataConvert2Html(ul); // } // catch (Exception ex) // { // result.FailureList.Add(ul.StaffName); // result.FailureMsg.Add(ex.Message); // continue; // } // try // { // service.MailSending(email, password, ul.StaffEmail, htmlData, "annual", CCAddress); // result.SuccessList.Add(ul.StaffName); // } // catch (Exception ex) // { // result.FailureList.Add(ul.StaffName); // result.FailureMsg.Add(ex.Message); // } //} break; case "transfer": List <UserTransferList> lutl = JsonConvert.DeserializeObject <List <UserTransferList> >(Request.Form["staffList"]); foreach (UserTransferList ul in lutl) { string htmlData = string.Empty; var details = ul.UserTransferDetail.AsEnumerable().Where(r => r.TransferRemainingTime != 0); if (details.Count() == 0) { continue; } try { htmlData = service.TransferDataConvert2Html(ul); } catch (Exception ex) { result.FailureList.Add(ul.StaffName); result.FailureMsg.Add(ex.Message); continue; } try { service.MailSending(email, password, ul.StaffEmail, htmlData, "transfer", CCAddress); result.SuccessList.Add(ul.StaffName); } catch (Exception ex) { result.FailureList.Add(ul.StaffName); result.FailureMsg.Add(ex.Message); } } break; case "radix": InsuranceRadix ir = JsonConvert.DeserializeObject <InsuranceRadix>(Request.Form["staffList"]); string upContent = Request.Form["upCont"]; string downContent = Request.Form["downCont"]; var radixService = new InsuranceService(); foreach (var item in ir.InsuranceRadixDetails) { string htmlData = string.Empty; try { htmlData = radixService.RadixDataConvert2Html(item, ir.Year.ToString(), upContent, downContent); } catch (Exception ex) { result.FailureList.Add(item.ChineseName); result.FailureMsg.Add(ex.Message); continue; } try { radixService.MailSending(email, password, item.Email, htmlData, (ir.Year + 1).ToString(), CCAddress); result.SuccessList.Add(item.ChineseName); } catch (Exception ex) { result.FailureList.Add(item.ChineseName); result.FailureMsg.Add(ex.Message); } } break; default: result.FailureList.Add("系统错误"); result.FailureMsg.Add("邮件类型错误,请返回重新上传文件"); break; } return(Json(result)); }
/// <summary> /// 社保公积金缴存基数 /// </summary> /// <param name="year">缴存年份</param> /// <returns></returns> public InsuranceRadixResult ReadInsuranceRadixFile(int year) { var sheet = this._workBook.GetSheetAt(0); InsuranceRadix result = new InsuranceRadix(); if (sheet == null) { return(new InsuranceRadixResult() { hasError = true, ErrorMsg = "当前文件无工作表数据" }); } //定位标题行 var num = sheet.LastRowNum; int startNum = -1; for (int i = 0; i < num + 1; i++) { IRow row = sheet.GetRow(i); if (row != null) { ICell cell = sheet.GetRow(i).GetCell(1, MissingCellPolicy.CREATE_NULL_AS_BLANK); if (cell != null && cell.ToString().Trim().Equals("姓名")) { startNum = i; break; } } } if (startNum == -1) { return(new InsuranceRadixResult() { hasError = true, ErrorMsg = "数据格式错误:当前文件无起始数据行,标题行第一列必须包含‘序号’两个字" }); } //读取数据 var users = UserService.GetAllUsers().ToList(); result.Year = year; string errorName = string.Empty; try { for (int j = startNum + 1; j < sheet.LastRowNum + 1; j++) { IRow data = sheet.GetRow(j); string name = data.GetCell(1, MissingCellPolicy.CREATE_NULL_AS_BLANK).ToString(); if (name == null || name.Equals(string.Empty)) { break; } try { var user = users.Where(r => r.ChineseName == name).First(); if (user == null) { errorName = name; throw new Exception(""); } result.InsuranceRadixDetails.Add(new InsuranceRadix.UserInfo() { ChineseName = name, AunualIncome = double.Parse(data.GetCell(2, MissingCellPolicy.CREATE_NULL_AS_BLANK).ToString()), Email = user.EmailAddress }); } catch (Exception) { errorName = name; throw; } } } catch (Exception ex) { return(new InsuranceRadixResult() { hasError = true, ErrorMsg = "错误定位=>姓名:" + (string.IsNullOrWhiteSpace(errorName) ? "无" : errorName) + ",错误信息:" + ex.Message, }); } return(new InsuranceRadixResult() { hasError = false, ErrorMsg = "", result = result }); }