private List <CommodityCode> GetCompareSimpleCommodity(HashSet <string> preCommodityEpsCollect, HashSet <string> afterCommodityEpsCollect)
        {
            var commodityCodes = new List <CommodityCode>();

            foreach (string currentEps in afterCommodityEpsCollect)
            {
                if (!preCommodityEpsCollect.Contains(currentEps))
                {
                    commodityCodes.Add(new CommodityCode
                    {
                        name = currentEps,
                        //TODO: 需要关联当前本地的设备,货位,库房id
                        EquipmentId   = ApplicationState.GetEquipId(),
                        EquipmentName = ApplicationState.GetEquipName(),
                        operate_type  = (int)OperateType.入库
                    });
                }
            }

            foreach (string currentEps in preCommodityEpsCollect)
            {
                if (!afterCommodityEpsCollect.Contains(currentEps))
                {
                    commodityCodes.Add(new CommodityCode
                    {
                        name         = currentEps,
                        operate_type = (int)OperateType.出库
                    });
                }
            }

            return(commodityCodes);
        }
        public SystemSetting()
        {
            InitializeComponent();

            SerialComList = new List <string>();
            SerialComList.Add("COM1");
            SerialComList.Add("COM2");
            SerialComList.Add("COM3");
            SerialComList.Add("COM4");
            SerialComList.Add("COM5");
            SerialComList.Add("COM6");
            SerialComList.Add("COM7");
            SerialComList.Add("COM8");
            SerialComList.Add("COM9");

            tbHouseName.Text = ApplicationState.GetHouseName();
            tbEquipName.Text = ApplicationState.GetEquipName();

            tbMCabName.Text = ApplicationState.GetMCabName();
#if DUALCAB
            tbSCabName.Text = ApplicationState.GetSCabName();
#endif

            MLockerCB.SelectedItem = ApplicationState.GetMLockerCOM();
#if DUALCAB
            SLockerCB.SelectedItem = ApplicationState.GetSLockerCOM();
#endif

            MrfidCB.SelectedItem = ApplicationState.GetMRfidCOM();
#if DUALCAB
            SrfidCB.SelectedItem = ApplicationState.GetSRfidCOM();
#endif

            MVeinCB.SelectedItem = ApplicationState.GetMVeinCOM();

#if DUALCAB
#else
            lbSCabName.Visibility = Visibility.Hidden;
            tbSCabName.Visibility = Visibility.Hidden;

            tbSrfid.Visibility = Visibility.Hidden;
            SrfidCB.Visibility = Visibility.Hidden;

            tbSLocker.Visibility = Visibility.Hidden;
            SLockerCB.Visibility = Visibility.Hidden;
#endif
        }
