Exemple #1
0
 protected override void SetDetail(Resolver resolver)
 {
     LocationLotDetail locationLotDetail = locationLotDetailMgr.CheckLoadHuLocationLotDetail(resolver.Input, resolver.UserCode);
     TransformerDetail transformerDetail = TransformerHelper.ConvertLocationLotDetailToTransformerDetail(locationLotDetail, false);
     resolver.AddTransformerDetail(transformerDetail);
     resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMERDETAIL;
 }
    public void InitPageParameter(string repackNo)
    {
        IList <TransformerDetail> repackDetailInList  = new List <TransformerDetail>();
        IList <TransformerDetail> repackDetailOutList = new List <TransformerDetail>();

        if (repackNo != string.Empty)
        {
            Repack repack = TheRepackMgr.LoadRepack(repackNo, true);
            IList <TransformerDetail> transformerDetailList = TransformerHelper.ConvertRepackDetailListToTransformerDetailList(repack.RepackDetails);
            foreach (TransformerDetail transformerDetail in transformerDetailList)
            {
                if (transformerDetail.IOType == BusinessConstants.IO_TYPE_IN)
                {
                    repackDetailInList.Add(transformerDetail);
                }
                else if (transformerDetail.IOType == BusinessConstants.IO_TYPE_OUT)
                {
                    repackDetailOutList.Add(transformerDetail);
                }
            }
        }

        this.GV_InList.DataSource = repackDetailInList;
        this.GV_InList.DataBind();
        this.GV_OutList.DataSource = repackDetailOutList;
        this.GV_OutList.DataBind();
    }
Exemple #3
0
        protected override void SetDetail(Resolver resolver)
        {
            //setDetailMgr.CheckHuInTransformerDetails(resolver);
            LocationLotDetail locationLotDetail = locationLotDetailMgr.CheckLoadHuLocationLotDetail(resolver.Input, resolver.UserCode);

            //Hu hu = locationLotDetail.Hu;
            //hu.Qty = locationLotDetail.Qty / hu.UnitQty;
            if (this.locationMgr.IsHuOcuppyByPickList(resolver.Input))
            {
                throw new BusinessErrorException("Order.Error.PickUp.HuOcuppied", resolver.Input);
            }

            //已经下架
            if (locationLotDetail.StorageBin == null)
            {
                throw new BusinessErrorException("Warehouse.PickUp.Error.IsAlreadyPickUp", resolver.Input);
            }
            TransformerDetail transformerDetail = TransformerHelper.ConvertLocationLotDetailToTransformerDetail(locationLotDetail, false);

            resolver.AddTransformerDetail(transformerDetail);
            //transformerDetail.CurrentQty = transformerDetail.Qty;
            //int maxSeq = setDetailMgr.FindMaxSeq(resolver.Transformers);
            //transformerDetail.Sequence = maxSeq + 1;
            //resolver.Transformers[0].TransformerDetails.Add(transformerDetail);
            //resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMERDETAIL;
        }
        public void ThenTheOfShouldBe(string field, string objectKey, string expectedValueKey)
        {
            var    expectedValue = m_scenarioContext.Get <object>(expectedValueKey);
            object actualValue   = TransformerHelper.GetActualValue(m_scenarioContext, field, objectKey);

            AssertionHelper.AssertStrings(actualValue.ToString(), expectedValue.ToString());
        }
Exemple #5
0
        private Resolver ShipOrder(Resolver resolver)
        {
            InProcessLocation inProcessLocation = null;

            if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_PICKLIST)
            {
                inProcessLocation = orderMgr.ShipOrder(resolver.Code, resolver.UserCode);
            }
            else
            {
                IList <InProcessLocationDetail> inProcessLocationDetailList = orderMgr.ConvertTransformerToInProcessLocationDetail(resolver.Transformers);
                if (inProcessLocationDetailList.Count > 0)
                {
                    inProcessLocation = orderMgr.ShipOrder(inProcessLocationDetailList, resolver.UserCode);
                }
                else
                {
                    throw new BusinessErrorException("OrderDetail.Error.OrderDetailShipEmpty");
                }
            }
            #region 打印
            if (resolver.NeedPrintAsn && resolver.IsCSClient)
            {
                resolver.PrintUrl = PrintASN(inProcessLocation);
            }
            #endregion

            resolver.Transformers = TransformerHelper.ConvertInProcessLocationDetailsToTransformers(inProcessLocation.InProcessLocationDetails);
            resolver.Result       = languageMgr.TranslateMessage("Common.Business.ASNIs", resolver.UserCode, inProcessLocation.IpNo);
            resolver.Code         = inProcessLocation.IpNo;
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
            return(resolver);
        }
