|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using Mesnac.Action.Base;
|
|
|
using System.Windows.Forms;
|
|
|
using System.Xml;
|
|
|
using System.Data;
|
|
|
using System.IO.Ports;
|
|
|
using Mesnac.Controls.Base;
|
|
|
using Mesnac.Controls.Default;
|
|
|
using Mesnac.Codd.Session;
|
|
|
|
|
|
namespace Mesnac.Action.Feeding.Sys
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// 窗口条码枪扫描机台号
|
|
|
/// </summary>
|
|
|
public class ScanBarcodeAction : FeedingAction, IAction
|
|
|
{
|
|
|
private SerialPort serialPort = null;
|
|
|
|
|
|
public void Run(RuntimeParameter runtime)
|
|
|
{
|
|
|
base.LogDebug("条码枪,条码扫描业务...");
|
|
|
string portName = base.GetConfigValue("PortName", "COM7"); //获取配置文件中的串口口
|
|
|
int baudRate = Convert.ToInt32(base.GetConfigValue("BaudRate", "9600")); //获取配置文件中的波特率
|
|
|
this.serialPort = Mesnac.Communication.SerialPortService.Instance.GetSerialPort(portName, baudRate);
|
|
|
if (this.serialPort == null)
|
|
|
{
|
|
|
base.LogError("串口对象获取失败...");
|
|
|
return;
|
|
|
}
|
|
|
this.serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 条码扫描事件处理
|
|
|
/// </summary>
|
|
|
/// <param name="sender"></param>
|
|
|
/// <param name="e"></param>
|
|
|
protected void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
System.Threading.Thread.Sleep(200); //睡眠200毫秒,目的是为了能一次把缓冲区中的数据读取出来
|
|
|
string barStr = this.serialPort.ReadExisting().Trim();
|
|
|
if (barStr.IndexOf("~") > 0)
|
|
|
{
|
|
|
barStr = barStr.Substring(0, barStr.IndexOf("~"));
|
|
|
}
|
|
|
this.ProcessBarcode(barStr);
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
base.LogError(ex.Message);
|
|
|
base.LogError(ex.StackTrace);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 处理条码核心业务
|
|
|
/// </summary>
|
|
|
/// <param name="barStr">条码</param>
|
|
|
public void ProcessBarcode(string barStr)
|
|
|
{
|
|
|
if (barStr.Length == 5) //机台条码
|
|
|
{
|
|
|
Global.PublicVar.Instance.G_CBEquip = barStr;
|
|
|
return;
|
|
|
}
|
|
|
if (barStr.StartsWith("*") || barStr.StartsWith("#"))
|
|
|
{
|
|
|
barStr = barStr.Substring(1);
|
|
|
}
|
|
|
if (this.IsLetterOrDigit(barStr)) //判断扫描条码合法性
|
|
|
{
|
|
|
this.HandleScanBarcode(barStr);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//RubBarShow(Barstr); 老版本Delphi业务,暂时没有实现
|
|
|
string strMsg = String.Format("条码无效,请重新扫描!");
|
|
|
Mesnac.Basic.MessageBoxTimeOut.Show(strMsg, Language(1), 2000);
|
|
|
//ShowMsg(strMsg, Language(1), MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
|
}
|
|
|
}
|
|
|
#region 辅助方法
|
|
|
|
|
|
#region IsLetterOrDigit 判断一个字符串是否为字母和数字的组合
|
|
|
/// <summary>
|
|
|
/// 判断一个字符串是否为字母和数字的组合
|
|
|
/// </summary>
|
|
|
/// <param name="str">要验证的字符串</param>
|
|
|
/// <returns>是返回true,否返回false</returns>
|
|
|
public bool IsLetterOrDigit(string str)
|
|
|
{
|
|
|
bool flag = true;
|
|
|
foreach (char c in str)
|
|
|
{
|
|
|
if (!Char.IsLetterOrDigit(c))
|
|
|
{
|
|
|
flag = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region HandleScanBarcode 手动条码扫描核心业务
|
|
|
/// <summary>
|
|
|
/// 手动条码扫描核心业务
|
|
|
/// </summary>
|
|
|
/// <param name="barStr">条码号</param>
|
|
|
public void HandleScanBarcode(string barStr)
|
|
|
{
|
|
|
string materCode = String.Empty;
|
|
|
string materName;
|
|
|
int barlen;
|
|
|
string strMsg = String.Empty;
|
|
|
if (base.NetType == NetTypes.Net) //网络版条码处理
|
|
|
{
|
|
|
barlen = barStr.Length;
|
|
|
if (barlen < 15) //原材料条码
|
|
|
{
|
|
|
materCode = this.GetMatercodeByBar(barStr);
|
|
|
if (String.IsNullOrEmpty(materCode))
|
|
|
{
|
|
|
MediaPlayerEx.Play("2.WAV");
|
|
|
strMsg = String.Format("[{0}]无该条码批次信息!", barStr);
|
|
|
Mesnac.Basic.MessageBoxTimeOut.Show(strMsg, Language(1), 2000);
|
|
|
//ShowMsg(strMsg, Language(1), MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
|
return;
|
|
|
}
|
|
|
string scanBarcodeCBCode = base.GetConfigValue("ScanBarcodeCBCode", "107"); //从配置文件获取炭黑类型码
|
|
|
string[] cbCodes = scanBarcodeCBCode.Split(new char[] { ',' });
|
|
|
bool isCBFlag = false;
|
|
|
foreach (string code in cbCodes)
|
|
|
{
|
|
|
if (materCode.Substring(0, 3) == code)
|
|
|
{
|
|
|
isCBFlag = true;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
//if (materCode.Substring(0,3) == "107") //炭黑
|
|
|
if (isCBFlag)
|
|
|
{
|
|
|
this.AddInJarRecord(barStr, materCode, Global.PublicVar.Instance.G_CBEquip);
|
|
|
Global.PublicVar.Instance.G_CBEquip = String.Empty;
|
|
|
MediaPlayerEx.Play("1.WAV");
|
|
|
}
|
|
|
}
|
|
|
if (barlen == 17 || barlen == 18)
|
|
|
{
|
|
|
materCode = this.GetMaterCodeByLotBarXLM(barStr);
|
|
|
materName = this.GetMaterNameByMaterCodeLocal(materCode);
|
|
|
this.GetDTMater(materCode);
|
|
|
if (this.IsUseFinished(materCode, barStr,out strMsg))
|
|
|
{
|
|
|
Mesnac.Basic.MessageBoxTimeOut.Show(strMsg, Language(1), 2000);
|
|
|
//ShowMsg(strMsg, Language(1), MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
|
MediaPlayerEx.Play("2.WAV");
|
|
|
return;
|
|
|
}
|
|
|
if (String.IsNullOrEmpty(materCode))
|
|
|
{
|
|
|
strMsg = String.Format("[{0}]无该条码批次信息!", barStr);
|
|
|
Mesnac.Basic.MessageBoxTimeOut.Show(strMsg, Language(1), 2000);
|
|
|
MediaPlayerEx.Play("2.WAV");
|
|
|
return;
|
|
|
}
|
|
|
if (String.IsNullOrEmpty(materName))
|
|
|
{
|
|
|
strMsg = String.Format("[{0}]物料物料!", materName);
|
|
|
Mesnac.Basic.MessageBoxTimeOut.Show(strMsg, Language(1), 2000);
|
|
|
MediaPlayerEx.Play("2.WAV");
|
|
|
return;
|
|
|
}
|
|
|
if (!this.IsNowProduct(materCode, 2))
|
|
|
{
|
|
|
if (this.GetDTMater(materCode) == false)
|
|
|
{
|
|
|
strMsg = String.Format("[{0}]配方无该物料!", materName);
|
|
|
Mesnac.Basic.MessageBoxTimeOut.Show(strMsg, Language(1), 2000);
|
|
|
//ShowMsg(strMsg, Language(1), MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
|
MediaPlayerEx.Play("2.WAV");
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (this.IsInShelfBar(barStr))
|
|
|
{
|
|
|
strMsg = String.Format("条码已存在!");
|
|
|
Mesnac.Basic.MessageBoxTimeOut.Show(strMsg, Language(1), 2000);
|
|
|
//ShowMsg(strMsg, Language(1), MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
|
MediaPlayerEx.Play("2.WAV");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//RubMaterBarShow(Barstr, MaterName); 老版本Delphi业务,暂时没有实现
|
|
|
this.InsertMaterbar(materCode, barStr);
|
|
|
strMsg = String.Format("条码扫描成功!");
|
|
|
Mesnac.Basic.MessageBoxTimeOut.Show(strMsg, Language(1), 2000);
|
|
|
//ShowMsg(strMsg, Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
|
MediaPlayerEx.Play("1.WAV");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region GetMatercodeByBar 根据条码获取物料编码
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据条码获取物料编码
|
|
|
/// </summary>
|
|
|
/// <param name="barStr">条码</param>
|
|
|
/// <returns>返回对应的物料编码</returns>
|
|
|
public string GetMatercodeByBar(string barStr)
|
|
|
{
|
|
|
string procedureName = "Proc_GetMaterByBarcode"; //根据条码返回物料数据集的存储过程(mater_Code,mater_name)
|
|
|
Dictionary<string, object> parameters = new Dictionary<string, object>();
|
|
|
parameters.Add("@barcode", barStr);
|
|
|
DbHelper dbHelper = base.GetProcedureHelper(Basic.DataSourceFactory.MCDbType.Server, procedureName, parameters);
|
|
|
if (dbHelper != null)
|
|
|
{
|
|
|
DataTable table = dbHelper.ToDataTable();
|
|
|
if (table != null && table.Rows.Count > 0)
|
|
|
{
|
|
|
return table.Rows[0]["Mater_Code"] as string;
|
|
|
}
|
|
|
}
|
|
|
return String.Empty;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region AddInJarRecord 原料入库(网络库业务)
|
|
|
|
|
|
/// <summary>
|
|
|
/// 原料入库(网络库业务)
|
|
|
/// </summary>
|
|
|
/// <param name="materbarcode">原材料条码</param>
|
|
|
/// <param name="matercode">物料代码</param>
|
|
|
/// <param name="equip_Code">炭黑扫描机台号</param>
|
|
|
public void AddInJarRecord(string materbarcode, string matercode, string equip_Code)
|
|
|
{
|
|
|
double bagweight = 1000;
|
|
|
DbHelper dbHelper = base.NewDbHelper(Basic.DataSourceFactory.MCDbType.Server);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
base.LogError("获取网络数据库连接失败...");
|
|
|
return;
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
//string strSql = "select top 1 UnitWeight from PstMinStock where UpDwnMark=1 and MaterBarcode = @MaterBarcode"; //密炼Web
|
|
|
string strSql = "select top 1 Unit_Weight from Pst_MinStock where up_dwn_mark=1 and Mater_barcode = @MaterBarcode";
|
|
|
dbHelper.CommandText = strSql;
|
|
|
dbHelper.AddParameter("@MaterBarcode", materbarcode);
|
|
|
object result = dbHelper.ToScalar();
|
|
|
if (result != null && result != System.DBNull.Value)
|
|
|
{
|
|
|
double.TryParse(result.ToString(), out bagweight);
|
|
|
}
|
|
|
//string strSql2 = "insert into Pstmminjar(Materbarcode,MaterCode,StockDate,EquipCode,ShiftID,InTime,RealNum,RealWeight,ClearFlag)"; //密炼Web
|
|
|
string strSql2 = "insert into Pst_mminjar(Mater_barcode,Mater_code,Stock_date,Equip_code,Shift_id,In_Time,Real_num,Real_weight,Clear_Flag)";
|
|
|
strSql2 += " values(@Materbarcode,@MaterCode,@StockDate,@EquipCode,@ShiftID,GETDATE(),'1',@RealWeight,'0')";
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandText = strSql2;
|
|
|
|
|
|
PlanLog log = PlanCommon.PlanLog;
|
|
|
if (log != null)
|
|
|
{
|
|
|
dbHelper.AddParameter("Materbarcode", materbarcode);
|
|
|
dbHelper.AddParameter("MaterCode", matercode);
|
|
|
dbHelper.AddParameter("StockDate", log.LastSelectDate);
|
|
|
dbHelper.AddParameter("EquipCode", equip_Code);
|
|
|
dbHelper.AddParameter("ShiftID", log.LastSelectShiftID);
|
|
|
dbHelper.AddParameter("RealWeight", bagweight);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
base.LogDebug("获取不到执行的计划,不能进行扫描数据的原料入库!");
|
|
|
return;
|
|
|
}
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region GetMaterCodeByLotBarXLM 从网络库中根据条码获取物料代码
|
|
|
|
|
|
/// <summary>
|
|
|
/// 从网络库中根据条码获取物料代码
|
|
|
/// </summary>
|
|
|
/// <param name="barcode">条码</param>
|
|
|
/// <returns>返回对应的物料代码</returns>
|
|
|
public string GetMaterCodeByLotBarXLM(string barcode)
|
|
|
{
|
|
|
DbHelper dbHelper = base.NewDbHelper(Basic.DataSourceFactory.MCDbType.Server);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
base.LogError("获取网络数据库连接失败...");
|
|
|
return String.Empty;
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
string strSql = String.Empty;
|
|
|
//退料及不合格胶
|
|
|
if (barcode.ToUpper().IndexOf("TTT") > 0 || barcode.ToUpper().IndexOf("XXX") > 0)
|
|
|
{
|
|
|
strSql = "select Mater_Code from Ppm_QuaNoRecord where Shelf_Barcode = @Barcode";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
strSql = "select Mater_code from Ppt_ShiftConfig where Barcode = @Barcode";
|
|
|
}
|
|
|
dbHelper.CommandText = strSql;
|
|
|
dbHelper.AddParameter("@Barcode", barcode);
|
|
|
object result = dbHelper.ToScalar();
|
|
|
if (result != null && result != System.DBNull.Value)
|
|
|
{
|
|
|
return result as string;
|
|
|
}
|
|
|
return String.Empty;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region GetMaterNameByMaterCodeLocal 从网络库中根据物料代码获取物料名称
|
|
|
|
|
|
/// <summary>
|
|
|
/// 从网络库中根据物料代码获取物料名称
|
|
|
/// </summary>
|
|
|
/// <param name="materCode">物料代码</param>
|
|
|
/// <returns></returns>
|
|
|
public string GetMaterNameByMaterCodeLocal(string materCode)
|
|
|
{
|
|
|
DbHelper dbHelper = base.NewDbHelper(Basic.DataSourceFactory.MCDbType.Server);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
base.LogError("获取网络数据库连接失败...");
|
|
|
return String.Empty;
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
//string strSql = "select MaterialName from BasMaterial where MaterialCode = @MaterialCode"; //密炼Web库
|
|
|
string strSql = "select Mater_name from Pmt_material where Mater_code = @MaterialCode";
|
|
|
dbHelper.CommandText = strSql;
|
|
|
dbHelper.AddParameter("@MaterialCode", materCode);
|
|
|
object result = dbHelper.ToScalar();
|
|
|
if (result != null && result != System.DBNull.Value)
|
|
|
{
|
|
|
return result as string;
|
|
|
}
|
|
|
return String.Empty;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region GetDTMater 从网络库中查询是否存在等同物料
|
|
|
|
|
|
/// <summary>
|
|
|
/// 从网络库中查询是否存在等同物料
|
|
|
/// </summary>
|
|
|
/// <param name="materCode">物料代码</param>
|
|
|
/// <returns>如果存在等同物料返回true,否则返回false</returns>
|
|
|
public bool GetDTMater(string materCode)
|
|
|
{
|
|
|
DbHelper dbHelper = base.NewDbHelper(Basic.DataSourceFactory.MCDbType.Server);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
base.LogError("获取网络数据库连接失败...");
|
|
|
return false;
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
//string strSql = "select count(*) from BasMaterial where MaterialGroup = @MaterialCode and MaterialGroup <> MaterialCode"; //密炼web库
|
|
|
string strSql = "select count(*) from Pmt_material where Mater_groupName = @MaterialCode and Mater_groupName <> Mater_code";
|
|
|
dbHelper.CommandText = strSql;
|
|
|
dbHelper.AddParameter("@MaterialCode", materCode);
|
|
|
object result = dbHelper.ToScalar();
|
|
|
if (result != null && result != System.DBNull.Value)
|
|
|
{
|
|
|
if (Convert.ToInt32(result) > 0)
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region IsUseFinished 判断物料是否使用完毕
|
|
|
|
|
|
/// <summary>
|
|
|
/// 判断物料是否使用完毕
|
|
|
/// </summary>
|
|
|
/// <param name="materCode">物料代码</param>
|
|
|
/// <param name="barCode">条码</param>
|
|
|
/// <param name="strMsg">返回的消息</param>
|
|
|
/// <returns>用完返回true,否则返回false</returns>
|
|
|
public bool IsUseFinished(string materCode, string barCode, out string strMsg)
|
|
|
{
|
|
|
string strFst;
|
|
|
string strSql;
|
|
|
double realWeight;
|
|
|
double usedWeigh;
|
|
|
int shelfNum;
|
|
|
int usedNum;
|
|
|
strMsg = String.Empty;
|
|
|
DbHelper dbHelper = base.NewDbHelper(Basic.DataSourceFactory.MCDbType.Server);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
base.LogError("获取网络数据库连接失败...");
|
|
|
return false;
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
strFst = materCode.Substring(0, 1);
|
|
|
if (strFst.CompareTo("3") >= 0)
|
|
|
{
|
|
|
strSql = "select ISNULL(Total_Weight * Shelf_Num, 0) as RealWeight, ISNULL(Used_Weigh,0) as UsedWeigh from Ppt_ShiftConfig where Barcode = @Barcode";
|
|
|
dbHelper.CommandText = strSql;
|
|
|
dbHelper.AddParameter("@Barcode", barCode);
|
|
|
DataTable table = dbHelper.ToDataTable();
|
|
|
if (table != null && table.Rows.Count > 0)
|
|
|
{
|
|
|
realWeight = Convert.ToDouble(table.Rows[0]["RealWeight"]);
|
|
|
usedWeigh = Convert.ToDouble(table.Rows[0]["UsedWeigh"]);
|
|
|
if (usedWeigh > realWeight)
|
|
|
{
|
|
|
strMsg = "该架子物料重量使用完毕";
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else if (strFst == "2")
|
|
|
{
|
|
|
strSql = "select ISNULL(Shelf_Num,0) as ShelfNum,ISNULL(Used_Num,0) as UsedNum from Ppt_ShiftConfig where Barcode = @Barcode";
|
|
|
dbHelper.CommandText = strSql;
|
|
|
dbHelper.AddParameter("@Barcode", barCode);
|
|
|
DataTable table = dbHelper.ToDataTable();
|
|
|
if (table != null && table.Rows.Count > 0)
|
|
|
{
|
|
|
shelfNum = Convert.ToInt32(table.Rows[0]["ShelfNum"]);
|
|
|
usedNum = Convert.ToInt32(table.Rows[0]["UsedNum"]);
|
|
|
if (shelfNum < usedNum)
|
|
|
{
|
|
|
strMsg = "该批小料已使用完毕'";
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region IsNowProduct 判断配方中含有该条码的物料
|
|
|
|
|
|
/// <summary>
|
|
|
/// 判断配方中含有该条码的物料
|
|
|
/// </summary>
|
|
|
/// <param name="materCd">物料代码</param>
|
|
|
/// <param name="materTp">物料类型0-炭黑,1-油,2-胶料,3-粉料,4-小料</param>
|
|
|
/// <returns>有返回True,否则返回False</returns>
|
|
|
public bool IsNowProduct(string materCd, int materTp)
|
|
|
{
|
|
|
BasicInfo.RecipeData recipeData = new BasicInfo.RecipeData();
|
|
|
List<BasicInfo.RecipeData.RecipeWeightInfo> lst = recipeData.GetCurrentRecipeWeightInfo();
|
|
|
bool flag = false;
|
|
|
foreach (BasicInfo.RecipeData.RecipeWeightInfo weightInfo in lst)
|
|
|
{
|
|
|
if (weightInfo.MaterialCode == materCd && weightInfo.WeightType == materTp)
|
|
|
{
|
|
|
flag = true;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region IsInShelfBar 在本地库架子条码表中检验是否有物料批次条码对应的记录
|
|
|
|
|
|
/// <summary>
|
|
|
/// 在本地库架子条码表中检验是否有物料批次条码对应的记录
|
|
|
/// </summary>
|
|
|
/// <param name="tShelfBar">条码</param>
|
|
|
/// <returns>存在返回true,否则返回false</returns>
|
|
|
public bool IsInShelfBar(string tShelfBar)
|
|
|
{
|
|
|
DbHelper dbHelper = base.NewDbHelper(Basic.DataSourceFactory.MCDbType.Local);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
base.LogError("获取本地数据连接失败...");
|
|
|
return false;
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
//string strSql = "select count(barCode) from PmtShelfBar where barCode = @barCode";
|
|
|
string strSql = "select COUNT(*) from pmt_ShelfBar where barcode = @barCode";
|
|
|
dbHelper.CommandText = strSql;
|
|
|
dbHelper.AddParameter("@barCode", tShelfBar);
|
|
|
object result = dbHelper.ToScalar();
|
|
|
if (result != null && result != System.DBNull.Value)
|
|
|
{
|
|
|
if (Convert.ToInt32(result) > 0)
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region InsertMaterbar 追加条码扫描记录
|
|
|
|
|
|
/// <summary>
|
|
|
/// 追加条码扫描记录
|
|
|
/// </summary>
|
|
|
/// <param name="materCode">物料编码</param>
|
|
|
/// <param name="barCode">条码</param>
|
|
|
public void InsertMaterbar(string materCode, string barCode)
|
|
|
{
|
|
|
string mKind = String.Empty;
|
|
|
//首先把扫描条码保存到本地(如果是小料只允许一个批次条码存在)
|
|
|
mKind = materCode.Substring(0, 1);
|
|
|
|
|
|
DbHelper dbHelper = base.NewDbHelper(Basic.DataSourceFactory.MCDbType.Local);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
base.LogError("获取本地数据连接失败...");
|
|
|
return;
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
//string strSql = "insert into PmtShelfBar(barCode,materCode) values(@barCode,@materCode)";
|
|
|
string strSql = "insert into pmt_ShelfBar(barcode,mater_code) values(@barCode,@materCode)";
|
|
|
dbHelper.CommandText = strSql;
|
|
|
dbHelper.AddParameter("@barCode", barCode);
|
|
|
dbHelper.AddParameter("@materCode", materCode);
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
|
|
|
if (base.NetType == NetTypes.Net)
|
|
|
{
|
|
|
//保存条码到网络数据库
|
|
|
int tmpCurrNum = Convert.ToInt32(BasicInfo.PlcData.Instance.PloyFinishedCount.LastValue);
|
|
|
|
|
|
string procedureName = "Proc_InsertBarcode";
|
|
|
Dictionary<string, object> parameters = new Dictionary<string, object>();
|
|
|
parameters.Add("@Barcode", barCode);
|
|
|
parameters.Add("@Equip_code", base.CurrEquipCode);
|
|
|
parameters.Add("@Mater_code", materCode);
|
|
|
parameters.Add("@FinishNum", tmpCurrNum + 1);
|
|
|
base.ExecuteProcedure(Basic.DataSourceFactory.MCDbType.Server, procedureName, parameters);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
}
|
|
|
}
|