订单金额统计利润计算功能

This commit is contained in:
wule committed 2025-09-02 19:03:37 +08:00
1 parent eca6a8a9e7
commit cc539ce604
27 files changed
+2090 -214

No files matched your search

+2 -2
View File
@@ -27,8 +27,8 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 565;
//public static int VersionCount = 565;
public static int VersionCount = 566;
//public static int VersionCount = 566;
/// <summary>
/// 版本号
+18
View File
@@ -278,6 +278,10 @@ namespace AllBase.Model.Result
/// 店铺保证金信息
/// </summary>
public bool is_search_4 { get; set; } = false;
/// <summary>
/// 店铺利润详情计算
/// </summary>
public bool is_search_5 { get; set; } = false;
public string err_msg { get; set; }
#endregion
@@ -361,6 +365,20 @@ namespace AllBase.Model.Result
/// 提现总金额
/// </summary>
public decimal? withdrawCashAmount { get; set; } = 0;
/// <summary>
/// 今日利润(通过KJD库获取进货价计算获得)
/// </summary>
public decimal? todayProfit { get; set; } = null;
/// <summary>
/// 近7日利润(通过KJD库获取进货价计算获得)
/// </summary>
public decimal? sevenDaysProfit
{ get; set; } = null;
/// <summary>
/// 近30日利润(通过KJD库获取进货价计算获得)
/// </summary>
public decimal? thirtyDaysProfit { get; set; } = null;
}
+13 -1
View File
@@ -57,7 +57,7 @@ namespace AllBase.Model.Result
/// <summary>
/// 待备货商品信息
/// </summary>
public class SubOrderInfo
public class WarehouseProductSubOrderInfo
{
/// <summary>
/// 卖家店铺id
@@ -106,7 +106,14 @@ namespace AllBase.Model.Result
/// </summary>
public bool isStockUp { get; set; } = false;
/// <summary>
/// 商品评价分数
/// </summary>
public decimal? goodsAfsScore { get; set; } = null;
/// <summary>
/// 获取评价分错误
/// </summary>
public string getAfsScoreError { get; set; } = "";
}
/// <summary>
@@ -173,6 +180,11 @@ namespace AllBase.Model.Result
/// 拟备货数量,=0不备货
/// </summary>
public int wantStockUpBound { get; set; } = 0;
/// <summary>
/// 进货价,保存于KJD库
/// </summary>
public int purchasePrice { get; set; } = 0;
}
/// <summary>
+1 -1
View File
@@ -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)
@@ -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();
}
}
}
+174
View File
@@ -237,5 +237,179 @@ namespace TemuKJD.Extension
return checkBox;
}
/// <summary>
/// 绘制合并的表头单元格
/// </summary>
/// <param name="dgv"></param>
/// <param name="colNameCollection">单元格名称</param>
/// <param name="headerText">合并后的表头显示文字</param>
/// <param name="isEnableResizing">是否允许调整大小</param>
public static void MergeColumnHeader(this DataGridView dgv, List<string> 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; // 告知系统不再处理表头单元格绘制事件
}
}
};
}
}
}
+9
View File
@@ -358,6 +358,12 @@
<Compile Include="KJDForms\ShopForms\ShopLoginForm.Designer.cs">
<DependentUpon>ShopLoginForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ShopForms\Statistics\ShopOrderStatisticsDetailForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="KJDForms\ShopForms\Statistics\ShopOrderStatisticsDetailForm.Designer.cs">
<DependentUpon>ShopOrderStatisticsDetailForm.cs</DependentUpon>
</Compile>
<Compile Include="KJDForms\ShopForms\Statistics\ShopOrderStatisticsForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -716,6 +722,9 @@
<EmbeddedResource Include="KJDForms\ShopForms\ShopUpdateCookieForm.resx">
<DependentUpon>ShopUpdateCookieForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ShopForms\Statistics\ShopOrderStatisticsDetailForm.resx">
<DependentUpon>ShopOrderStatisticsDetailForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="KJDForms\ShopForms\Statistics\ShopOrderStatisticsForm.resx">
<DependentUpon>ShopOrderStatisticsForm.cs</DependentUpon>
</EmbeddedResource>
@@ -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;
}
+108 -107
View File
@@ -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);
}
@@ -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<TemuListProductInfo> lstProductInfo = new List<TemuListProductInfo>();
List<TemuDBProductPurchasePriceInfo> lstProductPurchasePrice = new List<TemuDBProductPurchasePriceInfo>();
public PurchasePriceForm()
{
@@ -38,6 +40,7 @@ namespace TemuKJD.KJDForms.ProductForms
chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged;
this.dgvProduct.AddSelectorColumn("colCheck");
//this.dgvProduct.MergeColumnHeader(new List<string>() { "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<TemuListProductInfo> productInfoLst = new List<TemuListProductInfo>();
List<string> productInfoSpuIdLst = new List<string>();
foreach (var item in jArr)
{
string sItem = JsonHelper.SerializeObject(item);
TemuListProductInfo pInfo = JsonHelper.DeserializeJsonToObject<TemuListProductInfo>(sItem); // 反序列化得到类
List<string> productInfoSpuIdLst= new List<string>();
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<TemuDBProductPurchasePriceInfo> 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<TemuDBProductPurchasePriceInfo> GetPurchasePrice(List<string> productIdList)
{
List<TemuDBProductPurchasePriceInfo> list = new List<TemuDBProductPurchasePriceInfo>();
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<TemuDBProductPurchasePriceInfo>(jArr.ToString());
}
}
}
@@ -40,7 +40,7 @@ namespace TemuKJD.KJDForms.ProductForms
/// <summary>
/// 待备货商品列表
/// </summary>
List<SubOrderInfo> lstSubOrderInfo = new List<SubOrderInfo>();
List<WarehouseProductSubOrderInfo> lstSubOrderInfo = new List<WarehouseProductSubOrderInfo>();
public SaleStockUpForm()
{
@@ -463,7 +463,7 @@ namespace TemuKJD.KJDForms.ProductForms
/// <param name="shop"></param>
/// <param name="subOrderInfo"></param>
/// <returns></returns>
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
/// <param name="shop"></param>
/// <param name="subOrderInfo"></param>
/// <returns></returns>
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<SubOrderInfo> subOrderInfoLstTmp = new List<SubOrderInfo>();
List<WarehouseProductSubOrderInfo> subOrderInfoLstTmp = new List<WarehouseProductSubOrderInfo>();
foreach (var item in jArr)
{
string sItem = item.ToString();
SubOrderInfo sInfo = JsonHelper.DeserializeJsonToObject<SubOrderInfo>(sItem); // 反序列化得到类
WarehouseProductSubOrderInfo sInfo = JsonHelper.DeserializeJsonToObject<WarehouseProductSubOrderInfo>(sItem); // 反序列化得到类
if (sInfo != null)
{
foreach(var sku in sInfo.skuQuantityDetailList)
@@ -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;
}
}
@@ -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 + "&notes=" + 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();
@@ -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;
}
}
@@ -29,6 +29,8 @@ namespace TemuKJD.KJDForms.ProductSelectForms
{
public partial class DbProductSelectListManageForm : LRBaseForm
{
public CancellationTokenSource cancellationTokenSource { get; set; } = null;
List<TemuDBProductSelect> lstAdminTemuDBProductSelect = new List<TemuDBProductSelect>();
List<ShopLoginInfo> shopLst = new List<ShopLoginInfo>();
List<TemuDBExtCodePriceInfo> lstDbPrice = new List<TemuDBExtCodePriceInfo>();
@@ -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();
}
}
}
@@ -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;
}
}
@@ -33,6 +33,8 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms
/// </summary>
public partial class ProductThirdSelectListManageForm : LRBaseForm
{
public CancellationTokenSource cancellationTokenSource { get; set; } = null;
List<TemuDBProductSelect> lstAdminTemuDBProductSelect = new List<TemuDBProductSelect>();
List<ShopLoginInfo> shopLst = new List<ShopLoginInfo>();
@@ -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();
}
}
}
@@ -28,7 +28,7 @@ namespace TemuKJD.KJDForms.SalesCenterForms
public List<string> lstShopIdSelect = new List<string>();
public List<string> lstActivityThematicIdSelect = new List<string>();
public List<int> lstDiscount = new List<int>() { 60, 70, 80, 85 };
public Dictionary<string, List<SubOrderInfo>> dicNoSaleProd = new Dictionary<string, List<SubOrderInfo>>();
public Dictionary<string, List<WarehouseProductSubOrderInfo>> dicNoSaleProd = new Dictionary<string, List<WarehouseProductSubOrderInfo>>();
public MarketingActivityForm()
{
@@ -768,7 +768,7 @@ namespace TemuKJD.KJDForms.SalesCenterForms
shopRow.Cells["colMessage"].Value = "正在查询无销量商品";
}));
this.dicNoSaleProd[shop.ShopId] = new List<SubOrderInfo>();
this.dicNoSaleProd[shop.ShopId] = new List<WarehouseProductSubOrderInfo>();
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<SubOrderInfo>(sItem); // 反序列化得到类
WarehouseProductSubOrderInfo sInfo = JsonHelper.DeserializeJsonToObject<WarehouseProductSubOrderInfo>(sItem); // 反序列化得到类
if (sInfo != null)
{
this.dicNoSaleProd[shop.ShopId].Add(sInfo);
@@ -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;
}
@@ -0,0 +1,505 @@
namespace TemuKJD.KJDForms.ShopForms.Statistics
{
partial class ShopOrderStatisticsDetailForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
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;
}
}
@@ -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();
}
}
}
@@ -0,0 +1,367 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colLoginStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDetail.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopLoginName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopAccount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colOnSaleProductNumber.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSaleVolume.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colTodayProfit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSevenDaysSaleVolume.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSevenDaysProfit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colThirtyDaysSaleVolume.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colThirtyDaysProfit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colHighPriceLimitNumber.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colAboutToSellOutNumber.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colAdvicePrepareSkcNumber.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colYesterdayIncomeAmount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colThisMonthIncomeAmount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colLastMonthIncomeAmount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colAvailableBalance.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colMallDepositLimitAmount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colWithdrawCashAmount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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==
</value>
</data>
</root>
@@ -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;
@@ -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<ShopOrderStatisticsInfo> lstShopStatisticsInfo = new List<ShopOrderStatisticsInfo>();
public List<WarehouseProductSubOrderInfo> lstSubOrderInfo = new List<WarehouseProductSubOrderInfo>();
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<string>();
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<DataGridViewRow>().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<WarehouseProductSubOrderInfo> subOrderInfoLstTmp = new List<WarehouseProductSubOrderInfo>();
foreach (var item in jArr)
{
string sItem = item.ToString();
WarehouseProductSubOrderInfo sInfo = JsonHelper.DeserializeJsonToObject<WarehouseProductSubOrderInfo>(sItem); // 反序列化得到类
if (sInfo != null)
{
subOrderInfoLstTmp.Add(sInfo);
}
}
//获取品质信息------------------------------------------------------------------------
List<TemuGoodsQualityInfo> qualityInfoLst = new List<TemuGoodsQualityInfo>();
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<TemuGoodsQualityInfo>(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);
}
/// <summary>
/// qualityScoreEnum = 1 小于60分商品
/// qualityScoreEnum = 2 60分到70分商品
/// qualityScoreEnum = 3 70分到90分商品
/// qualityScoreEnum = 4 90分以上
/// </summary>
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;
@@ -123,6 +123,9 @@
<metadata name="colLoginStatus.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colDetail.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colShopLoginName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -141,9 +144,21 @@
<metadata name="colSaleVolume.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colTodayProfit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSevenDaysSaleVolume.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSevenDaysProfit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colThirtyDaysSaleVolume.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colThirtyDaysProfit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colHighPriceLimitNumber.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
+40
View File
@@ -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;
}
}
+60
View File
@@ -13,6 +13,26 @@ namespace TemuKJD.UserControls
{
public partial class UcSplitPage : UserControl
{
/// <summary>
/// 是否显示每页条数(启用每页条数功能)
/// </summary>
[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<object> PageChange;
protected virtual void OnPageChange(object sender)
{