Exemple #6
0
        protected override void SetDetail(Resolver resolver)
        {
            Hu hu = huMgr.CheckAndLoadHu(resolver.Input);

            if (this.locationMgr.IsHuOcuppyByPickList(resolver.Input))
            {
                throw new BusinessErrorException("Order.Error.PickUp.HuOcuppied", resolver.Input);
            }
            if (resolver.BinCode == string.Empty || resolver.BinCode == null)
            {
                throw new BusinessErrorException("Warehouse.PutAway.PlzScanBin");
            }
            if (hu.StorageBin != null && hu.StorageBin.Trim() != string.Empty && hu.StorageBin == resolver.BinCode)
            {
                throw new BusinessErrorException("Warehouse.PutAway.AlreadyInThisBin");
            }
            //校验Bin
            StorageBin        bin = storageBinMgr.CheckAndLoadStorageBin(resolver.BinCode);
            LocationLotDetail locationLotDetail = locationLotDetailMgr.CheckLoadHuLocationLotDetail(resolver.Input, string.Empty, bin.Area.Location.Code);

            locationLotDetail.NewStorageBin = bin;
            TransformerDetail transformerDetail = TransformerHelper.ConvertLocationLotDetailToTransformerDetail(locationLotDetail, true);

            resolver.AddTransformerDetail(transformerDetail);
        }
Exemple #7
0
        protected override void GetDetail(Resolver resolver)
        {
            PickList pickList = pickListMgr.LoadPickList(resolver.Input, true, true);

            resolver.Transformers = TransformerHelper.ConvertPickListDetailsToTransformers(pickList.PickListDetails);
            resolver.Result       = languageMgr.TranslateMessage("Common.Business.PickList", resolver.UserCode) + ":" + resolver.Code;
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
        }
Exemple #8
0
    public void InitPageParameter(InProcessLocation ip)
    {
        bool isScanHu = (ip.InProcessLocationDetails[0].HuId != null);
        List <Transformer> transformerList = TransformerHelper.ConvertInProcessLocationDetailsToTransformers(ip.InProcessLocationDetails);

        this.ucTransformer.InitPageParameter(transformerList, this.ModuleType, BusinessConstants.TRANSFORMER_MODULE_TYPE_SHIPVIEW, isScanHu);
        this.ucTransformer.InitialUIForAsn(ip);
    }
Exemple #9
0
        protected override void SetDetail(Resolver resolver)
        {
            InspectOrderDetail inspectOrderDetail = inspectOrderDetailMgr.CheckAndGetInspectOrderDetail(resolver.Input);
            TransformerDetail  transformerDetail  = TransformerHelper.ConvertInspectDetailToTransformerDetail(inspectOrderDetail);

            resolver.AddTransformerDetail(transformerDetail);
            resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMERDETAIL;
        }
Exemple #10
0
        protected override void GetDetail(Resolver resolver)
        {
            InspectOrder inspectOrder = inspectOrderMgr.LoadInspectOrder(resolver.Code, true);

            resolver.Transformers = TransformerHelper.ConvertInspectDetailToTransformer(inspectOrder.InspectOrderDetails);
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
            resolver.Result       = languageMgr.TranslateMessage("MasterData.Inventory.CurrentInspectOrder", resolver.UserCode, resolver.Code);
        }
        public void ThenTheModifiedOfShouldBeModified(string field, string objectKey, string expectedValueKey)
        {
            var    expectedValue = m_scenarioContext.Get <object>(expectedValueKey);
            object actualValue   = TransformerHelper.GetActualValue(m_scenarioContext, field, objectKey);

            string expectedValueFixed = Regex.Replace(expectedValue.ToString(), @"\s+", string.Empty);
            string actualValueFixed   = Regex.Replace(actualValue.ToString(), @"\s+", string.Empty);

            AssertionHelper.AssertStrings(actualValueFixed, expectedValueFixed);
        }
