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