public SurgeryNoNumClose(HashSet <CommodityEps> afterEps, ConsumingOrderType type, ConsumingOrder order)
        {
            InitializeComponent();

            consumingOrder     = order;
            consumingOrderType = type;

            time.Content          = DateTime.Now.ToString("yyyy年MM月dd日");
            operatorName.Content  = ApplicationState.GetUserInfo().name;
            lbTypeContent.Content = type;
            after = afterEps;

            Timer iniTimer = new Timer(100);

            iniTimer.AutoReset = false;
            iniTimer.Enabled   = true;
            iniTimer.Elapsed  += new ElapsedEventHandler(onInitData);
        }
예제 #2
0
        public SurgeryQuery(ConsumingOrderType type)
        {
            InitializeComponent();

            consumingOrderType = type;

            if (type == ConsumingOrderType.医嘱处方领用)
            {
                lbInputCode.Content  = "请输入医嘱处方单号或扫描二维码";
                btnNoCode.Visibility = Visibility.Hidden;
            }
            else
            {
                lbInputCode.Content  = "请输入手术领用单号或扫描二维码";
                btnNoCode.Visibility = Visibility.Visible;
            }

            tbInputCode.Focus();
        }
예제 #3
0
        /// <summary>
        /// 无单领用提交接口
        /// (2019-08-27 18:08)变更流程为:领用中->创建子表->变更主表状态[异常,已完成]
        /// 当领用过程中放进商品则主单状态异常,领用物品主单状态正常
        /// </summary>
        /// <param name="baseDataCommodityCode"></param>
        /// <returns></returns>
        public BasePostData <CommodityInventoryChange> SubmitConsumingChangeWithoutOrder(BaseData <CommodityCode> baseDataCommodityCode, ConsumingOrderType type, SourceBill sourceBill = null)
        {
            var normalList = new List <CommodityCode>();            //回退商品列表
            var lossList   = new List <CommodityCode>();            //领用商品列表
            var changeList = new List <CommodityInventoryChange>(); //商品库存变更记录列表

            baseDataCommodityCode.body.objects.ForEach(commodityCode =>
            {
                //为0标识为出库
                if (commodityCode.operate_type == 0)
                {
                    lossList.Add(commodityCode);
                }
                else
                {
                    normalList.Add(commodityCode);
                };
            });

            ConsumingOrder consumingOrder = new ConsumingOrder()
            {
                FinishDate = GetDateTimeNow(),//完成时间
                ////当入库数量大于0说明在领用的时候进行了入库操作,变更领用单状态为异常
                //Status = normalList.Count > 0 ? ConsumingOrderStatus.异常.ToString() : ConsumingOrderStatus.已完成.ToString(), //
                Status       = ConsumingOrderStatus.领用中.ToString(),
                StoreHouseId = ApplicationState.GetValue <String>((int)ApplicationKey.HouseId), //领用库房
                Type         = type.ToString(),                                                 //领用类型
                SourceBill   = type == ConsumingOrderType.医嘱处方领用 ? sourceBill : null            // 需要填写医嘱处方SourceBill
            };


            //创建领用单
            var order = CreateConsumingOrder(consumingOrder);

            //校验数据是否正常
            HttpHelper.GetInstance().ResultCheck(order, out bool isSuccess);

            if (!isSuccess)
            {
                LogUtils.Warn("CreateConsumingOrder 1:" + ResultCode.Result_Exception.ToString());
                return(new BasePostData <CommodityInventoryChange>()
                {
                    code = (int)ResultCode.Result_Exception,
                    message = ResultCode.Result_Exception.ToString()
                });
            }
            //当正常数量大于0说明向智能柜中存放商品,需要创建商品变更记录
            if (normalList.Count > 0)
            {
                normalList.ForEach(normal =>
                {
                    changeList.Add(new CommodityInventoryChange()
                    {
                        CommodityCodeId = normal.id,
                        SourceBill      = new SourceBill()
                        {
                            object_name = "ConsumingReturnOrder"
                        },
                        ChangeStatus    = CommodityInventoryChangeStatus.正常.ToString(),
                        EquipmentId     = normal.EquipmentId,
                        StoreHouseId    = normal.StoreHouseId,
                        GoodsLocationId = normal.GoodsLocationId
                    });
                });
            }

            //当消耗数量大于0说明向智能柜中取出商品,需要创建商品变更记录
            if (lossList.Count > 0)
            {
                lossList.ForEach(loss =>
                {
                    changeList.Add(new CommodityInventoryChange()
                    {
                        CommodityCodeId = loss.id,
                        SourceBill      = new SourceBill()
                        {
                            object_name = "ConsumingOrder",
                            object_id   = order.body[0].id
                        },
                        ChangeStatus = CommodityInventoryChangeStatus.已消耗.ToString()
                    });
                });
            }
            var changes = CommodityInventoryChangeBll.GetInstance().CreateCommodityInventoryChange(changeList);

            //校验数据是否正常
            HttpHelper.GetInstance().ResultCheck(changes, out bool isSuccess2);
            if (!isSuccess2)
            {
                LogUtils.Warn("CreateConsumingOrder 2:" + ResultCode.Result_Exception.ToString());
            }

            ////当入库数量大于0说明在领用的时候进行了入库操作, 或者领用商品中有过期商品, 变更领用单状态为异常
            if (normalList.Count > 0 || lossList.Where(item => item.QualityStatus == QualityStatusType.过期.ToString() || item.InventoryStatus == CommodityInventoryChangeStatus.待回收.ToString()).Count() > 0)
            {
                order.body[0].Status = ConsumingOrderStatus.异常.ToString();
            }
            else
            {
                order.body[0].Status = ConsumingOrderStatus.已完成.ToString();
            }
            //更新主表状态
            var orderResult = UpdateConsumingOrderStatus(order.body[0]);

            //校验数据是否正常,并记录日志
            HttpHelper.GetInstance().ResultCheck(orderResult, out bool isSuccess3);
            if (!isSuccess3)
            {
                LogUtils.Warn("CreateConsumingOrder 3:" + ResultCode.Result_Exception.ToString());
            }
            return(changes);
        }