/// <summary> /// 保存表单(新增、修改) /// </summary> /// <param name="keyValue">主键值</param> /// <param name="entity">实体对象</param> /// <returns></returns> public void SaveForm(string keyValue, BaseListingEntity entity) { try { service.SaveForm(keyValue, entity); } catch (Exception) { throw; } }
public ActionResult SaveForm(string keyValue, BaseListingEntity entity) { try { //---****判断系统是否已经存在该作业活动、活动步骤的数据*****-- Expression <Func <BaseListingEntity, bool> > condition = t => t.Name == entity.Name && t.ActivityStep == entity.ActivityStep && t.Type == 0 && t.PostId == entity.PostId; if (baselistingbll.GetList(condition).Count() > 0) { return(Error("存在该作业活动、活动步骤、岗位的数据,无法重复添加。")); } baselistingbll.SaveForm(keyValue, entity); return(Success("操作成功。")); } catch (Exception ex) { return(Error(ex.ToString())); } }
public string ImportData() { try { if (OperatorProvider.Provider.Current().IsSystem) { return("超级管理员无此操作权限"); } var currUser = OperatorProvider.Provider.Current(); string orgId = OperatorProvider.Provider.Current().OrganizeId;//所属公司 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 = new DataTable(); if (cells.MaxDataRow > 1) { dt = cells.ExportDataTable(1, 0, cells.MaxDataRow, cells.MaxColumn + 1, true); #region 作业活动类 for (int i = 0; i < dt.Rows.Count; i++) { //用于数据验证填报部门 string deptlist = dt.Rows[i]["填报单位"].ToString().Trim(); string controlDept = currUser.DeptName; //管控部门 string controlDeptId = currUser.DeptId; //管控部门 string controlDeptCode = currUser.DeptCode; //管控部门 //岗位(工种) string Post = dt.Rows[i]["岗位(工种)"].ToString().Trim(); string PostId = string.Empty; //作业活动 string Name = dt.Rows[i]["作业活动"].ToString().Trim(); //活动步骤 string ActivityStep = dt.Rows[i]["活动步骤"].ToString().Trim(); //常规/非常规 string IsConventional = dt.Rows[i]["常规/非常规"].ToString().Trim(); //其他 string Others = dt.Rows[i]["其他"].ToString().Trim(); //---****值存在空验证*****-- if (string.IsNullOrEmpty(Name) || string.IsNullOrEmpty(ActivityStep) || string.IsNullOrEmpty(IsConventional) || string.IsNullOrWhiteSpace(Post)) { falseMessage += "</br>" + "第" + (i + 2) + "行值存在空,未能导入."; error++; continue; } var p1 = string.Empty; var p2 = string.Empty; bool isSkip = false; //验证所填部门是否存在 if (!string.IsNullOrWhiteSpace(deptlist)) { var array = deptlist.Split('/'); for (int j = 0; j < array.Length; j++) { if (j == 0) { var entity = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && x.Nature == "厂级" && x.FullName == array[j].ToString()).FirstOrDefault(); if (entity == null) { entity = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && x.Nature == "部门" && x.FullName == array[j].ToString()).FirstOrDefault(); if (entity == null) { entity = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && x.Nature == "承包商" && x.FullName == array[j].ToString()).FirstOrDefault(); if (entity == null) { falseMessage += "</br>" + "第" + (i + 2) + "行部门信息不存在,未能导入."; error++; isSkip = true; break; } else { controlDept = entity.FullName; controlDeptId = entity.DepartmentId; controlDeptCode = entity.EnCode; p1 = entity.DepartmentId; } } else { controlDept = entity.FullName; controlDeptId = entity.DepartmentId; controlDeptCode = entity.EnCode; p1 = entity.DepartmentId; } } else { controlDept = entity.FullName; controlDeptId = entity.DepartmentId; controlDeptCode = entity.EnCode; p1 = entity.DepartmentId; } } else if (j == 1) { var entity1 = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && (x.Nature == "专业" || x.Nature == "承包商" || x.Nature == "分包商") && x.FullName == array[j].ToString() && x.ParentId == p1).FirstOrDefault(); if (entity1 == null) { entity1 = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && x.Nature == "班组" && x.FullName == array[j].ToString() && x.ParentId == p1).FirstOrDefault(); if (entity1 == null) { falseMessage += "</br>" + "第" + (i + 2) + "行部门信息不存在,未能导入."; error++; isSkip = true; break; } else { controlDept = entity1.FullName; controlDeptId = entity1.DepartmentId; controlDeptCode = entity1.EnCode; p2 = entity1.DepartmentId; } } else { controlDept = entity1.FullName; controlDeptId = entity1.DepartmentId; controlDeptCode = entity1.EnCode; p2 = entity1.DepartmentId; } } else { var entity1 = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && (x.Nature == "班组" || x.Nature == "承包商" || x.Nature == "分包商") && x.FullName == array[j].ToString() && x.ParentId == p2).FirstOrDefault(); if (entity1 == null) { falseMessage += "</br>" + "第" + (i + 2) + "行部门信息不存在,未能导入."; error++; isSkip = true; break; } else { controlDept = entity1.FullName; controlDeptId = entity1.DepartmentId; controlDeptCode = entity1.EnCode; } } } } if (isSkip) { continue; } //验证岗位是不是在部门里面 var controldept = departmentBLL.GetEntity(controlDeptId); RoleEntity re = new RoleEntity(); if (controldept.Nature == "厂级") { re = postBLL.GetList().Where(a => (a.FullName == Post && a.OrganizeId == orgId)).FirstOrDefault(); } else { re = postBLL.GetList().Where(a => (a.FullName == Post && a.OrganizeId == orgId && a.DeptId == controlDeptId)).FirstOrDefault(); } if (re == null) { falseMessage += "</br>" + "第" + (i + 2) + "行岗位有误,未能导入."; error++; continue; } else { PostId = re.RoleId; } //---****判断系统是否已经存在该作业活动、活动步骤的数据*****-- Expression <Func <BaseListingEntity, bool> > condition = t => t.Name == Name && t.ActivityStep == ActivityStep && t.Type == 0 && t.PostId == PostId; if (baselistingbll.GetList(condition).Count() > 0) { falseMessage += "</br>" + "第" + (i + 2) + "行数据已经存在于系统中,无需添加."; error++; continue; } BaseListingEntity Listingentity = new BaseListingEntity(); Listingentity.Name = Name; Listingentity.ActivityStep = ActivityStep; Listingentity.IsConventional = IsConventional == "常规" ? 0 : 1; Listingentity.Others = Others; Listingentity.CreateUserDeptCode = string.IsNullOrWhiteSpace(deptlist) ? currUser.DeptCode : controlDeptCode; Listingentity.ControlsDept = controlDept; Listingentity.ControlsDeptId = controlDeptId; Listingentity.ControlsDeptCode = controlDeptCode; Listingentity.Type = 0; Listingentity.Post = Post; Listingentity.PostId = PostId; condition = t => t.Name == Name && !(t.AreaName == null || t.AreaName.Trim() == ""); var defualt = baselistingbll.GetList(condition).ToList().FirstOrDefault(); Listingentity.AreaName = defualt == null ? "" : defualt.AreaName; Listingentity.AreaId = defualt == null ? "" : defualt.AreaId; Listingentity.AreaCode = defualt == null ? "" : defualt.AreaCode; Listingentity.CreateDate = DateTime.Now.AddSeconds(i); baselistingbll.SaveForm("", Listingentity); } count = dt.Rows.Count; message = "作业活动类共有" + count + "条记录,成功导入" + (count - error) + "条,失败" + error + "条"; message += "</br>" + falseMessage + "</br>"; #endregion } else { message = "作业活动类没有数据。</br>"; } error = 0; falseMessage = ""; cells = wb.Worksheets[1].Cells; if (cells.MaxDataRow > 1) { #region 设备设施类 dt = cells.ExportDataTable(1, 0, cells.MaxDataRow, cells.MaxColumn + 1, true); for (int i = 0; i < dt.Rows.Count; i++) { //用于数据验证填报部门 string deptlist = dt.Rows[i]["填报单位"].ToString().Trim(); string controlDept = currUser.DeptName; //管控部门 string controlDeptId = currUser.DeptId; //管控部门 string controlDeptCode = currUser.DeptCode; //管控部门 //设备名称 string Name = dt.Rows[i]["设备名称"].ToString().Trim(); //所在地点 string arealist = dt.Rows[i]["所在地点"].ToString().Trim(); //是否特种设备 string IsSpecialEqu = dt.Rows[i]["是否特种设备"].ToString().Trim(); //其他 string Others = dt.Rows[i]["其他"].ToString().Trim(); string AreaName = string.Empty; //所在地点名称 string AreaId = string.Empty; //所在地点Id string AreaCode = string.Empty; //所在地点Code //---****值存在空验证*****-- if (string.IsNullOrEmpty(Name) || string.IsNullOrEmpty(arealist) || string.IsNullOrEmpty(IsSpecialEqu)) { falseMessage += "</br>" + "第" + (i + 2) + "行值存在空,未能导入."; error++; continue; } var p1 = string.Empty; var p2 = string.Empty; bool isSkip = false; //验证所填部门是否存在 if (!string.IsNullOrWhiteSpace(deptlist)) { var array = deptlist.Split('/'); for (int j = 0; j < array.Length; j++) { if (j == 0) { var entity = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && x.Nature == "厂级" && x.FullName == array[j].ToString()).FirstOrDefault(); if (entity == null) { entity = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && x.Nature == "部门" && x.FullName == array[j].ToString()).FirstOrDefault(); if (entity == null) { entity = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && x.Nature == "承包商" && x.FullName == array[j].ToString()).FirstOrDefault(); if (entity == null) { falseMessage += "</br>" + "第" + (i + 2) + "行部门信息不存在,未能导入."; error++; isSkip = true; break; } else { controlDept = entity.FullName; controlDeptId = entity.DepartmentId; controlDeptCode = entity.EnCode; p1 = entity.DepartmentId; } } else { controlDept = entity.FullName; controlDeptId = entity.DepartmentId; controlDeptCode = entity.EnCode; p1 = entity.DepartmentId; } } else { controlDept = entity.FullName; controlDeptId = entity.DepartmentId; controlDeptCode = entity.EnCode; p1 = entity.DepartmentId; } } else if (j == 1) { var entity1 = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && (x.Nature == "专业" || x.Nature == "承包商" || x.Nature == "分包商") && x.FullName == array[j].ToString() && x.ParentId == p1).FirstOrDefault(); if (entity1 == null) { entity1 = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && x.Nature == "班组" && x.FullName == array[j].ToString() && x.ParentId == p1).FirstOrDefault(); if (entity1 == null) { falseMessage += "</br>" + "第" + (i + 2) + "行部门信息不存在,未能导入."; error++; isSkip = true; break; } else { controlDept = entity1.FullName; controlDeptId = entity1.DepartmentId; controlDeptCode = entity1.EnCode; p2 = entity1.DepartmentId; } } else { controlDept = entity1.FullName; controlDeptId = entity1.DepartmentId; controlDeptCode = entity1.EnCode; p2 = entity1.DepartmentId; } } else { var entity1 = departmentBLL.GetList().Where(x => x.OrganizeId == currUser.OrganizeId && (x.Nature == "班组" || x.Nature == "承包商" || x.Nature == "分包商") && x.FullName == array[j].ToString() && x.ParentId == p2).FirstOrDefault(); if (entity1 == null) { falseMessage += "</br>" + "第" + (i + 2) + "行部门信息不存在,未能导入."; error++; isSkip = true; break; } else { controlDept = entity1.FullName; controlDeptId = entity1.DepartmentId; controlDeptCode = entity1.EnCode; } } } } if (isSkip) { continue; } //验证所在地点(区域) var disItem = new DistrictBLL().GetListForCon(x => x.DistrictName == arealist && x.OrganizeId == currUser.OrganizeId).FirstOrDefault(); if (disItem != null) { AreaId = disItem.DistrictID; AreaCode = disItem.DistrictCode; AreaName = disItem.DistrictName; } else { falseMessage += "</br>" + "第" + (i + 2) + "行所在地点信息与系统内置的区域不一致,未能导入."; error++; continue; } //---****判断系统是否已经存在该设备名称、所在地点的数据*****-- Expression <Func <BaseListingEntity, bool> > condition = t => t.Name == Name && t.AreaId == AreaId && t.Type == 1; if (baselistingbll.GetList(condition).Count() > 0) { falseMessage += "</br>" + "第" + (i + 2) + "行数据已经存在于系统中,无需添加."; error++; continue; } BaseListingEntity Listingentity = new BaseListingEntity(); Listingentity.Name = Name; Listingentity.AreaCode = AreaCode; Listingentity.AreaId = AreaId; Listingentity.AreaName = AreaName; Listingentity.IsSpecialEqu = IsSpecialEqu == "是" ? 0 : 1; Listingentity.Others = Others; Listingentity.CreateUserDeptCode = string.IsNullOrWhiteSpace(deptlist) ? currUser.DeptCode : controlDeptCode; Listingentity.ControlsDept = controlDept; Listingentity.ControlsDeptId = controlDeptId; Listingentity.ControlsDeptCode = controlDeptCode; Listingentity.Type = 1; Listingentity.CreateDate = DateTime.Now.AddSeconds(i); baselistingbll.SaveForm("", Listingentity); } count = dt.Rows.Count; message += "设备设施类共有" + count + "条记录,成功导入" + (count - error) + "条,失败" + error + "条"; message += "</br>" + falseMessage; #endregion } else { message += "设备设施类没有数据。</br>"; } } return(message); } catch (Exception ex) { return(ex.ToString()); } }