public importGroup() { ouInfoService = (IOUInfoService)GetObject("OUInfoService"); roleService = (IRoleService)GetObject("RoleService"); groupDao = (IGroupDao)GetObject("GroupDao"); relationShipService = (IRelationShipService)GetObject("RelationShipService"); ouInfoList = ouInfoService.FindAll(); roleList = roleService.FindAll(); }
public override void Execute(string pDataFilePath) { logger.Debug("开始导入单位、部门等信息"); IList <string> list = TextHelper.ReadTextByReadLine(pDataFilePath); foreach (string str in list) { string[] strArray = str.Split(';'); OUInfo info = new OUInfo(); info.ID = -1; info.IsTmpOU = Constants.YESNO_NO; info.OUStatus = OUStatuses.Enable; info.Name = strArray[0]; info.Code = strArray[1]; foreach (OULevel ouLevel in ouLevelList) { if (strArray[2] == ouLevel.Code) { info.Level = ouLevel.Code; info.LevelName = ouLevel.Name; break; } } info.OrderNo = strArray[3]; info.Type = strArray[4]; IList ouList = null; if (strArray.Length > 5 && strArray[5].Trim().Length > 0) { ouList = ouInfoService.FindAll(); bool isHas = false; foreach (OUInfo ouInfo in ouList) { if (ouInfo.FullName.Equals(strArray[5], StringComparison.OrdinalIgnoreCase)) { if (info.Type.Equals(OUInfo.OT_DEPARTMENT, StringComparison.OrdinalIgnoreCase)) { info.UnitName = ouInfo.Name; info.UnitUnid = ouInfo.Unid; info.UnitFullName = ouInfo.FullName; info.UnitFullCode = ouInfo.FullCode; } else { info.ParentOUUnid = ouInfo.Unid; info.FullCode = ouInfo.FullCode + "." + info.Code; info.FullName = ouInfo.FullName + "." + info.Name; } isHas = true; break; } } if (!isHas) { foreach (OUInfo ouInfo in ouList) { if (ouInfo.Name.Equals(strArray[5], StringComparison.OrdinalIgnoreCase)) { if (info.Type.Equals(OUInfo.OT_DEPARTMENT, StringComparison.OrdinalIgnoreCase)) { info.UnitName = ouInfo.Name; info.UnitUnid = ouInfo.Unid; info.UnitFullName = ouInfo.FullName; info.UnitFullCode = ouInfo.FullCode; } else { info.ParentOUUnid = ouInfo.Unid; info.FullCode = ouInfo.FullCode + "." + info.Code; info.FullName = ouInfo.FullName + "." + info.Name; } isHas = true; break; } } } if (!isHas) { if (info.Type.Equals(OUInfo.OT_DEPARTMENT, StringComparison.OrdinalIgnoreCase)) { } info.FullCode = info.Code; info.FullName = info.Name; } } else { if (info.Type.Equals(OUInfo.OT_DEPARTMENT, StringComparison.OrdinalIgnoreCase)) { } info.FullCode = info.Code; info.FullName = info.Name; } // 判断是否具有上级部门 if (strArray.Length > 6 && strArray[6].Trim().Length > 0 && info.Type.Equals(OUInfo.OT_DEPARTMENT, StringComparison.OrdinalIgnoreCase)) { bool isHas = false; foreach (OUInfo ouInfo in ouList) { if (ouInfo.FullName.Equals(strArray[6], StringComparison.OrdinalIgnoreCase) && ouInfo.UnitUnid.Equals(info.UnitUnid, StringComparison.OrdinalIgnoreCase)) { info.ParentOUUnid = ouInfo.Unid; info.FullCode = ouInfo.FullCode + "." + info.Code; info.FullName = ouInfo.FullName + "." + info.Name; isHas = true; break; } } if (!isHas) { foreach (OUInfo ouInfo in ouList) { if (ouInfo.Name.Equals(strArray[6], StringComparison.OrdinalIgnoreCase) && ouInfo.UnitUnid.Equals(info.UnitUnid, StringComparison.OrdinalIgnoreCase)) { info.ParentOUUnid = ouInfo.Unid; info.FullCode = ouInfo.FullCode + "." + info.Code; info.FullName = ouInfo.FullName + "." + info.Name; isHas = true; break; } } } } else { if (info.Type.Equals(OUInfo.OT_DEPARTMENT, StringComparison.OrdinalIgnoreCase)) { info.FullCode = info.UnitFullCode + "." + info.Code; info.FullName = info.UnitFullName + "." + info.Name; } } ouInfoService.Save(info); } }