BaoKai_202508-Wms-Jingwang..../WMS.FrmReport/FrmMIStockSearch.cs
2025-08-24 09:35:55 +08:00

495 lines
18 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}
}
}