BaoKai_202508_Wms_Jingwang_.../WMS.FrmStock/FrmSearchMIStock.cs

426 lines
15 KiB
C#
Raw Normal View History

2025-08-24 21:52:42 +08:00
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
{
/// <summary>
/// 库存Model
/// </summary>
MIStockModel miStockModel = new MIStockModel();
/// <summary>
/// 库存List
/// </summary>
List<MIStockModel> miStockList = new List<MIStockModel>();
List<MIStockModel> miStorage = new List<MIStockModel>();
List<MIStockModel> miArea = new List<MIStockModel>();
List<MIStockModel> miLoc = new List<MIStockModel>();
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<MIStockModel>();
// string strmistock = Newtonsoft.Json.JsonConvert.SerializeObject();
// string strMiStockList = IBussFactory<BussMIStock>.Instance().GetMiStockForLookUp(strmmistockistock);
// miStockList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<MIStockModel>>(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);
}
/// <summary>
/// 导出
/// </summary>
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<MIStockModel> list = NPOIHelper<MIStockModel>.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<AreaGoodsTypeModel> areaGoodsTypeList = new List<AreaGoodsTypeModel>();
string strResult = string.Empty;
try
{
List<StorageAreaModel> listArea = IBussFactory<BussStorageArea>.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<int> errorIndex = new List<int>();
int hadNum = 0;
int lengthNum = 0;
string error = string.Empty;
try
{
// IBussFactory<BussMIStock>.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<DataTable>(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<StorageAreaLocationModel> listStorageAreaLocationModel = new List<StorageAreaLocationModel>();
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<DataTable>(strResult);
}
else
{
SystemCommon.ShowInfoMessageBox(errText);
}
miArea = miStorage.FindAll(r => r.AREA_ID == this.lueArea.EditValue.ToString()).ToList();
GCMiStock.DataSource = miArea;
GVMiStock.RefreshData();
}
}
/// <summary>
/// 清空按钮
/// </summary>
public void Clear()
{
miStockModel = new MIStockModel();
bgsConditions.DataSource = miStockModel;
}
/// <summary>
/// 条件查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
}
}
}