|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using Mesnac.Basic;
|
|
|
using Mesnac.Codd.Session;
|
|
|
using System.Data;
|
|
|
using Mesnac.Compressor.Entity;
|
|
|
using Mesnac.Compressor.Unity;
|
|
|
using System.Windows.Forms;
|
|
|
using System.Data.SqlClient;
|
|
|
|
|
|
namespace Mesnac.Compressor.Data
|
|
|
{
|
|
|
public class DbHandler
|
|
|
{
|
|
|
public DbHelper dbHelper;
|
|
|
public DataBHandler localDB = new DataBHandler();
|
|
|
private DataSourceFactory dsFactory = DataSourceFactory.Instance;
|
|
|
public DbHandler()
|
|
|
{
|
|
|
if (Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
//网络服务器
|
|
|
dbHelper = dsFactory.GetDbHelper("DataSource2");
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
string constr = System.Configuration.ConfigurationManager.AppSettings["SqlString"];
|
|
|
DbSession dbsession = new DbSession(SqlClientFactory.Instance, constr);
|
|
|
dbHelper = new DbHelper(dbsession);
|
|
|
}
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
//ConnectShow();
|
|
|
throw;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private void ConnectShow()
|
|
|
{
|
|
|
Common.Instance.ServerConnect = false;
|
|
|
FrmConnnectFlag frm = new FrmConnnectFlag();
|
|
|
frm.ShowDialog();
|
|
|
}
|
|
|
|
|
|
public void ExecSql(string sql)
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
localDB.ExecSql(sql);
|
|
|
return;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.CommandText = sql;
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error("Insert语句错误:" + e.ToString());
|
|
|
ICSharpCode.Core.LoggingService.Error("Insert语句错误:" + sql);
|
|
|
localDB.ExecSql(sql);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public string GetLastMainBarcode(string code)
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return localDB.GetLastMainBarcode(code);
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
sb.Append("EXEC SP_Pro_GetNewMainBarcode '");
|
|
|
sb.Append(code).Append("'");
|
|
|
dbHelper.CommandText = sb.ToString();
|
|
|
return dbHelper.ToScalar().ToString();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
//ConnectShow();
|
|
|
return localDB.GetLastMainBarcode(code);
|
|
|
}
|
|
|
}
|
|
|
public String GetNowProductionInfo()
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
string sql = " SELECT top(1) ProductId FROM dbo.T_RP_ProductChangeInfo WHERE LineName='A'";
|
|
|
dbHelper.CommandText = sql;
|
|
|
return dbHelper.ToScalar().ToString();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
public string GetLastSemiBarcode(string code, string lineID)
|
|
|
{
|
|
|
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return localDB.GetLastSemiBarcode(code);
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
sb.Append("EXEC SP_Pro_GetNewSemiBarcode '");
|
|
|
sb.Append(code).Append("','").Append(lineID).Append("'");
|
|
|
dbHelper.CommandText = sb.ToString();
|
|
|
return dbHelper.ToScalar().ToString();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error("GetLastSemiBarcode" + ex.ToString());
|
|
|
//ConnectShow();
|
|
|
return localDB.GetLastSemiBarcode(code);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void InsertTrace(string barcode, string SemiACode, string ProductBarCode, string machineID)
|
|
|
{
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
|
|
|
string sql = "EXEC SP_Pro_ChongtouInsertTraceStation @semiBarcode,@mainBarcode,@ProductBarCode,@MachineID";
|
|
|
dbHelper.AddParameter("@semiBarcode", SemiACode);
|
|
|
dbHelper.AddParameter("@mainBarcode", barcode);
|
|
|
dbHelper.AddParameter("@ProductBarCode", ProductBarCode);
|
|
|
dbHelper.AddParameter("@MachineID", machineID);
|
|
|
dbHelper.CommandText = sql;
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
//localDB.InsertTrace(barcode, SemiACode, 1);
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
public void InsertTrace(string barcode, string SemiACode, string machineID)
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
//localDB.InsertTrace(barcode, SemiACode, 0);
|
|
|
return;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
|
|
|
string sql = "EXEC SP_Pro_InsertTraceStation @semiBarcode,@mainBarcode,@MachineID";
|
|
|
dbHelper.AddParameter("@semiBarcode", SemiACode);
|
|
|
dbHelper.AddParameter("@mainBarcode", barcode);
|
|
|
dbHelper.AddParameter("@MachineID", machineID);
|
|
|
dbHelper.CommandText = sql;
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
//localDB.InsertTrace(barcode, SemiACode, 1);
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
//localDB.InsertTrace(barcode, SemiACode, 0);
|
|
|
//ConnectShow();
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 获取当前机种信息
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public string GetCurrentMachineInfo()
|
|
|
{
|
|
|
//MachineInfo Minfo = new MachineInfo();
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return "";
|
|
|
//return Minfo;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
string sql = "Exec SP_Pro_ChangeProduct";
|
|
|
dbHelper.CommandText = sql;
|
|
|
return dbHelper.ToScalar().ToString();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
return "";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 插入报警信息
|
|
|
/// </summary>
|
|
|
/// <param name="WorkName">电脑名字</param>
|
|
|
/// <param name="info"></param>
|
|
|
public void InsertAlarmInfo(string WorkName, AlarmInfo info)
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
sb.Append("INSERT INTO dbo.T_BD_UniteAlarmInfo(ComputerName,UniteID,AlarmInfo,AlarmIndex,RecordTime )VALUES ('");
|
|
|
sb.Append(WorkName).Append("','");
|
|
|
sb.Append(info.AlarmUnit.ToString()).Append("','");
|
|
|
sb.Append(info.AlarmString).Append("','");
|
|
|
sb.Append(info.AlarmIndex.ToString()).Append("',");
|
|
|
sb.Append("GETDATE()").Append(")");
|
|
|
dbHelper.CommandText = sb.ToString();
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
#region ActionDb
|
|
|
public DataTable SelectAlarmInfo(string ComputerName)
|
|
|
{
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
sb.Append("select 序号 = row_number() over(order by RecordTime desc),AlarmIndex as '报警单元',AlarmInfo as '报警信息 (一小时)' ,RecordTime as '报警时间' from dbo.T_BD_UniteAlarmInfo where ComputerName= '");
|
|
|
sb.Append(ComputerName).Append("'");
|
|
|
sb.Append(" AND RecordTime>=DATEADD(HH,-1,GETDATE())");
|
|
|
dbHelper.CommandText = sb.ToString();
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
return dt;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
//工作完成
|
|
|
public void WorkFinish(string RFID, string bigcode, string serialnum)
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
localDB.WorkFinish(RFID, bigcode, serialnum, 0);
|
|
|
return;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
sb.Append("Exec SP_Pro_ProductionInfo '").Append(RFID).Append("','");
|
|
|
sb.Append(bigcode).Append("','");
|
|
|
sb.Append(serialnum).Append("'");
|
|
|
dbHelper.CommandText = sb.ToString();
|
|
|
ICSharpCode.Core.LoggingService.Info(string.Format(sb.ToString()));
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
//ConnectShow();
|
|
|
localDB.WorkFinish(RFID, bigcode, serialnum, 0);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取最新交接班信息
|
|
|
/// </summary>
|
|
|
/// <param name="key"></param>
|
|
|
/// <returns></returns>
|
|
|
public ShiftInfo GetShiftInfo()
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return localDB.GetShiftInfo();
|
|
|
//return null;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
string sql = "SELECT TOP(1)ShiftNo,GroupID,a.ShiftID, b.ShiftName,a.CarryTime FROM dbo.T_RP_ShiftInfo a LEFT JOIN dbo.T_HR_Shift b ON a.ShiftID=b.ShiftID ORDER BY CarryTime DESC ";
|
|
|
dbHelper.CommandText = sql;
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
|
|
|
ShiftInfo shift = new ShiftInfo();
|
|
|
shift.carryTime = dt.Rows[0]["CarryTime"].ToString();
|
|
|
shift.shiftNo = dt.Rows[0]["ShiftNo"].ToString();
|
|
|
shift.shiftID = dt.Rows[0]["ShiftID"].ToString();
|
|
|
shift.groupID = dt.Rows[0]["GroupID"].ToString();
|
|
|
shift.shiftName = dt.Rows[0]["ShiftName"].ToString();
|
|
|
return shift;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
return localDB.GetShiftInfo();
|
|
|
//return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public int GetCurrentMachine()
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return localDB.GetCurrentMachine();
|
|
|
//return 0;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
string sql = "SELECT TOP(1) ProductChangingID FROM dbo.T_RP_ProductChangeLog ORDER BY ChangeTime DESC ";
|
|
|
dbHelper.CommandText = sql;
|
|
|
return Convert.ToInt32(dbHelper.ToScalar());
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
////ConnectShow();
|
|
|
return localDB.GetCurrentMachine();
|
|
|
//return 0;
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 获取当前机种
|
|
|
/// </summary>
|
|
|
/// <param name="MachineID"></param>
|
|
|
/// <returns></returns>
|
|
|
public DataTable GetCurrentMachine(int MachineID)
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return localDB.GetCurrentMachine(MachineID);
|
|
|
//return null;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
string sql = " SELECT * FROM dbo.T_BD_ProductInfo WHERE ProductID='" + MachineID.ToString() + "'";
|
|
|
dbHelper.CommandText = sql;
|
|
|
return dbHelper.ToDataTable();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
////ConnectShow();
|
|
|
return localDB.GetCurrentMachine(MachineID);
|
|
|
//return null;
|
|
|
}
|
|
|
}
|
|
|
public string GetProductInfoByBarCode(string barcode)
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
string sql = " SELECT top(1) ProductID FROM dbo.T_SY_TraceState WHERE ProductBarcode='" + barcode + "'";
|
|
|
dbHelper.CommandText = sql;
|
|
|
return dbHelper.ToScalar().ToString();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 获取当前产品的投产时间
|
|
|
/// </summary>
|
|
|
/// <param name=""></param>
|
|
|
/// <returns></returns>
|
|
|
public string GetProductBeginTime(string mainbarcode)
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
localDB.GetProductBeginTime(mainbarcode);
|
|
|
return null;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
string sql = " SELECT top(1) BeginTime FROM dbo.T_SY_TraceState WHERE Barcode='" + mainbarcode + "'";
|
|
|
dbHelper.CommandText = sql;
|
|
|
return dbHelper.ToScalar().ToString();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
//ConnectShow();
|
|
|
localDB.GetProductBeginTime(mainbarcode);
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
public object GetStationData(string stationID)
|
|
|
{
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
sb.Append("Exec SP_Pro_StationDataNew '").Append(stationID).Append("','");
|
|
|
sb.Append(DateTime.Now.ToString("yyyy-MM-dd")).Append("','");
|
|
|
sb.Append(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd")).Append("'");
|
|
|
dbHelper.CommandText = sb.ToString();
|
|
|
//ICSharpCode.Core.LoggingService.Info(string.Format(sb.ToString()));
|
|
|
return dbHelper.ToDataSet();
|
|
|
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取产品是否合格
|
|
|
/// </summary>
|
|
|
/// <param name="Rfid"></param>
|
|
|
/// <returns></returns>
|
|
|
public WorkTray GetProductQuality(string Rfid)
|
|
|
{
|
|
|
string CurrentStation = "";
|
|
|
ICSharpCode.Core.LoggingService.Fatal("开始获取产品是否合格");
|
|
|
WorkTray tray = new WorkTray();
|
|
|
try
|
|
|
{
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
sb.Append("SELECT [RFIDNum],[barCode],[SemiBarcode],[CurrentStation],t2.StationName,[State],t1.[updateTime],[UsedFlag],[InsertTime],[DeleteTime] FROM T_RP_WorkTrayRealTimeInfo t1 LEFT JOIN dbo.T_BD_SubStation t2 ON t1.CurrentStation = t2.StationID where RFIDNum='").Append(Rfid).Append("'");
|
|
|
//ICSharpCode.Core.LoggingService.Debug("sql语句:"+sb.ToString());
|
|
|
dbHelper.CommandText = sb.ToString();
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
|
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
|
{
|
|
|
tray.RfidNum = dt.Rows[0]["RFIDNum"].ToString();
|
|
|
tray.MainBarcode = dt.Rows[0]["barCode"].ToString();
|
|
|
tray.SemiBarcode = dt.Rows[0]["SemiBarcode"].ToString();
|
|
|
string Okng = dt.Rows[0]["State"].ToString();
|
|
|
if (dt.Rows[0]["State"] != null && dt.Rows[0]["State"] != DBNull.Value)
|
|
|
{
|
|
|
CurrentStation = dt.Rows[0]["CurrentStation"].ToString();
|
|
|
}
|
|
|
tray.InsertTime = dt.Rows[0]["updateTime"].ToString();
|
|
|
int outvalue = 0;
|
|
|
//调试用
|
|
|
//ICSharpCode.Core.LoggingService.Debug(dt.Rows[0]["RFIDNum"].ToString() + " barcode:" + dt.Rows[0]["barcode"].ToString() + " SemiBarcode:" + dt.Rows[0]["SemiBarcode"].ToString() + " State:" + dt.Rows[0]["State"].ToString() + " CurrentStation:" + dt.Rows[0]["CurrentStation"].ToString());
|
|
|
//调试完成
|
|
|
if (int.TryParse(Okng.Trim(), out outvalue))
|
|
|
{
|
|
|
tray.OKNG = outvalue;
|
|
|
//ICSharpCode.Core.LoggingService.Debug("检测到产品在[" + CurrentStation + "]工位合格");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//质量转换错误,默认为1
|
|
|
ICSharpCode.Core.LoggingService.Info("产品是否合格,质量转换错误,默认为1");
|
|
|
tray.OKNG = 1;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(e.ToString()));
|
|
|
////ConnectShow();
|
|
|
}
|
|
|
return tray;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取托盘信息
|
|
|
/// </summary>
|
|
|
/// <param name="Rfid"></param>
|
|
|
/// <returns></returns>
|
|
|
public WorkTray GetTrayInfoByBarcode(string Rfid)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Fatal("获取托盘信息");
|
|
|
WorkTray tray = new WorkTray();
|
|
|
try
|
|
|
{
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
sb.Append("select * from T_RP_WorkTrayRealTimeInfo where SemiBarcode='").Append(Rfid).Append("'");
|
|
|
dbHelper.CommandText = sb.ToString();
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
|
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
|
{
|
|
|
tray.RfidNum = dt.Rows[0]["RFIDNum"].ToString();
|
|
|
tray.MainBarcode = dt.Rows[0]["barCode"].ToString();
|
|
|
tray.SemiBarcode = dt.Rows[0]["SemiBarcode"].ToString();
|
|
|
string Okng = dt.Rows[0]["State"].ToString();
|
|
|
tray.InsertTime = dt.Rows[0]["updateTime"].ToString();
|
|
|
int outvalue = 0;
|
|
|
if (int.TryParse(Okng.Trim(), out outvalue))
|
|
|
{
|
|
|
tray.OKNG = outvalue;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//质量转换错误,默认为1
|
|
|
ICSharpCode.Core.LoggingService.Info("质量转换错误,默认为1");
|
|
|
tray.OKNG = 1;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(e.ToString()));
|
|
|
////ConnectShow();
|
|
|
}
|
|
|
return tray;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
#region 尹治丰 2023-3-2
|
|
|
public bool CurrentStationHaveWork(string stationID, string RFID)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Debug("校验工位" + stationID + "校验托盘" + RFID);
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
//return localDB.CurrentStationHaveWork(stationID, RFID);
|
|
|
return false;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
string sql = "Exec SP_Pro_CurruntState @RFID,@stationID";
|
|
|
dbHelper.AddParameter("@RFID", RFID);
|
|
|
dbHelper.AddParameter("@stationID", stationID);
|
|
|
dbHelper.CommandText = sql;
|
|
|
var obj = dbHelper.ToScalar();
|
|
|
int result = Convert.ToInt32(obj);
|
|
|
if (result <= 1)
|
|
|
{
|
|
|
return false;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(ex.ToString());
|
|
|
////ConnectShow();
|
|
|
//return localDB.CurrentStationHaveWork(stationID, RFID);
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public bool Chongtou(string barcode, string RFID)
|
|
|
{
|
|
|
//ICSharpCode.Core.LoggingService.Debug("校验工位" + stationID + "校验托盘" + RFID);
|
|
|
//if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
//{
|
|
|
// //return localDB.CurrentStationHaveWork(stationID, RFID);
|
|
|
// return false;
|
|
|
//}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
string sql = "Exec SP_Pro_ChongTou @RFID,@SemiBarcode";
|
|
|
dbHelper.AddParameter("@RFID", RFID);
|
|
|
dbHelper.AddParameter("@SemiBarcode", barcode);
|
|
|
dbHelper.CommandText = sql;
|
|
|
var obj = dbHelper.ToScalar();
|
|
|
int result = Convert.ToInt32(obj);
|
|
|
if (result < 1)
|
|
|
{
|
|
|
return false;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error("重投" + ex.ToString());
|
|
|
////ConnectShow();
|
|
|
//return localDB.CurrentStationHaveWork(stationID, RFID);
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取上一工位信息
|
|
|
/// </summary>
|
|
|
/// <param name="Rfid"></param>
|
|
|
/// <param name="stationid"></param>
|
|
|
/// <returns></returns>
|
|
|
public bool GetPreWorkInfo(string Rfid, string stationid)
|
|
|
{
|
|
|
//根据当前工位获取前一工位数据
|
|
|
//然后获取前一工位信息
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return false;
|
|
|
//return localDB.GetPreWorkInfo(Rfid, stationid);
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
|
sb.Append("SELECT StationID FROM dbo.T_BD_SubStation a LEFT JOIN dbo.T_RP_WorkTrayRealTimeInfo b ON a.PreStationID=b.CurrentStation WHERE b.RFIDNum='").Append(Rfid).Append("'");
|
|
|
dbHelper.CommandText = sb.ToString();
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
if (dt.Rows.Count < 1)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Warn("工位:" + stationid + " 信息:托盘 " + Rfid + ":上工位信息为空");
|
|
|
return false;
|
|
|
}
|
|
|
string currentStation = dt.Rows[0]["StationID"].ToString();
|
|
|
if (stationid == currentStation)
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Warn("工位:" + stationid + " 信息:托盘 " + Rfid + ":不等于"+ currentStation);
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
/// <summary>
|
|
|
/// 动静盘关系绑定插库
|
|
|
/// </summary>
|
|
|
public void InsertDJRelationShip(string DPBarCode,string JPBarCode)
|
|
|
{
|
|
|
if (dbHelper == null || Common.Instance.ReadLocalDB)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
sb.Append("INSERT INTO dbo.T_DJP_BarCodeRelationShip(DPBarCode,JPBarCode )VALUES ('");
|
|
|
sb.Append(DPBarCode.ToString()).Append("','");
|
|
|
sb.Append(JPBarCode.ToString()).Append("')");
|
|
|
dbHelper.CommandText = sb.ToString();
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 通过壳体条码查系统M码
|
|
|
/// </summary>
|
|
|
/// <param name="MachineID"></param>
|
|
|
/// <returns></returns>
|
|
|
public string GetMbarcode(string barcode)
|
|
|
{
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = "";
|
|
|
string sql = "select top(1)* from T_SY_TraceState where ProductBarcode='" + barcode + "' order by BeginTime desc ";
|
|
|
dbHelper.CommandText = sql;
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
|
|
|
string Mbarcode = dt.Rows[0]["Barcode"].ToString();
|
|
|
return Mbarcode;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService.Error(string.Format(ex.ToString()));
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|