/// <summary> /// 保存表单(新增、修改) /// </summary> /// <param name="keyValue">主键值</param> /// <param name="entity">实体对象</param> /// <returns></returns> public void SaveForm(string keyValue, SafetyMeshEntity entity) { try { service.SaveForm(keyValue, entity); } catch (Exception) { throw; } }
public ActionResult SaveForm(string keyValue, SafetyMeshEntity entity) { try { SafetyMeshbll.SaveForm(keyValue, entity); return(Success("操作成功。")); } catch (Exception ex) { return(Error(ex.Message)); } }
public string ImportData() { var user = OperatorProvider.Provider.Current();//所属公司 int error = 0; string message = "请选择格式正确的文件再导入!"; string falseMessage = ""; int count = HttpContext.Request.Files.Count; if (count > 0) { HttpPostedFileBase file = HttpContext.Request.Files[0]; if (string.IsNullOrEmpty(file.FileName)) { return(message); } if (!(file.FileName.Substring(file.FileName.IndexOf('.')).Contains("xls") || file.FileName.Substring(file.FileName.IndexOf('.')).Contains("xlsx"))) { return(message); } string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + System.IO.Path.GetExtension(file.FileName); file.SaveAs(Server.MapPath("~/Resource/temp/" + fileName)); Aspose.Cells.Workbook wb = new Aspose.Cells.Workbook(); wb.Open(Server.MapPath("~/Resource/temp/" + fileName)); Aspose.Cells.Cells cells = wb.Worksheets[0].Cells; DataTable dt = cells.ExportDataTable(0, 0, cells.MaxDataRow + 1, cells.MaxColumn + 1, true); string orgid = OperatorProvider.Provider.Current().OrganizeId; int order = 2; for (int i = 1; i < dt.Rows.Count; i++) { SafetyMeshEntity item = new SafetyMeshEntity(); order++; #region 网格名称 string MeshName = dt.Rows[i][0].ToString(); if (!string.IsNullOrEmpty(MeshName)) { item.MeshName = MeshName; } else { falseMessage += string.Format(@"第{0}行导入失败,网格名称不能为空!</br>", order); error++; continue; } #endregion #region 关联区域 string District = dt.Rows[i][1].ToString(); bool flag = false; if (!string.IsNullOrEmpty(District)) { string DistrictIdStr = ""; string DistrictStr = ""; string[] districtArr = District.Split(','); foreach (string district in districtArr) { var disItem = new DistrictBLL().GetListForCon(x => x.DistrictName == district.Trim() && x.OrganizeId == orgid).FirstOrDefault(); if (disItem != null) { DistrictIdStr += disItem.DistrictID + ","; DistrictStr += district.Trim() + ","; } else { falseMessage += string.Format(@"第{0}行导入失败,关联区域[" + district + "]不存在!</br>", order); error++; flag = true; continue; } } item.DistrictId = DistrictIdStr.TrimEnd(','); item.District = DistrictStr.TrimEnd(','); } if (flag) { continue; } #endregion #region 级网格名称 string Superior = dt.Rows[i][2].ToString(); if (!string.IsNullOrEmpty(Superior)) { var disItem = SafetyMeshbll.GetListForCon(x => x.MeshName == Superior.Trim() && x.CreateUserOrgCode == user.OrganizeCode).FirstOrDefault(); if (disItem != null) { item.SuperiorId = disItem.Id; item.SuperiorName = disItem.MeshName; if (disItem.MeshRank == "1") { item.MeshRank = "2"; } if (disItem.MeshRank == "2") { item.MeshRank = "3"; } if (disItem.MeshRank == "3") { item.MeshRank = "4"; } if (disItem.MeshRank == "4") { falseMessage += string.Format(@"第{0}行导入失败,上级网格名称[" + Superior + "]为微级网格!</br>", order); error++; continue; } var list = SafetyMeshbll.GetListForCon(x => x.MeshName == item.MeshName && x.SuperiorId == item.SuperiorId && x.CreateUserOrgCode == user.OrganizeCode).ToList(); bool IsOk = list.Count() == 0 ? true : false; if (!IsOk) { falseMessage += string.Format(@"第{0}行导入失败,网格名称[" + item.MeshName + "]在[" + item.SuperiorName + "]下级存在重名!</br>", order); error++; continue; } } else { falseMessage += string.Format(@"第{0}行导入失败,上级网格名称[" + Superior + "]不存在!</br>", order); error++; continue; } } else { item.MeshRank = "1"; var list = SafetyMeshbll.GetListForCon(x => x.MeshName == item.MeshName && x.MeshRank == "1" && x.CreateUserOrgCode == user.OrganizeCode).ToList(); bool IsOk = list.Count() == 0 ? true : false; if (!IsOk) { falseMessage += string.Format(@"第{0}行导入失败,网格名称[" + item.MeshName + "]存在重名!</br>", order); error++; continue; } } #endregion #region 责任人 string DutyUser = dt.Rows[i][3].ToString(); if (!string.IsNullOrEmpty(DutyUser)) { string DutyUserIdStr = ""; string DutyUserStr = ""; string[] userArr = DutyUser.Split(','); foreach (string useritem in userArr) { if (!string.IsNullOrEmpty(useritem.Trim())) { string[] Arr = useritem.Split('/'); if (Arr.Count() == 1) { var userList = new UserBLL().GetListForCon(x => x.RealName == useritem.Trim() && x.OrganizeId == orgid).ToList(); if (userList.Count == 1) { var userEntity = userList.FirstOrDefault(); DutyUserIdStr += userEntity.UserId + ","; DutyUserStr += useritem.Trim() + ","; } else if (userList.Count > 1) { falseMessage += string.Format(@"第{0}行导入失败,责任人[" + useritem + "]重名,请按格式[姓名/账号]重新填写!</br>", order); error++; flag = true; break; } else { falseMessage += string.Format(@"第{0}行导入失败,责任人[" + useritem + "]不存在!</br>", order); error++; flag = true; break; } } else if (Arr.Count() == 2) { string name = Arr[0].Trim(); string account = Arr[1].Trim(); var userEntity2 = new UserBLL().GetListForCon(x => x.RealName == name && x.Account == account && x.OrganizeId == orgid).FirstOrDefault(); if (userEntity2 != null) { DutyUserIdStr += userEntity2.UserId + ","; DutyUserStr += userEntity2.RealName + ","; } else { falseMessage += string.Format(@"第{0}行导入失败,责任人[" + Arr[0].Trim() + "]帐号[" + Arr[1].Trim() + "]不存在!</br>", order); error++; flag = true; break; } } else { falseMessage += string.Format(@"第{0}行导入失败,责任人[" + useritem + "]输入格式有误!</br>", order); error++; flag = true; break; } } } item.DutyUserId = DutyUserIdStr.TrimEnd(','); item.DutyUser = DutyUserStr.TrimEnd(','); } else { falseMessage += string.Format(@"第{0}行导入失败,责任人不能为空!</br>", order); error++; flag = true; break; } if (flag) { continue; } #endregion #region 联系电话 string DutyTel = dt.Rows[i][4].ToString(); if (!string.IsNullOrEmpty(DutyTel)) { item.DutyTel = DutyTel; } #endregion #region 排序 string SortCode = dt.Rows[i][5].ToString(); int tempSortCode; if (!string.IsNullOrEmpty(SortCode)) { if (int.TryParse(SortCode, out tempSortCode)) { item.SortCode = tempSortCode; } else { falseMessage += string.Format(@"第{0}行导入失败,网格排序必须为数字!</br>", order); error++; continue; } } #endregion #region 工作职责 string WorkJob = dt.Rows[i][6].ToString(); if (!string.IsNullOrEmpty(WorkJob)) { item.WorkJob = WorkJob; } #endregion try { SafetyMeshbll.SaveForm("", item); } catch { error++; } } count = dt.Rows.Count - 1; message = "共有" + count + "条记录,成功导入" + (count - error) + "条,失败" + error + "条"; message += "</br>" + falseMessage; } return(message); }