Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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()
            });
        }
Exemplo n.º 3
0
        /// <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, "该数据不存在。");
            }
        }