private EmployeeAdjustPostLogDto GetChangeModel(EmployeeAdjustPost model) { var ret = model.MapTo <EmployeeAdjustPostLogDto>(); ret.AdjustDepName = _organizeRepository.GetAll() .FirstOrDefault(x => !x.IsDeleted && x.Id == model.AdjustDepId)?.DisplayName; ret.AdjustPostName = _postRepository.GetAll() .FirstOrDefault(x => !x.IsDeleted && x.Id == model.AdjustPostId)?.Name; return(ret); }
public async Task <InitWorkFlowOutput> Create(CreateEmployeeAdjustPostInput input) { var user = await base.GetCurrentUserAsync(); var userPost = _userPostRepository.FirstOrDefault(x => x.UserId == user.Id); if (userPost == null) { throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "当前登录账户没有部门和岗位信息,无法发起调岗申请。"); } if ((await _repository.CountAsync(x => !x.IsDeleted && x.CreatorUserId == user.Id && x.Status != -1 && x.Status != -2)) > 0) { throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "你尚有其他调岗申请未结束,无法发起新的调岗申请。"); } if (await _organizationUnitPostsRepository.CountAsync(x => x.Id == input.AdjustPostId) == 0) { throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "没有找到您选择的岗位。"); } var nowpost = _userPostRepository.GetAll().FirstOrDefault(ite => ite.UserId == user.Id && ite.OrgPostId == input.AdjustPostId); if (nowpost != null) { throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "你已经在该岗位了,不能再次调入哦。"); } var newmodel = new EmployeeAdjustPost() { Remark = input.Remark, OriginalDepId = userPost.OrgId, OriginalPostId = userPost.PostId, WorkflowAdjsutDepId = input.AdjustDepId, AdjustDepId = Convert.ToInt32(MemberPerfix.RemovePrefix(input.AdjustDepId)?.Split(',')[0]), AdjustPostId = input.AdjustPostId }; if (await _organizeRepository.CountAsync(x => x.Id == newmodel.AdjustDepId) == 0) { throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "没有找到您选择的部门。"); } //input.AdjustDepId //input.AdjustPostId await _repository.InsertAsync(newmodel); return(new InitWorkFlowOutput() { InStanceId = newmodel.Id.ToString() }); }
/// <summary> /// 修改一个EmployeeAdjustPost /// </summary> /// <param name="input">实体</param> /// <returns></returns> public async Task Update(UpdateEmployeeAdjustPostInput input) { if (input.Id != Guid.Empty) { var dbmodel = await _repository.FirstOrDefaultAsync(x => x.Id == input.Id); if (dbmodel == null) { throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "该数据不存在。"); } var logModel = new EmployeeAdjustPost(); if (input.IsUpdateForChange) { logModel = dbmodel.DeepClone <EmployeeAdjustPost>(); } var AdjustDepId = Convert.ToInt32(MemberPerfix.RemovePrefix(input.AdjustDepId)?.Split(',')[0]); if (await _organizeRepository.CountAsync(x => x.Id == AdjustDepId) == 0) { throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "没有找到您选择的岗位。"); } dbmodel.Remark = input.Remark; dbmodel.WorkflowAdjsutDepId = input.AdjustDepId; dbmodel.AdjustDepId = Convert.ToInt32(MemberPerfix.RemovePrefix(input.AdjustDepId)?.Split(',')[0]); dbmodel.AdjustPostId = input.AdjustPostId; await _repository.UpdateAsync(dbmodel); if (input.IsUpdateForChange) { var flowModel = _workFlowCacheManager.GetWorkFlowModelFromCache(input.FlowId); if (flowModel == null) { throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "流程不存在"); } var logs = GetChangeModel(logModel).GetColumnAllLogs(GetChangeModel(dbmodel)); await _projectAuditManager.InsertAsync(logs, input.Id.ToString(), flowModel.TitleField.Table); } } else { throw new UserFriendlyException((int)ErrorCode.DataAccessErr, "该数据不存在。"); } }