Beispiel #1
0
        /// <summary>
        /// 获取本地商品快照列表(包含详情)
        /// </summary>
        /// <returns></returns>
        public static List <Commodity> GetCommodity()
        {
            var commodityEps       = ApplicationState.GetGoodsInfo();
            var baseCommodityCodes = CommodityCodeBll.GetInstance().GetCommodityCode(commodityEps);

            baseCommodityCodes = HttpHelper.GetInstance().ResultCheck(baseCommodityCodes, out bool isSuccess);
            List <Commodity> commodityLists = null;

            if (isSuccess)
            {
                //获取有效期和生产商
                CommodityCodeBll.GetInstance().GetExpirationAndManufactor(baseCommodityCodes, out bool isSuccess2);
                var tempList = baseCommodityCodes.body.objects;
                //商品列表集合
                commodityLists = tempList
                                 .GroupBy(code => new { code.CommodityId, code.GoodsLocationId })
                                 .Select(g => (new Commodity()
                {
                    id = g.Key.CommodityId,    //CommodityId
                    GoodsLocationId = g.Key.GoodsLocationId,
                    GoodsLocationName = g.ElementAt(0).GoodsLocationName,
                    name = g.ElementAt(0).CommodityName, //name
                    Count = g.Count(),                   //商品数量
                    codes = tempList.Where(it => it.CommodityId == g.Key.CommodityId && it.GoodsLocationId == g.Key.GoodsLocationId).ToList()
                })).ToList();
            }
            else
            {
                LogUtils.Error($"LocalGoodsChangeBll:GetCommodity {baseCommodityCodes.message}");
            }
            return(commodityLists);
        }
        /// <summary>
        /// 数据加载
        /// </summary>
        private void onInitData(object sender, ElapsedEventArgs e)
        {
            App.Current.Dispatcher.Invoke((Action)(() =>
            {
                HashSet <CommodityEps> before = ApplicationState.GetGoodsInfo();

                List <CommodityCode> commodityCodeList = CommodityCodeBll.GetInstance().GetCompareSimpleCommodity(before, after);
                if (commodityCodeList == null || commodityCodeList.Count <= 0)
                {
                    MessageBox.Show("没有检测到商品变化!", "温馨提示", MessageBoxButton.OK);
                    isSuccess = false;
                    return;
                }

                LoadingDataEvent(this, true);
                bdCommodityCode = CommodityCodeBll.GetInstance().GetCommodityCode(commodityCodeList);
                LoadingDataEvent(this, false);

                HttpHelper.GetInstance().ResultCheck(bdCommodityCode, out isSuccess);
                if (!isSuccess)
                {
                    MessageBox.Show("获取商品信息错误!" + bdCommodityCode.message, "温馨提示", MessageBoxButton.OK);
                    return;
                }

                bdCommodityDetail = PickBll.GetInstance().GetPickTaskCommodityDetail(pickTask);
                HttpHelper.GetInstance().ResultCheck(bdCommodityDetail, out isSuccess);
                if (!isSuccess)
                {
                    MessageBox.Show("获取拣货任务单商品明细信息错误!" + bdCommodityDetail.message, "温馨提示", MessageBoxButton.OK);
                    return;
                }

                LoadingDataEvent(this, true);
                PickBll.GetInstance().GetPickTaskChange(bdCommodityCode, pickTask, bdCommodityDetail);
                LoadingDataEvent(this, false);

                int outCnt = bdCommodityCode.body.objects.Where(item => item.operate_type == 0).ToList().Count;
                int abnormalOutCnt = bdCommodityCode.body.objects.Where(item => item.operate_type == 0 && item.AbnormalDisplay == "异常").ToList().Count;
                int abnormalInCnt = bdCommodityCode.body.objects.Where(item => item.operate_type == 1).ToList().Count;

                outNum.Content = outCnt;
                abnormalInNum.Content = abnormalInCnt;
                abnormalOutNum.Content = abnormalOutCnt;
                listView.DataContext = bdCommodityCode.body.objects;

                int abnormalLargeNum = bdCommodityDetail.body.objects.Where(item => item.CurPickNumber > (item.Number - item.PickNumber)).Count();

                if (abnormalInCnt == 0 && abnormalOutCnt == 0 && abnormalLargeNum == 0)
                {
                    normalBtmView.Visibility = Visibility.Visible;
                    abnormalBtmView.Visibility = Visibility.Collapsed;
                }
                else
                {
                    normalBtmView.Visibility = Visibility.Collapsed;
                    abnormalBtmView.Visibility = Visibility.Visible;
                }
            }));
        }
        /// <summary>
        /// 加载数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void onInitData(object sender, ElapsedEventArgs e)
        {
            App.Current.Dispatcher.Invoke((Action)(() =>
            {
                HashSet <CommodityEps> before = ApplicationState.GetGoodsInfo();

                LoadingDataEvent(this, true);
                List <CommodityCode> commodityCodeList = CommodityCodeBll.GetInstance().GetCompareSimpleCommodity(before, after);
                LoadingDataEvent(this, false);

                if (commodityCodeList == null || commodityCodeList.Count <= 0)
                {
                    MessageBox.Show("没有检测到商品变化!", "温馨提示", MessageBoxButton.OK);
                    isSuccess = false;
                    return;
                }

                LoadingDataEvent(this, true);
                bdCommodityCode = CommodityCodeBll.GetInstance().GetCommodityCode(commodityCodeList);
                HttpHelper.GetInstance().ResultCheck(bdCommodityCode, out isSuccess);
                if (isSuccess)
                {
                    bdCommodityCode = CommodityCodeBll.GetInstance().GetQualityStatus(bdCommodityCode, out isSuccess);
                }
                LoadingDataEvent(this, false);

                //校验是否含有数据
                HttpHelper.GetInstance().ResultCheck(bdCommodityCode, out isSuccess);
                if (!isSuccess)
                {
                    MessageBox.Show("获取商品比较信息错误!" + bdCommodityCode.message, "温馨提示", MessageBoxButton.OK);
                    return;
                }

                listView.DataContext = bdCommodityCode.body.objects;
                returnNum.Content = bdCommodityCode.body.objects.Where(item => item.operate_type == 1).Count();
                fetchNum.Content = bdCommodityCode.body.objects.Where(item => item.operate_type == 0).Count();
                int expiredCnt = bdCommodityCode.body.objects.Where(item => item.operate_type == 0 && (item.QualityStatus == QualityStatusType.过期.ToString() || item.InventoryStatus == CommodityInventoryChangeStatus.待回收.ToString())).Count();

                expiredNum.Content = expiredCnt;

                bdCommodityCode.body.objects.Where(item => item.operate_type == 0).ToList().ForEach(it =>
                {
                    it.AbnormalDisplay = AbnormalDisplay.异常.ToString();
                });

                //领用产品上包含过期商品不让用户主动提交
                if (expiredCnt == 0)
                {
                    normalBtmView.Visibility = Visibility.Visible;
                    abnormalBtmView.Visibility = Visibility.Collapsed;
                }
                else
                {
                    normalBtmView.Visibility = Visibility.Collapsed;
                    abnormalBtmView.Visibility = Visibility.Visible;
                }
            }));
        }
        /// <summary>
        /// 数据加载
        /// </summary>
        private void onInitData(object sender, ElapsedEventArgs e)
        {
            App.Current.Dispatcher.Invoke((Action)(() =>
            {
                HashSet <CommodityEps> before = ApplicationState.GetGoodsInfo();

                List <CommodityCode> commodityCodeList = CommodityCodeBll.GetInstance().GetCompareSimpleCommodity(before, after);
                if (commodityCodeList == null || commodityCodeList.Count <= 0)
                {
                    MessageBox.Show("没有检测到商品变化!", "温馨提示", MessageBoxButton.OK);
                    isSuccess = false;
                    return;
                }

                LoadingDataEvent(this, true);
                bdCommodityCode = CommodityCodeBll.GetInstance().GetCommodityCode(commodityCodeList);
                LoadingDataEvent(this, false);

                HttpHelper.GetInstance().ResultCheck(bdCommodityCode, out isSuccess);
                if (!isSuccess)
                {
                    MessageBox.Show("获取商品信息错误!" + bdCommodityCode.message, "温馨提示", MessageBoxButton.OK);
                    return;
                }

                listView.DataContext = bdCommodityCode.body.objects;
                outNum.Content = bdCommodityCode.body.objects.Where(item => item.operate_type == 0).Count();
                abnormalInNum.Content = bdCommodityCode.body.objects.Where(item => item.operate_type == 1).Count();

                //回收取货
                if (commodityRecovery != null)
                {
                    bdCommodityCode.body.objects.Where(item => item.operate_type == 1).ToList().ForEach(it => {
                        it.AbnormalDisplay = AbnormalDisplay.异常.ToString();
                    });

                    if (bdCommodityCode.body.objects.Where(item => item.operate_type == 1).Count() > 0)
                    {
                        normalBtmView.Visibility = Visibility.Collapsed;
                        abnormalBtmView.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        normalBtmView.Visibility = Visibility.Visible;
                        abnormalBtmView.Visibility = Visibility.Collapsed;
                    }
                }
                //回收取货
                else
                {
                    normalBtmView.Visibility = Visibility.Visible;
                    abnormalBtmView.Visibility = Visibility.Collapsed;
                }
            }));
        }
