public ActionResult SaveForm(string keyValue, HazardfactorsEntity entity, string UserName, string UserId) { try { string[] RiskValueList = entity.RiskValue.Split('|'); string[] RiskIdList = entity.Riskid.Split('|'); List <HazardfactorsEntity> list = new List <HazardfactorsEntity>(); for (int i = 0; i < RiskValueList.Length; i++) { HazardfactorsEntity temp = new HazardfactorsEntity(); temp = JsonConvert.DeserializeObject <HazardfactorsEntity>(JsonConvert.SerializeObject(entity)); temp.Riskid = RiskIdList[i]; temp.RiskValue = RiskValueList[i]; list.Add(temp); } Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); foreach (var item in list) { if (hazardfactorsbll.ExistDeptJugement(item.AreaValue, user.OrganizeCode, item.RiskValue)) { hazardfactorsbll.SaveForm(keyValue, item, UserName, UserId); } } return(Success("1")); } catch (Exception ex) { return(Error(ex.ToString())); } }
/// <summary> /// 保存表单(新增、修改) /// </summary> /// <param name="keyValue">主键值</param> /// <param name="entity">实体对象</param> /// <returns></returns> public void SaveForm(string keyValue, HazardfactorsEntity entity, string UserName, string UserId) { try { service.SaveForm(keyValue, entity, UserName, UserId); } catch (Exception) { throw; } }
/// <summary> /// 从风险清单加入数据 /// </summary> /// <param name="Areaid">区域id</param> /// <param name="AreaValue">区域名称</param> /// <param name="RiskValue">危险源名称</param> public void Add(string Areaid, string AreaValue, string RiskValue) { try { if (service.ExistAreaidJugement(Areaid, OperatorProvider.Provider.Current().OrganizeCode, RiskValue)) //没有重复就添加数据 { string RiskId = service.IsRisk("Risk", RiskValue); if (RiskId != "") { HazardfactorsEntity entity = new HazardfactorsEntity(); entity.AreaId = Areaid; entity.AreaValue = AreaValue; entity.Riskid = RiskId; entity.RiskValue = RiskValue; //service.SaveForm("", entity); } } } catch (Exception) { throw; } }
public string ImportDept() { 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)); DataTable dt = ExcelHelper.ExcelImport(Server.MapPath("~/Resource/temp/" + fileName)); int order = 1; //先获取字典 DataItemBLL di = new DataItemBLL(); DistrictBLL districtbll = new DistrictBLL(); IEnumerable <DataItemDetailEntity> ReskList = di.GetList("Risk"); IEnumerable <DistrictEntity> AreaList = districtbll.GetOrgList(OperatorProvider.Provider.Current().OrganizeId); Expression <Func <UserEntity, bool> > condition; if (OperatorProvider.Provider.Current().IsSystem) { condition = it => it.Account != "System" && it.IsPresence == "1";//如果是管理员 } else { string orgid = OperatorProvider.Provider.Current().OrganizeId; condition = it => it.Account != "System" && it.IsPresence == "1" && it.OrganizeId == orgid;//不是管理员则查到所有本机构下的用户 } //先获取到该用户下可以选择的用户 List <UserEntity> userlist = new UserBLL().GetListForCon(condition).ToList(); for (int i = 1; i < dt.Rows.Count; i++) { //区域 string AreaName = dt.Rows[i][0].ToString(); string AreaValue = ""; //危险源 string RiskName = dt.Rows[i][1].ToString();//危险源名称 Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); //验证同一公司范围内是否有重复数据 if (!hazardfactorsbll.ExistDeptJugement(AreaName, user.OrganizeCode, RiskName)) { falseMessage += "</br>" + "第" + (i + 2) + "行数据存在重复,未能导入."; error++; continue; } //验证区域是否有匹配项 if (!GetAreaIsTrue(AreaList, AreaName.Trim(), out AreaValue)) { falseMessage += "</br>" + "第" + (i + 2) + "行值区域值不在可选范围内,未能导入."; error++; continue; } string RiskValue = ""; //if (Risks.Length == 0) //{ // falseMessage += "</br>" + "第" + (i + 2) + "行值职业病危害因素名称值为空,未能导入."; // error++; // continue; //} if (!GetIsTrue(ReskList, RiskName, out RiskValue)) { falseMessage += "</br>" + "第" + (i + 2) + "行值职业病危害因素名称值不在可选范围内,未能导入."; error++; continue; } ////危险源 //string Num = dt.Rows[i][2].ToString();//接触人数量 //string pattern = "^[0-9]+$"; //int Contactnumber = 0; ////验证是否是数字 //if (Regex.IsMatch(Num, pattern)) //{ // Contactnumber = Convert.ToInt32(Num); //} //else if (Num.Trim() == "") //{ //} //else //{ // falseMessage += "</br>" + "第" + (i + 2) + "行值接触人数只能填写数字或者不填,值类型错误,未能导入."; // error++; // continue; //} string users = dt.Rows[i][2].ToString(); if (users.Trim() == "") { falseMessage += "</br>" + "第" + (i + 2) + "行值接触人员不能为空,未能导入."; error++; continue; } users = users.Replace(',', ',');//把所有大写,替换成小写, string[] uses = users.Split(','); string userids = ""; string errorname = ""; for (int j = 0; j < uses.Length; j++) { UserEntity ue = userlist.Where(it => it.RealName == uses[j]).FirstOrDefault(); if (ue == null)//如果用户不存在 { if (errorname == "") { errorname = uses[j]; } else { errorname += "," + uses[j]; } continue; } if (j == 0) { userids = ue.UserId; } else { userids += "," + ue.UserId; } } if (errorname.Trim() != "") { falseMessage += "</br>" + "第" + (i + 2) + "行值接触人员:" + errorname + ",值不在可选范围内,未能导入."; error++; continue; } HazardfactorsEntity hf = new HazardfactorsEntity(); hf.AreaId = AreaValue; hf.AreaValue = AreaName; hf.Riskid = RiskValue; hf.RiskValue = RiskName; if (uses.Length > 0) { hf.ContactNumber = uses.Length; } try { hazardfactorsbll.SaveForm("", hf, users, userids); } catch { error++; } } count = dt.Rows.Count - 1; message = "共有" + count + "条记录,成功导入" + (count - error) + "条,失败" + error + "条"; message += "</br>" + falseMessage; } return(message); }