using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mesnac.Codd.Session;
using System.Data;
using System.Data.SqlClient;
using Mesnac.Compressor.Entity;
using Mesnac.Log;
using System.Web.Security;
namespace Mesnac.Compressor.Data
{
public class DbHandler
{
public DbHelper dbHelper;
public string constr = System.Configuration.ConfigurationManager.AppSettings["SqlString"];
public DbHandler()
{
initDB();
}
public void initDB()
{
DbSession dbsession = new DbSession(SqlClientFactory.Instance, constr);
dbHelper = new DbHelper(dbsession);
if (dbHelper != null)
{
Console.WriteLine("数据库初始化成功");
}
}
#region 参考
public DataTable GetStationList(string station)
{
if (dbHelper == null)
{
return null;
}
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("SELECT StationID,StationCode,StationName FROM dbo.T_BD_SubStation where StationID>27 and StationID in ('28','32','37','39','41','43','44','46' ) and StationID<=").Append(station).Append(" ORDER BY StationID");
dbHelper.CommandText = sb.ToString();
Console.WriteLine(sb.ToString());
DataTable dt = dbHelper.ToDataTable();
return dt;
}
public DataTable GetReStartStationList(string station)
{
if (dbHelper == null)
{
return null;
}
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("SELECT StationID,StationCode,StationName,TableName FROM dbo.T_BD_SubStation where 1= 1");
sb.Append("and StationID<=");
sb.Append(station);
sb.Append(" ORDER BY StationID");
dbHelper.CommandText = sb.ToString();
Console.WriteLine(sb.ToString());
DataTable dt = dbHelper.ToDataTable();
return dt;
}
public DataTable GetDeleteReStartStationList(string station)
{
if (dbHelper == null)
{
return null;
}
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("SELECT StationID,StationCode,StationName,TableName FROM dbo.T_BD_SubStation where 1=1");
sb.Append("and StationID>=");
sb.Append(station);
sb.Append(" ORDER BY StationID");
dbHelper.CommandText = sb.ToString();
Console.WriteLine(sb.ToString());
DataTable dt = dbHelper.ToDataTable();
return dt;
}
public void DeleteStationData(string tablename,string ProductBarCode)
{
try
{
if (dbHelper == null)
{
return;
}
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "DELETE FROM "+ tablename + " WHERE ScanBarcode=@ProductBarCode ";
dbHelper.AddParameter("@ProductBarCode", ProductBarCode);
dbHelper.ExecuteNonQuery();
}
catch (Exception ex)
{
}
}
public bool IsHaveTraceState(string ProductBarCode)
{
bool iflag = false;
try
{
StringBuilder sb = new StringBuilder();
sb.Append("select SemiBarcode_A from T_SY_TraceState where ProductBarcode = '").Append(ProductBarCode).Append("'");
DbHandler db = new DbHandler();
db.dbHelper.ClearParameter();
db.dbHelper.CommandType = CommandType.Text;
db.dbHelper.CommandText = "";
db.dbHelper.CommandText = sb.ToString();
var obj = db.dbHelper.ToScalar();
if (obj != null)
{
iflag = true;
return iflag;
}
else
{
return iflag;
}
}
catch (Exception ex)
{
return iflag;
}
}
///
/// 返修记录
///
///
///
///
///
public void InsertRepairInfo(string Barcode,string ProductBarcode,string ReStartStation,string remark)
{
bool ifalg = false;
if (dbHelper == null)
{
return;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO dbo.base_RepairInfo_Record(Barcode,ProductBarcode,ReStartStation,remark)VALUES('");
sb.Append(Barcode).Append("','").Append(ProductBarcode).Append("','").Append(ReStartStation).Append("','").Append(remark).Append("')");
dbHelper.CommandText = sb.ToString();
dbHelper.ExecuteNonQuery();//没有返回值
}
catch (Exception ex)
{
LogService.Instance.Error("异常:" + ex.Message);
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
}
}
public bool DeletePrintInfo(string ProductBarcode)
{
StringBuilder sb = new StringBuilder();
try
{
sb.Append(" delete from base_Barcode_PrintInfo").Append(" WHERE ProductBarcode = '").Append(ProductBarcode).Append("' ");
DbHandler db = new DbHandler();
db.dbHelper.ClearParameter();
db.dbHelper.CommandType = CommandType.Text;
db.dbHelper.CommandText = sb.ToString();
db.dbHelper.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
LogService.Instance.Error("异常:" + ex.Message);
return false;
}
}
public bool UpdateTraceReStartStation(string ISDis,string RestartStation,string ProductBarcode)
{
StringBuilder sb = new StringBuilder();
try
{
//整机拆解,清空组件码
sb.Append(" UPDATE dbo.T_SY_TraceState SET ISDis='").Append(ISDis).Append("',CurrentStationID ='").Append(RestartStation);
sb.Append("' , RestartStation='").Append(RestartStation);
if (RestartStation == "11")
{
sb.Append("' ,SemiBarcode_A = '' ,SemiBarcode_B = '',SemiBarcode_C = '',SemiBarcode2 = '");
}
//控制器拆解,清控制器码
else
{
sb.Append("' ,SemiBarcode2 = '");
}
sb.Append("' WHERE ProductBarcode='").Append(ProductBarcode).Append("' ");
DbHandler db = new DbHandler();
db.dbHelper.ClearParameter();
db.dbHelper.CommandType = CommandType.Text;
db.dbHelper.CommandText = sb.ToString();
db.dbHelper.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
return false;
//ICSharpCode.Core.LoggingService.Error("Trace表NG工位更新错误:" + sb.ToString() + "/r/n" + e.ToString());
}
}
///
///
///
///
///
public string GetMainBacodeBySemiBarcode(string semiBarcode)
{
if (dbHelper == null)
{
return "";
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("SELECT SemiBarcode FROM dbo.T_RP_WorkTrayRealTimeInfo WHERE RFIDNum='");
sb.Append(semiBarcode).Append("'");
dbHelper.CommandText = sb.ToString();
return dbHelper.ToScalar().ToString();
}
catch (Exception ex)
{
return "";
}
}
///
///
///
///
///
public bool GetPreWorkInfo(string Rfid,string stationid)
{
//根据当前工位获取前一工位数据
//然后获取前一工位信息
if (dbHelper == null)
{
return false;
}
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)
{
return false;
}
string currentStation = dt.Rows[0]["StationID"].ToString();
if (stationid == currentStation)
{
return true;
}
else
{
return false;
}
}
public void Insert(string TableName,object[] objectArray)
{
if (dbHelper == null)
{
return;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("insert into ").Append(TableName).Append(" values(");
//sb.Append("'',").Append();
foreach (object ob in objectArray)
{
sb.Append("'").Append(ob.ToString()).Append("'");
}
sb.Append(")");
dbHelper.CommandText = sb.ToString();
dbHelper.ExecuteNonQuery();
}
catch (Exception ex)
{
}
}
public void ExecSql(string sql)
{
if (dbHelper == null)
{
return;
}
try
{
dbHelper.CommandText = sql;
dbHelper.ExecuteNonQuery();
}
catch(Exception e)
{
// ICSharpCode.Core.LoggingService.Debug("Insert语句错误:" + e.ToString());
}
}
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 string CreatNewSemibarcode()
{
if (dbHelper == null)
{
return null;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("EXEC SP_Pro_GetNewSemiBarcode '");
sb.Append("A").Append("','").Append("1").Append("'");
dbHelper.CommandText = sb.ToString();
return dbHelper.ToScalar().ToString();
}
catch (Exception ex)
{
return null;
}
}
public String GetNowProductionInfo()
{
if (dbHelper == null )
{
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)
{
return null;
}
}
public string GetLastMainBarcode(string code)
{
if (dbHelper == null)
{
return "NoConnect0001";
}
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.Info(string.Format(ex.ToString()));
return "Error0001";
}
}
public string GetLastSemiBarcode(string code)
{
if (dbHelper == null)
{
return "NoConnect0001";
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("EXEC SP_Pro_GetNewSemiBarcode '");
sb.Append(code).Append("'");
dbHelper.CommandText = sb.ToString();
return dbHelper.ToScalar().ToString();
}
catch (Exception ex)
{
//ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return "Error0001";
}
}
public bool CurrentStationHaveWork(string stationID,string RFID)
{
if (dbHelper == null)
{
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.Info(string.Format(ex.ToString()));
return false;
}
}
public bool Test(string Barcode, int state1, int state2, int state3, int state4, string restartStation,string checker)
{
if (dbHelper == null)
{
return false;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
string sql = "Exec SP_Pro_chaijian @Barcode,@state1,@state2,@state3,@state4,@restartStation,@checker";
dbHelper.AddParameter("@Barcode", Barcode);
dbHelper.AddParameter("@state1", state1);
dbHelper.AddParameter("@state2", state2);
dbHelper.AddParameter("@state3", state3);
dbHelper.AddParameter("@state4", state4);
dbHelper.AddParameter("@restartStation", restartStation);
dbHelper.AddParameter("@checker", checker);
dbHelper.CommandText = sql;
Console.WriteLine(sql);
var obj = dbHelper.ToScalar();
int result = Convert.ToInt32(obj);
if (result < 1)
{
return false;
}
else
{
return true;
}
}
catch (Exception ex)
{
Console.WriteLine("存储过程异常错误");
return false;
}
}
public DataSet Select(string Barcode)
{
if (dbHelper == null)
{
return null;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
string sql = "Exec SP_Pro_SelectBarcode @Barcode";
dbHelper.AddParameter("@Barcode", Barcode);
dbHelper.CommandText = sql;
//var obj = dbHelper.ToDataTable();
//return null;
DataSet dt = (DataSet)dbHelper.ToDataSet();
return dt;
}
catch (Exception ex)
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return null;
}
}
///
/// 重投次数超过三次返回false 不能重投
///
///
public bool RestartCount(string Barcode)
{
if (dbHelper == null)
{
return false;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
string sql = "Exec SP_Pro_RestartCount @Barcode";
dbHelper.AddParameter("@Barcode", Barcode);
dbHelper.CommandText = sql;
//var obj = dbHelper.ToDataTable();
//return null;
object count = dbHelper.ToScalar();
return Convert.ToInt32(count) > 0;
}
catch (Exception ex)
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return false;
}
}
///
/// 获取当前工位质量
///
///
///
///
///
public bool GetCurrentStationState(string MainBarcode,string SemiBarcode,string StationName,string tableName)
{
if (dbHelper == null)
{
return false;
}
try
{
string TableName = tableName;
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append(" SELECT Barcode FROM ").Append(TableName);
sb.Append(" WHERE Barcode='").Append(MainBarcode).Append("' AND SemiBarcode='").Append(SemiBarcode).Append("' AND State='1'");
dbHelper.CommandText = sb.ToString();
DataTable dt = dbHelper.ToDataTable();
return dt.Rows.Count > 0;
}
catch (Exception ex)
{
//ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return false;
}
}
///
/// 创建新的系统条码
///
///
///
public void CreatNewProduct(string MainBarcode,string SemiBarcode)
{
if (dbHelper == null)
{
return;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO dbo.T_SY_TraceState(barcode,SemiBarcode_A1)VALUES('");
sb.Append(MainBarcode).Append("','").Append(SemiBarcode).Append("')");
dbHelper.CommandText = sb.ToString();
dbHelper.ExecuteNonQuery();//没有返回值
}
catch (Exception ex)
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
}
}
public void UpdateTray(string EPC, int okng, string station, string semibarcode)
{
}
//互换托盘,不是换线。
public void ChangeTray(string RFID,int state,string SemiType, string stationID,string Semibarcode)
{
if (dbHelper == null)
{
return;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
string sql = "Exec SP_Pro_changeTray @RFID,@State,@stationID,@semibarcode,@semiType";
dbHelper.AddParameter("@RFID", RFID);
dbHelper.AddParameter("@State", state);
dbHelper.AddParameter("@semibarcode", Semibarcode);
dbHelper.AddParameter("@semiType", SemiType);
dbHelper.AddParameter("@stationID", stationID);
dbHelper.CommandText = sql;
dbHelper.ExecuteNonQuery();
}
catch (Exception ex)
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
}
}
public string GetSemiBarcode(string RFID)
{
if (dbHelper == null)
{
return "";
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("SELECT SemiBarcode FROM dbo.T_RP_WorkTrayRealTimeInfo WHERE RFIDNum='");
sb.Append(RFID).Append("'");
dbHelper.CommandText = sb.ToString();
return dbHelper.ToScalar().ToString();
}
catch (Exception ex)
{
//ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return "";
}
}
public string GetMainBarcode(string RFID)
{
if (dbHelper == null)
{
return "";
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("SELECT barCode FROM dbo.T_RP_WorkTrayRealTimeInfo WHERE RFIDNum='");
sb.Append(RFID).Append("'");
dbHelper.CommandText = sb.ToString();
return dbHelper.ToScalar().ToString();
}
catch (Exception ex)
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return "";
}
}
///
/// 插入部件条码到部件表
///
///
public void InsertSemiBarcode(string barcode)
{
if (dbHelper == null)
{
return ;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO [dbo].[T_RP_SemiProInfo](SemiBarcode)VALUES('");
sb.Append(barcode).Append("')");
dbHelper.CommandText = sb.ToString();
dbHelper.ExecuteNonQuery();
}
catch (Exception ex)
{
//ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return;
}
}
public void InsertMainBacode(string barcode,string SemiACode,string MachineID)
{
if (dbHelper == null)
{
return;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO [dbo].[T_SY_TraceState](Barcode,SemiBarcode_A,ProductID)VALUES('");
sb.Append(barcode).Append("','").Append(SemiACode).Append("','").Append(MachineID).Append("')");
dbHelper.CommandText = sb.ToString();
dbHelper.ExecuteNonQuery();
}
catch (Exception ex)
{
//ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return;
}
}
///
/// 更新主表,追踪
///
public void UpdateTrace(string Column,string MainCode,string SemiCode)
{
if (dbHelper == null)
{
return;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("UPDATE [dbo].[T_SY_TraceState] SET ");
sb.Append(Column).Append("='").Append(SemiCode).Append("' where Barcode='").Append(MainCode).Append("'");
dbHelper.CommandText = sb.ToString();
dbHelper.ExecuteNonQuery();
}
catch (Exception ex)
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return;
}
}
public void ChangeLine(string RFID,string Semibarcode,string stationid)
{
if (dbHelper == null)
{
return;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
string sql = "Exec SP_Pro_ChangeLine @RFID,@Semibarcode,@stationid";
dbHelper.AddParameter("@RFID", RFID);
dbHelper.AddParameter("@Semibarcode", Semibarcode);
dbHelper.AddParameter("@stationid", stationid);
dbHelper.CommandText = sql;
dbHelper.ExecuteNonQuery();
}
catch (Exception ex)
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
}
}
#endregion
public DataTable Test1()
{
if (dbHelper == null)
{
return null;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
string sql = "select SemiBarcode_A from T_SY_TraceState where ProductBarcode = 'E34FT0M0723091805118'";
dbHelper.CommandText = sql;
//var obj = dbHelper.ToDataTable();
//return null;
DataTable dt = dbHelper.ToDataTable();
return dt;
}
catch (Exception ex)
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return null;
}
}
public String GetProductionInfo(string Acode)
{
if (dbHelper == null)
{
return null;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("SELECT ProductBarcode FROM dbo.T_RP_BarcodeRelationShip WHERE LineID='1' and SemiBarcode ='");
sb.Append(Acode).Append("'");
dbHelper.CommandText = sb.ToString();
return dbHelper.ToScalar().ToString();
}
catch (Exception ex)
{
return null;
}
}
public void UpdateCPM(string CPM, string AM)
{
if (dbHelper == null)
{
return;
}
try
{
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
dbHelper.CommandText = "";
StringBuilder sb = new StringBuilder();
sb.Append("UPDATE [dbo].[T_SY_TraceState] SET ProductBarcode ='");
sb.Append(CPM).Append("' where SemiBarcode_A='").Append(AM).Append("'");
dbHelper.CommandText = sb.ToString();
dbHelper.ExecuteNonQuery();
}
catch (Exception ex)
{
LogService.Instance.Error("异常:" + ex.Message);
return;
}
}
}
}