public async Task UpdatePosition(UpdatePositionInput input) { var position = await _positionRepository.GetAsync(input.Id); var workbookAppServiceProxy = GetService <IWordbookAppService>(); if (!await workbookAppServiceProxy.Check(new CheckWordbookInput() { WordbookCode = SystemPresetWordbookCode.Organization.PositionFunction, WordbookItemId = input.FunctionId })) { throw new BusinessException($"系统中不存在指定的岗位职能类型"); } if (!await workbookAppServiceProxy.Check(new CheckWordbookInput() { WordbookCode = SystemPresetWordbookCode.Organization.PositionLevel, WordbookItemId = input.PositionLevelId })) { throw new BusinessException($"系统中不存在指定的岗位级别"); } if (input.IsLeadingOfficial && !position.IsLeadingOfficial) { var positions = await _positionRepository.GetAllAsync(p => p.DeptId == position.DeptId); if (positions.Any(p => p.IsLeadingOfficial)) { throw new BusinessException($"该部门已经设置负责人岗位,一个部门只允许设置一个负责人岗位"); } } position = input.MapTo(position); await _positionRepository.UpdateAsync(position); }
public async Task <string> Update(UpdatePositionInput input) { input.CheckDataAnnotations().CheckValidResult(); await _positionDomainService.UpdatePosition(input); return("更新职位信息成功"); }