You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

474 lines
19 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using Mesnac.Codd.Session;
using Mesnac.Action.ChemicalWeighing.Entity;
using System.Windows.Forms;
using Mesnac.Action.ChemicalWeighing.DBHelper;
using System.Reflection;
namespace Mesnac.Action.ChemicalWeighing.Warehouse
{
/// <summary>
/// 工艺管理辅助类
/// </summary>
public class WarehouseHelper
{
#region 数据获取
/// <summary>
/// 获取所有投料釜列表
/// </summary>
public static DataTable GetAllWarehouse()
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
string sqlstr = "select ID,Name,BarCode from Hw_Warehouse order by ID asc";
dbHelper.CommandText = sqlstr;
DataTable dt = dbHelper.ToDataTable();
return dt;
}
/// <summary>
/// 获取所有的班次数据
/// </summary>
public static List<Pmt_Shiftime> GetShiftimeList()
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
string sqlstr = "select * from Pmt_Shiftime";
sqlstr = String.Format(sqlstr, Mesnac.Basic.LanguageHelper.PleaseSelect);
dbHelper.CommandText = sqlstr;
DataTable table = dbHelper.ToDataTable();
List<Pmt_Shiftime> lst = new List<Pmt_Shiftime>();
foreach (DataRow row in table.Rows)
{
Pmt_Shiftime pmtShiftime = new Pmt_Shiftime();
pmtShiftime.Shift_id = Mesnac.Basic.DataProcessor.RowValue(row, "Shift_id", 0);
pmtShiftime.Shift_name = Mesnac.Basic.DataProcessor.RowValue(row, "Shift_name", String.Empty);
pmtShiftime.Shift_st = Mesnac.Basic.DataProcessor.RowValue(row, "Shift_st", String.Empty);
pmtShiftime.Shift_et = Mesnac.Basic.DataProcessor.RowValue(row, "Shift_et", String.Empty);
pmtShiftime.Shift_class = Mesnac.Basic.DataProcessor.RowValue(row, "Shift_class", 0);
lst.Add(pmtShiftime);
}
return lst;
}
#endregion
#region 判断某个物料是否存在(根据ID)
/// <summary>
/// 判断某个物料是否存在(根据ID)
/// </summary>
/// <param name="Id"></param>
/// <param name="name"></param>
/// <param name="mainId"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static bool IsExistsName(string Id, string name, int mainId)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.CommandType = CommandType.Text;
dbHelper.ClearParameter();
string sqlstr = "select count(ID) from Hw_WareHouse_Sub where MaterialID = @MaterialID and MainId=@MainId";
dbHelper.CommandText = sqlstr;
dbHelper.AddParameter("@MaterialID", Id);
dbHelper.AddParameter("@MainId", mainId);
object result = dbHelper.ToScalar();
if (result != null && result != System.DBNull.Value)
{
int intResult = 0;
int.TryParse(result.ToString(), out intResult);
if (intResult > 0)
{
return true;
}
}
return false;
}
#endregion
#region 判断某个物料是否存在(根据ID)
/// <summary>
/// 判断某个物料是否存在(根据ID)
/// </summary>
/// <param name="Id"></param>
/// <param name="name"></param>
/// <param name="mainId"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static bool IsExistsUpdateName(string MId, string name, int mainId,int Id)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.CommandType = CommandType.Text;
dbHelper.ClearParameter();
string sqlstr = "select count(ID) from Hw_WareHouse_Sub where MaterialID = @MaterialID and MainId=@MainId and ID<>@ID";
dbHelper.CommandText = sqlstr;
dbHelper.AddParameter("@MaterialID", MId);
dbHelper.AddParameter("@MainId", mainId);
dbHelper.AddParameter("@ID", Id);
object result = dbHelper.ToScalar();
if (result != null && result != System.DBNull.Value)
{
int intResult = 0;
int.TryParse(result.ToString(), out intResult);
if (intResult > 0)
{
return true;
}
}
return false;
}
#endregion
#region 根据物料id获取釜对应的material
/// <summary>
/// 根据物料id获取Pmt_material
/// </summary>
/// <param name="recipeId">物料id</param>
/// <returns>返回符合条件Pmt_Bin</returns>
public static DataTable GetMaterial(int MId)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.CommandType = CommandType.Text;
string strSql = "SELECT ID,PId,MaterialID,MaterialName,SetWeight,SetError FROM Hw_WareHouse_Sub where MainId=@MainId";
dbHelper.CommandText = strSql;
dbHelper.ClearParameter();
dbHelper.AddParameter("@MainId", MId);
DataTable table = dbHelper.ToDataTable();
if (table != null && table.Rows.Count > 0)
{
return table;
}
return null;
}
#endregion
#region 根据物料Mainid获取釜对应的material
/// <summary>
/// 根据物料id获取釜对应物料
/// </summary>
/// <param name="recipeId">物料id</param>
/// <returns>返回符合条件物料</returns>
public static Hw_WareHouse_Sub GetWareHouseMaterial(int MId)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
Hw_WareHouse_Sub sb = new Hw_WareHouse_Sub();
dbHelper.CommandType = CommandType.Text;
string strSql = "SELECT * FROM Hw_WareHouse_Sub where MainId=@MainId";
dbHelper.CommandText = strSql;
dbHelper.ClearParameter();
dbHelper.AddParameter("@MainId", MId);
DataTable table = dbHelper.ToDataTable();
if (table != null && table.Rows.Count > 0)
{
foreach (DataRow dr in table.Rows)
{
sb = ConvertDataRowToRecipeEntity(dr);
break;
}
return sb;
}
return null;
}
#endregion
#region 根据物料id获取釜material
/// <summary>
/// 根据物料id获取釜对应物料
/// </summary>
/// <param name="recipeId">物料id</param>
/// <returns>返回符合条件物料</returns>
public static Hw_WareHouse_Sub GetWareHouseMaterialId(int Id)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
Hw_WareHouse_Sub sb = new Hw_WareHouse_Sub();
dbHelper.CommandType = CommandType.Text;
string strSql = "SELECT * FROM Hw_WareHouse_Sub where ID=@Id";
dbHelper.CommandText = strSql;
dbHelper.ClearParameter();
dbHelper.AddParameter("@Id", Id);
DataTable table = dbHelper.ToDataTable();
if (table != null && table.Rows.Count > 0)
{
foreach (DataRow dr in table.Rows)
{
sb = ConvertDataRowToRecipeEntity(dr);
break;
}
return sb;
}
return null;
}
#endregion
#region 判断是否存在条码
/// <summary>
/// 判断某个物料是否存在(根据ID)
/// </summary>
/// <param name="Id"></param>
/// <param name="name"></param>
/// <param name="mainId"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static bool IsExistsCode(string code,int Id)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.CommandType = CommandType.Text;
dbHelper.ClearParameter();
string sqlstr = "select count(ID) from Hw_Warehouse where BarCode=@BarCode and ID<>@ID";
dbHelper.CommandText = sqlstr;
dbHelper.AddParameter("@BarCode", code);
dbHelper.AddParameter("@ID", Id);
object result = dbHelper.ToScalar();
if (result != null && result != System.DBNull.Value)
{
int intResult = 0;
int.TryParse(result.ToString(), out intResult);
if (intResult > 0)
{
return true;
}
}
return false;
}
#endregion
/// <summary>
/// 保存物料信息
/// </summary>
/// <param name="recipe"></param>
/// <returns></returns>
public static bool InsertWareHouseSub(Hw_WareHouse_Sub sub)
{
//DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
//if (dbHelper == null)
//{
// throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
//}
//dbHelper.CommandType = CommandType.Text;
//string sqlstr = @"INSERT INTO Hw_WareHouse_Sub(MainId,MaterialID,MaterialName,Material_Code,SetWeight)VALUES(@MainId,@MaterialID,@MaterialName,@Material_Code,@SetWeight)";
//dbHelper.ClearParameter();
//dbHelper.CommandText = sqlstr;
//dbHelper.AddParameter("@ID", sub.ID);
//dbHelper.AddParameter("@MainId", sub.MainId);
//dbHelper.AddParameter("@MaterialID", sub.MaterialID);
//dbHelper.AddParameter("@MaterialName", sub.MaterialName);
//dbHelper.AddParameter("@Material_Code", sub.Material_Code);
//dbHelper.AddParameter("@SetWeight", sub.SetWeight);
//dbHelper.ExecuteNonQuery();
sub.ID = 0;
IFreeSql fsql = FreeHelper.Instance;
var result = fsql.Insert<Hw_WareHouse_Sub>(sub).ExecuteAffrows();
if (result>0)
{
return true;
}
return false;
}
/// <summary>
/// 更新物料信息
/// </summary>
/// <param name="recipe"></param>
/// <returns></returns>
public static bool UpdateWareHouseSub(Hw_WareHouse_Sub sub)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.CommandType = CommandType.Text;
string sqlstr = sqlstr = @"UPDATE Hw_WareHouse_Sub set MainId = @MainId,MaterialID =@MaterialID,MaterialName=@MaterialName,Material_Code=@Material_Code,SetWeight=@SetWeight where ID = @ID";
dbHelper.ClearParameter();
dbHelper.CommandText = sqlstr;
dbHelper.AddParameter("@ID", sub.ID);
dbHelper.AddParameter("@MainId", sub.MainId);
dbHelper.AddParameter("@MaterialID", sub.MaterialID);
dbHelper.AddParameter("@MaterialName", sub.MaterialName);
dbHelper.AddParameter("@Material_Code", sub.Material_Code);
dbHelper.AddParameter("@SetWeight", sub.SetWeight);
dbHelper.ExecuteNonQuery();
return true;
}
/// <summary>
/// 更新釜信息
/// </summary>
/// <param name="recipe"></param>
/// <returns></returns>
public static bool UpdateWareHouse(Hw_Warehouse wh)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.CommandType = CommandType.Text;
string sqlstr = sqlstr = @"UPDATE [dbo].[Hw_Warehouse] set Name = @Name,BarCode =@BarCode,UpdateTime=@UpdateTime where ID = @ID";
dbHelper.ClearParameter();
dbHelper.CommandText = sqlstr;
dbHelper.AddParameter("@ID", wh.ID);
dbHelper.AddParameter("@Name", wh.Name);
dbHelper.AddParameter("@BarCode", wh.BarCode);
dbHelper.AddParameter("@UpdateTime",DateTime.Now.ToString());
dbHelper.ExecuteNonQuery();
return true;
}
#region 把DataRow的数据封装至配方实体
/// 把DataRow的数据封装至配方实体
/// </summary>
/// <param name="dr">配方数据行</param>
/// <returns>返回封装号的配方实体对象</returns>
public static Hw_WareHouse_Sub ConvertDataRowToRecipeEntity(DataRow dr)
{
if (dr != null)
{
Hw_WareHouse_Sub recipe = new Hw_WareHouse_Sub();
recipe.ID = Mesnac.Basic.DataProcessor.RowValue(dr, "ID", 0);
recipe.MainId = Mesnac.Basic.DataProcessor.RowValue(dr, "MainId", 0);
recipe.MaterialID = Mesnac.Basic.DataProcessor.RowValue(dr, "MaterialID", String.Empty);
recipe.MaterialName = Mesnac.Basic.DataProcessor.RowValue(dr, "MaterialName", String.Empty);
recipe.Material_Code = Mesnac.Basic.DataProcessor.RowValue(dr, "Material_Code", String.Empty);
recipe.SetWeight =Convert.ToDouble( Mesnac.Basic.DataProcessor.RowValue(dr, "SetWeight", 0));
return recipe;
}
else
{
return null;
}
}
#endregion
#region 设置(网格控件)的表头、字体和行样式
/// <summary>
/// 设置(网格控件)的表头、字体和行样式
/// </summary>
/// <param name="grid"></param>
public static void SetDataGridViewStyle(DataGridView grid)
{
lock (String.Empty)
{
try
{
if (grid == null)
{
ICSharpCode.Core.LoggingService<WarehouseHelper>.Warn("设置计划背景色失败网格控件为null");
return;
}
grid.RowTemplate.Height = 28;
grid.DefaultCellStyle.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
grid.ColumnHeadersHeight = 28;
grid.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
grid.RowHeadersVisible = false;
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService<WarehouseHelper>.Error("【投料釜管理】设置网格控件的表头、字体和行样式SetDataGridViewStyle失败" + ex.Message);
}
}
}
#endregion
#region 根据物料ID删除物料
public static void DeleteMaterial(int id)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.CommandType = CommandType.Text;
dbHelper.ClearParameter();
string strSql = "DELETE FROM Hw_WareHouse_Sub WHERE ID = @ID";
dbHelper.CommandText = strSql;
dbHelper.AddParameter("@ID", id);
dbHelper.ExecuteNonQuery();
}
#endregion
#region 根据物料ID删除物料
public static void DeleteAllMaterial(int id)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.CommandType = CommandType.Text;
dbHelper.ClearParameter();
string strSql = "DELETE FROM Hw_WareHouse_Sub WHERE MainId = @ID";
dbHelper.CommandText = strSql;
dbHelper.AddParameter("@ID", id);
dbHelper.ExecuteNonQuery();
}
#endregion
}
}