Beispiel #1
0
        public async Task <string> Create(CreateDepartmentInput input)
        {
            input.CheckDataAnnotations().CheckValidResult();
            await _departmentDomainService.CreateDepartment(input);

            return("新增部门信息成功");
        }
        public async Task <DepartmentDto> CreateDepartmentAsync(CreateDepartmentInput input)
        {
            var entity = ObjectMapper.Map <Department>(input);

            entity = await _departmentRepository.InsertAsync(entity);

            await CurrentUnitOfWork.SaveChangesAsync();

            return(ObjectMapper.Map <DepartmentDto>(entity));
        }
Beispiel #3
0
    public async Task <IActionResult> CreateDepartmentAsync([FromBody] CreateDepartmentInput input)
    {
        var request = new CreateDepartmentRequest
        {
            Name      = input.Name,
            IsEnabled = input.IsEnabled,
            ParentId  = input.ParentId,
        };
        var response = (Guid)await _organizationClient.CreateDepartmentAsync(request);

        return(CreatedAtAction(nameof(GetDepartmentAsync), new { Id = response }, default));
    }
 /// <summary>
 /// 创建部门
 /// </summary>
 /// <param name="input">创建部门</param>
 /// <returns></returns>
 public async Task <CreateOrUpdateDepartmentResult> Create(CreateDepartmentInput input)
 {
     return(await Post <CreateOrUpdateDepartmentResult>(
                "department/create?access_token={ACCESS_TOKEN}", new {
         name = input.Name,
         parentid = input.ParentId,
         order = input.Order,
         createDeptGroup = input.CreateDeptGroup,
         deptHiding = input.DeptHiding,
         deptPermits = input.DeptPermits,
         userPermits = input.UserPermits,
         outerDept = input.OuterDept,
         outerPermitDepts = input.OuterPermitDepts,
         outerPermitUsers = input.OuterPermitUsers,
         outerDeptOnlySelf = input.OuterDeptOnlySelf,
         sourceIdentifier = input.SourceIdentifier
     }));
 }
Beispiel #5
0
        public async Task Execute(CreateDepartmentInput input)
        {
            if (input == null)
            {
                createDepartmentOutputPort.WriteError("Department is empty"); return;
            }


            // Vajno!!!
            //  var user = findUser trtatata

            bool isSuccess = await departmentRepository.Create(new Department()
            {
                Head = new User()
                {
                    Id = input.HeadId
                },
                Name = input.Name
            });

            createDepartmentOutputPort.Standart(new CreateDepartmentOutput(isSuccess));
        }
Beispiel #6
0
        public async Task <CreateDepartmentOutput> CreateDepartment(CreateDepartmentInput input)
        {
            var parentOrg = await _organizationRepository.SingleOrDefaultAsync(p => p.Id == input.ParentId);

            if (parentOrg == null)
            {
                throw new BusinessException($"不存在Id为{input.ParentId}的上级信息");
            }

            if (input.DeptTypeKey.IsNullOrEmpty())
            {
                throw new BusinessException("请选择部门类型");
            }

            var exsitOrg =
                await _organizationRepository.SingleOrDefaultAsync(p => p.Identification == input.Identification);

            if (exsitOrg != null)
            {
                throw new BusinessException($"系统中已经存在标识为{input.Identification}的组织机构");
            }

            var workbookAppServiceProxy = GetService <IWordbookAppService>();
            var checkDeptTypeResult     = await workbookAppServiceProxy.Check(new CheckWordbookInput
                                                                              { WordbookCode = SystemPresetWordbookCode.Organization.DeptType, WordbookItemKey = input.DeptTypeKey });

            if (!checkDeptTypeResult)
            {
                throw new BusinessException("指定的部门类型Key不正确,请选择正确的部门类型");
            }
            var department = input.MapTo <Department>();
            var orgInfo    = input.MapTo <Organization>();

            var orgCode     = string.Empty;
            var maxLevelOrg = (await _organizationRepository.GetAllAsync(p => p.ParentId == parentOrg.Id))
                              .OrderByDescending(p => p.Id).FirstOrDefault();

            if (maxLevelOrg == null)
            {
                orgCode = "1".PadLeft(HeroConstants.CodeRuleRestrain.CodeCoverBit,
                                      HeroConstants.CodeRuleRestrain.CodeCoverSymbol);
            }
            else
            {
                orgCode =
                    (Convert.ToInt32(maxLevelOrg.Code.Split(HeroConstants.CodeRuleRestrain.CodeCoverSymbol).Last()
                                     .TrimStart('0')) + 1).ToString().PadLeft(HeroConstants.CodeRuleRestrain.CodeCoverBit,
                                                                              HeroConstants.CodeRuleRestrain.CodeCoverSymbol);
            }

            orgInfo.Level = parentOrg.Level + 1;
            orgInfo.Code  = parentOrg.Code + HeroConstants.CodeRuleRestrain.CodeSeparator + orgCode;

            await UnitOfWorkAsync(async (conn, trans) =>
            {
                var orgId        = await _organizationRepository.InsertAndGetIdAsync(orgInfo, conn, trans);
                department.OrgId = orgId;
                var deptId       = await _departmentRepository.InsertAndGetIdAsync(department, conn, trans);
                if (input.Positions != null && input.Positions.Any())
                {
                    if (input.Positions.Count(p => p.IsLeadingOfficial) > 1)
                    {
                        throw new BusinessException("部门只允许设置一个负责人岗位");
                    }
                    var sort = 1;
                    foreach (var positionInput in input.Positions)
                    {
                        var position    = positionInput.MapTo <Position>();
                        position.DeptId = deptId;
                        position.CheckDataAnnotations().CheckValidResult();
                        var positionCode = orgInfo.Code + HeroConstants.CodeRuleRestrain.CodeSeparator + sort.ToString()
                                           .PadLeft(HeroConstants.CodeRuleRestrain.CodeCoverBit,
                                                    HeroConstants.CodeRuleRestrain.CodeCoverSymbol);
                        position.Code = positionCode;
                        await _positionRepository.InsertAsync(position, conn, trans);
                        sort++;
                    }
                }
            }, Connection);

            return(new CreateDepartmentOutput
            {
                OrgId = orgInfo.Id,
                DeptId = department.Id,
                Tips = "新增部门信息成功"
            });
        }
Beispiel #7
0
 public async Task <CreateDepartmentOutput> Create(CreateDepartmentInput input)
 {
     input.CheckDataAnnotations().CheckValidResult();
     return(await _departmentDomainService.CreateDepartment(input));
 }
Beispiel #8
0
 public async Task <DepartmentDto> CreateDepartment([FromBody] CreateDepartmentInput input)
 {
     return(await _DepartmentAppService.CreateDepartmentAsync(input));
 }