private void Save() { string billIDs = FormatBillIDs(); if (string.IsNullOrEmpty(billIDs)) { MsgBox.Warn("请将确认后的排序单据拖拽至右边的表格内。"); return; } if (MsgBox.AskOK("确定要保存吗?") != DialogResult.OK) { return; } try { // 获取已排序的订单存到 wm_order_sort 表中 string soNO = DateTime.Now.ToString("SOyyyyMMddHHmmssms"); List <OrderSortEntity> sortList = new List <OrderSortEntity>(); for (int i = 0; i < this.gridView2.RowCount; i++) { SOSummaryEntity data = this.gridView2.GetRow(i) as SOSummaryEntity; if (data == null) { continue; } sortList.Add(new OrderSortEntity() { VehicleNo = soNO, BillNo = data.BillNO, InVehicleSort = (i + 1), PiecesQty = data.TotalCount, Attri1 = 1 }); } Insert(sortList); // 更改已排序的订单状态 string errBillNO = string.Empty; bool result = SaveSortOrders(billIDs, GlobeSettings.LoginedUser.UserName, out errBillNO); if (result) { Reload(); MsgBox.OK("保存成功。"); } //else if (result == -1) // MsgBox.Warn(string.Format("未找到单据“{0}”,已取消所有的保存。", errBillNO)); //else if (result == -2) // MsgBox.Warn(string.Format("单据“{0}”已经分组,保存已取消,您可以将单据“{0}”拖拽至左边的表格中,也可以“重新加载未分组的单据”。", errBillNO)); } catch (Exception ex) { MsgBox.Err(ex.Message); } }
/// <summary> /// 将选择的订单导入到地图中显示 /// </summary> private void toolInsertMap_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { //Dictionary<string, object> settings = GlobeSettings.SystemSettings; //if (settings.ContainsKey("出库方式") && settings["出库方式"].ToString() == "1") //{ // MsgBox.Warn("出库方式已修改,请直接在【拣货计划】里操作!"); // return; //} if (!this._webIsCompleted) { MsgBox.Warn("等待加载地图请稍后..."); return; } int[] bills = this.gridView1.GetSelectedRows(); if (bills == null || bills.Length == 0) { MsgBox.Warn("请选择需要排序的单据!"); return; } using (WaitDialogForm dialog = new WaitDialogForm("正在计算并导入...")) { if (!this._webIsCompleted) { return; } this._list.Clear(); int findCount = 1; #region 组装选择的订单信息 foreach (int rowIndex in bills) { #region SOSummaryEntity bill = this.gridView1.GetRow(rowIndex) as SOSummaryEntity; if (bill == null) { continue; } SortMapSendDataEntity data = new SortMapSendDataEntity() { BillID = bill.BillID, orderId = bill.BillNO, marketName = bill.CustomerName, marketAddress = bill.Address, lat = bill.Ycoor, lng = bill.Xcoor, boxNum = bill.TotalCount }; if (!this._list.Contains(data)) { this._list.Add(data); } findCount = 1; while (findCount > 0) { SortMapSendDataEntity findData = this._list.Find(u => u.lat == data.lat && u.lng == data.lng && u.BillID != data.BillID); if (findData == null) { findCount = 0; break; } else { data.lng += 0.0005m; } } #endregion } #endregion #region 补单 CheckAgionCustomer(bills); #endregion this.SendData(); this.toolInsertMap.Enabled = !(this.toolUndo.Enabled = this.toolSubmit.Enabled = true); } } catch (Exception ex) { MsgBox.Err("错误:" + ex.Message); } }
/// <summary> /// 补单,检测是否有遗漏的相同客户不同订单 /// </summary> /// <param name="bills"></param> public void CheckAgionCustomer(object bills) { if (bills == null) { return; } try { #region int findCount = 1; foreach (int rowIndex in bills as int[]) { SOSummaryEntity bill = this.gridView1.GetRow(rowIndex) as SOSummaryEntity; if (bill == null) { continue; } #region for (int i = 0; i < gridView1.RowCount; i++) { SOSummaryEntity tmp = gridView1.GetRow(i) as SOSummaryEntity; if (tmp != null && bill.CustomerCode == tmp.CustomerCode && bill.BillNO != tmp.BillNO) { SortMapSendDataEntity data = new SortMapSendDataEntity() { BillID = tmp.BillID, orderId = tmp.BillNO, marketName = tmp.CustomerName, marketAddress = tmp.Address, lat = tmp.Ycoor, lng = tmp.Xcoor, boxNum = tmp.TotalCount }; if (!this._list.Contains(data)) { gridView1.SelectRow(i); this._list.Add(data); } findCount = 1; #region while (findCount > 0) { SortMapSendDataEntity findData = this._list.Find(u => u.lat == data.lat && u.lng == data.lng && u.BillID != data.BillID); if (findData == null) { findCount = 0; break; } else { data.lng += 0.0005m; } } #endregion } } #endregion } #endregion } catch (Exception ex) { throw ex; } }
/// <summary> /// 查询未分组的订单 /// </summary> /// <param name="billStates"></param> /// <returns></returns> public List <SOSummaryEntity> QueryBills(string billStates) { List <SOSummaryEntity> list = new List <SOSummaryEntity>(); try { #region 请求数据 System.Text.StringBuilder loStr = new System.Text.StringBuilder(); loStr.Append("billStates=").Append(billStates); string jsonQuery = WebWork.SendRequest(loStr.ToString(), WebWork.URL_QueryBillsSortMap); if (string.IsNullOrEmpty(jsonQuery)) { MsgBox.Warn(WebWork.RESULT_NULL); //LogHelper.InfoLog(WebWork.RESULT_NULL); return(list); } #endregion #region 正常错误处理 JsonQueryBillsSortMap bill = JsonConvert.DeserializeObject <JsonQueryBillsSortMap>(jsonQuery); if (bill == null) { //MsgBox.Warn(WebWork.JSON_DATA_NULL); return(list); } if (bill.flag != 0) { MsgBox.Warn(bill.error); return(list); } #endregion #region 赋值数据 foreach (JsonQueryBillsSortMapResult jbr in bill.result) { SOSummaryEntity asnEntity = new SOSummaryEntity(); #region 0-10 asnEntity.Address = jbr.address; asnEntity.Amount = Convert.ToDecimal(jbr.amount); asnEntity.BillID = Convert.ToInt32(jbr.billId); asnEntity.BillNO = jbr.billNo; asnEntity.BillState = jbr.billState; asnEntity.BillStateName = jbr.itemDesc; asnEntity.CustomerName = jbr.cName; asnEntity.Distance = Convert.ToDecimal(jbr.distance); asnEntity.FromWarehouse = jbr.fromWhCode; asnEntity.OrderSort = Convert.ToInt32(jbr.sortOrder); #endregion #region 11-20 asnEntity.RouteCode = jbr.rtCode; asnEntity.RouteName = jbr.rtName; asnEntity.TotalCount = Convert.ToInt32(jbr.totalCount); asnEntity.Volume = Convert.ToDecimal(jbr.volume); //asnEntity.WarehouseName = jbr.whName; asnEntity.FromWarehouseName = jbr.whName; asnEntity.Xcoor = Convert.ToDecimal(jbr.xCoor); asnEntity.Ycoor = Convert.ToDecimal(jbr.yCoor); asnEntity.CustomerCode = jbr.cCode; #endregion try { if (!string.IsNullOrEmpty(jbr.createDate)) { asnEntity.CreateDate = Convert.ToDateTime(jbr.createDate); } } catch (Exception msg) { MsgBox.Warn(msg.Message); //LogHelper.errorLog("FrmVehicle+QueryNotRelatedBills", msg); } list.Add(asnEntity); } return(list); #endregion } catch (Exception ex) { MsgBox.Err(ex.Message); } return(list); }