public void DoPick(PickList pickList, User user) { PickList oldPickList = this.LoadPickList(pickList.PickListNo); PickListHelper.CheckAuthrize(oldPickList, user); if (oldPickList.Status != BusinessConstants.CODE_MASTER_STATUS_VALUE_INPROCESS) { throw new BusinessErrorException("Order.Error.PickUp.StatusErrorWhenPick", oldPickList.Status, oldPickList.PickListNo); } //检查是否有pickListResult int resultCount = 0; foreach (PickListDetail pickListDetail in pickList.PickListDetails) { foreach (PickListResult pickListResult in pickListDetail.PickListResults) { if (pickListResult.Id == 0) { resultCount++; break; } } } if (resultCount == 0) { throw new BusinessErrorException("MasterData.No.PickListResult"); } foreach (PickListDetail pickListDetail in pickList.PickListDetails) { foreach (PickListResult pickListResult in pickListDetail.PickListResults) { if (pickListResult.Id > 0) { continue; } #region 检查捡货项是否已经被其它捡货单占用 if (this.locationMgr.IsHuOcuppyByPickList(pickListResult.LocationLotDetail.Hu.HuId)) { throw new BusinessErrorException("Order.Error.PickUp.HuOcuppied", pickListResult.LocationLotDetail.Hu.HuId); } #endregion pickListResultMgr.CreatePickListResult(pickListResult); #region 架 if (pickListResult.LocationLotDetail.StorageBin != null) { this.locationMgr.InventoryPick(pickListResult.LocationLotDetail, user); } #endregion } } oldPickList.LastModifyDate = DateTime.Now; oldPickList.LastModifyUser = user; this.UpdatePickList(oldPickList); }