|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Data;
|
|
|
using System.Windows.Forms;
|
|
|
using ICSharpCode.Core;
|
|
|
using Mesnac.Codd.Session;
|
|
|
using Mesnac.Action.Base;
|
|
|
using System.Reflection;
|
|
|
using System.Configuration;
|
|
|
using Mesnac.Action.ChemicalWeighing.Technical.PmtRecipe.entity;
|
|
|
|
|
|
namespace Mesnac.Action.ChemicalWeighing.Technical.PmtRecipe
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// 工艺配方辅助类
|
|
|
/// </summary>
|
|
|
public class RecipeHelper
|
|
|
{
|
|
|
#region 静态属性定义
|
|
|
|
|
|
#region 配方码表业务
|
|
|
|
|
|
#region 配方主信息 - 获取配方类型列表
|
|
|
|
|
|
/// <summary>
|
|
|
/// 配方主信息 - 配方类型列表
|
|
|
/// </summary>
|
|
|
public static DataTable RecipeTypeList
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
if (BaseDataHelper.SysCode.ContainsKey("PmtType"))
|
|
|
{
|
|
|
DataTable dt = BaseDataHelper.SysCode["PmtType"];
|
|
|
DataTable table = BaseDataHelper.CloneDataTable(dt);
|
|
|
return table;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 配方主信息 - 获取配方状态列表
|
|
|
|
|
|
/// <summary>
|
|
|
/// 配方主信息 - 配方状态列表
|
|
|
/// </summary>
|
|
|
public static DataTable RecipeStateList
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
if (BaseDataHelper.SysCode.ContainsKey("PmtState"))
|
|
|
{
|
|
|
DataTable dt = BaseDataHelper.SysCode["PmtState"];
|
|
|
DataTable table = BaseDataHelper.CloneDataTable(dt);
|
|
|
return table;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 静态方法定义
|
|
|
|
|
|
#region 界面处理业务
|
|
|
|
|
|
#region 获取控件所属设备单元编号
|
|
|
/// <summary>
|
|
|
/// 获取控件所属设备单元编号
|
|
|
/// </summary>
|
|
|
/// <param name="c">控件参数</param>
|
|
|
/// <returns>返回控件所属设备单元</returns>
|
|
|
public static string GetUnitNumByControl(Control c)
|
|
|
{
|
|
|
if (c == null)
|
|
|
{
|
|
|
return String.Empty;
|
|
|
}
|
|
|
if (c.Parent == null)
|
|
|
{
|
|
|
return String.Empty;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (c.Parent.Tag == null)
|
|
|
{
|
|
|
return GetUnitNumByControl(c.Parent);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return c.Parent.Tag as string;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 获取控件自身设备单元编号
|
|
|
/// <summary>
|
|
|
/// 获取控件自身设备单元编号
|
|
|
/// </summary>
|
|
|
/// <param name="c">控件参数</param>
|
|
|
/// <returns>返回控件自身设备单元</returns>
|
|
|
public static string GetItselfUnitNumByControl(Control c)
|
|
|
{
|
|
|
if (c == null)
|
|
|
{
|
|
|
return String.Empty;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (c.Tag == null)
|
|
|
{
|
|
|
return String.Empty;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return c.Tag as string;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 网格头辅助方法-如果为0则转换为null
|
|
|
|
|
|
/// <summary>
|
|
|
/// 如果为0则转换为null
|
|
|
/// </summary>
|
|
|
/// <param name="dgv"></param>
|
|
|
/// <param name="rowInx"></param>
|
|
|
/// <param name="colInx"></param>
|
|
|
public static void Is0ToNull(DataGridView dgv, int rowInx, int colInx)
|
|
|
{
|
|
|
if (rowInx >= 0 && colInx >= 0 && (dgv.Columns[colInx] is DataGridViewTextBoxColumn) && (
|
|
|
((DataGridViewTextBoxColumn)dgv.Columns[colInx]).ValueType == typeof(double) ||
|
|
|
((DataGridViewTextBoxColumn)dgv.Columns[colInx]).ValueType == typeof(decimal) ||
|
|
|
((DataGridViewTextBoxColumn)dgv.Columns[colInx]).ValueType == typeof(int)))
|
|
|
{
|
|
|
if (dgv.Rows[rowInx].Cells[colInx].Value != null
|
|
|
&& dgv.Rows[rowInx].Cells[colInx].Value != DBNull.Value)
|
|
|
{
|
|
|
double d = 0.0;
|
|
|
if (!double.TryParse(dgv.Rows[rowInx].Cells[colInx].Value.ToString(), out d))
|
|
|
{
|
|
|
dgv.CancelEdit();
|
|
|
}
|
|
|
else if (d == 0)
|
|
|
{
|
|
|
dgv.Rows[rowInx].Cells[colInx].Value = DBNull.Value;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 网格头辅助方法-初始化网格控件事件
|
|
|
|
|
|
/// <summary>
|
|
|
/// 初始化网格控件事件
|
|
|
/// </summary>
|
|
|
/// <param name="grid"></param>
|
|
|
public static void InitDataGridEvent(DataGridView grid)
|
|
|
{
|
|
|
grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
|
|
|
grid.DataError -= grid_DataError;
|
|
|
grid.DataError += grid_DataError;
|
|
|
|
|
|
//grid.CellValueChanged -= grid_CellValueChanged;
|
|
|
//grid.CellValueChanged += grid_CellValueChanged;
|
|
|
|
|
|
grid.CellValidating -= grid_CellValidating;
|
|
|
grid.CellValidating += grid_CellValidating;
|
|
|
|
|
|
grid.CellMouseDown -= grid_CellMouseDown;
|
|
|
grid.CellMouseDown += grid_CellMouseDown;
|
|
|
|
|
|
grid.SortCompare -= grid_SortCompare;
|
|
|
grid.SortCompare += grid_SortCompare;
|
|
|
grid.AllowUserToAddRows = false;
|
|
|
grid.ReadOnly = false;
|
|
|
grid.AutoGenerateColumns = false;
|
|
|
grid.AllowUserToResizeRows = false;
|
|
|
grid.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;
|
|
|
}
|
|
|
|
|
|
#region 事件处理方法
|
|
|
|
|
|
private static void grid_DataError(object sender, DataGridViewDataErrorEventArgs e)
|
|
|
{
|
|
|
DataGridView dgv = (DataGridView)sender;
|
|
|
dgv.CancelEdit();
|
|
|
e.Cancel = true;
|
|
|
}
|
|
|
|
|
|
private static void grid_CellValueChanged(object sender, DataGridViewCellEventArgs e)
|
|
|
{
|
|
|
DataGridView dgv = (DataGridView)sender;
|
|
|
|
|
|
if (dgv.Columns[e.ColumnIndex].DataPropertyName == "MaterialName")
|
|
|
{
|
|
|
dgv.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Value = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
|
|
|
}
|
|
|
Is0ToNull(dgv, e.RowIndex, e.ColumnIndex);
|
|
|
}
|
|
|
|
|
|
private static void grid_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
|
|
|
{
|
|
|
if (string.IsNullOrWhiteSpace(e.FormattedValue.ToString()))
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
DataGridView dgv = (DataGridView)sender;
|
|
|
Is0ToNull(dgv, e.RowIndex, e.ColumnIndex);
|
|
|
}
|
|
|
|
|
|
private static void grid_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
|
|
|
{
|
|
|
if (e.Button == MouseButtons.Right)
|
|
|
{
|
|
|
if (e.RowIndex >= 0)
|
|
|
{
|
|
|
DataGridView dgv = (DataGridView)sender;
|
|
|
dgv.ClearSelection();
|
|
|
dgv.Rows[e.RowIndex].Selected = true;
|
|
|
dgv.CurrentCell = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private static void grid_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
|
|
|
{
|
|
|
DataGridView dgv = (DataGridView)sender;
|
|
|
e.SortResult = Convert.ToInt32(dgv.Rows[e.RowIndex1].Cells[0].Value.ToString()) -
|
|
|
Convert.ToInt32(dgv.Rows[e.RowIndex2].Cells[0].Value.ToString());
|
|
|
e.Handled = true;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 根据GridView控件是否为只读,判断当前配方是否处于编辑状态
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据GridView控件是否为只读,判断当前配方是否处于编辑状态
|
|
|
/// </summary>
|
|
|
public static bool IsEditMode(Mesnac.Action.Base.BaseAction baseAction)
|
|
|
{
|
|
|
bool flag = true;
|
|
|
List<Mesnac.Controls.Default.MCDataGridView> gridList = baseAction.GetTControls<Mesnac.Controls.Default.MCDataGridView>();
|
|
|
foreach (Mesnac.Controls.Default.MCDataGridView grid in gridList)
|
|
|
{
|
|
|
string unitNum = RecipeHelper.GetUnitNumByControl(grid);
|
|
|
if (Basic.BasicHelper.BasEquip.StrUnitList.Contains(unitNum) && grid.ReadOnly == true)
|
|
|
{
|
|
|
flag = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 禁用、启用界面控件
|
|
|
|
|
|
/// <summary>
|
|
|
/// 禁用、启用界面控件
|
|
|
/// </summary>
|
|
|
/// <param name="baseAction">Action对象</param>
|
|
|
/// <param name="flag">true为启用,false为禁用</param>
|
|
|
public static void SetRecipeUIEnabled(Mesnac.Action.Base.BaseAction baseAction, bool flag)
|
|
|
{
|
|
|
foreach (Mesnac.Controls.Base.IBaseControl control in baseAction.GetAllMCControls())
|
|
|
{
|
|
|
if (baseAction.DbOptionTypesIsModify(control) && !control.MCKey.Contains("[PmtRecipe].[GUID]") && !control.MCKey.Contains("[PmtRecipe].[RecipeType].Query"))
|
|
|
{
|
|
|
string unitNum = GetUnitNumByControl(control as Control);
|
|
|
if (!String.IsNullOrEmpty(unitNum))
|
|
|
{
|
|
|
if (Basic.BasicHelper.BasEquip.StrUnitList.Contains(unitNum.Trim()))
|
|
|
{
|
|
|
control.MCEnabled = flag;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
control.MCEnabled = flag;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
List<Mesnac.Controls.Default.MCDataGridView> gridList = baseAction.GetTControls<Mesnac.Controls.Default.MCDataGridView>();
|
|
|
foreach (Mesnac.Controls.Default.MCDataGridView grid in gridList)
|
|
|
{
|
|
|
string unitNum = GetUnitNumByControl(grid as Control);
|
|
|
if (Basic.BasicHelper.BasEquip.StrUnitList.Contains(unitNum.Trim()))
|
|
|
{
|
|
|
grid.ReadOnly = !flag;
|
|
|
if (grid.ContextMenuStrip != null)
|
|
|
{
|
|
|
grid.ContextMenuStrip.Enabled = flag;
|
|
|
}
|
|
|
if (grid.MCKey != null && (grid.MCKey.Contains("[PmtMixWeight]") || grid.MCKey.Contains("[PmtMillWeight]")))
|
|
|
{
|
|
|
if (grid.Columns.Contains("WeightID"))
|
|
|
{
|
|
|
grid.Columns["WeightID"].ReadOnly = true;
|
|
|
}
|
|
|
if (grid.Columns.Contains("MaterialCode"))
|
|
|
{
|
|
|
grid.Columns["MaterialCode"].ReadOnly = true;
|
|
|
}
|
|
|
if (grid.Columns.Contains("MaterialIKindName"))
|
|
|
{
|
|
|
grid.Columns["MaterialIKindName"].ReadOnly = true;
|
|
|
}
|
|
|
}
|
|
|
if (grid.MCKey != null && (grid.MCKey.Contains("[PmtMixStep]") || grid.MCKey.Contains("[PmtMillStep]") || grid.MCKey.Contains("[PmtMixTempCurve]")))
|
|
|
{
|
|
|
if (grid.Columns.Contains("MixStep"))
|
|
|
{
|
|
|
grid.Columns["MixStep"].ReadOnly = true;
|
|
|
}
|
|
|
if (grid.Columns.Contains("MillStep"))
|
|
|
{
|
|
|
grid.Columns["MillStep"].ReadOnly = true;
|
|
|
}
|
|
|
if (grid.Columns.Contains("SeqIndex"))
|
|
|
{
|
|
|
grid.Columns["SeqIndex"].ReadOnly = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 重置选中的配方
|
|
|
|
|
|
/// <summary>
|
|
|
/// 重置选中的配方
|
|
|
/// </summary>
|
|
|
/// <param name="action">当前action对象</param>
|
|
|
/// <param name="defaultRecipe">要选中的配方</param>
|
|
|
//public static void ResetSelectRecipe(BaseAction action, Entity.Pmt_recipe defaultRecipe)
|
|
|
//{
|
|
|
// Control cmbRecipeMaterialGUID = action.GetControlById("cbMaterialGUID");
|
|
|
// Control cmbRecipeVersion = action.GetControlById("cbRecipeVersion");
|
|
|
// if (cmbRecipeMaterialGUID == null || !(cmbRecipeMaterialGUID is ComboBox))
|
|
|
// {
|
|
|
// ICSharpCode.Core.LoggingService<SelectRecipeTypeComboBoxAction>.Warn("配方管理-选择配方-缺少配方物料列表组合框控件!");
|
|
|
// return;
|
|
|
// }
|
|
|
// if (cmbRecipeVersion == null || !(cmbRecipeVersion is ComboBox))
|
|
|
// {
|
|
|
// ICSharpCode.Core.LoggingService<SelectRecipeTypeComboBoxAction>.Warn("配方管理-选择配方-缺少配方版本列表组合框控件!");
|
|
|
// return;
|
|
|
// }
|
|
|
// ComboBox cbRecipeMaterialGUID = cmbRecipeMaterialGUID as ComboBox;
|
|
|
// ComboBox cbRecipeVersion = cmbRecipeVersion as ComboBox;
|
|
|
|
|
|
// Entity.SimplePmtRecipe originalSelectRecipe = cbRecipeMaterialGUID.SelectedItem as Entity.SimplePmtRecipe;
|
|
|
// string originalRecipeVersion = cbRecipeVersion.SelectedItem as string;
|
|
|
|
|
|
// int recipeType = BaseDataHelper.GetSysValue("Recipe.LastRecipeType", 0);
|
|
|
// int recipeState = BaseDataHelper.GetSysValue("Recipe.LastRecipeState", 1);
|
|
|
|
|
|
// cbRecipeMaterialGUID.Text = String.Empty;
|
|
|
// List<Entity.SimplePmtRecipe> lst = TechnicalHelper.GetRecipeMaterialListPY(recipeType, recipeState, String.Empty);
|
|
|
|
|
|
// (cmbRecipeMaterialGUID as Mesnac.Controls.Base.IBaseControl).IsEventValid = false;
|
|
|
// (cmbRecipeVersion as Mesnac.Controls.Base.IBaseControl).IsEventValid = false;
|
|
|
|
|
|
// cbRecipeMaterialGUID.DataSource = null;
|
|
|
// cbRecipeVersion.DataSource = null;
|
|
|
|
|
|
// (cmbRecipeMaterialGUID as Mesnac.Controls.Base.IBaseControl).IsEventValid = true;
|
|
|
// (cmbRecipeVersion as Mesnac.Controls.Base.IBaseControl).IsEventValid = true;
|
|
|
|
|
|
// cbRecipeMaterialGUID.Items.Clear();
|
|
|
// cbRecipeVersion.Items.Clear();
|
|
|
// foreach (Entity.SimplePmtRecipe r in lst)
|
|
|
// {
|
|
|
// cbRecipeMaterialGUID.Items.Add(r);
|
|
|
// }
|
|
|
|
|
|
// if (defaultRecipe != null && !String.IsNullOrEmpty(defaultRecipe.MaterialGUID))
|
|
|
// {
|
|
|
// foreach (object item in cbRecipeMaterialGUID.Items)
|
|
|
// {
|
|
|
// if ((item as Entity.SimplePmtRecipe).MaterialGUID == defaultRecipe.MaterialGUID)
|
|
|
// {
|
|
|
// cbRecipeMaterialGUID.SelectedItem = item;
|
|
|
// break;
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
// bool flag = false;
|
|
|
// if (originalSelectRecipe != null)
|
|
|
// {
|
|
|
// foreach (object item in cbRecipeMaterialGUID.Items)
|
|
|
// {
|
|
|
// if ((item as Entity.SimplePmtRecipe).MaterialGUID.Equals(originalSelectRecipe.MaterialGUID, StringComparison.CurrentCultureIgnoreCase))
|
|
|
// {
|
|
|
// cbRecipeMaterialGUID.SelectedItem = item;
|
|
|
// flag = true;
|
|
|
// break;
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
// if (!flag)
|
|
|
// {
|
|
|
// //如果未设置默认选中的项,则默认选中第一项
|
|
|
// foreach (object item in cbRecipeMaterialGUID.Items)
|
|
|
// {
|
|
|
// cbRecipeMaterialGUID.SelectedItem = item;
|
|
|
// break;
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
// if (defaultRecipe != null)
|
|
|
// {
|
|
|
// cbRecipeVersion.SelectedItem = defaultRecipe.RecipeVersion;
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
// if (!String.IsNullOrEmpty(originalRecipeVersion))
|
|
|
// {
|
|
|
// cbRecipeVersion.SelectedItem = originalRecipeVersion;
|
|
|
// }
|
|
|
// }
|
|
|
//}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 设置(网格控件)的表头、字体和行样式
|
|
|
/// <summary>
|
|
|
/// 设置(网格控件)的表头、字体和行样式
|
|
|
/// </summary>
|
|
|
/// <param name="grid"></param>
|
|
|
public static void SetDataGridViewStyle(DataGridView grid)
|
|
|
{
|
|
|
lock (String.Empty)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
if (grid == null)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService<RecipeHelper>.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<RecipeHelper>.Error("【配方管理】设置(网格控件)的表头、字体和行样式SetDataGridViewStyle失败:" + ex.Message);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 配方数据业务
|
|
|
|
|
|
#region 配方业务
|
|
|
|
|
|
#region 查询业务
|
|
|
|
|
|
#region GenerateNextRecipeCode 获取下一个可用的配方编码 (1位物料大类、2位物料细类、10位流水)
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取下一个可用的配方编码 (13位物料编码、10位版本号)
|
|
|
/// </summary>
|
|
|
/// <param name="recipeMaterialCode">配方物料编码</param>
|
|
|
/// <param name="recipeVersion">配方版本</param>
|
|
|
/// <returns>返回配方编码</returns>
|
|
|
public static string GenerateNextRecipeCode(string recipeMaterialCode, string recipeVersion)
|
|
|
{
|
|
|
string result = String.Format("{0}{1}", recipeMaterialCode, recipeVersion);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region GenerateNextRecipeVersion 根据配方物料GUID获取下一个可用的配方版本号
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据配方物料GUID获取下一个可用的配方版本号
|
|
|
/// </summary>
|
|
|
/// <param name="recipeMaterialGUID">配方物料GUID</param>
|
|
|
/// <returns>返回下一个可用的配方版本号</returns>
|
|
|
public static string GenerateNextRecipeVersion(string recipeMaterialGUID)
|
|
|
{
|
|
|
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
|
|
|
}
|
|
|
string sqlstr = "select MAX(RecipeVersion) from PmtRecipe where MaterialGUID = @MaterialGUID";
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@MaterialGUID", recipeMaterialGUID);
|
|
|
object result = dbHelper.ToScalar();
|
|
|
if (Mesnac.Basic.DataProcessor.IsNullOrEmpty(result))
|
|
|
{
|
|
|
return String.Format("{0:yyyyMMdd}01", DateTime.Now);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
string recipeVersion = result.ToString();
|
|
|
if (String.Format("{0:yyyyMMdd}", DateTime.Now) == recipeVersion.Substring(0,8))
|
|
|
{
|
|
|
int serialNum = Convert.ToInt32(recipeVersion.Substring(8, 2));
|
|
|
serialNum++;
|
|
|
return String.Format("{0:yyyyMMdd}", DateTime.Now) + Mesnac.Basic.DataProcessor.FillZero(serialNum.ToString(), 2);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return String.Format("{0:yyyyMMdd}01", DateTime.Now);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 判断某个配方是否存在
|
|
|
|
|
|
/// <summary>
|
|
|
/// 判断某个配方是否存在(根据ID)
|
|
|
/// </summary>
|
|
|
/// <param name="recipeID">配方ID</param>
|
|
|
/// <returns>存在返回true,不存在返回false</returns>
|
|
|
public static bool IsExists(string recipeID)
|
|
|
{
|
|
|
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(recipe_Id) from Base_RecipeInfo where recipe_Id = @RecipeID";
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@RecipeID", recipeID);
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 判断某个配方是否存在
|
|
|
/// </summary>
|
|
|
/// <param name="recipeName">配方名称</param>
|
|
|
/// <returns></returns>
|
|
|
public static bool IsExistsName(string recipeName)
|
|
|
{
|
|
|
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(recipe_Name) from Base_RecipeInfo where recipe_Name = @recipe_Name";
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@recipe_Name", recipeName);
|
|
|
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 根据配方类型和配方状态获取配方列表
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据配方类型和配方状态获取配方列表
|
|
|
/// </summary>
|
|
|
/// <param name="recipeType">配方类型</param>
|
|
|
/// <param name="recipeState">配方状态</param>
|
|
|
/// <returns>返回符合条件的配方列表</returns>
|
|
|
public static DataTable GetRecipeListForSelect(int recipeType, string recipeState)
|
|
|
{
|
|
|
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
|
|
|
}
|
|
|
string sqlstr = String.Empty;
|
|
|
if (String.IsNullOrEmpty(recipeState))
|
|
|
{
|
|
|
sqlstr = @"select * from
|
|
|
(
|
|
|
select '' as GUID,'{0}' as ShowName, GETDATE() as LastModifyTime
|
|
|
union ALL
|
|
|
select TA.GUID,rtrim(TA.RecipeMaterialName)+'('+rtrim(isnull(TB.ItemName,''))+')'+'['+rtrim(TA.RecipeVersion)+']' as ShowName, TA.LastModifyTime from PmtRecipe TA left join SysCode TB on TA.RecipeType = TB.ItemCode where TA.DeleteFlag='0' and TA.RecipeType = @RecipeType and TB.TypeID='PmtType'
|
|
|
) as temp
|
|
|
order by LastModifyTime desc";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
sqlstr = @"select * from
|
|
|
(
|
|
|
select '' as GUID,'{0}' as ShowName, GETDATE() as LastModifyTime
|
|
|
union ALL
|
|
|
select TA.GUID,rtrim(TA.RecipeMaterialName)+'('+rtrim(isnull(TB.ItemName,''))+')'+'['+rtrim(TA.RecipeVersion)+']' as ShowName, TA.LastModifyTime from PmtRecipe TA left join SysCode TB on TA.RecipeType = TB.ItemCode where TA.DeleteFlag='0' and TA.RecipeType = @RecipeType and TA.RecipeState = @RecipeState and TB.TypeID='PmtType'
|
|
|
) as temp
|
|
|
order by LastModifyTime desc";
|
|
|
}
|
|
|
sqlstr = String.Format(sqlstr, Mesnac.Basic.LanguageHelper.PleaseSelect);
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@RecipeType", recipeType);
|
|
|
if (!String.IsNullOrEmpty(recipeState))
|
|
|
{
|
|
|
dbHelper.AddParameter("@RecipeState", recipeState);
|
|
|
}
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
return dt;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 根据配方物料GUID和配方版本查询配方GUID
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据配方物料GUID和配方版本查询配方GUID
|
|
|
/// </summary>
|
|
|
/// <param name="recipeMaterialGUID">配方物料GUID</param>
|
|
|
/// <param name="recipeVersion">配方版本</param>
|
|
|
/// <returns>返回对应的配方GUID</returns>
|
|
|
public static string GetRecipeGUID(string recipeMaterialGUID, string recipeVersion)
|
|
|
{
|
|
|
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 = "select GUID from PmtRecipe where MaterialGUID = @MaterialGUID and RecipeVersion = @RecipeVersion";
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.AddParameter("@MaterialGUID", recipeMaterialGUID);
|
|
|
dbHelper.AddParameter("@RecipeVersion", recipeVersion);
|
|
|
object result = dbHelper.ToScalar();
|
|
|
if (!Mesnac.Basic.DataProcessor.IsNullOrEmpty(result))
|
|
|
{
|
|
|
return result as string;
|
|
|
}
|
|
|
return String.Empty;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 判断是否存在某种物料的配方
|
|
|
|
|
|
/// <summary>
|
|
|
/// 判断是否存在某种物料的配方
|
|
|
/// </summary>
|
|
|
/// <param name="recipeMaterialGUID">配方物料GUID</param>
|
|
|
/// <returns>存在返回true,不存在返回false</returns>
|
|
|
public static bool ExistsRecipeMaterialGUID(string recipeMaterialGUID)
|
|
|
{
|
|
|
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 = "select count(GUID) from PmtRecipe where DeleteFlag = '0' and MaterialGUID = @MaterialGUID";
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.AddParameter("@MaterialGUID", recipeMaterialGUID);
|
|
|
object result = dbHelper.ToScalar();
|
|
|
if (!Mesnac.Basic.DataProcessor.IsNullOrEmpty(result))
|
|
|
{
|
|
|
int intResult = 0;
|
|
|
int.TryParse(result.ToString(), out intResult);
|
|
|
if (intResult > 0)
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 查询配方主信息
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取所有配方列表
|
|
|
/// </summary>
|
|
|
public static DataTable GetAllRecipeDT()
|
|
|
{
|
|
|
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 *, case Recipe_Verify when '1' then '是' else '否' end as 'RecipeVerify' from Pmt_recipe order by End_datetime desc";
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
return dt;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据配方名称获取配方信息
|
|
|
/// </summary>
|
|
|
/// <param name="recipeName">配方名称</param>
|
|
|
/// <returns>返回符合条件的配方</returns>
|
|
|
public static Base_RecipeInfo GetRecipeByName(string recipeName)
|
|
|
{
|
|
|
Base_RecipeInfo pmtRecipe = new Base_RecipeInfo();
|
|
|
|
|
|
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 top 1 * FROM Base_RecipeInfo WHERE recipe_Name = @Recipe_Name";
|
|
|
dbHelper.CommandText = strSql;
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.AddParameter("@Recipe_Name", recipeName);
|
|
|
DataTable table = dbHelper.ToDataTable();
|
|
|
if (table != null && table.Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in table.Rows)
|
|
|
{
|
|
|
pmtRecipe = ConvertDataRowToBaseRepiceInfo(dr);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
return pmtRecipe;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据配方ID获取Base_RecipeInfo
|
|
|
/// </summary>
|
|
|
/// <param name="recipeId"></param>
|
|
|
/// <returns></returns>
|
|
|
public static Base_RecipeInfo GetRecipeById(string recipeId)
|
|
|
{
|
|
|
Base_RecipeInfo pmtRecipe = new Base_RecipeInfo();
|
|
|
|
|
|
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 top 1 * FROM Base_RecipeInfo WHERE recipe_Id = @recipeId";
|
|
|
dbHelper.CommandText = strSql;
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.AddParameter("@recipeId", recipeId);
|
|
|
DataTable table = dbHelper.ToDataTable();
|
|
|
if (table != null && table.Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in table.Rows)
|
|
|
{
|
|
|
pmtRecipe = ConvertDataRowToBaseRepiceInfo(dr);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
return pmtRecipe;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取配方主信息
|
|
|
/// </summary>
|
|
|
/// <param name="recipeGUID">配方GUID</param>
|
|
|
/// <returns>返回配方主信息DataRow</returns>
|
|
|
public static DataRow GetRecipeByGUID(string recipeGUID)
|
|
|
{
|
|
|
return BaseDataHelper.GetDataRowByTableAndGUID("Pmt_recipe", recipeGUID);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取配方主信息
|
|
|
/// </summary>
|
|
|
/// <param name="recipeGUID">配方GUID</param>
|
|
|
/// <param name="recipeVersion">配方版本</param>
|
|
|
/// <returns>返回配方主信息DataRow</returns>
|
|
|
public static DataRow GetRecipeByGUID(string recipeGUID, string recipeVersion)
|
|
|
{
|
|
|
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 PmtRecipe where GUID = @RecipeGUID and RecipeVersion = @RecipeVersion";
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@RecipeGUID", recipeGUID);
|
|
|
dbHelper.AddParameter("@RecipeVersion", recipeVersion);
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
|
{
|
|
|
return dt.Rows[0];
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取配方主信息
|
|
|
/// </summary>
|
|
|
/// <param name="recipeMaterialName">配方物料名称</param>
|
|
|
/// <param name="recipeVersion">配方版本</param>
|
|
|
/// <returns>返回配方主信息DataRow</returns>
|
|
|
public static DataRow GetRecipeByRecipeMaterialName(string recipeMaterialName, string recipeVersion)
|
|
|
{
|
|
|
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 PmtRecipe where RecipeMaterialName = @RecipeMaterialName and RecipeVersion = @RecipeVersion";
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@RecipeMaterialName", recipeMaterialName);
|
|
|
dbHelper.AddParameter("@RecipeVersion", recipeVersion);
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
|
{
|
|
|
return dt.Rows[0];
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取配方主信息实体对象
|
|
|
/// </summary>
|
|
|
/// <param name="recipeGUID">配方GUID</param>
|
|
|
/// <returns>返回配方主信息实体对象</returns>
|
|
|
public static Entity.Pmt_recipe GetRecipeEntityByGUID(string recipeGUID)
|
|
|
{
|
|
|
DataRow dr = GetRecipeByGUID(recipeGUID);
|
|
|
Entity.Pmt_recipe recipe = ConvertDataRowToRecipeEntity(dr);
|
|
|
return recipe;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取配方主信息实体对象
|
|
|
/// </summary>
|
|
|
/// <param name="recipeGUID">配方GUID</param>
|
|
|
/// <param name="recipeVersion">配方版本</param>
|
|
|
/// <returns>返回配方主信息实体对象</returns>
|
|
|
public static Entity.Pmt_recipe GetRecipeEntityByGUID(string recipeGUID, string recipeVersion)
|
|
|
{
|
|
|
DataRow dr = GetRecipeByGUID(recipeGUID, recipeVersion);
|
|
|
Entity.Pmt_recipe recipe = ConvertDataRowToRecipeEntity(dr);
|
|
|
return recipe;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取配方主信息实体对象
|
|
|
/// </summary>
|
|
|
/// <param name="recipeMaterialName">配方物料名称</param>
|
|
|
/// <param name="recipeVersion">配方版本</param>
|
|
|
/// <returns>返回配方主信息实体对象</returns>
|
|
|
public static Entity.Pmt_recipe GetRecipeEntityByRecipeMaterialName(string recipeMaterialName, string recipeVersion)
|
|
|
{
|
|
|
DataRow dr = GetRecipeByRecipeMaterialName(recipeMaterialName, recipeVersion);
|
|
|
Entity.Pmt_recipe recipe = ConvertDataRowToRecipeEntity(dr);
|
|
|
return recipe;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 把DataRow的数据封装至配方实体
|
|
|
/// </summary>
|
|
|
/// <param name="dr">配方数据行</param>
|
|
|
/// <returns>返回封装号的配方实体对象</returns>
|
|
|
public static Entity.Pmt_recipe ConvertDataRowToRecipeEntity(DataRow dr)
|
|
|
{
|
|
|
if (dr != null)
|
|
|
{
|
|
|
Entity.Pmt_recipe recipe = new Entity.Pmt_recipe();
|
|
|
recipe.ID = Mesnac.Basic.DataProcessor.RowValue(dr, "ID", String.Empty);
|
|
|
recipe.Equip_Code = Mesnac.Basic.DataProcessor.RowValue(dr, "Equip_Code", String.Empty);
|
|
|
recipe.Recipe_Code = Mesnac.Basic.DataProcessor.RowValue(dr, "Recipe_Code", String.Empty);
|
|
|
recipe.Version = Mesnac.Basic.DataProcessor.RowValue(dr, "Version", String.Empty);
|
|
|
recipe.Recipe_Name = Mesnac.Basic.DataProcessor.RowValue(dr, "Recipe_Name", String.Empty);
|
|
|
recipe.Mixer_line = Mesnac.Basic.DataProcessor.RowValue(dr, "Mixer_line", String.Empty);
|
|
|
recipe.Recipe_type = Mesnac.Basic.DataProcessor.RowValue(dr, "Recipe_type", 0);
|
|
|
recipe.Recipe_Used = Mesnac.Basic.DataProcessor.RowValue(dr, "Recipe_Used", 0);
|
|
|
recipe.Recipe_Verify = Mesnac.Basic.DataProcessor.RowValue(dr, "Recipe_Verify", 0);
|
|
|
recipe.Total_Weight = Mesnac.Basic.DataProcessor.RowValue(dr, "Total_Weight", 0.0M);
|
|
|
recipe.Total_Error = Mesnac.Basic.DataProcessor.RowValue(dr, "Total_Error", 0.0M);
|
|
|
recipe.End_datetime = Mesnac.Basic.DataProcessor.RowValue(dr, "End_datetime", String.Empty);
|
|
|
recipe.Remark = Mesnac.Basic.DataProcessor.RowValue(dr, "Remark", String.Empty);
|
|
|
recipe.Attach_User = Mesnac.Basic.DataProcessor.RowValue(dr, "Attach_User", 0);
|
|
|
recipe.GroupBags = Mesnac.Basic.DataProcessor.RowValue(dr, "GroupBags", 0);
|
|
|
recipe.IF_FLAG = Mesnac.Basic.DataProcessor.RowValue(dr, "IF_FLAG", 0);
|
|
|
recipe.Validity = Mesnac.Basic.DataProcessor.RowValue(dr, "Validity", 0);
|
|
|
|
|
|
return recipe;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 查询配方物料GUID
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询配方物料GUID
|
|
|
/// </summary>
|
|
|
/// <param name="recipeMaterialName">配方物料名称</param>
|
|
|
/// <param name="recipeVersion">配方版本</param>
|
|
|
/// <returns>返回对应的配方物料GUID</returns>
|
|
|
public static string GetRecipeMaterialGUID(string recipeMaterialName, string recipeVersion)
|
|
|
{
|
|
|
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 = "select top 1 MaterialGUID from PmtRecipe where RecipeMaterialName = @RecipeMaterialName and RecipeVersion = @RecipeVersion";
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.AddParameter("@RecipeMaterialName", recipeMaterialName);
|
|
|
dbHelper.AddParameter("@RecipeVersion", recipeVersion);
|
|
|
object result = dbHelper.ToScalar();
|
|
|
if (result != null && result != System.DBNull.Value)
|
|
|
{
|
|
|
return result.ToString();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return String.Empty;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 保存业务
|
|
|
|
|
|
#region 保存配方主信息
|
|
|
|
|
|
/// <summary>
|
|
|
/// 保存配方主信息
|
|
|
/// </summary>
|
|
|
/// <param name="recipe">配方主信息对象</param>
|
|
|
/// <returns>返回当前配方的GUID</returns>
|
|
|
public static string SaveRecipe(Entity.Pmt_recipe recipe)
|
|
|
{
|
|
|
#region 每次保存都生成一个新的配方版本
|
|
|
|
|
|
recipe.ID = String.Empty;
|
|
|
recipe.Version = RecipeHelper.GenerateNextRecipeVersion(recipe.ID); //每次生成一个新版本
|
|
|
recipe.Recipe_Code = RecipeHelper.GenerateNextRecipeCode(recipe.Recipe_Code, recipe.Version); //设置配方编码为配方物料编码+配方版本号
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
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 = String.Empty;
|
|
|
if (string.IsNullOrEmpty(recipe.ID) || !IsExists(recipe.ID))
|
|
|
{
|
|
|
//添加新配方
|
|
|
sqlstr = @"insert into PmtRecipe(GUID, MaterialGUID, RecipeMaterialCode, RecipeMaterialName, RecipeCode, RecipeName, RecipeDesc, RecipeVersion, RecipeType, RecipeState, ShelfLotCount, LotTotalWeight, CreateTime, CreateActor, LastModifyTime, LastModifyActor, DataSource, DeleteFlag)
|
|
|
values(@GUID, @MaterialGUID, @RecipeMaterialCode, @RecipeMaterialName, @RecipeCode, @RecipeName, @RecipeDesc, @RecipeVersion, @RecipeType, @RecipeState, @ShelfLotCount, @LotTotalWeight, @CreateTime, @CreateActor, @LastModifyTime, @LastModifyActor, @DataSource, @DeleteFlag)";
|
|
|
recipe.ID = Guid.NewGuid().ToString().ToUpper();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//更新原有配方
|
|
|
sqlstr = @"update PmtRecipe set MaterialGUID=@MaterialGUID, RecipeMaterialCode=@RecipeMaterialCode, RecipeMaterialName=@RecipeMaterialName, RecipeCode=@RecipeCode, RecipeName=@RecipeName, RecipeDesc=@RecipeDesc,
|
|
|
RecipeVersion=@RecipeVersion, RecipeType=@RecipeType, RecipeState=@RecipeState, ShelfLotCount=@ShelfLotCount, LotTotalWeight=@LotTotalWeight, CreateTime=@CreateTime, CreateActor=@CreateActor, LastModifyTime=@LastModifyTime, LastModifyActor=@LastModifyActor, DataSource=@DataSource, DeleteFlag=@DeleteFlag where GUID = @GUID";
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
|
|
|
return recipe.ID;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
/// <summary>
|
|
|
/// 保存配方的物料信息
|
|
|
/// </summary>
|
|
|
/// <param name="pmt_Weigh">保存配方的物料信息</param>
|
|
|
public static void InsertWeigh(Base_RecipeMaterial pmt_Weigh)
|
|
|
{
|
|
|
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 = String.Empty;
|
|
|
if (!IsExistsRecipeMaterial(pmt_Weigh.recipeId, pmt_Weigh.materialName))
|
|
|
{
|
|
|
//添加新配方
|
|
|
sqlstr = @"insert into Base_RecipeMaterial (recipe_Id, material_Id, material_Nme, material_Weight, put_Time, edit_User)
|
|
|
VALUES (@recipe_Id, @material_Id, @material_Nme, @material_Weight, @put_Time, @edit_User)";
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@recipe_Id", pmt_Weigh.recipeId);
|
|
|
dbHelper.AddParameter("@material_Id", pmt_Weigh.materialId);
|
|
|
dbHelper.AddParameter("@material_Nme", pmt_Weigh.materialName);
|
|
|
dbHelper.AddParameter("@material_Weight", pmt_Weigh.materialWeight);
|
|
|
dbHelper.AddParameter("@put_Time", pmt_Weigh.putTime);
|
|
|
dbHelper.AddParameter("@edit_User", pmt_Weigh.editUser);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
sqlstr = @"update Base_RecipeMaterial set material_Weight=@material_Weight where recipe_Id = @recipe_Id and material_Nme = @material_Nme ";
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@recipe_Id", pmt_Weigh.recipeId);
|
|
|
dbHelper.AddParameter("@material_Nme", pmt_Weigh.materialName);
|
|
|
dbHelper.AddParameter("@material_Weight", pmt_Weigh.materialWeight);
|
|
|
}
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 删除配方的物料信息
|
|
|
/// </summary>
|
|
|
/// <param name="recipeID">配方ID</param>
|
|
|
public static void DelWeighByRecipeID(string recipeID)
|
|
|
{
|
|
|
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 = String.Empty;
|
|
|
sqlstr = @"delete from Base_RecipeMaterial where recipe_Id = @Recipe_ID";
|
|
|
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@Recipe_ID", recipeID);
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
}
|
|
|
|
|
|
public static void DelCratParamByRecipeId(string recipeId)
|
|
|
{
|
|
|
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 = String.Empty;
|
|
|
sqlstr = @"delete from Base_RecipeCratParam where recipe_Id = @Recipe_ID";
|
|
|
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@Recipe_ID", recipeId);
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 删除业务
|
|
|
|
|
|
#region 删除配方信息
|
|
|
|
|
|
/// <summary>
|
|
|
/// 删除配方信息
|
|
|
/// </summary>
|
|
|
/// <param name="recipeID">配方ID</param>
|
|
|
public static void DeleteRecipe(string recipeID)
|
|
|
{
|
|
|
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 = "delete from Base_RecipeInfo where recipe_Id = @ID";
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@ID", recipeID);
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 配方导入、导出
|
|
|
|
|
|
#region 配方导入
|
|
|
|
|
|
#region 导入配方主表
|
|
|
|
|
|
/// <summary>
|
|
|
/// 导入配方主表
|
|
|
/// </summary>
|
|
|
/// <param name="fileName">要导入的文件名</param>
|
|
|
/// <param name="isClearOriginal">是否要清空原有数据</param>
|
|
|
/// <returns>成功返回true,失败返回false</returns>
|
|
|
public static bool ImportPmtRecipe(string fileName, bool isClearOriginal)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
|
|
|
}
|
|
|
#region 清空原有数据
|
|
|
|
|
|
if (isClearOriginal)
|
|
|
{
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
string sqlstr = "truncate table PmtRecipe";
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
ICSharpCode.Core.LoggingService<RecipeHelper>.Debug("在导入配方主表时,清空了原有配方主表数据!");
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 导入数据
|
|
|
int count = 0;
|
|
|
string insertSql = @"delete from PmtRecipe where GUID=@GUID;
|
|
|
insert into PmtRecipe(GUID, MaterialGUID, RecipeMaterialCode, RecipeMaterialName, RecipeCode, RecipeName, RecipeDesc, RecipeVersion, RecipeType, RecipeUserVersion, RecipeState, LotDoneTime, ShelfLotCount, LotTotalWeight, AuditFlag, AuditUser, AuditDateTime, StartDatetime, EndDatetime, CreateTime, CreateActor, LastModifyTime, LastModifyActor, DataSource, DeleteFlag, Remark)
|
|
|
values(@GUID, @MaterialGUID, @RecipeMaterialCode, @RecipeMaterialName, @RecipeCode, @RecipeName, @RecipeDesc, @RecipeVersion, @RecipeType, @RecipeUserVersion, @RecipeState, @LotDoneTime, @ShelfLotCount, @LotTotalWeight, @AuditFlag, @AuditUser, @AuditDateTime, @StartDatetime, @EndDatetime, @CreateTime, @CreateActor, @LastModifyTime, @LastModifyActor, @DataSource, @DeleteFlag, @Remark)";
|
|
|
DataTable dt = Mesnac.Basic.SerializeHandler.Deserialize<DataTable>(fileName);
|
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in dt.Rows)
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = insertSql;
|
|
|
dbHelper.AddParameter("@GUID", dr["GUID"]);
|
|
|
dbHelper.AddParameter("@MaterialGUID", dr["MaterialGUID"]);
|
|
|
dbHelper.AddParameter("@RecipeMaterialCode", dr["RecipeMaterialCode"]);
|
|
|
dbHelper.AddParameter("@RecipeMaterialName", dr["RecipeMaterialName"]);
|
|
|
dbHelper.AddParameter("@RecipeCode", dr["RecipeCode"]);
|
|
|
dbHelper.AddParameter("@RecipeName", dr["RecipeName"]);
|
|
|
dbHelper.AddParameter("@RecipeDesc", dr["RecipeDesc"]);
|
|
|
dbHelper.AddParameter("@RecipeVersion", dr["RecipeVersion"]);
|
|
|
dbHelper.AddParameter("@RecipeType", dr["RecipeType"]);
|
|
|
dbHelper.AddParameter("@RecipeUserVersion", dr["RecipeUserVersion"]);
|
|
|
dbHelper.AddParameter("@RecipeState", dr["RecipeState"]);
|
|
|
dbHelper.AddParameter("@LotDoneTime", dr["LotDoneTime"]);
|
|
|
dbHelper.AddParameter("@ShelfLotCount", dr["ShelfLotCount"]);
|
|
|
dbHelper.AddParameter("@LotTotalWeight", dr["LotTotalWeight"]);
|
|
|
dbHelper.AddParameter("@AuditFlag", dr["AuditFlag"]);
|
|
|
dbHelper.AddParameter("@AuditUser", dr["AuditUser"]);
|
|
|
dbHelper.AddParameter("@AuditDateTime", dr["AuditDateTime"]);
|
|
|
dbHelper.AddParameter("@StartDatetime", dr["StartDatetime"]);
|
|
|
dbHelper.AddParameter("@EndDatetime", dr["EndDatetime"]);
|
|
|
dbHelper.AddParameter("@CreateTime", dr["CreateTime"]);
|
|
|
dbHelper.AddParameter("@CreateActor", dr["CreateActor"]);
|
|
|
dbHelper.AddParameter("@LastModifyTime", dr["LastModifyTime"]);
|
|
|
dbHelper.AddParameter("@LastModifyActor", dr["LastModifyActor"]);
|
|
|
dbHelper.AddParameter("@DataSource", dr["DataSource"]);
|
|
|
dbHelper.AddParameter("@DeleteFlag", dr["DeleteFlag"]);
|
|
|
dbHelper.AddParameter("@Remark", dr["Remark"]);
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
count++;
|
|
|
System.Threading.Thread.Sleep(2); //中间休眠2毫秒
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
ICSharpCode.Core.LoggingService<RecipeHelper>.Debug("导入配方主表完毕,导入记录数:" + count + ",导入文件名:" + fileName);
|
|
|
return true;
|
|
|
}
|
|
|
catch(Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService<RecipeHelper>.Error("导入配方主表异常:" + ex.Message, ex);
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 导入下辅机称量物料数据
|
|
|
|
|
|
/// <summary>
|
|
|
/// 导入下辅机称量物料数据
|
|
|
/// </summary>
|
|
|
/// <param name="fileName">要导入的文件名</param>
|
|
|
/// <param name="isClearOriginal">是否清除原有数据</param>
|
|
|
/// <returns>成功返回true,失败返回false</returns>
|
|
|
public static bool ImportPmtMillWeight(string fileName, bool isClearOriginal)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
|
|
|
}
|
|
|
#region 清空原有数据
|
|
|
|
|
|
if (isClearOriginal)
|
|
|
{
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
string sqlstr = "truncate table PmtMillWeight";
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
ICSharpCode.Core.LoggingService<RecipeHelper>.Debug("在导入下辅机称量物料数据时,清空了原有下辅机称量物料数据!");
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 导入数据
|
|
|
int count = 0;
|
|
|
string insertSql = @"delete from PmtMillWeight where GUID=@GUID or (MillWeightHeadGUID=@MillWeightHeadGUID and WeightID=@WeightID);
|
|
|
insert into PmtMillWeight(GUID, MillWeightHeadGUID, WeightID, ActCode, MaterialGUID, MaterialCode, MaterialName, SetWeight, SetUpTolerance, SetLowTolerance, MaterialType, NeedMaterialCode, ChanYongFlag, AutoPloy, Remark)
|
|
|
values(@GUID, @MillWeightHeadGUID, @WeightID, @ActCode, @MaterialGUID, @MaterialCode, @MaterialName, @SetWeight, @SetUpTolerance, @SetLowTolerance, @MaterialType, @NeedMaterialCode, @ChanYongFlag, @AutoPloy, @Remark)";
|
|
|
DataTable dt = Mesnac.Basic.SerializeHandler.Deserialize<DataTable>(fileName);
|
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in dt.Rows)
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = insertSql;
|
|
|
dbHelper.AddParameter("@GUID", dr["GUID"]);
|
|
|
dbHelper.AddParameter("@MillWeightHeadGUID", dr["MillWeightHeadGUID"]);
|
|
|
dbHelper.AddParameter("@WeightID", dr["WeightID"]);
|
|
|
|
|
|
dbHelper.AddParameter("@ActCode", dr["ActCode"]);
|
|
|
dbHelper.AddParameter("@MaterialGUID", dr["MaterialGUID"]);
|
|
|
dbHelper.AddParameter("@MaterialCode", dr["MaterialCode"]);
|
|
|
dbHelper.AddParameter("@MaterialName", dr["MaterialName"]);
|
|
|
dbHelper.AddParameter("@SetWeight", dr["SetWeight"]);
|
|
|
dbHelper.AddParameter("@SetUpTolerance", dr["SetUpTolerance"]);
|
|
|
dbHelper.AddParameter("@SetLowTolerance", dr["SetLowTolerance"]);
|
|
|
dbHelper.AddParameter("@MaterialType", dr["MaterialType"]);
|
|
|
dbHelper.AddParameter("@NeedMaterialCode", dr["NeedMaterialCode"]);
|
|
|
dbHelper.AddParameter("@ChanYongFlag", dr["ChanYongFlag"]);
|
|
|
dbHelper.AddParameter("@AutoPloy", dr["AutoPloy"]);
|
|
|
dbHelper.AddParameter("@Remark", dr["Remark"]);
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
count++;
|
|
|
System.Threading.Thread.Sleep(2); //中间休眠2毫秒
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
ICSharpCode.Core.LoggingService<RecipeHelper>.Debug("导入下辅机称量物料数据完毕,导入记录数:" + count + ",导入文件名:" + fileName);
|
|
|
return true;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService<RecipeHelper>.Error("导入下辅机称量物料数据异常:" + ex.Message, ex);
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 配方导出
|
|
|
|
|
|
#region 导出配方主表
|
|
|
|
|
|
/// <summary>
|
|
|
/// 导出配方主表
|
|
|
/// </summary>
|
|
|
/// <param name="fileName">要导出的文件名</param>
|
|
|
/// <returns>成功返回true,失败返回false</returns>
|
|
|
public static bool ExportPmtRecipe(string fileName)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
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 = "select * from PmtRecipe";
|
|
|
DataTable dt = dbHelper.GetDataTableBySql(sqlstr);
|
|
|
Mesnac.Basic.SerializeHandler.Serialize<DataTable>(dt, fileName);
|
|
|
ICSharpCode.Core.LoggingService<RecipeHelper>.Debug("导出配方主表完毕,文件名:" + fileName);
|
|
|
return true;
|
|
|
}
|
|
|
catch(Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService<RecipeHelper>.Error("导出配方主表异常:" + ex.Message, ex);
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 导出下辅机称量物料数据
|
|
|
|
|
|
/// <summary>
|
|
|
/// 导出下辅机称量物料数据
|
|
|
/// </summary>
|
|
|
/// <param name="fileName">要导出的文件名</param>
|
|
|
/// <returns>成功返回true,失败返回false</returns>
|
|
|
public static bool ExportPmtMillWeight(string fileName)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
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 = "select * from PmtMillWeight";
|
|
|
DataTable dt = dbHelper.GetDataTableBySql(sqlstr);
|
|
|
Mesnac.Basic.SerializeHandler.Serialize<DataTable>(dt, fileName);
|
|
|
ICSharpCode.Core.LoggingService<RecipeHelper>.Debug("导出下辅机称量物料数据完毕,文件名:" + fileName);
|
|
|
return true;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService<RecipeHelper>.Error("导出下辅机称量物料数据异常:" + ex.Message, ex);
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 配方打印(报表)
|
|
|
|
|
|
#region 获取配方基本信息 PmtRecipe
|
|
|
|
|
|
/// <summary>
|
|
|
/// 通过配方GUID获取配方基本信息
|
|
|
/// </summary>
|
|
|
/// <param name="recipeGUID"></param>
|
|
|
/// <returns>返回配方基本信息</returns>
|
|
|
public static DataTable GetPmtRecipe(string recipeGUID)
|
|
|
{
|
|
|
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
return new DataTable();
|
|
|
}
|
|
|
string sqlStr = @"SELECT TA.*,TB.ItemName AS RecipeTypeName,TC.ItemName AS RecipeStateName FROM PmtRecipe TA
|
|
|
LEFT JOIN SysCode TB ON TA.RecipeType=TB.ItemCode AND TB.TypeID='PmtType'
|
|
|
LEFT JOIN SysCode TC ON TA.RecipeState=TC.ItemCode AND TC.TypeID='PmtState'
|
|
|
WHERE TA.GUID = '" + recipeGUID + "' ";
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = sqlStr;
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
return dt;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取配方信息
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public static DataTable GetBaseRecipeInfo(string recipeId)
|
|
|
{
|
|
|
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 row_number() over (order by edit_Time) as index_Id,recipe_Id,recipe_Name,recipe_Type,recipe_Weight,edit_User,edit_Time,remark, case recipe_State when '1' then '是' else '否' end as 'recipe_State'";
|
|
|
sqlstr += "from Base_RecipeInfo where 1=1";
|
|
|
if (recipeId != "")
|
|
|
{
|
|
|
sqlstr += "and recipe_Id = @recipeId";
|
|
|
dbHelper.AddParameter("@recipeId", recipeId);
|
|
|
}
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
return dt;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取配方物料信息
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public static DataTable GetRecipeMaterialInfo(string recipeId)
|
|
|
{
|
|
|
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 row_number() over (order by edit_Time) as index_Id,* from Base_RecipeMaterial where 1=1 ";
|
|
|
|
|
|
if(recipeId != "")
|
|
|
{
|
|
|
sqlstr += "and recipe_Id = @recipeId";
|
|
|
dbHelper.AddParameter("@recipeId", recipeId);
|
|
|
}
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
return dt;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取配方物料信息
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public static List<Base_RecipeMaterial> GetRecipeMaterialInfoByRecipeId(string recipeId)
|
|
|
{
|
|
|
|
|
|
List<Base_RecipeMaterial> recipeMaterials = new List<Base_RecipeMaterial>();
|
|
|
|
|
|
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 row_number() over (order by material_Id) as index_Id,* from Base_RecipeMaterial where 1=1 ";
|
|
|
|
|
|
if (recipeId != "")
|
|
|
{
|
|
|
sqlstr += "and recipe_Id = @recipeId";
|
|
|
dbHelper.AddParameter("@recipeId", recipeId);
|
|
|
}
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
DataTable table = dbHelper.ToDataTable();
|
|
|
|
|
|
if (table != null && table.Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in table.Rows)
|
|
|
{
|
|
|
Base_RecipeMaterial recipeMaterial = new Base_RecipeMaterial();
|
|
|
recipeMaterial = ConvertDataRowToBaseRepiceMaterial(dr);
|
|
|
recipeMaterials.Add(recipeMaterial);
|
|
|
}
|
|
|
}
|
|
|
return recipeMaterials;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据配方信息、物料信息获取工艺参数
|
|
|
/// </summary>
|
|
|
/// <param name="recipeId"></param>
|
|
|
/// <param name="materialId"></param>
|
|
|
/// <returns></returns>
|
|
|
public static DataTable GerCratParamByRecipeAndMaterial(string recipeId,string materialId)
|
|
|
{
|
|
|
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 sqlstr = "select row_number() over (order by edit_Time) as index_Id,* from Base_RecipeCratParam where 1=1";
|
|
|
|
|
|
if (recipeId != "")
|
|
|
{
|
|
|
sqlstr += " and recipe_Id = @recipeId";
|
|
|
dbHelper.AddParameter("@recipeId", recipeId);
|
|
|
}
|
|
|
|
|
|
if (materialId != "")
|
|
|
{
|
|
|
sqlstr += " and material_Id = @materialId";
|
|
|
dbHelper.AddParameter("@materialId", materialId);
|
|
|
}
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
return dt;
|
|
|
}catch(Exception ex)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
public static List<Base_RecipeCratParam> GerCratParamListByRecipeAndMaterial(string recipeId, string materialId)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
|
|
|
List<Base_RecipeCratParam> recipeCratParams = new List<Base_RecipeCratParam>();
|
|
|
|
|
|
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 row_number() over (order by edit_Time) as index_Id,* from Base_RecipeCratParam where 1=1";
|
|
|
|
|
|
if (recipeId != "")
|
|
|
{
|
|
|
sqlstr += " and recipe_Id = @recipeId";
|
|
|
dbHelper.AddParameter("@recipeId", recipeId);
|
|
|
}
|
|
|
|
|
|
if (materialId != "")
|
|
|
{
|
|
|
sqlstr += " and material_Id = @materialId";
|
|
|
dbHelper.AddParameter("@materialId", materialId);
|
|
|
}
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
DataTable table = dbHelper.ToDataTable();
|
|
|
|
|
|
if (table != null && table.Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in table.Rows)
|
|
|
{
|
|
|
Base_RecipeCratParam recipeCratParam = new Base_RecipeCratParam();
|
|
|
recipeCratParam = ConvertDataRowToBaseRepiceCratParam(dr);
|
|
|
recipeCratParams.Add(recipeCratParam);
|
|
|
}
|
|
|
}
|
|
|
return recipeCratParams;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 保持配方信息
|
|
|
/// </summary>
|
|
|
/// <param name="recipe"></param>
|
|
|
/// <returns></returns>
|
|
|
public static string InsertRecipe(Base_RecipeInfo base_RepiceInfo)
|
|
|
{
|
|
|
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 = String.Empty;
|
|
|
if (!IsExists(base_RepiceInfo.recipeId))
|
|
|
{
|
|
|
//添加新配方
|
|
|
sqlstr = @"insert into Base_RecipeInfo(recipe_Id, recipe_Name, recipe_Type, recipe_Weight, recipe_State, edit_User, edit_Time, remark) values (@recipe_Id, @recipe_Name, @recipe_Type, @recipe_Weight, @recipe_State, @edit_User, @edit_Time, @remark)";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//更新原有配方
|
|
|
sqlstr = @"update Base_RecipeInfo set recipe_Id=@recipe_Id, recipe_Name=@recipe_Name, recipe_Type=@recipe_Type, recipe_Weight=@recipe_Weight, recipe_State=@recipe_State, edit_User=@edit_User,
|
|
|
edit_Time=@edit_Time, remark=@remark where recipe_Id = @recipe_Id";
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@recipe_Id", base_RepiceInfo.recipeId);
|
|
|
dbHelper.AddParameter("@recipe_Name", base_RepiceInfo.recipeName);
|
|
|
dbHelper.AddParameter("@recipe_Type", base_RepiceInfo.recipeType);
|
|
|
dbHelper.AddParameter("@recipe_Weight", base_RepiceInfo.recipeWeight);
|
|
|
dbHelper.AddParameter("@recipe_State", base_RepiceInfo.recipeState);
|
|
|
dbHelper.AddParameter("@edit_User", base_RepiceInfo.editUser);
|
|
|
dbHelper.AddParameter("@edit_Time", base_RepiceInfo.editTime);
|
|
|
dbHelper.AddParameter("@remark", base_RepiceInfo.remark);
|
|
|
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
|
|
|
return base_RepiceInfo.recipeId;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// Datatable转为Base_RepiceInfo
|
|
|
/// </summary>
|
|
|
/// <param name="dr"></param>
|
|
|
/// <returns></returns>
|
|
|
public static Base_RecipeInfo ConvertDataRowToBaseRepiceInfo(DataRow dr)
|
|
|
{
|
|
|
if (dr != null)
|
|
|
{
|
|
|
Base_RecipeInfo recipe = new Base_RecipeInfo();
|
|
|
recipe.recipeId = Mesnac.Basic.DataProcessor.RowValue(dr, "recipe_Id", String.Empty);
|
|
|
recipe.recipeName = Mesnac.Basic.DataProcessor.RowValue(dr, "recipe_Name", String.Empty);
|
|
|
recipe.recipeState = Convert.ToInt32(Mesnac.Basic.DataProcessor.RowValue(dr, "recipe_State", String.Empty));
|
|
|
recipe.recipeType = Mesnac.Basic.DataProcessor.RowValue(dr, "recipe_Type", String.Empty);
|
|
|
recipe.recipeWeight = Convert.ToDecimal(Mesnac.Basic.DataProcessor.RowValue(dr, "recipe_Weight", String.Empty));
|
|
|
recipe.editUser = Mesnac.Basic.DataProcessor.RowValue(dr, "edit_User", String.Empty);
|
|
|
recipe.remark = Mesnac.Basic.DataProcessor.RowValue(dr, "remark", String.Empty);
|
|
|
|
|
|
return recipe;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static Base_RecipeMaterial ConvertDataRowToBaseRepiceMaterial(DataRow dr)
|
|
|
{
|
|
|
if (dr != null)
|
|
|
{
|
|
|
Base_RecipeMaterial recipe = new Base_RecipeMaterial();
|
|
|
recipe.materialId = Mesnac.Basic.DataProcessor.RowValue(dr, "material_Id", String.Empty);
|
|
|
recipe.materialName = Mesnac.Basic.DataProcessor.RowValue(dr, "material_Nme", String.Empty);
|
|
|
recipe.recipeId = Mesnac.Basic.DataProcessor.RowValue(dr, "recipe_Id", String.Empty);
|
|
|
recipe.materialWeight = Convert.ToDecimal(Mesnac.Basic.DataProcessor.RowValue(dr, "material_Weight", String.Empty));
|
|
|
recipe.putTime = Convert.ToInt32(Mesnac.Basic.DataProcessor.RowValue(dr, "put_Time", String.Empty));
|
|
|
|
|
|
return recipe;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static Base_RecipeCratParam ConvertDataRowToBaseRepiceCratParam(DataRow dr)
|
|
|
{
|
|
|
if (dr != null)
|
|
|
{
|
|
|
Base_RecipeCratParam recipe = new Base_RecipeCratParam();
|
|
|
recipe.paramId = Mesnac.Basic.DataProcessor.RowValue(dr, "param_Id", String.Empty);
|
|
|
recipe.paramName = Mesnac.Basic.DataProcessor.RowValue(dr, "param_Name", String.Empty);
|
|
|
recipe.paramValue = Mesnac.Basic.DataProcessor.RowValue(dr, "param_Value", String.Empty);
|
|
|
recipe.recipeId = Mesnac.Basic.DataProcessor.RowValue(dr, "recipe_Id", String.Empty);
|
|
|
recipe.materialId = Mesnac.Basic.DataProcessor.RowValue(dr, "material_Id", String.Empty);
|
|
|
|
|
|
return recipe;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取配方物料关联的工艺参数
|
|
|
/// </summary>
|
|
|
/// <param name="recipeId"></param>
|
|
|
/// <param name="material"></param>
|
|
|
/// <returns></returns>
|
|
|
public static DataTable GetCratParamByRecipeAndMaterial(string recipeId, string material)
|
|
|
{
|
|
|
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 row_number() over (order by edit_Time) as index_Id ,* from Base_RecipeCratParam where 1=1";
|
|
|
|
|
|
if (recipeId != "")
|
|
|
{
|
|
|
sqlstr += " and recipe_Id = @recipeId";
|
|
|
dbHelper.AddParameter("@recipeId", recipeId);
|
|
|
}
|
|
|
|
|
|
if (material != "")
|
|
|
{
|
|
|
sqlstr += " and material_Id = @material";
|
|
|
dbHelper.AddParameter("@material", material);
|
|
|
}
|
|
|
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
return dt;
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 删除配方物料关联的工艺参数
|
|
|
/// </summary>
|
|
|
/// <param name="recipeID"></param>
|
|
|
public static void DeleteCratParam(string recipeID)
|
|
|
{
|
|
|
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 = "delete from Base_RecipeCratParam where recipe_Id = @recipeID ";
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.AddParameter("@recipeID", recipeID);
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 判断某个配方参数是否存在(根据配方编号及参数名称)
|
|
|
/// </summary>
|
|
|
/// <param name="recipeID"></param>
|
|
|
/// <returns></returns>
|
|
|
public static bool IsExistsCratParam(string recipeID,string param_Name)
|
|
|
{
|
|
|
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(recipe_Id) from Base_RecipeCratParam where recipe_Id = @RecipeID and param_Name = @param_Name";
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@RecipeID", recipeID);
|
|
|
dbHelper.AddParameter("@param_Name", param_Name);
|
|
|
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;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 判断某个配方物料是否存在
|
|
|
/// </summary>
|
|
|
/// <param name="recipeID"></param>
|
|
|
/// <param name="param_Name"></param>
|
|
|
/// <returns></returns>
|
|
|
public static bool IsExistsRecipeMaterial(string recipeID, string material_Nme)
|
|
|
{
|
|
|
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(recipe_Id) from Base_RecipeMaterial where recipe_Id = @RecipeID and material_Nme = @material_Nme";
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@RecipeID", recipeID);
|
|
|
dbHelper.AddParameter("@material_Nme", material_Nme);
|
|
|
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;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 添加工艺参数
|
|
|
/// </summary>
|
|
|
/// <param name="pmt_Weigh"></param>
|
|
|
public static void InsertCratParam(Base_RecipeCratParam cratParam)
|
|
|
{
|
|
|
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 = String.Empty;
|
|
|
if (!IsExistsCratParam(cratParam.recipeId, cratParam.paramName))
|
|
|
{
|
|
|
//添加新配方参数
|
|
|
sqlstr = @"insert into Base_RecipeCratParam (param_Id, param_Name, recipe_Id, material_Id, param_Value, edit_User)
|
|
|
values (@param_Id, @param_Name, @recipe_Id, @material_Id,@param_Value, @edit_User)";
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@param_Id", String.IsNullOrEmpty(cratParam.paramId) ? System.Guid.NewGuid().ToString("N") : cratParam.paramId);
|
|
|
dbHelper.AddParameter("@param_Name", cratParam.paramName);
|
|
|
dbHelper.AddParameter("@recipe_Id", cratParam.recipeId);
|
|
|
dbHelper.AddParameter("@material_Id", cratParam.materialId);
|
|
|
dbHelper.AddParameter("@param_Value", cratParam.paramValue);
|
|
|
dbHelper.AddParameter("@edit_User", cratParam.editUser);
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//更新新配方参数
|
|
|
sqlstr = @"update Base_RecipeCratParam set param_Value=@param_Value where recipe_Id = @recipe_Id and param_Name = @param_Name ";
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@param_Name", cratParam.paramName);
|
|
|
dbHelper.AddParameter("@recipe_Id", cratParam.recipeId);
|
|
|
dbHelper.AddParameter("@param_Value", cratParam.paramValue);
|
|
|
}
|
|
|
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
}
|
|
|
|
|
|
#region 冠合数据库操作
|
|
|
/// <summary>
|
|
|
/// 获取配方物料信息
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public static List<Base_RecipeInfo> GetBaseRecipeInfo()
|
|
|
{
|
|
|
|
|
|
List<Base_RecipeInfo> recipeMaterials = new List<Base_RecipeInfo>();
|
|
|
|
|
|
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 row_number() over (order by recipe_Name) as index_Id,* from Base_RecipeInfo where 1=1 ";
|
|
|
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
DataTable table = dbHelper.ToDataTable();
|
|
|
|
|
|
if (table != null && table.Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in table.Rows)
|
|
|
{
|
|
|
Base_RecipeInfo recipeMaterial = new Base_RecipeInfo();
|
|
|
recipeMaterial = ConvertDataRowToBaseRecipeInfo(dr);
|
|
|
recipeMaterials.Add(recipeMaterial);
|
|
|
}
|
|
|
}
|
|
|
return recipeMaterials;
|
|
|
}
|
|
|
public static Base_RecipeInfo ConvertDataRowToBaseRecipeInfo(DataRow dr)
|
|
|
{
|
|
|
if (dr != null)
|
|
|
{
|
|
|
Base_RecipeInfo recipe = new Base_RecipeInfo();
|
|
|
recipe.recipeId = Mesnac.Basic.DataProcessor.RowValue(dr, "recipe_Id", String.Empty);
|
|
|
recipe.recipeName = Mesnac.Basic.DataProcessor.RowValue(dr, "recipe_Name", String.Empty);
|
|
|
recipe.recipeType = Mesnac.Basic.DataProcessor.RowValue(dr, "recipe_Type", String.Empty);
|
|
|
return recipe;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
}
|
|
|
}
|