public JsonResult DeleteDepart(int id) { var personBll = new PersonInfoBll(); var personCount = personBll.CountDepartPerson(id); if (personCount > 0) { return(Json(ErrorModel.DeleteForbidden)); } var departBll = new DepartInfoBll(); var subDeparts = departBll.QueryList("IsDelete=0 AND ParentId=" + id); if (subDeparts.Any()) { return(Json(ErrorModel.DeleteForbidden)); } var success = departBll.DeleteSoftly(id); if (success) { DataUpdateLog.SingleUpdate(typeof(DepartInfo).Name, id, DataUpdateType.Delete); return(Json(ErrorModel.OperateSuccess)); } return(Json(ErrorModel.OperateFailed)); }
public JsonResult GetPersonInfo(int id) { var personInfoBll = new PersonInfoBll(); var person = personInfoBll.QuerySingle("IsDelete=0 AND Id=" + id); if (person == null) { return(Json(ErrorModel.GetDataFailed)); } return(Json(ErrorModel.GetDataSuccess(person))); }
/// <summary> /// 手动执行同步运安数据库数据的操作 /// </summary> private void btnMigration_Click(object sender, EventArgs e) { var bll = new PersonInfoBll(); if (bll.Exists()) { MessageBox.Show(@"人员信息已存在(:="); } else { OracleMigrationTask.ExecuteDataSynchronization(); } }
public JsonResult PersonEdit(PersonInfo person) { if (person == null) { return(Json(ErrorModel.InputError)); } var personBll = new PersonInfoBll(); // 验证工号重复性 var condition = person.Id > 0 ? $"WorkNo='{person.WorkNo}' AND Id<>{person.Id} AND IsDelete=0" : $"WorkNo='{person.WorkNo}' AND IsDelete=0"; if (personBll.Exists(condition)) { return(Json(ErrorModel.ExistSameItem)); } // 获取姓名的简拼 person.Spell = PinyinHelper.GetInitials(person.Name).ToLower(); person.UpdateTime = DateTime.Now; var dbUpdateType = person.Id > 0 ? DataUpdateType.Update : DataUpdateType.Insert; var success = false; if (person.Id > 0) { success = personBll.Update(person); } else { // 第一次录入时将密码设置为工号后四位 var password = person.WorkNo.Substring(person.WorkNo.Length - 5); // person.Password = password.GetMd5(); // @FrancisTan 修改于 2017-02-17 // 目的是为了统一密码的生成,保证一致性 person.Password = EncryptHelper.EncryptPassword(password); success = personBll.Insert(person).Id > 0; } if (success) { DataUpdateLog.SingleUpdate(typeof(PersonInfo).Name, (int)person.Id, dbUpdateType); return(Json(ErrorModel.OperateSuccess)); } return(Json(ErrorModel.OperateFailed)); }
private void Uniq(ref List <Posts> posts, ref List <DepartInfo> departs, ref List <PersonInfo> staff) { List <Posts> _posts = new PostsBll().QueryAll().ToList(); List <DepartInfo> _departs = new DepartInfoBll().QueryAll().ToList(); List <string> _workNos = new PersonInfoBll() .QueryList("IsDelete=0", new[] { nameof(PersonInfo.WorkNo) }) .Select(p => p.WorkNo).ToList(); posts = Distinct(posts, p => p.PostName).Where(p => p.PostName != string.Empty).ToList(); departs = Distinct(departs, d => d.DepartmentName).Where(d => d.DepartmentName != string.Empty).ToList(); posts = posts.Where(p => !Contains(_posts, item => item.PostName == p.PostName)).ToList(); departs = departs.Where(d => !Contains(_departs, item => item.DepartmentName == d.DepartmentName)).ToList(); staff = staff.Where(s => !_workNos.Contains(s.WorkNo)).ToList(); }
public void TestImportNewData() { // 导入员工之前必须先导入部门、岗位 var departImport = new DepartmentMigration(); departImport.ImportNewData(); var postImport = new PostMigragion(); postImport.ImportNewData(); var testInstance = new StaffMigration(); testInstance.ImportNewData(); var totalCount = 7063; var allStaff = new PersonInfoBll().QueryAll().ToList(); allStaff.Should().HaveCount(totalCount, $"because the total count of the data source is {totalCount}"); var single = allStaff.Find(p => p.WorkNo == "2920133"); single.Should().NotBeNull(); single.Name.Should().Be("杨凤山"); single.BirthDate.Should().Be(new DateTime(1960, 12, 1, 12, 0, 0)); single.Password.Should().Be("0133".GetMd5()); var dbLogs = new DbUpdateLogBll().QueryList($"TableName='{nameof(PersonInfo)}'"); dbLogs.Should().HaveCount(totalCount); var relations = new PrimaryIdRelationBll().QueryAll(); relations.Should().HaveCount(totalCount); var maxId = new OracleTableMaxIdBll().QuerySingle($"TableName='{nameof(Z_JCYY_BASEPERSONNEL)}'"); maxId.Should().NotBeNull(); maxId?.MaxId.Should().NotBeNullOrEmpty() .And.Subject.Should().Be("404990019"); }
private void Persistent(List <Posts> posts, List <DepartInfo> departs, List <PersonInfo> staff) { var staffBll = new PersonInfoBll(); var dbUpdateBll = new DbUpdateLogBll(); Func <bool>[] delegates = new Func <bool> [3]; delegates[0] = () => { if (posts.Count > 0) { var postBll = new PostsBll(); var maxId = postBll.GetMaxId(); postBll.BulkInsert(posts); var ids = postBll.QueryList("Id>" + maxId, new[] { nameof(Posts.Id) }).Select(p => p.Id); var dbLogs = ids.Select(id => new DbUpdateLog { TableName = nameof(Posts), TargetId = id, UpdateType = 1, UpdateTime = DateTime.Now }); dbUpdateBll.BulkInsert(dbLogs); } return(true); }; delegates[1] = () => { if (departs.Count > 0) { var departBll = new DepartInfoBll(); var maxId = departBll.GetMaxId(); departBll.BulkInsert(departs); var ids = departBll.QueryList("Id>" + maxId, new[] { nameof(DepartInfo.Id) }).Select(p => p.Id); var dbLogs = ids.Select(id => new DbUpdateLog { TableName = nameof(DepartInfo), TargetId = id, UpdateType = 1, UpdateTime = DateTime.Now }); dbUpdateBll.BulkInsert(dbLogs); } return(true); }; delegates[2] = () => { List <Posts> _posts = new PostsBll().QueryAll().ToList(); List <DepartInfo> _departs = new DepartInfoBll().QueryAll().ToList(); staff.ForEach(s => { // 根据前面用 PersonId 存储的部门名称找到此员工对应的部门 // 根据前面用 PhotoPath 存储的职务名称找到此员工对应的职务 var depart = _departs.Find(d => d.DepartmentName == s.PersonId); var post = _posts.Find(p => p.PostName == s.PhotoPath); s.DepartmentId = depart?.Id ?? 0; s.PostId = post?.Id ?? 0; s.PersonId = string.Empty; s.PhotoPath = string.Empty; }); var maxId = staffBll.GetMaxId(); staffBll.BulkInsert(staff); var ids = staffBll.QueryList("Id>" + maxId, new[] { nameof(PersonInfo.Id) }).Select(p => p.Id); var dbLogs = ids.Select(id => new DbUpdateLog { TableName = nameof(PersonInfo), TargetId = (int)id, UpdateType = 1, UpdateTime = DateTime.Now }); dbUpdateBll.BulkInsert(dbLogs); return(true); }; // 若插入失败,则尝试五次 for (var i = 0; i < 5; i++) { var success = staffBll.ExecuteTransation(delegates); if (success) { return; } } }