Пример #1
0
        public async Task <CommonResponse <BorrowRegisterResult> > Register([FromBody] BorrowRegisterRequest request)
        {
            request.SerializeToLog("Register");
            var response = await _borrowRegisterService.BorrowRegister(request);

            response.SerializeToLog("Register");
            return(response);
        }
Пример #2
0
        /// <summary>
        /// 申报借阅
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <CommonResponse <BorrowRegisterResult> > BorrowRegister(BorrowRegisterRequest request)
        {
            var response = new CommonResponse <BorrowRegisterResult>();

            if (request == null)
            {
                response.Message = "参数不能为空";
                return(response);
            }
            if (string.IsNullOrEmpty(request.Phone))
            {
                response.Message = "手机不能为空";
                return(response);
            }
            if (string.IsNullOrEmpty(request.Borrower))
            {
                response.Message = "借阅人不能为空";
                return(response);
            }
            if (request.ReturnDate < DateTime.Now)
            {
                response.Message = "归还日期不能早于今天";
                return(response);
            }

            var regEntity = new dal.Entity.BorrowRegister
            {
                Borrower       = request.Borrower,
                Phone          = request.Phone,
                ReturnDate     = request.ReturnDate,
                SignPhoto      = request.SignPhoto,
                Status         = BorrowRegisterStatus.Registered,
                Company        = request.Company,
                Department     = request.Department,
                CreateTime     = DateTime.Now,
                Deleted        = false,
                UpdateTime     = DateTime.Now,
                ReturnNotified = false,
                Remark         = request.Remark
            };

            using (var trans = await _db.Database.BeginTransactionAsync())
            {
                try
                {
                    //var archives = await _db.ArchivesInfo.AsNoTracking().Where(c => request.ArchivesId.Contains(c.Id) && !c.Deleted).ToListAsync();
                    //if (archives.Count != request.ArchivesId.Count)
                    //{
                    //    throw new BizException("请求档案数目与数据库可用档案不一致,可能是数据已删除,请重新查询后再提交");
                    //}

                    //var borrowedArchives = archives.Where(c => c.Status == ArchivesStatus.Borrowed);
                    //if (borrowedArchives.Any())
                    //{
                    //    throw new BizException($"请求档案:{string.Join(",", borrowedArchives.Select(c => c.ArchivesNumber))} 当前状态为已借阅");
                    //}

                    await _db.BorrowRegister.AddAsync(regEntity);

                    await _db.SaveChangesAsync();

                    response.Data = new BorrowRegisterResult {
                        BorrowRegisterId = regEntity.Id
                    };

                    await _db.BorrowRegisterDetail.AddRangeAsync(request.Details.Select(c => new dal.Entity.BorrowRegisterDetail
                    {
                        ArchivesId       = 0,
                        BorrowRegisterId = regEntity.Id,
                        CreateTime       = DateTime.Now,
                        ArchivesNumber   = c.ArchivesNumber,
                        CategoryId1      = c.CategoryId1,
                        CategoryName1    = c.CategoryName1,
                        CategoryId2      = c.CategoryId2,
                        CategoryName2    = c.CategoryName2,
                        CategoryId3      = c.CategoryId3,
                        CategoryName3    = c.CategoryName3,
                        FileNumber       = c.FileNumber,
                        CategoryNumber   = c.CategoryId,
                        OrderNumber      = c.OrderNumber,
                        ProjectId        = c.ProjectId,
                        ProjectName      = c.ProjectName,
                        Title            = c.Title
                    }));

                    await _db.SaveChangesAsync();

                    trans.Commit();
                    response.Success = true;
                }
                catch (BizException ex)
                {
                    trans.Rollback();
                    response.Message = ex.Message;
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    response.Message = "提交申请借阅发生异常";
                    ApplicationLog.Error("BorrowRegister", ex);
                }
            }

            return(response);
        }