/// <summary> /// 初始化Indicator项目 /// </summary> public void InitialIndicator() { var indicatorFile = HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["Indicator"]); ReadFromExcel readFromExcel = new ReadFromExcel(); //按Row获取当前行的所有数据 //先获Row总数,从第二行开始取数据,第一行为标题 int rowCount = readFromExcel.GetRowCount(indicatorFile); for (int i = 2; i <= rowCount; i++) { var columnData = readFromExcel.ReadRowFromExcel((uint)i, indicatorFile); //将该列按照IndicatorItem录入,再插入到数据库 if (columnData.Count >= 8) { IndicatorItem indicatorItem = new IndicatorItem(); //按照顺序填充 indicatorItem.Name = columnData.ElementAt(0); indicatorItem.Unit = columnData.ElementAt(1); indicatorItem.IsAuto = columnData.ElementAt(2); indicatorItem.DataSystem = columnData.ElementAt(3); indicatorItem.Department = columnData.ElementAt(4); indicatorItem.Remarks = columnData.ElementAt(5); indicatorItem.DutyDepartment = columnData.ElementAt(6); indicatorItem.GuidId = Guid.Parse(columnData.ElementAt(7)); //写入数据库 WriteBaseData writeBaseData = new WriteBaseData(); writeBaseData.AddIndicator(indicatorItem); } } }
/// <summary> /// Adds the indicator. /// </summary> /// <param name="indicatorItem">代码中的对应映射类.</param> public void AddIndicator(IndicatorItem indicatorItem) { if (indicatorItem == null) { return; } using (ImsDbContext context = new ImsDbContext()) { //先通过Id查重,如果存在,不添加 Indicator item = new Indicator(); var query = context.Indicators.Where(i => i.IndicatorID == indicatorItem.GuidId).FirstOrDefault(); if (query != null) { //已存在,返回 return; } //根据IsAuto从不同表中查找ID if (indicatorItem.IsAuto == "是") { item.IsAutoGetData = true; var dataSystem = context.DataSourceSystems.Where(d => d.Name == indicatorItem.DataSystem).FirstOrDefault(); if (dataSystem == null) { //若不存在,直接返回, return; } //需获取DataSystem的ID值 item.DataSourceSystemID = dataSystem.ID; //item.DepartmentID = null; } else { item.IsAutoGetData = false; var department = context.Departments.Where(d => d.DepartmentName == indicatorItem.Department).FirstOrDefault(); if (department == null) { //如果科室不存在,说明有问题,不能再继续下一步操作 return; } //获取department的ID item.DepartmentID = department.DepartmentID; //item.DataSourceSystemID = null; } //继续赋其他值 item.Name = indicatorItem.Name; item.Unit = indicatorItem.Unit; item.DutyDepartment = indicatorItem?.DutyDepartment; item.Remarks = indicatorItem?.Remarks; //添加到数据库 item.IndicatorID = indicatorItem.GuidId; context.Indicators.Add(item); context.SaveChanges(); } }