using Mesnac.Action.ChemicalWeighing.Entity; using Mesnac.Action.ChemicalWeighing.Entity.Barrel; using Mesnac.Action.ChemicalWeighing.Entity.material; using Mesnac.Action.ChemicalWeighing.Entity.station; using Mesnac.Codd.Session; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Mesnac.Action.ChemicalWeighing.Barrel { public class BarrelHelper { #region 查询桶信息 /// /// 查询物料信息 /// /// 物料信息表 public static DataTable QueryBarrel() { 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 strSql = "SELECT * FROM Hw_Barrel "; dbHelper.CommandText = strSql; DataTable table = dbHelper.ToDataTable(); return table; } #endregion #region 根据条码查询桶信息 /// /// 查询物料信息 /// /// 物料信息表 public static DataTable QueryIsExeBarrel(string barCode, 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.ClearParameter(); dbHelper.CommandType = CommandType.Text; string strSql = "SELECT * FROM Hw_Barrel where IsEnable='是' and BarCode=@BarCode and ID<>@ID"; dbHelper.CommandText = strSql; dbHelper.AddParameter("@BarCode", barCode); dbHelper.AddParameter("@ID", id); DataTable table = dbHelper.ToDataTable(); if (table != null && table.Rows.Count > 0) { return table; } return null; } #endregion #region 新增物料 /// /// 向数据库中新增物料信息 /// /// public static void addBarrel(Hw_Barrel bar) { 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 insertUserSql = "INSERT INTO Hw_Barrel(BarrelID, BarrelName, BarCode,IsEnable) VALUES(@BarrelID, @BarrelName, @BarCode,@IsEnable)"; dbHelper.CommandText = insertUserSql; dbHelper.AddParameter("@BarrelID", bar.BarrelID); dbHelper.AddParameter("@BarrelName", bar.BarrelName); dbHelper.AddParameter("@BarCode", bar.BarCode); dbHelper.AddParameter("@IsEnable", bar.IsEnable); dbHelper.ExecuteNonQuery(); } #endregion #region 根据ID修改物料信息 public static void UpdateMaterial(Hw_Barrel barrel) { try { 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 strSql = "UPDATE Hw_Barrel SET BarrelName=@BarrelName, BarCode=@BarCode,IsEnable=@IsEnable WHERE ID=@ID"; dbHelper.CommandText = strSql; dbHelper.AddParameter("@BarrelName", barrel.BarrelName); dbHelper.AddParameter("@BarCode", barrel.BarCode); dbHelper.AddParameter("@IsEnable", barrel.IsEnable); dbHelper.AddParameter("@ID", barrel.ID); dbHelper.ExecuteNonQuery(); } catch (Exception ex) { ICSharpCode.Core.LoggingService.Error("修改物料信息异常:" + ex.Message, ex); } } #endregion #region 根据ID解绑物料信息 public static void SplitMaterial(int Id) { try { 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 strSql = "UPDATE Hw_Barrel SET MaterialID=null, MaterialName=null,PlanId=null,Weight=null WHERE ID=@ID"; dbHelper.CommandText = strSql; dbHelper.AddParameter("@ID", Id); dbHelper.ExecuteNonQuery(); } catch (Exception ex) { ICSharpCode.Core.LoggingService.Error("解绑料桶料信息异常:" + ex.Message, ex); } } #endregion #region 根据物料ID删除物料 public static void delete(string 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_Barrel WHERE ID = @ID"; dbHelper.CommandText = strSql; dbHelper.AddParameter("@ID", id); dbHelper.ExecuteNonQuery(); } #endregion #region 获取物料对象集合 /// /// 获取包含所有物料对象的集合 /// /// 返回一个list集合 其中是Material对象 //public static List getMaterialList() //{ // DataTable table = getMaterial(); // List lst = new List(); // foreach (DataRow row in table.Rows) // { // Pmt_material material = new Pmt_material // { // ID = Mesnac.Basic.DataProcessor.RowValue(row, "ID", String.Empty), // Material_code = Mesnac.Basic.DataProcessor.RowValue(row, "Material_code", String.Empty), // Material_name = Mesnac.Basic.DataProcessor.RowValue(row, "Material_name", String.Empty), // Remark = Mesnac.Basic.DataProcessor.RowValue(row, "Remark", String.Empty), // Batch_number = Mesnac.Basic.DataProcessor.RowValue(row, "Batch_number", String.Empty), // Barcode1 = Mesnac.Basic.DataProcessor.RowValue(row, "Barcode1", String.Empty), // Barcode2 = Mesnac.Basic.DataProcessor.RowValue(row, "Barcode2", String.Empty), // Barcode3 = Mesnac.Basic.DataProcessor.RowValue(row, "Barcode3", String.Empty), // IsEnable = Mesnac.Basic.DataProcessor.RowValue(row, "IsEnable", String.Empty), // }; // lst.Add(material); // } // return lst; //} #endregion /// /// 获取仓库 /// /// /// /// public static MaterialBarCode QueryMaterBarCode(string code) { MaterialBarCode entity = new MaterialBarCode(); 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 b.Bin_Serial,b.Bin_Name,m.Material_code,m.Material_name from Pmt_Bin b left join xl_material m on b.Material_ID=m.ID where Material_code = @Code and IsEnable='是'"; dbHelper.CommandText = strSql; dbHelper.ClearParameter(); dbHelper.AddParameter("@Code", code); DataTable table = dbHelper.ToDataTable(); if (table != null && table.Rows.Count > 0) { foreach (DataRow dr in table.Rows) { entity = ConvertDataRowToBarCode(dr); return entity; } } return entity; } #region 根据桶条码判断是否绑定物料 /// /// 根据计划号 查看计划是否完成 /// /// 桶条码 /// true:存在;false:未完成 /// public static bool IsBindBarrel(string barCode) { 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 strSql = "DELETE FROM Hw_Barrel WHERE BarCode = @BarCode"; dbHelper.CommandText = strSql; dbHelper.AddParameter("@BarCode", barCode); object result = dbHelper.ToScalar(); if (result != null && result != DBNull.Value && Convert.ToInt32(result) > 0) { return true; } else { return false; } } #endregion #region Bind桶 /// /// Bind桶 /// /// 桶条码 /// true:更新成功;false:失败 /// public static bool BindBarrel(string barCode,string materialID,string materialName,decimal Weight) { try { 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 strSql = "UPDATE Hw_Barrel SET MaterialID=@MaterialID, MaterialName=@MaterialName,Weight=@Weight WHERE BarCode=@BarCode"; dbHelper.CommandText = strSql; dbHelper.AddParameter("@MaterialID", materialID); dbHelper.AddParameter("@MaterialName", materialName); dbHelper.AddParameter("@Weight", Weight); dbHelper.AddParameter("@BarCode", barCode); dbHelper.ExecuteNonQuery(); return true; } catch (Exception ex) { ICSharpCode.Core.LoggingService.Error("修改桶信息异常:" + ex.Message, ex); return false; } } #endregion private static MaterialBarCode ConvertDataRowToBarCode(DataRow dr) { if (dr != null) { MaterialBarCode bar = new MaterialBarCode(); bar.Bin_Serial = Mesnac.Basic.DataProcessor.RowValue(dr, "Bin_Serial", 0); bar.Bin_Name = Mesnac.Basic.DataProcessor.RowValue(dr, "Bin_Name", String.Empty); bar.Material_code = Mesnac.Basic.DataProcessor.RowValue(dr, "Material_code", String.Empty); bar.Material_name = Mesnac.Basic.DataProcessor.RowValue(dr, "Material_name", String.Empty); return bar; } else { return null; } } } }