/// <summary> /// 插入一条记录 /// </summary> /// <param name="entity"></param> /// <returns></returns> public void Insert(ReturnFeeEntity entity) { if (string.IsNullOrEmpty(entity.iGuid)) { entity.iGuid = Guid.NewGuid().ToString(); } entity.iCreatedOn = DateTime.Now; entity.iUpdatedOn = DateTime.Now; entity.iIsDeleted = 0; entity.iStatus = 1; IDbSession session = SessionFactory.CreateSession(); try { session.BeginTrans(); Repository.Insert <ReturnFeeEntity>(session.Connection, entity, session.Transaction); session.Commit(); } catch (System.Exception) { session.Rollback(); throw; } finally { session.Dispose(); } }
public string SaveChanges(string jsonString) { try { JsonSerializerSettings st = new JsonSerializerSettings(); st.DateTimeZoneHandling = DateTimeZoneHandling.Local; ReturnFeeEntity entity = JsonConvert.DeserializeObject <ReturnFeeEntity>(jsonString, st); ReturnFeeManager service = new ReturnFeeManager(); if (string.IsNullOrEmpty(entity.iGuid)) { entity.iCreatedBy = SessionHelper.CurrentUser.UserName; entity.iUpdatedBy = SessionHelper.CurrentUser.UserName; service.Insert(entity); } else { entity.iUpdatedBy = SessionHelper.CurrentUser.UserName; service.Update(entity); } return("success"); } catch (Exception e) { return(e.ToString()); } }
public void Update(ReturnFeeEntity entity) { entity.iUpdatedOn = DateTime.Now; IDbSession session = SessionFactory.CreateSession(); try { session.BeginTrans(); Repository.Update <ReturnFeeEntity>(session.Connection, entity, session.Transaction); session.Commit(); } catch (System.Exception) { session.Rollback(); throw; } finally { session.Dispose(); } }
private List <ReturnFeeEntity> ExcelSheetToEntityList(ISheet sheet, ref string errorLog) { //需要验证权限,如果是普通用户,不能导入已存在的返回信息。 DicManager dm = new DicManager(); var companies = dm.GetAllCompanies(); var projects = dm.GetAllProjects(); ReturnFeeManager service = new ReturnFeeManager(); List <ReturnFeeEntity> list = new List <ReturnFeeEntity>(); Dictionary <string, string> keycolumnp = ReturnFeeManager.ReturnFeeDic; Dictionary <string, int> keycolumns = new Dictionary <string, int>(); for (int co = 0; co < sheet.GetRow(0).LastCellNum; co++) { if (keycolumnp.ContainsKey(sheet.GetRow(0).GetCell(co).ToString().Trim())) { keycolumns.Add(keycolumnp[sheet.GetRow(0).GetCell(co).ToString().Trim()], co); } } //遍历数据行 for (int i = (sheet.FirstRowNum + 1), len = sheet.LastRowNum + 1; i < len; i++) { CompanyEntity currentCompany = null; ProjectEntity currentProject = null; ReturnFeeEntity en = new ReturnFeeEntity(); try { string project = sheet.GetRow(i).GetCell(keycolumns["iItemName"]).ToString().Trim(); string company = sheet.GetRow(i).GetCell(keycolumns["iCompany"]).ToString().Trim(); string empcode = sheet.GetRow(i).GetCell(keycolumns["iEmpNo"]).ToString().Trim(); string idcard = sheet.GetRow(i).GetCell(keycolumns["iIdCard"]).ToString().Trim(); if (string.IsNullOrEmpty(empcode)) { errorLog += "第【" + (i + 1).ToString() + "】行工号不能为空,临时工用-;"; } if (!CheckIDCard18(idcard)) { errorLog += "第【" + (i + 1).ToString() + "】行身份证号不合法;"; } currentCompany = companies.FirstOrDefault(pj => pj.iName == company); currentProject = projects.FirstOrDefault(pj => pj.iName == project); if (currentCompany == null || currentProject == null) { if (currentCompany == null) { errorLog += "第【" + (i + 1).ToString() + "】行公司名称不存在;"; } if (currentProject == null) { errorLog += "第【" + (i + 1).ToString() + "】行项目名称不存在;"; } if (SessionHelper.CurrentUser.UserType == "普通用户" && currentProject.iGuid != SessionHelper.CurrentUser.CurrentProject) { errorLog += "第【" + (i + 1).ToString() + "】行只能导入您当前所在的项目;"; } } else { string hrId = service.GetValidReturnFeeHrId(currentCompany.iGuid, empcode, idcard, currentProject.iGuid); if (string.IsNullOrEmpty(hrId)) { errorLog += "第【" + (i + 1).ToString() + "】行在人事里的当前项目中没有给出返费信息;"; } else { en = service.FirstOrDefault(hrId); if (en == null) { en = new ReturnFeeEntity(); en.iHRInfoGuid = hrId; } else { if (SessionHelper.CurrentUser.UserType == "普通用户") { errorLog += "第【" + (i + 1).ToString() + "】行已编辑过,您无权限再修改,请联系管理员!;"; } } } } } catch { errorLog += "第【" + (i + 1).ToString() + "】行所在公司,工号,身份证号不能有缺失;"; } foreach (var kvp in keycolumns) { if (sheet.GetRow(i).GetCell(kvp.Value) == null || sheet.GetRow(i).GetCell(kvp.Value).ToString() == "" || en.GetType().GetProperty(kvp.Key) == null) { //en.GetType().GetProperty(kvp.Key).SetValue(en, null, null); //空的不填写,保持原数据不变 ,没有该属性就忽略 } else { object value = null; ICell cell = sheet.GetRow(i).GetCell(kvp.Value); if (cell.CellType == CellType.Blank) { value = ""; } else { string propertyName = en.GetType().GetProperty(kvp.Key).PropertyType.FullName.ToLower(); if (cell.CellType == CellType.Numeric && HSSFDateUtil.IsCellDateFormatted(cell)) { try { value = sheet.GetRow(i).GetCell(kvp.Value).DateCellValue; } catch (Exception ex) { errorLog += "第【" + (i + 1).ToString() + "】行,第【" + (kvp.Value + 1).ToString() + "】列不是标准日期格式;"; } if (!propertyName.Contains("datetime") && value != null) { value = ((DateTime)value).ToString("yyyy-MM-dd"); } } else { value = sheet.GetRow(i).GetCell(kvp.Value).ToString().Trim(); if (propertyName.Contains("datetime") && value != null) { DateTime dt = DateTime.Now; if (DateTime.TryParse(value.ToString(), out dt)) { value = dt; } else { errorLog += "第【" + (i + 1).ToString() + "】行,第【" + (kvp.Value + 1).ToString() + "】列不是标准日期格式;"; } } } } en.GetType().GetProperty(kvp.Key).SetValue(en, value, null); } } string[] paidArray = { "已付", "未付" }; Dictionary <string, string[]> checkdic = new Dictionary <string, string[]>(); checkdic.Add("一级付款情况$iFirstReturnFeePayment", paidArray); checkdic.Add("二级付款情况$iSecondReturnFeePayment", paidArray); checkdic.Add("三级付款情况$iThirdReturnFeePayment", paidArray); checkdic.Add("四级付款情况$iFourthReturnFeePayment", paidArray); checkdic.Add("五级付款情况$iFifthReturnFeePayment", paidArray); //是否有效校验 foreach (var item in checkdic) { foreach (var subitem in item.Key.Split('|')) { PropertyInfo property = en.GetType().GetProperty(subitem.Split('$')[1]); if (property.GetValue(en, null) != null && property.GetValue(en, null).ToString() != "" && !item.Value.Contains(property.GetValue(en, null))) { errorLog += "第【" + (i + 1).ToString() + "】行" + subitem.Split('$')[0] + "不合法,只能输入【"; foreach (var value in item.Value) { errorLog += value + ","; } errorLog = errorLog.TrimEnd(','); errorLog += "】;"; } } } list.Add(en); } return(list); }