Exemple #1
0
        private void DoChargeWork(object count)
        {
            int rowCount = (int)count;

            while (appStarted)
            {
                var orders = OrderManage.GetOrders(rowCount);
                if (orders != null)
                {
                    foreach (var order in orders)
                    {
                        if (order == null || HaveDebt(order.MobileNum))
                        {
                            AddLog(string.Format("订单异常或者当前欠费,订单号:{0}", order?.OrderId.ToString() ?? string.Empty));
                        }
                        else
                        {
                            CommitChargeInfo(order);
                        }
                    }
                    break;
                }
            }
            AddLog("停止执行...");
        }
 protected OrderAppService(
     IRepository <Orders.Order, long> repository,
     OrderManage orderManage
     ) : base(repository)
 {
     _orderManage = orderManage;
 }
Exemple #3
0
        private void bkgWorkForExportingRecords_DoWork(object sender, DoWorkEventArgs e)
        {
            var bkgWorker = sender as BackgroundWorker;

            var counter    = 0;
            var lstOrderNo = new OrderManage().GetAllOrderNoAndPurchaser();


            foreach (var orderInfo in lstOrderNo)
            {
                var objItems     = new ItemManage().GetItemListByOrderNo(orderInfo.Key);
                var objUserInfo  = new UserInfoManage().GetUserByOrderNo(orderInfo.Key);
                var orderContent = ExportFile.GenerateOrderContent(objItems, objUserInfo, true);
                var path         = string.Format((string)e.Argument + @"\{0}{1}.txt", orderInfo.Key, orderInfo.Value);
                ExportFile.CreateOrderFile(path, orderContent);

                try
                {
                    bkgWorker.ReportProgress(counter++);
                }
                catch (NullReferenceException exception)
                {
                    Console.WriteLine(exception);
                    throw;
                }
            }


            MessageBox.Show("Exporting all .txt files sucessfully!");
        }
        public void GetInfoTest()
        {
            OrderManage ordObj = new OrderManage();

            ordObj.GetInfo("riya", "404 global mansion", 1234567890);
            Assert.IsNotNull(ordObj);
        }
        public IActionResult CancelOrder(int orderId, string name)
        {
            using (_context)
            {
                //Deletes the order if the orderId and name match the order.
                OrderManage order = new OrderManage(orderId, name);
                order.CancelOrder(_context);

                //Show order canceled message
                return(View("CancelOrderComplete"));
            }
        }
Exemple #6
0
 public IActionResult DeleteOrder(int id, string name)
 {
     using (_context)
     {
         //Deletes the order if the orderId and name match the order.
         OrderManage order = new OrderManage(id, name);
         if (order.CancelOrder(_context))
         {
             return(Ok());
         }
     }
     return(BadRequest());
 }