Exemple #12
0
        private Transformer ConvertCycleCountDetailToTransformer(CycleCountDetail cycleCountDetail)
        {
            Transformer transformer = TransformerHelper.ConvertItemToTransformer(cycleCountDetail.Item);

            transformer.Id      = cycleCountDetail.Id;
            transformer.OrderNo = cycleCountDetail.CycleCount.Code;
            transformer.Qty     = cycleCountDetail.Qty;

            return(transformer);
        }
Exemple #13
0
        /// <summary>
        /// 分步取消
        /// </summary>
        /// <param name="resolver"></param>
        public void CancelOperation(Resolver resolver)
        {
            if (TotalCurrentQty(resolver) == 0)
            {
                resolver.Transformers = null;
                resolver.BinCode      = null;
                resolver.Code         = null;
                resolver.CodePrefix   = null;
                resolver.Description  = null;
                resolver.OrderType    = null;
                resolver.PickBy       = null;
                resolver.BarcodeHead  = null;
                resolver.LocationCode = null;
                resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
                resolver.Result       = string.Empty;//languageMgr.TranslateMessage("Resolver.Cancel.BinAllCancel", resolver.UserCode);
                return;
            }

            if (setDetailMgr.FindMaxSeq(resolver.Transformers) >= 0)
            {
                //最后一条记录的当前数设置CurrentQty为0 设置序号Sequence为0 //为了兼容带条码发货
                int[] indexArray = this.FindMaxSeqTransformerDetailRowAndColumnIndex(resolver.Transformers);
                //resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]] = null;
                if (resolver.CodePrefix == BusinessConstants.BARCODE_HEAD_FLOW)
                {
                    resolver.Transformers[indexArray[0]].Qty -= resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].Qty;
                }
                resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].CurrentQty = 0;
                resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].Sequence   = -1;
                //设置Bin为最后一库格
                indexArray = this.FindMaxSeqTransformerDetailRowAndColumnIndex(resolver.Transformers);
                if (indexArray != null)
                {
                    resolver.BinCode = resolver.Transformers[indexArray[0]].TransformerDetails[indexArray[1]].StorageBinCode;
                }
            }

            TransformerHelper.ProcessTransformer(resolver.Transformers);
            if (resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_PUTAWAY ||
                resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_PICKUP ||
                (IsHasTransformerDetail(resolver) && resolver.ModuleType != BusinessConstants.TRANSFORMER_MODULE_TYPE_PICKLIST))
            {
                resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMERDETAIL;
                if (resolver.BinCode != null && resolver.BinCode != string.Empty)
                {
                    resolver.Result = languageMgr.TranslateMessage("Warehouse.CurrentBinCode", resolver.UserCode, resolver.BinCode);
                }
            }
            else
            {
                resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
            }
            resolver.BarcodeHead = string.Empty;
        }
        /// <summary>
        /// 仅校验投料的物料号,库位是否一致,不校验单位单包装等信息
        /// todo:不允许投入的又有数量又有Hu //可以前台控制
        /// </summary>
        /// <param name="resolver"></param>
        protected override void SetDetail(Resolver resolver)
        {
            if (resolver.CodePrefix == string.Empty)
            {
                throw new BusinessErrorException("Common.Business.Error.ScanProductLineFirst");
            }
            LocationLotDetail locationLotDetail = locationLotDetailMgr.CheckLoadHuLocationLotDetail(resolver.Input, resolver.UserCode);
            TransformerDetail transformerDetail = TransformerHelper.ConvertLocationLotDetailToTransformerDetail(locationLotDetail, false);
            var query = resolver.Transformers.Where
                            (t => (t.ItemCode == transformerDetail.ItemCode && t.LocationCode == transformerDetail.LocationCode));

            if (query.Count() < 1)
            {
                throw new BusinessErrorException("Warehouse.HuMatch.NotMatch", transformerDetail.HuId);
            }

            #region 先进先出校验
            Flow flow = flowMgr.CheckAndLoadFlow(resolver.Code);
            if (flow.IsGoodsReceiveFIFO)
            {
                Hu             hu       = huMgr.CheckAndLoadHu(resolver.Input);
                IList <string> huIdList = new List <string>();
                if (resolver.Transformers != null && resolver.Transformers.Count > 0)
                {
                    foreach (Transformer transformer in resolver.Transformers)
                    {
                        if (transformer.TransformerDetails != null && transformer.TransformerDetails.Count > 0)
                        {
                            foreach (TransformerDetail det in transformer.TransformerDetails)
                            {
                                if (det.CurrentQty != decimal.Zero)
                                {
                                    huIdList.Add(det.HuId);
                                }
                            }
                        }
                    }
                }
                string maxLot = setDetailMgr.CheckFIFO(hu, huIdList);
                if (maxLot != string.Empty && maxLot != null)
                {
                    throw new BusinessErrorException("FIFO.ERROR", hu.HuId, maxLot);
                }
            }
            #endregion

            resolver.AddTransformerDetail(transformerDetail);
        }
