BaoKai_202508-Wms-Jingwang..../WMS.FrmReport/FrmMIStockSearch.cs

495 lines
18 KiB
C#
Raw Permalink Normal View History

2025-08-24 09:35:55 +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 System.Collections;
using WMS.Model.Base;
using DevExpress.XtraCharts;
using System.Threading;
using DevExpress.Utils;
using WMS.Business;
using WMS.Business.Report;
using WMS.Business.Stock;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraExport.Helpers;
using WMS.DBUtility;
using DevExpress.Emf;
namespace WMS.FrmReport
{
public partial class FrmMIStockSearch : FormBase
{
/// <summary>
/// 库存Model
/// </summary>
MIStockModel miStockModel = new MIStockModel();
/// <summary>
/// 库存List
/// </summary>
List<MIStockModel> miStockList = new List<MIStockModel>();
public StorageAreaLocationModel loc;
/// <summary>
/// 无参构造
/// </summary>
public FrmMIStockSearch()
{
InitializeComponent();
}
/// <summary>
/// 通用查询
/// </summary>
/// <param name="table"></param>
public override void LoadListData(DataTable table)
{
miStockList = ConvertHelper<MIStockModel>.ConvertToList(table);
GVMiStock.RefreshData();
}
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void FrmMIStockSearch_Load(object sender, EventArgs e)
{
BindMiStockData( );
}
/// <summary>
/// 绑定库存数据
/// </summary>
/// <param name="mistock"></param>
public void BindMiStockData()
{
DevExpress.Utils.WaitDialogForm loadForm = new DevExpress.Utils.WaitDialogForm("请稍后...", "正在查询数据请等待...");
miStockList = IBussFactory<BussMIStockSearch>.Instance().GetMiStockForLookUp();
if (miStockList != null)
{
bgsStock.DataSource = miStockList;
}
loadForm.Dispose();
loadForm.Close();
//new Thread(delegate()
//{
// string errText = string.Empty;
// try
// {
// this.Invoke(new MethodInvoker(delegate
// {
// }));
// }
// catch (Exception)
// {
// SystemCommon.ShowInfoMessageBox("error");
// }
//}).Start();
}
/// <summary>
/// 构造函数 传参查询
/// </summary>
/// <param name="lo"></param>
public void BindMiStockDataByLoc(StorageAreaLocationModel lo)
{
new Thread(delegate()
{
string errText = string.Empty;
try
{
this.Invoke(new MethodInvoker(delegate
{
miStockModel = new MIStockModel();
miStockModel.STORAGE_ID = lo.STORAGE_ID;
miStockModel.AREA_ID = lo.STORAGE_AREA_ID;
miStockModel.LOCATION_ID = lo.LOCATION_ID;
// miStockList = new List<MIStockModel>();
miStockList.Clear();
miStockList = IBussFactory<BussMIStockSearch>.Instance().GetMiStockForLookUp();
if (miStockList != null)
{
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("获取数据失败,请检查网络连接!");
}
}).Start();
}
/// <summary>
/// 刷新
/// </summary>
public void Refresh()
{
BindMiStockData();
}
/// <summary>
/// 导出
/// </summary>
public void Export()
{
GCMiStock.ShowExportDialog();
}
/// <summary>
/// 导入
/// </summary>
public void Import()
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Title = "Import";
fileDialog.Filter = "Excel(*.xls;*.xlsx)|*.xls;*.xlsx";
DialogResult dialogResult = fileDialog.ShowDialog(this);
if (dialogResult == DialogResult.OK)
{
Hashtable ht = new Hashtable();
ht.Add("GOODS_ID", "GOODS ID");
ht.Add("GOODS_NAME", "GOODS_NAM");
ht.Add("SHELVES_NUM", "Qty");
ht.Add("DOCCTNUMBER", "Sheet_no");
ht.Add("LOCATION_ID", "LOCATION");
ht.Add("CTl", "Pallet");
List<MIStockModel> list = NPOIHelper<MIStockModel>.Import(fileDialog, ht);
//if (list == null)
//{
// return;
//}
//list.RemoveAll(p => string.IsNullOrEmpty(p.LOCATION_ID));//p.SHELVES_NUM == 0 ||
if (list.Count > 0)
{ //保存
string errText = string.Empty;
try
{
errText = IBussFactory<BussMIStock>.Instance().AddMIStockList(list);
}
catch (Exception)
{
SystemCommon.ShowErrorMessageBox("error");
return;
}
if (errText.Trim().Length== 0)
{
SystemCommon.ShowInfoMessageBox("sucess");
Refresh();
}
else
{
SystemCommon.ShowErrorMessageBox(errText);
Refresh();
}
}
}
}
/// <summary>
/// 清空按钮
/// </summary>
public void Clear()
{
}
/// <summary>
/// 条件查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void Search()
{
GCMiStock.Focus();
BindMiStockData();
}
private void btnSearch_Click(object sender, EventArgs e)
{
// chartControl1.Series.Clear();
}
private void GVMiStock_DoubleClick(object sender, EventArgs e)
{
// xtraTabControl1.SelectedTabPageIndex = 1;
// chartControl1.Series.Clear();
MIStockModel m = this.GVMiStock.GetFocusedRow() as MIStockModel;
// xtraTabPage2.Text = m.GOODS_NAME + " - 商品走势";
MIStockBackModel mm = new MIStockBackModel();
List<MIStockBackModel> llist = new List<MIStockBackModel>();
mm.GOODS_ID = m.GOODS_ID;
mm.STORAGE_ID = m.STORAGE_ID;
mm.AREA_ID = m.AREA_ID;
mm.LOCATION_ID = m.LOCATION_ID;
mm.TIMESTART = Convert.ToDateTime(DateTime.Now.AddDays(-(DateTime.Now.Day - 1)).AddMonths(-1).ToString("yyyy-MM-dd"));
mm.TIMEEND = DateTime.Now;
string errText = string.Empty;
string strResult = string.Empty;
try
{
llist = IBussFactory<BussMIStockSearch>.Instance().DayReportData(mm);
}
catch (Exception)
{
SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!");
}
}
private void GVBackReport_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
{
if (e.Column.FieldName == "OPERATOR_TYPE")
{
if (e.Value == null)
{
return;
}
switch (e.Value.ToString().Trim())
{
case "0":
e.DisplayText = "入库";
break;
case "1":
e.DisplayText = "出库";
break;
case "2":
e.DisplayText = "调整";
break;
default:
e.DisplayText = "其他";
break;
}
}
}
private void btnClear_Click(object sender, EventArgs e)
{ }
private void GVMiStock_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
{
//t.STS when '0' then '正常' when '1' then '出库中' when '2' then '已下发堆垛机' when '6' then '堆垛机完成' when '9' then '手持拣货完成' when '10' then '库存扣除处理中'
//GridView View = sender as GridView;
//if (e.Column.FieldName == "手持拣货完成")//设背景
//{
// //int pointID = (gridView1.GetRow(e.RowHandle) as object).BgColor;
// e.Appearance.BackColor = Color.Yellow;
//}
////else if (e.Column.FieldName == "BgColor2")//设渐变背景
////{
//// //int pointID = (gridView1.GetRow(e.RowHandle) as object).BgColor;
//// e.Appearance.BackColor = Color.Red;
//// e.Appearance.BackColor2 = Color.FromArgb(255, 255, 255);
//// e.Appearance.ForeColor = Color.Red;//Color.FromArgb(42, 173, 231);
////}
//else /*if (e.Column.FieldName == "FontColor")//设字体颜色*/
//{
// //int pointID = (gridView1.GetRow(e.RowHandle) as object).BgColor;
// e.Appearance.BackColor = Color.Transparent;//Color.FromArgb(42, 173, 231);
//}
if (e.RowHandle >= 0) //
{
string status_MES = GVMiStock.GetRowCellDisplayText(e.RowHandle, GVMiStock.Columns["STSEBS"]);//获取限制变色条件行的值
// 获取行的数据
DataRow rowInfo = GVMiStock.GetRow(e.RowHandle) as DataRow;
string status = GVMiStock.GetRowCellDisplayText(e.RowHandle, GVMiStock.Columns["STSEBS"]);//获取限制变色条件行的值
{
// 假设你有一个字段叫 "Status" 用来决定颜色
//string status = rowInfo["STS"].ToString();
if (status == "mes上报失败"||status=="未上报mes")
{
e.Appearance.BackColor = Color.Red; // 设置背景色
}
else /*if (status == "Inactive")*/
{
e.Appearance.BackColor = Color.Transparent; // 设置背景色
}
}
}
}
//private void button1_Click(object sender, EventArgs e)
//{
// string sql = " SELECT * FROM T_MI_STOCK where stsebs in(2,9)";
// DataSet dt= OracleHelper.ExecuteDataset(CommandType.Text, sql);
// if (dt.Tables[0].Rows.Count>0)
// {
// for (int i = 0; i < dt.Tables[0].Rows.Count; i++)
// {
// string STORAGE_ID = dt.Tables[0].Rows[i]["STORAGE_ID"].ToString(); //字库编号
// string LOCATION_ID = dt.Tables[0].Rows[i]["LOCATION_ID"].ToString();
// string BARCODE = dt.Tables[0].Rows[i]["BARCODE"].ToString();//外箱子 + 内箱子条码
// string CUSTOMER_ID = dt.Tables[0].Rows[i]["CUSTOMER_ID"].ToString();//客户代码
// string newLoc = STORAGE_ID + "-WMS-00";
// string strJsonRK = GetWmsData("http://" + MesIpPort + "/Camstar/PackStock.asmx/PackStockIn?pkwPackLot=" + BARCODE + "&pCustPackId=&pSubInventory=" + STORAGE_ID + "&pLocation=" + newLoc + "", "");
// if (errText.Length > 0)
// {
// AddText("WCS定时上报mes成功回传MES异常:" + errText);
// continue;
// }
// if (strJsonRK.Length > 0)
// {
// AddText("WCS定时上报mes成功回传MES返回" + strJsonRK);
// if (!strJsonRK.Contains("当前工位 '成品仓'") && strJsonRK.Contains("Error"))
// {
// if (DataClass.Instance().Update_T_MI_STOCK_STSEBS(LOCATION_ID, BARCODE, "9"))
// {
// AddText("WCS定时上报mes成功回传MES错误编号" + BARCODE + "," + strJsonRK + ",更新数据库状态9成功");
// }
// else
// {
// AddText("WCS定时上报mes成功回传MES错误编号" + BARCODE + "," + strJsonRK + ",更新数据库状态9失败");
// }
// AddText("WCS定时上报mes成功回传MES错误编号" + BARCODE + "," + strJsonRK + "");
// }
// else
// {
// if (DataClass.Instance().Update_T_MI_STOCK_STSEBS(LOCATION_ID, BARCODE, "1"))
// {
// AddText("WCS定时上报mes成功回传MES成功编号" + BARCODE + "," + strJsonRK + ",更新数据库状态1成功");
// }
// else
// {
// AddText("WCS定时上报mes成功回传MES成功编号" + BARCODE + "" + strJsonRK + ",更新数据库状态1失败");
// }
// }
// }
// }
// }
// //string errTex.Rt = "";
// //DataSet dt = IBussFactory<BussMIStock>.Instance().STATUS_GET();
// //DataSet dt = DataClass.Instance().SELECTT_MI_STOCK_9(ref errText);
// //if (dt != null && dt.Tables[0].Rows.Count > 0)
// //{
// // for (int i = 0; i < dt.Tables[0].Rows.Count; i++)
// // {
// // string STORAGE_ID = dt.Tables[0].Rows[i]["STORAGE_ID"].ToString(); //字库编号
// // string LOCATION_ID = dt.Tables[0].Rows[i]["LOCATION_ID"].ToString();
// // string BARCODE = dt.Tables[0].Rows[i]["BARCODE"].ToString();//外箱子 + 内箱子条码
// // string CUSTOMER_ID = dt.Tables[0].Rows[i]["CUSTOMER_ID"].ToString();//客户代码
// // string newLoc = STORAGE_ID + "-WMS-00";
// // string strJsonRK = GetWmsData("http://" + MesIpPort + "/Camstar/PackStock.asmx/PackStockIn?pkwPackLot=" + BARCODE + "&pCustPackId=&pSubInventory=" + STORAGE_ID + "&pLocation=" + newLoc + "", "");
// // if (errText.Length > 0)
// // {
// // AddText("WCS入装箱线成功回传MES异常:" + errText);
// // continue;
// // }
// // if (strJsonRK.Length > 0)
// // {
// // AddText("WCS入装箱线成功回传MES返回" + strJsonRK);
// // if (strJsonRK.Contains("Error"))
// // {
// // if (DataClass.Instance().Update_T_SSX_TASK(BARCODE, dt.Tables[0].Rows[i]["CTL"].ToString(), "10"))
// // {
// // AddText("WCS入装箱线成功回传MES错误编号" + BARCODE + "," + strJsonRK + ",更新数据库状态10成功");
// // }
// // else
// // {
// // AddText("WCS入装箱线成功回传MES错误编号" + BARCODE + "," + strJsonRK + ",更新数据库状态9失败");
// // }
// // AddText("WCS入装箱线成功回传MES错误编号" + BARCODE + "," + strJsonRK + "");
// // }
// // else
// // {
// // if (DataClass.Instance().Update_T_SSX_TASK(BARCODE, dt.Tables[0].Rows[i]["CTL"].ToString(), "1"))
// // {
// // AddText("WCS入装箱线成功回传MES成功编号" + BARCODE + "," + strJsonRK + ",更新数据库状态1成功");
// // }
// // else
// // {
// // AddText("WCS入装箱线成功回传MES成功编号" + BARCODE + "" + strJsonRK + ",更新数据库状态1失败");
// // }
// // }
// // }
// // }
// //}
//}
private void button2_Click(object sender, EventArgs e)
{
// 1. 初始化 DataSet无需提前声明直接接收查询结果
string sql = "SELECT DISTINCT CTL FROM T_MI_STOCK where STS=0";
DataSet ds = OracleHelper.ExecuteDataset(CommandType.Text, sql);
// 2. 安全获取行数(处理可能的空表或查询失败)
int rowCount = ds?.Tables?.Count > 0 ? ds.Tables[0].Rows.Count : 0;
// 3. 将行数显示到 textBox1确保控件存在且可写
textBox1.Text = rowCount.ToString();
}
}
}