Example #1
0
        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);
        }
Example #2
0
        public async Task <string> Update(UpdatePositionInput input)
        {
            input.CheckDataAnnotations().CheckValidResult();
            await _positionDomainService.UpdatePosition(input);

            return("更新职位信息成功");
        }