Exemple #15
0
        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;
        }
Exemple #16
0
 public void FillDetailByFlow(Resolver resolver, Flow flow)
 {
     foreach (FlowDetail flowDetail in flow.FlowDetails)
     {
         flowDetail.LocationFrom = flowDetail.LocationFrom == null ? flow.LocationFrom : flowDetail.LocationFrom;
         flowDetail.LocationTo   = flowDetail.LocationTo == null ? flow.LocationTo : flowDetail.LocationTo;
         //if (resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_RECEIVERETURN
         //    || resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_SHIPRETURN)
         //{
         //    Location tempLocation = flowDetail.LocationFrom;
         //    flowDetail.LocationFrom = flowDetail.LocationTo;
         //    flowDetail.LocationTo = tempLocation;
         //}
     }
     resolver.Transformers = TransformerHelper.ConvertFlowDetailsToTransformers(flow.FlowDetails);
     //resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
 }
Exemple #17
0
        private static object GetValue <T>(string field, string value, Type function, Type valueType, T target, bool required)
        {
            object v = null;

            if (function != null)
            {
                v = TransformerHelper.Transform(function, value);
            }
            else
            {
                v = ReflectionUtils.ConvertFromString(valueType, value);
            }
            if (v == null && required)
            {
                throw AnnotationProcessorException.Throw(target.GetType(), field);
            }
            return(v);
        }
Exemple #18
0
        public Resolver ReceiveOrder(Resolver resolver)
        {
            ReceiptDetail         recDet            = new ReceiptDetail();
            IList <ReceiptDetail> receiptDetailList = orderMgr.ConvertTransformerToReceiptDetail(resolver.Transformers);
            InProcessLocation     ip = null;

            if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_ASN)
            {
                ip = inProcessLocationMgr.LoadInProcessLocation(resolver.Code);
            }
            Receipt receipt = orderMgr.ReceiveOrder(receiptDetailList, resolver.UserCode, ip, resolver.ExternalOrderNo);

            resolver.Transformers = TransformerHelper.ConvertReceiptToTransformer(receipt.ReceiptDetails);
            resolver.Code         = receipt.ReceiptNo;
            resolver.BinCode      = string.Empty;
            resolver.Result       = languageMgr.TranslateMessage("Common.Business.RecNoIs", resolver.UserCode, receipt.ReceiptNo);
            resolver.Command      = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;
            return(resolver);
        }
