/// <summary> /// 创建一张交接单 /// </summary> public async Task <HandOverBillOutput> CreateHandOverBill() { var currentUser = await this.GetCurrentUserAsync(); var currentDepartment = await this.GetCurrentUserOrganizationUnitAsync(); HandOverBill handOverBill = await this._handOverBillFactory.CreateHandOverBill(currentUser, currentDepartment); await this._handOverBillRepository.InsertAndGetIdAsync(handOverBill); return(handOverBill.MapTo <HandOverBillOutput>()); }
//检查并交接单是否完成 private async Task <bool> checkBillCompleted(HandOverBill bill) { var allCompleted = bill.BillLines.All(l => l.LineState != HandOverBillLineState.Pending); if (allCompleted) { bill.BillState = HandOverBillState.Completed; await this._handOverBillRepository.UpdateAsync(bill); return(true); } return(false); }
/// <summary> /// 创建交接单 /// </summary> /// <param name="creator">创建人</param> /// <param name="sourceDepartment">转出部门</param> /// <returns>交接单</returns> public async Task <HandOverBill> CreateHandOverBill(SysUser creator, OrganizationUnit sourceDepartment) { if (creator == null) { throw new ArgumentNullException("creator"); } if (sourceDepartment == null) { throw new ArgumentNullException("sourceDepartment"); } //创建交接单号 string billCodePrefix = DateTime.Today.ToString("yyyyMM"); string billCodeSerialNumber = (await this._handOverBillRepository.GetAll() .Where(b => b.BillCodePrefix == billCodePrefix) .MaxAsync(b => b.BillCodeSerialNumber)); billCodeSerialNumber = !string.IsNullOrWhiteSpace(billCodeSerialNumber) ? (int.Parse(billCodeSerialNumber) + 1).ToString("D3") : "001"; //转出部门 var transferSource = HandOverDepartment.CreateFromOrganizationUnit(sourceDepartment); HandOverBill billBean = new HandOverBill { BillCodePrefix = billCodePrefix, BillCodeSerialNumber = billCodeSerialNumber, TransferSource = transferSource, TransferTargetType = HandOverTargetType.Department, TransferTargetDepartment = new HandOverDepartment(), TransferTargetSupplier = new HandOverSupplier(), Remark = "", CreatorUserName = creator.Surname, BillState = HandOverBillState.Draft }; return(billBean); }