public ActionResult OperationResultTest() { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); SystemStatusInfo item1 = new SystemStatusInfo(); item1.SystemStatus = HiLand.Utility.Enums.SystemStatuses.Success; item1.Message = "成功信息"; infoList.Add(item1); SystemStatusInfo item2 = new SystemStatusInfo(); item2.SystemStatus = HiLand.Utility.Enums.SystemStatuses.Failuer; item2.Message = "失败信息"; infoList.Add(item2); SystemStatusInfo item3 = new SystemStatusInfo(); item3.SystemStatus = HiLand.Utility.Enums.SystemStatuses.Warnning; item3.Message = "警告信息"; infoList.Add(item3); SystemStatusInfo item4 = new SystemStatusInfo(); item4.SystemStatus = HiLand.Utility.Enums.SystemStatuses.Tip; item4.Message = "提示信息"; infoList.Add(item4); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { }); }
public ActionResult AsynTest() { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); SystemStatusInfo item4 = new SystemStatusInfo(); item4.SystemStatus = HiLand.Utility.Enums.SystemStatuses.Tip; item4.Message = "数据准备中,其完成后会自动下载,请等待。。。"; infoList.Add(item4); this.TempData.Add("OperationResultData", infoList); Funcs<ActionResult> commonHandle = new Funcs<ActionResult>(Foo); this.TempData["AsynMethod"]= commonHandle; commonHandle.BeginInvoke(null,null); return RedirectToAction("OperationResults", "System", new { }); }
/// <summary> /// 用户操作结果展示 /// </summary> /// <param name="isSuccessful"></param> /// <param name="displayInformation"></param> /// <returns></returns> public ActionResult OperationResult(bool isSuccessful, string displayInformation) { SystemStatusInfo statusInfo = new SystemStatusInfo(); if (isSuccessful == true) { statusInfo.SystemStatus = SystemStatuses.Success; } else { statusInfo.SystemStatus = SystemStatuses.Failuer; } statusInfo.Message = displayInformation; return View(statusInfo); }
public ActionResult Item(string keyGuid, EnterpriseEntity entity, bool isOnlyPlaceHolder = true) { bool isSuccessful = false; string displayMessage = string.Empty; string returnUrl = RequestHelper.GetValue("returnUrl"); bool isUsingCompress = RequestHelper.GetValue<bool>("isUsingCompress"); EnterpriseEntity targetEntity = null; if (GuidHelper.IsInvalidOrEmpty(keyGuid)) { //判断是否达到资源负责人可以控制的最大资源数量 int realEnterpriseCountOfManager = EnterpriseBLL.Instance.GetTotalCountOfManager(BusinessUserBLL.CurrentUserGuid.ToString(), true); int maxEnterpriseCountOfManager = EmployeeBLL.Instance.Get(BusinessUserBLL.CurrentUserGuid).MaxEnterpriseCountOfManager; if (maxEnterpriseCountOfManager <= 0) { maxEnterpriseCountOfManager = SystemConst.MaxEnterpriseCountOfManager; } if (realEnterpriseCountOfManager >= maxEnterpriseCountOfManager) { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); SystemStatusInfo itemSuccessful = new SystemStatusInfo(); itemSuccessful.SystemStatus = SystemStatuses.Warnning; itemSuccessful.Message = string.Format("你目前拥有的企业数量为{0},已经超出了业务允许的最大数量{1},请释放一些企业后再进行录入。", realEnterpriseCountOfManager, maxEnterpriseCountOfManager); infoList.Add(itemSuccessful); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl, isUsingCompress = isUsingCompress }); } targetEntity = new EnterpriseEntity(); SetTargetEntityValue(entity, ref targetEntity); targetEntity.EstablishedTime = DateTime.Now; EntityOperateStatuses entityOperateStatus = EntityOperateStatuses.Successful; EnterpriseBLL.Instance.Create(targetEntity, out entityOperateStatus); if (entityOperateStatus == EntityOperateStatuses.Successful) { isSuccessful = true; } else { isSuccessful = false; displayMessage = EnumHelper.GetDisplayValue(entityOperateStatus); } } else { targetEntity = EnterpriseBLL.Instance.Get(keyGuid); SetTargetEntityValue(entity, ref targetEntity); EntityOperateStatuses entityOperateStatus = EntityOperateStatuses.Successful; EnterpriseBLL.Instance.Update(targetEntity, out entityOperateStatus); if (entityOperateStatus == EntityOperateStatuses.Successful) { isSuccessful = true; } else { isSuccessful = false; displayMessage = EnumHelper.GetDisplayValue(entityOperateStatus); } } if (isSuccessful == true) { displayMessage = "数据保存成功"; } if (isUsingCompress == true) { returnUrl = CompressHelper.Decompress(returnUrl); } if (isSuccessful == true) { return Redirect(returnUrl); } else { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); SystemStatusInfo itemStatus = new SystemStatusInfo(); itemStatus.SystemStatus = SystemStatuses.Failuer; itemStatus.Message = string.Format("{0}", displayMessage); infoList.Add(itemStatus); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); //return Json(new LogicStatusInfo(isSuccessful, displayMessage)); } }
public ActionResult TransferJobs(bool onlyPlaceHolder = true) { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); string returnUrl = RequestHelper.CurrentFullUrl; Guid sourceUserGuid = ControlHelper.GetRealValue<Guid>("SourceUser"); string sourceUserName = RequestHelper.GetValue("SourceUser"); Guid targetUserGuid = ControlHelper.GetRealValue<Guid>("TargetUser"); string targetUserName = RequestHelper.GetValue("TargetUser"); if (targetUserGuid == Guid.Empty) { targetUserName = "******"; } Guid enterpriseGuid = ControlHelper.GetRealValue<Guid>("EnterpriseName"); //被移交人如果为空,那么表示将源移交人的数据释放到共享库中 if (sourceUserGuid == Guid.Empty) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = string.Format("请先选择移交人信息,谢谢。"); infoList.Add(itemError); } else { #region 劳务人员移交 { int rowCount = UpdateLaborData(sourceUserGuid, targetUserGuid, targetUserName, enterpriseGuid); if (rowCount > 0) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Success; itemError.Message = string.Format("劳务人员数据移交成功!共移交{0}笔数据。", rowCount); infoList.Add(itemError); } else { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Tip; itemError.Message = string.Format("{0}尚无劳务人员数据需要移交。", sourceUserName); infoList.Add(itemError); } } #endregion #region 企业移交 { int rowCount = UpdateEnterpriseData(sourceUserGuid, targetUserGuid, targetUserName, enterpriseGuid); if (rowCount > 0) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Success; itemError.Message = string.Format("企业数据移交成功!共移交{0}笔数据。", rowCount); infoList.Add(itemError); } else { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Tip; itemError.Message = string.Format("{0}尚无企业数据需要移交。", sourceUserName); infoList.Add(itemError); } } #endregion #region 信息员移交 { int rowCount = UpdateInformationBrokerData(sourceUserGuid, targetUserGuid, targetUserName); if (rowCount > 0) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Success; itemError.Message = string.Format("信息员数据移交成功!共移交{0}笔数据。", rowCount); infoList.Add(itemError); } else { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Tip; itemError.Message = string.Format("{0}尚无信息员数据需要移交。", sourceUserName); infoList.Add(itemError); } } #endregion } this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); }
/// <summary> /// 用户操作结果展示 /// </summary> /// <param name="isSuccessful"></param> /// <param name="displayInformation"></param> /// <returns></returns> public ActionResult OperationResult(bool isSuccessful, string displayInformation, string returnUrl = StringHelper.Empty, bool isUsingCompress = false) { SystemStatusInfo statusInfo = new SystemStatusInfo(); if (isSuccessful == true) { statusInfo.SystemStatus = SystemStatuses.Success; } else { statusInfo.SystemStatus = SystemStatuses.Failuer; } statusInfo.Message = displayInformation; List<SystemStatusInfo> statusInfos = new List<SystemStatusInfo>(); statusInfos.Add(statusInfo); this.TempData.Add("OperationResultData", statusInfos); return RedirectToAction("OperationResults", new { returnUrl = returnUrl, isUsingCompress = isUsingCompress }); }
public ActionResult Item(string itemKey, LaborEntity entity, bool isOnlyPlaceHolder = true) { bool isSuccessful = false; string displayMessage = string.Empty; CreateUserRoleStatuses createStatus = CreateUserRoleStatuses.Successful; string returnUrl = RequestHelper.GetValue("returnUrl"); if (string.IsNullOrWhiteSpace(returnUrl)) { returnUrl = Url.Action("Index"); } else { bool isUsingCompress = RequestHelper.GetValue<bool>("isUsingCompress"); if (isUsingCompress == true) { returnUrl = CompressHelper.Decompress(returnUrl); } } LaborEntity targetEntity = null; if (GuidHelper.IsInvalidOrEmpty(itemKey)) { targetEntity = new LaborEntity(); SetTargetEntityValue(entity, ref targetEntity); targetEntity.UserRegisterDate = DateTime.Now; targetEntity.UserType = UserTypes.CommonUser; targetEntity.Password = SystemConst.InitialUserPassword; targetEntity.LaborWorkStatus = LaborWorkStatuses.NewWorker; targetEntity.ComeFromType = ComeFromTypes.ManageWrite; //首次录入系统,劳务人员的状态为未激活 targetEntity.UserStatus = UserStatuses.Unactivated; createStatus = LaborBLL.Instance.Create(targetEntity); if (createStatus == CreateUserRoleStatuses.Successful) { isSuccessful = true; } } else { targetEntity = LaborBLL.Instance.Get(itemKey); SetTargetEntityValue(entity, ref targetEntity); isSuccessful = LaborBLL.Instance.Update(targetEntity); if (isSuccessful == false) { createStatus = CreateUserRoleStatuses.FailureUnknowReason; } } if (isSuccessful == true) { displayMessage = "数据保存成功"; } else { displayMessage = string.Format("数据保存失败,原因为{0}", EnumHelper.GetDisplayValue(createStatus)); } if (isSuccessful == true) { return Redirect(returnUrl); } else { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); SystemStatusInfo itemStatus = new SystemStatusInfo(); itemStatus.SystemStatus = SystemStatuses.Failuer; itemStatus.Message = string.Format("{0}", displayMessage); infoList.Add(itemStatus); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } }
public ActionResult ContractQueryList(int id = 1) { //1.如果是点击查询控件的查询按钮,那么将查询条件作为QueryString附加在地址后面(为了在客户端保存查询条件的状体),重新发起一次请求。 if (this.Request.HttpMethod.ToLower().Contains("post")) { string targetUrlWithoutParam = Url.Action("ContractQueryList", new { id = 1 }); string targetUrl = QueryControlHelper.GetNewQueryUrl("QueryControl", targetUrlWithoutParam); return Redirect(targetUrl); } //2.通常情形下走get查询 int pageIndex = id; int pageSize = SystemConst.CountPerPageForLaborList; int startIndex = (pageIndex - 1) * pageSize + 1; string whereClause = " 1=1 "; whereClause += " AND " + QueryControlHelper.GetQueryCondition("QueryControl"); //处理在职时间段问题 DateTime jobingDateStart = DateTimeHelper.Min; DateTime jobingDateEnd = DateTimeHelper.Min; if (whereClause.Contains("JobingDate")) { string jobingDateStringAll = whereClause.Substring(whereClause.IndexOf("JobingDate")); string jobingDateStringNoLeftBlacket = jobingDateStringAll.Substring(jobingDateStringAll.IndexOf("'") + 1); string jobingDateString = jobingDateStringNoLeftBlacket.Substring(0, jobingDateStringNoLeftBlacket.IndexOf("'")); jobingDateStart = Converter.ChangeType<DateTime>(jobingDateString, DateTimeHelper.Min); } if (whereClause.Contains("JobingDate")) { string jobingDateStringAll = whereClause.Substring(whereClause.LastIndexOf("JobingDate")); string jobingDateStringNoLeftBlacket = jobingDateStringAll.Substring(jobingDateStringAll.IndexOf("'") + 1); string jobingDateString = jobingDateStringNoLeftBlacket.Substring(0, jobingDateStringNoLeftBlacket.IndexOf("'")); jobingDateEnd = Converter.ChangeType<DateTime>(jobingDateString, DateTimeHelper.Min); } if ((jobingDateStart != DateTimeHelper.Min && jobingDateEnd == DateTimeHelper.Min) || (jobingDateStart == DateTimeHelper.Min && jobingDateEnd != DateTimeHelper.Min)) { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); string returnUrl = Url.Action("ContractQueryList", new { id = 1 }); SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "请同时选择在职时间开始和在职时间结束!"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } if (jobingDateStart != DateTimeHelper.Min && jobingDateEnd != DateTimeHelper.Min) { whereClause = whereClause.Substring(0, whereClause.IndexOf("JobingDate")); whereClause = whereClause.TrimEnd(' ', '(').ToLower(); if (whereClause.EndsWith("and") || whereClause.EndsWith("or")) { string whereClauseForJobing = string.Format(@" ( ( LaborContractStartDate>='{1}' AND (LaborContractStartDate<='{2}') ) OR ( LaborContractDiscontinueDate>='{1}' AND (LaborContractDiscontinueDate<='{2}') ) OR ( LaborContractStartDate<'{1}' AND (LaborContractDiscontinueDate>'{2}' OR LaborContractDiscontinueDate is null OR LaborContractDiscontinueDate='{0}' )) ) ", DateTimeHelper.Min, jobingDateStart, jobingDateEnd); whereClause += whereClauseForJobing; } } string orderClause = "LaborContractID DESC"; PagedEntityCollection<LaborContractEntity> entityList = LaborContractBLL.Instance.GetPagedCollection(startIndex, pageSize, whereClause, orderClause); PagedList<LaborContractEntity> pagedExList = new PagedList<LaborContractEntity>(entityList.Records, entityList.PageIndex, entityList.PageSize, entityList.TotalCount); bool isExportExcel = RequestHelper.GetValue("exportExcel", false); if (isExportExcel == true) { return LaborContractListToExcelFile(entityList.Records); } else { return View(pagedExList); } }
public ActionResult BankCardBatch(bool isOnlyPlaceHolder = true) { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); string returnUrl = RequestHelper.CurrentFullUrl; string bankName = RequestHelper.GetValue("BankName"); string bankBranch = RequestHelper.GetValue("Branch"); int headerRowNumber = RequestHelper.GetValue<int>("headerRowNumber", 3); HttpPostedFile postedFile = RequestHelper.CurrentRequest.Files["fileSelector"]; #region 条件判定(如果不满足基本条件直接跳出并提示) if (HttpPostedFileHelper.HasFile(postedFile) == false) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "没有选择Excel文件,请先选择文件然后再进行导入!"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } #endregion try { #region 将数据读入内存 int userCountSuccessful = 0; int userCountFailure = 0; string userListFailure = string.Empty; DataTable dataTable = ExcelHelper.ReadExcel(postedFile.InputStream, headerRowNumber); NameValueCollection bankCardItemMapData = (NameValueCollection)ConfigurationManager.GetSection("bankCardItemMap"); List<string> columnNameList = new List<string>(); for (int i = 0; i < dataTable.Columns.Count; i++) { columnNameList.Add(dataTable.Columns[i].ColumnName); } #endregion #region 对Excel的每行信息进行解析 for (int i = 0; i < dataTable.Rows.Count; i++) { int dataRowNumberInExcel = headerRowNumber + i + 1; try { DataRow row = dataTable.Rows[i]; if (row == null) { continue; } string laborUserNameCN = string.Empty; string laborUserCardID = string.Empty; Guid bankCardGuid = GuidHelper.NewGuid(); BankEntity bankEntity = new BankEntity(); bankEntity.BankGuid = bankCardGuid; bankEntity.BankName = bankName; bankEntity.Branch = bankBranch; foreach (string columnName in columnNameList) { //1.根据Excel文件中的列名称映射银行卡实体的属性名称 string propertyName = bankCardItemMapData[columnName]; if (string.IsNullOrWhiteSpace(propertyName)) { continue; } //2.给银行卡实体属性赋值 object cellValue = row[columnName]; if (cellValue != null) { switch (propertyName) { case "UserNameCN": laborUserNameCN = cellValue.ToString(); break; case "UserCardID": laborUserCardID = cellValue.ToString(); break; case "AccountNumber": bankEntity.AccountNumber = cellValue.ToString(); break; case "CompanyName": //Hack:xieran20121022 暂时使用BankAddress记录公司信息 bankEntity.BankAddress = cellValue.ToString(); break; default: //do nothing. break; } } } if (string.IsNullOrWhiteSpace(laborUserNameCN) || string.IsNullOrWhiteSpace(laborUserCardID)) { userCountFailure++; userListFailure += string.Format("{0}({1}({2})请确认此用户的用户名称和身份证号均不可以为空), <br />", dataRowNumberInExcel, laborUserNameCN, laborUserCardID); } else { //根据人员姓名和身份证号,确认劳务人员的UserGuid BusinessUser labor = BusinessUserBLL.GetByUserIDCard(laborUserCardID); if (labor != null && labor.IsEmpty == false) { if (labor.UserNameCN == laborUserNameCN) { bankEntity.AccountName = laborUserNameCN; bankEntity.UserGuid = labor.UserGuid; bankEntity.IsPrimary = Logics.True; bool isSuccessful = BankBLL.Instance.Create(bankEntity); if (isSuccessful == true) { userCountSuccessful++; } else { userCountFailure++; userListFailure += string.Format("{0}({1}({2})错误未知), <br />", dataRowNumberInExcel, laborUserNameCN, laborUserCardID); } } else { userCountFailure++; userListFailure += string.Format("{0}({1}({2})请确认此用户的用户名称和身份证号是否跟系统内的数据一致), <br />", dataRowNumberInExcel, laborUserNameCN, laborUserCardID); } } else { userCountFailure++; userListFailure += string.Format("{0}({1}({2})请确认此用户的用户名称和身份证号是否跟系统内的数据一致), <br />", dataRowNumberInExcel, laborUserNameCN, laborUserCardID); } } } catch (Exception) { userCountFailure++; userListFailure += i + ", "; } } #endregion #region 操作结果展示 //A.1、操作结果(导入成功的人员信息) SystemStatusInfo itemSuccessful = new SystemStatusInfo(); itemSuccessful.SystemStatus = SystemStatuses.Success; itemSuccessful.Message = string.Format("共有{0}人导入成功。", userCountSuccessful); infoList.Add(itemSuccessful); //A.2、操作结果(导入失败的人员信息) if (userCountFailure > 0) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = string.Format("共有{0}人导入失败。", userCountFailure); if (string.IsNullOrWhiteSpace(userListFailure) == false) { itemError.Message += string.Format("导入失败的人员分别位于{0}行, <br />", userListFailure); } infoList.Add(itemError); } #endregion } catch (OfficeXmlFileException) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = "请选择Excel2003格式的文件。你可以将本文件在Excel中另存的时候选择97/2003格式!"; infoList.Add(itemError); } this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); }
public ActionResult BatchEntering(bool isOnlyPlaceholder = true) { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); string returnUrl = RequestHelper.CurrentFullUrl; int headerRowNumber = RequestHelper.GetValue<int>("headerRowNumber", 1); HttpPostedFile postedFile = RequestHelper.CurrentRequest.Files["fileSelector"]; if (HttpPostedFileHelper.HasFile(postedFile)) { try { int userCountSuccessful = 0; int userCountFailure = 0; string userListFailure = string.Empty; DataTable dataTable = ExcelHelper.ReadExcel(postedFile.InputStream, headerRowNumber); NameValueCollection laborMapData = (NameValueCollection)ConfigurationManager.GetSection("laborBasicDataMap"); List<string> columnNameList = new List<string>(); for (int i = 0; i < dataTable.Columns.Count; i++) { columnNameList.Add(dataTable.Columns[i].ColumnName); } //Hack:xieran20121109 为了匹配所有的服务角色的guid,这里获取全部内部员工的信息,如果以后员工人数数量 //增加到一个程度后,可能会有性能问题 List<BusinessUser> employeeList = BusinessUserBLL.GetList(UserTypes.Manager); for (int i = 0; i < dataTable.Rows.Count; i++) { int originalExcelRowNumber = headerRowNumber + i + 1; try { DataRow row = dataTable.Rows[i]; if (row == null) { continue; } string userAgeString = string.Empty; string userBirhdayString = string.Empty; string userSexString = string.Empty; LaborEntity laborEntity = new LaborEntity(); foreach (string columnName in columnNameList) { //1.根据Excel文件中的列名称映射Labor实体的属性名称 string propertyName = laborMapData[columnName]; if (string.IsNullOrWhiteSpace(propertyName)) { continue; } //2.给Labor实体属性赋值 object cellValue = row[columnName]; if (cellValue != null) { switch (propertyName) { case "HouseHoldType": laborEntity.HouseHoldType = EnumHelper.GetItem<HouseHoldTypes>(cellValue.ToString()); break; case "MaritalStatus": laborEntity.MaritalStatus = EnumHelper.GetItem<MaritalStatuses>(cellValue.ToString()); break; case "UserSex": userSexString = cellValue.ToString(); break; case "UserEducationalBackground": laborEntity.UserEducationalBackground = EnumHelper.GetItem<EducationalBackgrounds>(cellValue.ToString()); break; case "UserAge": userAgeString = cellValue.ToString(); break; case "UserBirthday": userBirhdayString = cellValue.ToString(); break; default: ReflectHelper.SetPropertyValue<LaborEntity>(laborEntity, propertyName, cellValue); break; } } } laborEntity.Password = SystemConst.InitialUserPassword; laborEntity.UserType = UserTypes.CommonUser; laborEntity.UserRegisterDate = DateTime.Now; //从Excel导入的各个服务角色的姓名,以下将其转换为guid laborEntity.ProviderUserGuid = GetEmployeeGuid(employeeList, laborEntity.ProviderUserName); laborEntity.RecommendUserGuid = GetEmployeeGuid(employeeList, laborEntity.RecommendUserName); laborEntity.FinanceUserGuid = GetEmployeeGuid(employeeList, laborEntity.FinanceUserName); laborEntity.ServiceUserGuid = GetEmployeeGuid(employeeList, laborEntity.ServiceUserName); laborEntity.BusinessUserGuid = GetEmployeeGuid(employeeList, laborEntity.BusinessUserName); laborEntity.SettleUserGuid = GetEmployeeGuid(employeeList, laborEntity.SettleUserName); laborEntity.InformationBrokerUserGuid = GetInformationBrokerGuid(laborEntity.InformationBrokerUserName); IDCard idCard = IDCard.Parse(laborEntity.UserCardID); //人员生日的抽取先后顺序1、直接的生日输入 2、身份证中提取 3、年龄计算。(满足前面的条件,自动跳过后面的条件) DateTime userBirthDay = DateTimeHelper.Parse(userBirhdayString, DateFormats.YMD); if (userBirthDay == DateTimeHelper.Min) { userBirthDay = idCard.BirthDay; } if (userBirthDay == DateTimeHelper.Min) { userBirthDay = new DateTime(DateTime.Today.Year - Converter.ChangeType(userAgeString, 25), 1, 1); } laborEntity.UserBirthDay = userBirthDay; //人员性别的抽取顺序1、直接输入的性别 2、身份证中提取 Sexes userSex = EnumHelper.GetItem<Sexes>(userSexString, string.Empty, Sexes.UnSet); if (userSex == Sexes.UnSet) { userSex = idCard.Sex; } laborEntity.UserSex = userSex; //必须人员姓名和身份证同时为空时,不保存 if (string.IsNullOrWhiteSpace(laborEntity.UserNameCN) && string.IsNullOrWhiteSpace(laborEntity.UserCardID)) { userCountFailure++; userListFailure += string.Format("{0}(人员姓名和身份证同时为空), <br />", originalExcelRowNumber); } else { laborEntity.ComeFromType = ComeFromTypes.ManageBatch; //首次录入系统,劳务人员的状态为未激活 laborEntity.UserStatus = UserStatuses.Unactivated; CreateUserRoleStatuses createStatus = LaborBLL.Instance.Create(laborEntity); if (createStatus == CreateUserRoleStatuses.Successful) { userCountSuccessful++; } else { userCountFailure++; userListFailure += string.Format("{0}({1}), <br />", originalExcelRowNumber, EnumHelper.GetDisplayValue(createStatus)); } } } catch (Exception) { userCountFailure++; userListFailure += originalExcelRowNumber + ", <br />"; } } SystemStatusInfo itemSuccessful = new SystemStatusInfo(); itemSuccessful.SystemStatus = SystemStatuses.Success; itemSuccessful.Message = string.Format("共有{0}人导入成功。", userCountSuccessful); infoList.Add(itemSuccessful); if (userCountFailure > 0) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = string.Format("共有{0}人导入失败。", userCountFailure); if (string.IsNullOrWhiteSpace(userListFailure) == false) { itemError.Message += string.Format("导入失败的人员分别位于{0}行", userListFailure); } infoList.Add(itemError); } } catch (NPOI.POIFS.FileSystem.OfficeXmlFileException) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = "请选择Excel2003格式的文件。你可以将本文件在Excel中另存的时候选择97/2003格式!"; infoList.Add(itemError); } } else { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "没有选择Excel文件,请先选择文件然后再进行导入!"; infoList.Add(itemError); } this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); }
public ActionResult SalaryToBank(bool isOnlyPlaceHolder = true) { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); string returnUrl = RequestHelper.CurrentFullUrl; string enterpriseGuid = ControlHelper.GetRealValue("EnterpriseName", string.Empty); EnterpriseEntity enterpriseEntity = EnterpriseEntity.Empty; string salaryMonth = RequestHelper.GetValue("salaryMonth"); DateTime salaryDate = DateTimeHelper.Min; if (string.IsNullOrWhiteSpace(salaryMonth)) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "你没有选定薪资月份,请选择。"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } else { salaryMonth = salaryMonth + "/1"; salaryDate = DateTimeHelper.Parse(salaryMonth, DateFormats.YMD); } if (GuidHelper.IsInvalidOrEmpty(enterpriseGuid)) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "你没有选定企业的名称信息,请选择。"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } else { enterpriseEntity = EnterpriseBLL.Instance.Get(enterpriseGuid); } DataTable salaryTable = GenerateSalaryDataTabel(enterpriseEntity, salaryDate); Stream salaryStream = ExcelHelper.WriteExcel(salaryTable, false); string fileDownloadName = string.Format("{0}-{1}", enterpriseEntity.CompanyName, salaryDate.ToString("yyyyMM")); return File(salaryStream, ContentTypes.GetContentType("xls"), fileDownloadName); }
public ActionResult SalaryListCheck(bool isOnlyPlaceHolder = true) { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); string returnUrl = Url.Action("SalaryListPreSelector"); //1.加入对预选择条件的过滤 string enterpriseKey = RequestHelper.GetValue("enterpriseKey"); string salaryMonth = RequestHelper.GetValue("salaryMonth"); if (GuidHelper.IsInvalidOrEmpty(enterpriseKey)) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "你没有选定企业信息,请选择。"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } DateTime salaryDateFirstDay = DateTime.Today; DateTime salaryDateStart = DateTime.Today; DateTime salaryDateEnd = DateTime.Today; if (string.IsNullOrWhiteSpace(salaryMonth)) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "你没有选定薪资月份,请选择。"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } else { salaryMonth = HttpUtility.UrlDecode(salaryMonth); string salaryDateString = salaryMonth + "/1"; salaryDateFirstDay = DateTimeHelper.Parse(salaryDateString, DateFormats.YMD); } salaryDateStart = RequestHelper.GetValue<DateTime>("JobingDateStart", DateTimeHelper.Min); salaryDateEnd = RequestHelper.GetValue<DateTime>("JobingDateEnd", DateTimeHelper.Min); if (salaryDateStart == DateTimeHelper.Min && salaryDateEnd == DateTimeHelper.Min) { salaryDateStart = DateTimeHelper.GetFirstDateOfMonth(salaryDateFirstDay); salaryDateEnd = DateTimeHelper.GetLastDateOfMonth(salaryDateFirstDay); } List<LaborContractEntity> laborContractList = LaborContractBLL.Instance.GetList(salaryDateStart, salaryDateEnd, new Guid(enterpriseKey)); List<LaborEntity> unMatchedLaborList = new List<LaborEntity>(); List<SalarySummaryEntity> salarySummaryList = SalarySummaryBLL.Instance.GetList(enterpriseKey, salaryDateFirstDay); for (int j = laborContractList.Count - 1; j >= 0; j--) { LaborContractEntity laborItem = laborContractList[j]; bool isMatch = false; for (int i = 0; i < salarySummaryList.Count; i++) { if (laborItem.LaborUserGuid.ToString() == salarySummaryList[i].LaborKey) { isMatch = true; break; } } if (isMatch == false) { unMatchedLaborList.Add(laborItem.Labor); } } if (unMatchedLaborList.Count == 0) { SystemStatusInfo statusItem = new SystemStatusInfo(); statusItem.SystemStatus = SystemStatuses.Success; statusItem.Message = "没有应付而未付的人员!"; infoList.Add(statusItem); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } else { SystemStatusInfo statusItem = new SystemStatusInfo(); statusItem.SystemStatus = SystemStatuses.Warnning; statusItem.Message = "实付人员数量与应付人员数量有差别,具体如下人员应付而未付:"; foreach (LaborEntity laborItem in unMatchedLaborList) { statusItem.Message += string.Format("{0}({1})({2}), <br />", laborItem.UserNameCN, laborItem.LaborCode, laborItem.UserCardID); } infoList.Add(statusItem); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } }
public ActionResult SalaryList(int id = 1) { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); string returnUrl = Url.Action("SalaryListPreSelector"); int pageIndex = id; int pageSize = SystemConst.CountPerPage; int startIndex = (pageIndex - 1) * pageSize + 1; string whereClause = " 1=1 "; string orderClause = "SalarySummaryID DESC"; //1.加入对预选择条件的过滤 string enterpriseKey = RequestHelper.GetValue("enterpriseKey"); string salaryMonth = RequestHelper.GetValue("salaryMonth"); if (string.IsNullOrWhiteSpace(enterpriseKey)) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "你没有选定企业信息,请选择。"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } else { whereClause += string.Format(" AND BIZ.EnterpriseKey='{0}' ", enterpriseKey); } if (string.IsNullOrWhiteSpace(salaryMonth)) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "你没有选定薪资月份,请选择。"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } else { salaryMonth = HttpUtility.UrlDecode(salaryMonth); string salaryDateString = salaryMonth + "/1"; DateTime salaryDateFirstDay = DateTimeHelper.Parse(salaryDateString, DateFormats.YMD); DateTime salaryDateLastDay = DateTimeHelper.GetFirstDateOfMonth(salaryDateFirstDay.AddMonths(1)); whereClause += string.Format(" AND SalaryDate>='{0}' AND SalaryDate<'{1}' ", salaryDateFirstDay, salaryDateLastDay); } //2、加入对查询控件选择条件的过滤 //2.1、如果是点击查询控件的查询按钮,那么将查询条件作为QueryString附加在地址后面(为了在客户端保存查询条件的状体),重新发起一次请求。 if (this.Request.HttpMethod.ToLower().Contains("post")) { string targetUrlWithoutParam = Url.Action("SalaryList", new { id = 1, enterpriseKey = enterpriseKey, salaryMonth = salaryMonth }); string targetUrl = QueryControlHelper.GetNewQueryUrl("LaborQuery", targetUrlWithoutParam); return Redirect(targetUrl); } //2.2、通常情形下走get查询 whereClause += " AND " + QueryControlHelper.GetQueryCondition("LaborQuery"); PagedEntityCollection<SalarySummaryEntity> entityList = SalarySummaryBLL.Instance.GetPagedCollection(startIndex, pageSize, whereClause, orderClause); PagedList<SalarySummaryEntity> pagedExList = new PagedList<SalarySummaryEntity>(entityList.Records, entityList.PageIndex, entityList.PageSize, entityList.TotalCount); bool isExportExcel = RequestHelper.GetValue("exportExcel", false); if (isExportExcel == true) { return SalaryListToExcelFile(entityList.Records); } else { return View(pagedExList); } }
public ActionResult SalaryItem(bool isOnlyPlaceHolder = true) { string returnUrl = RequestHelper.CurrentFullUrl; List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); string enterpriseKey = RequestHelper.GetValue("enterpriseGuid"); Guid userGuid = RequestHelper.GetValue<Guid>("UserNameCN_Value"); string salaryMonth = RequestHelper.GetValue(PassingParamValueSourceTypes.Form, "salaryMonth", ""); DateTime salaryMonthDate = DateTimeHelper.Min; LaborEntity labor = LaborEntity.Empty; string salarySettlementStart = RequestHelper.GetValue(PassingParamValueSourceTypes.Form, "SettlementStartDate", ""); string salarySettlementEnd = RequestHelper.GetValue(PassingParamValueSourceTypes.Form, "SettlementEndDate", ""); DateTime salarySettlementStartDate = Converter.ChangeType(salarySettlementStart, DateTimeHelper.Min); DateTime salarySettlementEndDate = Converter.ChangeType(salarySettlementEnd, DateTimeHelper.Min); ; #region 数据验证 if (enterpriseKey == String.Empty) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = "无法确定企业信息"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } if (salarySettlementStartDate == DateTimeHelper.Min) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = "请选择结算开始日期信息"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } if (salarySettlementEndDate == DateTimeHelper.Min) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = "请选择结算结束日期信息"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } if (userGuid == Guid.Empty) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = "请先输入并选择人员信息"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } else { labor = LaborBLL.Instance.Get(userGuid); } if (salaryMonth == string.Empty) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = "请先输入薪资月份信息"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } else { salaryMonthDate = DateTimeHelper.Parse(salaryMonth + "/1", DateFormats.YMD); } #endregion if (salaryMonthDate == DateTimeHelper.Min) { salaryMonthDate = DateTimeHelper.GetFirstDateOfMonth(DateTime.Today); } //判断某人某月是否已经有薪资记录。1、如果有就直接使用,2、如果没有就创建新的薪资数据;(以此保证人员某月薪资数据的唯一) bool isSuccessful = true; SalarySummaryEntity salarySummaryEntity = SalarySummaryBLL.Instance.Get(enterpriseKey, labor.UserGuid.ToString(), salaryMonthDate); if (salarySummaryEntity.IsEmpty) { salarySummaryEntity.SalarySummaryGuid = GuidHelper.NewGuid(); salarySummaryEntity.CreateDate = DateTime.Now; salarySummaryEntity.CreateUserKey = BusinessUserBLL.CurrentUserGuid.ToString(); salarySummaryEntity.EnterpriseKey = enterpriseKey; salarySummaryEntity.SalaryDate = salaryMonthDate; salarySummaryEntity.LaborCode = labor.LaborCode; salarySummaryEntity.LaborKey = labor.UserGuid.ToString(); salarySummaryEntity.LaborName = labor.UserNameCN; salarySummaryEntity.SalarySettlementStartDate = salarySettlementStartDate; salarySummaryEntity.SalarySettlementEndDate = salarySettlementEndDate; //Logics isFirstCash = SalarySummaryBLL.Instance.IsFirstCash(enterpriseKey, labor.UserGuid.ToString()); //salarySummaryEntity.IsFirstCash = isFirstCash; isSuccessful = SalarySummaryBLL.Instance.Create(salarySummaryEntity); } if (isSuccessful == true) { return RedirectToAction("SalaryDetailsList", new { itemKey = salarySummaryEntity.SalarySummaryGuid, enterpriseKey = enterpriseKey }); } else { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = "未知错误"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } }
public ActionResult SalaryDeleteByEnterprise() { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); string returnUrl = Url.Action("SalaryListPreSelector"); string enterpriseKey = RequestHelper.GetValue("EnterpriseName_Value"); string enterpriseName = RequestHelper.GetValue("EnterpriseName"); string salaryMonth = RequestHelper.GetValue("SalaryMonth"); salaryMonth = HttpUtility.UrlDecode(salaryMonth); string salaryDateString = salaryMonth + "/1"; SalarySummaryBLL.Instance.DeleteList(enterpriseKey, Converter.ChangeType(salaryDateString, DateTimeHelper.Min)); SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Success; itemError.Message = string.Format("企业【{0}】【{1}】月份的薪资数据已经被成功删除。", enterpriseName, salaryMonth); infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); }
public ActionResult SalaryBatch(bool isOnlyPlaceHolder = true) { List<SystemStatusInfo> infoList = new List<SystemStatusInfo>(); string returnUrl = RequestHelper.CurrentFullUrl; Guid enterpriseGuid = ControlHelper.GetRealValue<Guid>("EnterpriseName"); int headerRowNumber = RequestHelper.GetValue<int>("headerRowNumber", 1); string salaryDateString = RequestHelper.GetValue("SalaryMonth"); DateTime salaryDate = DateTimeHelper.Min; HttpPostedFile postedFile = RequestHelper.CurrentRequest.Files["fileSelector"]; string SettlementStartDateString = RequestHelper.GetValue("SettlementStartDate"); DateTime SettlementStartDate = Converter.ChangeType(SettlementStartDateString, DateTime.Today); string SettlementEndDateString = RequestHelper.GetValue("SettlementEndDate"); DateTime SettlementEndDate = Converter.ChangeType(SettlementEndDateString, DateTime.Today); string SalaryCashDateString = RequestHelper.GetValue("SalaryCashDate"); DateTime SalaryCashDate = Converter.ChangeType(SalaryCashDateString, DateTime.Today); string ManageFeeCashDateString = RequestHelper.GetValue("ManageFeeCashDate"); DateTime ManageFeeCashDate = Converter.ChangeType(ManageFeeCashDateString, DateTime.Today); string InsuranceCashDateString = RequestHelper.GetValue("InsuranceCashDate"); DateTime InsuranceCashDate = Converter.ChangeType(InsuranceCashDateString, DateTime.Today); string ReserveFundDateString = RequestHelper.GetValue("ReserveFundDate"); DateTime ReserveFundDate = Converter.ChangeType(ReserveFundDateString, DateTime.Today); string GeneralRecruitDateString = RequestHelper.GetValue("GeneralRecruitDate"); DateTime GeneralRecruitDate = Converter.ChangeType(GeneralRecruitDateString, DateTime.Today); string OnceRecruitDateString = RequestHelper.GetValue("OnceRecruitDate"); DateTime OnceRecruitDate = Converter.ChangeType(OnceRecruitDateString, DateTime.Today); string OtherInsuranceCashDateString = RequestHelper.GetValue("OtherInsuranceCashDate"); DateTime OtherInsuranceCashDate = Converter.ChangeType(OtherInsuranceCashDateString, DateTime.Today); string TaxFeeCashDateString = RequestHelper.GetValue("TaxFeeCashDate"); DateTime TaxFeeCashDate = Converter.ChangeType(TaxFeeCashDateString, DateTime.Today); #region 条件判定(如果不满足基本条件直接跳出并提示) if (string.IsNullOrWhiteSpace(salaryDateString)) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "你没有选定薪资月份,请选择。"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } else { salaryDateString = salaryDateString + "/1"; salaryDate = DateTimeHelper.Parse(salaryDateString, DateFormats.YMD); } if (enterpriseGuid == Guid.Empty) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "你没有选定企业的名称信息,请选择。"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } if (HttpPostedFileHelper.HasFile(postedFile) == false) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Warnning; itemError.Message = "没有选择Excel文件,请先选择文件然后再进行导入!"; infoList.Add(itemError); this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); } #endregion try { #region 将数据读入内存 int userCountSuccessful = 0; int userCountFailure = 0; string userListFailure = string.Empty; DataTable dataTable = ExcelHelper.ReadExcel(postedFile.InputStream, headerRowNumber); NameValueCollection laborSalaryItemMapData = (NameValueCollection)ConfigurationManager.GetSection("laborSalaryItemMap"); List<string> columnNameList = new List<string>(); for (int i = 0; i < dataTable.Columns.Count; i++) { columnNameList.Add(dataTable.Columns[i].ColumnName); } #endregion #region 对Excel的每行信息进行解析 for (int i = 0; i < dataTable.Rows.Count; i++) { int dataRowNumberInExcel = headerRowNumber + i + 1; try { DataRow row = dataTable.Rows[i]; if (row == null) { continue; } string LaborUserNameCNForSalarySummary = string.Empty; string LaborUserCodeForSalarySummary = string.Empty; string LaborUserCardIDForSalarySummary = string.Empty; Guid salarySummaryGuid = GuidHelper.NewGuid(); SalarySummaryEntity salarySummaryEntity = new SalarySummaryEntity(); salarySummaryEntity.SalarySummaryGuid = salarySummaryGuid; salarySummaryEntity.SalaryDate = salaryDate; salarySummaryEntity.CreateDate = DateTime.Today; salarySummaryEntity.CreateUserKey = BusinessUserBLL.CurrentUserGuid.ToString(); salarySummaryEntity.EnterpriseKey = enterpriseGuid.ToString(); salarySummaryEntity.SalaryPayStatus = SalaryPayStatuses.PaidToOrgnization; salarySummaryEntity.SalarySettlementStartDate = SettlementStartDate; salarySummaryEntity.SalarySettlementEndDate = SettlementEndDate; foreach (string columnName in columnNameList) { //0.处理特殊的标题头信息 if (columnName.Contains("[忽略]")) { continue; } //1.根据Excel文件中的列名称映射Labor实体的属性名称 string propertyName = laborSalaryItemMapData[columnName]; if (string.IsNullOrWhiteSpace(propertyName)) { propertyName = columnName; } //2.给SalaryDetailsEntity实体属性赋值 object cellValue = row[columnName]; if (cellValue != null) { SalaryDetailsEntity salaryDetailsEntity = new SalaryDetailsEntity(); salaryDetailsEntity.SalarySummaryKey = salarySummaryGuid.ToString(); decimal salaryItemValue = Converter.ChangeType<decimal>(cellValue); string columnNameEdited = columnName; string nagetiveString = "[负值]"; string rebateBeforTaxString = "[先扣]"; string rebaseString = "[后扣]"; bool isRebateBeforeTax = false; if (columnName.Contains(nagetiveString)) { salaryItemValue = 0 - Math.Abs(salaryItemValue); columnNameEdited = columnName.Remove(columnName.IndexOf(nagetiveString), nagetiveString.Length); } if (columnName.Contains(rebateBeforTaxString)) { columnNameEdited = columnNameEdited.Remove(columnNameEdited.IndexOf(rebateBeforTaxString), rebateBeforTaxString.Length); isRebateBeforeTax = true; } if (columnName.Contains(rebaseString)) { columnNameEdited = columnNameEdited.Remove(columnNameEdited.IndexOf(rebaseString), rebaseString.Length); } salaryDetailsEntity.SalaryItemKey = columnNameEdited; switch (propertyName) { case "UserNameCN": LaborUserNameCNForSalarySummary = cellValue.ToString(); break; case "LaborCode": LaborUserCodeForSalarySummary = cellValue.ToString(); break; case "UserCardID": LaborUserCardIDForSalarySummary = cellValue.ToString(); break; case "EnterpriseMixCost": salarySummaryEntity.EnterpriseMixCostReal = salaryItemValue; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseMixCost); break; case "EnterpriseInsurance": salarySummaryEntity.EnterpriseInsuranceReal = salaryItemValue; salarySummaryEntity.InsuranceCashDate = InsuranceCashDate; salaryDetailsEntity.SalaryItemCashDate = InsuranceCashDate; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseInsurance); break; case "EnterpriseReserveFund": salarySummaryEntity.EnterpriseReserveFundReal = salaryItemValue; salarySummaryEntity.ReserveFundCashDate = ReserveFundDate; salaryDetailsEntity.SalaryItemCashDate = ReserveFundDate; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseReserveFund); break; case "EnterpriseManageFee": salarySummaryEntity.EnterpriseManageFeeReal = salaryItemValue; salarySummaryEntity.EnterpriseManageFeeCashDate = ManageFeeCashDate; salaryDetailsEntity.SalaryItemCashDate = ManageFeeCashDate; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseManageFee); break; case "EnterpriseGeneralRecruitFee": salarySummaryEntity.EnterpriseGeneralRecruitFeeReal = salaryItemValue; salarySummaryEntity.EnterpriseGeneralRecruitFeeCashDate = GeneralRecruitDate; salaryDetailsEntity.SalaryItemCashDate = GeneralRecruitDate; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseGeneralRecruitFee); break; case "EnterpriseOnceRecruitFee": salarySummaryEntity.EnterpriseOnceRecruitFeeReal = salaryItemValue; salarySummaryEntity.EnterpriseOnceRecruitFeeCashDate = OnceRecruitDate; salaryDetailsEntity.SalaryItemCashDate = OnceRecruitDate; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseOnceRecruitFee); break; case "PersonMixCost": salarySummaryEntity.PersonMixCostReal = salaryItemValue; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonMixCost); break; case "PersonInsurance": salarySummaryEntity.PersonInsuranceReal = salaryItemValue; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonInsurance); break; case "PersonReserveFund": salarySummaryEntity.PersonReserveFundReal = salaryItemValue; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonReserveFund); break; case "PersonInsuranceAdditional": salarySummaryEntity.PersonOtherCostReal += salaryItemValue; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonalOtherFee); break; case "PersonInsuranceOverdueFee": salarySummaryEntity.PersonOtherCostReal += salaryItemValue; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonalOtherFee); break; case "PersonBorrow": salarySummaryEntity.PersonBorrow = salaryItemValue; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.PersonBorrow); break; case "EnterpriseOtherInsurance": salarySummaryEntity.EnterpriseOtherInsuranceReal += salaryItemValue; salarySummaryEntity.EnterpriseOtherInsuranceCashDate = OtherInsuranceCashDate; salaryDetailsEntity.SalaryItemCashDate = OtherInsuranceCashDate; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseOtherInsurance); break; case "EnterpriseTaxFee": salarySummaryEntity.EnterpriseTaxFeeReal += salaryItemValue; salarySummaryEntity.EnterpriseTaxFeeCashDate = TaxFeeCashDate; salaryDetailsEntity.SalaryItemCashDate = TaxFeeCashDate; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.EnterpriseTaxFee); break; default: if (salaryItemValue >= 0) { salarySummaryEntity.SalaryGrossPay += salaryItemValue; SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.Rewards); } else { if (isRebateBeforeTax == true) { salarySummaryEntity.SalaryRebateBeforeTax += salaryItemValue; } else { salarySummaryEntity.SalaryRebate += salaryItemValue; } SetAndSaveSalaryDetailsItem(salaryItemValue, salaryDetailsEntity, SalaryItemKinds.Rebate); } break; } } } if (string.IsNullOrWhiteSpace(LaborUserNameCNForSalarySummary)) { userCountFailure++; userListFailure += string.Format("{0}({1}({2})({3})请确认此用户的用户名称不可以为空), <br />", dataRowNumberInExcel, LaborUserNameCNForSalarySummary, LaborUserCodeForSalarySummary, LaborUserCardIDForSalarySummary); //物理删除掉已经插入的无效的salaryDetails数据 SalaryDetailsBLL.Instance.DeleteList(salarySummaryEntity.SalarySummaryGuid); } else { //根据人员姓名和工号,确认劳务人员的UserGuid bool isMatchedLabor = false; LaborEntity laborEntity = LaborBLL.Instance.Get(LaborUserNameCNForSalarySummary, LaborUserCodeForSalarySummary, LaborUserCardIDForSalarySummary, enterpriseGuid.ToString()); if (laborEntity.IsEmpty) { isMatchedLabor = false; } else { isMatchedLabor = true; } if (isMatchedLabor == true) { bool isSuccessful = true; SalarySummaryEntity salarySummaryEntityConfirm = SalarySummaryBLL.Instance.Get(enterpriseGuid.ToString(), laborEntity.UserGuid.ToString(), salaryDate); if (salarySummaryEntityConfirm.IsEmpty) { salarySummaryEntity.LaborKey = laborEntity.UserGuid.ToString(); salarySummaryEntity.LaborCode = LaborUserCodeForSalarySummary; salarySummaryEntity.LaborName = LaborUserNameCNForSalarySummary; //Logics isFirstCash = SalarySummaryBLL.Instance.IsFirstCash(enterpriseGuid.ToString(), laborEntity.UserGuid.ToString()); //salarySummaryEntity.IsFirstCash = isFirstCash; isSuccessful = SalarySummaryBLL.Instance.Create(salarySummaryEntity); } else { salarySummaryEntityConfirm.EnterpriseInsuranceReal += salarySummaryEntity.EnterpriseInsuranceReal; salarySummaryEntityConfirm.EnterpriseManageFeeReal += salarySummaryEntity.EnterpriseManageFeeReal; salarySummaryEntityConfirm.EnterpriseReserveFundReal += salarySummaryEntity.EnterpriseReserveFundReal; salarySummaryEntityConfirm.EnterpriseOtherCostReal += salarySummaryEntity.EnterpriseOtherCostReal; salarySummaryEntityConfirm.EnterpriseMixCostReal += salarySummaryEntity.EnterpriseMixCostReal; salarySummaryEntityConfirm.PersonInsuranceReal += salarySummaryEntity.PersonInsuranceReal; salarySummaryEntityConfirm.PersonManageFeeReal += salarySummaryEntity.PersonManageFeeReal; salarySummaryEntityConfirm.PersonReserveFundReal += salarySummaryEntity.PersonReserveFundReal; salarySummaryEntityConfirm.PersonOtherCostReal += salarySummaryEntity.PersonOtherCostReal; salarySummaryEntityConfirm.PersonMixCostReal += salarySummaryEntity.PersonMixCostReal; salarySummaryEntityConfirm.SalaryGrossPay += salarySummaryEntity.SalaryGrossPay; salarySummaryEntityConfirm.SalaryRebate += salarySummaryEntity.SalaryRebate; isSuccessful = SalarySummaryBLL.Instance.Update(salarySummaryEntityConfirm); } if (isSuccessful == true) { userCountSuccessful++; } else { userCountFailure++; userListFailure += i + ", "; } } else { userCountFailure++; userListFailure += string.Format("{0}({1}({2})({3})请确认此用户的用户名称、工号和身份证号是否跟系统内的数据一致), <br />", dataRowNumberInExcel, LaborUserNameCNForSalarySummary, LaborUserCodeForSalarySummary, LaborUserCardIDForSalarySummary); //物联删除掉已经插入的无效的salaryDetails数据 SalaryDetailsBLL.Instance.DeleteList(salarySummaryEntity.SalarySummaryGuid); } } } catch (Exception ex) { //try //{ // BusinessLogEntity log = new BusinessLogEntity(); // log.LogCategory = "BatchSalaryImport"; // log.LogMessage = ExceptionHelper.GetExceptionMessage(ex); // log.LogDate = DateTime.Now; // BusinessLogBLL.Instance.Create(log); //} //catch //{ // //do nothing; //} userCountFailure++; userListFailure += i + ", "; } } #endregion #region 操作结果展示 //A.1、操作结果(导入成功的人员信息) SystemStatusInfo itemSuccessful = new SystemStatusInfo(); itemSuccessful.SystemStatus = SystemStatuses.Success; itemSuccessful.Message = string.Format("共有{0}人导入成功。", userCountSuccessful); infoList.Add(itemSuccessful); //A.2、操作结果(导入失败的人员信息) if (userCountFailure > 0) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = string.Format("共有{0}人导入失败。", userCountFailure); if (string.IsNullOrWhiteSpace(userListFailure) == false) { itemError.Message += string.Format("导入失败的人员分别位于{0}行, <br />", userListFailure); } infoList.Add(itemError); } #endregion } catch (OfficeXmlFileException) { SystemStatusInfo itemError = new SystemStatusInfo(); itemError.SystemStatus = SystemStatuses.Failuer; itemError.Message = "请选择Excel2003格式的文件。你可以将本文件在Excel中另存的时候选择97/2003格式!"; infoList.Add(itemError); } this.TempData.Add("OperationResultData", infoList); return RedirectToAction("OperationResults", "System", new { returnUrl = returnUrl }); }