/// <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; } })); }
/// <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); }
/// <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); }