Exemple #7
0
        public ActionResult SelectProduct(OrderModel.Product model)
        {
            try
            {
                _sessionId = Session[Const.Session.SESSION_ID].ToString();
                _aspId     = Session[Const.Session.ASP_ID].ToString();
                if (model.ProductId != -1)
                {
                    var orderProduct = (from mst_Price in _db.MST_Price
                                        join mst_Product in _db.MST_Product on mst_Price.ProductId equals mst_Product.ProductId
                                        where mst_Price.ASP_ID == _aspId && mst_Price.ProductId == model.ProductId
                                        select new OrderModel.Product
                    {
                        ProductId = mst_Price.ProductId,
                        ProductName = mst_Product.ProductName,
                        Price = (decimal)mst_Price.Price
                    }).Single();

                    OrderManage order = new OrderManage()
                    {
                        SessionId = _sessionId,
                        ProductId = orderProduct.ProductId,
                        Price     = orderProduct.Price
                    };

                    _db.OrderManage.Add(order);
                    _db.SaveChanges();

                    return(Redirect(Const.Redirect.ORDER_END));
                }
                else
                {
                    var orderProduct = from mst_Price in _db.MST_Price
                                       join mst_Product in _db.MST_Product on mst_Price.ProductId equals mst_Product.ProductId
                                       where mst_Price.ASP_ID == _aspId
                                       orderby mst_Product.ProductId
                                       select new OrderModel.Product
                    {
                        ProductId   = mst_Price.ProductId,
                        ProductName = mst_Product.ProductName
                    };
                    List <OrderModel.Product> orderProductList = orderProduct.ToList();
                    ViewData[Const.ViewData.PRODUCT_DROPDOWN_LIST] = OrderUtil.MakeProductDropdownList(orderProductList);
                    return(View(model));
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Exemple #8
0
        //[OutputCache(CacheProfile = "StaticOrder")]
        //If user's orders were enough frequently, cache will be a bottleneck of platform due to faster refresh cache. Hence we don't cache order.
        public JsonResult OrderSeller(int?page, int?limit, string sortBy, string direction, string searchString = null)
        {
            int total   = 0;
            var records = new object();

            try
            {
                records = OrderManage.OrderSeller(page, limit, sortBy, direction, searchString, out total);
            }
            catch (Exception e)
            {
                records = "error:" + e.Message;
            }
            return(Json(new { records, total }, JsonRequestBehavior.AllowGet));
        }
Exemple #9
0
 public static OrderInfo Update(OrderInfo model)
 {
     if (model.Id == 0)
     {
         //Add
         int id = OrderManage.Add(model);
         model.Id = id;
     }
     else
     {
         //Update
         OrderManage.Update(model);
     }
     return(model);
 }
        public IActionResult SaveEditOrder()
        {
            using (_context)
            {
                //Gets the order details from the cookie.
                OrderManage order = new OrderManage(Request.Cookies["EditOrder"]);
                //Then saves the changes made to the order.
                order.SaveEdit(new Basket(Request.Cookies["Basket"]), _context);

                //Then clears the cookies used for editing an order.
                CookieManager.RemoveCookie("Basket", Response);
                CookieManager.RemoveCookie("EditOrder", Response);

                return(View("EditOrderComplete"));
            }
        }
Exemple #11
0
        private void btnDeleteOrder_Click(object sender, EventArgs e)
        {
            // Display the selected row in datagridview
            //this.dgvTransaction.FirstDisplayedCell = this.dgvTransaction.Rows[Convert.ToInt32(this.orderNo)].Cells[0];
            if (dgvTransaction.RowCount == 0)
            {
                return;
            }

            if (MessageBox.Show(this, zh?"删除?":"Delete?", zh?"提示":"Prompt", MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
                DialogResult.Yes)
            {
                var objOrder = new OrderManage().GetOrderByOrderNo(_orderNo);
                objOrder.User = new UserInfoManage().GetUserByOrderNo(_orderNo);

                #region Delete the .txt File

                var defaultPath = ExportFile.GetDefaultPath("dircPath");
                if (defaultPath != "")
                {
                    var filename = string.Format(@"{0}\{1}{2}.txt", defaultPath, objOrder.OrderNo, objOrder.Purchaser);
                    if (File.Exists(filename))
                    {
                        File.Delete(filename);
                    }
                }

                #endregion

                new TransactionManage().DeleteTransactionRecord(_orderNo);
                new ItemManage().DeleteItemListByOrderNo(_orderNo);
                new OrderManage().DeleteOrder(objOrder);
                var result = new UserInfoManage().DeleteUser(objOrder.User);
                if (result > 0)
                {
                    MessageBox.Show(zh?"删除数据成功":"Delete data sucessfully!");
                }
                DisplayMainFrm(true);
            }
        }
        public IActionResult EditOrder(int orderId, string name)
        {
            using (_context)
            {
                OrderManage order = new OrderManage(orderId, name);

                //Ensure order exists
                order.GetOrder(_context);
                if (order.order != null)
                {
                    //Sets up the basket with the list of items in the order.
                    Basket basket = new Basket();
                    basket.SetToOrder(_context, order.OrderId);
                    CookieManager.SetCookie("Basket", basket.GetSerialised(), Response);

                    //Set EditOrder Cookie: Holding the order id and name used to later save any changes.
                    CookieManager.SetCookie("EditOrder", order.GetSerialised(), Response);
                }

                return(RedirectToAction("Index"));
            }
        }
 public IActionResult ViewOrder(OrderManage orderDetail)
 {
     using (_context)
     {
         if (ModelState.IsValid)
         {
             //Checking the order exists and information is correct.
             orderDetail.GetOrder(_context);
             if (orderDetail.order != null)
             {
                 //Gets all the details on the order to display.
                 ViewData["OrderDetails"] = orderDetail.GetItemDetails(_context);
                 ViewData["OrderName"]    = orderDetail.order.Name;
                 ViewData["OrderNumber"]  = orderDetail.order.Id;
                 ViewData["OrderDate"]    = orderDetail.order.dateTime;
                 return(View("ViewOrderList"));
             }
             //Add modelstate error here.
             ModelState.AddModelError(string.Empty, "Details do not match any order.");
         }
         return(View());
     }
 }
Exemple #14
0
        private void ShowOrderDetail(string orderNo)
        {
            _objOrder           = new OrderManage().GetOrderByOrderNo(orderNo);
            tbOrderNo.Text      = _objOrder.OrderNo.ToString();
            tbPurchaser.Text    = _objOrder.Purchaser;
            tbPurchaser.Enabled = false;
            tbFrom.Text         = @"Oscar";
            tbFrom.Enabled      = false;
            tbFromPhone.Text    = @"0211376664";
            tbFromPhone.Enabled = false;

            tbTo.Text      = _objOrder.User.UserName;
            tbToPhone.Text = _objOrder.User.PhoneNumber;
            tbCardNo.Text  = _objOrder.User.CardNo;
            tbAddress.Text = _objOrder.User.Address;

            var objTransaction = new TransactionManage().GetTransactionRecordByOrderNo(orderNo);

            tbPurchasePrice.Text = objTransaction.PurchasePrice.ToString();
            tbSellingPrice.Text  = objTransaction.SellingPrice.ToString();
            tbProfit.Text        = objTransaction.Profit.ToString();

            _objItems = new ItemManage().GetItemListByOrderNo(orderNo);
            dgvItemList.DataSource = _objItems;
            dgvItemList.Show();

            tbTotalPrice.Text = CalculateTotalPrice(_objItems).ToString();
            //if (_status.Equals("Edit"))
            //{
            //    string itemNo = dgvItemList.Rows[0].Cells["ItemNo"].Value.ToString(); //get the information in the first row
            //    Item objItem = new ItemManage().GetItemByItemNo(itemNo);
            //    tbProductName.Text = objItem.ItemDescription;
            //    tbQuantity.Text = objItem.Quantity.ToString();
            //    tbPrice.Text = objItem.UnitPrice.ToString();
            //}
        }
Exemple #15
0
        public void Comm()
        {
            if (Arthur.App.Current.Option.RemainingMinutes <= 0)
            {
                return;
            }
            //发送给PLC上位机在线心跳
            this.Commor.Write("D441", (ushort)1);

            var ret = this.Commor.Read("D400", (ushort)60);

            if (ret.IsSucceed)
            {
                this.RealtimeStatus = "通信中...";

                var recv = (ushort[])ret.Data;

                this.chargeModelIsAuto    = recv[44] == 1;
                this.dischargeModelIsAuto = recv[45] == 1;
                this.jawModelIsAuto       = recv[46] == 1;

                Current.Option.JawMoveInfo.Col   = Convert.ToInt32(recv[50]);
                Current.Option.JawMoveInfo.Row   = Convert.ToInt32(recv[51]);
                Current.Option.JawMoveInfo.Floor = Convert.ToInt32(recv[52]);

                Current.Option.IsTaskFinished = recv[36] == (ushort)1;

                this.IsAlive = true;
            }
            else
            {
                this.RealtimeStatus = ret.Msg;
                this.IsAlive        = false;
            }

            var ret2 = this.Commor.Read("W400", (ushort)10);

            if (ret2.IsSucceed)
            {
                this.RealtimeStatus = "通信中...";

                var recv    = (ushort[])ret2.Data;
                var bitStr1 = Convert.ToString(recv[0], 2).PadLeft(16, '0');

                Current.Option.IsBatteryScanReady    = bitStr1[13] == '1';
                Current.Option.IsBindTrayScanReady   = bitStr1[12] == '1';
                Current.Option.IsUnbindTrayScanReady = bitStr1[11] == '1';


                var bitStr2 = Convert.ToString(recv[5], 2).PadLeft(16, '0');

                if (this.chargeModelIsAuto)
                {
                    Current.Option.IsHasTray11 = bitStr2[15] == '1';
                    Current.Option.IsHasTray12 = bitStr2[14] == '1';
                    Current.Option.IsHasTray13 = bitStr2[13] == '1';
                }

                if (dischargeModelIsAuto)
                {
                    Current.Option.IsHasTray21 = bitStr2[12] == '1';
                    Current.Option.IsHasTray22 = bitStr2[11] == '1';
                    Current.Option.IsHasTray23 = bitStr2[10] == '1';
                }

                if (this.jawModelIsAuto)
                {
                    Current.Option.IsJawHasTray = bitStr2[9] == '1';
                }

                Current.Option.IsTaskReady = bitStr2[8] == '1';

                this.IsAlive = true;
            }
            else
            {
                this.RealtimeStatus = ret.Msg;
                this.IsAlive        = false;
            }

            var ret3 = this.Commor.ReadInt("D439");

            if (ret3.IsSucceed)
            {
                this.RealtimeStatus = "通信中...";

                //0079 最左值 -5540111 最右值 805192
                //0081 最左值 -985910  最右值 12040249

                Current.Option.JawPos = Common.PROJ_NO == "0079" ? ((int)ret3.Data + 5542000) / 11900 :
                                        ((int)ret3.Data + 985910) / 21200;

                this.IsAlive = true;
            }
            else
            {
                this.RealtimeStatus = ret.Msg;
                this.IsAlive        = false;
            }

            Current.App.IsTerminalInitFinished = true;

            if (IsPackEnabled)
            {
                var ret4 = this.Commor.Read("D443");
                if (ret4.IsSucceed)
                {
                    var recv            = (ushort[])ret4.Data;
                    var isReadyIntoPack = recv[0] == 1;

                    if (this.IsReadyIntoPack && !isReadyIntoPack)
                    {
                        //电池放入拉带完成
                        PackManage.AfterPack(OrderManage.GetBindOrderByPackOrder(Current.Option.CurrentPackOrder));
                        Current.Option.CurrentPackOrder = Current.Option.CurrentPackOrder % 32 + 1;
                    }

                    if (this.IsReadyIntoPack)
                    {
                        this.Commor.Write("D443", (ushort)0);
                    }

                    this.IsReadyIntoPack = isReadyIntoPack;
                }
            }
        }
Exemple #16
0
 public static bool IsExistsOrderNumber(int id, string orderNumber)
 {
     return(OrderManage.IsExistsOrderNumber(id, orderNumber));
 }
Exemple #17
0
 public static OrderInfo Get(int id)
 {
     return(OrderManage.Get(id));
 }
Exemple #18
0
 public static IPageOfList <OrderInfo> List(OrderSearchSetting settings)
 {
     return(OrderManage.List(settings));
 }
Exemple #19
0
        private void btnModify_Click(object sender, EventArgs e)
        {
            #region Validation controls

            if (tbTo.Text.Trim().Length == 0)
            {
                ShowError(zh?"请添加收件人":"Please fill the receiver", tbTo, lbError);
                return;
            }
            HideError(tbTo, lbError);


            if (tbToPhone.Text.Trim().Length == 0)
            {
                ShowError(zh?"请添加收件人电话号码":"Please fill the receiver's phone", tbToPhone, lbError);
                return;
            }
            HideError(tbToPhone, lbError);

            if (tbAddress.Text.Trim().Length == 0)
            {
                ShowError(zh?"请添加收件人地址":"Please fill the receiver's address", tbAddress, lbError);
                return;
            }
            HideError(tbAddress, lbError);

            if (tbSellingPrice.Text.Trim().Length == 0)
            {
                ShowError(zh?"请添加产品售价":"Please fill the selling price", tbSellingPrice, lbError);
                return;
            }
            if (Regex.IsMatch(tbSellingPrice.Text, "[^0-9]")) //区分不是字母,而是数字
            {
                if (!Regex.IsMatch(tbSellingPrice.Text, @"^(-?\d+)(\.\d+)?$"))
                {
                    //不是小数
                    ShowError(zh?"只允许添加数字":"Please input only number", tbSellingPrice, lbError);
                    return;
                }
                else
                {
                    HideError(tbSellingPrice, lbError);
                }
            }
            else
            {
                HideError(tbSellingPrice, lbError);
            }

            if (tbPurchasePrice.Text.Trim().Length == 0)
            {
                ShowError(zh?"请添加进价":"Please fill the purchasing price", tbPurchasePrice, lbError);
                return;
            }
            if (Regex.IsMatch(tbPurchasePrice.Text, "[^0-9]")) //区分不是字母,而是数字
            {
                if (!Regex.IsMatch(tbPurchasePrice.Text, @"^(-?\d+)(\.\d+)?$"))
                {
                    //不是小数
                    ShowError(zh ? "只允许添加数字" : "Please input only number", tbPurchasePrice, lbError);
                    return;
                }
                else
                {
                    HideError(tbSellingPrice, lbError);
                }
            }
            else
            {
                HideError(tbPurchasePrice, lbError);
            }

            #endregion

            #region Database operation

            _objOrder                  = new OrderManage().GetOrderByOrderNo(tbOrderNo.Text.Trim());
            _objOrder.Purchaser        = tbPurchaser.Text.Trim();
            _objOrder.User             = new UserInfoManage().GetUserByOrderNo(tbOrderNo.Text.Trim());
            _objOrder.User.UserName    = tbTo.Text.Trim();
            _objOrder.User.PhoneNumber = tbToPhone.Text.Trim();
            _objOrder.User.Address     = tbAddress.Text.Trim();

            var objTransaction = new TransactionManage().GetTransactionRecordByOrderNo(tbOrderNo.Text.Trim());
            objTransaction.SellingPrice  = Convert.ToDouble(tbSellingPrice.Text.Trim());
            objTransaction.PurchasePrice = Convert.ToDouble(tbPurchasePrice.Text.Trim());
            objTransaction.Profit        = objTransaction.SellingPrice - objTransaction.PurchasePrice;
            new TransactionManage().UpdateTransactionRecord(objTransaction);
            new UserInfoManage().UpdatetUser(_objOrder.User);
            foreach (var objItem in _objItems)
            {
                if (objItem.ItemNo == 0)
                {
                    objItem.OrderNo = _objOrder.OrderNo;
                    new ItemManage().InsertItem(objItem);
                }
                else
                {
                    new ItemManage().UpdateItem(objItem);
                }
            }


            var result = new OrderManage().UpdateOrder(_objOrder);
            if (result > 0)
            {
                MessageBox.Show(zh?"成功修改订单":"Modifying Order Sucessfully!");
                EvtSendMsg("open");
                Close();
            }

            #endregion
        }
Exemple #20
0
 /// <summary>
 /// Process Order
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public HttpResponseMessage Post(OrderDTO order)
 {
     OrderManage.UpdateOrder(order);
     return(Request.CreateResponse(HttpStatusCode.OK, new { success = true, message = "Has updated." }));
 }
Exemple #21
0
        public static void GetShareDataExec(object obj)
        {
            if (!IsRunning)
            {
                return;
            }

            if (Arthur.App.Current.Option.RemainingMinutes <= 0)
            {
                return;
            }

            if (!Current.Option.IsGetShareDataExecting)
            {
                Current.Option.IsGetShareDataExecting = true;

                if (Current.ShareDatas.Count > 0)
                {
                    if (Current.Option.Tray12_Id > 0)
                    {
                        var chargeData = Current.ShareDatas.First(o => o.Key == "chargeCodes");
                        var bindCode   = JsonHelper.DeserializeJsonToObject <BindCode>(chargeData.Value);
                        var procTray   = GetObject.GetById <ProcTray>(Current.Option.Tray12_Id);

                        if (procTray.Id > 0 && chargeData.Status == 2)
                        {
                            if (procTray.Id == chargeData.ProcTrayId)
                            {
                            }
                            else
                            {
                                //充电位条码绑定信息传给BTS客户端
                                var batteries = procTray.GetBatteries();
                                var codes     = new List <string>();
                                for (var i = 1; i <= Common.TRAY_BATTERY_COUNT; i++)
                                {
                                    var code    = "";
                                    var battery = batteries.FirstOrDefault(o => o.GetChargeOrder() == i);
                                    if (battery != null)
                                    {
                                        code = battery.Code;
                                    }
                                    codes.Add(code);
                                }

                                var value = new BindCode {
                                    TrayCode = procTray.Code, BatteryCodes = string.Join(",", codes.ToArray())
                                };
                                chargeData.Value      = JsonHelper.SerializeObject(value);
                                chargeData.Status     = 1;
                                chargeData.ProcTrayId = procTray.Id;
                                chargeData.UpdateTime = DateTime.Now;
                                LogHelper.WriteInfo(string.Format("--------成功发送充电位条码绑定信息给BTS【流程托盘ID:{0},条码:{1}】---------", procTray.Id, procTray.Code));
                            }
                        }
                    }

                    if (Current.Option.Tray22_Id > 0)
                    {
                        var dischargeData = Current.ShareDatas.First(o => o.Key == "dischargeCodes");
                        var bindCode      = JsonHelper.DeserializeJsonToObject <BindCode>(dischargeData.Value);
                        var procTray      = GetObject.GetById <ProcTray>(Current.Option.Tray22_Id);

                        if (procTray.Id > 0 && dischargeData.Status == 2)
                        {
                            if (procTray.Id == dischargeData.ProcTrayId)
                            {
                            }
                            else
                            {
                                //放电位条码绑定信息传给BTS客户端
                                var batteries = procTray.GetBatteries();
                                var codes     = new List <string>();
                                for (var i = 1; i <= Common.TRAY_BATTERY_COUNT; i++)
                                {
                                    var code    = "";
                                    var battery = batteries.FirstOrDefault(o => o.GetChargeOrder() == i);
                                    if (battery != null)
                                    {
                                        code = battery.Code;
                                    }
                                    codes.Add(code);
                                }

                                var value = new BindCode {
                                    TrayCode = procTray.Code, BatteryCodes = string.Join(",", codes.ToArray())
                                };
                                dischargeData.Value      = JsonHelper.SerializeObject(value);
                                dischargeData.Status     = 1;
                                dischargeData.ProcTrayId = procTray.Id;
                                dischargeData.UpdateTime = DateTime.Now;
                                LogHelper.WriteInfo(string.Format("--------成功发送放电位条码绑定信息给BTS【流程托盘ID:{0},条码:{1}】---------", procTray.Id, procTray.Code));
                            }
                        }
                    }

                    if (Current.Option.Tray23_Id > 0)
                    {
                        var procTray = GetObject.GetById <ProcTray>(Current.Option.Tray23_Id);

                        var sortingResults = Current.ShareDatas.First(o => o.Key == "sortingResults");
                        var capResults     = Current.ShareDatas.First(o => o.Key == "capResults");
                        var esrResults     = Current.ShareDatas.First(o => o.Key == "esrResults");

                        if (sortingResults.Status == 1 && capResults.Status == 1 && esrResults.Status == 1)
                        {
                            var sortingResult_sort = JsonHelper.DeserializeJsonToObject <SortingResult>(sortingResults.Value);
                            var sortingResult_cap  = JsonHelper.DeserializeJsonToObject <SortingResult>(capResults.Value);
                            var sortingResult_esr  = JsonHelper.DeserializeJsonToObject <SortingResult>(esrResults.Value);

                            if (sortingResult_sort.TrayCode == procTray.Code)
                            {
                                try
                                {
                                    var sortList = sortingResult_sort.Results.Split(',');
                                    var capList  = sortingResult_cap.Results.Split(',');
                                    var esrList  = sortingResult_esr.Results.Split(',');

                                    for (int i = 0; i < sortList.Length; i++)
                                    {
                                        //i:绑盘序号
                                        Current.MainMachine.Commor.Write(string.Format("D{0:D3}", 401 + i), ushort.Parse(sortList[OrderManage.GetChargeOrderBySortOrder(i + 1) - 1]));
                                    }
                                    LogHelper.WriteInfo(string.Format("--------成功发送分选结果数据给PLC【流程托盘ID:{0},条码:{1}】---------", procTray.Id, procTray.Code));

                                    var batteries         = procTray.GetBatteries();
                                    var batteryViewModels = ContextToViewModel.Convert(batteries);

                                    for (int i = 0; i < sortList.Length; i++)
                                    {
                                        //i:通道序号
                                        var sort = int.Parse(sortList[i]);
                                        var cap  = decimal.Parse(capList[i]);
                                        var esr  = decimal.Parse(esrList[i]);

                                        if (sort > 0)
                                        {
                                            var battery = batteryViewModels.FirstOrDefault(o => o.Pos == OrderManage.GetBindOrderByChargeOrder(i + 1));
                                            if (battery != null)
                                            {
                                                battery.SortResult = (SortResult)sort;
                                                battery.CAP        = cap;
                                                battery.ESR        = esr;
                                            }
                                        }
                                    }

                                    sortingResults.Status     = 2;
                                    sortingResults.ProcTrayId = procTray.Id;
                                    sortingResults.UpdateTime = DateTime.Now;

                                    capResults.Status     = 2;
                                    capResults.ProcTrayId = procTray.Id;
                                    capResults.UpdateTime = DateTime.Now;


                                    esrResults.Status     = 2;
                                    esrResults.ProcTrayId = procTray.Id;
                                    esrResults.UpdateTime = DateTime.Now;
                                }
                                catch (Exception ex)
                                {
                                    Running.StopRunAndShowMsg(ex);
                                }
                            }
                        }
                    }
                }
                Current.Option.IsGetShareDataExecting = false;
            }
        }
Exemple #22
0
        object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            var pos = (int)value;

            return(string.Format("{0} ( {1} )", pos, OrderManage.GetChargeOrderByBindOrder(pos)));
        }
Exemple #23
0
 /// <summary>
 /// 获取通道序号
 /// </summary>
 /// <param name="battery"></param>
 /// <returns></returns>
 public static int GetChargeOrder(this Battery battery)
 {
     return(OrderManage.GetChargeOrderByBindOrder(battery.Pos));
 }
Exemple #24
0
        public async Task <ActionResult> PayNotifyJob([FromBody] YaeherConsultationAdd yaeherConsultationAdd)
        {
            if (!Commons.CheckSecret(yaeherConsultationAdd.Secret))
            {
                this.ObjectResultModule.StatusCode = 422;
                this.ObjectResultModule.Message    = "Wrong Secret";
                this.ObjectResultModule.Object     = "";
                Logger.Info("secret 错误!");
                return(Content("", "text/xml"));
            }
            string       xml = "";
            TencentWXPay OrdertencentWXPay  = new TencentWXPay();
            TencentWXPay RefundtencentWXPay = new TencentWXPay();

            string message         = "";
            string WXPayBillno     = "";
            string WXTransactionId = "";
            string WXOrderQuery    = "";

            WXPayBillno = yaeherConsultationAdd.sp_billno;
            var secret = await CreateSecret();

            //患者端咨询单
            var consul = await _consultationService.YaeherConsultationByNumber(yaeherConsultationAdd.ConsultNumber);

            //if (consul.ConsultState != "unpaid"&&consul.ConsultState != "created") { return Content(xml, "text/xml"); }
            //新增处理中条件判断
            if (consul.ConsultState != "unpaid" && consul.ConsultState != "processing")
            {
                return(Content(xml, "text/xml"));
            }
            //配置文件查询
            var Content1      = "{\"SystemType\":\"TencentWechar\",\"secret\":\"" + secret + "\"}";
            var tencentmparam = await this.PostResponseAsync(Commons.AdminIp + "api/SystemConfigsList/", Content1);

            var tencentmparamlist = JsonHelper.FromJson <APIResult <ResultModule <List <SystemConfigs> > > >(tencentmparam);

            if (tencentmparamlist == null || tencentmparamlist.result.item == null)
            {
                return(Content("", "text/xml"));
            }
            var tencentparam = tencentmparamlist.result.item.FirstOrDefault();

            //医生端医生信息查询
            Content1 = "{\"Id\":" + consul.DoctorID + ",\"secret\":\"" + secret + "\"}";
            var doctoruser = await this.PostResponseAsync(Commons.AdminIp + "api/DoctorInformation", Content1);

            var doctorUserResult = JsonHelper.FromJson <APIResult <ResultModule <YaeherDoctorInfo> > >(doctoruser);

            if (doctorUserResult == null || doctorUserResult.result.item == null)
            {
                return(Content("", "text/xml"));
            }
            var ServiceResult = doctorUserResult.result.item.ServiceMoneyLists.Find(t => t.Id == consul.ServiceMoneyListId);
            var queryresult   = await OrdertencentWXPay.OrderQueryAsync(WXPayBillno, tencentparam);

            if (ServiceResult == null || ServiceResult.Id < 1 || ServiceResult.ServiceState == false)
            {
                message = "医生该服务已下线,资金会原路返回您的账户,请稍后!";
            }
            if (queryresult.trade_state != "SUCCESS")
            {
                return(Content(queryresult.trade_state, "text/xml"));
            }
            #region 重复支付处理
            //if (consul.ConsultState == "created")
            //{
            //    var ordertradeold = await _orderTradeRecordService.OrderTradeRecordByConsultNumber(consul.ConsultNumber);
            //    if (ordertradeold != null && ordertradeold.WXPayBillno != WXPayBillno)
            //    {
            //        message = "您的支付已经收到,请不要重复支付,程序正在处理,请稍后!";
            //    }
            //}
            #endregion
            var YaeherUserPaymentResult = doctorUserResult.result.item.YaeherUserPayment.Find(t => t.IsDefault);
            if (YaeherUserPaymentResult == null)
            {
                YaeherUserPaymentResult = doctorUserResult.result.item.YaeherUserPayment.Find(t => t.PayMethod == "wxpay");
            }

            if (string.IsNullOrEmpty(message))
            {
                //患者端满单查询
                OrderTradeRecordIn refundManageIn = new OrderTradeRecordIn();
                var StartTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));
                refundManageIn.DoctorId  = consul.DoctorID;
                refundManageIn.ServiceID = consul.ServiceMoneyListId;
                refundManageIn.AndAlso(t => t.IsDelete == false);
                refundManageIn.AndAlso(t => t.PayMoney > 0);
                refundManageIn.AndAlso(t => t.CreatedOn >= StartTime);
                refundManageIn.AndAlso(t => t.CreatedOn < StartTime.AddDays(1));

                var ordertradelist = await _orderTradeRecordService.PatientOrderTradeRecordList(refundManageIn);

                var allconsultation = ordertradelist.Count();
                if (ServiceResult.ServiceFrequency <= allconsultation)
                {
                    message = "医生该服务已满单,资金会原路返回您的账户,请稍后!";
                }

                if (!string.IsNullOrEmpty(yaeherConsultationAdd.sp_billno))
                {
                    if (queryresult.result_code != "SUCCESS")
                    {
                        return(Content("查询支付信息失败,请重新提交!", "text/xml"));
                    }

                    if (int.Parse(queryresult.total_fee) != (int)(ServiceResult.ServiceExpense * 100))
                    {
                        message = "医生该服务已修改价格,资金会原路返回您的账户,请稍后!";
                    }
                }
            }
            if (!string.IsNullOrEmpty(message))
            {
                string outTradeNo      = WXPayBillno;
                string outRefundNo     = consul.ConsultNumber + "-" + DateTime.Now.ToString("yyyMMddhhmmss");
                var    totalFee        = int.Parse(queryresult.total_fee);//单位:分
                int    refundFee       = totalFee;
                var    refundpayresult = await RefundtencentWXPay.RefundAsync(outTradeNo, outRefundNo, totalFee, refundFee, tencentparam, message);

                consul.ConsultState = "unpaid";
                await _consultationService.UpdateYaeherConsultation(consul);

                if (refundpayresult.code != "SUCCESS")
                {
                    Logger.Info("outTradeNo:" + outTradeNo + "outRefundNo:" + outRefundNo + "totalFee:" + totalFee + "refundFee:" + refundFee + "message:" + message + "+refundpayresult:" + JsonHelper.ToJson(refundpayresult));

                    HangfireScheduleJob job         = new HangfireScheduleJob();
                    RefundModel         refundModel = new RefundModel();
                    refundModel.Secret = await CreateSecret();

                    refundModel.outTradeNo  = outTradeNo;
                    refundModel.outRefundNo = outRefundNo;
                    refundModel.totalFee    = totalFee;
                    refundModel.refundFee   = refundFee;
                    refundModel.msg         = message;
                    JobModel model = new JobModel();
                    model.CallbackUrl     = Commons.AdminIp + "api/RefundAsync";
                    model.CallbackContent = JsonHelper.ToJson(refundModel);

                    job.Enqueue(model);

                    return(Content("退款支付失败,请联系管理员!", "text/xml"));
                    //return new ObjectResultModule("", 400, "退款支付失败,请联系管理员");
                }
                return(Content(message, "text/xml"));
            }

            WXTransactionId = queryresult.transaction_id;
            WXOrderQuery    = JsonHelper.ToJson(queryresult);

            Content1 = "{\"SystemCode\":\"SystemOverTime\",\"secret\":\"" + secret + "\"}";
            var replymparam = await this.PostResponseAsync(Commons.AdminIp + "api/YaeherMobileParameterList/", Content1);

            var replylistparam = JsonHelper.FromJson <APIResult <ResultModule <List <SystemParameter> > > >(replymparam);
            if (replylistparam == null || replylistparam.result.item == null)
            {
                return(Content("", "text/xml"));
            }

            Consultation consultation         = new Consultation();
            Publishs     Consultationpublishs = new Publishs();
            using (var unitOfWork = _unitOfWorkManager.Begin())
            {
                consul.ConsultState = "created";
                consul.Overtime     = DateTime.Now.AddDays(double.Parse(replylistparam.result.item[0].ItemValue));
                var result = await _consultationService.UpdateYaeherConsultation(consul);

                var OrderManage = new OrderManage();
                OrderManage.SequenceNo        = DateTime.Now.ToString("yyyyMMddHHmmss") + new RandomCode().GenerateCheckCodeNum(6);
                OrderManage.OrderNumber       = "ON-" + DateTime.Now.ToString("yyyyMMddhhmm") + new RandomCode().RamdomRecode(4);
                OrderManage.ConsultNumber     = result.ConsultNumber;
                OrderManage.ConsultID         = result.Id;
                OrderManage.ConsultType       = ServiceResult.ServiceType;
                OrderManage.ConsultantID      = consul.CreatedBy;
                OrderManage.ConsultantName    = result.ConsultantName;
                OrderManage.PatientID         = result.PatientID;
                OrderManage.PatientName       = result.PatientName;
                OrderManage.DoctorID          = consul.DoctorID;
                OrderManage.DoctorName        = doctorUserResult.result.item.DoctorInfo.DoctorName;
                OrderManage.OrderCurrency     = "rmb";
                OrderManage.OrderMoney        = Convert.ToDecimal(ServiceResult.ServiceExpense);
                OrderManage.ReceivablesType   = YaeherUserPaymentResult.PayMethod;                      //医生收款类型
                OrderManage.ReceivablesNumber = YaeherUserPaymentResult.PaymentAccout;                  //医生收款账号
                OrderManage.ServiceID         = ServiceResult.Id;                                       //产品ID
                OrderManage.ServiceName       = ServiceResult.DoctorName + ServiceResult.ServiceType;   //产品名称
                OrderManage.SellerMoneyID     = doctorUserResult.result.item.WxPayBusinessId.ItemValue; //微信支付分配的商户号
                OrderManage.TradeType         = ServiceResult.ServiceType;                              //交易类型
                OrderManage.CreatedBy         = consul.CreatedBy;
                OrderManage.CreatedOn         = DateTime.Now;
                var result1 = await _orderManageService.CreateOrderManage(OrderManage);

                var record = new OrderTradeRecord()
                {
                    SequenceNo        = DateTime.Now.ToString("yyyyMMddHHmmss") + new RandomCode().GenerateCheckCodeNum(6),
                    OrderID           = result1.Id,
                    OrderNumber       = result1.OrderNumber,
                    PayType           = "wxpay",
                    OrderCurrency     = "rmb",
                    TenpayNumber      = "", //支付账号
                    VoucherNumber     = "", //代金券编号
                    VoucherJSON       = "", //代金券Json
                    PayMoney          = Convert.ToDecimal(ServiceResult.ServiceExpense),
                    PaymentState      = "paid",
                    PaymentSourceCode = "order",
                    PaymentSource     = "订单",
                    WXPayBillno       = WXPayBillno,
                    WXTransactionId   = WXTransactionId,
                    WXOrderQuery      = WXOrderQuery,
                    CreatedBy         = consul.CreatedBy,
                    CreatedOn         = DateTime.Now
                };
                var result2 = await _orderTradeRecordService.CreateOrderTradeRecord(record);

                #region  发布咨询 消息接受者为医生  DoctorNotice AddConsultation
                // 发布咨询
                consultation.yaeherConsultation    = result;                    // 咨询主表
                consultation.orderManage           = result1;                   // 订单管理表
                consultation.orderTradeRecords     = result2;                   // 交易记录表
                Consultationpublishs.TemplateCode  = "DoctorNotice";
                Consultationpublishs.OperationType = "AddConsultation";         // 新增咨询
                Consultationpublishs.MessageRemark = result.IIInessDescription; // 发起咨询
                Consultationpublishs.Publisher     = "Patient";
                Consultationpublishs.PublishUrl    = "Patient";
                Consultationpublishs.EventName     = "发布 新增咨询";
                Consultationpublishs.EventCode     = "Consultation";
                Consultationpublishs.BusinessID    = result.Id.ToString();
                Consultationpublishs.BusinessCode  = result.ConsultNumber;
                Consultationpublishs.BusinessJSON  = JsonHelper.ToJson(consultation);
                Consultationpublishs.PublishedTime = result.CreatedOn;
                Consultationpublishs.PublishStatus = true;
                Consultationpublishs.CreatedBy     = consul.CreatedBy;
                Consultationpublishs.CreatedOn     = DateTime.Now;
                Consultationpublishs.Secret        = secret;

                Consultationpublishs.ServerClient = "Client";
                try
                {
                    var ConsultationResult = await _publishsService.CreatePublishs(Consultationpublishs);
                }
                catch (Exception ex)
                {
                    YaeherOperList yaeherOperList = new YaeherOperList();
                    yaeherOperList.CreatedOn   = DateTime.Now;
                    yaeherOperList.OperExplain = "Message:" + ex.Message.ToString();
                    yaeherOperList.OperContent = "StackTrace:" + ex.StackTrace.ToString();
                    yaeherOperList.OperType    = "支付回调";
                    await _YaeherOperListrepository.PatientYaeherOperList(yaeherOperList);

                    throw ex;
                }
                #endregion
                unitOfWork.Complete();
            }
            var ConsultationParma = await this.PostResponseAsync(Commons.DoctorIp + "api/ConsultationManage/", JsonHelper.ToJson(Consultationpublishs));

            // var ConsultationJson = JsonHelper.FromJson<APIResult<ResultModule<Publishs>>>(ConsultationParma);

            return(Content("success", "text/xml"));
        }