Exemplo n.º 1
0
        private EmployeeAskForLeaveChangeDto GetChangeModel(EmployeeAskForLeave model)
        {
            /// 如果有外键数据 在这里转换
            var ret = model.MapTo <EmployeeAskForLeaveChangeDto>();

            if (model.RelationUserId.HasValue)
            {
                var user = UserManager.Users.FirstOrDefault(x => x.Id == model.RelationUserId.Value);
                if (user != null)
                {
                    ret.RelationUserId_Name = user.Name;
                }
            }
            return(ret);
        }
Exemplo n.º 2
0
        public async Task <InitWorkFlowOutput> Create(CreateEmployeeAskForLeaveIputDto input)
        {
            if (input.RelationUserId.HasValue)
            {
                if (_roleRelationManager.IsExistence(input.RelationUserId.Value, input.BeginTime, input.EndTime))
                {
                    throw new UserFriendlyException("委托人已经被委托了。");
                }
            }
            var service      = AbpBootstrapper.Create <Abp.Modules.AbpModule>().IocManager.IocContainer.Resolve <IWorkFlowOrganizationUnitsAppService>();
            var userOrgModel = await service.GetUserPostInfo(new NullableIdDto <long>() { Id = AbpSession.UserId.Value, }, new NullableIdDto <long>() { Id = null });

            if (_repository.Count(r => r.CreatorUserId == AbpSession.UserId.Value && r.Status == -1) != _repository.Count(r => r.CreatorUserId == AbpSession.UserId.Value &&
                                                                                                                          (r.BeginTime > input.EndTime || r.EndTime < input.BeginTime) && r.Status == -1))
            {
                throw new UserFriendlyException("已存在审批通过的请假日期");
            }

            var ret      = new InitWorkFlowOutput();
            var newmodel = new EmployeeAskForLeave()
            {
                Id             = Guid.NewGuid(),
                UserId         = AbpSession.UserId.Value,
                BeginTime      = input.BeginTime,
                EndTime        = input.EndTime,
                Reason         = input.Reason,
                Remark         = input.Remark,
                TenantId       = AbpSession.TenantId,
                OrgId          = userOrgModel.OrgId,
                RelationUserId = input.RelationUserId,
                Hours          = input.Hours,
                PostIds        = string.Join(",", userOrgModel.UserPosts.Select(r => r.PostId)),
            };

            await _repository.InsertAsync(newmodel);

            ret.InStanceId = newmodel.Id.ToString();
            return(ret);
        }