using POSV.HttpApi; using POSV.Language; using POSV.MessageEvent; using POSV.Utils; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; using POSV.Entity; using System.Threading.Tasks; using POSV.StoreBusiness; using POSV.Bean; namespace POSV { public partial class FastDownloading : BaseForm { private const int TIMER_INTERVAL = 1000; /// /// 数据下载的计时器,用于判断是否下载成功 /// private System.Timers.Timer timer; /// /// 是否开始下载 /// private bool isDownloading = false; /// /// 是否下载完成 /// private bool isFinished = false; /// /// 下载失败的集合 /// private Dictionary downloadError = null; /// /// 下载成功的集合 /// private Dictionary downloadSuccess = null; public FastDownloading() { InitializeComponent(); this.Text = LangUtils.Instance.GetString("Application.Title"); this.timer = new System.Timers.Timer(TIMER_INTERVAL); this.timer.Elapsed += OnTimerElapsed; //下载云端参数 YunSet(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (this.DesignMode) return; //this.mainPanel.Location = new Point((this.Width - this.mainPanel.Width) / 2, (this.Height - this.mainPanel.Height - this.controlBox.Height) / 2); //网络状态 //this.controlBox.NetworkStatus = Global.Instance.Online; var splash = @"images/splash.jpg"; if (File.Exists(splash)) { this.workspace.BackgroundImageLayout = ImageLayout.Tile; this.workspace.BackgroundImage = Image.FromFile(splash); } this.timer.Interval = TIMER_INTERVAL; this.timer.Start(); this.ShowMessage(this.lblStatus, "连接云端服务......", false); } protected override void NetworkEventNotify(object sender, MsgEventArgs args) { base.NetworkEventNotify(sender, args); if (IsDisposed || !this.IsHandleCreated) return; //呈现联机更新状态 this.BeginInvoke(new MethodInvoker(() => { //this.controlBox.NetworkStatus = Global.Instance.Online; })); } private void OnTimerElapsed(object sender, System.Timers.ElapsedEventArgs e) { if (!this.isDownloading) { this.isDownloading = true; this.StartDownloadExt(); } if (this.isDownloading && this.isFinished) { this.timer.Stop(); this.timer.Enabled = false; //有错误发生 if (downloadError != null && downloadError.Keys.Count > 0) { this.DialogResult = DialogResult.None; } else { if (this.InvokeRequired) { this.BeginInvoke(new MethodInvoker(() => { this.DialogResult = DialogResult.OK; this.Close(); })); } else { this.DialogResult = DialogResult.OK; this.Close(); } } } } private void AddDownloadError(string key, DownloadNotify notify) { if (this.downloadError.ContainsKey(key)) { this.downloadError.Remove(key); } this.downloadError.Add(key, notify); } private void AddDownloadSuccess(string key, DownloadNotify notify) { if (this.downloadSuccess.ContainsKey(key)) { this.downloadSuccess.Remove(key); } this.downloadSuccess.Add(key, notify); } /// /// zhangy 2020-03-05 Edit 云端参数下载 /// private void YunSet() { StoreYunSetRequest request = new StoreYunSetRequest(); request.StoreId = Global.Instance.Authc.StoreId; var response = StoreBusinessUtils.StoreYunSet(request); if (response.Item1 && response.Item3.Data != null) { Dictionary pbody = JsonUtils.Deserialize>(response.Item3.Data.Pbody); List configList = new List(); using (var db = Global.Instance.OpenDataBase) { configList = db.Query().ToList(); } string message = "云参数更新更新成功"; //更新的配置 List updateList = new List(); //新增的配置 List insertList = new List(); //桌面风格 if (pbody.ContainsKey("desktop")) { int desktop = StringUtils.GetInt(pbody["desktop"]); LOGGER.Info("桌面风格===>" + desktop); List desktopList = configList.FindAll(x => "layout".Equals(x.Group) && "layout_theme".Equals(x.Keys)); if (desktopList != null && desktopList.Count > 0) { Config config = desktopList[0]; switch (desktop) { case 0: config.Values = "茶饮"; break; case 1: config.Values = "快餐"; break; case 2: config.Values = "称重"; break; case 3: config.Values = "食堂";//zhangy 2020-02-18 待删除,参数设置中已经删除了配置项 break; case 4: config.Values = "新食堂"; break; default: config.Values = "快餐"; break; } updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.LAYOUT_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "layout_theme"; switch (desktop) { case 0: config.Values = "茶饮"; break; case 1: config.Values = "快餐"; break; case 2: config.Values = "称重"; break; case 3: config.Values = "食堂";//zhangy 2020-02-18 待删除,参数设置中已经删除了配置项 break; case 4: config.Values = "新食堂"; break; default: config.Values = "快餐"; break; } insertList.Add(config); } } //金额尾数处理方式 if (pbody.ContainsKey("amountMantissa")) { int amountMantissa = StringUtils.GetInt(pbody["amountMantissa"]); LOGGER.Info("金额尾数处理方式===>" + amountMantissa); List amountMantissaList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierMantissa".Equals(x.Keys)); if (amountMantissaList != null && amountMantissaList.Count > 0) { Config config = amountMantissaList[0]; config.Values = String.Format("{0}", amountMantissa); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierMantissa"; config.Values = String.Format("{0}", amountMantissa); insertList.Add(config); } } //单价显示小数位数 if (pbody.ContainsKey("priceDecimalDigit")) { int priceDecimalDigit = StringUtils.GetInt(pbody["priceDecimalDigit"]); LOGGER.Info("单价显示小数位数===>" + priceDecimalDigit); List priceDecimalDigitList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierPriceDigit".Equals(x.Keys)); if (priceDecimalDigitList != null && priceDecimalDigitList.Count > 0) { Config config = priceDecimalDigitList[0]; config.Values = String.Format("{0}", priceDecimalDigit); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierPriceDigit"; config.Values = String.Format("{0}", priceDecimalDigit); insertList.Add(config); } } //数量显示小数位数 if (pbody.ContainsKey("numberDecimalDigit")) { int numberDecimalDigit = StringUtils.GetInt(pbody["numberDecimalDigit"]); LOGGER.Info("数量显示小数位数===>" + numberDecimalDigit); List numberDecimalDigitList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierQuantityDigit".Equals(x.Keys)); if (numberDecimalDigitList != null && numberDecimalDigitList.Count > 0) { Config config = numberDecimalDigitList[0]; config.Values = String.Format("{0}", numberDecimalDigit); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierQuantityDigit"; config.Values = String.Format("{0}", numberDecimalDigit); insertList.Add(config); } } //小计显示小数位数 if (pbody.ContainsKey("subtotalDecimalDigit")) { int subtotalDecimalDigit = StringUtils.GetInt(pbody["subtotalDecimalDigit"]); LOGGER.Info("小计显示小数位数===>" + subtotalDecimalDigit); List subtotalDecimalDigitList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierSubTotalDigit".Equals(x.Keys)); if (subtotalDecimalDigitList != null && subtotalDecimalDigitList.Count > 0) { Config config = subtotalDecimalDigitList[0]; config.Values = String.Format("{0}", subtotalDecimalDigit); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierSubTotalDigit"; config.Values = String.Format("{0}", subtotalDecimalDigit); insertList.Add(config); } } //厨显号 if (pbody.ContainsKey("posNo")) { string posNo = StringUtils.GetString(pbody["posNo"]); LOGGER.Info("厨显号===>" + posNo); List posNoList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierPosNo".Equals(x.Keys)); if (posNoList != null && posNoList.Count > 0) { Config config = posNoList[0]; config.Values = posNo; updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierPosNo"; config.Values = posNo; insertList.Add(config); } } //常规多选框 if (pbody.ContainsKey("routine")) { List routine = JsonUtils.Deserialize>(pbody["routine"].ToString()); LOGGER.Info("常规多选框===>" + routine); //前台结算以下付款方式全额付款时实款实收:微信、支付宝、银联钱包、储值卡 bool CashierNotAllowMantissa = routine.Exists(x => x == 0); List CashierNotAllowMantissaList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowMantissa".Equals(x.Keys)); if (CashierNotAllowMantissaList != null && CashierNotAllowMantissaList.Count > 0) { Config config = CashierNotAllowMantissaList[0]; config.Values = String.Format("{0}", CashierNotAllowMantissa ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowMantissa"; config.Values = String.Format("{0}", CashierNotAllowMantissa ? 1 : 0); insertList.Add(config); } //允许有未结账单据(含挂单)存在时退出系统 bool CashierAllowAccountEnRoute = routine.Exists(x => x == 1); List CashierAllowAccountEnRouteList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAllowAccountEnRoute".Equals(x.Keys)); if (CashierAllowAccountEnRouteList != null && CashierAllowAccountEnRouteList.Count > 0) { Config config = CashierAllowAccountEnRouteList[0]; config.Values = String.Format("{0}", CashierAllowAccountEnRoute ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAllowAccountEnRoute"; config.Values = String.Format("{0}", CashierAllowAccountEnRoute ? 1 : 0); insertList.Add(config); } //禁止退出系统时提示操作员 bool CashierAccountEnRouteNotity = routine.Exists(x => x == 2); List CashierAccountEnRouteNotityList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAccountEnRouteNotity".Equals(x.Keys)); if (CashierAccountEnRouteNotityList != null && CashierAccountEnRouteNotityList.Count > 0) { Config config = CashierAccountEnRouteNotityList[0]; config.Values = String.Format("{0}", CashierAccountEnRouteNotity ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAccountEnRouteNotity"; config.Values = String.Format("{0}", CashierAccountEnRouteNotity ? 1 : 0); insertList.Add(config); } //禁止收银前台赠送 bool CashierNotAllowGive = routine.Exists(x => x == 3); List CashierNotAllowGiveList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowGive".Equals(x.Keys)); if (CashierNotAllowGiveList != null && CashierNotAllowGiveList.Count > 0) { Config config = CashierNotAllowGiveList[0]; config.Values = String.Format("{0}", CashierNotAllowGive ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowGive"; config.Values = String.Format("{0}", CashierNotAllowGive ? 1 : 0); insertList.Add(config); } //禁止收银前台折扣 bool CashierNotAllowDiscount = routine.Exists(x => x == 4); List CashierNotAllowDiscountList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowDiscount".Equals(x.Keys)); if (CashierNotAllowDiscountList != null && CashierNotAllowDiscountList.Count > 0) { Config config = CashierNotAllowDiscountList[0]; config.Values = String.Format("{0}", CashierNotAllowDiscount ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowDiscount"; config.Values = String.Format("{0}", CashierNotAllowDiscount ? 1 : 0); insertList.Add(config); } //禁止收银前台议价 bool CashierNotAllowBargain = routine.Exists(x => x == 5); List CashierNotAllowBargainList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowBargain".Equals(x.Keys)); if (CashierNotAllowBargainList != null && CashierNotAllowBargainList.Count > 0) { Config config = CashierNotAllowBargainList[0]; config.Values = String.Format("{0}", CashierNotAllowBargain ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowBargain"; config.Values = String.Format("{0}", CashierNotAllowBargain ? 1 : 0); insertList.Add(config); } //前台支付助记码销售 bool CashierAllowMnemonicCode = routine.Exists(x => x == 6); List CashierAllowMnemonicCodeList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAllowMnemonicCode".Equals(x.Keys)); if (CashierAllowMnemonicCodeList != null && CashierAllowMnemonicCodeList.Count > 0) { Config config = CashierAllowMnemonicCodeList[0]; config.Values = String.Format("{0}", CashierAllowMnemonicCode ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAllowMnemonicCode"; config.Values = String.Format("{0}", CashierAllowMnemonicCode ? 1 : 0); insertList.Add(config); } //允许历史单据退款 bool CashierAllowBackPayHistory = routine.Exists(x => x == 7); List CashierAllowBackPayHistoryList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAllowBackPayHistory".Equals(x.Keys)); if (CashierAllowBackPayHistoryList != null && CashierAllowBackPayHistoryList.Count > 0) { Config config = CashierAllowBackPayHistoryList[0]; config.Values = String.Format("{0}", CashierAllowBackPayHistory ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAllowBackPayHistory"; config.Values = String.Format("{0}", CashierAllowBackPayHistory ? 1 : 0); insertList.Add(config); } //启动移动支付语音播报 bool IsPayVoicePlay = routine.Exists(x => x == 8); List IsPayVoicePlayList = configList.FindAll(x => "cashier".Equals(x.Group) && "IsPayVoicePlay".Equals(x.Keys)); if (IsPayVoicePlayList != null && IsPayVoicePlayList.Count > 0) { Config config = IsPayVoicePlayList[0]; config.Values = String.Format("{0}", IsPayVoicePlay ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "IsPayVoicePlay"; config.Values = String.Format("{0}", IsPayVoicePlay ? 1 : 0); insertList.Add(config); } //收银找零不允许超过一百元 bool CashierNotAllowMoneyMoreThan = routine.Exists(x => x == 9); List CashierNotAllowMoneyMoreThanList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowMoneyMoreThan".Equals(x.Keys)); if (CashierNotAllowMoneyMoreThanList != null && CashierNotAllowMoneyMoreThanList.Count > 0) { Config config = CashierNotAllowMoneyMoreThanList[0]; config.Values = String.Format("{0}", CashierNotAllowMoneyMoreThan ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowMoneyMoreThan"; config.Values = String.Format("{0}", CashierNotAllowMoneyMoreThan ? 1 : 0); insertList.Add(config); } //消单、整单取消操作是否进行提示 bool CashierOrderCancelNotity = routine.Exists(x => x == 10); List CashierOrderCancelNotityList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierOrderCancelNotity".Equals(x.Keys)); if (CashierOrderCancelNotityList != null && CashierOrderCancelNotityList.Count > 0) { Config config = CashierOrderCancelNotityList[0]; config.Values = String.Format("{0}", CashierOrderCancelNotity ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierOrderCancelNotity"; config.Values = String.Format("{0}", CashierOrderCancelNotity ? 1 : 0); insertList.Add(config); } //禁止显示赠送标识【赠】 bool CashierNotAllowShowGive = routine.Exists(x => x == 11); List CashierNotAllowShowGiveList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowShowGive".Equals(x.Keys)); if (CashierNotAllowShowGiveList != null && CashierNotAllowShowGiveList.Count > 0) { Config config = CashierNotAllowShowGiveList[0]; config.Values = String.Format("{0}", CashierNotAllowShowGive ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowShowGive"; config.Values = String.Format("{0}", CashierNotAllowShowGive ? 1 : 0); insertList.Add(config); } //禁止显示折扣标识【折】 bool CashierNotAllowShowDiscount = routine.Exists(x => x == 12); List CashierNotAllowShowDiscountList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowShowDiscount".Equals(x.Keys)); if (CashierNotAllowShowDiscountList != null && CashierNotAllowShowDiscountList.Count > 0) { Config config = CashierNotAllowShowDiscountList[0]; config.Values = String.Format("{0}", CashierNotAllowShowDiscount ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowShowDiscount"; config.Values = String.Format("{0}", CashierNotAllowShowDiscount ? 1 : 0); insertList.Add(config); } //禁止显示议价标识【议】 bool CashierNotAllowShowBargain = routine.Exists(x => x == 13); List CashierNotAllowShowBargainList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowShowBargain".Equals(x.Keys)); if (CashierNotAllowShowBargainList != null && CashierNotAllowShowBargainList.Count > 0) { Config config = CashierNotAllowShowBargainList[0]; config.Values = String.Format("{0}", CashierNotAllowShowBargain ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowShowBargain"; config.Values = String.Format("{0}", CashierNotAllowShowBargain ? 1 : 0); insertList.Add(config); } //商品做法参与折扣,赠送 bool CashierAllowMakeDiscount = routine.Exists(x => x == 14); List CashierAllowMakeDiscountList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAllowMakeDiscount".Equals(x.Keys)); if (CashierAllowMakeDiscountList != null && CashierAllowMakeDiscountList.Count > 0) { Config config = CashierAllowMakeDiscountList[0]; config.Values = String.Format("{0}", CashierAllowMakeDiscount ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAllowMakeDiscount"; config.Values = String.Format("{0}", CashierAllowMakeDiscount ? 1 : 0); insertList.Add(config); } //练习模式 bool EnableStudyMode = routine.Exists(x => x == 15); List EnableStudyModeList = configList.FindAll(x => "cashier".Equals(x.Group) && "EnableStudyMode".Equals(x.Keys)); if (EnableStudyModeList != null && EnableStudyModeList.Count > 0) { Config config = EnableStudyModeList[0]; config.Values = String.Format("{0}", EnableStudyMode ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "EnableStudyMode"; config.Values = String.Format("{0}", EnableStudyMode ? 1 : 0); insertList.Add(config); } //银行卡支付启用建行MIS bool IsCCBMisPlay = routine.Exists(x => x == 16); List IsCCBMisPlayList = configList.FindAll(x => "cashier".Equals(x.Group) && "IsCCBMisPlay".Equals(x.Keys)); if (IsCCBMisPlayList != null && IsCCBMisPlayList.Count > 0) { Config config = IsCCBMisPlayList[0]; config.Values = String.Format("{0}", IsCCBMisPlay ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "IsCCBMisPlay"; config.Values = String.Format("{0}", IsCCBMisPlay ? 1 : 0); insertList.Add(config); } } //最大金额设置 if (pbody.ContainsKey("maxAmount")) { string maxAmount = StringUtils.GetString(pbody["maxAmount"]); LOGGER.Info("最大金额设置===>" + maxAmount); List maxAmountList = configList.FindAll(x => "cashier".Equals(x.Group) && "MaxSaleMoney".Equals(x.Keys)); if (maxAmountList != null && maxAmountList.Count > 0) { Config config = maxAmountList[0]; config.Values = maxAmount; updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "MaxSaleMoney"; config.Values = maxAmount; insertList.Add(config); } } //商品附加信息符号 if (pbody.ContainsKey("productRemarks")) { int productRemarks = StringUtils.GetInt(pbody["productRemarks"]); LOGGER.Info("商品附加信息符号===>" + productRemarks); List CashierAdditionalList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAdditional".Equals(x.Keys)); if (CashierAdditionalList != null && CashierAdditionalList.Count > 0) { Config config = CashierAdditionalList[0]; switch (productRemarks) { case 0: config.Values = "不填充"; break; case 1: config.Values = "方括号"; break; case 2: config.Values = "圆括号"; break; case 3: config.Values = "花括号"; break; case 4: config.Values = "六角括号"; break; case 5: config.Values = "方头括号"; break; default: config.Values = "方括号"; break; } updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAdditional"; switch (productRemarks) { case 0: config.Values = "不填充"; break; case 1: config.Values = "方括号"; break; case 2: config.Values = "圆括号"; break; case 3: config.Values = "花括号"; break; case 4: config.Values = "六角括号"; break; case 5: config.Values = "方头括号"; break; default: config.Values = "方括号"; break; } insertList.Add(config); } } //商品列表排序方式 if (pbody.ContainsKey("productSort")) { int productSort = StringUtils.GetInt(pbody["productSort"]); LOGGER.Info("商品列表排序方式===>" + productSort); List CashierProductOrderList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierProductOrder".Equals(x.Keys)); if (CashierProductOrderList != null && CashierProductOrderList.Count > 0) { Config config = CashierProductOrderList[0]; switch (productSort) { case 0: config.Values = "不排序"; break; case 1: config.Values = "按编号"; break; case 2: config.Values = "按价格"; break; case 3: config.Values = "按名称"; break; default: config.Values = "不排序"; break; } updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierProductOrder"; switch (productSort) { case 0: config.Values = "不排序"; break; case 1: config.Values = "按编号"; break; case 2: config.Values = "按价格"; break; case 3: config.Values = "按名称"; break; default: config.Values = "不排序"; break; } insertList.Add(config); } } //高级多选框 if (pbody.ContainsKey("senior")) { List senior = JsonUtils.Deserialize>(pbody["senior"].ToString()); LOGGER.Info("高级多选框===>" + senior); //点单列表中品名显示简称,否则显示全称 bool CashierOrderShowShortName = senior.Exists(x => x == 0); List CashierOrderShowShortNameList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierOrderShowShortName".Equals(x.Keys)); if (CashierOrderShowShortNameList != null && CashierOrderShowShortNameList.Count > 0) { Config config = CashierOrderShowShortNameList[0]; config.Values = String.Format("{0}", CashierOrderShowShortName ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierOrderShowShortName"; config.Values = String.Format("{0}", CashierOrderShowShortName ? 1 : 0); insertList.Add(config); } //点单列表中品名显示包含规则,否则不包含 bool CashierOrderShowSpecName = senior.Exists(x => x == 1); List CashierOrderShowSpecNameList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierOrderShowSpecName".Equals(x.Keys)); if (CashierOrderShowSpecNameList != null && CashierOrderShowSpecNameList.Count > 0) { Config config = CashierOrderShowSpecNameList[0]; config.Values = String.Format("{0}", CashierOrderShowSpecName ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierOrderShowSpecName"; config.Values = String.Format("{0}", CashierOrderShowSpecName ? 1 : 0); insertList.Add(config); } //多规格自动弹出选择,否则选中默认规格 bool CashierAutoSelectSpec = senior.Exists(x => x == 2); List CashierAutoSelectSpecList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAutoSelectSpec".Equals(x.Keys)); if (CashierAutoSelectSpecList != null && CashierAutoSelectSpecList.Count > 0) { Config config = CashierAutoSelectSpecList[0]; config.Values = String.Format("{0}", CashierAutoSelectSpec ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAutoSelectSpec"; config.Values = String.Format("{0}", CashierAutoSelectSpec ? 1 : 0); insertList.Add(config); } //做法选择采用弹窗,否则采用浮动 bool CashierAutoSelectFlavor = senior.Exists(x => x == 3); List CashierAutoSelectFlavorList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAutoSelectFlavor".Equals(x.Keys)); if (CashierAutoSelectFlavorList != null && CashierAutoSelectFlavorList.Count > 0) { Config config = CashierAutoSelectFlavorList[0]; config.Values = String.Format("{0}", CashierAutoSelectFlavor ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAutoSelectFlavor"; config.Values = String.Format("{0}", CashierAutoSelectFlavor ? 1 : 0); insertList.Add(config); } //门店外送单使用外送价 bool CashierWsOrderUseOtherPrice = senior.Exists(x => x == 4); List CashierWsOrderUseOtherPriceList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierWsOrderUseOtherPrice".Equals(x.Keys)); if (CashierWsOrderUseOtherPriceList != null && CashierWsOrderUseOtherPriceList.Count > 0) { Config config = CashierWsOrderUseOtherPriceList[0]; config.Values = String.Format("{0}", CashierWsOrderUseOtherPrice ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierWsOrderUseOtherPrice"; config.Values = String.Format("{0}", CashierWsOrderUseOtherPrice ? 1 : 0); insertList.Add(config); } //门店外送单送餐人默认为收银员 bool CashierDeliveryOrderSelf = senior.Exists(x => x == 5); List CashierDeliveryOrderSelfList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierDeliveryOrderSelf".Equals(x.Keys)); if (CashierDeliveryOrderSelfList != null && CashierDeliveryOrderSelfList.Count > 0) { Config config = CashierDeliveryOrderSelfList[0]; config.Values = String.Format("{0}", CashierDeliveryOrderSelf ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierDeliveryOrderSelf"; config.Values = String.Format("{0}", CashierDeliveryOrderSelf ? 1 : 0); insertList.Add(config); } //允许输入小数数量 bool CashierNotAllowInputDigit = senior.Exists(x => x == 6); List CashierNotAllowInputDigitList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowInputDigit".Equals(x.Keys)); if (CashierNotAllowInputDigitList != null && CashierNotAllowInputDigitList.Count > 0) { Config config = CashierNotAllowInputDigitList[0]; config.Values = String.Format("{0}", CashierNotAllowInputDigit ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowInputDigit"; config.Values = String.Format("{0}", CashierNotAllowInputDigit ? 1 : 0); insertList.Add(config); } //允许销售售价为零的商品 bool CashierAllowPriceZero = senior.Exists(x => x == 7); List CashierAllowPriceZeroList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAllowPriceZero".Equals(x.Keys)); if (CashierAllowPriceZeroList != null && CashierAllowPriceZeroList.Count > 0) { Config config = CashierAllowPriceZeroList[0]; config.Values = String.Format("{0}", CashierAllowPriceZero ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAllowPriceZero"; config.Values = String.Format("{0}", CashierAllowPriceZero ? 1 : 0); insertList.Add(config); } //售价为零的商品售卖时提醒 bool CashierPriceZeroNotify = senior.Exists(x => x == 8); List CashierPriceZeroNotifyList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierPriceZeroNotify".Equals(x.Keys)); if (CashierPriceZeroNotifyList != null && CashierPriceZeroNotifyList.Count > 0) { Config config = CashierPriceZeroNotifyList[0]; config.Values = String.Format("{0}", CashierPriceZeroNotify ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierPriceZeroNotify"; config.Values = String.Format("{0}", CashierPriceZeroNotify ? 1 : 0); insertList.Add(config); } //售价为零的商品售卖时输入售价 bool CashierPriceZeroInput = senior.Exists(x => x == 9); List CashierPriceZeroInputList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierPriceZeroInput".Equals(x.Keys)); if (CashierPriceZeroInputList != null && CashierPriceZeroInputList.Count > 0) { Config config = CashierPriceZeroInputList[0]; config.Values = String.Format("{0}", CashierPriceZeroInput ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierPriceZeroInput"; config.Values = String.Format("{0}", CashierPriceZeroInput ? 1 : 0); insertList.Add(config); } //允许销售零(负)库存商品 bool CashierAllowStockZero = senior.Exists(x => x == 10); List CashierAllowStockZeroList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAllowStockZero".Equals(x.Keys)); if (CashierAllowStockZeroList != null && CashierAllowStockZeroList.Count > 0) { Config config = CashierAllowStockZeroList[0]; config.Values = String.Format("{0}", CashierAllowStockZero ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAllowStockZero"; config.Values = String.Format("{0}", CashierAllowStockZero ? 1 : 0); insertList.Add(config); } //销售零(负)库存时提示 bool CashierStockZeroNotify = senior.Exists(x => x == 11); List CashierStockZeroNotifyList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierStockZeroNotify".Equals(x.Keys)); if (CashierStockZeroNotifyList != null && CashierStockZeroNotifyList.Count > 0) { Config config = CashierStockZeroNotifyList[0]; config.Values = String.Format("{0}", CashierStockZeroNotify ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierStockZeroNotify"; config.Values = String.Format("{0}", CashierStockZeroNotify ? 1 : 0); insertList.Add(config); } //全局单号获取失败时提示操作员 bool CashierTicketNoNofity = senior.Exists(x => x == 12); List CashierTicketNoNofityList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierTicketNoNofity".Equals(x.Keys)); if (CashierTicketNoNofityList != null && CashierTicketNoNofityList.Count > 0) { Config config = CashierTicketNoNofityList[0]; config.Values = String.Format("{0}", CashierTicketNoNofity ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierTicketNoNofity"; config.Values = String.Format("{0}", CashierTicketNoNofity ? 1 : 0); insertList.Add(config); } //全局单号获取失败时默认采用本机单号 bool CashierLocalTicketNo = senior.Exists(x => x == 13); List CashierLocalTicketNoList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierLocalTicketNo".Equals(x.Keys)); if (CashierLocalTicketNoList != null && CashierLocalTicketNoList.Count > 0) { Config config = CashierLocalTicketNoList[0]; config.Values = String.Format("{0}", CashierLocalTicketNo ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierLocalTicketNo"; config.Values = String.Format("{0}", CashierLocalTicketNo ? 1 : 0); insertList.Add(config); } //外卖转单计入门店实得 bool CashierOtherWaimai = senior.Exists(x => x == 14); List CashierOtherWaimaiList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierOtherWaimai".Equals(x.Keys)); if (CashierOtherWaimaiList != null && CashierOtherWaimaiList.Count > 0) { Config config = CashierOtherWaimaiList[0]; config.Values = String.Format("{0}", CashierOtherWaimai ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierOtherWaimai"; config.Values = String.Format("{0}", CashierOtherWaimai ? 1 : 0); insertList.Add(config); } //外卖单品未绑定,走默认厨显方案 bool CashierOtherWaimaiDefaultKDS = senior.Exists(x => x == 15); List CashierOtherWaimaiDefaultKDSList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierOtherWaimaiDefaultKDS".Equals(x.Keys)); if (CashierOtherWaimaiDefaultKDSList != null && CashierOtherWaimaiDefaultKDSList.Count > 0) { Config config = CashierOtherWaimaiDefaultKDSList[0]; config.Values = String.Format("{0}", CashierOtherWaimaiDefaultKDS ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierOtherWaimaiDefaultKDS"; config.Values = String.Format("{0}", CashierOtherWaimaiDefaultKDS ? 1 : 0); insertList.Add(config); } //交易完成后不清楚单据信息,显示已结账 bool CashierNotAllowShowPreOrder = senior.Exists(x => x == 16); List CashierNotAllowShowPreOrderList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowShowPreOrder".Equals(x.Keys)); if (CashierNotAllowShowPreOrderList != null && CashierNotAllowShowPreOrderList.Count > 0) { Config config = CashierNotAllowShowPreOrderList[0]; config.Values = String.Format("{0}", CashierNotAllowShowPreOrder ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowShowPreOrder"; config.Values = String.Format("{0}", CashierNotAllowShowPreOrder ? 1 : 0); insertList.Add(config); } //点单列表中单价和小计金额显示折后价 bool CashierOrderShowDiscountPrice = senior.Exists(x => x == 17); List CashierOrderShowDiscountPriceList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierOrderShowDiscountPrice".Equals(x.Keys)); if (CashierOrderShowDiscountPriceList != null && CashierOrderShowDiscountPriceList.Count > 0) { Config config = CashierOrderShowDiscountPriceList[0]; config.Values = String.Format("{0}", CashierOrderShowDiscountPrice ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierOrderShowDiscountPrice"; config.Values = String.Format("{0}", CashierOrderShowDiscountPrice ? 1 : 0); insertList.Add(config); } //更换套餐自动弹出选择,否则采用浮动 bool CashierAutoSelectSuit = senior.Exists(x => x == 18); List CashierAutoSelectSuitList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAutoSelectSuit".Equals(x.Keys)); if (CashierAutoSelectSuitList != null && CashierAutoSelectSuitList.Count > 0) { Config config = CashierAutoSelectSuitList[0]; config.Values = String.Format("{0}", CashierAutoSelectSuit ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAutoSelectSuit"; config.Values = String.Format("{0}", CashierAutoSelectSuit ? 1 : 0); insertList.Add(config); } //启用收银员权限不足自动弹出授权 bool CashierAutoLockDisable = senior.Exists(x => x == 19); List CashierAutoLockDisableList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAutoLockDisable".Equals(x.Keys)); if (CashierAutoLockDisableList != null && CashierAutoLockDisableList.Count > 0) { Config config = CashierAutoLockDisableList[0]; config.Values = String.Format("{0}", CashierAutoLockDisable ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAutoLockDisable"; config.Values = String.Format("{0}", CashierAutoLockDisable ? 1 : 0); insertList.Add(config); } //允许零售价低于最低售价销售 bool CashierAllowMinPriceSale = senior.Exists(x => x == 20); List CashierAllowMinPriceSaleList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAllowMinPriceSale".Equals(x.Keys)); if (CashierAllowMinPriceSaleList != null && CashierAllowMinPriceSaleList.Count > 0) { Config config = CashierAllowMinPriceSaleList[0]; config.Values = String.Format("{0}", CashierAllowMinPriceSale ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAllowMinPriceSale"; config.Values = String.Format("{0}", CashierAllowMinPriceSale ? 1 : 0); insertList.Add(config); } //零售价低于最低售价销售时提示 bool CashierMinPriceSaleNofity = senior.Exists(x => x == 21); List CashierMinPriceSaleNofityList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierMinPriceSaleNofity".Equals(x.Keys)); if (CashierMinPriceSaleNofityList != null && CashierMinPriceSaleNofityList.Count > 0) { Config config = CashierMinPriceSaleNofityList[0]; config.Values = String.Format("{0}", CashierMinPriceSaleNofity ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierMinPriceSaleNofity"; config.Values = String.Format("{0}", CashierMinPriceSaleNofity ? 1 : 0); insertList.Add(config); } //每单必须选择营业员 bool CashierMustInputSalesMan = senior.Exists(x => x == 22); List CashierMustInputSalesManList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierMustInputSalesMan".Equals(x.Keys)); if (CashierMustInputSalesManList != null && CashierMustInputSalesManList.Count > 0) { Config config = CashierMustInputSalesManList[0]; config.Values = String.Format("{0}", CashierMustInputSalesMan ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierMustInputSalesMan"; config.Values = String.Format("{0}", CashierMustInputSalesMan ? 1 : 0); insertList.Add(config); } //销售自动获取上一单营业员 bool CashierAutoSalesMan = senior.Exists(x => x == 23); List CashierAutoSalesManList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAutoSalesMan".Equals(x.Keys)); if (CashierAutoSalesManList != null && CashierAutoSalesManList.Count > 0) { Config config = CashierAutoSalesManList[0]; config.Values = String.Format("{0}", CashierAutoSalesMan ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAutoSalesMan"; config.Values = String.Format("{0}", CashierAutoSalesMan ? 1 : 0); insertList.Add(config); } //结账时自动弹出录入桌号 bool CheckAutoOpenDeskNo = senior.Exists(x => x == 24); List CheckAutoOpenDeskNoList = configList.FindAll(x => "cashier".Equals(x.Group) && "CheckAutoOpenDeskNo".Equals(x.Keys)); if (CheckAutoOpenDeskNoList != null && CheckAutoOpenDeskNoList.Count > 0) { Config config = CheckAutoOpenDeskNoList[0]; config.Values = String.Format("{0}", CheckAutoOpenDeskNo ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CheckAutoOpenDeskNo"; config.Values = String.Format("{0}", CheckAutoOpenDeskNo ? 1 : 0); insertList.Add(config); } //按区域选择餐桌(默认按类型) bool CheckAutoOpenDeskArea = senior.Exists(x => x == 25); List CheckAutoOpenDeskAreaList = configList.FindAll(x => "cashier".Equals(x.Group) && "CheckAutoOpenDeskArea".Equals(x.Keys)); if (CheckAutoOpenDeskAreaList != null && CheckAutoOpenDeskAreaList.Count > 0) { Config config = CheckAutoOpenDeskAreaList[0]; config.Values = String.Format("{0}", CheckAutoOpenDeskArea ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CheckAutoOpenDeskArea"; config.Values = String.Format("{0}", CheckAutoOpenDeskArea ? 1 : 0); insertList.Add(config); } //按区域选择餐桌(默认按类型) bool OrderTypeDefaultTS = senior.Exists(x => x == 26); List OrderTypeDefaultTSList = configList.FindAll(x => "cashier".Equals(x.Group) && "OrderTypeDefaultTS".Equals(x.Keys)); if (OrderTypeDefaultTSList != null && OrderTypeDefaultTSList.Count > 0) { Config config = OrderTypeDefaultTSList[0]; config.Values = String.Format("{0}", OrderTypeDefaultTS ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "OrderTypeDefaultTS"; config.Values = String.Format("{0}", OrderTypeDefaultTS ? 1 : 0); insertList.Add(config); } //点套餐自动弹出换菜窗口 bool AddSuitAutoOpenChangeForm = senior.Exists(x => x == 27); List AddSuitAutoOpenChangeFormList = configList.FindAll(x => "cashier".Equals(x.Group) && "AddSuitAutoOpenChangeForm".Equals(x.Keys)); if (AddSuitAutoOpenChangeFormList != null && AddSuitAutoOpenChangeFormList.Count > 0) { Config config = AddSuitAutoOpenChangeFormList[0]; config.Values = String.Format("{0}", AddSuitAutoOpenChangeForm ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "AddSuitAutoOpenChangeForm"; config.Values = String.Format("{0}", AddSuitAutoOpenChangeForm ? 1 : 0); insertList.Add(config); } //触摸屏,启用软键盘 bool EnableSoftKeyboard = senior.Exists(x => x == 28); List EnableSoftKeyboardList = configList.FindAll(x => "cashier".Equals(x.Group) && "EnableSoftKeyboard".Equals(x.Keys)); if (EnableSoftKeyboardList != null && EnableSoftKeyboardList.Count > 0) { Config config = EnableSoftKeyboardList[0]; config.Values = String.Format("{0}", EnableSoftKeyboard ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "EnableSoftKeyboard"; config.Values = String.Format("{0}", EnableSoftKeyboard ? 1 : 0); insertList.Add(config); } //启用外卖商品绑定厨显方案 bool CashierOtherWaimaiPlanKDS = senior.Exists(x => x == 29); List CashierOtherWaimaiPlanKDSList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierOtherWaimaiPlanKDS".Equals(x.Keys)); if (CashierOtherWaimaiPlanKDSList != null && CashierOtherWaimaiPlanKDSList.Count > 0) { Config config = CashierOtherWaimaiPlanKDSList[0]; config.Values = String.Format("{0}", CashierOtherWaimaiPlanKDS ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierOtherWaimaiPlanKDS"; config.Values = String.Format("{0}", CashierOtherWaimaiPlanKDS ? 1 : 0); insertList.Add(config); } //启用外卖商品绑定厨打方案 bool CashierOtherWaimaiPlanKIT = senior.Exists(x => x == 30); List CashierOtherWaimaiPlanKITList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierOtherWaimaiPlanKIT".Equals(x.Keys)); if (CashierOtherWaimaiPlanKITList != null && CashierOtherWaimaiPlanKITList.Count > 0) { Config config = CashierOtherWaimaiPlanKITList[0]; config.Values = String.Format("{0}", CashierOtherWaimaiPlanKIT ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierOtherWaimaiPlanKIT"; config.Values = String.Format("{0}", CashierOtherWaimaiPlanKIT ? 1 : 0); insertList.Add(config); } //外卖转单自动匹配本地同名商品 bool CashierOtherWaimaiMapping = senior.Exists(x => x == 31); List CashierOtherWaimaiMappingList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierOtherWaimaiMapping".Equals(x.Keys)); if (CashierOtherWaimaiMappingList != null && CashierOtherWaimaiMappingList.Count > 0) { Config config = CashierOtherWaimaiMappingList[0]; config.Values = String.Format("{0}", CashierOtherWaimaiMapping ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierOtherWaimaiMapping"; config.Values = String.Format("{0}", CashierOtherWaimaiMapping ? 1 : 0); insertList.Add(config); } } //会员规则处理 var cardItem = new MemberCardItem(); cardItem.Enable = true; var list = new List(); //会员身份 if (pbody.ContainsKey("memberIdentity")) { List memberIdentity = JsonUtils.Deserialize>(pbody["memberIdentity"].ToString()); LOGGER.Info("会员身份===>" + memberIdentity); bool memberIdentity0 = memberIdentity.Exists(x => x == 0); if (memberIdentity0) { list.Add(MemberCardReadType.磁条卡或IC卡); } bool memberIdentity1 = memberIdentity.Exists(x => x == 1); if (memberIdentity1) { list.Add(MemberCardReadType.手机号码); } bool memberIdentity2 = memberIdentity.Exists(x => x == 2); if (memberIdentity2) { list.Add(MemberCardReadType.电子卡); } } cardItem.ListReader = list; //会员卡介质 var types = new List(); //会员卡介质 if (pbody.ContainsKey("memberCardType")) { List memberCardType = JsonUtils.Deserialize>(pbody["memberCardType"].ToString()); LOGGER.Info("会员卡介质===>" + memberCardType); bool memberCardType0 = memberCardType.Exists(x => x == 0); if (memberCardType0) { types.Add(MemberCardType.Magnetic); } bool memberCardType1 = memberCardType.Exists(x => x == 1); if (memberCardType1) { types.Add(MemberCardType.Mifare); } } cardItem.ListType = types; //会员卡功能设置 var funs = new List(); //会员功能 if (pbody.ContainsKey("memberFunction")) { List memberFunction = JsonUtils.Deserialize>(pbody["memberFunction"].ToString()); LOGGER.Info("会员功能===>" + memberFunction); bool memberFunction0 = memberFunction.Exists(x => x == 0); if (memberFunction0) { funs.Add(MemberCardFunctions.会员价优惠); } bool memberFunction1 = memberFunction.Exists(x => x == 1); if (memberFunction1) { funs.Add(MemberCardFunctions.会员积分及兑换); } bool memberFunction2 = memberFunction.Exists(x => x == 2); if (memberFunction2) { funs.Add(MemberCardFunctions.会员储值及消费); } } cardItem.Function = funs; //会员卡支付类型 if (pbody.ContainsKey("memberPayType")) { int memberPayType = StringUtils.GetInt(pbody["memberPayType"]); LOGGER.Info("会员卡支付类型===>" + memberPayType); //会员卡支付认证 if (memberPayType == 0) { cardItem.PaymentType = 1; } else { cardItem.PaymentType = 0; } } string _cardItemValue = JsonUtils.Serialize(cardItem); List CashierMemberCardList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierMemberCard".Equals(x.Keys)); if (CashierMemberCardList != null && CashierMemberCardList.Count > 0) { Config config = CashierMemberCardList[0]; config.Values = _cardItemValue; updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierMemberCard"; config.Values = _cardItemValue; insertList.Add(config); } //卡号前缀 if (pbody.ContainsKey("cardNoPrefix")) { string cardNoPrefix = StringUtils.GetString(pbody["cardNoPrefix"]); LOGGER.Info("卡号前缀===>" + cardNoPrefix); List CashierCardNoPrefixList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierCardNoPrefix".Equals(x.Keys)); if (CashierCardNoPrefixList != null && CashierCardNoPrefixList.Count > 0) { Config config = CashierCardNoPrefixList[0]; config.Values = cardNoPrefix; updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierCardNoPrefix"; config.Values = cardNoPrefix; insertList.Add(config); } } //会员其他设置 if (pbody.ContainsKey("memberOtherSet")) { List memberOtherSet = JsonUtils.Deserialize>(pbody["memberOtherSet"].ToString()); LOGGER.Info("会员其他设置===>" + memberOtherSet); //允许会员刷卡使用键盘输入 bool CashierAllowInputCardNo = memberOtherSet.Exists(x => x == 0); List CashierAllowInputCardNoList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAllowInputCardNo".Equals(x.Keys)); if (CashierAllowInputCardNoList != null && CashierAllowInputCardNoList.Count > 0) { Config config = CashierAllowInputCardNoList[0]; config.Values = String.Format("{0}", CashierAllowInputCardNo ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAllowInputCardNo"; config.Values = String.Format("{0}", CashierAllowInputCardNo ? 1 : 0); insertList.Add(config); } //禁止会员价销售时前台赠送 bool CashierNotAllowMemberGive = memberOtherSet.Exists(x => x == 1); List CashierNotAllowMemberGiveList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowMemberGive".Equals(x.Keys)); if (CashierNotAllowMemberGiveList != null && CashierNotAllowMemberGiveList.Count > 0) { Config config = CashierNotAllowMemberGiveList[0]; config.Values = String.Format("{0}", CashierNotAllowMemberGive ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowMemberGive"; config.Values = String.Format("{0}", CashierNotAllowMemberGive ? 1 : 0); insertList.Add(config); } //禁止会员价销售时前台折扣 bool CashierNotAllowMemberDiscount = memberOtherSet.Exists(x => x == 2); List CashierNotAllowMemberDiscountList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowMemberDiscount".Equals(x.Keys)); if (CashierNotAllowMemberDiscountList != null && CashierNotAllowMemberDiscountList.Count > 0) { Config config = CashierNotAllowMemberDiscountList[0]; config.Values = String.Format("{0}", CashierNotAllowMemberDiscount ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowMemberDiscount"; config.Values = String.Format("{0}", CashierNotAllowMemberDiscount ? 1 : 0); insertList.Add(config); } //禁止会员价销售时前台议价 bool CashierNotAllowMemberBargain = memberOtherSet.Exists(x => x == 3); List CashierNotAllowMemberBargainList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowMemberBargain".Equals(x.Keys)); if (CashierNotAllowMemberBargainList != null && CashierNotAllowMemberBargainList.Count > 0) { Config config = CashierNotAllowMemberBargainList[0]; config.Values = String.Format("{0}", CashierNotAllowMemberBargain ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowMemberBargain"; config.Values = String.Format("{0}", CashierNotAllowMemberBargain ? 1 : 0); insertList.Add(config); } //会员卡结账跳过确认扣款金额 bool CashierCardPaySkipConfirmMoney = memberOtherSet.Exists(x => x == 4); List CashierCardPaySkipConfirmMoneyList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierCardPaySkipConfirmMoney".Equals(x.Keys)); if (CashierCardPaySkipConfirmMoneyList != null && CashierCardPaySkipConfirmMoneyList.Count > 0) { Config config = CashierCardPaySkipConfirmMoneyList[0]; config.Values = String.Format("{0}", CashierCardPaySkipConfirmMoney ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierCardPaySkipConfirmMoney"; config.Values = String.Format("{0}", CashierCardPaySkipConfirmMoney ? 1 : 0); insertList.Add(config); } //使用电子卡券不允许退单 bool CashierAllowMemberBackTicket = memberOtherSet.Exists(x => x == 5); List CashierAllowMemberBackTicketList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAllowMemberBackTicket".Equals(x.Keys)); if (CashierAllowMemberBackTicketList != null && CashierAllowMemberBackTicketList.Count > 0) { Config config = CashierAllowMemberBackTicketList[0]; config.Values = String.Format("{0}", CashierAllowMemberBackTicket ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAllowMemberBackTicket"; config.Values = String.Format("{0}", CashierAllowMemberBackTicket ? 1 : 0); insertList.Add(config); } //禁止无卡或者手机号支付免密 bool CashierNotAllowMobileNoPwd = memberOtherSet.Exists(x => x == 6); List CashierNotAllowMobileNoPwdList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowMobileNoPwd".Equals(x.Keys)); if (CashierNotAllowMobileNoPwdList != null && CashierNotAllowMobileNoPwdList.Count > 0) { Config config = CashierNotAllowMobileNoPwdList[0]; config.Values = String.Format("{0}", CashierNotAllowMobileNoPwd ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowMobileNoPwd"; config.Values = String.Format("{0}", CashierNotAllowMobileNoPwd ? 1 : 0); insertList.Add(config); } //会员卡功能以管理端设置参数优先 bool CashierMemberFunctionsPrior = memberOtherSet.Exists(x => x == 7); List CashierMemberFunctionsPriorList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierMemberFunctionsPrior".Equals(x.Keys)); if (CashierMemberFunctionsPriorList != null && CashierMemberFunctionsPriorList.Count > 0) { Config config = CashierMemberFunctionsPriorList[0]; config.Values = String.Format("{0}", CashierMemberFunctionsPrior ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierMemberFunctionsPrior"; config.Values = String.Format("{0}", CashierMemberFunctionsPrior ? 1 : 0); insertList.Add(config); } //禁止会员卡享受会员价 bool CashierNotAllowMemberPrice = memberOtherSet.Exists(x => x == 8); List CashierNotAllowMemberPriceList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierNotAllowMemberPrice".Equals(x.Keys)); if (CashierNotAllowMemberPriceList != null && CashierNotAllowMemberPriceList.Count > 0) { Config config = CashierNotAllowMemberPriceList[0]; config.Values = String.Format("{0}", CashierNotAllowMemberPrice ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierNotAllowMemberPrice"; config.Values = String.Format("{0}", CashierNotAllowMemberPrice ? 1 : 0); insertList.Add(config); } //会员认证自动弹出选择,否则采用浮动 bool CashierAutoSelectMember = memberOtherSet.Exists(x => x == 9); List CashierAutoSelectMemberList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAutoSelectMember".Equals(x.Keys)); if (CashierAutoSelectMemberList != null && CashierAutoSelectMemberList.Count > 0) { Config config = CashierAutoSelectMemberList[0]; config.Values = String.Format("{0}", CashierAutoSelectMember ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAutoSelectMember"; config.Values = String.Format("{0}", CashierAutoSelectMember ? 1 : 0); insertList.Add(config); } //会员储值余额为零禁止使用 bool CashierCardPaySkipNoMoney = memberOtherSet.Exists(x => x == 10); List CashierCardPaySkipNoMoneyList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierCardPaySkipNoMoney".Equals(x.Keys)); if (CashierCardPaySkipNoMoneyList != null && CashierCardPaySkipNoMoneyList.Count > 0) { Config config = CashierCardPaySkipNoMoneyList[0]; config.Values = String.Format("{0}", CashierCardPaySkipNoMoney ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierCardPaySkipNoMoney"; config.Values = String.Format("{0}", CashierCardPaySkipNoMoney ? 1 : 0); insertList.Add(config); } } //点餐设置 if (pbody.ContainsKey("takeOutSet")) { List takeOutSet = JsonUtils.Deserialize>(pbody["takeOutSet"].ToString()); LOGGER.Info("点餐设置===>" + takeOutSet); //是否启用小程序点餐 bool EnableAppletOrder = takeOutSet.Exists(x => x == 0); List EnableAppletOrderList = configList.FindAll(x => "cashier".Equals(x.Group) && "EnableAppletOrder".Equals(x.Keys)); if (EnableAppletOrderList != null && EnableAppletOrderList.Count > 0) { Config config = EnableAppletOrderList[0]; config.Values = String.Format("{0}", EnableAppletOrder ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "EnableAppletOrder"; config.Values = String.Format("{0}", EnableAppletOrder ? 1 : 0); insertList.Add(config); } } //交班设置 if (pbody.ContainsKey("shiftExchange")) { List shiftExchange = JsonUtils.Deserialize>(pbody["shiftExchange"].ToString()); LOGGER.Info("交班设置===>" + shiftExchange); //交班采用盲交模式(手工录入现金) bool CashierShiftMode = shiftExchange.Exists(x => x == 0); List CashierShiftModeList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierShiftMode".Equals(x.Keys)); if (CashierShiftModeList != null && CashierShiftModeList.Count > 0) { Config config = CashierShiftModeList[0]; config.Values = String.Format("{0}", CashierShiftMode ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierShiftMode"; config.Values = String.Format("{0}", CashierShiftMode ? 1 : 0); insertList.Add(config); } //交班提示未核销订单 bool IsVerificationOrder = shiftExchange.Exists(x => x == 1); List IsVerificationOrderList = configList.FindAll(x => "cashier".Equals(x.Group) && "IsVerificationOrder".Equals(x.Keys)); if (IsVerificationOrderList != null && IsVerificationOrderList.Count > 0) { Config config = IsVerificationOrderList[0]; config.Values = String.Format("{0}", IsVerificationOrder ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "IsVerificationOrder"; config.Values = String.Format("{0}", IsVerificationOrder ? 1 : 0); insertList.Add(config); } //交班提示外送未交单数量 bool WsUnfinishNumNotify = shiftExchange.Exists(x => x == 2); List WsUnfinishNumNotifyList = configList.FindAll(x => "cashier".Equals(x.Group) && "WsUnfinishNumNotify".Equals(x.Keys)); if (WsUnfinishNumNotifyList != null && WsUnfinishNumNotifyList.Count > 0) { Config config = WsUnfinishNumNotifyList[0]; config.Values = String.Format("{0}", WsUnfinishNumNotify ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "WsUnfinishNumNotify"; config.Values = String.Format("{0}", WsUnfinishNumNotify ? 1 : 0); insertList.Add(config); } //交班开钱箱 bool IsShiftOpenCash = shiftExchange.Exists(x => x == 3); List IsShiftOpenCashList = configList.FindAll(x => "cashier".Equals(x.Group) && "IsShiftOpenCash".Equals(x.Keys)); if (IsShiftOpenCashList != null && IsShiftOpenCashList.Count > 0) { Config config = IsShiftOpenCashList[0]; config.Values = String.Format("{0}", IsShiftOpenCash ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "IsShiftOpenCash"; config.Values = String.Format("{0}", IsShiftOpenCash ? 1 : 0); insertList.Add(config); } //交班后订单不能退款 bool ShiftIsAllowRefund = shiftExchange.Exists(x => x == 18); List ShiftIsAllowRefundList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftIsAllowRefund".Equals(x.Keys)); if (ShiftIsAllowRefundList != null && ShiftIsAllowRefundList.Count > 0) { Config config = ShiftIsAllowRefundList[0]; config.Values = String.Format("{0}", ShiftIsAllowRefund ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftIsAllowRefund"; config.Values = String.Format("{0}", ShiftIsAllowRefund ? 1 : 0); insertList.Add(config); } //交班打印营业合计数据 bool ShiftPrintHJ = shiftExchange.Exists(x => x == 4); List ShiftPrintHJList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintHJ".Equals(x.Keys)); if (ShiftPrintHJList != null && ShiftPrintHJList.Count > 0) { Config config = ShiftPrintHJList[0]; config.Values = String.Format("{0}", ShiftPrintHJ ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintHJ"; config.Values = String.Format("{0}", ShiftPrintHJ ? 1 : 0); insertList.Add(config); } //交班打印营业成交数据 bool ShiftPrintCJ = shiftExchange.Exists(x => x == 5); List ShiftPrintCJList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintCJ".Equals(x.Keys)); if (ShiftPrintCJList != null && ShiftPrintCJList.Count > 0) { Config config = ShiftPrintCJList[0]; config.Values = String.Format("{0}", ShiftPrintCJ ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintCJ"; config.Values = String.Format("{0}", ShiftPrintCJ ? 1 : 0); insertList.Add(config); } //交班打印营业退单数据 bool ShiftPrintTD = shiftExchange.Exists(x => x == 6); List ShiftPrintTDList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintTD".Equals(x.Keys)); if (ShiftPrintTDList != null && ShiftPrintTDList.Count > 0) { Config config = ShiftPrintTDList[0]; config.Values = String.Format("{0}", ShiftPrintTD ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintTD"; config.Values = String.Format("{0}", ShiftPrintTD ? 1 : 0); insertList.Add(config); } //交班打印卡务数据 bool ShiftPrintKW = shiftExchange.Exists(x => x == 7); List ShiftPrintKWList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintKW".Equals(x.Keys)); if (ShiftPrintKWList != null && ShiftPrintKWList.Count > 0) { Config config = ShiftPrintKWList[0]; config.Values = String.Format("{0}", ShiftPrintKW ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintKW"; config.Values = String.Format("{0}", ShiftPrintKW ? 1 : 0); insertList.Add(config); } //交班打印非营业数据 bool ShiftPrintFYY = shiftExchange.Exists(x => x == 8); List ShiftPrintFYYList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintFYY".Equals(x.Keys)); if (ShiftPrintFYYList != null && ShiftPrintFYYList.Count > 0) { Config config = ShiftPrintFYYList[0]; config.Values = String.Format("{0}", ShiftPrintFYY ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintFYY"; config.Values = String.Format("{0}", ShiftPrintFYY ? 1 : 0); insertList.Add(config); } //交班打印支付虚实收入 bool ShiftPrintZFXSS = shiftExchange.Exists(x => x == 9); List ShiftPrintZFXSSList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintZFXSS".Equals(x.Keys)); if (ShiftPrintZFXSSList != null && ShiftPrintZFXSSList.Count > 0) { Config config = ShiftPrintZFXSSList[0]; config.Values = String.Format("{0}", ShiftPrintZFXSS ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintZFXSS"; config.Values = String.Format("{0}", ShiftPrintZFXSS ? 1 : 0); insertList.Add(config); } //交班打配送费(微信点餐) bool ShiftPrintWXDCPSF = shiftExchange.Exists(x => x == 10); List ShiftPrintWXDCPSFList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintWXDCPSF".Equals(x.Keys)); if (ShiftPrintWXDCPSFList != null && ShiftPrintWXDCPSFList.Count > 0) { Config config = ShiftPrintWXDCPSFList[0]; config.Values = String.Format("{0}", ShiftPrintWXDCPSF ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintWXDCPSF"; config.Values = String.Format("{0}", ShiftPrintWXDCPSF ? 1 : 0); insertList.Add(config); } //交班打印销售分析 bool CashierShiftPrint = shiftExchange.Exists(x => x == 11); List CashierShiftPrintList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierShiftPrint".Equals(x.Keys)); if (CashierShiftPrintList != null && CashierShiftPrintList.Count > 0) { Config config = CashierShiftPrintList[0]; config.Values = String.Format("{0}", CashierShiftPrint ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierShiftPrint"; config.Values = String.Format("{0}", CashierShiftPrint ? 1 : 0); insertList.Add(config); } //交班打印分类汇总 bool ShiftPrintProductType = shiftExchange.Exists(x => x == 12); List ShiftPrintProductTypeList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintProductType".Equals(x.Keys)); if (ShiftPrintProductTypeList != null && ShiftPrintProductTypeList.Count > 0) { Config config = ShiftPrintProductTypeList[0]; config.Values = String.Format("{0}", ShiftPrintProductType ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintProductType"; config.Values = String.Format("{0}", ShiftPrintProductType ? 1 : 0); insertList.Add(config); } //交班打印收银支付方式 bool ShiftPrintSalePayType = shiftExchange.Exists(x => x == 13); List ShiftPrintSalePayTypeList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintSalePayType".Equals(x.Keys)); if (ShiftPrintSalePayTypeList != null && ShiftPrintSalePayTypeList.Count > 0) { Config config = ShiftPrintSalePayTypeList[0]; config.Values = String.Format("{0}", ShiftPrintSalePayType ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintSalePayType"; config.Values = String.Format("{0}", ShiftPrintSalePayType ? 1 : 0); insertList.Add(config); } //交班打印卡务收银支付方式 bool ShiftPrintCardPayType = shiftExchange.Exists(x => x == 14); List ShiftPrintCardPayTypeList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintCardPayType".Equals(x.Keys)); if (ShiftPrintCardPayTypeList != null && ShiftPrintCardPayTypeList.Count > 0) { Config config = ShiftPrintCardPayTypeList[0]; config.Values = String.Format("{0}", ShiftPrintCardPayType ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintCardPayType"; config.Values = String.Format("{0}", ShiftPrintCardPayType ? 1 : 0); insertList.Add(config); } //交班打印支付汇总 bool ShiftPrintSaleCardPayType = shiftExchange.Exists(x => x == 15); List ShiftPrintSaleCardPayTypeList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintSaleCardPayType".Equals(x.Keys)); if (ShiftPrintSaleCardPayTypeList != null && ShiftPrintSaleCardPayTypeList.Count > 0) { Config config = ShiftPrintSaleCardPayTypeList[0]; config.Values = String.Format("{0}", ShiftPrintSaleCardPayType ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintSaleCardPayType"; config.Values = String.Format("{0}", ShiftPrintSaleCardPayType ? 1 : 0); insertList.Add(config); } //交班打印优惠汇总 bool ShiftPrintSaleInfo = shiftExchange.Exists(x => x == 16); List ShiftPrintSaleInfoList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintSaleInfo".Equals(x.Keys)); if (ShiftPrintSaleInfoList != null && ShiftPrintSaleInfoList.Count > 0) { Config config = ShiftPrintSaleInfoList[0]; config.Values = String.Format("{0}", ShiftPrintSaleInfo ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintSaleInfo"; config.Values = String.Format("{0}", ShiftPrintSaleInfo ? 1 : 0); insertList.Add(config); } //交班打印营业模式汇总 bool ShiftPrintSaleMode = shiftExchange.Exists(x => x == 17); List ShiftPrintSaleModeList = configList.FindAll(x => "cashier".Equals(x.Group) && "ShiftPrintSaleMode".Equals(x.Keys)); if (ShiftPrintSaleModeList != null && ShiftPrintSaleModeList.Count > 0) { Config config = ShiftPrintSaleModeList[0]; config.Values = String.Format("{0}", ShiftPrintSaleMode ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "ShiftPrintSaleMode"; config.Values = String.Format("{0}", ShiftPrintSaleMode ? 1 : 0); insertList.Add(config); } } //库存设置 if (pbody.ContainsKey("stockSet")) { List stockSet = JsonUtils.Deserialize>(pbody["stockSet"].ToString()); LOGGER.Info("库存设置===>" + stockSet); //交班采用盲交模式(手工录入现金) bool CashierAskGoodsCount = stockSet.Exists(x => x == 0); List CashierAskGoodsCountList = configList.FindAll(x => "cashier".Equals(x.Group) && "CashierAskGoodsCount".Equals(x.Keys)); if (CashierAskGoodsCountList != null && CashierAskGoodsCountList.Count > 0) { Config config = CashierAskGoodsCountList[0]; config.Values = String.Format("{0}", CashierAskGoodsCount ? 1 : 0); updateList.Add(config); } else { Config config = new Config(); config.Id = IdWorkerUtils.Instance.NextId(); config.Group = ConfigConstant.CASHIER_GROUP; config.TenantId = Global.Instance.Authc.TenantId; config.Keys = "CashierAskGoodsCount"; config.Values = String.Format("{0}", CashierAskGoodsCount ? 1 : 0); insertList.Add(config); } } try { using (var db = Global.Instance.OpenDataBase) { using (var trans = db.GetTransaction()) { foreach (var config in insertList) { db.Save(config); } foreach (var config in updateList) { db.Update(config); } trans.Complete(); } } LOGGER.Error(message); } catch (Exception ex) { message = "云参数更新异常"; LOGGER.Error(ex, message); } } } private void StartDownloadExt() { Stopwatch sw = Stopwatch.StartNew(); this.downloadError = new Dictionary(); this.downloadSuccess = new Dictionary(); this.ShowMessage(this.lblStatus, "数据清理......", false); InitUtils.Instance.CleanHistoryData(); bool CY_WORKERDATA = true;//员工类下载 bool CY_PRODUCTDATA = true;//产品类下载 bool CY_PAYDATA = true;//支付类下载 bool CY_STOREDATA = true;//门店资料下载 bool CY_OTHERDATA = true;//其他资料下载 bool CY_VISITORDATA = true;//熟客资料下载 bool CY_PROMOTIONDATA = true;//促销信息下载 List responseList = new List(); //检测数据版本 this.ShowMessage(this.lblStatus, "开始检测数据版本......", false); PosServerDataVersionRequest request = new PosServerDataVersionRequest(); var response = StoreBusinessUtils.PosServerDataVersion(request); if (response.Item1) { responseList = response.Item3.List; List versionList = StoreBusinessUtils.LocalVersion(); foreach (PosServerDataVersionResponse versionResponse in responseList) { foreach (PosServerDataVersion dataVersion in versionList) { if ("CY_WORKERDATA".Equals(versionResponse.DataType) && "CY_WORKERDATA".Equals(dataVersion.DataType)) { if (versionResponse.DataVersion.Equals(dataVersion.DataVersion)) { LOGGER.Info("员工类接口不用下载"); CY_WORKERDATA = false; break; } } if ("CY_PRODUCTDATA".Equals(versionResponse.DataType) && "CY_PRODUCTDATA".Equals(dataVersion.DataType)) { if (versionResponse.DataVersion.Equals(dataVersion.DataVersion)) { LOGGER.Info("商品类接口不用下载"); CY_PRODUCTDATA = false; break; } } if ("CY_PAYDATA".Equals(versionResponse.DataType) && "CY_PAYDATA".Equals(dataVersion.DataType)) { if (versionResponse.DataVersion.Equals(dataVersion.DataVersion)) { LOGGER.Info("支付类接口不用下载"); CY_PAYDATA = false; break; } } if ("CY_STOREDATA".Equals(versionResponse.DataType) && "CY_STOREDATA".Equals(dataVersion.DataType)) { if (versionResponse.DataVersion.Equals(dataVersion.DataVersion)) { LOGGER.Info("门店类接口不用下载"); CY_STOREDATA = false; break; } } if ("CY_VISITORDATA".Equals(versionResponse.DataType) && "CY_VISITORDATA".Equals(dataVersion.DataType)) { if (versionResponse.DataVersion.Equals(dataVersion.DataVersion)) { LOGGER.Info("熟客类接口不用下载"); CY_VISITORDATA = false; break; } } } } } //检测数据版本 this.ShowMessage(this.lblStatus, "开始下载门店数据......", false); //清理历史数据 FastDownloadApi.Instance.InitCache(); TaskFactory taskFactory = new TaskFactory(); Task[] tasks = new Task[] { //员工类 taskFactory.StartNew(() => { if (CY_WORKERDATA) { try { this.Download1(); } catch (Exception ex) { LOGGER.Error(ex, "Download1发生错误"); } }else{ LOGGER.Info("Download1跳过下载"); } }), //商品资料类 taskFactory.StartNew(()=>{ if(CY_PRODUCTDATA){ try{ this.Download2(); }catch(Exception ex){ LOGGER.Error(ex , "Download2发生错误"); } }else{ LOGGER.Info("Download2跳过下载"); } }), //收银类别 taskFactory.StartNew(()=>{ if(CY_PAYDATA){ try{ this.Download3(); }catch(Exception ex){ LOGGER.Error(ex , "Download3发生错误"); } }else{ LOGGER.Info("Download3跳过下载"); } }), //门店资料 taskFactory.StartNew(()=>{ if(CY_STOREDATA){ try{ this.Download4(); }catch(Exception ex){ LOGGER.Error(ex , "Download4发生错误"); } }else{ LOGGER.Info("Download4跳过下载"); } }), //其他类别 taskFactory.StartNew(()=>{ try{ this.Download5(); }catch(Exception ex){ LOGGER.Error(ex , "Download5发生错误"); } }), //熟客信息 taskFactory.StartNew(()=>{ if(CY_VISITORDATA){ try{ this.Download6(); }catch(Exception ex){ LOGGER.Error(ex , "Download6发生错误"); } }else{ LOGGER.Info("Download6跳过下载"); } }), //线上促销 taskFactory.StartNew(()=>{ try{ this.Download7(); }catch(Exception ex){ LOGGER.Error(ex , "Download3发生错误"); } }), #region subin 2023-07-12 add 分账相关信息下载 //分账相关配置信息 taskFactory.StartNew(()=>{ try{ this.Download8(); }catch(Exception ex){ LOGGER.Error(ex , "Download8发生错误"); } }), #endregion }; Task.WaitAll(tasks); LOGGER.Info("下载完成<{0}>", sw.ElapsedMilliseconds); //taskFactory.ContinueWhenAll(tasks , (Task) => { }); sw.Restart(); bool isError = EndDownload(); //如果下载没有异常,更新数据版本 if (!isError) { if (responseList != null && responseList.Count > 0) { List versionList = new List(); foreach (PosServerDataVersionResponse re in responseList) { PosServerDataVersion posServerDataVersion = new PosServerDataVersion(); posServerDataVersion.Id = IdWorkerUtils.Instance.NextId(); posServerDataVersion.TenantId = "373001"; posServerDataVersion.DataType = re.DataType; posServerDataVersion.DataVersion = re.DataVersion; posServerDataVersion.Ext1 = re.Ext1; posServerDataVersion.Ext2 = re.Ext2; posServerDataVersion.Ext3 = re.Ext3; posServerDataVersion.CreateDate = DateTime.Now.ToString("yyyy-MM-dd"); posServerDataVersion.CreateUser = Constant.DEFAULT_SYNC_USER; versionList.Add(posServerDataVersion); } StoreBusinessUtils.SaveVersion(versionList); } } LOGGER.Info("保存完成<{0}>", sw.ElapsedMilliseconds); } /// /// 1)下载操作员 /// 2)下载员工角色 /// 3)下载模块权限信息 /// #region 下载一 private void Download1() { //下载操作员数据 var worker = FastDownloadApi.DownloadWorker(); this.ShowMessage(this.lblStatus, worker.Message); if (worker.Success) { this.AddDownloadSuccess(worker.CacheName, worker); } else { this.AddDownloadError(worker.CacheName, worker); } //下载员工角色信息 var workerRole = FastDownloadApi.DownloadWorkerRole(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, workerRole.Message); //第一页下载成功 if (workerRole.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (workerRole.IsPager) { //当前页码 int pageNum = workerRole.PageNumber; //总页数 int pageCount = workerRole.PageCount; //每页大小 int pageSize = workerRole.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadWorkerRoleNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(workerRole.CacheName, workerRole); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(workerRole.CacheName, workerRole); } //下载模块权限信息 var workerPermissions = FastDownloadApi.DownloadWorkerPermissions(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, workerPermissions.Message); //第一页下载成功 if (workerPermissions.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (workerPermissions.IsPager) { //当前页码 int pageNum = workerPermissions.PageNumber; //总页数 int pageCount = workerPermissions.PageCount; //每页大小 int pageSize = workerPermissions.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadWorkerPermissionsNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(workerPermissions.CacheName, workerPermissions); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(workerPermissions.CacheName, workerPermissions); } } #endregion /// /// 1)下载商品类别信息 /// 2)下载商品信息 /// 3)下载单位信息 /// 4)下载图片信息 /// 5)下载规格信息 /// 6)下载做法类型 /// 7)下载做法信息 /// 8)下载私有做法信息 /// 9)下载套菜 /// 10)下载套菜明细 /// 11)下载厨打方案 /// 12)下载厨打商品 /// 13)下载厨显方案 /// 14)下载厨显商品 /// 15)下载饿了么映射关系 /// 16)下载美团映射关系 /// 17)下载百度映射关系 /// 18)下载库存系数 /// 19)下载商品耗料配方 /// 20)下载做法耗料配方 /// #region 下载二 private void Download2() { //下载商品类别信息 var productType = FastDownloadApi.DownloadProductType(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, productType.Message); //第一页下载成功 if (productType.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (productType.IsPager) { //当前页码 int pageNum = productType.PageNumber; //总页数 int pageCount = productType.PageCount; //每页大小 int pageSize = productType.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadProductTypeNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(productType.CacheName, productType); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(productType.CacheName, productType); } //下载菜品 var product = FastDownloadApi.DownloadProduct(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, product.Message); //第一页下载成功 if (product.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (product.IsPager) { //当前页码 int pageNum = product.PageNumber; //总页数 int pageCount = product.PageCount; //每页大小 int pageSize = product.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadProductNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(product.CacheName, product); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(product.CacheName, product); } //下载商品单位信息 var productUnit = FastDownloadApi.DownloadProductUnit(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, productUnit.Message); //第一页下载成功 if (productUnit.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (productUnit.IsPager) { //当前页码 int pageNum = productUnit.PageNumber; //总页数 int pageCount = productUnit.PageCount; //每页大小 int pageSize = productUnit.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadProductUnitNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(productUnit.CacheName, productUnit); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(productUnit.CacheName, productUnit); } //下载商品图片信息 var productImage = FastDownloadApi.DownloadProductImage(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, productImage.Message); //第一页下载成功 if (productImage.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (productImage.IsPager) { //当前页码 int pageNum = productImage.PageNumber; //总页数 int pageCount = productImage.PageCount; //每页大小 int pageSize = productImage.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadProductImageNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(productImage.CacheName, productImage); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(productImage.CacheName, productImage); } //下载商品规格信息 var productSpec = FastDownloadApi.DownloadProductSpec(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, productSpec.Message); //第一页下载成功 if (productSpec.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (productSpec.IsPager) { //当前页码 int pageNum = productSpec.PageNumber; //总页数 int pageCount = productSpec.PageCount; //每页大小 int pageSize = productSpec.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadProductSpecNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(productSpec.CacheName, productSpec); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(productSpec.CacheName, productSpec); } //下载做法类型数据 var productMakeType = FastDownloadApi.DownloadProductMakeType(); this.ShowMessage(this.lblStatus, productMakeType.Message); if (productMakeType.Success) { this.AddDownloadSuccess(productMakeType.CacheName, productMakeType); } else { this.AddDownloadError(productMakeType.CacheName, productMakeType); } //下载做法信息数据 var productMakeDetail = FastDownloadApi.DownloadProductMakeDetail(); this.ShowMessage(this.lblStatus, productMakeDetail.Message); if (productMakeDetail.Success) { this.AddDownloadSuccess(productMakeDetail.CacheName, productMakeDetail); } else { this.AddDownloadError(productMakeDetail.CacheName, productMakeDetail); } //下载商品私有做法信息 var productMakeDetailPrivate = FastDownloadApi.DownloadProductMakeDetailPrivate(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, productMakeDetailPrivate.Message); //第一页下载成功 if (productMakeDetailPrivate.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (productMakeDetailPrivate.IsPager) { //当前页码 int pageNum = productMakeDetailPrivate.PageNumber; //总页数 int pageCount = productMakeDetailPrivate.PageCount; //每页大小 int pageSize = productMakeDetailPrivate.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadProductMakeDetailPrivateNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(productMakeDetailPrivate.CacheName, productMakeDetailPrivate); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(productMakeDetailPrivate.CacheName, productMakeDetailPrivate); } //下载套菜信息 var productSuit = FastDownloadApi.DownloadProductSuit(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, productSuit.Message); //第一页下载成功 if (productSuit.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (productSuit.IsPager) { //当前页码 int pageNum = productSuit.PageNumber; //总页数 int pageCount = productSuit.PageCount; //每页大小 int pageSize = productSuit.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadProductSuitNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(productSuit.CacheName, productSuit); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(productSuit.CacheName, productSuit); } //下载套菜明细信息 var productSuitDetail = FastDownloadApi.DownloadProductSuitDetail(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, productSuitDetail.Message); //第一页下载成功 if (productSuitDetail.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (productSuitDetail.IsPager) { //当前页码 int pageNum = productSuitDetail.PageNumber; //总页数 int pageCount = productSuitDetail.PageCount; //每页大小 int pageSize = productSuitDetail.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadProductSuitDetailNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(productSuitDetail.CacheName, productSuitDetail); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(productSuitDetail.CacheName, productSuitDetail); } //下载厨打方案 var kitPlan = FastDownloadApi.DownloadKitPlan(); this.ShowMessage(this.lblStatus, kitPlan.Message); if (kitPlan.Success) { this.AddDownloadSuccess(kitPlan.CacheName, kitPlan); } else { this.AddDownloadError(kitPlan.CacheName, kitPlan); } //下载厨打商品信息 var kitProduct = FastDownloadApi.DownloadKitProduct(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, kitProduct.Message); //第一页下载成功 if (kitProduct.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (kitProduct.IsPager) { //当前页码 int pageNum = kitProduct.PageNumber; //总页数 int pageCount = kitProduct.PageCount; //每页大小 int pageSize = kitProduct.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadKitProductNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(kitProduct.CacheName, kitProduct); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(kitProduct.CacheName, kitProduct); } //下载厨显方案 var kdsPlan = FastDownloadApi.DownloadKdsPlan(); this.ShowMessage(this.lblStatus, kdsPlan.Message); if (kdsPlan.Success) { this.AddDownloadSuccess(kdsPlan.CacheName, kdsPlan); } else { this.AddDownloadError(kdsPlan.CacheName, kdsPlan); } //下载厨显商品信息 var kdsProduct = FastDownloadApi.DownloadKdsProduct(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, kdsProduct.Message); //第一页下载成功 if (kdsProduct.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (kdsProduct.IsPager) { //当前页码 int pageNum = kdsProduct.PageNumber; //总页数 int pageCount = kdsProduct.PageCount; //每页大小 int pageSize = kdsProduct.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadKdsProductNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(kdsProduct.CacheName, kdsProduct); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(kdsProduct.CacheName, kdsProduct); } //下载饿了么映射关系 var mappingDishEleMe = FastDownloadApi.DownloadMappingDishEleMe(); this.ShowMessage(this.lblStatus, mappingDishEleMe.Message); if (mappingDishEleMe.Success) { this.AddDownloadSuccess(mappingDishEleMe.CacheName, mappingDishEleMe); } else { this.AddDownloadError(mappingDishEleMe.CacheName, mappingDishEleMe); } //下载美团映射关系 var meituanMappingDish = FastDownloadApi.DownloadMeituanMappingDish(); this.ShowMessage(this.lblStatus, meituanMappingDish.Message); if (meituanMappingDish.Success) { this.AddDownloadSuccess(meituanMappingDish.CacheName, meituanMappingDish); } else { this.AddDownloadError(meituanMappingDish.CacheName, meituanMappingDish); } //下载百度映射关系 //var baiduMappingDish = FastDownloadApi.DownloadBaiDuMappingDish(); //this.ShowMessage(this.lblStatus, baiduMappingDish.Message); //if (baiduMappingDish.Success) //{ // this.AddDownloadSuccess(baiduMappingDish.CacheName, baiduMappingDish); //} //else //{ // this.AddDownloadError(baiduMappingDish.CacheName, baiduMappingDish); //} //下载商品库存系数 var productRatio = FastDownloadApi.DownloadProductRatio(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, productRatio.Message); //第一页下载成功 if (productRatio.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (productRatio.IsPager) { //当前页码 int pageNum = productRatio.PageNumber; //总页数 int pageCount = productRatio.PageCount; //每页大小 int pageSize = productRatio.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadProductRatioNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(productRatio.CacheName, productRatio); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(productRatio.CacheName, productRatio); } //下载商品配方 var productBurden = FastDownloadApi.DownloadProductBurden(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, productBurden.Message); //第一页下载成功 if (productBurden.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (productBurden.IsPager) { //当前页码 int pageNum = productBurden.PageNumber; //总页数 int pageCount = productBurden.PageCount; //每页大小 int pageSize = productBurden.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadProductBurdenNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(productBurden.CacheName, productBurden); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(productBurden.CacheName, productBurden); } //下载做法配方 var makeBurden = FastDownloadApi.DownloadMakeBurden(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, makeBurden.Message); //第一页下载成功 if (makeBurden.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (makeBurden.IsPager) { //当前页码 int pageNum = makeBurden.PageNumber; //总页数 int pageCount = makeBurden.PageCount; //每页大小 int pageSize = makeBurden.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadMakeBurdenNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(makeBurden.CacheName, makeBurden); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(makeBurden.CacheName, makeBurden); } } #endregion /// /// 1)下载付款类型 /// 2)下载收银方式 /// 3)下载支付方式结算扣率 zhangy 2020-02-18 Add /// #region 下载三 private void Download3() { //下载付款类型 var payType = FastDownloadApi.DownloadPayType(); this.ShowMessage(this.lblStatus, payType.Message); if (payType.Success) { this.AddDownloadSuccess(payType.CacheName, payType); } else { this.AddDownloadError(payType.CacheName, payType); } //下载收银方式 var payMode = FastDownloadApi.DownloadPayMode(); this.ShowMessage(this.lblStatus, payMode.Message); if (payMode.Success) { this.AddDownloadSuccess(payMode.CacheName, payMode); } else { this.AddDownloadError(payMode.CacheName, payMode); } } #endregion /// /// 1)门店营业方案 /// 2)班次方案 /// 3)餐桌区域 /// 4)餐桌类型 /// 5)餐桌信息 /// 6)门店品牌 /// 7)门店信息 /// 8)门店小票图片信息 /// 9)门店双屏图片信息 /// 10)门店双屏字幕信息 /// 11)门店费用项目列表 /// 12)门店仓库 /// #region 下载四 private void Download4() { //下载门店营业方案 var businessPlan = FastDownloadApi.DownloadBusinessPlan(); this.ShowMessage(this.lblStatus, businessPlan.Message); if (businessPlan.Success) { this.AddDownloadSuccess(businessPlan.CacheName, businessPlan); } else { this.AddDownloadError(businessPlan.CacheName, businessPlan); } //下载营业日方案班次 var businessPlanDetail = FastDownloadApi.DownloadBusinessPlanDetail(); this.ShowMessage(this.lblStatus, businessPlanDetail.Message); if (businessPlanDetail.Success) { this.AddDownloadSuccess(businessPlanDetail.CacheName, businessPlanDetail); } else { this.AddDownloadError(businessPlanDetail.CacheName, businessPlanDetail); } //下载餐桌区域 var tableArea = FastDownloadApi.DownloadTableArea(); this.ShowMessage(this.lblStatus, tableArea.Message); if (tableArea.Success) { this.AddDownloadSuccess(tableArea.CacheName, tableArea); } else { this.AddDownloadError(tableArea.CacheName, tableArea); } //下载餐桌类型 var tableType = FastDownloadApi.DownloadTableType(); this.ShowMessage(this.lblStatus, tableType.Message); if (tableType.Success) { this.AddDownloadSuccess(tableType.CacheName, tableType); } else { this.AddDownloadError(tableType.CacheName, tableType); } //下载餐桌信息 var table = FastDownloadApi.DownloadTable(); this.ShowMessage(this.lblStatus, table.Message); if (table.Success) { this.AddDownloadSuccess(table.CacheName, table); } else { this.AddDownloadError(table.CacheName, table); } //下载门店品牌 var brand = FastDownloadApi.DownloadBrand(); this.ShowMessage(this.lblStatus, brand.Message); if (brand.Success) { this.AddDownloadSuccess(brand.CacheName, brand); } else { this.AddDownloadError(brand.CacheName, brand); } //下载门店信息 var storeInfo = FastDownloadApi.DownloadStoreInfo(); this.ShowMessage(this.lblStatus, storeInfo.Message); if (storeInfo.Success) { this.AddDownloadSuccess(storeInfo.CacheName, storeInfo); } else { this.AddDownloadError(storeInfo.CacheName, storeInfo); } //下载门店双屏图片信息 var storeAdvertPicture = FastDownloadApi.DownloadStoreAdvertPicture(); this.ShowMessage(this.lblStatus, storeAdvertPicture.Message); if (storeAdvertPicture.Success) { this.AddDownloadSuccess(storeAdvertPicture.CacheName, storeAdvertPicture); } else { this.AddDownloadError(storeAdvertPicture.CacheName, storeAdvertPicture); } //下载门店双屏字幕信息 var storeAdvertCaption = FastDownloadApi.DownloadStoreAdvertCaption(); this.ShowMessage(this.lblStatus, storeAdvertCaption.Message); if (storeAdvertCaption.Success) { this.AddDownloadSuccess(storeAdvertCaption.CacheName, storeAdvertCaption); } else { this.AddDownloadError(storeAdvertCaption.CacheName, storeAdvertCaption); } //下载门店小票图片信息 var storePrintImage = FastDownloadApi.DownloadStorePrintImage(); this.ShowMessage(this.lblStatus, storePrintImage.Message); if (storePrintImage.Success) { this.AddDownloadSuccess(storePrintImage.CacheName, storePrintImage); } else { this.AddDownloadError(storePrintImage.CacheName, storePrintImage); } //下载费用项目 var feeitem = FastDownloadApi.DownloadFeeitem(); this.ShowMessage(this.lblStatus, feeitem.Message); if (feeitem.Success) { this.AddDownloadSuccess(feeitem.CacheName, feeitem); } else { this.AddDownloadError(feeitem.CacheName, feeitem); } // 下载门店仓库 var storeStorage = FastDownloadApi.DownloadStoreStorage(); this.ShowMessage(this.lblStatus, storeStorage.Message); if (storeStorage.Success) { this.AddDownloadSuccess(storeStorage.CacheName, storeStorage); } else { this.AddDownloadError(storeStorage.CacheName, storeStorage); } } #endregion /// /// 1)打印机信息 /// 2)读卡器信息 /// 3)设置支付参数 /// #region 下载五 private void Download5() { //下载打印机列表 var printer = FastDownloadApi.DownloadPrinter(); this.ShowMessage(this.lblStatus, printer.Message); if (printer.Success) { this.AddDownloadSuccess(printer.CacheName, printer); } else { this.AddDownloadError(printer.CacheName, printer); } //下载读卡器列表 var carder = FastDownloadApi.DownloadCarder(); this.ShowMessage(this.lblStatus, carder.Message); if (carder.Success) { this.AddDownloadSuccess(carder.CacheName, carder); } else { this.AddDownloadError(carder.CacheName, carder); } //下载总部支付参数 var pechargeParameter = FastDownloadApi.DownloadRechargeParameter(); this.ShowMessage(this.lblStatus, pechargeParameter.Message); if (pechargeParameter.Success) { this.AddDownloadSuccess(pechargeParameter.CacheName, pechargeParameter); } else { this.AddDownloadError(pechargeParameter.CacheName, pechargeParameter); } //下载总部POS方案 var setPlan = FastDownloadApi.DownloadSetPlan(); this.ShowMessage(this.lblStatus, setPlan.Message); if (setPlan.Success) { this.AddDownloadSuccess(setPlan.CacheName, setPlan); } else { this.AddDownloadError(setPlan.CacheName, setPlan); } } #endregion /// /// 1)门店熟客信息 /// 2)门店熟客标签 /// 3)门店熟客地址 /// #region 下载六 private void Download6() { //下载门店熟客信息 var visitor = FastDownloadApi.DownloadVisitor(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, visitor.Message); //第一页下载成功 if (visitor.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (visitor.IsPager) { //当前页码 int pageNum = visitor.PageNumber; //总页数 int pageCount = visitor.PageCount; //每页大小 int pageSize = visitor.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadVisitorNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(visitor.CacheName, visitor); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(visitor.CacheName, visitor); } //下载门店熟客标签信息 var visitorTag = FastDownloadApi.DownloadVisitorTag(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, visitorTag.Message); //第一页下载成功 if (visitorTag.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (visitorTag.IsPager) { //当前页码 int pageNum = visitorTag.PageNumber; //总页数 int pageCount = visitorTag.PageCount; //每页大小 int pageSize = visitorTag.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadVisitorTagNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(visitorTag.CacheName, visitorTag); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(visitorTag.CacheName, visitorTag); } //下载门店熟客地址信息 var visitorAddress = FastDownloadApi.DownloadVisitorAddress(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, visitorAddress.Message); //第一页下载成功 if (visitorAddress.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (visitorAddress.IsPager) { //当前页码 int pageNum = visitorAddress.PageNumber; //总页数 int pageCount = visitorAddress.PageCount; //每页大小 int pageSize = visitorAddress.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadVisitorAddressNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(50); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(visitorAddress.CacheName, visitorAddress); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(visitorAddress.CacheName, visitorAddress); } } #endregion /// /// 1)线上促销 /// 2)门店促销 /// 3)门店优惠券 /// 4)门店商品优惠券 /// 5)商品库存 /// #region 下载七 private void Download7() { //下载门店优惠券信息 var storeCoupon = FastDownloadApi.DownloadStoreCoupon(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, storeCoupon.Message); //第一页下载成功 if (storeCoupon.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (storeCoupon.IsPager) { //当前页码 int pageNum = storeCoupon.PageNumber; //总页数 int pageCount = storeCoupon.PageCount; //每页大小 int pageSize = storeCoupon.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadStoreCouponNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(storeCoupon.CacheName, storeCoupon); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(storeCoupon.CacheName, storeCoupon); } //下载商品优惠券信息 var storeProductCoupon = FastDownloadApi.DownloadStoreProductCoupon(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, storeProductCoupon.Message); //第一页下载成功 if (storeProductCoupon.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (storeProductCoupon.IsPager) { //当前页码 int pageNum = storeProductCoupon.PageNumber; //总页数 int pageCount = storeProductCoupon.PageCount; //每页大小 int pageSize = storeProductCoupon.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadStoreProductCouponNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(storeProductCoupon.CacheName, storeProductCoupon); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(storeProductCoupon.CacheName, storeProductCoupon); } //下载会员卡友日促销 var proDay = FastDownloadApi.DownloadCardProDay(); this.ShowMessage(this.lblStatus, proDay.Message); if (proDay.Success) { this.AddDownloadSuccess(proDay.CacheName, proDay); } else { //由于卡系统可能存在尚未存在未启用会员的租户,所以这里的错误拦截暂时去掉 //this.AddDownloadError(proDay.CacheName, proDay); } //下载门店促销信息 var storeTask = FastDownloadApi.DownloadStoreTask(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, storeTask.Message); //第一页下载成功 if (storeTask.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (storeTask.IsPager) { //当前页码 int pageNum = storeTask.PageNumber; //总页数 int pageCount = storeTask.PageCount; //每页大小 int pageSize = storeTask.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadStoreTaskNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(storeTask.CacheName, storeTask); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(storeTask.CacheName, storeTask); } //下载商品库存 var productStock = FastDownloadApi.DownloadProductStock(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, productStock.Message); //第一页下载成功 if (productStock.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (productStock.IsPager) { //当前页码 int pageNum = productStock.PageNumber; //总页数 int pageCount = productStock.PageCount; //每页大小 int pageSize = productStock.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadProductStockNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(productStock.CacheName, productStock); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(productStock.CacheName, productStock); } } #endregion private bool EndDownload() { bool isError = false; try { //判断是否发生下载错误 if (downloadError != null && downloadError.Keys.Count > 0) { this.ShowMessage(this.lblStatus, "数据下载不成功......"); this.BeginInvoke(new MethodInvoker(() => { this.errorPanel.Location = new Point((this.workspace.Width - this.errorPanel.Width) / 2, (this.workspace.Height - this.errorPanel.Height - this.lblStatus.Height) / 2); this.errorPanel.Visible = true; this.lblInfo.Text = ("共" + downloadError.Keys.Count + "项数据下载失败" + Environment.NewLine); int inx = 1; foreach (DownloadNotify notify in downloadError.Values) { this.lblInfo.Text += ((inx++) + "." + notify.Message + Environment.NewLine); } this.errorPanel.Refresh(); })); isError = true; } else { this.ShowMessage(this.lblStatus, "数据下载成功,更新中......"); var list = new ConcurrentQueue(); foreach (var entity in FastDownloadApi.Instance.Cache()) { list.Enqueue(entity.Sql); } lock (Global.Instance.CacheLock) { SqliteUtils.ExecuteTransaction(list); } this.ProcessProductType(); isError = false; } } catch (Exception ex) { isError = true; this.ShowMessage(this.lblStatus, "数据下载更新发生异常", true); LOGGER.Error(ex, "数据下载更新发生异常"); } finally { //下载完成 this.isFinished = true; } return isError; } private bool ProcessProductType() { bool isException = false; try { List productTypes = null; using (var db = Global.Instance.OpenDataBase) { productTypes = db.Query().ToList(); } //将品类对应的单品数量汇总 if (productTypes != null) { var list = new ConcurrentQueue(); var sql = "update pos_product_type set products = {0} where id = '{1}';"; foreach (var entity in productTypes) { using (var db = Global.Instance.OpenDataBase) { var products = from o in db.Query() where o.Type >= 0 && o.Type <= 9 && o.StopFlag == 0 && o.TypePath.Contains(entity.Id) select o; list.Enqueue(string.Format(sql, products.Count(), entity.Id)); } } if (list.Count > 0) { lock (Global.Instance.SyncLock) { SqliteUtils.ExecuteTransaction(list); } } } } catch (Exception ex) { isException = true; LOGGER.Error(ex, "加工品类信息异常"); } return isException; } private void OnControlBoxMinimizedClick(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } private void OnCloseClick(object sender, EventArgs e) { //有错误提醒 if (this.errorPanel.Visible) { timer.Stop(); this.DialogResult = DialogResult.OK; this.Close(); } } protected void OnButtonIgnoreClick(object sender, EventArgs e) { //有错误提醒 if (this.errorPanel.Visible) { timer.Stop(); this.DialogResult = DialogResult.OK; this.Close(); } } protected void OnButtonRetryClick(object sender, EventArgs e) { //有错误提醒 if (this.errorPanel.Visible) { timer.Stop(); this.downloadError = null; this.isDownloading = false; this.isFinished = false; this.ShowMessage(this.lblStatus, "连接云端服务......", false); timer.Interval = TIMER_INTERVAL; timer.Start(); this.ShowMessage(this.lblStatus, "准备同步数据......", false); this.errorPanel.Visible = false; } } #region subin 2023-07-10 add 下载分账配置相关信息 下载8 /// /// 菜品分户账户关联信息 /// 店铺分帐户 /// private void Download8() { //下载分店账号信息 var splitShopAccount = FastDownloadApi.DownloadSplitShopAccount(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, splitShopAccount.Message); //第一页下载成功 if (splitShopAccount.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; if (splitShopAccount.IsPager) { //当前页码 int pageNum = splitShopAccount.PageNumber; //总页数 int pageCount = splitShopAccount.PageCount; //每页大小 int pageSize = splitShopAccount.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadSplitShopAccountNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(splitShopAccount.CacheName, splitShopAccount); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(splitShopAccount.CacheName, splitShopAccount); } //下载菜品分户账户信息 var splitFoodAccount = FastDownloadApi.DownloadSplitFoodAccount(Constant.DEFAULT_PAGESIZE); this.ShowMessage(this.lblStatus, splitFoodAccount.Message); //第一页下载成功 if (splitFoodAccount.Success) { //判断是否全部下载成功 bool isAllSuccess = true; //记录最后下载失败的通知消息 DownloadNotify lastFailure = null; //分页下载 if (splitFoodAccount.IsPager) { //当前页码 int pageNum = splitFoodAccount.PageNumber; //总页数 int pageCount = splitFoodAccount.PageCount; //每页大小 int pageSize = splitFoodAccount.PageSize; //逐页下载,任意页下载失败退出下载 for (int page = pageNum + 1; page < pageCount + 1; page++) { var notify = FastDownloadApi.DownloadSplitFoodAccountNextPage(page, pageSize); if (notify.Success) { this.ShowMessage(this.lblStatus, notify.Message); } else { //最后的失败通知 lastFailure = notify; isAllSuccess = false; break; } System.Threading.Thread.Sleep(10); } } if (isAllSuccess && lastFailure == null) { this.AddDownloadSuccess(splitFoodAccount.CacheName, splitFoodAccount); } else { this.AddDownloadError(lastFailure.CacheName, lastFailure); } } else { this.AddDownloadError(splitFoodAccount.CacheName, splitFoodAccount); } } #endregion } }