public async Task <CommonResponse <BorrowRegisterResult> > Register([FromBody] BorrowRegisterRequest request) { request.SerializeToLog("Register"); var response = await _borrowRegisterService.BorrowRegister(request); response.SerializeToLog("Register"); return(response); }
/// <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); }