コード例 #1
0
        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);
        }
コード例 #2
0
        //[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");
            }
        }