protected override void GetDetail(Resolver resolver) { InProcessLocation inProcessLocation = null; //订单发货 if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_ORDER) { if (resolver.Transformers != null && resolver.Transformers.Count > 0) { foreach (Transformer transformer in resolver.Transformers) { if (resolver.Input.Trim().ToUpper() == transformer.OrderNo.Trim().ToUpper()) { throw new BusinessErrorException("Common.Business.Error.ReScan", resolver.Code); } } //校验订单配置选项 this.CheckOrderConfigValid(resolver.Input, resolver.Transformers[0].OrderNo); } else { resolver.Transformers = new List <Transformer>(); } inProcessLocation = orderMgr.ConvertOrderToInProcessLocation(resolver.Input); if (inProcessLocation == null || inProcessLocation.InProcessLocationDetails == null || inProcessLocation.InProcessLocationDetails.Count == 0) { throw new BusinessErrorException("Common.Business.Error.NoDetailToShip"); } if (resolver.IsScanHu && resolver.CodePrefix != BusinessConstants.CODE_PREFIX_PICKLIST) { OrderHelper.ClearShippedQty(inProcessLocation);//清空发货数 } List <Transformer> newTransformerList = TransformerHelper.ConvertInProcessLocationDetailsToTransformers(inProcessLocation.InProcessLocationDetails); resolver.Transformers = resolver.Transformers == null ? new List <Transformer>() : resolver.Transformers; resolver.Transformers.AddRange(newTransformerList); } //拣货单发货 else if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_PICKLIST) { //inProcessLocation = orderMgr.ConvertPickListToInProcessLocation(resolver.Input); IList <PickListResult> pickListResultList = pickListResultMgr.GetPickListResult(resolver.Input); resolver.Transformers = Utility.TransformerHelper.ConvertPickListResultToTransformer(pickListResultList); } resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER; }