예제 #3
0
        public static HashSet <CommodityEps> GetEpcDataJsonInventory(out bool isGetSuccess)
        {
            isGetSuccess = true;
            string com1 = ApplicationState.GetMRfidCOM();
            var    ret  = new HashSet <CommodityEps>()
            {
                new CommodityEps
                {
                    CommodityCodeName = "RF00000327",
                    EquipmentId       = ApplicationState.GetEquipId(),
                    EquipmentName     = ApplicationState.GetEquipName(),
                    StoreHouseId      = ApplicationState.GetHouseId(),
                    StoreHouseName    = ApplicationState.GetHouseName(),
                    GoodsLocationName = ApplicationState.GetCabNameByRFidCom(com1),
                    GoodsLocationId   = ApplicationState.GetCabIdByRFidCom(com1)
                },
                new CommodityEps
                {
                    CommodityCodeName = "RF00000333",
                    EquipmentId       = ApplicationState.GetEquipId(),
                    EquipmentName     = ApplicationState.GetEquipName(),
                    StoreHouseId      = ApplicationState.GetHouseId(),
                    StoreHouseName    = ApplicationState.GetHouseName(),
                    GoodsLocationName = ApplicationState.GetCabNameByRFidCom(com1),
                    GoodsLocationId   = ApplicationState.GetCabIdByRFidCom(com1)
                },
                new CommodityEps
                {
                    CommodityCodeName = "RF00000324",
                    EquipmentId       = ApplicationState.GetEquipId(),
                    EquipmentName     = ApplicationState.GetEquipName(),
                    StoreHouseId      = ApplicationState.GetHouseId(),
                    StoreHouseName    = ApplicationState.GetHouseName(),
                    GoodsLocationName = ApplicationState.GetCabNameByRFidCom(com1),
                    GoodsLocationId   = ApplicationState.GetCabIdByRFidCom(com1)
                }
            };

            return(ret);
        }
        /// <summary>
        /// 加载数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void onInitData(object sender, ElapsedEventArgs e)
        {
            App.Current.Dispatcher.Invoke((Action)(() =>
            {
                LoadingDataEvent(this, true);
                BaseData <InventoryPlan> bdInventoryPlan = InventoryTaskBll.GetInstance().GetInventoryPlanByEquipmnetNameOrId(ApplicationState.GetEquipName());
                LoadingDataEvent(this, false);

                if (bdInventoryPlan.code != 0)
                {
                    inventoryTime.Content = "无法获取盘点计划";
                }
                else
                {
                    InventoryPlan plan = bdInventoryPlan.body.objects[0];

                    if (plan.CheckPeriod == "每日")
                    {
                        inventoryTime.Content = plan.CheckPeriod + " " + plan.InventoryTime;
                    }
                    else if (plan.CheckPeriod == "每周")
                    {
                        inventoryTime.Content = plan.CheckPeriod + plan.InventoryWeekday + " " + plan.InventoryTime;
                    }
                    else if (plan.CheckPeriod == "每月")
                    {
                        inventoryTime.Content = plan.CheckPeriod + plan.InventoryDay + " " + plan.InventoryTime;
                    }
                    else
                    {
                        inventoryTime.Content = "";
                    }
                }
                DataContext = this;

                GetInventoryList();

                tbInputNumbers.Focus();
            }));
        }
        /// <summary>
        /// 通过【调拨上架任务】(AllotShelf.id=AllotShelfCommodity.AllotShelfId)从表格 【调拨上架商品明细】中查询获取调拨上架商品的列表信息
        /// </summary>
        /// <param name="allotShelf"></param>
        /// <returns></returns>
        public BaseData <AllotShelfCommodity> GetShelfTaskCommodityDetail(AllotShelf allotShelf)
        {
            BaseData <AllotShelfCommodity> baseDataAllotShelfCommodity = HttpHelper.GetInstance().Get <AllotShelfCommodity>(new QueryParam
            {
                view_filter =
                {
                    filter                =
                    {
                        logical_relation = "1 AND 2 AND 3",
                        expressions      =
                        {
                            new QueryParam.Expressions
                            {
                                field     = "AllotShelfId",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(allotShelf.id) }'" }
                            },
                            new QueryParam.Expressions
                            {
                                field     = "StoreHouseId",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetHouseId()) }'" }
                            },
                            new QueryParam.Expressions
                            {
                                field     = "EquipmentId",
                                @operator = "==",
                                operands  = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetEquipId()) }'" }
                            }
                        }
                    }
                }
            });

            //校验是否含有数据,如果含有数据,拼接具体字段
            HttpHelper.GetInstance().ResultCheck(baseDataAllotShelfCommodity, out bool isSuccess);

            if (isSuccess)
            {
                baseDataAllotShelfCommodity.body.objects.ForEach(it =>
                {
                    ///按理说根据该条件查询出来的商品设备名称和库房名称已经固定
                    ////拼接设备名字
                    //if (!string.IsNullOrEmpty(it.EquipmentId))
                    //{
                    //    it.EquipmentName = GetNameById<Equipment>(it.EquipmentId);
                    //}
                    it.EquipmentName = HttpUtility.UrlEncode(ApplicationState.GetEquipName());


                    ////拼接库房名字
                    //if (!string.IsNullOrEmpty(it.StoreHouseId))
                    //{
                    //    it.StoreHouseName = GetNameById<StoreHouse>(it.StoreHouseId);
                    //}
                    it.StoreHouseName = HttpUtility.UrlEncode(ApplicationState.GetHouseName());

                    //拼接商品码名称
                    if (!string.IsNullOrEmpty(it.CommodityCodeId))
                    {
                        it.CommodityCodeName = GetNameById <CommodityCode>(it.CommodityCodeId);
                    }

                    //拼接货位名字
                    if (!string.IsNullOrEmpty(it.GoodsLocationId))
                    {
                        it.GoodsLocationName = GetNameById <GoodsLocation>(it.GoodsLocationId);
                    }

                    //拼接商品名字
                    if (!string.IsNullOrEmpty(it.CommodityId))
                    {
                        it.CommodityName = GetNameById <Commodity>(it.CommodityId);
                    }
                });
            }

            return(baseDataAllotShelfCommodity);
        }
