diff --git a/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs b/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs index dfc2b2f..f5f0921 100644 --- a/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs +++ b/APT.MicroApi/APT.FM.WebApi/Controllers/FMUserController.cs @@ -1676,7 +1676,194 @@ namespace APT.BS.WebApi.Controllers.Api return true; } - + public bool InsertModel2(DataTable dtSource, Guid? orgId, string telnetCode, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + List userLists = new List(); + List userPersonLists = new List(); + List userRoleLists = new List(); + List userUnitLists = new List(); + if (rowAll == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(orgId)); + var roles = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var units = this.GetEntities(t => t.CODE == "BSMineTypeEnum", new BaseFilter(orgId)); + var posts = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var approves = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + for (int i = 0; i < rowAll; i++) + { + var company = departs.FirstOrDefault(t => t.NAME == dtSource.Rows[i][0].ToString().Trim()); + var depart = departs.FirstOrDefault(t => t.NAME == dtSource.Rows[i][1].ToString().Trim()); + var shop = departs.FirstOrDefault(t => t.NAME == dtSource.Rows[i][2].ToString().Trim()); + var classFirst = departs.FirstOrDefault(t => t.NAME == dtSource.Rows[i][3].ToString().Trim()); + var post = posts.FirstOrDefault(t => t.NAME == dtSource.Rows[i][8].ToString().Trim()); + Guid? depId = null; + int? minetype = 0; + if (classFirst != null) + { + depId = classFirst.ID; + minetype = classFirst.MineType; + } + else if (shop != null) + { + depId = shop.ID; + minetype = shop.MineType; + } + else if (depart != null) + { + depId = depart.ID; + minetype = depart.MineType; + } + else + { + depId = company.ID; + minetype = company.MineType; + } + var sex = dtSource.Rows[i][9].ToString().Trim(); + T_FM_PERSON person = new T_FM_PERSON(); + person.ID = Guid.NewGuid(); + person.ORG_ID = orgId; + person.NAME = dtSource.Rows[i][4].ToString().Trim(); + person.CODE = dtSource.Rows[i][5].ToString().Trim(); + person.TEL = dtSource.Rows[i][6].ToString().Trim(); + person.SEX = sex == "男" ? 1 : 0; + person.DEPARTMENT_ID = depId; + person.POST_ID = post?.ID; + userPersonLists.Add(person); + T_FM_USER user = new T_FM_USER(); + user.ID = Guid.NewGuid(); + user.ORG_ID = orgId; + user.PERSON_ID = person.ID; + user.NAME = dtSource.Rows[i][4].ToString().Trim(); + user.CODE = dtSource.Rows[i][5].ToString().Trim(); + user.PHONE = dtSource.Rows[i][6].ToString().Trim(); + user.ID_CARD = dtSource.Rows[i][7].ToString().Trim(); + user.DEPARTMENT_ID = depId; + user.SEX = sex == "男" ? 1 : 0; + user.MineType = minetype.ToString(); + var inTime = dtSource.Rows[i][10].ToString().Trim(); + if (string.IsNullOrEmpty(inTime)) + { + inTime = DateTime.Now.ToShortTimeString(); + } + user.ENTRYTIME = DateTime.Parse(inTime); + var yearInt = dtSource.Rows[i][11].ToString().Trim(); + if (string.IsNullOrEmpty(yearInt)) + { + yearInt = "0"; + } + user.WORKINGYEAR = int.Parse(yearInt); + var approve = approves.FirstOrDefault(t => t.NAME == dtSource.Rows[i][12].ToString().Trim()); + user.APPROVE_ROLE_ID = approve?.ID; + //if (!string.IsNullOrEmpty(user.NAME) && !string.IsNullOrEmpty(user.CODE)) + //{ + // MD5 md5 = MD5.Create(); + // string code = DataHelper.GetCodeNO(user.CODE); + // string nameHead = DataHelper.MkPinyinString(user.NAME); + // string NewPwd = DataHelper.MD5Encrypt32(md5, nameHead + code); + // user.PASSWORD = NewPwd; + //} + userLists.Add(user); + #region 增加新增人员到ops表 + using (var context = new MigrationContext(ConfigurationManager.ConnectionStrings["default"])) + { + var tennant = context.GetEntity(t => t.ID == orgId, new string[] { "CODE" }).CODE; + T_OP_ALLUSER alluser = new T_OP_ALLUSER(); + alluser.ID = user.ID; + alluser.CODE = user.CODE; + alluser.TENANT = tennant; + alluser.ORG_ID = orgId; + alluser.PHONE = user.PHONE; + context.AddEntity(alluser); + context.SaveChanges(); + } + #endregion + if (user.APPROVE_ROLE_ID != null) + { + var role1 = roles.FirstOrDefault(t => t.NAME == "负责人"); + var role2 = roles.FirstOrDefault(t => t.NAME == "App用户"); + if (role1 != null) + { + T_FM_USER_BELONG_ROLE belongRole = new T_FM_USER_BELONG_ROLE(); + belongRole.ID = Guid.NewGuid(); + belongRole.USER_ID = user.ID; + belongRole.BELONG_ROLE_ID = role1.ID; + belongRole.ORG_ID = orgId; + userRoleLists.Add(belongRole); + } + if (role2 != null) + { + T_FM_USER_BELONG_ROLE belongRole = new T_FM_USER_BELONG_ROLE(); + belongRole.ID = Guid.NewGuid(); + belongRole.USER_ID = user.ID; + belongRole.BELONG_ROLE_ID = role2.ID; + belongRole.ORG_ID = orgId; + userRoleLists.Add(belongRole); + } + } + else + { + var role1 = roles.FirstOrDefault(t => t.NAME == "作业员"); + var role2 = roles.FirstOrDefault(t => t.NAME == "App用户"); + if (role1 != null) + { + T_FM_USER_BELONG_ROLE belongRole = new T_FM_USER_BELONG_ROLE(); + belongRole.ID = Guid.NewGuid(); + belongRole.USER_ID = user.ID; + belongRole.BELONG_ROLE_ID = role1.ID; + belongRole.ORG_ID = orgId; + userRoleLists.Add(belongRole); + } + if (role2 != null) + { + T_FM_USER_BELONG_ROLE belongRole = new T_FM_USER_BELONG_ROLE(); + belongRole.ID = Guid.NewGuid(); + belongRole.USER_ID = user.ID; + belongRole.BELONG_ROLE_ID = role2.ID; + belongRole.ORG_ID = orgId; + userRoleLists.Add(belongRole); + } + } + var unit = units.FirstOrDefault(t => t.VALUE == minetype); + if (unit != null) + { + T_FM_USER_PRODUCTION_UNIT pro = new T_FM_USER_PRODUCTION_UNIT(); + pro.ID = Guid.NewGuid(); + pro.ORG_ID = orgId; + pro.USER_ID = user.ID; + pro.ENUMS_ID = unit.ID; + userUnitLists.Add(pro); + } + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (userLists != null && userLists.Any()) + BantchAddEntityNoCommit(userLists); + if (userUnitLists != null && userUnitLists.Any()) + BantchAddEntityNoCommit(userUnitLists); + if (userRoleLists != null && userRoleLists.Any()) + BantchAddEntityNoCommit(userRoleLists); + if (userPersonLists != null && userPersonLists.Any()) + BantchAddEntityNoCommit(userPersonLists); + }); + Msg = "导入成功!"; + } + return true; + } #endregion } }