using Mesnac.Codd.Session ;
using Mesnac.Compressor.Data ;
using Mesnac.Compressor.Entity ;
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Linq ;
using System.Text ;
namespace Mesnac.Compressor.Station
{
public class Common : BasePLC
{
/// <summary>
/// 需要条码绑定时用这个函数
/// </summary>
/// <param name="RFID"></param>
/// <param name="barcode">系统内部生成的条码</param>
/// <param name="semibarcode">物料上面扫的条码</param>
/// <param name="stationID"></param>
/// <param name="OKNG"></param>
/// <returns></returns>
public bool UpdateTray ( string RFID , string barcode , string semibarcode , string stationID , int OKNG )
{
try
{
DbHandler dbHelper = new DbHandler ( ) ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "UPDATE dbo.T_RP_WorkTrayRealTimeInfo SET " ) ;
sb . Append ( "barCode='" ) . Append ( barcode ) . Append ( "'," ) ;
sb . Append ( "SemiBarcode='" ) . Append ( semibarcode ) . Append ( "'," ) ;
sb . Append ( "CurrentStation='" ) . Append ( stationID ) . Append ( "'," ) ;
sb . Append ( "State='" ) . Append ( OKNG . ToString ( ) ) . Append ( "'," ) ;
sb . Append ( "updateTime='" ) . Append ( DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ) . Append ( "' " ) ;
sb . Append ( "WHERE RFIDNum='" ) . Append ( RFID ) . Append ( "'" ) ;
dbHelper . ExecSql ( sb . ToString ( ) ) ;
return true ;
}
catch
{
return false ;
}
}
/// <summary>
///
/// </summary>
/// <param name="RFID"></param>
/// <param name="barcode"></param>
/// <param name="stationID"></param>
/// <param name="OKNG"></param>
/// <returns></returns>
public bool UpdateTray ( string RFID , string SemiBarcode , string stationID , int OKNG )
{
try
{
DbHandler dbHelper = new DbHandler ( ) ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "UPDATE dbo.T_RP_WorkTrayRealTimeInfo SET " ) ;
sb . Append ( "SemiBarcode='" ) . Append ( SemiBarcode ) . Append ( "'," ) ;
sb . Append ( "CurrentStation='" ) . Append ( stationID ) . Append ( "'," ) ;
sb . Append ( "State='" ) . Append ( OKNG . ToString ( ) ) . Append ( "'," ) ;
sb . Append ( "updateTime='" ) . Append ( DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ) . Append ( "' " ) ;
sb . Append ( "WHERE RFIDNum='" ) . Append ( RFID ) . Append ( "'" ) ;
ICSharpCode . Core . LoggingService . InfoFormatted ( "{0}工位更新托盘信息:{1}" , stationID , sb . ToString ( ) ) ;
dbHelper . ExecSql ( sb . ToString ( ) ) ;
return true ;
}
catch
{
return false ;
}
}
/// <summary>
/// 更新托盘状态************************
/// </summary>
/// <param name="tray"></param>
/// <param name="stationid"></param>
public void UpdateTray ( string stationid , string RFID )
{
StringBuilder sb = new StringBuilder ( ) ;
DbHandler db = new DbHandler ( ) ;
if ( db . dbHelper = = null )
{
return ;
}
try
{
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
sb . Append ( "UPDATE dbo.T_RP_WorkTrayRealTimeInfo SET " ) ;
sb . Append ( "CurrentStation='" ) . Append ( stationid ) . Append ( "'," ) ;
sb . Append ( "updateTime='" ) . Append ( DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ) . Append ( "' " ) ;
sb . Append ( "WHERE RFIDNum='" ) . Append ( RFID ) . Append ( "'" ) ;
db . dbHelper . CommandText = sb . ToString ( ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception ex )
{
ICSharpCode . Core . LoggingService . Error ( string . Format ( ex . ToString ( ) ) ) ;
}
}
/// <summary>
/// 重投更新条码信息,重投需要根据拆解时的指定工位来
/// </summary>
/// <param name="RFID"></param>
/// <param name="barcode"></param>
/// <param name="stationID"></param>
/// <param name="OKNG"></param>
/// <returns></returns>
public bool UpdateTrayChongtou ( string RFID , string barcode )
{
StringBuilder sb = new StringBuilder ( ) ;
DbHandler db = new DbHandler ( ) ;
try
{
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
sb . Append ( "EXEC SP_Pro_ChongTou '" ) ;
sb . Append ( RFID ) . Append ( "','" ) ;
sb . Append ( barcode ) . Append ( "'" ) ;
db . dbHelper . CommandText = sb . ToString ( ) ;
return Convert . ToInt32 ( db . dbHelper . ToScalar ( ) ) = = 0 ;
}
catch ( Exception ex )
{
ICSharpCode . Core . LoggingService . Error ( string . Format ( ex . ToString ( ) ) ) ;
return false ;
}
}
public bool InsertHistoryTray ( string RFID , string barcode , string stationid )
{
try
{
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "INSERT INTO dbo.T_RP_WorkTrayHistoryInfo(barCode,RFIDNum,CurrentStation) VALUES('" ) ;
sb . Append ( barcode ) . Append ( "', '" ) . Append ( RFID ) . Append ( "', '" ) . Append ( stationid ) . Append ( "')" ) ;
DbHandler db = new DbHandler ( ) ;
db . ExecSql ( sb . ToString ( ) ) ;
return true ;
}
catch
{
return false ;
}
}
/// <summary>
/// 通过壳体条码, 查找内部M主条码
/// </summary>
/// <param name="semibarcode"></param>
/// <returns></returns>
public string GetMainBarcode ( string semibarcode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( "select top(1)barcode from T_SY_TraceState " ) ;
sb . Append ( " where ProductBarcode='" ) . Append ( semibarcode ) . Append ( "' order by BeginTime desc" ) ;
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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "获取系统条码语句错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
public string GetCurrentStationByRFID ( string RFID )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( "SELECT CurrentStation FROM dbo.T_RP_WorkTrayRealTimeInfo " ) ;
sb . Append ( " where RFIDNum='" ) . Append ( RFID ) . 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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "GetCurrentStationByRFID获取当前工位语句错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
/// <summary>
///
/// </summary>
/// <param name="RFID"></param>
/// <returns></returns>
public string GetTraySemiBarcode ( string RFID )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( "select semibarcode from T_RP_WorkTrayRealTimeInfo " ) ;
sb . Append ( " where RFIDNum='" ) . Append ( RFID ) . 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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "获取条码语句错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
public string GetTrayBarcode ( string RFID )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( "select barCode from T_RP_WorkTrayRealTimeInfo " ) ;
sb . Append ( " where RFIDNum='" ) . Append ( RFID ) . 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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "获取条码语句错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
public string GetOldSemiBarcode ( string ProductCode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( "select SemiBarcode from T_RP_BarcodeRelationShip " ) ;
sb . Append ( " where ProductBarcode='" ) . Append ( ProductCode ) . Append ( "' order by InsertTime desc" ) ;
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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "获取条码语句错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
/// <summary>
/// 判断数据是否数已经上传
/// </summary>
/// <param name="station"></param>
/// <returns></returns>
public bool CheckNewData ( StationInfo station , string barcode )
{
return true ;
if ( string . IsNullOrEmpty ( barcode ) )
{
barcode = GetTraySemiBarcode ( station . Data . RFIDNo ) ;
}
if ( string . IsNullOrEmpty ( barcode ) )
{
ICSharpCode . Core . LoggingService . Warn ( "CheckNewData-" + station . StationCode + " 通过RFID号: " + station . Data . RFIDNo + "未找到对应条码" ) ;
return false ;
}
station . Data . semibacode = barcode ;
if ( ! JuadgeMaskID ( barcode , station . Data . MaskID . ToString ( ) , station . TableName ) )
{
//ICSharpCode.Core.LoggingService.Debug("工位:" + station.StationCode + "的RFID: " + station.Data.RFIDNo + "数据已上传。条码号:" + barcode + " 任务号:" + station.Data.MaskID.ToString());
return false ;
}
return true ;
}
public void SaveData ( StationInfo station )
{
SqlHelper sh = new SqlHelper ( ) ;
DbHandler db = new DbHandler ( ) ;
//获取系统A条码
string barcode = GetTraySemiBarcode ( station . Data . RFIDNo ) ;
//获取系统M码
string Mainbarcode = GetMainBarcode ( barcode ) ;
string martercode = station . Data . MaterialBarcode ;
if ( string . IsNullOrEmpty ( barcode ) )
{
ICSharpCode . Core . LoggingService . Warn ( station . StationCode + " 通过RFID号: " + station . Data . RFIDNo + "未找到对应条码" + barcode ) ;
return ;
}
station . Data . semibacode = barcode ;
station . Data . MainBarcode = Mainbarcode ;
ICSharpCode . Core . LoggingService . Warn ( "开始更新当前工位信息:" + station . StationCode + " RFID号: " + station . Data . RFIDNo + "产品码:" + station . Data . semibacode + "主线码:" + station . Data . MainBarcode ) ;
UpdateTraceStation ( station . stationID , Mainbarcode ) ;
//支线条码
if ( station . Data . MaterialBarcodeUpdate )
{
station . Data . semibacode = barcode ;
station . Data . MainBarcode = Mainbarcode ;
station . Data . MaterialBarcode = martercode ;
if ( station . Data . MaterialBarcode ! = "" )
{
ICSharpCode . Core . LoggingService . Warn ( "开始更新物料信息:" + station . StationCode + " RFID号: " + station . Data . RFIDNo + "产品码:" + station . Data . semibacode + "主线码:" + station . Data . MainBarcode ) ;
UpdateMaterialCode ( station ) ;
}
ICSharpCode . Core . LoggingService . Warn ( "开始上传支线信息:" + station . StationCode + " RFID号: " + station . Data . RFIDNo + "产品码:" + station . Data . semibacode + "主线码:" + station . Data . MainBarcode ) ;
updateSubInfo ( station ) ;
}
//更新当前工位
///这里要看看换线是否会重复插入数据
if ( station . Data . BarcodeUpdate )
{
if ( station . IfMainline )
{
UpdateTraceBarcodeStation ( station ) ;
}
//updatebarcode(station);
}
//插入新数据
string InsertSql = sh . DataInsertSql2 ( station ) ;
db . ExecSql ( InsertSql ) ;
//如果是重投品,跟新重投次数
//if (station.Data.Restart && !string.IsNullOrEmpty(station.Data.ProductBarcode))
//{
// UpdaterestartCount(station.Data.ProductBarcode);
// ICSharpCode.Core.LoggingService.Debug("更新重投次数成功");
//}
//不合格插入不合格工位
if ( station . Data . ProductOkNg = = 2 )
{
UpdateTraceNgStation ( station ) ;
//UnbandTray(station);
}
//更新托盘信息
UpdateTray ( station . Data . RFIDNo , Mainbarcode , station . Data . semibacode , station . stationID , station . Data . ProductOkNg ) ;
ICSharpCode . Core . LoggingService . Debug ( "工位:" + station . StationCode + " 保存数据成功。托盘号:" + station . Data . RFIDNo ) ;
}
/// <summary>
///
/// </summary>
public void SaveStationData ( StationInfo station , StationType stationType )
{
switch ( stationType )
{
case StationType . FirstStation :
SaveData ( station ) ;
break ;
case StationType . NormarlStation :
SaveData ( station ) ;
break ;
case StationType . ChangeLineStation :
SaveData ( station ) ;
break ;
case StationType . LineEnd :
SaveData ( station ) ;
break ;
default :
SaveData ( station ) ;
break ;
}
}
///上传支线信息
private void updateSubInfo ( StationInfo station )
{
foreach ( var sub in station . Data . subLineList )
{
if ( ! string . IsNullOrEmpty ( sub . barcode ) )
{
//判断是否存在信息,存在则更新
ICSharpCode . Core . LoggingService . Warn ( "上传支线信息:" + station . StationCode + " RFID号: " + station . Data . RFIDNo + "产品码:" + station . Data . semibacode + "主线码:" + station . Data . MainBarcode + "支线条码:" + sub . barcode ) ;
SubInfoUpdate ( sub . barcode , sub . lineID , station . Data . semibacode ) ;
}
}
}
/// <summary>
/// 上传支线信息
/// </summary>
/// <param name="barcode"></param>
/// <param name="lineid"></param>
/// <param name="semibacode"></param>
/// <returns></returns>
public bool SubInfoUpdate ( string barcode , string lineid , string semibacode )
{
StringBuilder sb = new StringBuilder ( ) ;
DbHandler db = new DbHandler ( ) ;
try
{
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
sb . Append ( "EXEC SP_Pro_SubLineInfo '" ) ;
sb . Append ( barcode ) . Append ( "','" ) ;
sb . Append ( lineid ) . Append ( "','" ) ;
sb . Append ( semibacode ) . Append ( "'" ) ;
db . dbHelper . CommandText = sb . ToString ( ) ;
return Convert . ToInt32 ( db . dbHelper . ToScalar ( ) ) = = 0 ;
}
catch ( Exception ex )
{
ICSharpCode . Core . LoggingService . Error ( string . Format ( ex . ToString ( ) ) ) ;
return false ;
}
}
/// <summary>
/// 更新trace表产品条码和T_RP_SemiProInfo表产品条码
/// </summary>
/// <param name="station"></param>
private void updatebarcode ( StationInfo station )
{
if ( string . IsNullOrEmpty ( station . Data . ProductBarcode ) )
{
return ;
}
UpdateSemiInfo ( station ) ;
if ( station . IfMainline )
{
//这个现在好像没用
UpdateTraceBarcodeStation ( station ) ;
//这边是个坑啊 yinzf 2023-3-4 delete
if ( station . stationID ! = "18" | | station . stationID ! = "24" )
{
ICSharpCode . Core . LoggingService . Warn ( "更新trace表产品条码和T_RP_SemiProInfo表产品条码,工位:" + station . stationID )
; SubInfoUpdate ( station . Data . ProductBarcode , station . lineID , station . Data . semibacode ) ;
}
}
}
private void UpdateSemiInfo ( StationInfo station )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
//去掉换行符
if ( ! string . IsNullOrEmpty ( station . Data . semibacode ) )
{
string barcode = station . Data . semibacode . Replace ( "\r" , "" ) . Replace ( "\n" , "" ) . Replace ( "\t" , "" ) ;
sb . Append ( " UPDATE dbo.T_RP_SemiProInfo SET ProductBarcode='" ) . Append ( station . Data . ProductBarcode ) ;
sb . Append ( "' WHERE SemiBarcode='" ) . Append ( barcode ) . Append ( "' " ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
db . dbHelper . CommandText = sb . ToString ( ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
else
{
ICSharpCode . Core . LoggingService . Error ( "Trace表NG工位更新错误,station.Data.semibacode为null!" ) ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "Trace表NG工位更新错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
}
}
/// <summary>
/// 更新物料信息
/// </summary>
/// <param name="station"></param>
private void UpdateMaterialCode ( StationInfo station )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " insert into dbo.T_RP_MaterialBarcode(barcode,productCode,stationID) values('" ) ;
sb . Append ( station . Data . MainBarcode ) . Append ( "','" ) ;
sb . Append ( station . Data . MaterialBarcode ) . Append ( "','" ) ;
sb . Append ( station . stationID ) . Append ( "')" ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = sb . ToString ( ) ;
ICSharpCode . Core . LoggingService . Info ( "更新物料信息:" + sb . ToString ( ) + station . Data . MainBarcode + "," + station . Data . MaterialBarcode + "," + station . stationID ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "物料条码更新出错:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
}
}
/// <summary>
/// 判断是否存在物料关系
/// </summary>
/// <param name="SemiBarcode"></param>
/// <param name="ProductBarcode"></param>
/// <param name="SemiBarcode_Line"></param>
/// <param name="LineID"></param>
public bool SelectBarcodeRelationShip ( string SemiBarcode , string ProductBarcode , string SemiBarcode_Line , int LineID )
{
bool bFlag = false ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " insert into dbo.T_RP_BarcodeRelationShip(SemiBarcode,ProductBarcode,SemiBarcode_Line,LineID,StateFlag) values('" ) ;
sb . Append ( SemiBarcode ) . Append ( "','" ) ;
sb . Append ( ProductBarcode ) . Append ( "','" ) ;
sb . Append ( SemiBarcode_Line ) . Append ( "','" ) ;
sb . Append ( LineID ) . Append ( "','" ) ;
sb . Append ( 1 ) . Append ( "')" ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = sb . ToString ( ) ;
ICSharpCode . Core . LoggingService . Info ( "插入物料信息:" + sb . ToString ( ) + SemiBarcode + "," + ProductBarcode + "," + LineID ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
bFlag = true ;
return bFlag ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "物料信息插入出错:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return bFlag ;
}
}
/// <summary>
/// 插入物料关系表
/// </summary>
/// <param name="station"></param>
public void InsertBarcodeRelationShip ( string SemiBarcode , string ProductBarcode , string SemiBarcode_Line , int LineID )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " insert into dbo.T_RP_BarcodeRelationShip(SemiBarcode,ProductBarcode,SemiBarcode_Line,LineID,StateFlag) values('" ) ;
sb . Append ( SemiBarcode ) . Append ( "','" ) ;
sb . Append ( ProductBarcode ) . Append ( "','" ) ;
sb . Append ( SemiBarcode_Line ) . Append ( "','" ) ;
sb . Append ( LineID ) . Append ( "','" ) ;
sb . Append ( 1 ) . Append ( "')" ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = sb . ToString ( ) ;
ICSharpCode . Core . LoggingService . Info ( "插入物料信息:" + sb . ToString ( ) + SemiBarcode + "," + ProductBarcode + "," + LineID ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "物料信息插入出错:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
}
}
public void UpdateTraceNgStation ( StationInfo station )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " UPDATE dbo.T_SY_TraceState SET NGStationID='" ) . Append ( station . stationID ) ;
sb . Append ( "' WHERE barcode='" ) . Append ( station . Data . MainBarcode ) . Append ( "' " ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
db . dbHelper . CommandText = sb . ToString ( ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "Trace表NG工位更新错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
}
}
/// <summary>
/// 更新当前工位
/// </summary>
/// <param name="station"></param>
public void UpdateTraceStation ( string stationID , string MainBarcode )
{
DbHandler db = new DbHandler ( ) ;
if ( db . dbHelper = = null )
{
return ;
}
try
{
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
string sql = "Exec SP_Pro_UpdateTraceStationBybarcode @CurrentStationID,@MainBarcode" ;
db . dbHelper . AddParameter ( "@CurrentStationID" , stationID ) ;
db . dbHelper . AddParameter ( "@MainBarcode" , MainBarcode ) ;
db . dbHelper . CommandText = sql ;
ICSharpCode . Core . LoggingService . Info ( "更新当前工位信息:" + sql + stationID + MainBarcode ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception ex )
{
ICSharpCode . Core . LoggingService . Error ( string . Format ( ex . ToString ( ) ) ) ;
}
}
/// <summary>
/// 更新当前工位
/// </summary>
/// <param name="station"></param>
public void UpdateTraceBarcodeStation ( StationInfo station )
{
StringBuilder sb = new StringBuilder ( ) ;
DbHandler db = new DbHandler ( ) ;
try
{
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
sb . Append ( " UPDATE dbo.T_SY_TraceState SET ProductBarcode='" ) . Append ( station . Data . ProductBarcode ) ;
sb . Append ( "' WHERE barcode='" ) . Append ( station . Data . MainBarcode ) . Append ( "' " ) ;
db . dbHelper . CommandText = sb . ToString ( ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "Trace工位更新错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
}
}
/// <summary>
/// 判断当前条码和任务号是否上传过
/// </summary>
/// <param name="barcode"></param>
/// <param name="MaskID"></param>
/// <param name="TableName"></param>
/// <returns>上传过返回false</returns>
public bool JuadgeMaskID ( string barcode , string MaskID , string TableName )
{
StringBuilder sb = new StringBuilder ( ) ;
DbHandler db = new DbHandler ( ) ;
try
{
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
sb . Append ( "EXEC SP_Pro_Changeflag '" ) ;
sb . Append ( barcode ) . Append ( "','" ) ;
sb . Append ( MaskID ) . Append ( "','" ) ;
sb . Append ( TableName ) . Append ( "'" ) ;
db . dbHelper . CommandText = sb . ToString ( ) ;
return Convert . ToInt32 ( db . dbHelper . ToScalar ( ) ) = = 0 ;
}
catch ( Exception ex )
{
ICSharpCode . Core . LoggingService . Error ( string . Format ( ex . ToString ( ) ) ) ;
return false ;
}
}
/// <summary>
/// 更新当前工位
/// </summary>
/// <param name="station"></param>
public void UpdaterestartCount ( string Barcode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " exec SP_Pro_UpdateRestartCount '" ) . Append ( Barcode ) . Append ( "'" ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
db . dbHelper . CommandText = sb . ToString ( ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "更新重投次数错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
}
}
/// <summary>
/// 生成新的产品信息
/// </summary>
/// <param name="station"></param>
public string CreatNewProduct ( StationInfo station )
{
string MainBarcode = "" ;
try
{
DbHandler db = new DbHandler ( ) ;
//StationInsertInfo sinsert = new StationInsertInfo();
//生成系统条码,
MainBarcode = db . GetLastMainBarcode ( "M" ) ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( e . ToString ( ) ) ;
}
return MainBarcode ;
}
/// <summary>
/// 生成新的产品信息
/// </summary>
/// <param name="station"></param>
public string CreatNewSemibarcode ( string Head , string lineID )
{
string semibarcode = "" ;
try
{
DbHandler db = new DbHandler ( ) ;
//生成系统条码,
semibarcode = db . GetLastSemiBarcode ( Head , lineID ) ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( e . ToString ( ) ) ;
}
return semibarcode ;
}
public void DeleteStationData ( string tablename , string ProductBarCode )
{
try
{
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "DELETE FROM " + tablename + " WHERE ScanBarcode=@ProductBarCode " ;
db . dbHelper . AddParameter ( "@ProductBarCode" , ProductBarCode ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception ex )
{
ICSharpCode . Core . LoggingService . Error ( ex . ToString ( ) ) ;
}
}
public string GetZhuYouByKTBarCode ( string productbarcode , string paratype )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
if ( productbarcode ! = "" )
{
if ( paratype = = "预加油重量" )
{
sb . Append ( " SELECT TOP(1) Para1 FROM T_RP_StationPara_220_1 WHERE ScanBarcode='" ) . Append ( productbarcode ) . Append ( "' order by InsertTime desc" ) ;
}
else
{
sb . Append ( " SELECT TOP(1) Para2 FROM T_RP_StationPara_220_1 WHERE ScanBarcode='" ) . Append ( productbarcode ) . Append ( "' order by InsertTime desc" ) ;
}
}
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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "Trace工位查询错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
public string SelectJingPanCodeBySemiBarcodeA ( string SemiBarcode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
if ( SemiBarcode ! = "" )
{
sb . Append ( " SELECT ProductBarcode FROM dbo.T_RP_BarcodeRelationShip WHERE LineID='3' and SemiBarcode ='" ) . Append ( SemiBarcode ) . Append ( "' order by InsertTime desc" ) ;
}
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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "SelectJingPanCodeBySemiBarcodeA查询错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
public string getDongPanDataByBarCode ( string prama , string productbarcode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
if ( productbarcode ! = "" )
{
sb . Append ( " SELECT TOP(1) " + prama + " FROM T_RP_StationPara_B20 WHERE ScanBarcode='" ) . Append ( productbarcode ) . Append ( "' order by InsertTime desc" ) ;
}
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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "Trace工位查询错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
public bool Get90Quality ( string barcode )
{
bool iflag = false ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " SELECT TOP(1) State FROM dbo.T_RP_StationPara_B90 WHERE SemiBarcode= '" ) . Append ( barcode ) . Append ( "' " ) . Append ( " order by InsertTime desc" ) ;
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 )
{
if ( obj . ToString ( ) = = "1" )
{
iflag = true ;
}
return iflag ;
}
else
{
return iflag ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "静盘工位信息查询错误:" + barcode + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return iflag ;
}
}
public string getSemiBarcodeAByDongPanCode ( string productbarcode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
if ( productbarcode ! = "" )
{
sb . Append ( " SELECT TOP(1) SemiBarcode FROM T_RP_BarcodeRelationShip WHERE ProductBarcode='" ) . Append ( productbarcode ) . Append ( "' order by InsertTime desc" ) ;
}
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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "Trace工位查询错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
public void UpdateCompleteStationInfo ( string SemiBarcode_A )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " UPDATE dbo.T_SY_TraceState SET FinishFlag=1,EndTime=GETDATE(),CurrentStationID='29',state=1 " ) ;
sb . Append ( " where ProductBarcode='" ) . Append ( SemiBarcode_A ) . Append ( "'" ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
db . dbHelper . CommandText = sb . ToString ( ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "获取条码语句错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
}
}
/// <summary>
/// 解除绑定
/// </summary>
/// <param name="station"></param>
public void UnbandTray ( StationInfo station )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( "Update T_RP_WorkTrayRealTimeInfo set barcode='',Semibarcode='',state='0' " ) ;
sb . Append ( " where RFIDNum='" ) . Append ( station . Data . RFIDNo ) . Append ( "'" ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
db . dbHelper . CommandText = sb . ToString ( ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "获取条码语句错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
}
}
public string getChongTouState ( string productbarcode , string abarcode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
if ( abarcode = = "" & & productbarcode ! = "" )
{
sb . Append ( " SELECT TOP(1) ISDis FROM dbo.T_SY_TraceState WHERE productbarcode='" ) . Append ( productbarcode ) . Append ( "' order by BeginTime desc" ) ;
}
else if ( productbarcode = = "" & & abarcode ! = "" )
{
sb . Append ( " SELECT TOP(1) ISDis FROM dbo.T_SY_TraceState WHERE SemiBarcode_A='" ) . Append ( abarcode ) . Append ( "' order by BeginTime desc" ) ;
}
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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "Trace工位查询错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
public string getSemiBacode ( string productbarcode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " SELECT TOP(1) semibarcode_A FROM dbo.T_SY_TraceState WHERE productbarcode='" ) . Append ( productbarcode ) . Append ( "' order by BeginTime desc" ) ;
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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "Trace工位查询错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
#region 判断是否工作代码, yinzf 2023-3-1
public bool PreStationState ( StationInfo station )
{
return false ;
}
public string GetFirstStationIDByStationID ( string StationID )
{
string Flag = "" ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " select PreStationID from T_BD_SubStation where StationID ='" ) . Append ( StationID ) . 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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception ex )
{
return Flag ;
}
}
/// <summary>
/// 换线工位互锁验证
/// </summary>
/// <param name="stationID"></param>
/// <param name="RFID"></param>
/// <returns></returns>
public bool ChangeLineStationHaveWork ( StationInfo station )
{
StringBuilder sb = new StringBuilder ( ) ;
DbHandler db = new DbHandler ( ) ;
try
{
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
sb . Append ( "EXEC SP_Pro_ChangeLineCurruntState '" ) ;
sb . Append ( station . Data . ProductBarcode ) . Append ( "','" ) ;
sb . Append ( station . stationID ) . Append ( "'" ) ;
db . dbHelper . CommandText = sb . ToString ( ) ;
var obj = db . dbHelper . ToScalar ( ) ;
if ( obj ! = null )
{
int result = Convert . ToInt32 ( obj ) ;
if ( result > 1 )
{
return false ;
}
else
{
return true ;
}
}
else
{
return true ;
}
}
catch ( Exception ex )
{
ICSharpCode . Core . LoggingService . Error ( string . Format ( ex . ToString ( ) ) ) ;
return false ;
}
}
/// <summary>
/// 根据组件条码查询是否重投
/// </summary>
/// <returns></returns>
public bool IsReStartWorkByBarCode ( StationInfo station , string productbarcode )
{
bool bFlag = false ;
try
{
string ISDis = getChongTouStateByBarCode ( productbarcode ) ;
if ( ! string . IsNullOrEmpty ( ISDis ) ) {
if ( ISDis = = "1" )
{
ICSharpCode . Core . LoggingService . DebugFormatted ( "{0}查询{1}托盘的产品为重投,条码:{2}" , station . StationName , station . Data . RFIDNo , productbarcode ) ;
bFlag = true ;
}
else
{
bFlag = false ;
}
}
return bFlag ;
} catch ( Exception ex )
{
return bFlag ;
}
}
public string getChongTouStateByBarCode ( string productbarcode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
if ( productbarcode ! = "" )
{
sb . Append ( " SELECT TOP(1) ISDis FROM dbo.T_RP_BarcodeRelationShip WHERE ProductBarcode='" ) . Append ( productbarcode ) . Append ( "' order by InsertTime desc" ) ;
}
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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "Trace工位查询错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return "" ;
}
}
public bool IsReStartWork ( StationInfo stat )
{
bool bFlag = false ;
try
{
//先根据托盘号查询A码
string Abarcode = GetTraySemiBarcode ( stat . Data . RFIDNo ) ;
if ( ! string . IsNullOrEmpty ( Abarcode ) )
{
string ISDis = getChongTouState ( "" , Abarcode ) ;
if ( ! string . IsNullOrEmpty ( ISDis ) )
{
//重投
if ( ISDis = = "1" )
{
ICSharpCode . Core . LoggingService . Debug ( stat . StationCode + "查询[" + stat . Data . RFIDNo + "]托盘的产品为重投" ) ;
bFlag = true ;
}
else
{
bFlag = false ;
}
}
}
return bFlag ;
}
catch ( Exception ex )
{
return bFlag ;
}
}
public string ReStartWork ( StationInfo stat )
{
string bFlag = "" ;
try
{
//先根据托盘号查询A码
string Abarcode = GetTraySemiBarcode ( stat . Data . RFIDNo ) ;
if ( ! string . IsNullOrEmpty ( Abarcode ) )
{
string ISDis = getChongTouState ( "" , Abarcode ) ;
if ( ! string . IsNullOrEmpty ( ISDis ) )
{
//重投
//ICSharpCode.Core.LoggingService.Debug(stat.StationCode + "查询[" + stat.Data.RFIDNo + "]托盘的产品为重投");
bFlag = ISDis ;
}
}
return bFlag ;
}
catch ( Exception ex )
{
return bFlag ;
}
}
/// <summary>
/// 判断托盘是否为空
/// state=0则表示空, state=2表示不合格, state=1表示合格
/// </summary>
/// <param name="stat"></param>
/// <returns></returns>
public bool TrayIsNull ( StationInfo stat , out WorkTray tray )
{
tray = new WorkTray ( ) ;
try
{
DbHandler db = new DbHandler ( ) ;
//判断产品当前状态
ICSharpCode . Core . LoggingService . Debug ( stat . StationCode + "开始查询[" + stat . Data . RFIDNo + "]托盘信息" ) ;
tray = db . GetProductQuality ( stat . Data . RFIDNo ) ;
if ( ! tray . SemiBarcode . Equals ( string . Empty ) )
{
return false ;
}
else
{
ICSharpCode . Core . LoggingService . Warn ( "查询[" + stat . Data . RFIDNo + "]托盘所属产品主码未绑定" ) ;
return true ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Warn ( "TrayIsNull函数错误" + e . ToString ( ) ) ;
return false ;
}
}
/// <summary>
/// 通过RFID获取当前托盘信息
/// </summary>
/// <param name="stat"></param>
/// <returns></returns>
public WorkTray GetTrayInfoByRFID ( StationInfo stat )
{
WorkTray tray = new WorkTray ( ) ;
try
{
DbHandler db = new DbHandler ( ) ;
//判断产品当前状态
tray = db . GetProductQuality ( stat . Data . RFIDNo ) ;
return tray ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Warn ( "TrayIsNull函数错误" + e . ToString ( ) ) ;
return tray ;
}
}
/// <summary>
/// 通过物料条码获取当前托盘信息
/// </summary>
/// <param name="stat"></param>
/// <returns></returns>
public WorkTray GetTrayInfoByBarcode ( StationInfo stat )
{
WorkTray tray = new WorkTray ( ) ;
try
{
DbHandler db = new DbHandler ( ) ;
//判断产品当前状态
tray = db . GetTrayInfoByBarcode ( stat . Data . MainBarcode ) ;
return tray ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Warn ( "TrayIsNull函数错误" + e . ToString ( ) ) ;
return tray ;
}
}
/// <summary>
/// 判断产品当前质量
/// </summary>
/// <param name="rfid"></param>
/// <returns></returns>
public bool ProductQuality ( WorkTray workTray )
{
return workTray . OKNG = = 1 ;
}
/// <summary>
/// 上一工位是否已经做了, 看currentstion
/// </summary>
/// <param name="rfid"></param>
/// <returns></returns>
public bool PreStationInfo ( StationInfo stat , string Epc )
{
DbHandler db = new DbHandler ( ) ;
bool pre = db . GetPreWorkInfo ( Epc , stat . stationID ) ;
if ( ! pre )
{
ICSharpCode . Core . LoggingService . Warn ( "工位:" + stat . StationName + ",信息:托盘 " + Epc + ":没有上一工位工作信息" ) ;
}
return pre ;
}
/// <summary>
/// 获取当前工位质量
/// </summary>
/// <param name="sta"></param>
/// <returns></returns>
public bool CurrentStationInfo ( StationInfo stat , string epc )
{
DbHandler db = new DbHandler ( ) ;
bool workready = db . CurrentStationHaveWork ( stat . stationID , epc ) ;
if ( workready )
{
ICSharpCode . Core . LoggingService . Warn ( "工位:" + stat . StationName + ",信息:托盘 " + epc + "当前工位已完工" ) ;
}
return workready ;
}
public string GetReStartInfo ( string canshu , string barcode , string TableName , string Param )
{
string iflag = "" ;
try
{
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( " SELECT TOP(1) " + canshu + " FROM " + TableName + " WHERE " ) . Append ( Param + "='" ) . Append ( barcode ) . Append ( "' order by InsertTime desc " ) ;
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 )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception ex )
{
return iflag ;
}
}
public string LastWorkProductionInfo ( string barcode , string TableName , string Param )
{
string iflag = "" ;
try
{
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( " SELECT TOP(1) State FROM " + TableName + " WHERE " ) . Append ( Param + "='" ) . Append ( barcode ) . Append ( "' order by InsertTime desc " ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
ICSharpCode . Core . LoggingService . InfoFormatted ( "查询上工位信息:{0},{1}: " , sb . ToString ( ) , barcode ) ;
db . dbHelper . CommandText = sb . ToString ( ) ;
var obj = db . dbHelper . ToScalar ( ) ;
if ( obj ! = null )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception ex )
{
return iflag ;
}
}
public string GetABarCode ( string barcode )
{
string iflag = "" ;
try
{
StringBuilder sb = new StringBuilder ( ) ;
if ( barcode ! = "" )
{
sb . Append ( " SELECT TOP(1) SemiBarcode FROM T_RP_BarcodeRelationShip WHERE ProductBarcode='" ) . Append ( barcode ) . Append ( "' order by InsertTime desc" ) ;
}
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
//ICSharpCode.Core.LoggingService.InfoFormatted("查询上工位信息:{0},{1}: ", sb.ToString(), barcode);
db . dbHelper . CommandText = sb . ToString ( ) ;
var obj = db . dbHelper . ToScalar ( ) ;
if ( obj ! = null )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception ex )
{
ICSharpCode . Core . LoggingService . Error ( "Trace工位查询错误:" + ex . ToString ( ) ) ;
return iflag ;
}
}
public bool IsReStartProduction ( string barcode )
{
bool iflag = false ;
//根据主线码查询是否重投
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " SELECT TOP(1) ISDis FROM dbo.T_SY_TraceState WHERE SemiBarcode_A='" ) . Append ( barcode ) . 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 )
{
if ( obj . ToString ( ) ! = "0" )
{
iflag = true ;
}
return iflag ;
}
else
{
return iflag ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "Trace工位查询错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return iflag ;
}
}
public bool Chongtou ( StationInfo station )
{
ICSharpCode . Core . LoggingService . Debug ( "重投数据" ) ;
//判断是否为重投
string ISDis = getChongTouState ( station . Data . ProductBarcode , "" ) ;
if ( ISDis = = "2" )
{
//获取A码
station . Data . semibacode = getSemiBacode ( station . Data . ProductBarcode ) ;
ICSharpCode . Core . LoggingService . Debug ( "重投产品码:" + station . Data . ProductBarcode + ",A码:" + station . Data . semibacode ) ;
UpdateTrayChongtou ( station . Data . RFIDNo , station . Data . semibacode ) ;
//判断当前工位是否可以过滤
if ( this . CurrentStationInfo ( station , station . Data . RFIDNo ) )
{
this . DaoWeiQingQiuHandle ( station , ( int ) DaoWeiResult . FangXing ) ;
return true ;
}
else
{
return false ;
}
}
//没查询到绑定信息
else if ( ISDis = = "" )
{
//插入trace表
string ABarCode = CreatNewSemibarcode ( "A" , "1" ) ;
//创建新的产品
string mainBarcode = CreatNewProduct ( station ) ;
DbHandler db = new DbHandler ( ) ;
//查询当前的机种型号,不是机种要具体到型号
string machineID = db . GetNowProductionInfo ( ) ;
db . InsertTrace ( mainBarcode , ABarCode , station . Data . ProductBarcode , machineID ) ;
return false ;
}
else
{
return false ;
}
}
public bool IsSelectAllStationData ( string stationID )
{
bool iflag = false ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " select IsNGStation from T_BD_SubStation WHERE StationID='" ) . Append ( stationID ) . 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 )
{
if ( obj . ToString ( ) ! = "0" )
{
iflag = true ;
}
return iflag ;
}
else
{
return iflag ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "MES功能开关状态查询错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return iflag ;
}
}
public bool IsOpen ( string stationID )
{
bool iflag = false ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " select IsShow from T_BD_SubStation WHERE StationID='" ) . Append ( stationID ) . 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 )
{
if ( obj . ToString ( ) ! = "0" )
{
iflag = true ;
}
return iflag ;
}
else
{
return iflag ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "MES功能开关状态查询错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return iflag ;
}
}
/// <summary>
/// 静盘工位检验质量
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
public bool GetJPProductionQuality ( string barcode )
{
bool iflag = false ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " SELECT TOP(1) State FROM dbo.T_RP_StationPara_S320 WHERE ScanBarcode= '" ) . Append ( barcode ) . Append ( "' " ) . Append ( " order by InsertTime desc" ) ;
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 )
{
if ( obj . ToString ( ) = = "1" )
{
iflag = true ;
}
return iflag ;
}
else
{
return iflag ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "静盘工位信息查询错误:" + barcode + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return iflag ;
}
}
/// <summary>
/// 通过静盘码查询动静盘绑定关系
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
public DJPBarCodeRelationShip GetProductQuality ( string JPBarCode )
{
DJPBarCodeRelationShip dJPBarCodeRelationShip = new DJPBarCodeRelationShip ( ) ;
bool iflag = false ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " SELECT TOP(1) * FROM dbo.T_DJP_BarCodeRelationShip WHERE JPBarCode= '" ) . Append ( JPBarCode ) . Append ( "' " ) . Append ( " order by RecordTime desc" ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
db . dbHelper . CommandText = sb . ToString ( ) ;
DataTable dt = db . dbHelper . ToDataTable ( ) ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
dJPBarCodeRelationShip . DPBarCode = dt . Rows [ 0 ] [ "DPBarCode" ] . ToString ( ) ;
dJPBarCodeRelationShip . JPBarCode = dt . Rows [ 0 ] [ "JPBarCode" ] . ToString ( ) ;
}
else
{
return dJPBarCodeRelationShip ;
}
return dJPBarCodeRelationShip ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "静盘工位信息查询错误:" + JPBarCode + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return null ;
}
}
public string GetSemiBarcodeByProductBarCode ( string KT_BarCode )
{
string SemiBarcode = "" ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " SELECT TOP(1) SemiBarcode_A FROM dbo.T_SY_TraceState WHERE ProductBarcode= '" ) . Append ( KT_BarCode ) . Append ( "' " ) . Append ( " order by BeginTime desc" ) ;
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 )
{
SemiBarcode = obj . ToString ( ) ;
return SemiBarcode ;
}
else
{
return SemiBarcode ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "A码信息查询错误:" + KT_BarCode + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return SemiBarcode ;
}
}
public string GetWorkInfo ( string RFID )
{
string SemiBarcode = "" ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
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 ( "' " ) ;
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 )
{
SemiBarcode = obj . ToString ( ) ;
return SemiBarcode ;
}
else
{
return SemiBarcode ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "上工位工作信息查询错误:" + RFID + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return SemiBarcode ;
}
}
public string GetHCodeByProductBarCode ( string ProductBarCode )
{
string SemiBarcode = "" ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " SELECT TOP(1) SemiBarcode_C FROM dbo.T_SY_TraceState WHERE ProductBarcode= '" ) . Append ( ProductBarCode ) . Append ( "' " ) . Append ( " order by BeginTime desc" ) ;
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 )
{
SemiBarcode = obj . ToString ( ) ;
return SemiBarcode ;
}
else
{
return SemiBarcode ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "控制器绑定信息查询错误:" + ProductBarCode + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return SemiBarcode ;
}
}
public string GetKCodeByProductBarCode ( string ProductBarCode )
{
string SemiBarcode = "" ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " SELECT TOP(1) SemiBarcode2 FROM dbo.T_SY_TraceState WHERE ProductBarcode= '" ) . Append ( ProductBarCode ) . Append ( "' " ) . Append ( " order by BeginTime desc" ) ;
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 )
{
SemiBarcode = obj . ToString ( ) ;
return SemiBarcode ;
}
else
{
return SemiBarcode ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "控制器绑定信息查询错误:" + ProductBarCode + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return SemiBarcode ;
}
}
public string GetMBarcodeByProductBarCode ( string KT_BarCode )
{
string SemiBarcode = "" ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " SELECT TOP(1) Barcode FROM dbo.T_SY_TraceState WHERE ProductBarcode= '" ) . Append ( KT_BarCode ) . Append ( "' " ) . Append ( " order by BeginTime desc" ) ;
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 )
{
SemiBarcode = obj . ToString ( ) ;
return SemiBarcode ;
}
else
{
return SemiBarcode ;
}
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "M码信息查询错误:" + KT_BarCode + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return SemiBarcode ;
}
}
public bool GetStationNGBySemiBarCode ( string BarCode , string StationCode )
{
bool iflag = false ;
string sql = "" ;
try
{
DbHandler db = new DbHandler ( ) ;
if ( db . dbHelper = = null )
{
return false ;
}
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
sql = "Exec pro_AllProductionQualityInfo @barcode,@StationCode" ;
db . dbHelper . AddParameter ( "@barcode" , BarCode ) ;
db . dbHelper . AddParameter ( "@StationCode" , StationCode ) ;
db . dbHelper . CommandText = sql ;
DataSet ds = ( DataSet ) db . dbHelper . ToDataSet ( ) ;
DataTable dt = ds . Tables [ 0 ] ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
for ( int i = 0 ; i < dt . Rows . Count ; i + + )
{
//这里如果要判断最后一工位与倒数第二个工位互锁, 取ID=16
string s = dt . Rows [ i ] [ "State" ] . ToString ( ) ;
if ( dt . Rows [ i ] [ "State" ] . ToString ( ) ! = "1" )
{
iflag = true ;
ICSharpCode . Core . LoggingService . ErrorFormatted ( "{0}工位数据NG! " , dt . Rows [ i ] [ "StationName" ] . ToString ( ) ) ;
return iflag ;
}
}
}
return iflag ;
}
catch ( Exception ex )
{
ICSharpCode . Core . LoggingService . Error ( "获取条码语句错误:" + sql . ToString ( ) + "/r/n" + ex . ToString ( ) ) ;
return false ;
}
}
public DataTable GetXNByProductCode ( string BarCode , string StationCode )
{
bool iflag = false ;
string sql = "" ;
DataTable dt ;
try
{
DbHandler db = new DbHandler ( ) ;
if ( db . dbHelper = = null )
{
return null ;
}
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
sql = "Exec pro_AllProductionQualityInfo @barcode,@StationCode" ;
db . dbHelper . AddParameter ( "@barcode" , BarCode ) ;
db . dbHelper . AddParameter ( "@StationCode" , StationCode ) ;
db . dbHelper . CommandText = sql ;
DataSet ds = ( DataSet ) db . dbHelper . ToDataSet ( ) ;
dt = ds . Tables [ 0 ] ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
ICSharpCode . Core . LoggingService . Info ( "查询当前工位信息:" + sql ) ;
//for (int i = 0; i < dt.Rows.Count; i++)
//{
// //这里如果要判断最后一工位与倒数第二个工位互锁, 取ID=16
// string s = dt.Rows[i]["State"].ToString();
// if (dt.Rows[i]["State"].ToString() != "1")
// {
// iflag = true;
// ICSharpCode.Core.LoggingService.ErrorFormatted("{0}工位数据NG! ", dt.Rows[i]["StationName"].ToString());
// return dt;
// }
//}
return dt ;
}
return dt ;
}
catch ( Exception ex )
{
ICSharpCode . Core . LoggingService . Error ( "获取条码语句错误:" + sql . ToString ( ) + "/r/n" + ex . ToString ( ) ) ;
return null ;
}
}
/// <summary>
/// 获取产品信息
/// </summary>
/// <param name="ProductBarCode"></param>
/// <returns></returns>
public TSyTracestate GetTraceStateInfoByProductBarCode ( string ProductBarCode )
{
//ICSharpCode.Core.LoggingService.Fatal("获取托盘信息");
DbHandler db = new DbHandler ( ) ;
TSyTracestate TSyTracestate = new TSyTracestate ( ) ;
try
{
if ( db . dbHelper = = null )
{
return null ;
}
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "SELECT TOP 1 Barcode,t1.ProductID,t2.ProductName,BeginTime,EndTime,ShiftID,GroupID,ShiftNo,SemiBarcode_A,SemiBarcode_B,SemiBarcode_C,ProductBarcode,SemiBarcode2,shellbarcode,NameplateInfo,MarkRecord,Attr1,Attr2,ISDis,DisChecker,DisTime,State,CurrentStationID,NGStationID,RestartStation,FinishFlag,D9Remark FROM [JYD_shengjie].[dbo].[T_SY_TraceState] T1 left join dbo.T_BD_ProductInfo T2 on t1.ProductID = t2.ProductID where ProductBarcode='" ) . Append ( ProductBarCode ) . Append ( "' order by BeginTime desc" ) ;
db . dbHelper . CommandText = sb . ToString ( ) ;
DataTable dt = db . dbHelper . ToDataTable ( ) ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
TSyTracestate . ProductID = dt . Rows [ 0 ] [ "ProductID" ] . ToString ( ) ;
TSyTracestate . ProductName = dt . Rows [ 0 ] [ "ProductName" ] . ToString ( ) ;
TSyTracestate . ProductBarcode = dt . Rows [ 0 ] [ "ProductBarcode" ] . ToString ( ) ;
TSyTracestate . ShiftID = dt . Rows [ 0 ] [ "ShiftID" ] . ToString ( ) ;
TSyTracestate . GroupID = dt . Rows [ 0 ] [ "GroupID" ] . ToString ( ) ;
TSyTracestate . Barcode = dt . Rows [ 0 ] [ "Barcode" ] . ToString ( ) ;
TSyTracestate . BeginTime = dt . Rows [ 0 ] [ "BeginTime" ] . ToString ( ) ;
TSyTracestate . EndTime = dt . Rows [ 0 ] [ "EndTime" ] . ToString ( ) ;
return TSyTracestate ;
}
return TSyTracestate ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "获取产品信息失败" + e . Message ) ;
return TSyTracestate ;
}
}
public void InsertScanBarCodePrintRecord ( TSyTracestate syTracestate )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " insert into dbo.base_scanbarcode_record(MCode,ProductCode) values('" ) ;
sb . Append ( syTracestate . Barcode ) . Append ( "','" ) ;
sb . Append ( syTracestate . ProductBarcode ) . Append ( "')" ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = sb . ToString ( ) ;
ICSharpCode . Core . LoggingService . Info ( "铭牌打印记录:" + sb . ToString ( ) + "流水号:" + syTracestate . Barcode + ",产品码" + syTracestate . ProductBarcode ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "铭牌打印记录出错:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
}
}
# endregion
public bool GetStateStationByRFID ( string RFID )
{
bool bFlag = false ;
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( "SELECT State FROM dbo.T_RP_WorkTrayRealTimeInfo " ) ;
sb . Append ( " where RFIDNum='" ) . Append ( RFID ) . 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 )
{
if ( obj . ToString ( ) = = "1" )
{
bFlag = true ;
return bFlag ;
}
}
else
{
return bFlag ;
}
return bFlag ;
}
catch ( Exception e )
{
ICSharpCode . Core . LoggingService . Error ( "GetStateStationByRFID获取当前工位语句错误:" + sb . ToString ( ) + "/r/n" + e . ToString ( ) ) ;
return bFlag ;
}
}
#region 重投业务
public bool UpdateTraceReStartStation ( string ISDis , string CurrentStationID , string RestartStation , string ProductBarcode , string SemiBarcode_A )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
if ( string . IsNullOrEmpty ( ProductBarcode ) )
{
sb . Append ( " UPDATE dbo.T_SY_TraceState SET ISDis = '" ) . Append ( ISDis ) ;
sb . Append ( "' , RestartStation='" ) . Append ( RestartStation ) . Append ( "' ,CurrentStationID='" ) . Append ( CurrentStationID ) . Append ( "'" ) . Append ( " WHERE SemiBarcode_A='" ) . Append ( SemiBarcode_A ) . Append ( "' " ) ;
}
else
{
sb . Append ( " UPDATE dbo.T_SY_TraceState SET ProductBarcode = '" ) . Append ( ProductBarcode ) . Append ( " ',ISDis = '" ) . Append ( ISDis ) ;
sb . Append ( "' , RestartStation='" ) . Append ( RestartStation ) . Append ( "' ,CurrentStationID='" ) . Append ( CurrentStationID ) . Append ( "'" ) . Append ( " WHERE SemiBarcode_A='" ) . Append ( SemiBarcode_A ) . 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 ;
}
}
public bool UpdateTraceReStartStation ( string CurrentStationID , string ProductBarcode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " UPDATE dbo.T_SY_TraceState SET " ) ;
sb . Append ( "CurrentStationID='" ) . Append ( CurrentStationID ) . Append ( "' WHERE SemiBarcode_A='" ) . 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 ;
}
}
# endregion
public Object [ ] floatToObject ( float ff )
{
//正负符号, 默认为0
byte flag = 0 ;
if ( ff < 0 )
{
flag = 128 ;
ff = ff * - 1 ;
}
byte [ ] floatByte = BitConverter . GetBytes ( ff ) ;
byte [ ] lowhByte = new byte [ 4 ] ;
lowhByte [ 0 ] = floatByte [ 0 ] ;
lowhByte [ 1 ] = floatByte [ 1 ] ;
lowhByte [ 2 ] = 0 ;
lowhByte [ 3 ] = 0 ;
byte [ ] highByte = new byte [ 4 ] ;
highByte [ 0 ] = floatByte [ 2 ] ;
highByte [ 1 ] = floatByte [ 3 ] ;
highByte [ 2 ] = 0 ;
highByte [ 3 ] = 0 ;
highByte [ 1 ] = ( byte ) ( highByte [ 1 ] + flag ) ;
UInt32 low = BitConverter . ToUInt32 ( lowhByte , 0 ) ;
int high = BitConverter . ToInt16 ( highByte , 0 ) ;
object [ ] buff = new object [ 2 ] ;
buff [ 0 ] = low ;
buff [ 1 ] = high ;
return buff ;
}
}
/// <summary>
/// 托盘到位请求结果
/// </summary>
public enum DaoWeiResult
{
OK = 1 , //可以工作
NoBarCode = 2 , //没读到条码
PreNoWork = 3 , //上一工位未工作
TakeNG = 4 , //NG物料拿取
FangXing = 5 , //直接放行
HJNG = 6 , //氦检NG
LSJGNG = 7 , //控制器螺丝机NG
KZQQTNG = 8 , //控制器腔体检漏NG
CZNG = 9
}
}