public override object Do(object obj) { GenProductBarCodesByRMA bpObj = (GenProductBarCodesByRMA)obj; if (bpObj.ProductBarCodeDTOs == null || bpObj.ProductBarCodeDTOs.Count == 0) { return(null); } //生成销售退回收货单 CreateReceivementProxy createRcv = new CreateReceivementProxy(); createRcv.RcvHeadDTOs = CreateRcvHeadDTOs(bpObj.ProductBarCodeDTOs); List <BusinessEntity.EntityKey> resultKeys = createRcv.Do(); if (resultKeys == null || resultKeys.Count == 0) { return(null); } using (Session s = Session.Open()) { List <ProductBarCodeByRMADTO> barCodeDTOs = new List <ProductBarCodeByRMADTO>(bpObj.ProductBarCodeDTOs); foreach (BusinessEntity.EntityKey resultKey in resultKeys) { Receivement rcv = new Receivement.EntityKey(resultKey.ID).GetEntity(); foreach (RcvLine rcvLine in rcv.RcvLines) { ProductBarCodeByRMADTO barCodeDTO = FindProductBarCodeDTO(barCodeDTOs, rcvLine); barCodeDTOs.Remove(barCodeDTO); //生成批号数据 LotMaster.EntityKey lotKey = LotBuilder.CreateLot(rcvLine.ItemInfo.ItemID, barCodeDTO.BarCode, barCodeDTO.ActualLength); //设置收货行批号 SetRcvLineLotInfo(rcvLine, lotKey); //生成成品条码记录 ProductBarCode productBarCode = ProductBarCode.Create(); productBarCode.OrgKey = new Base.Organization.Organization.EntityKey(barCodeDTO.OrgID); productBarCode.BarCode = barCodeDTO.BarCode; productBarCode.ActualLength = barCodeDTO.ActualLength; productBarCode.ItemKey = rcvLine.ItemInfo.ItemIDKey; productBarCode.LotKey = lotKey; productBarCode.OperatorsKey = new CBO.HR.Operator.Operators.EntityKey(barCodeDTO.QcOperator); productBarCode.RMAKey = new SM.RMA.RMA.EntityKey(barCodeDTO.RMA); productBarCode.RMALineKey = new SM.RMA.RMALine.EntityKey(barCodeDTO.RMALine); productBarCode.ReceivementKey = rcvLine.ReceivementKey; productBarCode.RcvLineKey = rcvLine.Key; productBarCode.ProductBarCodeKind = ProductBarCodeKindEnum.RMR; } } s.Commit(); } return(null); }
//[OperationBehavior] public void DoEx(ICommonDataContract commonData, List <UFIDA.U9.Cust.JSDY.BarCode.ProductBarCodeByRMADTOData> productBarCodeDTOs) { this.CommonData = commonData; try { BeforeInvoke("UFIDA.U9.Cust.JSDY.BarCode.GenProductBarCodesByRMA"); GenProductBarCodesByRMA objectRef = new GenProductBarCodesByRMA(); if (productBarCodeDTOs != null) { DeSerializeKey(productBarCodeDTOs); List <UFIDA.U9.Cust.JSDY.BarCode.ProductBarCodeByRMADTO> listProductBarCodeDTOs = new List <UFIDA.U9.Cust.JSDY.BarCode.ProductBarCodeByRMADTO>(); foreach (UFIDA.U9.Cust.JSDY.BarCode.ProductBarCodeByRMADTOData obj in productBarCodeDTOs) { if (obj == null) { continue; } UFIDA.U9.Cust.JSDY.BarCode.ProductBarCodeByRMADTO child = new UFIDA.U9.Cust.JSDY.BarCode.ProductBarCodeByRMADTO(); child.FromEntityData(obj); //值对象应该是依赖主创建的.但此处不是.可能的问题? listProductBarCodeDTOs.Add(child); } objectRef.ProductBarCodeDTOs = listProductBarCodeDTOs; } //处理返回类型. objectRef.Do(); //没有返回值 } catch (System.Exception e) { DealException(e); throw; } finally { FinallyInvoke("UFIDA.U9.Cust.JSDY.BarCode.GenProductBarCodesByRMA"); } }