Exemple #19
0
        protected override void GetDetail(Resolver resolver)
        {
            InProcessLocation inProcessLocation = null;

            //订单收货
            if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_ORDER)
            {
                inProcessLocation = orderMgr.ConvertOrderToInProcessLocation(resolver.Input);
            }
            //ASN收货
            else if (resolver.CodePrefix == BusinessConstants.CODE_PREFIX_ASN)
            {
                inProcessLocation = inProcessLocationMgr.LoadInProcessLocation(resolver.Code, true);
            }
            if (inProcessLocation == null || inProcessLocation.InProcessLocationDetails == null || inProcessLocation.InProcessLocationDetails.Count == 0)
            {
                throw new BusinessErrorException("Common.Business.Error.NoDetailToReceive");
            }


            List <Transformer> newTransformerList = TransformerHelper.ConvertInProcessLocationDetailsToTransformers(inProcessLocation.InProcessLocationDetails);

            if (resolver.IsScanHu)
            {
                ClearReceivedQty(newTransformerList);
            }
            resolver.Transformers = resolver.Transformers == null ? new List <Transformer>() : resolver.Transformers;
            resolver.Transformers.AddRange(newTransformerList);
            resolver.Command = BusinessConstants.CS_BIND_VALUE_TRANSFORMER;

            if (resolver.Transformers != null && resolver.Transformers.Count > 0)
            {
                foreach (Transformer transformer in resolver.Transformers)
                {
                    OrderLocationTransaction outOrderLocationTransaction = this.orderLocationTransactionMgr.LoadOrderLocationTransaction(transformer.OrderLocTransId);
                    OrderLocationTransaction inOrderLocationTransaction  = orderLocationTransactionMgr.GetOrderLocationTransaction(outOrderLocationTransaction.OrderDetail.Id, BusinessConstants.IO_TYPE_IN)[0];

                    transformer.OrderLocTransId = inOrderLocationTransaction.Id;
                }
            }
        }
Exemple #20
0
 protected override void SetDetail(Resolver resolver)
 {
     if (resolver.CodePrefix == string.Empty)
     {
         throw new BusinessErrorException("Common.Business.Error.ScanFlowFirst");
     }
     if (resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_PRODUCTIONRECEIVE)
     {
         LocationLotDetail locationLotDetail    = locationLotDetailMgr.CheckLoadHuLocationLotDetail(resolver.Input, resolver.UserCode);
         TransformerDetail newTransformerDetail = TransformerHelper.ConvertLocationLotDetailToTransformerDetail(locationLotDetail, false);
         resolver.AddTransformerDetail(newTransformerDetail);
     }
     else
     {
         setDetailMgr.MatchReceive(resolver);
         if (resolver.BinCode != null && resolver.BinCode != string.Empty)
         {
             resolver.Result = languageMgr.TranslateMessage("Warehouse.CurrentBinCode", resolver.UserCode, resolver.BinCode);
         }
     }
 }
    //todo, move to service
    private void ItemInput(string itemCode)
    {
        var query = this.CacheResolver.Transformers.Where(t => t.ItemCode == itemCode && t.TransformerDetails == null).Count();

        if (query > 0)
        {
            throw new BusinessErrorException("Common.Business.Error.EntityExist", itemCode);
        }

        Item        item        = TheItemMgr.CheckAndLoadItem(itemCode);
        Transformer transformer = TransformerHelper.ConvertItemToTransformer(item);

        if (CacheResolver.Transformers == null)
        {
            CacheResolver.Transformers = new List <Transformer>();
        }

        CacheResolver.Transformers.Add(transformer);
        this.ucItemList.ItemInputCallBack(this.CacheResolver.Transformers);
        this.ucItemList.BindList(this.CacheResolver.Transformers, false);
    }
Exemple #22
0
    private List <Transformer> ConvertReceiptToTransformer(IList <ReceiptDetail> receiptDetails)
    {
        var query =
            from r in receiptDetails
            group r by r.OrderLocationTransaction into g
            select new { g.Key, Qty = g.Sum(r => r.ShippedQty), CurrentQty = g.Sum(r => r.ReceivedQty), Details = g.Where(r => r.OrderLocationTransaction == g.Key) };

        List <Transformer> transformers = new List <Transformer>();

        foreach (var item in query)
        {
            Transformer transformer = TransformerHelper.ConvertOrderLocationTransactionToTransformer(item.Key);

            transformer.Qty = transformer.OrderedQty;
            //  transformer.Qty = item.Qty.HasValue ? item.Qty.Value : 0;
            transformer.CurrentQty         = item.CurrentQty.HasValue ? item.CurrentQty.Value : 0;
            transformer.TransformerDetails = TransformerHelper.ConvertReceiptsToTransformerDetails(new List <ReceiptDetail>(item.Details));
            transformers.Add(transformer);
        }

        return(transformers);
    }
