Files
KJD_WebService/TEMUKJD/WXForms/AdminForms/WXAdminTransitWarehouseManage.cs
T

339 lines
14 KiB
C#

using AllBase;
using AllBase.Helper;
using AllBase.Model.DBModel;
using AllBase.Model.Param.TemuProductManage;
using AllBase.Model.Result;
using NaiBa.Util;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.BaseForms;
using TemuKJD.BLL;
using TemuKJD.Extension;
using TemuKJD.WXForms.ShopForms;
using Work;
namespace TemuKJD.WXForms.AdminForms
{
public partial class WXAdminTransitWarehouseManage : BaseForms.BaseGeneralForm
{
static WXAdminTransitWarehouseManage inst = null;
public static WXAdminTransitWarehouseManage Instance
{
get { if (inst == null) inst = new WXAdminTransitWarehouseManage(); return inst; }
set { inst = value; }
}
public static ConcurrentList<oms_wei_external_procurement_log> lstTransitWarehouseOrder { get; set; } = new ConcurrentList<oms_wei_external_procurement_log>();
public WXAdminTransitWarehouseManage()
{
InitializeComponent();
Instance = this;
}
private void AdminShopForm_Load(object sender, EventArgs e)
{
this.ucSplitPage1.PageChange += UcSplitPage1_PageChange;
this.dgvShop.AddSelectorColumn("colSelect");
//this.dgvShop.AddMergeColumnHeader(new List<string>() { /*"colMinus",*/ "colProductRemaining", "colPlus" }, "选品限额");
//this.dgvShop.AddMergeColumn(new List<string>() { /*"colMinus",*/ "colProductRemaining", "colPlus" });
//this.dgvShop.Columns["colMinus"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
//this.dgvShop.Columns["colPlus"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
//this.dgvShop.Columns["colPlus"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
if (BaseClass.SaLevel != 1)
{
//dgvShop.Columns["colSubSa"].Visible = false;
}
}
bool firstLoad = true;
private void AdminShopForm_VisibleChanged(object sender, EventArgs e)
{
if (this.Visible == true && firstLoad)
{
firstLoad = false;
this.pbLoading.Visible = true;
SearchTransitOrder(this.ucSplitPage1.CurrentPage);
}
}
private void UcSplitPage1_PageChange(object obj)
{
SearchTransitOrder(this.ucSplitPage1.CurrentPage);
}
public void SearchTransitOrder(int page)
{
List<string> shopIdList = GetCheckedShopIdList();
if (InvokeRequired)
{
Invoke(new Action(() =>
{
this.pbLoading.Visible = true;
this.dgvShop.Rows.Clear();
lstTransitWarehouseOrder.Clear();
}));
}
else
{
this.pbLoading.Visible = true;
this.dgvShop.Rows.Clear();
lstTransitWarehouseOrder.Clear();
}
Task.Run(() =>
{
int pageCount;
decimal seconds = 0;
var list = AdminGetServerShopLst(out pageCount, out seconds, page, ucSplitPage1.PageSize);
lstTransitWarehouseOrder.AddRange(list);
this.ucSplitPage1.TotalPage = pageCount;
var url = BaseClass.BuildWXObjString("order/get_erp_order_list");
var data = UserLogin.GetSignaturex();
data += "&erp_order_id_in=" + string.Join(",", list.Select(s => s.order_no));
data += "&is_not_count=true";
data += "&page_size=" + 5000;
Thread.Sleep(200);
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"))
{
}
else
{
var orderList = JsonHelper.DeserializeJsonToList<oms_wei_order>(JObject.Parse(html)["data"].ParseToString());
if (orderList == null)
orderList = new List<oms_wei_order>();
foreach (var order in lstTransitWarehouseOrder)
{
order.oms_Wei_Order = orderList.FirstOrDefault(o => o.order_id == order.order_no);
}
}
foreach (var order in lstTransitWarehouseOrder)
{
Invoke(new Action(() =>
{
int rowIndex = this.dgvShop.Rows.Add(
false,
order.out_order_no,
order.order_no,
order.order_sku_id,
BaseClass.StampToDateTime(order.oms_Wei_Order.create_time).ToString("yy-MM-dd HH:mm"),
order.oms_Wei_Order.shop_name,
order.buyer_account,
order.out_amount * 0.01m,
order.purchaser_note,
order.express_1_company,
order.express_1_waybill,
order.express_2_company,
order.express_2_waybill,
order.refund_status,
order.pickup_time == DateTime.MinValue ? "" : order.pickup_time.ToString("yy-MM-dd HH:mm"),
order.transfer_warehouse_status,
order.raw_message,
order.created_time.ToString("yy-MM-dd HH:mm"),
order.updated_time.ToString("yy-MM-dd HH:mm"),
order.platform,
order.order_platform_code,
order.order_code,
order.pre_allocated_order_no,
order.is_transfer_ship,
order.random_code
);
}));
}
Invoke(new Action(() =>
{
this.pbLoading.Visible = false;
this.statusBar.lblTaskStatus.Text = "店铺查询完毕";
#if DEBUG
this.statusBar.lblTaskStatus.Text += ",耗时:" + seconds;
#endif
}));
});
}
private void btnSearch_Click(object sender, EventArgs e)
{
if (this.ucSplitPage1.CurrentPage != 1)
this.ucSplitPage1.CurrentPage = 1;
else
SearchTransitOrder(1);
}
private void pnlEmpty_Click(object sender, EventArgs e)
{
this.txtWxOrderNo.Text = "";
this.txtOutOrderNo.Text = "";
this.txt.Text = "";
this.textBox2.Text = "";
}
bool IsOperate = false;
private void btnLoginSelect_Click(object sender, EventArgs e)
{
if (BaseMsgForm.ShowConfirm("确定删除仓库单吗?删除后不可恢复!").DialogResult == DialogResult.Cancel)
return;
IsOperate = true;
{
List<string> outOrderIds = GetCheckedList();
if (!outOrderIds.Any())
{
BaseMsgForm.ShowError("请选择需要删除的仓库单");
IsOperate = false;
return;
}
//todo 删除订单
var url3 = BaseClass.BuildWXObjString("order/wx_del_erp_transit_warehouse_order");
var data3 = UserLogin.GetSignaturex();
if (outOrderIds.Count > 0)
data3 += "&out_order_no=" + string.Join(",", outOrderIds);
var html3 = GetHtml.PostUtf8(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = GetHtml.PostUtf8(url3, data3);
if (html3.Contains("\"code\":200"))
{
if (this.ucSplitPage1.CurrentPage != 1)
this.ucSplitPage1.CurrentPage = 1;
else
SearchTransitOrder(1);
}
else
{
BaseMsgForm.ShowError("删除失败" + BaseRegex.GetStringJson(ref html3, "msg"));
}
}
IsOperate = false;
}
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvShop.Columns[e.ColumnIndex].HeaderText;
string outOrderNo = dgvShop.Rows[e.RowIndex].Cells["colOutOrderNo"].Value.ParseToString();
var order = lstTransitWarehouseOrder.FirstOrDefault(v => v.out_order_no == outOrderNo);
var row = dgvShop.Rows[e.RowIndex];
switch (headerText)
{
case "删除":
if (BaseMsgForm.ShowConfirm("确定删除仓库单吗?删除后不可恢复!").DialogResult == DialogResult.Cancel)
return;
break;
case "":
row.Cells["colSelect"].Value = !row.Cells["colSelect"].Value.ParseToBool();
break;
default:
break;
}
}
private List<string> GetCheckedList()
{
List<string> checkOrderLst = new List<string>();
for (int i = 0; i < dgvShop.Rows.Count; i++)
{
if (dgvShop.Rows[i].Cells["colSelect"].Value.ParseToBool())
{
string shopName = dgvShop.Rows[i].Cells["colOutOrderNo"].Value.ParseToString();
checkOrderLst.Add(shopName);
}
}
return checkOrderLst;
}
private List<string> GetCheckedShopIdList()
{
List<string> shopNameList = new List<string>();
for (int i = 0; i < dgvShop.Rows.Count; i++)
{
if (dgvShop.Rows[i].Cells["colSelect"].Value.ParseToBool())
{
string shopName = dgvShop.Rows[i].Cells["colShopId"].Value.ParseToString();
shopName += dgvShop.Rows[i].Cells["colUser"].Value.ParseToString();
shopNameList.Add(shopName);
}
}
return shopNameList;
}
public List<oms_wei_external_procurement_log> AdminGetServerShopLst(out int pageCount, out decimal seconds, int page = 1, int pageSize = 50)
{
pageCount = 0;
seconds = 0;
var url3 = BaseClass.BuildWXObjString("order/wx_get_transit_order");
var data3 = UserLogin.GetSignaturex();
Invoke(new Action(() => { }));
if (!string.IsNullOrEmpty(txtOutOrderNo.Text.Trim()))
data3 += "&out_order_no=" + string.Join(",", this.txtOutOrderNo.Text.Split(new string[] { "\r", "\n", " "}, StringSplitOptions.RemoveEmptyEntries));
if (!string.IsNullOrEmpty(txtWxOrderNo.Text.Trim()))
data3 += "&order_no=" + string.Join(",", this.txtWxOrderNo.Text.Split(new string[] { "\r", "\n", " " }, StringSplitOptions.RemoveEmptyEntries));
if (!string.IsNullOrEmpty(txt.Text.Trim()))
data3 += "&transfer_warehouse_status=" + string.Join(",", this.txt.Text.Split(new string[] { "\r", "\n", " " }, StringSplitOptions.RemoveEmptyEntries));
if (!string.IsNullOrEmpty(textBox2.Text.Trim()))
data3 += "&pre_allocated_order_no=" + string.Join(",", this.textBox2.Text.Split(new string[] { "\r", "\n", " " }, StringSplitOptions.RemoveEmptyEntries));
data3 += "&is_admin=true";
data3 += "&page=" + page;
data3 += "&page_size=" + pageSize;
data3 += "&not_count=false";
var html3 = GetHtml.PostUtf8(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = GetHtml.PostUtf8(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
{
//Dispatcher.Invoke(new Action(() =>
//{
// BaseMsgWindow.ShowError(MainWindow.Instance, "订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
//}));
//break;
}
List<oms_wei_external_procurement_log> transitOrderList = new List<oms_wei_external_procurement_log>();
try
{
transitOrderList = JsonHelper.DeserializeJsonToList<oms_wei_external_procurement_log>(JObject.Parse(html3)["data"].ParseToString());
if (transitOrderList == null)
transitOrderList = new List<oms_wei_external_procurement_log>();
}
catch
{
}
seconds = BaseRegex.GetDecimalJson(ref html3, "seconds");
int count = BaseRegex.GetIntJson(ref html3, "count");
pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt();
pageCount = Math.Max(pageCount, 1);
return transitOrderList;
}
private void dgvShop_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
}
}
}