diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index f5eced8..f10cfe3 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,8 +27,8 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 565; - //public static int VersionCount = 565; + public static int VersionCount = 566; + //public static int VersionCount = 566; /// /// 版本号 diff --git a/AllBase/Model/Result/ShopLoginInfo.cs b/AllBase/Model/Result/ShopLoginInfo.cs index 9235bde..c8b22a3 100644 --- a/AllBase/Model/Result/ShopLoginInfo.cs +++ b/AllBase/Model/Result/ShopLoginInfo.cs @@ -278,6 +278,10 @@ namespace AllBase.Model.Result /// 店铺保证金信息 /// public bool is_search_4 { get; set; } = false; + /// + /// 店铺利润详情计算 + /// + public bool is_search_5 { get; set; } = false; public string err_msg { get; set; } #endregion @@ -361,6 +365,20 @@ namespace AllBase.Model.Result /// 提现总金额 /// public decimal? withdrawCashAmount { get; set; } = 0; + + /// + /// 今日利润(通过KJD库获取进货价计算获得) + /// + public decimal? todayProfit { get; set; } = null; + /// + /// 近7日利润(通过KJD库获取进货价计算获得) + /// + public decimal? sevenDaysProfit + { get; set; } = null; + /// + /// 近30日利润(通过KJD库获取进货价计算获得) + /// + public decimal? thirtyDaysProfit { get; set; } = null; } diff --git a/AllBase/Model/Result/TemuStockInfo.cs b/AllBase/Model/Result/TemuStockInfo.cs index a0c9a26..4181dbc 100644 --- a/AllBase/Model/Result/TemuStockInfo.cs +++ b/AllBase/Model/Result/TemuStockInfo.cs @@ -57,7 +57,7 @@ namespace AllBase.Model.Result /// /// 待备货商品信息 /// - public class SubOrderInfo + public class WarehouseProductSubOrderInfo { /// /// 卖家店铺id @@ -106,7 +106,14 @@ namespace AllBase.Model.Result /// public bool isStockUp { get; set; } = false; + /// + /// 商品评价分数 + /// public decimal? goodsAfsScore { get; set; } = null; + /// + /// 获取评价分错误 + /// + public string getAfsScoreError { get; set; } = ""; } /// @@ -173,6 +180,11 @@ namespace AllBase.Model.Result /// 拟备货数量,=0不备货 /// public int wantStockUpBound { get; set; } = 0; + + /// + /// 进货价,保存于KJD库 + /// + public int purchasePrice { get; set; } = 0; } /// diff --git a/AllBase/OutExcel.cs b/AllBase/OutExcel.cs index 12e5ad9..04cdd38 100644 --- a/AllBase/OutExcel.cs +++ b/AllBase/OutExcel.cs @@ -38,7 +38,7 @@ namespace AllBase for (int j = 0; j < dt.ColumnCount; j++) { if (dt.Columns[j].Visible && dt.Columns[j].HeaderText != "删除" && dt.Columns[j].HeaderText != "历史记录") - temp += dt.Rows[i].Cells[j].Value + "\t"; + temp += "\"" + dt.Rows[i].Cells[j].Value + "\"\t"; } temp += "\r\n"; if (temp.Length > 2000) diff --git a/KJDService/KJD_WebService/PriceService.asmx.cs b/KJDService/KJD_WebService/PriceService.asmx.cs index 88169ea..9c96ed1 100644 --- a/KJDService/KJD_WebService/PriceService.asmx.cs +++ b/KJDService/KJD_WebService/PriceService.asmx.cs @@ -96,5 +96,54 @@ namespace KJD_Web Context.Response.Write(result); Context.Response.End(); } + + + [WebMethod] + public void mdy_purchase_price() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new PriceManage().MdyPurchasePrice(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] + public void add_purchase_price() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new PriceManage().AddPurchasePrice(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] + public void del_purchase_price() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new PriceManage().DelPurchasePrice(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } + + [WebMethod] + public void get_purchase_price_list() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new PriceManage().GetPurchasePriceList(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } } } diff --git a/TEMUKJD/Extension/DataGridViewExtension.cs b/TEMUKJD/Extension/DataGridViewExtension.cs index f4e5273..5d8043a 100644 --- a/TEMUKJD/Extension/DataGridViewExtension.cs +++ b/TEMUKJD/Extension/DataGridViewExtension.cs @@ -237,5 +237,179 @@ namespace TemuKJD.Extension return checkBox; } + + /// + /// 绘制合并的表头单元格 + /// + /// + /// 单元格名称 + /// 合并后的表头显示文字 + /// 是否允许调整大小 + public static void MergeColumnHeader(this DataGridView dgv, List colNameCollection, string headerText, bool isMultiLevelHeader = false) + { + int nHeight = 0; + int nLeft = 0; + int nTop = 0; + int nWidth = 0; + bool isMultiLevel = isMultiLevelHeader; // 是否为二级复合表头 + bool isResize = false; // 是否已调整过表头 + + //合并列中某一列的列宽变化时,强制重绘表头 + dgv.ColumnWidthChanged += (s, e) => + { + if (colNameCollection.Contains(e.Column.Name)) + { + foreach(var columnName in colNameCollection) + { + dgv.InvalidateCell(dgv.Columns[columnName].HeaderCell); // 标记单元格为需要重绘 + } + dgv.Update(); + } + }; + dgv.Scroll += (s, e) => + { + if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll) + { + bool tag = false; + foreach (var columnName in colNameCollection) + { + var bounds = dgv.Columns[columnName].HeaderCell.ContentBounds; + if (bounds.Left < 10 || bounds.Right > dgv.Width - 10) + { + tag = true; + break; + } + } + if (tag == true) + { + foreach (var columnName in colNameCollection) + { + dgv.InvalidateCell(dgv.Columns[columnName].HeaderCell); // 标记单元格为需要重绘 + } + dgv.Update(); + } + } + }; + //处理重绘事件,绘制合并表头和二级表头 + dgv.CellPainting += (s, e) => + { + if (e.RowIndex == -1 && e.ColumnIndex >=0) // 重绘表头单元格及标题 + { + string name = dgv.Columns[e.ColumnIndex].Name; + // 调整为复合表头 + if (isMultiLevel && !isResize) + { + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing; + dgv.ColumnHeadersHeight = e.CellBounds.Height * 2; + isResize = true; + } + if (colNameCollection.Contains(name)) + { + e.PaintBackground(e.CellBounds, false); // false不绘制单元格背景 + //e.PaintContent(e.CellBounds); // 绘制单元格内容,此处不要绘制 + + Brush brush; + Pen pen; + if (colNameCollection.IndexOf(name) == 0) + { + nTop = e.CellBounds.Top; + nLeft = e.CellBounds.Left; + nWidth = e.CellBounds.Width; + if (isMultiLevelHeader) + nHeight = e.CellBounds.Height / 2; + else + nHeight = e.CellBounds.Height; + foreach (string str2 in colNameCollection) + { + if (!str2.Equals(name)) + { + nWidth += dgv.Columns[str2].Width; + } + } + } + //填充表头背景(覆盖原来的分隔线) + Rectangle rtTmp = new Rectangle(nLeft, nTop, nWidth, nHeight); + using (brush = new SolidBrush(/*e.CellStyle.BackColor*/dgv.BackgroundColor)) + { + var rtBounds = e.CellBounds; + rtBounds.Height -= 1; + e.Graphics.FillRectangle(brush, rtBounds); + } + //非多级表头,只需绘制最后一个连续表头的垂直分隔线 + if (!isMultiLevelHeader) + { + if (colNameCollection.IndexOf(name) == colNameCollection.Count - 1) + { + // 分隔线 + using (pen = new Pen(Color.FromArgb(229, 229, 229))) + { + var rtBounds = e.CellBounds; + e.Graphics.DrawLine(pen, rtBounds.Right - 1, rtBounds.Top + 1, rtBounds.Right - 1, rtBounds.Bottom - 2); + } + } + } + else + { + //分割多级表头 + using (pen = new Pen(/*dgv.GridColor*/Color.FromArgb(229, 229, 229))) + { + //水平分隔线 + e.Graphics.DrawLine(pen, nLeft, nHeight, nLeft + nWidth, nHeight); + //垂直分隔线 + var rtBounds = e.CellBounds; + if (colNameCollection.IndexOf(name) == colNameCollection.Count - 1) + e.Graphics.DrawLine(pen, rtBounds.Right - 1, rtBounds.Top + 1, rtBounds.Right - 1, rtBounds.Bottom - 2); + else + e.Graphics.DrawLine(pen, rtBounds.Right - 1, nHeight, rtBounds.Right - 1, rtBounds.Bottom - 2); + } + //绘制二级表头文字 + using (brush = new SolidBrush(e.CellStyle.ForeColor)) + { + SizeF textSize = TextRenderer.MeasureText(dgv.Columns[e.ColumnIndex].HeaderText, e.CellStyle.Font); + int nSubTop = nTop + nHeight; + int nSubLeft = e.CellBounds.Left; + int nSubWidth = e.CellBounds.Width; + int nSubHeight = nHeight; + PointF point = new PointF(nSubLeft + 6, nSubTop + (nSubHeight - textSize.Height) / 2); + if (e.CellStyle.Alignment.ToString().Contains("Center")) + point.X = nSubLeft + (nSubWidth - textSize.Width) / 2; + else if (e.CellStyle.Alignment.ToString().Contains("Right")) + point.X = nSubLeft + nSubWidth - textSize.Width - 6; + if (e.CellStyle.Alignment.ToString().Contains("Top")) + point.Y = nSubTop + 4; + else if (e.CellStyle.Alignment.ToString().Contains("Bottom")) + point.Y = nSubTop + nSubHeight - textSize.Height - 4; + e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; + e.Graphics.DrawString(dgv.Columns[e.ColumnIndex].HeaderText, e.CellStyle.Font, brush, point); + } + } + //绘制合并表头名称,只在最后绘制一次 + if (colNameCollection.IndexOf(name) == colNameCollection.Count - 1) + { + using (brush = new SolidBrush(e.CellStyle.ForeColor)) + { + SizeF textSize = TextRenderer.MeasureText(headerText, e.CellStyle.Font); + //单元列移出可见范围后将不再移动,需要强制改变绘制文字的位置 + if (nLeft < 0) + nLeft = e.CellBounds.Right - nWidth; + PointF point = new PointF(nLeft + 6, nTop + (nHeight - textSize.Height) / 2); + if (e.CellStyle.Alignment.ToString().Contains("Center") || isMultiLevel) + point.X = nLeft + (nWidth - textSize.Width) / 2; + else if (e.CellStyle.Alignment.ToString().Contains("Right")) + point.X = nLeft + nWidth - textSize.Width - 6; + if (e.CellStyle.Alignment.ToString().Contains("Top")) + point.Y = nTop + 4; + else if (e.CellStyle.Alignment.ToString().Contains("Bottom")) + point.Y = nTop + nHeight - textSize.Height - 4; + e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; + e.Graphics.DrawString(headerText, e.CellStyle.Font, brush, point); + } + } + //e.set_Handled(true); + e.Handled = true; // 告知系统不再处理表头单元格绘制事件 + } + } + }; + } } } diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index f0cc8aa..67d3777 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -358,6 +358,12 @@ ShopLoginForm.cs + + Form + + + ShopOrderStatisticsDetailForm.cs + Form @@ -716,6 +722,9 @@ ShopUpdateCookieForm.cs + + ShopOrderStatisticsDetailForm.cs + ShopOrderStatisticsForm.cs diff --git a/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.cs b/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.cs index b643254..85cb298 100644 --- a/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.cs +++ b/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.cs @@ -9,6 +9,7 @@ using System.Data; using System.Drawing; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; @@ -1298,18 +1299,27 @@ namespace TemuKJD.KJDForms.AdminForms string RestoreProductName(string pName) { + string checkChineseName = pName.Replace("适合不同的搭配风格", "").Replace("个", "").Replace("适合不同的搭配场景", ""); + bool containsChinese = Regex.IsMatch(checkChineseName, @"[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]"); + string newPName = pName; if (pName.EndsWith("适合不同的搭配风格") && pName.IndexOf("个") < 4 && pName.IndexOf("个") > 0) { var headword = pName.Substring(0, pName.IndexOf("个") + 1); newPName = pName.Substring(pName.IndexOf("个") + "个".Length); - newPName = newPName.Replace("适合不同的搭配风格", "适合" + headword + "不同的搭配风格"); + if (containsChinese) + newPName = newPName.Replace("适合不同的搭配风格", "适合" + headword + "不同的搭配风格"); + else + newPName = newPName.Replace("适合不同的搭配风格", "Suitable for " + headword + " different matching styles").Trim(); } if (pName.EndsWith("适合不同的搭配风格") && pName.IndexOf("pcs") < 4 && pName.IndexOf("pcs") > 0) { var headword = pName.Substring(0, pName.IndexOf("pcs")); newPName = pName.Substring(pName.IndexOf("pcs") + "pcs".Length); - newPName = newPName.Replace("适合不同的搭配风格", "适合" + headword + "个不同的搭配风格").Trim(); + if (containsChinese) + newPName = newPName.Replace("适合不同的搭配风格", "适合" + headword + "不同的搭配风格"); + else + newPName = newPName.Replace("适合不同的搭配风格", "Suitable for " + headword + " different matching styles").Trim(); } return newPName; } diff --git a/TEMUKJD/KJDForms/ProductForms/PurchasePriceForm.Designer.cs b/TEMUKJD/KJDForms/ProductForms/PurchasePriceForm.Designer.cs index fe0cc7e..2b90dde 100644 --- a/TEMUKJD/KJDForms/ProductForms/PurchasePriceForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductForms/PurchasePriceForm.Designer.cs @@ -35,13 +35,15 @@ namespace TemuKJD.KJDForms.ProductForms System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.splitContainer3 = new System.Windows.Forms.SplitContainer(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.splitContainer4 = new System.Windows.Forms.SplitContainer(); + this.btnClear = new DevComponents.DotNetBar.PanelEx(); this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); this.btnSearchPrice = new DevComponents.DotNetBar.PanelEx(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx(); - this.splitContainer3 = new System.Windows.Forms.SplitContainer(); - this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -52,9 +54,6 @@ namespace TemuKJD.KJDForms.ProductForms this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dgvProduct = new TemuKJD.UserComponent.DataGridViewEx(); - this.splitContainer4 = new System.Windows.Forms.SplitContainer(); - this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); - this.btnClear = new DevComponents.DotNetBar.PanelEx(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -68,12 +67,11 @@ namespace TemuKJD.KJDForms.ProductForms this.colPrcie = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colEdit = new System.Windows.Forms.DataGridViewLinkColumn(); this.colMsg = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); this.splitContainer1.SuspendLayout(); - this.ucGroupBoxEx2.SuspendLayout(); - this.ucGroupBoxEx1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit(); this.splitContainer3.Panel1.SuspendLayout(); this.splitContainer3.Panel2.SuspendLayout(); @@ -82,12 +80,14 @@ namespace TemuKJD.KJDForms.ProductForms this.splitContainer2.Panel1.SuspendLayout(); this.splitContainer2.Panel2.SuspendLayout(); this.splitContainer2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvProduct)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).BeginInit(); this.splitContainer4.Panel1.SuspendLayout(); this.splitContainer4.Panel2.SuspendLayout(); this.splitContainer4.SuspendLayout(); + this.ucGroupBoxEx2.SuspendLayout(); + this.ucGroupBoxEx1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProduct)).BeginInit(); this.SuspendLayout(); // // splitContainer1 @@ -110,6 +110,89 @@ namespace TemuKJD.KJDForms.ProductForms this.splitContainer1.SplitterDistance = 120; this.splitContainer1.TabIndex = 11; // + // splitContainer3 + // + this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer3.Location = new System.Drawing.Point(0, 0); + this.splitContainer3.Name = "splitContainer3"; + this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer3.Panel1 + // + this.splitContainer3.Panel1.Controls.Add(this.splitContainer2); + // + // splitContainer3.Panel2 + // + this.splitContainer3.Panel2.Controls.Add(this.splitContainer4); + this.splitContainer3.Size = new System.Drawing.Size(1121, 449); + this.splitContainer3.SplitterDistance = 420; + this.splitContainer3.TabIndex = 1; + // + // splitContainer2 + // + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer2.Location = new System.Drawing.Point(0, 0); + this.splitContainer2.Name = "splitContainer2"; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.dgvShop); + this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.dgvProduct); + this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0); + this.splitContainer2.Size = new System.Drawing.Size(1121, 420); + this.splitContainer2.SplitterDistance = 280; + this.splitContainer2.TabIndex = 0; + // + // splitContainer4 + // + this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer4.Location = new System.Drawing.Point(0, 0); + this.splitContainer4.Name = "splitContainer4"; + // + // splitContainer4.Panel1 + // + this.splitContainer4.Panel1.Controls.Add(this.statusBar); + // + // splitContainer4.Panel2 + // + this.splitContainer4.Panel2.Controls.Add(this.btnClear); + this.splitContainer4.Size = new System.Drawing.Size(1121, 25); + this.splitContainer4.SplitterDistance = 587; + this.splitContainer4.TabIndex = 3; + // + // btnClear + // + this.btnClear.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnClear.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnClear.Location = new System.Drawing.Point(303, -1); + this.btnClear.Name = "btnClear"; + this.btnClear.Size = new System.Drawing.Size(90, 21); + this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.Style.GradientAngle = 90; + this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.TabIndex = 440; + this.btnClear.Text = "清空结果"; + this.btnClear.Visible = false; + // // ucGroupBoxEx2 // this.ucGroupBoxEx2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -212,45 +295,6 @@ namespace TemuKJD.KJDForms.ProductForms this.btnRefreshShop.Text = "刷新店铺"; this.btnRefreshShop.Click += new System.EventHandler(this.btnRefreshShop_Click); // - // splitContainer3 - // - this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; - this.splitContainer3.Location = new System.Drawing.Point(0, 0); - this.splitContainer3.Name = "splitContainer3"; - this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // splitContainer3.Panel1 - // - this.splitContainer3.Panel1.Controls.Add(this.splitContainer2); - // - // splitContainer3.Panel2 - // - this.splitContainer3.Panel2.Controls.Add(this.splitContainer4); - this.splitContainer3.Size = new System.Drawing.Size(1121, 449); - this.splitContainer3.SplitterDistance = 420; - this.splitContainer3.TabIndex = 1; - // - // splitContainer2 - // - this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; - this.splitContainer2.Location = new System.Drawing.Point(0, 0); - this.splitContainer2.Name = "splitContainer2"; - // - // splitContainer2.Panel1 - // - this.splitContainer2.Panel1.Controls.Add(this.dgvShop); - this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0); - // - // splitContainer2.Panel2 - // - this.splitContainer2.Panel2.Controls.Add(this.dgvProduct); - this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0); - this.splitContainer2.Size = new System.Drawing.Size(1121, 420); - this.splitContainer2.SplitterDistance = 280; - this.splitContainer2.TabIndex = 0; - // // dgvShop // this.dgvShop.AllowUserToAddRows = false; @@ -390,61 +434,6 @@ namespace TemuKJD.KJDForms.ProductForms this.dgvProduct.TabIndex = 187; this.dgvProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvProduct_Scroll); // - // splitContainer4 - // - this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; - this.splitContainer4.Location = new System.Drawing.Point(0, 0); - this.splitContainer4.Name = "splitContainer4"; - // - // splitContainer4.Panel1 - // - this.splitContainer4.Panel1.Controls.Add(this.statusBar); - // - // splitContainer4.Panel2 - // - this.splitContainer4.Panel2.Controls.Add(this.btnClear); - this.splitContainer4.Size = new System.Drawing.Size(1121, 25); - this.splitContainer4.SplitterDistance = 587; - this.splitContainer4.TabIndex = 3; - // - // statusBar - // - this.statusBar.BackColor = System.Drawing.Color.White; - this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; - this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.statusBar.Location = new System.Drawing.Point(0, 0); - this.statusBar.Margin = new System.Windows.Forms.Padding(0); - this.statusBar.Name = "statusBar"; - this.statusBar.Size = new System.Drawing.Size(587, 25); - this.statusBar.TabIndex = 2; - // - // btnClear - // - this.btnClear.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnClear.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnClear.Location = new System.Drawing.Point(303, -1); - this.btnClear.Name = "btnClear"; - this.btnClear.Size = new System.Drawing.Size(90, 21); - this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White; - this.btnClear.Style.GradientAngle = 90; - this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; - this.btnClear.TabIndex = 440; - this.btnClear.Text = "清空结果"; - this.btnClear.Visible = false; - // // colCheck // this.colCheck.HeaderText = "选择"; @@ -543,12 +532,24 @@ namespace TemuKJD.KJDForms.ProductForms this.colMsg.ReadOnly = true; this.colMsg.Width = 400; // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(0, 0); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(587, 25); + this.statusBar.TabIndex = 2; + // // PurchasePriceForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.BackColor = System.Drawing.Color.White; this.ClientSize = new System.Drawing.Size(1121, 573); this.Controls.Add(this.splitContainer1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.Name = "PurchasePriceForm"; this.Text = "PurchasePriceForm"; this.Load += new System.EventHandler(this.PurchasePriceForm_Load); @@ -557,8 +558,6 @@ namespace TemuKJD.KJDForms.ProductForms this.splitContainer1.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); this.splitContainer1.ResumeLayout(false); - this.ucGroupBoxEx2.ResumeLayout(false); - this.ucGroupBoxEx1.ResumeLayout(false); this.splitContainer3.Panel1.ResumeLayout(false); this.splitContainer3.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit(); @@ -567,12 +566,14 @@ namespace TemuKJD.KJDForms.ProductForms this.splitContainer2.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); this.splitContainer2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvProduct)).EndInit(); this.splitContainer4.Panel1.ResumeLayout(false); this.splitContainer4.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit(); this.splitContainer4.ResumeLayout(false); + this.ucGroupBoxEx2.ResumeLayout(false); + this.ucGroupBoxEx1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProduct)).EndInit(); this.ResumeLayout(false); } diff --git a/TEMUKJD/KJDForms/ProductForms/PurchasePriceForm.cs b/TEMUKJD/KJDForms/ProductForms/PurchasePriceForm.cs index 4c88e91..a94fed7 100644 --- a/TEMUKJD/KJDForms/ProductForms/PurchasePriceForm.cs +++ b/TEMUKJD/KJDForms/ProductForms/PurchasePriceForm.cs @@ -16,6 +16,7 @@ using System.Windows.Forms; using TemuKJD.Extension; using TemuKJD.KJDForms.BaseForms; using TemuKJD.KJDForms.ShopForms; +using Work; namespace TemuKJD.KJDForms.ProductForms { @@ -24,6 +25,7 @@ namespace TemuKJD.KJDForms.ProductForms private CheckBox chkSelectAll = null; public CancellationTokenSource cancellationTokenSource { get; set; } = null; List lstProductInfo = new List(); + List lstProductPurchasePrice = new List(); public PurchasePriceForm() { @@ -38,6 +40,7 @@ namespace TemuKJD.KJDForms.ProductForms chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged; this.dgvProduct.AddSelectorColumn("colCheck"); + //this.dgvProduct.MergeColumnHeader(new List() { "colSupplierId", "colSupplierName" }, "店铺信息", true); } private void chkSelectAll_CheckedChanged(object sender, EventArgs e) { @@ -315,42 +318,50 @@ namespace TemuKJD.KJDForms.ProductForms if (jArr == null) jArr = new JArray(); + List productInfoLst = new List(); + List productInfoSpuIdLst = new List(); foreach (var item in jArr) { string sItem = JsonHelper.SerializeObject(item); TemuListProductInfo pInfo = JsonHelper.DeserializeJsonToObject(sItem); // 反序列化得到类 - List productInfoSpuIdLst= new List(); + if (pInfo != null && !lstProductInfo.Any(a => a.productId == pInfo.productId)) { lstProductInfo.Add(pInfo); + productInfoLst.Add(pInfo); productInfoSpuIdLst.Add(pInfo.productId.ParseToString()); - - Invoke(new Action(() => - { - int rowId = this.dgvProduct.Rows.Add( - true, - shop.ShopId, - shop.ShopAccount, // pInfo.supplierName, // 列表里取不到,这里取shop里的 - pInfo.mainImageUrl.Replace("https", "http").Replace("img.kwcdn.com", "img.cdnfe.com") + "?imageMogr2/thumbnail/60x", - defaultBitmap,//image, // skc图片 - pInfo.productId, - pInfo.productSkcId, - pInfo.productName, // 商品标题 - pInfo.extCode, - "", - "", - "设置", - "" // 操作结果,状态 - ); - - dgvProduct.Rows[rowId].Height = 60; - })); } } + List productPurchasePriceList = GetPurchasePrice(productInfoSpuIdLst); + this.lstProductPurchasePrice.AddRange(productPurchasePriceList); + + foreach (var pInfo in productInfoLst) + { + Invoke(new Action(() => + { + int rowId = this.dgvProduct.Rows.Add( + true, + shop.ShopId, + shop.ShopAccount, // pInfo.supplierName, // 列表里取不到,这里取shop里的 + pInfo.mainImageUrl.Replace("https", "http").Replace("img.kwcdn.com", "img.cdnfe.com") + "?imageMogr2/thumbnail/60x", + defaultBitmap,//image, // skc图片 + pInfo.productId, + pInfo.productSkcId, + pInfo.productName, // 商品标题 + pInfo.extCode, + "", + "", + "设置", + "" // 操作结果,状态 + ); + + dgvProduct.Rows[rowId].Height = 60; + })); + } } - catch (Exception ex) - { - BaseMsgForm.ShowError(ex.Message); + catch (Exception ex) + { + BaseMsgForm.ShowError(ex.Message); } Invoke(new Action(() => { @@ -449,9 +460,37 @@ namespace TemuKJD.KJDForms.ProductForms ShowDgvImg(this.dgvProduct); } - void GetPurchasePrice() + List GetPurchasePrice(List productIdList) { + List list = new List(); + for (int i = 0; i < productIdList.Count; i++) + { + productIdList[i] = productIdList[i].Replace(",", "").Replace("'", "").Replace("\"", ""); + } + var url = BaseClass.BuildObjString("price/get_purchase_price_list"); + var data = UserLogin.GetSignaturex(); + data += "&page=1"; + data += "&page_size=" + productIdList.Count; + data += "&in_spu_id=" + string.Join(",", productIdList); + var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + return list; + } + + if (!html.Contains("data")) + return list; + + var jArr = JObject.Parse(html)["data"]; + if (jArr.Count() == 0) + return list; + + return JsonHelper.DeserializeJsonToList(jArr.ToString()); } } } diff --git a/TEMUKJD/KJDForms/ProductForms/SaleStockUpForm.cs b/TEMUKJD/KJDForms/ProductForms/SaleStockUpForm.cs index b8836db..c48399a 100644 --- a/TEMUKJD/KJDForms/ProductForms/SaleStockUpForm.cs +++ b/TEMUKJD/KJDForms/ProductForms/SaleStockUpForm.cs @@ -40,7 +40,7 @@ namespace TemuKJD.KJDForms.ProductForms /// /// 待备货商品列表 /// - List lstSubOrderInfo = new List(); + List lstSubOrderInfo = new List(); public SaleStockUpForm() { @@ -463,7 +463,7 @@ namespace TemuKJD.KJDForms.ProductForms /// /// /// - private string QueryStockBaseInfo(ShopLoginInfo shop, SubOrderInfo subOrderInfo) + private string QueryStockBaseInfo(ShopLoginInfo shop, WarehouseProductSubOrderInfo subOrderInfo) { if (isNewService) return QueryStockBaseInfo2(shop, subOrderInfo); @@ -475,7 +475,7 @@ namespace TemuKJD.KJDForms.ProductForms return KJDHttpResponse.PostResponse(shop, url, body, refere); } - private string QueryStockBaseInfo2(ShopLoginInfo shop, SubOrderInfo subOrderInfo) + private string QueryStockBaseInfo2(ShopLoginInfo shop, WarehouseProductSubOrderInfo subOrderInfo) { string url = "https://agentseller.temu.com/mms/venom/api/supplier/sales/management/queryStockBaseInfo"; string body = "{\"productSkcId\":" + subOrderInfo.productSkcId @@ -490,7 +490,7 @@ namespace TemuKJD.KJDForms.ProductForms /// /// /// - private string CreateStockOrder(ShopLoginInfo shop, SubOrderInfo subOrderInfo) + private string CreateStockOrder(ShopLoginInfo shop, WarehouseProductSubOrderInfo subOrderInfo) { if (isNewService) return CreateStockOrder2(shop, subOrderInfo); @@ -509,7 +509,7 @@ namespace TemuKJD.KJDForms.ProductForms return KJDHttpResponse.PostResponse(shop, url, body, refere); } - private string CreateStockOrder2(ShopLoginInfo shop, SubOrderInfo subOrderInfo) + private string CreateStockOrder2(ShopLoginInfo shop, WarehouseProductSubOrderInfo subOrderInfo) { string url = "https://agentseller.temu.com/mms/venom/api/supplier/sales/management/createStockOrder"; string body = "{\"productSkcId\":" + subOrderInfo.productSkcId + "," + @@ -853,11 +853,11 @@ namespace TemuKJD.KJDForms.ProductForms BaseMsgForm.ShowError(ex.Message); } - List subOrderInfoLstTmp = new List(); + List subOrderInfoLstTmp = new List(); foreach (var item in jArr) { string sItem = item.ToString(); - SubOrderInfo sInfo = JsonHelper.DeserializeJsonToObject(sItem); // 反序列化得到类 + WarehouseProductSubOrderInfo sInfo = JsonHelper.DeserializeJsonToObject(sItem); // 反序列化得到类 if (sInfo != null) { foreach(var sku in sInfo.skuQuantityDetailList) diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectEditNotesForm.Designer.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectEditNotesForm.Designer.cs index c33dfe2..c429b45 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectEditNotesForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectEditNotesForm.Designer.cs @@ -30,6 +30,8 @@ { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductSelectEditNotesForm)); this.panel2 = new System.Windows.Forms.Panel(); + this.btnOk = new DevComponents.DotNetBar.PanelEx(); + this.cmbUserNotes = new System.Windows.Forms.ComboBox(); this.cmbStatus = new System.Windows.Forms.ComboBox(); this.label6 = new System.Windows.Forms.Label(); this.txtDraftId = new System.Windows.Forms.TextBox(); @@ -47,7 +49,7 @@ this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.label8 = new System.Windows.Forms.Label(); this.txtNotes = new DevComponents.DotNetBar.Controls.TextBoxX(); - this.btnOk = new TemuKJD.UserControls.ButtonEx(); + this.label7 = new System.Windows.Forms.Label(); this.panel2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); @@ -55,6 +57,9 @@ // panel2 // this.panel2.BackColor = System.Drawing.Color.White; + this.panel2.Controls.Add(this.label7); + this.panel2.Controls.Add(this.btnOk); + this.panel2.Controls.Add(this.cmbUserNotes); this.panel2.Controls.Add(this.cmbStatus); this.panel2.Controls.Add(this.label6); this.panel2.Controls.Add(this.txtDraftId); @@ -72,13 +77,49 @@ this.panel2.Controls.Add(this.pictureBox1); this.panel2.Controls.Add(this.label8); this.panel2.Controls.Add(this.txtNotes); - this.panel2.Controls.Add(this.btnOk); this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; this.panel2.Location = new System.Drawing.Point(1, 33); this.panel2.Name = "panel2"; this.panel2.Size = new System.Drawing.Size(391, 546); this.panel2.TabIndex = 1; // + // btnOk + // + this.btnOk.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnOk.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnOk.DisabledBackColor = System.Drawing.Color.Empty; + this.btnOk.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnOk.Location = new System.Drawing.Point(298, 490); + this.btnOk.Name = "btnOk"; + this.btnOk.Size = new System.Drawing.Size(55, 26); + this.btnOk.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnOk.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnOk.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnOk.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnOk.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnOk.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnOk.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnOk.Style.GradientAngle = 90; + this.btnOk.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnOk.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnOk.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnOk.TabIndex = 487; + this.btnOk.Text = "提交"; + this.btnOk.Click += new System.EventHandler(this.btnOk_Click); + // + // cmbUserNotes + // + this.cmbUserNotes.FormattingEnabled = true; + this.cmbUserNotes.Items.AddRange(new object[] { + "", + "已买", + "重上"}); + this.cmbUserNotes.Location = new System.Drawing.Point(88, 460); + this.cmbUserNotes.Name = "cmbUserNotes"; + this.cmbUserNotes.Size = new System.Drawing.Size(265, 25); + this.cmbUserNotes.TabIndex = 446; + this.cmbUserNotes.Text = "已买"; + // // cmbStatus // this.cmbStatus.Enabled = false; @@ -87,7 +128,7 @@ "待上传", "已上传", "草稿箱"}); - this.cmbStatus.Location = new System.Drawing.Point(252, 397); + this.cmbStatus.Location = new System.Drawing.Point(252, 381); this.cmbStatus.Name = "cmbStatus"; this.cmbStatus.Size = new System.Drawing.Size(101, 25); this.cmbStatus.TabIndex = 442; @@ -95,7 +136,7 @@ // label6 // this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(220, 401); + this.label6.Location = new System.Drawing.Point(220, 385); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(32, 17); this.label6.TabIndex = 441; @@ -105,7 +146,7 @@ // this.txtDraftId.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtDraftId.Location = new System.Drawing.Point(88, 398); + this.txtDraftId.Location = new System.Drawing.Point(88, 382); this.txtDraftId.Name = "txtDraftId"; this.txtDraftId.ReadOnly = true; this.txtDraftId.Size = new System.Drawing.Size(106, 23); @@ -114,7 +155,7 @@ // label5 // this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(42, 401); + this.label5.Location = new System.Drawing.Point(42, 385); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(45, 17); this.label5.TabIndex = 439; @@ -126,7 +167,7 @@ this.btnFission.CanvasColor = System.Drawing.SystemColors.Control; this.btnFission.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnFission.DisabledBackColor = System.Drawing.Color.Empty; - this.btnFission.Location = new System.Drawing.Point(88, 483); + this.btnFission.Location = new System.Drawing.Point(88, 490); this.btnFission.Name = "btnFission"; this.btnFission.Size = new System.Drawing.Size(56, 26); this.btnFission.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -148,7 +189,7 @@ // lblTextCount // this.lblTextCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.lblTextCount.Location = new System.Drawing.Point(245, 160); + this.lblTextCount.Location = new System.Drawing.Point(245, 158); this.lblTextCount.Name = "lblTextCount"; this.lblTextCount.Size = new System.Drawing.Size(106, 17); this.lblTextCount.TabIndex = 399; @@ -159,7 +200,7 @@ // this.txtSkc.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtSkc.Location = new System.Drawing.Point(252, 332); + this.txtSkc.Location = new System.Drawing.Point(252, 324); this.txtSkc.Name = "txtSkc"; this.txtSkc.ReadOnly = true; this.txtSkc.Size = new System.Drawing.Size(101, 23); @@ -168,7 +209,7 @@ // txtSpu // this.txtSpu.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.txtSpu.Location = new System.Drawing.Point(88, 332); + this.txtSpu.Location = new System.Drawing.Point(88, 324); this.txtSpu.Name = "txtSpu"; this.txtSpu.ReadOnly = true; this.txtSpu.Size = new System.Drawing.Size(106, 23); @@ -179,7 +220,7 @@ this.txtProdName.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtProdName.Location = new System.Drawing.Point(88, 180); + this.txtProdName.Location = new System.Drawing.Point(88, 176); this.txtProdName.Multiline = true; this.txtProdName.Name = "txtProdName"; this.txtProdName.ReadOnly = true; @@ -191,7 +232,7 @@ // this.txtShopName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.txtShopName.Location = new System.Drawing.Point(88, 365); + this.txtShopName.Location = new System.Drawing.Point(88, 353); this.txtShopName.Name = "txtShopName"; this.txtShopName.ReadOnly = true; this.txtShopName.Size = new System.Drawing.Size(265, 23); @@ -200,7 +241,7 @@ // label4 // this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(31, 368); + this.label4.Location = new System.Drawing.Point(31, 356); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(56, 17); this.label4.TabIndex = 394; @@ -209,7 +250,7 @@ // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(31, 183); + this.label3.Location = new System.Drawing.Point(31, 179); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(56, 17); this.label3.TabIndex = 392; @@ -218,7 +259,7 @@ // label2 // this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(196, 335); + this.label2.Location = new System.Drawing.Point(196, 327); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(56, 17); this.label2.TabIndex = 391; @@ -227,7 +268,7 @@ // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(31, 335); + this.label1.Location = new System.Drawing.Point(31, 327); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(56, 17); this.label1.TabIndex = 390; @@ -246,7 +287,7 @@ // label8 // this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(32, 433); + this.label8.Location = new System.Drawing.Point(32, 413); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(56, 17); this.label8.TabIndex = 386; @@ -269,28 +310,20 @@ this.txtNotes.Border.PaddingLeft = 2; this.txtNotes.Border.PaddingRight = 2; this.txtNotes.Border.PaddingTop = 2; - this.txtNotes.Location = new System.Drawing.Point(88, 431); + this.txtNotes.Location = new System.Drawing.Point(88, 411); this.txtNotes.Multiline = true; this.txtNotes.Name = "txtNotes"; this.txtNotes.Size = new System.Drawing.Size(265, 44); this.txtNotes.TabIndex = 385; // - // btnOk + // label7 // - this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOk.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnOk.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnOk.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.btnOk.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnOk.ForeColor = System.Drawing.Color.White; - this.btnOk.Location = new System.Drawing.Point(298, 483); - this.btnOk.Margin = new System.Windows.Forms.Padding(2); - this.btnOk.Name = "btnOk"; - this.btnOk.Size = new System.Drawing.Size(55, 26); - this.btnOk.TabIndex = 372; - this.btnOk.Text = "提交"; - this.btnOk.UseVisualStyleBackColor = false; - this.btnOk.Click += new System.EventHandler(this.btnOk_Click); + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(32, 464); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(56, 17); + this.label7.TabIndex = 494; + this.label7.Text = "客户备注"; // // DbProductSelectEditNotesForm // @@ -314,7 +347,6 @@ #endregion private System.Windows.Forms.Panel panel2; - private UserControls.ButtonEx btnOk; private System.Windows.Forms.Label label8; private DevComponents.DotNetBar.Controls.TextBoxX txtNotes; private System.Windows.Forms.Label label3; @@ -332,5 +364,8 @@ private System.Windows.Forms.TextBox txtDraftId; private System.Windows.Forms.Label label5; private System.Windows.Forms.ComboBox cmbStatus; + private System.Windows.Forms.ComboBox cmbUserNotes; + private DevComponents.DotNetBar.PanelEx btnOk; + private System.Windows.Forms.Label label7; } } \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectEditNotesForm.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectEditNotesForm.cs index ca3f168..c179cf8 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectEditNotesForm.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectEditNotesForm.cs @@ -45,6 +45,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.txtNotes.Text = dbProdSelect.notes; this.cmbStatus.Text = dbProdSelect.status; this.txtDraftId.Text = dbProdSelect.draft_id; + this.cmbUserNotes.Text = dbProdSelect.user_notes; } if (selectNotesType == SetProductSelectNotesType.DbProduct) @@ -70,6 +71,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms url = BaseClass.BuildObjString("product_third/mdy_product_select_notes"); var data = UserLogin.GetSignaturex() + "&db_id=" + dbProdSelect.id + "¬es=" + this.txtNotes.Text.Trim(); + data += "&user_notes=" + this.cmbUserNotes.Text.Trim(); if (selectNotesType == SetProductSelectNotesType.DbProduct) { byte[] bytes = Encoding.GetEncoding("gb2312").GetBytes(txtProdName.Text.Trim()); @@ -92,6 +94,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms else { dbProdSelect.notes = this.txtNotes.Text.Trim(); + dbProdSelect.user_notes = this.cmbUserNotes.Text.Trim(); if (selectNotesType == SetProductSelectNotesType.DbProduct) { dbProdSelect.fission_product_name = this.txtProdName.Text.Trim(); diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs index 5b35d49..a2f8559 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.Designer.cs @@ -39,6 +39,8 @@ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductSelectListManageForm)); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.btnStop = new DevComponents.DotNetBar.PanelEx(); + this.btnExport = new DevComponents.DotNetBar.PanelEx(); this.lblCustomImgNum = new System.Windows.Forms.Label(); this.btnCustomImg = new DevComponents.DotNetBar.PanelEx(); this.label14 = new System.Windows.Forms.Label(); @@ -146,6 +148,8 @@ // // splitContainer1.Panel1 // + this.splitContainer1.Panel1.Controls.Add(this.btnStop); + this.splitContainer1.Panel1.Controls.Add(this.btnExport); this.splitContainer1.Panel1.Controls.Add(this.lblCustomImgNum); this.splitContainer1.Panel1.Controls.Add(this.btnCustomImg); this.splitContainer1.Panel1.Controls.Add(this.label14); @@ -164,6 +168,58 @@ this.splitContainer1.SplitterDistance = 100; this.splitContainer1.TabIndex = 2; // + // btnStop + // + this.btnStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnStop.CanvasColor = System.Drawing.SystemColors.Control; + this.btnStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnStop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnStop.Location = new System.Drawing.Point(1464, 39); + this.btnStop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnStop.Name = "btnStop"; + this.btnStop.Size = new System.Drawing.Size(90, 26); + this.btnStop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnStop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnStop.Style.GradientAngle = 90; + this.btnStop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnStop.TabIndex = 507; + this.btnStop.Text = "停止上传"; + this.btnStop.Click += new System.EventHandler(this.btnStop_Click); + // + // btnExport + // + this.btnExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnExport.CanvasColor = System.Drawing.SystemColors.Control; + this.btnExport.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnExport.DisabledBackColor = System.Drawing.Color.Empty; + this.btnExport.Location = new System.Drawing.Point(1372, 39); + this.btnExport.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnExport.Name = "btnExport"; + this.btnExport.Size = new System.Drawing.Size(90, 26); + this.btnExport.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnExport.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnExport.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnExport.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnExport.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnExport.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnExport.Style.GradientAngle = 90; + this.btnExport.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnExport.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnExport.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnExport.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnExport.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnExport.TabIndex = 494; + this.btnExport.Text = "导出数据表格"; + this.btnExport.Click += new System.EventHandler(this.btnExport_Click); + // // lblCustomImgNum // this.lblCustomImgNum.AutoSize = true; @@ -1164,11 +1220,13 @@ // this.ucSplitPage1.CurrentPage = 1; this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right; - this.ucSplitPage1.Location = new System.Drawing.Point(1196, 0); + this.ucSplitPage1.IsShowPageSize = true; + this.ucSplitPage1.Location = new System.Drawing.Point(1158, 0); this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0); this.ucSplitPage1.Name = "ucSplitPage1"; this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0); - this.ucSplitPage1.Size = new System.Drawing.Size(362, 25); + this.ucSplitPage1.PageSize = 200; + this.ucSplitPage1.Size = new System.Drawing.Size(400, 25); this.ucSplitPage1.TabIndex = 6; this.ucSplitPage1.TotalPage = 1; // @@ -1300,5 +1358,7 @@ private UserComponent.UcCheckBox chkCustomPic; private System.Windows.Forms.Label lblCustomImgNum; private DevComponents.DotNetBar.PanelEx btnCustomImg; + private DevComponents.DotNetBar.PanelEx btnExport; + private DevComponents.DotNetBar.PanelEx btnStop; } } \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs index 1cd22d7..c1ef513 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductSelectListManageForm.cs @@ -29,6 +29,8 @@ namespace TemuKJD.KJDForms.ProductSelectForms { public partial class DbProductSelectListManageForm : LRBaseForm { + public CancellationTokenSource cancellationTokenSource { get; set; } = null; + List lstAdminTemuDBProductSelect = new List(); List shopLst = new List(); List lstDbPrice = new List(); @@ -185,7 +187,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms Task.Run(() => { int pageCount; - var list = GetSelectProductList(out pageCount, page, 200); + var list = GetSelectProductList(out pageCount, page, ucSplitPage1.PageSize); lstAdminTemuDBProductSelect.AddRange(list); this.ucSplitPage1.TotalPage = pageCount; @@ -397,6 +399,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms DbProductSelectEditNotesForm editForm = new DbProductSelectEditNotesForm(dbSelectProduct); editForm.ShowDialog(); dgvSelectProduct.Rows[e.RowIndex].Cells["colNotes"].Value = dbSelectProduct.notes; + dgvSelectProduct.Rows[e.RowIndex].Cells["colUserNotes"].Value = dbSelectProduct.user_notes; dgvSelectProduct.Rows[e.RowIndex].Cells["colProductName"].Value = dbSelectProduct.fission_product_name; break; case "Skc图片": @@ -579,6 +582,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms if (prodList.Count() > 0) { this.btnAdd.Enabled = false; + cancellationTokenSource = new CancellationTokenSource(); Task.Run(() => { AddProductDraft(prodList); @@ -586,7 +590,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms { this.btnAdd.Enabled = true; })); - }); + }, cancellationTokenSource.Token); } else { @@ -612,6 +616,9 @@ namespace TemuKJD.KJDForms.ProductSelectForms foreach (var prod in prodSelect) { + if (cancellationTokenSource.IsCancellationRequested) + break; + Invoke(new Action(() => { this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1); @@ -763,13 +770,19 @@ namespace TemuKJD.KJDForms.ProductSelectForms Invoke(new Action(() => { - BaseMsgForm.ShowInfo("上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "完成!"); + if (cancellationTokenSource.IsCancellationRequested) + BaseMsgForm.ShowInfo("上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "停止!"); + else + BaseMsgForm.ShowInfo("上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "完成!"); })); Invoke(new Action(() => { this.pbLoading.Visible = false; - this.statusBar.lblTaskStatus.Text = "上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "完成"; + if (cancellationTokenSource.IsCancellationRequested) + this.statusBar.lblTaskStatus.Text = "上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "停止"; + else + this.statusBar.lblTaskStatus.Text = "上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "完成"; this.statusBar.UpdateProgressBar(prodSelect.Length); })); } @@ -1222,6 +1235,13 @@ namespace TemuKJD.KJDForms.ProductSelectForms skuListTmp.AddRange(skcInfo.productSkuList); while (skuListTmp.Count > 0) { + if (cancellationTokenSource.IsCancellationRequested) + { + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + prodParam.productDraftId.ParseToString() + "\"," + + "\"errMsg\":\"上传停止\"}"; + } + skuCount++; if (cell != null) { @@ -1372,6 +1392,13 @@ namespace TemuKJD.KJDForms.ProductSelectForms prodParam.productSkcReqs.Add(skcItem); } + if (cancellationTokenSource.IsCancellationRequested) + { + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + prodParam.productDraftId.ParseToString() + "\"," + + "\"errMsg\":\"上传停止\"}"; + } + #region 尺码表 string sizeError = ""; //上传尺码表(如果有) @@ -1413,6 +1440,13 @@ namespace TemuKJD.KJDForms.ProductSelectForms } #endregion + if (cancellationTokenSource.IsCancellationRequested) + { + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + prodParam.productDraftId.ParseToString() + "\"," + + "\"errMsg\":\"上传停止\"}"; + } + if (cell != null) { Invoke(new Action(() => @@ -1423,7 +1457,7 @@ namespace TemuKJD.KJDForms.ProductSelectForms html = SaveDraft(shop, prodParam.productDraftId.ToString(), prodParam); if (html.Contains("\"success\":true")) { - if (!chkUploadProd.Checked) + if (!chkUploadProd.Checked /*|| cancellationTokenSource.IsCancellationRequested*/) { #region 使用草稿箱模拟上传后改图 if (chkCustomPic.Checked) @@ -2114,5 +2148,24 @@ Content-Disposition: form-data; name=""upload_sign"" } } } + + private void btnExport_Click(object sender, EventArgs e) + { + SaveFileDialog dialog = new SaveFileDialog(); + dialog.Title = "Save file as..."; + dialog.Filter = "Excel files (*.csv)|*.csv|All files (*.*)|*.*"; + dialog.RestoreDirectory = true; + + dialog.FileName = "认领上传:" + DateTime.Now.ToString("yyyy-MM-dd HH-mm") + ".csv"; + if (dialog.ShowDialog() != DialogResult.OK) + return; + OutExcel.SaveFile(dialog.FileName, dgvSelectProduct); + } + + private void btnStop_Click(object sender, EventArgs e) + { + if (cancellationTokenSource != null) + cancellationTokenSource.Cancel(); + } } } diff --git a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs index 5f11fc4..7fa4779 100644 --- a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs @@ -39,6 +39,8 @@ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProductThirdSelectListManageForm)); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.btnStop = new DevComponents.DotNetBar.PanelEx(); + this.btnExport = new DevComponents.DotNetBar.PanelEx(); this.btnDel = new DevComponents.DotNetBar.PanelEx(); this.pbFissionSetting = new System.Windows.Forms.PictureBox(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); @@ -141,6 +143,8 @@ // // splitContainer1.Panel1 // + this.splitContainer1.Panel1.Controls.Add(this.btnStop); + this.splitContainer1.Panel1.Controls.Add(this.btnExport); this.splitContainer1.Panel1.Controls.Add(this.btnDel); this.splitContainer1.Panel1.Controls.Add(this.pbFissionSetting); this.splitContainer1.Panel1.Controls.Add(this.tableLayoutPanel1); @@ -155,6 +159,58 @@ this.splitContainer1.SplitterDistance = 70; this.splitContainer1.TabIndex = 2; // + // btnStop + // + this.btnStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnStop.CanvasColor = System.Drawing.SystemColors.Control; + this.btnStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnStop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnStop.Location = new System.Drawing.Point(1464, 39); + this.btnStop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnStop.Name = "btnStop"; + this.btnStop.Size = new System.Drawing.Size(90, 26); + this.btnStop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnStop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnStop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnStop.Style.GradientAngle = 90; + this.btnStop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnStop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnStop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnStop.TabIndex = 511; + this.btnStop.Text = "停止上传"; + this.btnStop.Click += new System.EventHandler(this.btnStop_Click); + // + // btnExport + // + this.btnExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnExport.CanvasColor = System.Drawing.SystemColors.Control; + this.btnExport.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnExport.DisabledBackColor = System.Drawing.Color.Empty; + this.btnExport.Location = new System.Drawing.Point(1372, 39); + this.btnExport.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnExport.Name = "btnExport"; + this.btnExport.Size = new System.Drawing.Size(90, 26); + this.btnExport.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnExport.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnExport.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnExport.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnExport.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnExport.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnExport.Style.GradientAngle = 90; + this.btnExport.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnExport.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnExport.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnExport.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnExport.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnExport.TabIndex = 498; + this.btnExport.Text = "导出数据表格"; + this.btnExport.Click += new System.EventHandler(this.btnExport_Click); + // // btnDel // this.btnDel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -1081,11 +1137,13 @@ // this.ucSplitPage1.CurrentPage = 1; this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right; - this.ucSplitPage1.Location = new System.Drawing.Point(1196, 0); + this.ucSplitPage1.IsShowPageSize = true; + this.ucSplitPage1.Location = new System.Drawing.Point(1158, 0); this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0); this.ucSplitPage1.Name = "ucSplitPage1"; this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0); - this.ucSplitPage1.Size = new System.Drawing.Size(362, 25); + this.ucSplitPage1.PageSize = 200; + this.ucSplitPage1.Size = new System.Drawing.Size(400, 25); this.ucSplitPage1.TabIndex = 6; this.ucSplitPage1.TotalPage = 1; // @@ -1211,5 +1269,7 @@ private System.Windows.Forms.DataGridViewLinkColumn colEditNotes; private System.Windows.Forms.DataGridViewLinkColumn ColDelete; private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; + private DevComponents.DotNetBar.PanelEx btnExport; + private DevComponents.DotNetBar.PanelEx btnStop; } } \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs index 6f7e91b..f9bcb46 100644 --- a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs +++ b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs @@ -33,6 +33,8 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms /// public partial class ProductThirdSelectListManageForm : LRBaseForm { + public CancellationTokenSource cancellationTokenSource { get; set; } = null; + List lstAdminTemuDBProductSelect = new List(); List shopLst = new List(); @@ -59,6 +61,8 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms chkUploadProd.Visible = true; flowLayoutPanel1.Visible = true; + ucSplitPage1.IsShowPageSize = false; // 可调整分页 + if (BaseClass.SaLevel == 1) { dgvSelectProduct.Columns["colSubSaNick"].Visible = true; @@ -67,6 +71,7 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms chkNoSubSa.Visible = true; pbFissionSetting.Visible = true; btnReFission.Visible = true; + ucSplitPage1.IsShowPageSize = true; // 可调整分页 } } @@ -115,7 +120,7 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms Task.Run(() => { int pageCount; - var list = GetSelectProductList(out pageCount, page, 200); + var list = GetSelectProductList(out pageCount, page, ucSplitPage1.PageSize); lstAdminTemuDBProductSelect.AddRange(list); this.ucSplitPage1.TotalPage = pageCount; @@ -327,6 +332,7 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms DbProductSelectEditNotesForm editForm = new DbProductSelectEditNotesForm(dbSelectProduct, SetProductSelectNotesType.ThirdProduct); editForm.ShowDialog(); dgvSelectProduct.Rows[e.RowIndex].Cells["colNotes"].Value = dbSelectProduct.notes; + dgvSelectProduct.Rows[e.RowIndex].Cells["colUserNotes"].Value = dbSelectProduct.user_notes; break; case "Skc图片": ShowImgForm imgFrom = new ShowImgForm(dgvSelectProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString()); @@ -520,6 +526,7 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms if (prodList.Count() > 0) { this.btnAdd.Enabled = false; + cancellationTokenSource = new CancellationTokenSource(); Task.Run(() => { AddProductDraft(prodList); @@ -527,7 +534,7 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms { this.btnAdd.Enabled = true; })); - }); + }, cancellationTokenSource.Token); } else { @@ -555,6 +562,9 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms foreach (var prod in prodSelect) { + if (cancellationTokenSource.IsCancellationRequested) + break; + Invoke(new Action(() => { this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1); @@ -724,13 +734,19 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms Invoke(new Action(() => { - BaseMsgForm.ShowInfo("上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "完成!"); + if (cancellationTokenSource.IsCancellationRequested) + BaseMsgForm.ShowInfo("上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "停止!"); + else + BaseMsgForm.ShowInfo("上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "完成!"); })); Invoke(new Action(() => { this.pbLoading.Visible = false; - this.statusBar.lblTaskStatus.Text = "上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "完成"; + if (cancellationTokenSource.IsCancellationRequested) + this.statusBar.lblTaskStatus.Text = "上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "停止"; + else + this.statusBar.lblTaskStatus.Text = "上传" + (this.chkUploadProd.Checked ? "" : "草稿") + "完成"; this.statusBar.UpdateProgressBar(prodSelect.Length); })); } @@ -1164,6 +1180,13 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms skuEnd.Add(""); foreach (var skuInfo in skcInfo.productSkuList) { + if (cancellationTokenSource.IsCancellationRequested) + { + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + prodParam.productDraftId.ParseToString() + "\"," + + "\"errMsg\":\"上传停止\"}"; + } + //var speck = skuInfo.productSkuSpecList.FirstOrDefault(s => s.parentSpecName == "颜色"); var speck = skuInfo.productSkuSpecList.FirstOrDefault(); if (speck != null) @@ -1319,8 +1342,15 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms prodParam.productSkcReqs.Add(skcItem); } - string sizeError = ""; + if (cancellationTokenSource.IsCancellationRequested) + { + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + prodParam.productDraftId.ParseToString() + "\"," + + "\"errMsg\":\"上传停止\"}"; + } + //上传尺码表(如果有) + string sizeError = ""; if (!string.IsNullOrEmpty(sTemuSizeSpec)) { sTemuSizeSpec = GetHtml.UrlDecode(sTemuSizeSpec); @@ -1350,6 +1380,13 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms } } + if (cancellationTokenSource.IsCancellationRequested) + { + return "{\"success\":false,\"status\":\"未上传\"," + + "\"productDraftId\":\"" + prodParam.productDraftId.ParseToString() + "\"," + + "\"errMsg\":\"上传停止\"}"; + } + if (cell != null) { Invoke(new Action(() => @@ -1360,8 +1397,11 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms html = SaveDraft(shop, prodParam.productDraftId.ToString(), prodParam); if (html.Contains("\"success\":true")) { - if (!chkUploadProd.Checked) + if (!chkUploadProd.Checked /*|| cancellationTokenSource.IsCancellationRequested*/) { + //string sCancel = ""; + //if (cancellationTokenSource.IsCancellationRequested) + // sCancel = "上传停止"; return "{\"success\":true,\"status\":\"草稿箱\"," + "\"productDraftId\":\"" + prodParam.productDraftId.ParseToString() + "\"," + "\"errMsg\":\"" + sizeError + "\"}"; @@ -1737,5 +1777,24 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms SearchDbProdSelect(this.ucSplitPage1.CurrentPage); }); } + + private void btnExport_Click(object sender, EventArgs e) + { + SaveFileDialog dialog = new SaveFileDialog(); + dialog.Title = "Save file as..."; + dialog.Filter = "Excel files (*.csv)|*.csv|All files (*.*)|*.*"; + dialog.RestoreDirectory = true; + + dialog.FileName = "库存上传:" + DateTime.Now.ToString("yyyy-MM-dd HH-mm") + ".csv"; + if (dialog.ShowDialog() != DialogResult.OK) + return; + OutExcel.SaveFile(dialog.FileName, dgvSelectProduct); + } + + private void btnStop_Click(object sender, EventArgs e) + { + if (cancellationTokenSource != null) + cancellationTokenSource.Cancel(); + } } } diff --git a/TEMUKJD/KJDForms/SalesCenterForms/MarketingActivityForm.cs b/TEMUKJD/KJDForms/SalesCenterForms/MarketingActivityForm.cs index 05b0329..f91aaab 100644 --- a/TEMUKJD/KJDForms/SalesCenterForms/MarketingActivityForm.cs +++ b/TEMUKJD/KJDForms/SalesCenterForms/MarketingActivityForm.cs @@ -28,7 +28,7 @@ namespace TemuKJD.KJDForms.SalesCenterForms public List lstShopIdSelect = new List(); public List lstActivityThematicIdSelect = new List(); public List lstDiscount = new List() { 60, 70, 80, 85 }; - public Dictionary> dicNoSaleProd = new Dictionary>(); + public Dictionary> dicNoSaleProd = new Dictionary>(); public MarketingActivityForm() { @@ -768,7 +768,7 @@ namespace TemuKJD.KJDForms.SalesCenterForms shopRow.Cells["colMessage"].Value = "正在查询无销量商品"; })); - this.dicNoSaleProd[shop.ShopId] = new List(); + this.dicNoSaleProd[shop.ShopId] = new List(); int page = 0; int totalPage = 1; while (page < totalPage) @@ -802,7 +802,7 @@ namespace TemuKJD.KJDForms.SalesCenterForms foreach (var item in jArr) { string sItem = item.ToString(); - SubOrderInfo sInfo = JsonHelper.DeserializeJsonToObject(sItem); // 反序列化得到类 + WarehouseProductSubOrderInfo sInfo = JsonHelper.DeserializeJsonToObject(sItem); // 反序列化得到类 if (sInfo != null) { this.dicNoSaleProd[shop.ShopId].Add(sInfo); diff --git a/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs b/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs index 1ca9c05..5cb63fd 100644 --- a/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs +++ b/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs @@ -194,6 +194,23 @@ namespace TemuKJD.KJDForms.ShopForms string sErr = BaseRegex.GetStringJson(ref jsonStr, "errorMsg"); if (!string.IsNullOrWhiteSpace(sErr) && !errMsg.Contains(sErr)) errMsg += sErr + " "; + if (jsonStr.Contains("登录过期,请重新登录")) + { + AdminForms.AdminShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + if (shop.LoginStatus != "登录成功" || shop.LoginStatus2 != "国际版在线") + { + if (!isBack) + { + Invoke(new Action(() => + { + BaseMsgForm.ShowError("店铺掉线,请重新登录"); + })); + } + //将查询到的数组内容清空掉,防止后续商品未获取到仍然匹配并往仓库后台服务端送 + packageLstTmp.Clear(); + break; + } + } continue; } diff --git a/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsDetailForm.Designer.cs b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsDetailForm.Designer.cs new file mode 100644 index 0000000..cbe55f5 --- /dev/null +++ b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsDetailForm.Designer.cs @@ -0,0 +1,505 @@ + +namespace TemuKJD.KJDForms.ShopForms.Statistics +{ + partial class ShopOrderStatisticsDetailForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ShopOrderStatisticsDetailForm)); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.ucGroupBoxEx3 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.btnGetSelect = new DevComponents.DotNetBar.PanelEx(); + this.btnGetNotGet = new DevComponents.DotNetBar.PanelEx(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.pbLoading = new System.Windows.Forms.PictureBox(); + this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colDetail = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopAccount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colOnSaleProductNumber = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSaleVolume = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colTodayProfit = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSevenDaysSaleVolume = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSevenDaysProfit = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colThirtyDaysSaleVolume = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colThirtyDaysProfit = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colHighPriceLimitNumber = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colAboutToSellOutNumber = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colAdvicePrepareSkcNumber = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colYesterdayIncomeAmount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colThisMonthIncomeAmount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colLastMonthIncomeAmount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colAvailableBalance = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMallDepositLimitAmount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colWithdrawCashAmount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.ucGroupBoxEx1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.Panel2.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit(); + this.SuspendLayout(); + // + // splitContainer1 + // + this.splitContainer1.BackColor = System.Drawing.Color.White; + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer1.Location = new System.Drawing.Point(1, 33); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx3); + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); + this.splitContainer1.Panel2.Margin = new System.Windows.Forms.Padding(4); + this.splitContainer1.Size = new System.Drawing.Size(1364, 686); + this.splitContainer1.SplitterDistance = 25; + this.splitContainer1.TabIndex = 35; + this.splitContainer1.TabStop = false; + // + // ucGroupBoxEx3 + // + this.ucGroupBoxEx3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.ucGroupBoxEx3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBoxEx3.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx3.Location = new System.Drawing.Point(1224, 2); + this.ucGroupBoxEx3.Name = "ucGroupBoxEx3"; + this.ucGroupBoxEx3.Size = new System.Drawing.Size(137, 25); + this.ucGroupBoxEx3.TabIndex = 668; + this.ucGroupBoxEx3.TabStop = false; + this.ucGroupBoxEx3.Text = "统计查询"; + this.ucGroupBoxEx3.Visible = false; + // + // ucGroupBoxEx1 + // + this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx1.Controls.Add(this.btnGetSelect); + this.ucGroupBoxEx1.Controls.Add(this.btnGetNotGet); + this.ucGroupBoxEx1.Location = new System.Drawing.Point(2, 2); + this.ucGroupBoxEx1.Name = "ucGroupBoxEx1"; + this.ucGroupBoxEx1.Size = new System.Drawing.Size(1222, 25); + this.ucGroupBoxEx1.TabIndex = 667; + this.ucGroupBoxEx1.TabStop = false; + this.ucGroupBoxEx1.Text = "统计汇总"; + this.ucGroupBoxEx1.Visible = false; + // + // btnGetSelect + // + this.btnGetSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnGetSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnGetSelect.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnGetSelect.DisabledBackColor = System.Drawing.Color.Empty; + this.btnGetSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnGetSelect.Location = new System.Drawing.Point(1136, 10); + this.btnGetSelect.Name = "btnGetSelect"; + this.btnGetSelect.Size = new System.Drawing.Size(80, 23); + this.btnGetSelect.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnGetSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnGetSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnGetSelect.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnGetSelect.Style.GradientAngle = 90; + this.btnGetSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetSelect.TabIndex = 427; + this.btnGetSelect.Text = "查询选中"; + // + // btnGetNotGet + // + this.btnGetNotGet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnGetNotGet.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnGetNotGet.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnGetNotGet.DisabledBackColor = System.Drawing.Color.Empty; + this.btnGetNotGet.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnGetNotGet.Location = new System.Drawing.Point(1050, 10); + this.btnGetNotGet.Name = "btnGetNotGet"; + this.btnGetNotGet.Size = new System.Drawing.Size(80, 23); + this.btnGetNotGet.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetNotGet.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetNotGet.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetNotGet.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnGetNotGet.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnGetNotGet.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnGetNotGet.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnGetNotGet.Style.GradientAngle = 90; + this.btnGetNotGet.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetNotGet.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetNotGet.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetNotGet.TabIndex = 431; + this.btnGetNotGet.Text = "查询未获取"; + // + // splitContainer2 + // + this.splitContainer2.BackColor = System.Drawing.Color.White; + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer2.Location = new System.Drawing.Point(0, 0); + this.splitContainer2.Name = "splitContainer2"; + this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.BackColor = System.Drawing.Color.White; + this.splitContainer2.Panel1.Controls.Add(this.pbLoading); + this.splitContainer2.Panel1.Controls.Add(this.dgvShop); + this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.statusBar); + this.splitContainer2.Size = new System.Drawing.Size(1364, 657); + this.splitContainer2.SplitterDistance = 628; + this.splitContainer2.TabIndex = 0; + // + // pbLoading + // + this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; + this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; + this.pbLoading.Location = new System.Drawing.Point(657, 289); + this.pbLoading.Name = "pbLoading"; + this.pbLoading.Size = new System.Drawing.Size(50, 50); + this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoading.TabIndex = 6; + this.pbLoading.TabStop = false; + this.pbLoading.Visible = false; + // + // dgvShop + // + this.dgvShop.AllowUserToAddRows = false; + this.dgvShop.AllowUserToDeleteRows = false; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvShop.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvShop.BackgroundColor = System.Drawing.Color.White; + this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colSelect, + this.colLoginStatus, + this.colDetail, + this.colShopLoginName, + this.colShopId, + this.colShopAccount, + this.colNotes, + this.colOnSaleProductNumber, + this.colSaleVolume, + this.colTodayProfit, + this.colSevenDaysSaleVolume, + this.colSevenDaysProfit, + this.colThirtyDaysSaleVolume, + this.colThirtyDaysProfit, + this.colHighPriceLimitNumber, + this.colAboutToSellOutNumber, + this.colAdvicePrepareSkcNumber, + this.colYesterdayIncomeAmount, + this.colThisMonthIncomeAmount, + this.colLastMonthIncomeAmount, + this.colAvailableBalance, + this.colMallDepositLimitAmount, + this.colWithdrawCashAmount}); + this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvShop.Location = new System.Drawing.Point(4, 0); + this.dgvShop.Name = "dgvShop"; + this.dgvShop.ReadOnly = true; + this.dgvShop.RowHeadersWidth = 36; + this.dgvShop.RowTemplate.Height = 23; + this.dgvShop.Size = new System.Drawing.Size(1356, 628); + this.dgvShop.TabIndex = 5; + // + // colSelect + // + this.colSelect.FillWeight = 28F; + this.colSelect.HeaderText = "选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // colLoginStatus + // + this.colLoginStatus.FillWeight = 35F; + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // colDetail + // + this.colDetail.FillWeight = 35F; + this.colDetail.HeaderText = "详情"; + this.colDetail.Name = "colDetail"; + this.colDetail.ReadOnly = true; + // + // colShopLoginName + // + this.colShopLoginName.FillWeight = 90F; + this.colShopLoginName.HeaderText = "店铺登录号码"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + // + // colShopAccount + // + this.colShopAccount.HeaderText = "店铺名称"; + this.colShopAccount.Name = "colShopAccount"; + this.colShopAccount.ReadOnly = true; + // + // colNotes + // + this.colNotes.FillWeight = 90F; + this.colNotes.HeaderText = "备注/分组"; + this.colNotes.Name = "colNotes"; + this.colNotes.ReadOnly = true; + // + // colOnSaleProductNumber + // + this.colOnSaleProductNumber.FillWeight = 90F; + this.colOnSaleProductNumber.HeaderText = "在售商品数"; + this.colOnSaleProductNumber.Name = "colOnSaleProductNumber"; + this.colOnSaleProductNumber.ReadOnly = true; + // + // colSaleVolume + // + this.colSaleVolume.FillWeight = 75F; + this.colSaleVolume.HeaderText = "今日销量"; + this.colSaleVolume.Name = "colSaleVolume"; + this.colSaleVolume.ReadOnly = true; + // + // colTodayProfit + // + this.colTodayProfit.FillWeight = 75F; + this.colTodayProfit.HeaderText = "今日利润"; + this.colTodayProfit.Name = "colTodayProfit"; + this.colTodayProfit.ReadOnly = true; + // + // colSevenDaysSaleVolume + // + this.colSevenDaysSaleVolume.FillWeight = 75F; + this.colSevenDaysSaleVolume.HeaderText = "近7日销量"; + this.colSevenDaysSaleVolume.Name = "colSevenDaysSaleVolume"; + this.colSevenDaysSaleVolume.ReadOnly = true; + // + // colSevenDaysProfit + // + this.colSevenDaysProfit.FillWeight = 75F; + this.colSevenDaysProfit.HeaderText = "近7日利润"; + this.colSevenDaysProfit.Name = "colSevenDaysProfit"; + this.colSevenDaysProfit.ReadOnly = true; + // + // colThirtyDaysSaleVolume + // + this.colThirtyDaysSaleVolume.FillWeight = 75F; + this.colThirtyDaysSaleVolume.HeaderText = "近30日销量"; + this.colThirtyDaysSaleVolume.Name = "colThirtyDaysSaleVolume"; + this.colThirtyDaysSaleVolume.ReadOnly = true; + this.colThirtyDaysSaleVolume.Visible = false; + // + // colThirtyDaysProfit + // + this.colThirtyDaysProfit.FillWeight = 75F; + this.colThirtyDaysProfit.HeaderText = "近30日利润"; + this.colThirtyDaysProfit.Name = "colThirtyDaysProfit"; + this.colThirtyDaysProfit.ReadOnly = true; + this.colThirtyDaysProfit.Visible = false; + // + // colHighPriceLimitNumber + // + this.colHighPriceLimitNumber.HeaderText = "高价限流商品数"; + this.colHighPriceLimitNumber.Name = "colHighPriceLimitNumber"; + this.colHighPriceLimitNumber.ReadOnly = true; + // + // colAboutToSellOutNumber + // + this.colAboutToSellOutNumber.FillWeight = 75F; + this.colAboutToSellOutNumber.HeaderText = "即将售罄"; + this.colAboutToSellOutNumber.Name = "colAboutToSellOutNumber"; + this.colAboutToSellOutNumber.ReadOnly = true; + this.colAboutToSellOutNumber.Visible = false; + // + // colAdvicePrepareSkcNumber + // + this.colAdvicePrepareSkcNumber.FillWeight = 75F; + this.colAdvicePrepareSkcNumber.HeaderText = "建议备货"; + this.colAdvicePrepareSkcNumber.Name = "colAdvicePrepareSkcNumber"; + this.colAdvicePrepareSkcNumber.ReadOnly = true; + this.colAdvicePrepareSkcNumber.Visible = false; + // + // colYesterdayIncomeAmount + // + this.colYesterdayIncomeAmount.HeaderText = "昨日到账金额"; + this.colYesterdayIncomeAmount.Name = "colYesterdayIncomeAmount"; + this.colYesterdayIncomeAmount.ReadOnly = true; + // + // colThisMonthIncomeAmount + // + this.colThisMonthIncomeAmount.HeaderText = "本月到账金额"; + this.colThisMonthIncomeAmount.Name = "colThisMonthIncomeAmount"; + this.colThisMonthIncomeAmount.ReadOnly = true; + // + // colLastMonthIncomeAmount + // + this.colLastMonthIncomeAmount.HeaderText = "上月到账金额"; + this.colLastMonthIncomeAmount.Name = "colLastMonthIncomeAmount"; + this.colLastMonthIncomeAmount.ReadOnly = true; + // + // colAvailableBalance + // + this.colAvailableBalance.FillWeight = 80F; + this.colAvailableBalance.HeaderText = "可提现余额"; + this.colAvailableBalance.Name = "colAvailableBalance"; + this.colAvailableBalance.ReadOnly = true; + // + // colMallDepositLimitAmount + // + this.colMallDepositLimitAmount.HeaderText = "账户预留金额"; + this.colMallDepositLimitAmount.Name = "colMallDepositLimitAmount"; + this.colMallDepositLimitAmount.ReadOnly = true; + // + // colWithdrawCashAmount + // + this.colWithdrawCashAmount.FillWeight = 80F; + this.colWithdrawCashAmount.HeaderText = "提现总金额"; + this.colWithdrawCashAmount.Name = "colWithdrawCashAmount"; + this.colWithdrawCashAmount.ReadOnly = true; + // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(0, 0); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(1364, 25); + this.statusBar.TabIndex = 1; + this.statusBar.Visible = false; + // + // ShopOrderStatisticsDetailForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(1366, 720); + this.Controls.Add(this.splitContainer1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "ShopOrderStatisticsDetailForm"; + this.Text = "ShopOrderStatisticsDetailForm"; + this.TitleText = "ShopOrderStatisticsDetailForm"; + this.Load += new System.EventHandler(this.ShopOrderStatisticsDetailForm_Load); + this.Controls.SetChildIndex(this.splitContainer1, 0); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.ucGroupBoxEx1.ResumeLayout(false); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.SplitContainer splitContainer1; + private UserComponent.UcGroupBoxEx ucGroupBoxEx3; + private DevComponents.DotNetBar.PanelEx btnGetNotGet; + private DevComponents.DotNetBar.PanelEx btnGetSelect; + private UserComponent.UcGroupBoxEx ucGroupBoxEx1; + private System.Windows.Forms.SplitContainer splitContainer2; + private System.Windows.Forms.PictureBox pbLoading; + private UserComponent.DataGridViewEx dgvShop; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewLinkColumn colDetail; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopAccount; + private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; + private System.Windows.Forms.DataGridViewTextBoxColumn colOnSaleProductNumber; + private System.Windows.Forms.DataGridViewTextBoxColumn colSaleVolume; + private System.Windows.Forms.DataGridViewTextBoxColumn colTodayProfit; + private System.Windows.Forms.DataGridViewTextBoxColumn colSevenDaysSaleVolume; + private System.Windows.Forms.DataGridViewTextBoxColumn colSevenDaysProfit; + private System.Windows.Forms.DataGridViewTextBoxColumn colThirtyDaysSaleVolume; + private System.Windows.Forms.DataGridViewTextBoxColumn colThirtyDaysProfit; + private System.Windows.Forms.DataGridViewTextBoxColumn colHighPriceLimitNumber; + private System.Windows.Forms.DataGridViewTextBoxColumn colAboutToSellOutNumber; + private System.Windows.Forms.DataGridViewTextBoxColumn colAdvicePrepareSkcNumber; + private System.Windows.Forms.DataGridViewTextBoxColumn colYesterdayIncomeAmount; + private System.Windows.Forms.DataGridViewTextBoxColumn colThisMonthIncomeAmount; + private System.Windows.Forms.DataGridViewTextBoxColumn colLastMonthIncomeAmount; + private System.Windows.Forms.DataGridViewTextBoxColumn colAvailableBalance; + private System.Windows.Forms.DataGridViewTextBoxColumn colMallDepositLimitAmount; + private System.Windows.Forms.DataGridViewTextBoxColumn colWithdrawCashAmount; + private UserControls.StatusBarUserControl statusBar; + } +} \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsDetailForm.cs b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsDetailForm.cs new file mode 100644 index 0000000..b35ac96 --- /dev/null +++ b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsDetailForm.cs @@ -0,0 +1,31 @@ +using AllBase.Model.Result; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using TemuKJD.KJDForms.BaseForms; + +namespace TemuKJD.KJDForms.ShopForms.Statistics +{ + public partial class ShopOrderStatisticsDetailForm : LRBaseForm + { + ShopLoginInfo shop = null; + public ShopOrderStatisticsDetailForm(ShopLoginInfo shopInfo) + { + InitializeComponent(); + + if (shopInfo != null) + shop = shopInfo; + } + + private void ShopOrderStatisticsDetailForm_Load(object sender, EventArgs e) + { + this.dgvShop.Focus(); + } + } +} diff --git a/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsDetailForm.resx b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsDetailForm.resx new file mode 100644 index 0000000..d40e6c9 --- /dev/null +++ b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsDetailForm.resx @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + + AAABAAEAgIAQAAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMQ + AAAAAAAAAAAAAAAAAAAAAAAAABM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZkzEAAAAAAAAAAAAAAAAAAAAAADOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZMwAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZkzAAAAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmTEAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAA5mZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAADmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAGZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAJmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZAAAAAA + OZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmT + AAAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmRAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZkwAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZkwAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZMAAJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZEAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwCZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkRmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZOZmZOZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmP+JmZmZmZmZj/////// + ///4OZmZj/eZmZmZmZmZmPg5OZmZmZuI//iIuZmZmZmZmZmZmZM5mZmZmZmZmZmZmb//+JmZmZmZmP// + //////////OZmP//uZmZmZmZmY//+ZmZOZf///////h5k5mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ + mZ/////////////4mZ///4mZmZmZmZP///uZmZmP////////+JmZmZmZmZmZkzmZmZmZmZmZmZmZj//4 + mZmZmZmf////////////+Jmf//+JmZmZmZmb///4mZmY//////////+JmZmZmZmZmZM5mZmZmZmZmZmZ + mY//+JmZmZmZn/////////////mZmP//iZmZmZmZk///+5mZj/////iP////+JmZmZmZmZmTOZmZmZmZ + mZmZmZmP//iZmZmZmZ////iIiIiIiIiZOZj//4mZmZmZmZP///uZmf////eZmT////+ZmZmZmZmZkzmZ + mZmZmZmZmZmZj//4mZmZmZmf//+JmZmZmZmZk5mY//+JmZmZmZmT///7mZj///+ZmZmZj///uZmZmZmZ + mZM5mZmZmZmZmZmZmY//+JmZmZmZn///iZmZmZmZmZmZmP//iZmZN5k5k///+5mY///zk5mZOT///4mZ + mZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///4mZmZmZmZmZmZj//4mZmP/5k5P///uZmP//+ZmZmZmY + //+JmZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf///4iIiIiIg5mZmY//+JOb//+JmT///7mZj//4mZ + mZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////85mZmP//iZn///+Jk///+5mf + //+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ////////////+ZmZj//4mY////85v/ + //uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf////////////mZmY//+Jv/// + //+Z///7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////+JmZmP// + if//////if//+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///////////4mZ + mZj//4j///////j///uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf//+JMzMz + MzOZOZmY//////+D///////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn/// + iZmZmZmZmZmZmP//////mY//////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ + mZ///4mZmZmZmZmZmZj/////+5mf//////uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZMzM5j//4 + kzMzmZmf//+JMzMzMzM5mZmY/////4mTk//////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmP// + /////////4mZn////////////4mZmP////+ZmZmP////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZ + mY/////////////4mZ/////////////7mZj////7mZmZn/////uZmP//iZmZmZmY///5mZmZmZmZkzmZ + mZmZmZn//////////////5mf////////////+Jmf////iZmZk5P////4mZ///4mZmZmZmP//+ZmZmZmZ + mZM5mZmZmZmZj/////////////iZn/////////////iZmP///5mZmZmZj///+5mY//+JmZmZmZj//4mZ + mZmZmZmTOZmZmZmZmZ/////////////zmZP///////////+JmZP///uTmZmZmZj//4mZm///mZmZmZmZ + //85mZmZmZmZkzmZmZmZmZOZiIiIiIiIiIiImTmZOIiIiIiIiIiImTmZOIi5mZmZmZOZiIuZmZk4iZOZ + mZmZOZiDmZmZmZmZmZM5mZmZmZmZOZmZmZmZmZmZmZOZmZmZmZmZmZmZmZOZmZmZmZmZmZmZOZmZmZmZ + mZk5mZmZmZOZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmTuIiIiIs5mZmZmZmZ + mTu4i7mZmZmZmZmZmTMzmZOZmZkzOZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmTmbj///////+HmT + mZmZk4j/////iJmZmZk4iP////iZOZmZj/mZOZOIiIiIiIiIiDmZmZmZmZmZkzmZmZmZmZmZj/////// + ///4mZk5k4///4iI///4OZOY////////iZOZmb/5mZmP///////////4mZmZmZmZmZM5mZmZmZmZn/// + //////////mZmY///5mZmZP///iZmP////////+ZOZk/iZmY/////////////4mZmZmZmZmTOZmZmZmZ + mZ/////////////5mZ////+JmZmY////iZl/////////+ZmZP4mZP//////////////7mZmZmZmZkzmZ + mZmZmZmb////////////uZP/j///+HM3j/////+ZmYj///////iZmT+JmY//////////////+JmZmZmZ + mZM5mZmZmZmZmY//////////+JmT+Jv///////////iPmTmZOI/4mP//uTk/iZmP//////////////iZ + mZmZmZmTOZmZmZmZmZmf//////////mZmZmZ///////////5mZmZmZmTOZk///mZP4mZj/////////// + ///4mZmZmZmZkzmZmZmZmZmTmP////////+JOZmZOY//////////iZmZmZmZmZk5mf/4mT+JmY////// + ////////+JmZmZmZmZM5mZmZmZmZmZn/////////mZmZmZk//////////zmZmZmZmZmZmTmP/zm/iZmP + //////////////iZmZmZmZmTOZmZmZmZmZk5v///////85OZmZkzmP////////iZmZmZmZmZmZmZn//4 + /4mZj/////hzN4/////4mZmZmZmZkzmZmZmZmZmZmZj//////4mZmTmY/4j////////4mZmZmZmZmZmZ + mZj///+JmY////+JmZmY////+JmZmZmZmZM5mZmZmZmZmZmZ//////+ZmZmZj////////////4mZmZmZ + mZmZmZmb////+ZmP///4mZu5mY////iZmZmZmZmTOZmZmZmZmZmZOb/////4k5mZmP/////////////7 + mZmZmZmZmZmZk/////OZv///+ZmP+Jmf///4mZmZmZmZkzmZmZmZmZmZmZmf////+ZmZmZj////////4 + eI//+JmZmZmZmZmZmZP////4mb///4mY//+JmP//+5mZmZmZmZM5mZmZmZmZmZk5v/////uTmZmb//// + ///4mZmX//iZmZmZmZmZmZmZ////+Jmf//95n///+Zj///OZmZmZmZmTOZmZmZmZmZmZmf//////mZmZ + mY//////+ZOZmZiJmZmZmZmZmZmZmY////+ZmP//+I////iP//+JmZmZmZmZkzmZmZmZmZmZmZj///// + /4mZmZmf/////5k5mZOZmTmZmZmZmZmZmZmP///4mZP/////////////OZmZmZmZmZM5mZmZmZmZmZk/ + ///////zmZmZm/////iZmZmZmZmZmZmZmZmZmZmZj///85mZj///////////+JmZmZmZmZmTOZmZmZmZ + mZmZv///////+5mZmZmP///5mZmZmZmZmZmZmZmZmZmZmZ///3mZmZj//////////4mZmZmZmZmZkzmZ + mZmZmZmZmb///4j///uZmZmZmP//mTmZmZmZmZmZmZmZmZmZmZmY/4OZmZmZeP///////4eZmZmZmZmZ + mZM5mZmZmZmZmZmY/4OZOP+JmZmZmZmIiZOZmZmZmZmZmZmZmZmZmZmZmYiZmZmZmZk4iIiIiIOZmZmZ + mZmZmZmTOZmZmZmZmZmZmTOZmZkzmZmZmZmZmZk5mZmZmZmZmZmZmZmZmZmZmZmZk5mZmZmZmZmZmZmZ + mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmTGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZkwmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZkwA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZMACZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAABmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAJmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmRAAAAA5mZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAACZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAAAAAGZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAOZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwAAAAAA + AAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAA + AAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZkwAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmTAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZEAAAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAAAAAATmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAAAAAAzmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTMAAAAAAAAAAAAAAAAAAAAAAAAAAAEzMzMzMzMzMzMzMzMzMz + MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxAAAAAAAAAAAAAAD////////////////////////4AAAA + AAAAAAAAAB//////wAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////w + AAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAA + Af//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAA + AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAA + AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA + AAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA+AA + AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA + AA/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA + AAAAAAB//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAA + AAAAAAAAAAAH///4AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAD///// + wAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAH////////////////////////w== + + + \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.Designer.cs b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.Designer.cs index aa721d9..58732ca 100644 --- a/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.Designer.cs +++ b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.Designer.cs @@ -57,15 +57,21 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colDetail = new System.Windows.Forms.DataGridViewLinkColumn(); this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colShopAccount = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colOnSaleProductNumber = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSaleVolume = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colTodayProfit = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSevenDaysSaleVolume = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSevenDaysProfit = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colThirtyDaysSaleVolume = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colThirtyDaysProfit = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colHighPriceLimitNumber = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colAboutToSellOutNumber = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colAdvicePrepareSkcNumber = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -75,7 +81,6 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics this.colAvailableBalance = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colMallDepositLimitAmount = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colWithdrawCashAmount = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -361,7 +366,7 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(104, 17); this.label4.TabIndex = 9; - this.label4.Text = "当月到账金额总和"; + this.label4.Text = "本月到账金额总和"; // // label3 // @@ -372,7 +377,7 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(104, 17); this.label3.TabIndex = 8; - this.label3.Text = "当日到账金额总和"; + this.label3.Text = "昨日到账金额总和"; // // label2 // @@ -463,13 +468,18 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colSelect, this.colLoginStatus, + this.colDetail, this.colShopLoginName, this.colShopId, this.colShopAccount, this.colNotes, this.colOnSaleProductNumber, this.colSaleVolume, + this.colTodayProfit, this.colSevenDaysSaleVolume, + this.colSevenDaysProfit, + this.colThirtyDaysSaleVolume, + this.colThirtyDaysProfit, this.colHighPriceLimitNumber, this.colAboutToSellOutNumber, this.colAdvicePrepareSkcNumber, @@ -489,6 +499,17 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics this.dgvShop.TabIndex = 5; this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(0, 0); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(1350, 26); + this.statusBar.TabIndex = 1; + // // colSelect // this.colSelect.FillWeight = 28F; @@ -500,15 +521,23 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics // // colLoginStatus // - this.colLoginStatus.FillWeight = 50F; + this.colLoginStatus.FillWeight = 35F; this.colLoginStatus.HeaderText = "状态"; this.colLoginStatus.Name = "colLoginStatus"; this.colLoginStatus.ReadOnly = true; this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; // + // colDetail + // + this.colDetail.FillWeight = 35F; + this.colDetail.HeaderText = "详情"; + this.colDetail.Name = "colDetail"; + this.colDetail.ReadOnly = true; + // // colShopLoginName // + this.colShopLoginName.FillWeight = 90F; this.colShopLoginName.HeaderText = "店铺登录号码"; this.colShopLoginName.Name = "colShopLoginName"; this.colShopLoginName.ReadOnly = true; @@ -527,28 +556,62 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics // // colNotes // + this.colNotes.FillWeight = 90F; this.colNotes.HeaderText = "备注/分组"; this.colNotes.Name = "colNotes"; this.colNotes.ReadOnly = true; // // colOnSaleProductNumber // + this.colOnSaleProductNumber.FillWeight = 90F; this.colOnSaleProductNumber.HeaderText = "在售商品数"; this.colOnSaleProductNumber.Name = "colOnSaleProductNumber"; this.colOnSaleProductNumber.ReadOnly = true; // // colSaleVolume // + this.colSaleVolume.FillWeight = 75F; this.colSaleVolume.HeaderText = "今日销量"; this.colSaleVolume.Name = "colSaleVolume"; this.colSaleVolume.ReadOnly = true; // + // colTodayProfit + // + this.colTodayProfit.FillWeight = 75F; + this.colTodayProfit.HeaderText = "今日利润"; + this.colTodayProfit.Name = "colTodayProfit"; + this.colTodayProfit.ReadOnly = true; + // // colSevenDaysSaleVolume // + this.colSevenDaysSaleVolume.FillWeight = 75F; this.colSevenDaysSaleVolume.HeaderText = "近7日销量"; this.colSevenDaysSaleVolume.Name = "colSevenDaysSaleVolume"; this.colSevenDaysSaleVolume.ReadOnly = true; // + // colSevenDaysProfit + // + this.colSevenDaysProfit.FillWeight = 75F; + this.colSevenDaysProfit.HeaderText = "近7日利润"; + this.colSevenDaysProfit.Name = "colSevenDaysProfit"; + this.colSevenDaysProfit.ReadOnly = true; + // + // colThirtyDaysSaleVolume + // + this.colThirtyDaysSaleVolume.FillWeight = 75F; + this.colThirtyDaysSaleVolume.HeaderText = "近30日销量"; + this.colThirtyDaysSaleVolume.Name = "colThirtyDaysSaleVolume"; + this.colThirtyDaysSaleVolume.ReadOnly = true; + this.colThirtyDaysSaleVolume.Visible = false; + // + // colThirtyDaysProfit + // + this.colThirtyDaysProfit.FillWeight = 75F; + this.colThirtyDaysProfit.HeaderText = "近30日利润"; + this.colThirtyDaysProfit.Name = "colThirtyDaysProfit"; + this.colThirtyDaysProfit.ReadOnly = true; + this.colThirtyDaysProfit.Visible = false; + // // colHighPriceLimitNumber // this.colHighPriceLimitNumber.HeaderText = "高价限流商品数"; @@ -557,15 +620,19 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics // // colAboutToSellOutNumber // + this.colAboutToSellOutNumber.FillWeight = 75F; this.colAboutToSellOutNumber.HeaderText = "即将售罄"; this.colAboutToSellOutNumber.Name = "colAboutToSellOutNumber"; this.colAboutToSellOutNumber.ReadOnly = true; + this.colAboutToSellOutNumber.Visible = false; // // colAdvicePrepareSkcNumber // + this.colAdvicePrepareSkcNumber.FillWeight = 75F; this.colAdvicePrepareSkcNumber.HeaderText = "建议备货"; this.colAdvicePrepareSkcNumber.Name = "colAdvicePrepareSkcNumber"; this.colAdvicePrepareSkcNumber.ReadOnly = true; + this.colAdvicePrepareSkcNumber.Visible = false; // // colYesterdayIncomeAmount // @@ -587,6 +654,7 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics // // colAvailableBalance // + this.colAvailableBalance.FillWeight = 80F; this.colAvailableBalance.HeaderText = "可提现余额"; this.colAvailableBalance.Name = "colAvailableBalance"; this.colAvailableBalance.ReadOnly = true; @@ -599,21 +667,11 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics // // colWithdrawCashAmount // + this.colWithdrawCashAmount.FillWeight = 80F; this.colWithdrawCashAmount.HeaderText = "提现总金额"; this.colWithdrawCashAmount.Name = "colWithdrawCashAmount"; this.colWithdrawCashAmount.ReadOnly = true; // - // statusBar - // - this.statusBar.BackColor = System.Drawing.Color.White; - this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; - this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.statusBar.Location = new System.Drawing.Point(0, 0); - this.statusBar.Margin = new System.Windows.Forms.Padding(0); - this.statusBar.Name = "statusBar"; - this.statusBar.Size = new System.Drawing.Size(1350, 26); - this.statusBar.TabIndex = 1; - // // ShopOrderStatisticsForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -672,13 +730,18 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics private System.Windows.Forms.Label lblSevenDaysSaleVolume; private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewLinkColumn colDetail; private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; private System.Windows.Forms.DataGridViewTextBoxColumn colShopAccount; private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; private System.Windows.Forms.DataGridViewTextBoxColumn colOnSaleProductNumber; private System.Windows.Forms.DataGridViewTextBoxColumn colSaleVolume; + private System.Windows.Forms.DataGridViewTextBoxColumn colTodayProfit; private System.Windows.Forms.DataGridViewTextBoxColumn colSevenDaysSaleVolume; + private System.Windows.Forms.DataGridViewTextBoxColumn colSevenDaysProfit; + private System.Windows.Forms.DataGridViewTextBoxColumn colThirtyDaysSaleVolume; + private System.Windows.Forms.DataGridViewTextBoxColumn colThirtyDaysProfit; private System.Windows.Forms.DataGridViewTextBoxColumn colHighPriceLimitNumber; private System.Windows.Forms.DataGridViewTextBoxColumn colAboutToSellOutNumber; private System.Windows.Forms.DataGridViewTextBoxColumn colAdvicePrepareSkcNumber; diff --git a/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.cs b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.cs index 85bba27..d0380a7 100644 --- a/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.cs +++ b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.cs @@ -10,6 +10,7 @@ using System.Data; using System.Drawing; using System.Linq; using System.Text; +using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using TemuKJD.Extension; @@ -20,6 +21,7 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics public partial class ShopOrderStatisticsForm : Form { public List lstShopStatisticsInfo = new List(); + public List lstSubOrderInfo = new List(); public bool IsOperate = false; public bool isFirstLoad = false; @@ -146,13 +148,18 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics int rowId = this.dgvShop.Rows.Add( false, canUse ? "在线" : "掉线", + "详情", shopEntity.LoginName, shopEntity.ShopId, shopEntity.ShopAccount, shopEntity.Notes, statistics.onSaleProductNumber == null ? "-" : statistics.onSaleProductNumber.ToString(), //在售商品数 statistics.saleVolume == null ? "-" : statistics.saleVolume.ToString(), //今日销量 + statistics.todayProfit == null ? "-" : statistics.todayProfit.ToString(), //今日日利润 statistics.sevenDaysSaleVolume == null ? "-" : statistics.sevenDaysSaleVolume.ToString(), //7日销量 + statistics.sevenDaysProfit == null ? "-" : statistics.sevenDaysProfit.ToString(), //7日利润 + statistics.thirtyDaysSaleVolume == null ? "-" : statistics.thirtyDaysSaleVolume.ToString(), //30日销量 + statistics.thirtyDaysProfit == null ? "-" : statistics.thirtyDaysProfit.ToString(), //30日利润 statistics.highPriceLimitNumber == null ? "-" : statistics.highPriceLimitNumber.ToString(), //高价限流商品数 statistics.aboutToSellOutNumber == null ? "-" : statistics.aboutToSellOutNumber.ToString(), //即将售罄 statistics.advicePrepareSkcNumber == null ? "-" : statistics.advicePrepareSkcNumber.ToString(), //建议备货 @@ -184,7 +191,11 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics row.Cells["colNotes"].Value = shopEntity.Notes; row.Cells["colOnSaleProductNumber"].Value = statistics.onSaleProductNumber == null ? "-" : statistics.onSaleProductNumber.ToString(); //在售商品数 row.Cells["colSaleVolume"].Value = statistics.saleVolume == null ? "-" : statistics.saleVolume.ToString(); //今日销量 + row.Cells["colTodayProfit"].Value = statistics.todayProfit == null ? "-" : statistics.todayProfit.ToString(); //今日利润 row.Cells["colSevenDaysSaleVolume"].Value = statistics.sevenDaysSaleVolume == null ? "-" : statistics.sevenDaysSaleVolume.ToString(); //7日销量 + row.Cells["colSevenDaysProfit"].Value = statistics.sevenDaysProfit == null ? "-" : statistics.sevenDaysProfit.ToString(); //7日利润 + row.Cells["colThirtyDaysSaleVolume"].Value = statistics.thirtyDaysSaleVolume == null ? "-" : statistics.thirtyDaysSaleVolume.ToString(); //30日销量 + row.Cells["colThirtyDaysProfit"].Value = statistics.thirtyDaysProfit == null ? "-" : statistics.thirtyDaysProfit.ToString(); //30日利润 row.Cells["colHighPriceLimitNumber"].Value = statistics.highPriceLimitNumber == null ? "-" : statistics.highPriceLimitNumber.ToString(); //高价限流商品数 row.Cells["colAboutToSellOutNumber"].Value = statistics.aboutToSellOutNumber == null ? "-" : statistics.aboutToSellOutNumber.ToString(); //即将售罄 row.Cells["colAdvicePrepareSkcNumber"].Value = statistics.advicePrepareSkcNumber == null ? "-" : statistics.advicePrepareSkcNumber.ToString(); //建议备货 @@ -398,6 +409,158 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics return; } } + if (statistics.is_search_5 != true) + { + var rst = GetOrderInfoList(shop.ShopId); + if (string.IsNullOrEmpty(rst)) + { + statistics.is_search_5 = true; + + var orderInfoLstTmp = lstSubOrderInfo.Where(o => o.supplierId.ParseToString() == shop.ShopId); + statistics.todayProfit = 0; + statistics.sevenDaysProfit = 0; + statistics.thirtyDaysProfit = 0; + int num = 0; + int num7 = 0; + int num30 = 0; + foreach (var prodOrder in orderInfoLstTmp) + { + foreach (var sku in prodOrder.skuQuantityDetailList) + { + num += sku.todaySaleVolume.ParseToInt(); + num7 += sku.lastSevenDaysSaleVolume.ParseToInt(); + num30 += sku.lastThirtyDaysSaleVolume.ParseToInt(); + statistics.todayProfit += 0.01m * sku.todaySaleVolume.ParseToInt() * (sku.supplierPrice.ParseToInt() - sku.purchasePrice); + statistics.sevenDaysProfit += 0.01m * sku.lastSevenDaysSaleVolume.ParseToInt() * (sku.supplierPrice.ParseToInt() - sku.purchasePrice); + statistics.thirtyDaysProfit += 0.01m * sku.lastThirtyDaysSaleVolume.ParseToInt() * (sku.supplierPrice.ParseToInt() - sku.purchasePrice); + } + } + } + } + } + + private string GetOrderInfoList(string lstShopId) + { + var lstShopIdTemp = new List(); + lstShopIdTemp.Add(lstShopId); + + foreach (var shopId in lstShopIdTemp) + { + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); + if (shop == null) + continue; + + //Invoke(new Action(() => + //{ + // var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopId"].Value.ToString() == shop.ShopId); + // foreach (var row in rows) + // { + // row.Cells["colMessage"].Value = "正在查询"; + // } + //})); + + int page = 1; + int pageSize = 40; + int totalPage = 1; + while (page <= totalPage) + { + Thread.Sleep(100 + Randomx.GetId(200)); + string html = GetWarehouseList2(shop, page, pageSize); + + if (!html.Contains("\"success\":true")) + { + string errStr = BaseRegex.GetStringJson(ref html, "errorMsg"); + if (string.IsNullOrEmpty(errStr)) + errStr = errStr = BaseRegex.GetStringJson(ref html, "error_msg"); + if (string.IsNullOrEmpty(errStr)) + errStr = html; + if (errStr.Contains("Invalid Login State") || errStr.Contains("指定的值含有无效的控制字符")) + { + ShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + } + System.Threading.Thread.Sleep(Randomx.GetId(100, 200)); + return errStr; + } + + + var jArr = new JArray(); + try + { + var jObj = JObject.Parse(html); + jArr = jObj["result"]["subOrderList"] as JArray; + if (jArr == null) + jArr = new JArray(); + } + catch (Exception ex) + { + return ex.Message; + } + + List subOrderInfoLstTmp = new List(); + foreach (var item in jArr) + { + string sItem = item.ToString(); + WarehouseProductSubOrderInfo sInfo = JsonHelper.DeserializeJsonToObject(sItem); // 反序列化得到类 + if (sInfo != null) + { + subOrderInfoLstTmp.Add(sInfo); + } + } + //获取品质信息------------------------------------------------------------------------ + List qualityInfoLst = new List(); + string productIds = string.Join(",", subOrderInfoLstTmp.Select(o => o.productId)); + string qualityErr = ""; + try + { + for (int j = 1; j <= 4; j++) + { + var qualityRst1 = this.GetQualityInfo2(shop, productIds, j); + if (qualityRst1.Contains("\"success\":true")) + { + var jObj = JObject.Parse(qualityRst1); + string jStr = JsonHelper.SerializeObject(jObj["result"]["pageItems"]); + qualityInfoLst.AddRange(JsonHelper.DeserializeJsonToList(jStr)); + } + else + { + qualityErr = BaseRegex.GetStringJson(ref html, "errorMsg"); + if (string.IsNullOrEmpty(qualityErr)) + qualityErr = qualityErr = BaseRegex.GetStringJson(ref html, "error_msg"); + if (string.IsNullOrEmpty(qualityErr)) + qualityErr = qualityRst1; + if (qualityErr.Contains("Invalid Login State") || qualityErr.Contains("指定的值含有无效的控制字符")) + { + ShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + } + System.Threading.Thread.Sleep(Randomx.GetId(100, 200)); + return qualityErr; + + } + Thread.Sleep(Randomx.GetId(50, 150)); + } + } + catch (Exception ex) { qualityErr += "\r\n" + ex.Message; }; + if (qualityErr != "") + { + //BaseMsgForm.ShowError("获取商品品质信息失败!" + qualityErr); + return qualityErr; + } + foreach (var qualityInfo in qualityInfoLst) + { + var order = subOrderInfoLstTmp.FirstOrDefault(o => o.productId == qualityInfo.productId); + if (order != null) + order.goodsAfsScore = qualityInfo.goodsAfsScore; + } + //--------------------------------------------------------------------------------------- + lstSubOrderInfo.AddRange(subOrderInfoLstTmp); + + int total = BaseRegex.GetStringJson(ref html, "total").ParseToInt(); + totalPage = Math.Ceiling(1.0 * total / pageSize).ParseToInt(); + page++; + } + } + + return ""; } private string GetMainStatistics(ShopLoginInfo shop) @@ -454,6 +617,30 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics return KJDHttpResponse.PostResponse(shop, url, body, refere); } + private string GetWarehouseList2(ShopLoginInfo shop, int page = 1, int pageSize=40) + { + page = Math.Max(page, 1); + string url = "https://agentseller.temu.com/mms/venom/api/supplier/sales/management/listWarehouse"; + string body = @"{""pageNo"":" + page + @",""pageSize"":" + pageSize + @",""isLack"":0,""selectStatusList"":[12],""priceAdjustRecentDays"":7}"; + string refere = "https://agentseller.temu.com/stock/fully-mgt/sale-manage/main"; + + return KJDHttpResponse.PostResponse2(shop, url, body, refere); + } + + /// + /// qualityScoreEnum = 1 小于60分商品 + /// qualityScoreEnum = 2 60分到70分商品 + /// qualityScoreEnum = 3 70分到90分商品 + /// qualityScoreEnum = 4 90分以上 + /// + private string GetQualityInfo2(ShopLoginInfo shop, string productIds, int qualityScoreEnum = 4) + { + string url = "https://agentseller.temu.com/bg-luna-agent-seller/goods/quality/supplyChain/qualityMetrics/pageQuery"; + string body = @"{""page"":1,""pageSize"":40,""qualityScoreEnum"":" + qualityScoreEnum + @",""productIds"":[" + productIds + "]}"; + string refere = "https://agentseller.temu.com/main/quality/dashboard"; + return KJDHttpResponse.PostResponse2(shop, url, body, refere); + } + private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex < 0 || e.RowIndex < 0) @@ -467,6 +654,14 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics { case "检测": break; + case "详情": + IsOperate = true; + { + ShopOrderStatisticsDetailForm detailForm = new ShopOrderStatisticsDetailForm(shop); + detailForm.ShowDialog(); + IsOperate = false; + } + break; case "进入店铺": IsOperate = true; { @@ -526,7 +721,8 @@ namespace TemuKJD.KJDForms.ShopForms.Statistics { ShopOrderStatisticsInfo statistics = lstShopStatisticsInfo.FirstOrDefault(s => s.shop_id.ToString() == shop.ShopId); if (statistics != null) - statistics.is_search_1 = statistics.is_search_2 = statistics.is_search_3 = statistics.is_search_4 = false; + statistics.is_search_1 = statistics.is_search_2 = statistics.is_search_3 = statistics.is_search_4 = statistics.is_search_5 = false; + this.lstSubOrderInfo.RemoveAll(o => o.supplierId.ParseToString() == shop.ShopId); } this.pbLoading.Visible = true; diff --git a/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.resx b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.resx index aadbc76..fdcb625 100644 --- a/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.resx +++ b/TEMUKJD/KJDForms/ShopForms/Statistics/ShopOrderStatisticsForm.resx @@ -123,6 +123,9 @@ True + + True + True @@ -141,9 +144,21 @@ True + + True + True + + True + + + True + + + True + True diff --git a/TEMUKJD/UserControls/UcSplitPage.Designer.cs b/TEMUKJD/UserControls/UcSplitPage.Designer.cs index a4fbea9..d8f3191 100644 --- a/TEMUKJD/UserControls/UcSplitPage.Designer.cs +++ b/TEMUKJD/UserControls/UcSplitPage.Designer.cs @@ -39,6 +39,8 @@ namespace TemuKJD.UserControls this.txtJumpPage = new DevComponents.DotNetBar.Controls.TextBoxX(); this.lblJump = new System.Windows.Forms.Label(); this.lblTotal = new System.Windows.Forms.Label(); + this.lblPageSize = new System.Windows.Forms.Label(); + this.cmbPageSize = new System.Windows.Forms.ComboBox(); this.flowLayoutPanel2.SuspendLayout(); this.SuspendLayout(); // @@ -124,6 +126,8 @@ namespace TemuKJD.UserControls this.flowLayoutPanel2.Controls.Add(this.lblPage); this.flowLayoutPanel2.Controls.Add(this.btnPrev); this.flowLayoutPanel2.Controls.Add(this.lblTotal); + this.flowLayoutPanel2.Controls.Add(this.lblPageSize); + this.flowLayoutPanel2.Controls.Add(this.cmbPageSize); this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; this.flowLayoutPanel2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.flowLayoutPanel2.Location = new System.Drawing.Point(0, 0); @@ -220,6 +224,40 @@ namespace TemuKJD.UserControls this.lblTotal.Text = "共1页"; this.lblTotal.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // + // lblPageSize + // + this.lblPageSize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.lblPageSize.AutoSize = true; + this.lblPageSize.Location = new System.Drawing.Point(177, 0); + this.lblPageSize.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.lblPageSize.Name = "lblPageSize"; + this.lblPageSize.Size = new System.Drawing.Size(37, 20); + this.lblPageSize.TabIndex = 453; + this.lblPageSize.Text = "条/页"; + this.lblPageSize.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lblPageSize.Visible = false; + // + // cmbPageSize + // + this.cmbPageSize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); + this.cmbPageSize.Font = new System.Drawing.Font("微软雅黑", 7F); + this.cmbPageSize.FormattingEnabled = true; + this.cmbPageSize.Items.AddRange(new object[] { + "50", + "100", + "200", + "500", + "1000", + "5000"}); + this.cmbPageSize.Location = new System.Drawing.Point(132, 0); + this.cmbPageSize.Margin = new System.Windows.Forms.Padding(0); + this.cmbPageSize.Name = "cmbPageSize"; + this.cmbPageSize.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.cmbPageSize.Size = new System.Drawing.Size(45, 22); + this.cmbPageSize.TabIndex = 452; + this.cmbPageSize.Text = "50"; + this.cmbPageSize.Visible = false; + // // UcSplitPage // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -246,5 +284,7 @@ namespace TemuKJD.UserControls private System.Windows.Forms.Label label1; private DevComponents.DotNetBar.Controls.TextBoxX txtJumpPage; private System.Windows.Forms.Label lblTotal; + private System.Windows.Forms.Label lblPageSize; + private System.Windows.Forms.ComboBox cmbPageSize; } } diff --git a/TEMUKJD/UserControls/UcSplitPage.cs b/TEMUKJD/UserControls/UcSplitPage.cs index a80b308..2b10bda 100644 --- a/TEMUKJD/UserControls/UcSplitPage.cs +++ b/TEMUKJD/UserControls/UcSplitPage.cs @@ -13,6 +13,26 @@ namespace TemuKJD.UserControls { public partial class UcSplitPage : UserControl { + /// + /// 是否显示每页条数(启用每页条数功能) + /// + [Description("显示每页条数"), Category("UserProperty")] + public bool IsShowPageSize + { + get + { + return this.cmbPageSize.Visible; + } + set + { + if (cmbPageSize.Visible != value) + { + this.lblPageSize.Visible = this.cmbPageSize.Visible = value; + this.Invalidate(); + } + } + } + int totalPage = 1; public int TotalPage { @@ -58,6 +78,46 @@ namespace TemuKJD.UserControls } } + [Description("每页条数"), Category("UserProperty")] + public int PageSize + { + get + { + int pageSize = 50; + if (InvokeRequired) + { + Invoke(new Action(() => + { + pageSize = Math.Max(this.cmbPageSize.Text.ParseToInt(), 50); + })); + } + else + pageSize = Math.Max(this.cmbPageSize.Text.ParseToInt(), 50); + return pageSize; + } + set + { + if (InvokeRequired) + { + Invoke(new Action(() => + { + if (this.cmbPageSize.Text.ParseToInt() != value) + this.cmbPageSize.Text = value.ParseToString(); + else + this.cmbPageSize.Text = value.ParseToString(); + })); + } + else + { + if (this.cmbPageSize.Text.ParseToInt() != value) + this.cmbPageSize.Text = value.ParseToString(); + else + this.cmbPageSize.Text = value.ParseToString(); + } + //OnPageChange(this); + } + } + public event Action PageChange; protected virtual void OnPageChange(object sender) {