Beispiel #5
0
        /// <summary>
        /// 获取本地CommodityCode列表
        /// </summary>
        /// <returns></returns>
        private List <CommodityCode> GetCommodityCodes()
        {
            var commodityEps       = ApplicationState.GetGoodsInfo();
            var baseCommodityCodes = CommodityCodeBll.GetInstance().GetCommodityCode(commodityEps);

            baseCommodityCodes = HttpHelper.GetInstance().ResultCheck(baseCommodityCodes, out bool isSuccess);
            if (isSuccess)
            {
                return(baseCommodityCodes.body.objects);
            }
            return(null);
        }
Beispiel #6
0
        /// <summary>
        /// 处理输入事件
        /// </summary>
        /// <returns></returns>
        private bool HandleEnterDetail()
        {
            var inputStr = tbInputCode.Text;

            if (string.IsNullOrWhiteSpace(inputStr))
            {
                MessageBox.Show("单号不可以为空!", "温馨提示", MessageBoxButton.OK);
                return(false);
            }

            TaskOrder taskOrder;
            string    name;

            try
            {
                taskOrder = JsonConvert.DeserializeObject <TaskOrder>(inputStr);
                name      = taskOrder.name;
            }
            catch
            {
                name = inputStr;
            }

            if (consumingOrderType != ConsumingOrderType.医嘱处方领用)
            {
                FetchParam fetchParam = new FetchParam();
                LoadingDataEvent(this, true);
                fetchParam.bdConsumingOrder = ConsumingBll.GetInstance().GetConsumingOrder(name.ToUpper());
                LoadingDataEvent(this, false);

                //校验是否含有数据
                HttpHelper.GetInstance().ResultCheck(fetchParam.bdConsumingOrder, out bool isSuccess);
                if (!isSuccess)
                {
                    MessageBox.Show("无法获取领用单详情!" + fetchParam.bdConsumingOrder.message, "温馨提示", MessageBoxButton.OK);
                    return(false);
                }

                LoadingDataEvent(this, true);
                fetchParam.bdOperationOrderGoodsDetail = ConsumingBll.GetInstance().GetOperationOrderGoodsDetail(fetchParam.bdConsumingOrder);
                LoadingDataEvent(this, false);

                //校验是否含有数据
                HttpHelper.GetInstance().ResultCheck(fetchParam.bdOperationOrderGoodsDetail, out bool isSuccess1);
                if (!isSuccess1)
                {
                    MessageBox.Show("无法获取手术单物品详情!" + fetchParam.bdOperationOrderGoodsDetail.message, "温馨提示", MessageBoxButton.OK);
                    return(false);
                }

                HashSet <CommodityEps>   hs = ApplicationState.GetGoodsInfo();
                BaseData <CommodityCode> bdCommodityCode = CommodityCodeBll.GetInstance().GetCommodityCode(ApplicationState.GetGoodsInfo());

                ConsumingBll.GetInstance().CombinationStockNum(fetchParam.bdOperationOrderGoodsDetail, bdCommodityCode);

                EnterSurgeryDetailEvent(this, fetchParam);
            }
            else
            {
                LoadingDataEvent(this, true);
                BaseData <PrescriptionBill> baseData = ConsumingBll.GetInstance().GetPrescriptionBill(name);
                LoadingDataEvent(this, false);

                //校验是否含有数据
                HttpHelper.GetInstance().ResultCheck(baseData, out bool isSuccess);

                if (!isSuccess)
                {
                    MessageBox.Show("无法获取处方单!" + baseData.message, "温馨提示", MessageBoxButton.OK);
                    return(false);
                }

                EnterPrescriptionOpenEvent(this, new ConsumingOrder {
                    SourceBill = new SourceBill
                    {
                        object_name = "PrescriptionBill",
                        object_id   = baseData.body.objects[0].id
                    }
                });
            }

            return(true);
        }