Exemple #23
0
 public void InitPageParameter(Receipt receipt)
 {
     this.TransformerDetailList = TransformerHelper.ConvertReceiptsToTransformerDetails(receipt.ReceiptDetails);
     this.GV_List.DataSource    = this.TransformerDetailList;
     this.GV_List.DataBind();
 }
Exemple #24
0
        protected override void SetDetail(Resolver resolver)
        {
            #region Hu状态查询
            if (resolver.ModuleType == BusinessConstants.TRANSFORMER_MODULE_TYPE_HUSTATUS)
            {
                Hu hu = null;
                //检查库存
                LocationLotDetail locationLotDetail = locationLotDetailMgr.LoadHuLocationLotDetail(resolver.Input);
                if (locationLotDetail == null)//库存中没有,检查HuDet
                {
                    hu = huMgr.CheckAndLoadHu(resolver.Input);
                    //修正状态
                    if (hu.Status == BusinessConstants.CODE_MASTER_HU_STATUS_VALUE_INVENTORY)
                    {
                        hu.Status = "ERROR";
                    }
                }
                else
                {
                    hu = locationLotDetail.Hu;
                    //修正库位 数量
                    hu.Location = locationLotDetail.Location.Code;
                    hu.Qty      = locationLotDetail.Qty / hu.UnitQty;
                    if (hu.Status == BusinessConstants.CODE_MASTER_HU_STATUS_VALUE_INVENTORY)
                    {
                        if (this.locationMgr.IsHuOcuppyByPickList(resolver.Input))
                        {
                            hu.Status += languageMgr.TranslateMessage("MasterDate.PickList.Ocuppied", resolver.UserCode);
                        }
                    }
                }
                TransformerDetail transformerDetail = TransformerHelper.ConvertHuToTransformerDetail(hu);
                if (locationLotDetail != null && locationLotDetail.StorageBin != null)
                {
                    transformerDetail.StorageBinCode = locationLotDetail.StorageBin.Code;
                }
                resolver.Transformers = null;
                resolver.AddTransformerDetail(transformerDetail);
            }
            #endregion

            #region 盘点
            else
            {
                if (resolver.WorkingHours == null || resolver.WorkingHours.Count != 2)
                {
                    //出错
                    throw new BusinessErrorException("CycCnt.Error.ScanCycCountFirst");
                }
                if (resolver.LocationCode == null || resolver.LocationCode == string.Empty)
                {
                    throw new BusinessErrorException("CycCnt.Error.HasNoLocation");
                }
                //如果指定了库格或启用了高级仓库管理,需要先扫描库格.
                //if ((resolver.BinCode == null || resolver.BinCode == string.Empty)
                //    && (resolver.WorkingHours[1].Length > 0 || resolver.IsPickFromBin))
                //{
                //    throw new BusinessErrorException("CycCnt.Error.ScanStorageBinFirst");
                //}

                //检查当月盘点重复扫描
                this.cycleCountMgr.CheckHuExistThisCount(resolver.Input);
                Hu hu = huMgr.CheckAndLoadHu(resolver.Input);

                if (hu.Status == BusinessConstants.CODE_MASTER_HU_STATUS_VALUE_CLOSE)
                {
                    throw new BusinessErrorException("CycCnt.Error.HuStatusError", hu.Status);
                }

                if (resolver.WorkingHours[0].Length > 0 && !resolver.WorkingHours[0].Contains(hu.Item.Code))
                {
                    if (resolver.WorkingHours[0].Length > 0)
                    {
                        throw new BusinessErrorException("CycCnt.Error.NotContainTheItem");
                    }
                    else
                    {
                        //nothing todo
                    }
                }

                TransformerDetail transformerDetail = Utility.TransformerHelper.ConvertHuToTransformerDetail(hu);
                transformerDetail.StorageBinCode = resolver.BinCode;
                resolver.AddTransformerDetail(transformerDetail);
            }
            #endregion
        }