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 lstTransitWarehouseOrder { get; set; } = new ConcurrentList(); 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() { /*"colMinus",*/ "colProductRemaining", "colPlus" }, "选品限额"); //this.dgvShop.AddMergeColumn(new List() { /*"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 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(JObject.Parse(html)["data"].ParseToString()); if (orderList == null) orderList = new List(); 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 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 GetCheckedList() { List checkOrderLst = new List(); 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 GetCheckedShopIdList() { List shopNameList = new List(); 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 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 += "¬_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 transitOrderList = new List(); try { transitOrderList = JsonHelper.DeserializeJsonToList(JObject.Parse(html3)["data"].ParseToString()); if (transitOrderList == null) transitOrderList = new List(); } 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) { } } }