426 lines
15 KiB
C#
426 lines
15 KiB
C#
|
|
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();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|