예제 #6
0
        /// <summary>
        /// 根据eps json获取eps对象数据
        /// </summary>
        /// <param name="isGetSuccess"></param>
        /// <returns></returns>
        public static HashSet <CommodityEps> GetEpcDataJson(out bool isGetSuccess)
        {
            isGetSuccess = true;

            //string com1 = "COM1";
            string           com1        = ApplicationState.GetMRfidCOM();
            HashSet <string> com1HashSet = new HashSet <string>();

            string log = "";

#if DUALCAB
            //string com4 = "COM4";
            string           com4        = ApplicationState.GetSRfidCOM();
            HashSet <string> com4HashSet = new HashSet <string>();
#endif
            HashSet <CommodityEps> currentEpcDataHs = new HashSet <CommodityEps>();

            //TODO:需要补充id
            GClient com1ClientConn = CreateClientConn(com1, "115200", out bool isCom1Connect);
            if (isCom1Connect)
            {
                com1HashSet = DealComData(com1ClientConn, com1, out isGetSuccess);
            }
            else
            {
                isGetSuccess = false;
            }

#if DUALCAB
            GClient com4ClientConn = CreateClientConn(com4, "115200", out bool isCom4Connect);
            if (isCom4Connect)
            {
                com4HashSet = DealComData(com4ClientConn, com4, out isGetSuccess);
            }
            else
            {
                isGetSuccess = false;
            }
#endif

            WaitHandle.WaitAll(manualEvents.ToArray());
            manualEvents.Clear();

            //提取com1的标签epc,并组装
            foreach (string rfid in com1HashSet)
            {
                CommodityEps commodityEps = new CommodityEps
                {
                    CommodityCodeName = $"RF{rfid.Substring(rfid.Length - 8)}",
                    EquipmentId       = ApplicationState.GetEquipId(),
                    EquipmentName     = ApplicationState.GetEquipName(),
                    StoreHouseId      = ApplicationState.GetHouseId(),
                    StoreHouseName    = ApplicationState.GetHouseName(),
                    GoodsLocationName = ApplicationState.GetCabNameByRFidCom(com1),
                    GoodsLocationId   = ApplicationState.GetCabIdByRFidCom(com1)
                };

                currentEpcDataHs.Add(commodityEps);
                LogUtils.Debug(commodityEps.CommodityCodeName + commodityEps.CommodityName);
                log += commodityEps.CommodityCodeName + " ";
            }

#if DUALCAB
            //提取com4的标签epc,并组装
            foreach (string rfid in com4HashSet)
            {
                CommodityEps commodityEps = new CommodityEps
                {
                    CommodityCodeName = $"RF{rfid.Substring(rfid.Length - 8)}",
                    EquipmentId       = ApplicationState.GetEquipId(),
                    EquipmentName     = ApplicationState.GetEquipName(),
                    StoreHouseId      = ApplicationState.GetHouseId(),
                    StoreHouseName    = ApplicationState.GetHouseName(),
                    GoodsLocationName = ApplicationState.GetCabNameByRFidCom(com1),
                    GoodsLocationId   = ApplicationState.GetCabIdByRFidCom(com1)
                };

                currentEpcDataHs.Add(commodityEps);
                LogUtils.Debug(commodityEps.CommodityCodeName + commodityEps.CommodityName);
                log += commodityEps.CommodityCodeName + " ";
            }
#endif

            Task.Factory.StartNew(a =>
            {
                LogUtils.Debug(log);
            }, log);

            LogUtils.Debug("RFID NUM:" + currentEpcDataHs.Count());
            return(currentEpcDataHs);
        }