using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using WMS.Frm.Base; using WMS.Model.Stock; using WMS.Common; using WMS.Model.Base; using System.Collections; using WMS.Business; using WMS.Business.Stock; using WMS.Business.Base; namespace WMS.FrmStock { public partial class FrmSearchMIStock : FormBase { /// /// 库存Model /// MIStockModel miStockModel = new MIStockModel(); /// /// 库存List /// List miStockList = new List(); List miStorage = new List(); List miArea = new List(); List miLoc = new List(); public FrmSearchMIStock() { InitializeComponent(); } private void FrmSearchMIStock_Load(object sender, EventArgs e) { miStockModel = new MIStockModel(); lueStorage.LoadData(); lueArea.LoadData(); //库位下拉框 lueLoc.Properties.NullText = ""; lueLoc.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("LOCATION_ID", "库位")); lueLoc.Properties.ValueMember = "LOCATION_ID"; lueLoc.Properties.DisplayMember = "LOCATION_ID"; BindMiStockData(miStockModel); bgsConditions.DataSource = miStockModel; } public void BindMiStockData(MIStockModel mistock) { string errText = string.Empty; try { miStockList = new List(); // string strmistock = Newtonsoft.Json.JsonConvert.SerializeObject(); // string strMiStockList = IBussFactory.Instance().GetMiStockForLookUp(strmmistockistock); // miStockList = Newtonsoft.Json.JsonConvert.DeserializeObject>(strMiStockList); // GCMiStock.DataSource = miStockList; GVMiStock.RefreshData(); if (miStockList.Count > 0) { foreach (MIStockModel item in miStockList) { item.DUE_DATE = item.PRODUCTION_DATE.AddMonths(Convert.ToInt32(item.PERIOD)); } bgsStock.DataSource = miStockList; } } catch (Exception) { SystemCommon.ShowInfoMessageBox("获取数据失败,请检查网络连接!"); } } public void Refresh() { BindMiStockData(miStockModel); } /// /// 导出 /// public void Export() { GCMiStock.ShowExportDialog(); } public void Import() { OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Title = "导入库存"; fileDialog.Filter = "Excel文件(*.xls;*.xlsx)|*.xls;*.xlsx"; DialogResult dialogResult = fileDialog.ShowDialog(this); if (dialogResult == DialogResult.OK) { Hashtable ht = new Hashtable(); ht.Add("AREA_NAME", "仓库名称"); ht.Add("GOODS_TYPEID", "商品类别"); ht.Add("GOODS_TYPENAME", "商品类别ISNAME"); ht.Add("GOODS_ID", "商品代码"); ht.Add("GOODS_NAME", "商品名称"); ht.Add("SHELVES_NUM", "库存数"); ht.Add("ABLE_NUM", "可用数"); ht.Add("PROVIDER_ID", "供应商"); ht.Add("PROVIDER_NAME", "供应商ISNAME"); ht.Add("PRODUCTION_DATE", "生产日期"); ht.Add("LOCATION_ID", "库位信息"); List list = NPOIHelper.Import(fileDialog, ht); if (list == null) { return; } list.RemoveAll(p => string.IsNullOrEmpty(p.LOCATION_ID));//p.SHELVES_NUM == 0 || foreach (var item in list) { //仓库库位转换 string ck = item.AREA_NAME; if (ck == "残次品仓") { item.AREA_NAME = "残品区"; } else if (ck == "二号仓") { item.AREA_NAME = "拣配区"; } else if (ck == "退货仓") { item.AREA_NAME = "退货区"; } else if (ck == "一号仓") { string loc = item.LOCATION_ID; if (loc != null && loc.Length >= 2) { if (loc.Substring(0, 2) == "冷冻") { item.AREA_NAME = "冷冻区"; item.LOCATION_ID = "LD001,"; } else if (loc.Substring(0, 2) == "冷藏") { item.AREA_NAME = "冷藏区"; item.LOCATION_ID = "LC001,"; } else if (loc.Substring(0, 2) == "桶贴") { item.AREA_NAME = "桶贴区"; item.LOCATION_ID = "TT001,"; } else if (loc.Substring(0, 2) == "真空") { item.AREA_NAME = "真空袋区"; item.LOCATION_ID = "ZK001,"; } else if (loc.Substring(0, 2) == "包材") { item.AREA_NAME = "包材区"; item.LOCATION_ID = "BC001,"; } else { item.AREA_NAME = "整箱区"; } } //else if(string.IsNullOrEmpty(loc)){ // if (!string.IsNullOrEmpty(item.GOODS_TYPENAME)) { // } //} } //商品分类 if (string.IsNullOrEmpty(item.GOODS_TYPENAME)) { if (item.AREA_NAME == "冷冻区") { item.GOODS_TYPEID = "SPFL1106"; } else if (item.AREA_NAME == "冷藏区") { item.GOODS_TYPEID = "SPFL1105"; } else if (item.AREA_NAME == "真空袋区") { item.GOODS_TYPEID = "SPFL1104"; } else if (item.AREA_NAME == "桶贴区") { item.GOODS_TYPEID = "SPFL1103"; } else if (item.AREA_NAME == "包材区") { item.GOODS_TYPEID = "SPFL1102"; } else if (item.AREA_NAME == "整箱区") { item.GOODS_TYPEID = "SPFL1101"; } else { item.GOODS_TYPEID = null; } } item.STORAGE_ID = userData.STORAGE_ID;//仓库编号 string errText = string.Empty; //库区编号 StorageAreaModel area = new StorageAreaModel(); area.STORAGE_ID = item.STORAGE_ID; area.STORAGE_AREA_NAME = item.AREA_NAME; List areaGoodsTypeList = new List(); string strResult = string.Empty; try { List listArea = IBussFactory.Instance().GetAreaInfoDS(area, ref areaGoodsTypeList); if (listArea != null) { item.AREA_ID = listArea[0].STORAGE_AREA_ID; } } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); return; } //库位 item.LOCATION_ID = item.LOCATION_ID.Substring(0, item.LOCATION_ID.IndexOf(',')); //占用数量 item.OCCUPY_NUM = item.SHELVES_NUM - item.ABLE_NUM; } if (list.Count > 0) { //保存 string errText = string.Empty; List errorIndex = new List(); int hadNum = 0; int lengthNum = 0; string error = string.Empty; try { // IBussFactory.Instance().AddMIStockList(list, ref hadNum, ref lengthNum, ref error); } catch (Exception) { SystemCommon.ShowErrorMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); return; } if (errorIndex.Count == 0) { SystemCommon.ShowInfoMessageBox("所有记录已导入成功"); Refresh(); } else { string fileName = @"D:\WMS\导入库存错误日志" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt"; SystemCommon.WriteFile(fileName, error);///写文件 /*错误提示*/ string info = string.Empty; if (errorIndex.Count > (hadNum + lengthNum)) { info += ((errorIndex.Count - hadNum - lengthNum) + "条库存记录导入时遇到未知错误,"); } if (lengthNum > 0) { info += (lengthNum + "条库存记录数据长度过长,"); } info += "日志已写入" + fileName + "。"; SystemCommon.ShowErrorMessageBox(info); Refresh(); } } } } private void lueStorage_EditValueChanged(object sender, EventArgs e) { if (lueStorage.Properties.KeyMember != null && !string.IsNullOrEmpty(lueStorage.Properties.KeyMember.ToString())) { //绑定库区数据 string errText = string.Empty; StorageAreaModel storageAreaModel = new StorageAreaModel(); storageAreaModel.STORAGE_ID = lueStorage.Properties.KeyMember.ToString(); string strParameter = Newtonsoft.Json.JsonConvert.SerializeObject(storageAreaModel); string strResult = string.Empty; try { // strResult = WebLockConfig.Instance.StorageArea.GetAreaInfoDS(strParameter, ref errText); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } //如果查询库区数据成功 if (errText == string.Empty) { lueArea.Properties.DataSource = Newtonsoft.Json.JsonConvert.DeserializeObject(strResult); } else { SystemCommon.ShowInfoMessageBox(errText); } miStorage = miStockList.FindAll(r => r.STORAGE_ID == this.lueStorage.EditValue.ToString()); GCMiStock.DataSource = miStorage; GVMiStock.RefreshData(); } } private void lueArea_EditValueChanged(object sender, EventArgs e) { if (lueArea.Properties.KeyMember != null && !string.IsNullOrEmpty(lueArea.Properties.KeyMember.ToString())) { string errText = string.Empty; List listStorageAreaLocationModel = new List(); StorageAreaLocationModel storageAreaLocationModel = new StorageAreaLocationModel(); storageAreaLocationModel.STORAGE_AREA_ID = lueArea.Properties.KeyMember.ToString(); storageAreaLocationModel.STATUS = "0"; string strParameter = Newtonsoft.Json.JsonConvert.SerializeObject(storageAreaLocationModel); string strResult = string.Empty; try { // strResult = WebLockConfig.Instance.StorageAreaLocation.GetLocationInfoDS(strParameter, ref errText);//查询 } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } if (errText == string.Empty) { lueLoc.Properties.DataSource = Newtonsoft.Json.JsonConvert.DeserializeObject(strResult); } else { SystemCommon.ShowInfoMessageBox(errText); } miArea = miStorage.FindAll(r => r.AREA_ID == this.lueArea.EditValue.ToString()).ToList(); GCMiStock.DataSource = miArea; GVMiStock.RefreshData(); } } /// /// 清空按钮 /// public void Clear() { miStockModel = new MIStockModel(); bgsConditions.DataSource = miStockModel; } /// /// 条件查询 /// /// /// public void Search() { GCMiStock.Focus(); BindMiStockData(miStockModel); } private void lueLoc_EditValueChanged(object sender, EventArgs e) { if (string.IsNullOrEmpty(lueLoc.EditValue.ToString())) { return; } else { miLoc = miArea.FindAll(r => r.LOCATION_ID == this.lueLoc.EditValue.ToString()).ToList(); GCMiStock.DataSource = miLoc; GVMiStock.RefreshData(); } } } }