コード例 #1
0
        /// <summary>
        /// 请假审批
        /// </summary>
        public void Approval(LeaveApprovalDto input)
        {
            var leave = Get <LeaveOrder>(input.OrderId);

            if (null == leave)
            {
                throw new Exception("未找到请假申请信息!");
            }
            var leaveApprove = Query <LeaveApprove>(p => p.OrderId.Equals(leave.Id) && p.ApproverId.Equals(input.CurrentUserId)).FirstOrDefaultAsync().Result;

            if (null == leaveApprove)
            {
                throw new Exception("您不可以审批,请假单异常!");
            }
            if (leaveApprove.Result != 0)
            {
                throw new Exception("您已经审批过,不需要重复审批!");
            }
            leaveApprove.Result  = input.IsAgreed ? 1 : -1;
            leaveApprove.Opinion = input.Opinion;
            SetOrderStatus(leave);
            if (!input.IsAgreed)
            {
                ResetLimit(leave.LeaveerId, leave.LeaveDays);
            }
            SaveChanges();
        }
コード例 #2
0
        public async Task <IActionResult> LeaveApproval(LeaveApprovalDto leaveApprovalDto)
        {
            try
            {
                var leave = await context.LeaveRequests.FirstOrDefaultAsync(x => x.Id == leaveApprovalDto.LeaveRequestId);

                if (leave == null)
                {
                    return(BadRequest());
                }
                leave.LeaveStatusId = leaveApprovalDto.LeaveStatusId;
                context.LeaveRequests.Update(leave);
                await context.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception)
            {
                return(StatusCode(500));
            }
        }