using Estsh.Client.Common.HttpClientUtil;
using Newtonsoft.Json;
using System.Collections;
using System.Data;
using System.Text;
namespace Estsh.Client
{
public class StepLibraryAPP
{
private HttpClientHelper httpClient = null;
public StepLibraryAPP(HttpClientHelper _httpClient)
{
httpClient = _httpClient;
}
public string GetPartNo(string sn)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT part_no ");
querySen.AppendLine("FROM dbo.sys_part(NOLOCK) ");
querySen.AppendLine("WHERE part_id = ( SELECT part_id ");
querySen.AppendLine(" FROM dbo.g_sn_status(NOLOCK) ");
querySen.AppendLine(" WHERE serial_number = '" + sn + "' ");
querySen.AppendLine(" ) ");
object obj = httpClient.GetScalar(querySen.ToString());
return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty;
}
}
public string GetRuleNo(string partNo)
{
lock (httpClient)
{
string sql = "SELECT label_type FROM dbo.sys_part(NOLOCK) WHERE part_no = '" + partNo + "'";
object obj = httpClient.GetScalar(sql);
return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty;
}
}
public string GetPartLoc(string partNo)
{
lock (httpClient)
{
string sql = "SELECT part_location FROM dbo.sys_part WHERE part_no = '" + partNo + "'";
object obj = httpClient.GetScalar(sql);
return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty;
}
}
///
/// 根据总成零件号和工站编号获取本工站需要绑定的关键零件信息
///
///
///
///
public List GetBindData(string partNo, int terminalID)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT b.item_count , ");
SqlStringBuilder.Append(" b.location , ");
SqlStringBuilder.Append(" b.version , ");
SqlStringBuilder.Append(" b.item_part_id , ");
SqlStringBuilder.Append(" d.part_no , ");
SqlStringBuilder.Append(" d.part_spec , ");
SqlStringBuilder.Append(" isnull(f.lenght,0) as lenght , ");
SqlStringBuilder.Append(" f.from1 , ");
SqlStringBuilder.Append(" f.to1 , ");
SqlStringBuilder.Append(" f.fix1 , ");
SqlStringBuilder.Append(" f.from2 , ");
SqlStringBuilder.Append(" f.to2 , ");
SqlStringBuilder.Append(" f.fix2, f.type, ");
SqlStringBuilder.Append(" '' AS KPSN , f.ext_rule, ");
SqlStringBuilder.Append(" 0 AS BindQty, ");
SqlStringBuilder.Append(" f.is_validate_unique, ");
SqlStringBuilder.Append(" f.is_validate_length ");
SqlStringBuilder.Append("FROM dbo.sys_bom(NOLOCK) a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_bom_detail(NOLOCK) b ON A.bom_id = B.bom_id AND b.enabled='Y'");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part(NOLOCK) c ON A.part_id = c.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part(NOLOCK) d ON b.item_part_id = d.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_terminal(NOLOCK) e ON b.process_id = e.process_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part_sn_rule(NOLOCK) f ON b.item_part_id = f.part_id ");
SqlStringBuilder.Append("WHERE a.bom_type = '绑定' ");
SqlStringBuilder.Append(" AND c.part_no = '" + partNo + "' ");
SqlStringBuilder.Append(" AND e.terminal_id = '" + terminalID + "' and step_type=1 ");
SqlStringBuilder.Append(" GROUP BY b.item_count ,b.location ,b.version ,b.item_part_id , ");
SqlStringBuilder.Append(" d.part_no ,d.part_spec ,isnull(f.lenght,0) , ");
SqlStringBuilder.Append(" f.from1 ,f.to1 ,f.fix1 ,f.from2 ,f.to2 ,f.fix2, f.type, ");
SqlStringBuilder.Append(" a.bom_id,b.part_id,b.item_part_id,f.ext_rule,f.is_validate_unique,f.is_validate_length ");
SqlStringBuilder.Append("ORDER BY b.location ");
return httpClient.GetEntityList(SqlStringBuilder.ToString());
}
}
///
/// 根据总成零件号和工站编号获取本工站需要绑定的关键零件信息
///
///
///
///
public List GetStep2BindData(string partNo, int terminalID)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT b.item_count , ");
SqlStringBuilder.Append(" b.location , ");
SqlStringBuilder.Append(" b.version , ");
SqlStringBuilder.Append(" b.item_part_id , ");
SqlStringBuilder.Append(" d.part_no , ");
SqlStringBuilder.Append(" d.part_spec , ");
SqlStringBuilder.Append(" isnull(f.lenght,0) as lenght , ");
SqlStringBuilder.Append(" f.from1 , ");
SqlStringBuilder.Append(" f.to1 , ");
SqlStringBuilder.Append(" f.fix1 , ");
SqlStringBuilder.Append(" f.from2 , ");
SqlStringBuilder.Append(" f.to2 , ");
SqlStringBuilder.Append(" f.fix2, f.type, ");
SqlStringBuilder.Append(" '' AS KPSN , f.ext_rule, ");
SqlStringBuilder.Append(" 0 AS BindQty, ");
SqlStringBuilder.Append(" f.is_validate_unique, ");
SqlStringBuilder.Append(" f.is_validate_length ");
SqlStringBuilder.Append("FROM dbo.sys_bom(NOLOCK) a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_bom_detail(NOLOCK) b ON A.bom_id = B.bom_id AND b.enabled='Y'");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part(NOLOCK) c ON A.part_id = c.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part(NOLOCK) d ON b.item_part_id = d.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_terminal(NOLOCK) e ON b.process_id = e.process_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part_sn_rule(NOLOCK) f ON b.item_part_id = f.part_id ");
SqlStringBuilder.Append("WHERE a.bom_type = '绑定' ");
SqlStringBuilder.Append(" AND c.part_no = '" + partNo + "' ");
SqlStringBuilder.Append(" AND e.terminal_id = '" + terminalID + "' and step_type=2 ");
SqlStringBuilder.Append(" GROUP BY b.item_count ,b.location ,b.version ,b.item_part_id , ");
SqlStringBuilder.Append(" d.part_no ,d.part_spec ,isnull(f.lenght,0) , ");
SqlStringBuilder.Append(" f.from1 ,f.to1 ,f.fix1 ,f.from2 ,f.to2 ,f.fix2, f.type, ");
SqlStringBuilder.Append(" a.bom_id,b.part_id,b.item_part_id,f.ext_rule,f.is_validate_unique,f.is_validate_length ");
SqlStringBuilder.Append("ORDER BY b.location ");
return httpClient.GetEntityList(SqlStringBuilder.ToString());
}
}
public string validataLimit(string paramName)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT param_value ");
querySen.AppendLine("FROM sys_base ");
querySen.AppendLine("WHERE ( param_name = @paramName ) ");
Dictionary ht = new Dictionary(1);
ht.Add("@paramName", paramName);
object obj = httpClient.GetScalar(querySen.ToString(), ht);
return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty;
}
}
///
/// 查询 KPSN 是否使用过
///
/// KPSN
/// KPSN 是否使用过
public bool ExistsKPSN(string kpsn, int terminal_id)
{
lock (httpClient)
{
string SqlString =
"select top 1 1 from dbo.g_sn_keyparts(NOLOCK) where kpsn=@kpsn and terminal_id=@terminal_id";
Dictionary Params = new Dictionary(2);
Params.Add("@kpsn", kpsn);
Params.Add("@terminal_id", terminal_id);
return httpClient.GetScalar(SqlString, Params) != null;
}
}
public bool UpdateOPCPointValue(string terminal_id, string terminal_params_name)
{
try
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("UPDATE dbo.opc_point ");
querySen.AppendLine("SET point_flag1 = 101 , ");
querySen.AppendLine(" update_time = GETDATE() ");
querySen.AppendLine("WHERE point_name = ( SELECT param_value ");
querySen.AppendLine(" FROM dbo.sys_terminal_params ");
querySen.AppendLine(" WHERE terminal_id = @terminal_id ");
querySen.AppendLine(" AND param_name = @terminal_params_name ");
querySen.AppendLine(" ) ");
Dictionary ht = new Dictionary(2);
ht.Add("@terminal_id", terminal_id);
ht.Add("@terminal_params_name", terminal_params_name);
int rows = httpClient.Execute(querySen.ToString(), ht);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
}
catch
{
return false;
}
}
///
/// 插入 KPSN 数据
///
/// 过程条码
/// KPSN
/// KPSN 的零件号
/// KPSN 版本
/// KPSN 位置
/// 工站编号
///
public bool InsertKPSN(string sn, string kpsn, int item_part_id,
string version, string location, int terminalID)
{
lock (httpClient)
{
Dictionary Values = new Dictionary(7);
Values.Add("serial_number", sn);
Values.Add("kpsn", kpsn);
Values.Add("item_part_id", item_part_id);
Values.Add("version", version);
Values.Add("location", location);
Values.Add("terminal_id", terminalID);
Values.Add("create_userid", httpClient.userId);
return httpClient.Insert("dbo.g_sn_keyparts", Values);
}
}
public bool InsertKPSNTemp(string sn, string kpsn, int item_part_id,
string version, string location, int terminalID)
{
lock (httpClient)
{
Dictionary Values = new Dictionary(7);
Values.Add("serial_number", sn);
Values.Add("kpsn", kpsn);
Values.Add("item_part_id", item_part_id);
Values.Add("version", version);
Values.Add("location", location);
Values.Add("terminal_id", terminalID);
Values.Add("create_userid", httpClient.userId);
return httpClient.Insert("dbo.g_sn_keyparts_temp", Values);
}
}
public List keyDataTemp(string kpsn)
{
string sql = "SELECT * FROM dbo.g_sn_keyparts_temp WHERE kpsn ='" + kpsn + "'";
return httpClient.GetEntityList(sql);
}
public bool moveKeyPasts(string terIDTemp, string snTemp, string sn)
{
string sql = @" INSERT INTO dbo.g_sn_keyparts
( workorder_no ,
serial_number ,
kpsn ,
item_part_id ,
version ,
location ,
terminal_id ,
is_macthing ,
enabled ,
update_userid ,
update_ymd ,
update_hms ,
create_userid ,
create_ymd ,
create_hms ,
guid
)
SELECT workorder_no ,'" + sn + @"' AS serial_number ,
kpsn ,
item_part_id ,
version ,
location ,
terminal_id ,
is_macthing ,
enabled ,
update_userid ,
update_ymd ,
update_hms ,
create_userid ,
create_ymd ,
create_hms ,
guid
FROM dbo.g_sn_keyparts_temp
WHERE serial_number = '" + snTemp + @"'
AND terminal_id = '" + terIDTemp + @"'
DELETE FROM g_sn_keyparts_temp
WHERE serial_number = '" + snTemp + @"'
AND terminal_id = '" + terIDTemp + "' ";
return httpClient.Execute(sql) > 0;
}
public string getBaseParamValue(string name)
{
lock (httpClient)
{
string sql = "SELECT param_value FROM dbo.sys_base WHERE param_name='" + name + "'";
object obj = httpClient.GetScalar(sql);
return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty;
}
}
public bool updateBaseParamValue(string value, string name)
{
lock (httpClient)
{
string sql = "UPDATE dbo.sys_base SET param_value='" + value + "' WHERE param_name='" + name + "'";
return httpClient.Execute(sql) > 0;
}
}
public bool getSNtoModel(string _sn)
{
lock (httpClient)
{
string sql = @"SELECT b.model_name
FROM dbo.g_sn_status a
LEFT JOIN dbo.sys_model b ON a.model_id = b.model_id
WHERE a.serial_number = '" + _sn + @"'
AND ( model_name LIKE '%豪华%'
OR model_name LIKE '%旗舰%'
)";
return httpClient.GetEntityList(sql).Count > 0;
}
}
public bool IsValidata(string name)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT param_value ");
querySen.AppendLine("FROM sys_base ");
querySen.AppendLine("WHERE ( param_name = '" + name + "' ) ");
object obj = httpClient.GetScalar(querySen.ToString());
return obj != null && obj != DBNull.Value ? obj.ToString() == "Y" : false;
}
}
public bool UpdateSNTerminal(string terminalid, string sn)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("UPDATE dbo.g_sn_status SET terminal_id = @terminal_id,update_userid=@userid WHERE serial_number = @serial_number ");
Dictionary ht = new Dictionary(3);
ht.Add("@terminal_id", terminalid);
ht.Add("@serial_number", sn);
ht.Add("@userid", httpClient.userId);
try
{
httpClient.Execute(querySen.ToString(), ht);
}
catch
{
return false;
}
return true;
}
public string pdLineID(string terminalID)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT pdline_id ");
querySen.AppendLine("FROM dbo.sys_terminal ");
querySen.AppendLine("WHERE terminal_id = @terminalID ");
Dictionary ht = new Dictionary(1);
ht.Add("@terminalID", terminalID);
object obj = httpClient.GetScalar(querySen.ToString(), ht);
return obj != null ? obj.ToString().ToUpper() : string.Empty;
}
}
//更新上线时间
public bool updateOnLineStatus(string serial_number, string pdlineID)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("UPDATE dbo.g_sn_status ");
querySen.AppendLine("SET work_flag = 0 , pdline_id = @pdlineID ,update_userid=@userid, ");
querySen.AppendLine(" in_pdline_time = GETDATE() ");
querySen.AppendLine("WHERE serial_number = @serial_number ");
querySen.AppendLine("UPDATE dbo.g_workorder ");
querySen.AppendLine("SET status = 1 ,update_userid=@userid, ");
querySen.AppendLine(" in_pdline_ymd = dbo.get_ymd() , ");
querySen.AppendLine(" in_pdline_hms = dbo.get_hms() ");
querySen.AppendLine("WHERE ruid = ( SELECT b.workorder_id ");
querySen.AppendLine(" FROM dbo.g_sn_status a ");
querySen.AppendLine(" LEFT JOIN dbo.g_workorder_detail b ON a.wo_detail_id = b.ruid ");
querySen.AppendLine(" LEFT JOIN dbo.sys_part c ON a.part_id = c.part_id ");
querySen.AppendLine(" WHERE a.serial_number = @serial_number ");
//querySen.AppendLine(" AND ( c.part_location = '02' ");
//querySen.AppendLine(" OR c.part_location = '04' ");
//querySen.AppendLine(" ) ");
querySen.AppendLine(" ) ");
Dictionary ht = new Dictionary(3);
ht.Add("@serial_number", serial_number);
ht.Add("@pdlineID", pdlineID);
ht.Add("@userid", httpClient.userId);
return httpClient.Execute(querySen.ToString(), ht) > 0;
}
}
///
/// 根据条码(总成零件号)和工站编号获取本工站需要采集的关键数据
///
/// 条码
/// 工站编号
/// 查询到的相应产品配置
public List GetKeyData(string serialNumber, string terminalId)
{
try
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT a.keydata_id , ");
SqlStringBuilder.Append(" b.keydata_name , ");
SqlStringBuilder.Append(" b.keydata_desc , ");
SqlStringBuilder.Append(" b.min_value , ");
SqlStringBuilder.Append(" b.max_value , ");
SqlStringBuilder.Append(" CONVERT(VARCHAR(10),b.min_value) + '~' + CONVERT(VARCHAR(10),b.max_value) AS value , ");
SqlStringBuilder.Append(" b.seq , ");
SqlStringBuilder.Append(" a.item_count , ");
SqlStringBuilder.Append(" '' AS keydata_value , ");
SqlStringBuilder.Append(" '' AS keydata_angle , ");
SqlStringBuilder.Append(" '' AS keydata_status , ");
SqlStringBuilder.Append(" '' AS keydata_result , ");
SqlStringBuilder.Append(" '' AS keydata_ymd , ");
SqlStringBuilder.Append(" '' AS keydata_hms ");
SqlStringBuilder.Append("FROM dbo.sys_part_keydata(NOLOCK) AS a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_keydata(NOLOCK) AS b ON a.keydata_id=b.keydata_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part(NOLOCK) AS c ON a.part_id=c.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_workorder_sn(NOLOCK) AS d ON c.part_id=d.part_id ");
SqlStringBuilder.Append("WHERE a.enabled='Y' AND b.enabled='Y' ");
SqlStringBuilder.Append(" AND a.terminal_id=@terminal_id ");
SqlStringBuilder.Append(" AND d.serial_number = @serial_number ");
SqlStringBuilder.Append("ORDER BY b.seq ");
Dictionary Params = new Dictionary(2);
Params.Add("@terminal_id", terminalId);
Params.Add("@serial_number", serialNumber);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
catch (Exception ex)
{
// 记录日志
using (StreamWriter sw = new StreamWriter("PLC_Log-" + DateTime.Now.ToString("yyyy-MM") + ".txt", true))
{
sw.WriteLine(string.Format("{0} {1}", "["
+ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+ "] GetKeyData()", ex.ToString()));
sw.Flush();
sw.Close();
}
return null;
}
}
public List GetKeyDataValue(string serialNumber, string terminalId)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT keydata_desc , keydata_value , ");
querySen.AppendLine(" keydata_angle , ");
querySen.AppendLine(" 'OK' AS keydata_status ,");
querySen.AppendLine(" keydata_result , ");
querySen.AppendLine(" create_ymd AS keydata_ymd , ");
querySen.AppendLine(" create_hms AS keydata_hms ");
querySen.AppendLine("FROM dbo.g_sn_keydata_temp(NOLOCK) ");
querySen.AppendLine("WHERE serial_number = '" + serialNumber + "' ");
querySen.AppendLine(" AND terminal_id='" + terminalId + "'");
querySen.AppendLine(" AND keydata_result='P' ORDER BY keydata_ymd,keydata_hms ");
return httpClient.GetEntityList(querySen.ToString());
}
}
///
/// 更新关键数据结果
///
///
///
///
public bool updateKeyDataResult(string sn, string keyDataValue)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE dbo.g_sn_keydata_temp ");
SqlStringBuilder.Append("SET keydata_result = keydata_result + 'Fail',update_userid=@userid ");
SqlStringBuilder.Append("WHERE serial_number = @sn ");
SqlStringBuilder.Append(" AND keydata_value = @keyDataValue ");
Dictionary ht = new Dictionary(3);
ht.Add("@sn", sn);
ht.Add("@keyDataValue", keyDataValue);
ht.Add("@userid", httpClient.userId);
return httpClient.Execute(SqlStringBuilder.ToString(), ht) > 0;
}
public bool GetTestData(string sn)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT [测试结果(P/F)] ");
querySen.AppendLine("FROM dbo.i_func_testdata ");
querySen.AppendLine("WHERE 条码 = @sn ");
querySen.AppendLine("ORDER BY 测试完成日期 DESC,测试完成时间 DESC ");
Dictionary Params = new Dictionary(1);
Params.Add("@sn", sn);
List dt = httpClient.GetEntityList(querySen.ToString(), Params);
if (dt.Count <= 0)
return false;
return dt[0][0].ToString().ToUpper() == "P" ? true : false;
}
/////
///// 检查数据表是否有效
/////
/////
/////
//public bool CheckListInvalid(List dt)
//{
// if (dt == null)
// return false;
// if (dt.Count == 0)
// return false;
// return true;
//}
public int torqueQty(string serial_number)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT COUNT(DISTINCT ( keydata_id )) ");
querySen.AppendLine("FROM dbo.sys_part_keydata ");
querySen.AppendLine("WHERE part_id = ( SELECT part_id ");
querySen.AppendLine(" FROM dbo.g_sn_status ");
querySen.AppendLine(" WHERE serial_number = @serial_number ");
querySen.AppendLine(" ) ");
Dictionary ht = new Dictionary(1);
ht.Add("@serial_number", serial_number);
object obj = httpClient.GetScalar(querySen.ToString(), ht);
return obj != null && obj != DBNull.Value ? (int)obj : 0;
}
}
public int factTorqueQty(string serial_number)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT COUNT(*) ");
SqlStringBuilder.Append("FROM ( SELECT * ");
SqlStringBuilder.Append(" FROM dbo.g_sn_keydata ");
SqlStringBuilder.Append(" WHERE serial_number = @serial_number ");
SqlStringBuilder.Append(" AND keydata_result = 'P' ");
SqlStringBuilder.Append(" UNION ");
SqlStringBuilder.Append(" SELECT * ");
SqlStringBuilder.Append(" FROM dbo.g_sn_keydata_temp ");
SqlStringBuilder.Append(" WHERE serial_number = @serial_number ");
SqlStringBuilder.Append(" AND keydata_result = 'P' ");
SqlStringBuilder.Append(" ) AS keyData ");
Dictionary ht = new Dictionary(1);
ht.Add("@serial_number", serial_number);
object obj = httpClient.GetScalar(SqlStringBuilder.ToString(), ht);
return obj != null && obj != DBNull.Value ? (int)obj : 0;
}
}
public List GetBindQty(string part_no)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT DISTINCT(d.part_no), ");
querySen.AppendLine(" b.item_count , ");
querySen.AppendLine(" b.location , ");
querySen.AppendLine(" b.item_part_id , ");
querySen.AppendLine(" c.part_no, ");
querySen.AppendLine(" d.part_no , ");
querySen.AppendLine(" d.part_spec , ");
querySen.AppendLine(" f.type ");
querySen.AppendLine("FROM dbo.sys_bom a ");
querySen.AppendLine(" LEFT JOIN dbo.sys_bom_detail b ON A.bom_id = B.bom_id ");
querySen.AppendLine(" LEFT JOIN dbo.sys_part c ON A.part_id = c.part_id ");
querySen.AppendLine(" LEFT JOIN dbo.sys_part d ON b.item_part_id = d.part_id ");
querySen.AppendLine(" LEFT JOIN dbo.sys_terminal e ON b.process_id = e.process_id ");
querySen.AppendLine(" LEFT JOIN dbo.sys_part_sn_rule f ON b.item_part_id = f.part_id ");
querySen.AppendLine("WHERE a.bom_type = '绑定' ");
querySen.AppendLine(" AND c.part_no = @part_no ");
querySen.AppendLine(" AND b.process_id != '' ");
querySen.AppendLine(" AND type IS NOT NULL ");
Dictionary ht = new Dictionary(1);
ht.Add("@part_no", part_no);
return httpClient.GetEntityList(querySen.ToString(), ht);
}
}
public List GetKeyParts(string serialNumber)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine(" SELECT a.serial_number , ");
querySen.AppendLine(" b.part_no , ");
querySen.AppendLine(" b.part_spec , ");
querySen.AppendLine(" a.kpsn , ");
querySen.AppendLine(" a.create_ymd , ");
querySen.AppendLine(" a.create_hms ");
querySen.AppendLine(" FROM dbo.g_sn_keyparts (NOLOCK) a ");
querySen.AppendLine(" LEFT JOIN dbo.sys_part (NOLOCK) b ON a.item_part_id = b.part_id ");
querySen.AppendLine(" WHERE a.serial_number = @serialNumber ");
querySen.AppendLine(" OR a.serial_number = ( SELECT TOP 1 ");
querySen.AppendLine(" c.kpsn ");
querySen.AppendLine(" FROM dbo.g_sn_keyparts (NOLOCK) AS c ");
querySen.AppendLine(" WHERE c.serial_number = @serialNumber ");
querySen.AppendLine(" AND c.version = 'SubFG' ");
querySen.AppendLine(" ) ");
querySen.AppendLine(" ORDER BY a.serial_number ");
Dictionary ht = new Dictionary(1);
ht.Add("@serialNumber", serialNumber);
return httpClient.GetEntityList(querySen.ToString(), ht);
}
}
///
/// 查询打印合格证条码需要信息
///
///
///
public List GetPrintSN(string serialNumber)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.AppendLine("SELECT TOP 1 ");
SqlStringBuilder.AppendLine(" a.serial_number , ");
SqlStringBuilder.AppendLine(" b.car_no , ");
SqlStringBuilder.AppendLine(" c.vendor_part_no , ");
SqlStringBuilder.AppendLine(" c.subboard_qty , ");
SqlStringBuilder.AppendLine(" c.part_no , ");
SqlStringBuilder.AppendLine(" c.part_spec , ");
SqlStringBuilder.AppendLine(" c.part_spec2 , ");
SqlStringBuilder.AppendLine(" c.part_location , ");
SqlStringBuilder.AppendLine(" c.cust_part_no , ");
SqlStringBuilder.AppendLine(" c.part_no_3c , ");
SqlStringBuilder.AppendLine(" e.model_code , ");
SqlStringBuilder.AppendLine(" e.model_desc , ");
SqlStringBuilder.AppendLine(" e.model_alias , ");
SqlStringBuilder.AppendLine(" f.enum_desc , ");
SqlStringBuilder.AppendLine(" g.csn , ");
SqlStringBuilder.AppendLine(" g.prod_type , ");
SqlStringBuilder.AppendLine(" e.model_name , ");
SqlStringBuilder.AppendLine(" h.type_name , ");
SqlStringBuilder.AppendLine(" SUBSTRING(@serialNumber,19,4) AS number_T ,");
SqlStringBuilder.AppendLine(" SUBSTRING(@serialNumber,11,2) AS part_T ,");
SqlStringBuilder.AppendLine(" ( CONVERT([VARCHAR](10), GETDATE(), ( 120 )) ) AS ymd , ");
SqlStringBuilder.AppendLine(" ( CONVERT([VARCHAR](10), GETDATE(), ( 108 )) ) AS hms , ");
SqlStringBuilder.AppendLine(" ( CONVERT([VARCHAR](10), GETDATE(), ( 111 )) ) AS ymd2 ");
SqlStringBuilder.AppendLine("FROM dbo.g_workorder_sn a ");
SqlStringBuilder.AppendLine(" LEFT JOIN dbo.g_workorder_detail z ON a.wo_detail_id = z.ruid ");
SqlStringBuilder.AppendLine(" LEFT JOIN dbo.g_workorder b ON z.workorder_id = b.ruid ");
SqlStringBuilder.AppendLine(" LEFT JOIN dbo.sys_part c ON a.part_id = c.part_id ");
SqlStringBuilder.AppendLine(" LEFT JOIN dbo.sys_part d ON b.part_id = d.part_id ");
SqlStringBuilder.AppendLine(" LEFT JOIN dbo.sys_model e ON d.model_id = e.model_id ");
SqlStringBuilder.AppendLine(" LEFT JOIN dbo.sys_enum f ON c.part_location = f.enum_value ");
SqlStringBuilder.AppendLine(" AND f.enum_type = 'sys_part_location' ");
SqlStringBuilder.AppendLine(" LEFT JOIN dbo.g_sn_status g ON a.serial_number = g.serial_number ");
SqlStringBuilder.AppendLine(" LEFT JOIN dbo.sys_model_type h ON e.model_type_id = h.type_id ");
SqlStringBuilder.AppendLine("WHERE a.serial_number = @serialNumber ");
Dictionary Params = new Dictionary(1);
Params.Add("@serialNumber", serialNumber);
List dt = httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
return dt;
}
}
public bool UpdatePrintCount(string sn)
{
lock (httpClient)
{
string SqlString = "UPDATE dbo.g_workorder_sn SET printed =printed+1, update_userid=@userid, update_ymd=dbo.get_ymd(),update_hms=dbo.get_hms() WHERE serial_number=@sn ";
Dictionary Params = new Dictionary(2);
Params.Add("@sn", sn);
Params.Add("@userid", httpClient.userId);
return httpClient.Execute(SqlString, Params) == 1;
}
}
///
/// 修改标签计数
///
///
public string UpdatePrdQty(string sn)
{
try
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE dbo.sys_part ");
SqlStringBuilder.Append("SET subboard_qty = subboard_qty + 1 ");
SqlStringBuilder.Append("WHERE part_id = ( SELECT part_id ");
SqlStringBuilder.Append(" FROM dbo.g_sn_status ");
SqlStringBuilder.Append(" WHERE serial_number = @sn ");
SqlStringBuilder.Append(" ) ");
Dictionary param = new Dictionary(1);
param.Add("@sn", sn);
object obj = httpClient.Execute(SqlStringBuilder.ToString(), param);
if (obj == null)
{
return "";
}
return obj.ToString();
}
catch
{
return "";
}
}
public List GetSNInfo(string sn)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT a.serial_number , ");
SqlStringBuilder.Append(" b.part_location , ");
SqlStringBuilder.Append(" b.cust_part_no , ");
SqlStringBuilder.Append(" c.enum_desc ");
SqlStringBuilder.Append("FROM dbo.g_sn_status a ");
SqlStringBuilder.Append(" LEFT JOIN sys_part b ON a.part_id = b.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_enum c ON b.part_location = c.enum_value ");
SqlStringBuilder.Append("WHERE a.serial_number = @sn ");
Dictionary param = new Dictionary(1);
param.Add("@sn", sn);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), param);
}
}
public List GetSendRobotList()
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 10 ");
SqlStringBuilder.Append(" serial_number , ");
SqlStringBuilder.Append(" send_msg , ");
SqlStringBuilder.Append(" type_desc , ");
SqlStringBuilder.Append(" create_ymd , ");
SqlStringBuilder.Append(" create_hms ");
SqlStringBuilder.Append("FROM dbo.g_sn_send_robot ");
SqlStringBuilder.Append("ORDER BY create_ymd DESC , ");
SqlStringBuilder.Append(" create_hms DESC ");
return httpClient.GetEntityList(SqlStringBuilder.ToString());
}
}
public bool robotIsReady()
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT point_value FROM dbo.opc_point WHERE point_name = 'robotReadyRec' ");
object obj = httpClient.GetScalar(SqlStringBuilder.ToString());
if (string.IsNullOrEmpty(obj.ToString()))
{
return true;
}
else
{
return false;
}
}
public bool UpdateOPCPointRobot(string pointValue, string pointName)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("UPDATE dbo.opc_point ");
querySen.AppendLine("SET point_value = @pointValue , ");
querySen.AppendLine(" point_flag1 = '101' ");
querySen.AppendLine("WHERE point_name = @pointName ");
Dictionary ht = new Dictionary(2);
ht.Add("@pointValue", pointValue);
ht.Add("@pointName", pointName);
int rows = httpClient.Execute(querySen.ToString(), ht);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
}
///
/// 修改产品为静音房产品
///
///
///
public bool UpdateSNStatus(string _serial_number)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE dbo.g_sn_status ");
SqlStringBuilder.Append("SET current_status = '8' ");
SqlStringBuilder.Append("WHERE serial_number = @_serial_number ");
Dictionary ht = new Dictionary(1);
ht.Add("@_serial_number", _serial_number);
int rows = httpClient.Execute(SqlStringBuilder.ToString(), ht);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
}
public bool insertSendRobot(string sn, string sendmsg, string typedesc)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO g_sn_send_robot ");
SqlStringBuilder.Append(" ( serial_number , ");
SqlStringBuilder.Append(" send_msg , ");
SqlStringBuilder.Append(" type_desc ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append("VALUES ( @sn , ");
SqlStringBuilder.Append(" @sendmsg , ");
SqlStringBuilder.Append(" @typedesc ");
SqlStringBuilder.Append(" ) ");
Dictionary Params = new Dictionary(1);
Params.Add("@sn", sn);
Params.Add("@sendmsg", sendmsg);
Params.Add("@typedesc", typedesc);
return httpClient.Execute(SqlStringBuilder.ToString(), Params) > 0;
}
}
public bool updateStatus(string serial_number)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("UPDATE dbo.g_sn_status ");
querySen.AppendLine("SET work_flag = 1 ,update_userid=@userid , ");
querySen.AppendLine(" out_pdline_time = GETDATE(),update_ymd=dbo.get_ymd(), update_hms=dbo.get_hms() ");
querySen.AppendLine("WHERE serial_number = @serial_number ");
Dictionary ht = new Dictionary(2);
ht.Add("@serial_number", serial_number);
ht.Add("@userid", httpClient.userId);
return httpClient.Execute(querySen.ToString(), ht) > 0;
}
}
public string ProdTrans(int vbcID, string serialNumber, int terminalID, int currentStatus, string stationType)
{
//List Parameters = new List();
//Parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@vbc_id", vbcID));
//Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@serial_number", serialNumber));
//Parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@terminal_id", terminalID));
//Parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@current_status", currentStatus));
//Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@station_type", stationType));
//Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@tres", 500));
Dictionary inParams = new Dictionary();
inParams.Add("@vbc_id", vbcID);
inParams.Add("@serial_number", serialNumber);
inParams.Add("@terminal_id", terminalID);
inParams.Add("@current_status", currentStatus);
inParams.Add("@station_type", stationType);
Dictionary outParams = new Dictionary();
outParams.Add("@tres", "500");
Hashtable ht = httpClient.ExecuteSotreProcedure("dbo.sys_prod_trans", inParams, outParams);
if (!ht.ContainsKey("outParams"))
return string.Empty;
var res = JsonConvert.DeserializeObject>(ht["outParams"].ToString());
return res["@tres"].ToString();
}
public bool UpdateCurrentStatus(string serial_number)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
// 标记为不良品
SqlStringBuilder.Append("UPDATE g_sn_status ");
SqlStringBuilder.Append("SET current_status = '1' ");
SqlStringBuilder.Append(" ,update_ymd = CONVERT(VARCHAR(10),GETDATE(),120) ");
SqlStringBuilder.Append(" ,update_hms = CONVERT(VARCHAR(10),GETDATE(),108) ");
SqlStringBuilder.Append(" ,update_userid = @userid ");
SqlStringBuilder.Append(" ,in_process_time = GETDATE() ");
SqlStringBuilder.Append("WHERE current_status = '0' ");
SqlStringBuilder.Append(" AND (serial_number = @serial_number); ");
Dictionary Params = new Dictionary(2);
Params.Add("@serial_number", serial_number);
Params.Add("@userid", httpClient.userId);
bool isUpdated = httpClient.Execute(SqlStringBuilder.ToString(), Params) > 0;
return isUpdated;
}
public bool instertFailItem(string sn, string operation, string no, string name, string result)
{
string sql = "INSERT INTO g_repair (serial_number,operation,seq,name,result)VALUES(@sn,@operation,@no,@name,@result)";
Dictionary ht = new Dictionary(5);
ht.Add("@sn", sn);
ht.Add("@operation", operation);
ht.Add("@no", no);
ht.Add("@name", name);
ht.Add("@result", result);
return httpClient.Execute(sql, ht) > 0;
}
///
/// 下线校验数据
///
public List OutPdlineCheck(int terminalID, string serial_number)
{
lock (httpClient)
{
if (terminalID <= 0)
{
return null;
}
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT a.serial_number AS str1 , ");
SqlStringBuilder.Append(" terminal_name AS str2 , ");
SqlStringBuilder.Append(" a.keydata_desc AS str3 , ");
SqlStringBuilder.Append(" '未采集' AS str4 ");
SqlStringBuilder.Append("FROM ( SELECT a.part_id , ");
SqlStringBuilder.Append(" b.serial_number , ");
SqlStringBuilder.Append(" a.terminal_id , ");
SqlStringBuilder.Append(" e.terminal_name , ");
SqlStringBuilder.Append(" a.keydata_id , ");
SqlStringBuilder.Append(" c.keydata_desc ");
SqlStringBuilder.Append(" FROM dbo.sys_part_keydata AS a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_sn_status AS b ON a.part_id = b.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_keydata AS c ON a.keydata_id = c.keydata_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_terminal AS e ON a.terminal_id = e.terminal_id ");
SqlStringBuilder.Append(" WHERE b.serial_number = @serial_number ");
SqlStringBuilder.Append(" ) AS a ");
SqlStringBuilder.Append(" LEFT JOIN ( SELECT serial_number , ");
SqlStringBuilder.Append(" terminal_id , ");
SqlStringBuilder.Append(" keydata_desc , ");
SqlStringBuilder.Append(" keydata_result ");
SqlStringBuilder.Append(" FROM dbo.g_sn_keydata ");
SqlStringBuilder.Append(" WHERE serial_number = @serial_number ");
SqlStringBuilder.Append(" AND keydata_result = 'P' ");
SqlStringBuilder.Append(" ) AS b ON b.terminal_id = a.terminal_id ");
SqlStringBuilder.Append(" AND b.keydata_desc = a.keydata_desc ");
SqlStringBuilder.Append("WHERE b.keydata_result IS NULL ");
SqlStringBuilder.Append("UNION ALL ");
SqlStringBuilder.Append("SELECT a.serial_number AS str1 , ");
SqlStringBuilder.Append(" terminal_name AS str2 , ");
SqlStringBuilder.Append(" part_spec AS str3 , ");
SqlStringBuilder.Append(" '未绑定' AS str4 ");
SqlStringBuilder.Append("FROM ( SELECT g.serial_number , ");
SqlStringBuilder.Append(" f.terminal_name , ");
SqlStringBuilder.Append(" d.part_spec , ");
SqlStringBuilder.Append(" d.part_id , ");
SqlStringBuilder.Append(" f.terminal_id ");
SqlStringBuilder.Append(" FROM dbo.sys_bom AS a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_bom_detail AS b ON a.bom_id = b.bom_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part AS c ON b.part_id = c.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part AS d ON b.item_part_id = d.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_process AS e ON b.process_id = e.process_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_terminal AS f ON e.process_id = f.process_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_sn_status AS g ON c.part_id = g.part_id ");
SqlStringBuilder.Append(" WHERE bom_type = '绑定' ");
SqlStringBuilder.Append(" AND g.serial_number = @serial_number ");
SqlStringBuilder.Append(" AND b.process_id IS NOT NULL ");
SqlStringBuilder.Append(" AND b.process_id <> 0 ");
SqlStringBuilder.Append(" AND b.enabled = 'Y' ");
SqlStringBuilder.Append(" ) AS a ");
SqlStringBuilder.Append(" LEFT JOIN ( SELECT serial_number , ");
SqlStringBuilder.Append(" kpsn , ");
SqlStringBuilder.Append(" item_part_id , ");
SqlStringBuilder.Append(" terminal_id ");
SqlStringBuilder.Append(" FROM dbo.g_sn_keyparts ");
SqlStringBuilder.Append(" WHERE serial_number = @serial_number ");
SqlStringBuilder.Append(" ) AS b ON b.terminal_id = a.terminal_id ");
SqlStringBuilder.Append(" AND a.part_id = b.item_part_id ");
SqlStringBuilder.Append("WHERE b.kpsn IS NULL ");
Dictionary Params = new Dictionary(1);
Params.Add("@terminal_id", terminalID);
Params.Add("@serial_number", serial_number);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
///
/// 后排电检测
///
public List OutPdlineCheckDJ(int terminalID, string serial_number)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" * ");
SqlStringBuilder.Append("FROM dbo.i_func_testdata ");
SqlStringBuilder.Append("WHERE 条码 = @serial_number ");
SqlStringBuilder.Append(" AND 设备名称 = '后排电检设备' ");
//AND [测试结果(P/F)]='P'
SqlStringBuilder.Append("ORDER BY 测试完成日期 + ' ' + 测试完成时间 DESC ");
Dictionary Params = new Dictionary(1);
Params.Add("@terminal_id", terminalID);
Params.Add("@serial_number", serial_number);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
///
/// 前排视觉设备
///
public List OutPdlineCheckSJYX(int terminalID, string serial_number)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" * ");
SqlStringBuilder.Append("FROM dbo.i_func_testdata ");
SqlStringBuilder.Append("WHERE 条码 = @serial_number ");
SqlStringBuilder.Append(" AND 设备名称 = '前排视觉设备' ");
//AND [测试结果(P/F)]='P'
SqlStringBuilder.Append("ORDER BY 测试完成日期 + ' ' + 测试完成时间 DESC ");
Dictionary Params = new Dictionary(1);
Params.Add("@terminal_id", terminalID);
Params.Add("@serial_number", serial_number);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
///
/// 下线校验数据
///
public List OutPdlineCheckDJSBR(int terminalID, string serial_number)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" * ");
SqlStringBuilder.Append("FROM dbo.i_func_testdata ");
SqlStringBuilder.Append("WHERE 条码 = @serial_number ");
SqlStringBuilder.Append(" AND 设备名称 = '前排SBR'");
SqlStringBuilder.Append("ORDER BY 测试完成日期 + ' ' + 测试完成时间 DESC ");
Dictionary Params = new Dictionary(1);
Params.Add("@terminal_id", terminalID);
Params.Add("@serial_number", serial_number);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
///
/// 下线校验数据
///
public List OutPdlineCheckIMS(int terminalID, string serial_number)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" * ");
SqlStringBuilder.Append("FROM dbo.i_func_testdata ");
SqlStringBuilder.Append("WHERE 条码 = @serial_number ");
SqlStringBuilder.Append(" AND 设备名称 = 'IMS电检设备' ");
SqlStringBuilder.Append("ORDER BY 测试完成日期 + ' ' + 测试完成时间 DESC ");
Dictionary Params = new Dictionary(1);
Params.Add("@terminal_id", terminalID);
Params.Add("@serial_number", serial_number);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
///
/// 下线校验数据
///
public List OutPdlineCheckQMDJC(int terminalID, string serial_number)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" * ");
SqlStringBuilder.Append("FROM dbo.i_b_djc_testdata ");
SqlStringBuilder.Append("WHERE 型号条码 = @serial_number ");
SqlStringBuilder.Append("ORDER BY 测试时间 DESC ");
Dictionary Params = new Dictionary(1);
Params.Add("@terminal_id", terminalID);
Params.Add("@serial_number", serial_number);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
///
/// 下线校验数据
///
public List OutPdlineCheckQMTLL(int terminalID, string serial_number)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" * ");
SqlStringBuilder.Append("FROM dbo.i_b_hdl_testdata ");
SqlStringBuilder.Append("WHERE 型号条码 = @serial_number ");
SqlStringBuilder.Append("ORDER BY 测试时间 DESC ");
Dictionary Params = new Dictionary(1);
Params.Add("@terminal_id", terminalID);
Params.Add("@serial_number", serial_number);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
///
/// 下线校验数据
///
public List OutPdlineCheckDJTLL(int terminalID, string serial_number)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" * ");
SqlStringBuilder.Append("FROM dbo.i_hdl_testdata ");
SqlStringBuilder.Append("WHERE 条码 = @serial_number ");
SqlStringBuilder.Append("ORDER BY 测试完成日期 + ' ' + 测试完成时间 DESC ");
Dictionary Params = new Dictionary(1);
Params.Add("@terminal_id", terminalID);
Params.Add("@serial_number", serial_number);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
///
/// 下线校验数据
///
public List OutPdlineCheckJYF(int terminalID, string serial_number)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" * ");
SqlStringBuilder.Append("FROM dbo.i_noise_testdata ");
SqlStringBuilder.Append("WHERE 条码 = @serial_number ");
SqlStringBuilder.Append("ORDER BY 测试完成日期 + ' ' + 测试完成时间 DESC ");
Dictionary Params = new Dictionary(1);
Params.Add("@terminal_id", terminalID);
Params.Add("@serial_number", serial_number);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
///
/// QE产线下线校验数据
///
public List OutPdlineCheckQEDJC(int terminalID, string serial_number)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" * ");
SqlStringBuilder.Append("FROM dbo.i_qe_djc_testdata ");
SqlStringBuilder.Append("WHERE 座椅条码 = @serial_number ");
SqlStringBuilder.Append("ORDER BY 测试时间 DESC ");
Dictionary Params = new Dictionary(1);
Params.Add("@terminal_id", terminalID);
Params.Add("@serial_number", serial_number);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
public List GetRFIDOperationType(int terminalID, string paramName)
{
lock (httpClient)
{
string sqlstring = "SELECT top 1 operation_type FROM dbo.sys_terminal_params WHERE terminal_id = @terminalID AND param_name = @paramName";
Dictionary values = new Dictionary(2);
values.Add("@terminalID", terminalID);
values.Add("@paramName", paramName);
return httpClient.GetEntityList(sqlstring.ToString(), values);
}
}
///
/// 查询总成检查项
///
public List GetOutPdlineDetectionData(string serial_number)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" * ");
SqlStringBuilder.Append("FROM dbo.g_outPdline_detection AS aa ");
SqlStringBuilder.Append(" INNER JOIN ( SELECT b.part_no , ");
SqlStringBuilder.Append(" c.model_name ");
SqlStringBuilder.Append(" FROM dbo.g_sn_status AS a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part AS b ON a.part_id = b.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_model AS c ON a.model_id = c.model_id ");
SqlStringBuilder.Append(" WHERE serial_number =@serial_number ");
SqlStringBuilder.Append(" ) AS bb ON aa.part_no = bb.part_no ");
SqlStringBuilder.Append(" AND aa.model_name = bb.model_name ");
Dictionary Params = new Dictionary(1);
Params.Add("@serial_number", serial_number);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
public bool setBindinginFormation(string barcode, int terminalID)
{
string sql = @"EXEC dbo.g_modify_bindingin_formation @barcode,@terminalID";
Dictionary ht = new Dictionary(2);
ht.Add("@barcode", barcode);
ht.Add("@terminalID", terminalID);
return httpClient.Execute(sql, ht) > 0;
}
///
/// 查询不良类型列表
///
public List getDefectList()
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT defect_id,defect_code,defect_desc,enabled FROM dbo.sys_defect WHERE enabled='Y'");
return httpClient.GetEntityList(SqlStringBuilder.ToString());
}
}
///
/// 查询条码对应全部不良列表
///
public List getSNDefect(string serialNumber, int terminalID)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT a.serial_number , ");
SqlStringBuilder.Append(" a.defect_id , ");
SqlStringBuilder.Append(" b.defect_desc , ");
SqlStringBuilder.Append(" a.terminal_id ");
SqlStringBuilder.Append("FROM dbo.g_sn_defect AS a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_defect AS b ON a.defect_id = b.defect_id ");
SqlStringBuilder.Append("WHERE terminal_id = @terminalID ");
SqlStringBuilder.Append(" AND serial_number = @serialNumber AND a.enabled='Y' ");
Dictionary ht = new Dictionary(2);
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
}
}
///
/// 查询拍照信息
///
public List getPhoto(string serialNumber, int terminalID)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" SELECT TOP 1 * FROM dbo.g_sn_picture WHERE serial_number=@serialNumber AND terminal_id=@terminalID ORDER BY create_ymd DESC,create_hms DESC ");
Dictionary ht = new Dictionary(2);
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
}
}
///
/// 查询条码电检是否合格
///
public bool getSNifunc(string serialNumber)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" [测试结果(P/F)] ");
SqlStringBuilder.Append("FROM dbo.i_func_testdata ");
SqlStringBuilder.Append("WHERE 座椅条形码 = @serialNumber ");
SqlStringBuilder.Append("ORDER BY 测试完成日期 DESC , ");
SqlStringBuilder.Append(" 测试完成时间 DESC; ");
Dictionary ht = new Dictionary(1);
ht.Add("@serialNumber", serialNumber);
List dt = httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
if (dt.Count > 0)
{
if (dt[0][0].ToString().Equals("F"))
{
return true;
}
}
return false;
}
}
///
/// 查询条码对应的不良列表
///
public List getSNDefect(string serialNumber, int terminalID, string DefectDesc)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT a.serial_number , ");
SqlStringBuilder.Append(" a.defect_id , ");
SqlStringBuilder.Append(" b.defect_desc , ");
SqlStringBuilder.Append(" a.terminal_id ");
SqlStringBuilder.Append("FROM dbo.g_sn_defect AS a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_defect AS b ON a.defect_id = b.defect_id ");
SqlStringBuilder.Append("WHERE terminal_id = @terminalID ");
SqlStringBuilder.Append(" AND serial_number = @serialNumber AND a.enabled='Y' AND b.defect_desc=@DefectDesc ");
Dictionary ht = new Dictionary(3);
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
ht.Add("@DefectDesc", DefectDesc);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
}
}
///
/// 查询条码对应的不良列表
///
public bool addSndefect(string serialNumber, int terminalID, string defectName)
{
lock (httpClient)
{
List dt = getSNDefect(serialNumber, terminalID, defectName);
if (dt.Count < 1)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" INSERT INTO dbo.g_sn_defect ");
SqlStringBuilder.Append(" ( serial_number , ");
SqlStringBuilder.Append(" defect_id , ");
SqlStringBuilder.Append(" terminal_id , ");
SqlStringBuilder.Append(" rp_status , ");
SqlStringBuilder.Append(" enabled , ");
SqlStringBuilder.Append(" create_userid , ");
SqlStringBuilder.Append(" create_ymd , ");
SqlStringBuilder.Append(" create_hms , ");
SqlStringBuilder.Append(" guid ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append(" VALUES ( @serialNumber , ");
SqlStringBuilder.Append(" ( ISNULL(( SELECT defect_id ");
SqlStringBuilder.Append(" FROM dbo.sys_defect ");
SqlStringBuilder.Append(" WHERE defect_desc = @defectName ");
SqlStringBuilder.Append(" ), '') ) , ");
SqlStringBuilder.Append(" @terminalID, ");
SqlStringBuilder.Append(" 0, ");
SqlStringBuilder.Append(" 'Y', ");
SqlStringBuilder.Append(" @userid, ");
SqlStringBuilder.Append(" dbo.get_ymd(), ");
SqlStringBuilder.Append(" dbo.get_hms(), ");
SqlStringBuilder.Append(" NEWID() ");
SqlStringBuilder.Append(" ) ");
Dictionary ht = new Dictionary(4);
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
ht.Add("@defectName", defectName);
ht.Add("@userid", httpClient.userId);
int i = httpClient.Execute(SqlStringBuilder.ToString(), ht);
return i > 0 ? true : false;
}
else
{
return true;
}
}
}
///
/// 删除不良列表数据
///
public bool delSndefect(string serialNumber, int terminalID, string defectName)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE dbo.g_sn_defect ");
SqlStringBuilder.Append("SET enabled = 'N',update_userid=@userid, ");
SqlStringBuilder.Append(" update_ymd=dbo.get_ymd(), update_hms=dbo.get_hms() ");
SqlStringBuilder.Append(" WHERE serial_number = @serialNumber ");
SqlStringBuilder.Append(" AND terminal_id = @terminalID ");
SqlStringBuilder.Append(" AND defect_id = ( SELECT TOP 1 ");
SqlStringBuilder.Append(" defect_id ");
SqlStringBuilder.Append(" FROM dbo.sys_defect ");
SqlStringBuilder.Append(" WHERE defect_desc = @defectName ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append(" AND enabled = 'Y' ");
Dictionary ht = new Dictionary(4);
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
ht.Add("@defectName", defectName);
ht.Add("@userid", httpClient.userId);
int i = httpClient.Execute(SqlStringBuilder.ToString(), ht);
return i > 0 ? true : false;
}
}
///
/// 根据工位编号和参数名称从系统中查询参数的设定值
///
/// 工位编号
/// 参数名称
/// 参数值
public string GetTerminalParams(int terminalId, string paramName)
{
lock (httpClient)
{
string SqlString = "select param_value from dbo.sys_terminal_params where enabled='Y' and terminal_id=@p1 and param_name=@p2";
Dictionary Params = new Dictionary(2);
Params.Add("@p1", terminalId);
Params.Add("@p2", paramName);
object obj = httpClient.GetScalar(SqlString, Params);
return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty;
}
}
///
/// 发送放行信号
///
///
///
///
///
public bool UpdateOPCPointValue(string pointName, int terminal_id, string pointValue)
{
lock (httpClient)
{
string sqlstring = @"update opc_point set point_value =@pointValue,point_flag1=101,update_time=GETDATE() where point_name IN (
SELECT param_value FROM sys_terminal_params(NOLOCK) WHERE param_name=@pointName AND terminal_id=@terminID ) ";
Dictionary values = new Dictionary(3);
values.Add("@pointName", pointName);
values.Add("@terminID", terminal_id);
values.Add("@pointValue", pointValue);
if (httpClient.Execute(sqlstring.ToString(), values) > 0)
{
return true;
}
else
{
return false;
}
}
}
#region 余姚不良校验
///
/// 余姚查询不良类型列表
///
public List getYYDefectList(int terminalID)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder();
SqlStringBuilder.Append("SELECT defect_id,defect_code,defect_desc,enabled FROM dbo.sys_defect WHERE enabled='Y' AND stage_id in (SELECT stage_id FROM dbo.sys_terminal WHERE terminal_id=" + terminalID + " ) ");
//Dictionary values = new Dictionary();
//values.Add("@terminalID", terminalID);
return httpClient.GetEntityList(SqlStringBuilder.ToString());
}
}
///
/// 校验电检不良
///
///
///
///
public bool insertDefectData(string sn, int terminalID)
{
string sql = @"EXEC [dbo].[insert_defect_data] @sn,@terminalID,@userID";
Dictionary ht = new Dictionary(3);
ht.Add("@sn", sn);
ht.Add("@terminalID", terminalID);
ht.Add("@userID", httpClient.userId);
return httpClient.Execute(sql, ht) > 0;
}
public bool getYYSNifunc(string serialNumber)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" [测试结果(P/F)] ");
SqlStringBuilder.Append("FROM dbo.i_func_testdata ");
SqlStringBuilder.Append("WHERE 座椅条形码 = @serialNumber ");
SqlStringBuilder.Append("ORDER BY 测试完成日期 DESC , ");
SqlStringBuilder.Append(" 测试完成时间 DESC; ");
Dictionary ht = new Dictionary(1);
ht.Add("@serialNumber", serialNumber);
List dt = httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
if (dt.Count > 0)
{
if (dt[0][0].ToString().Equals("F"))
{
return true;
}
}
return false;
}
}
///
/// 读取PLC值
///
///
public string YYReadyPlc(string pointName, int terminalID)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" SELECT a.point_value FROM dbo.opc_point a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_terminal_params b ON a.point_name=b.param_value ");
SqlStringBuilder.Append(" WHERE param_name=@pointName AND terminal_id=@terminalID ");
Dictionary ht = new Dictionary(2);
ht.Add("@pointName", pointName);
ht.Add("@terminalID", terminalID);
object obj = httpClient.GetScalar(SqlStringBuilder.ToString(), ht);
return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty;
}
///
/// //插入进静音房记录
///
///
///
///
///
public bool InsertSNTravel(string sn, int terminal_id, int current_status)
{
string sql = "SELECT TOP 1 1 FROM dbo.g_sn_travel WHERE serial_number='" + sn + "' AND current_status=8 ";
if (httpClient.Exists(sql) == false)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO dbo.g_sn_travel ");
SqlStringBuilder.Append(" (ruid ,seq ,workorder ,wo_detail_id ,serial_number ,csn ,part_id , model_id , ");
SqlStringBuilder.Append(" pdline_id ,stage_id ,process_id ,terminal_id ,next_process ,wip_process , ");
SqlStringBuilder.Append(" current_status ,work_flag ,in_process_time ,qc_no ,qc_result ,rework_no , ");
SqlStringBuilder.Append(" out_process_time ,route_id ,in_pdline_time ,out_pdline_time ,shipping_time , ");
SqlStringBuilder.Append(" car_no ,slot_no ,prod_type ,remark ,enabled ,update_userid ,update_ymd , ");
SqlStringBuilder.Append(" update_hms ,create_userid , create_ymd ,create_hms , guid , timestamp) ");
SqlStringBuilder.Append("SELECT ruid ,seq ,workorder , wo_detail_id ,serial_number , csn , part_id , ");
SqlStringBuilder.Append(" model_id ,pdline_id ,stage_id , process_id ,@terminal_id, next_process , ");
SqlStringBuilder.Append(" wip_process ,@current_status ,work_flag ,in_process_time ,qc_no , qc_result ,rework_no , ");
SqlStringBuilder.Append(" GETDATE() , route_id ,in_pdline_time ,out_pdline_time ,shipping_time ,car_no , ");
SqlStringBuilder.Append(" slot_no ,prod_type ,remark ,enabled , @userID ,update_ymd ,update_hms , ");
SqlStringBuilder.Append(" create_userid ,create_ymd ,create_hms ,guid ,timestamp ");
SqlStringBuilder.Append("FROM dbo.g_sn_status ");
SqlStringBuilder.Append("WHERE serial_number=@sn ");
Dictionary ht = new Dictionary();
ht.Add("@sn", sn);
ht.Add("@terminal_id", terminal_id);
ht.Add("@current_status", current_status);
ht.Add("@userID", httpClient.userId);
if (httpClient.Execute(SqlStringBuilder.ToString(), ht) > 0)
{
return true;
}
else
{
return false;
}
}
return true;
}
///
/// 此条码是否是不良品
///
///
///
public bool IsCurrentSN(string input)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT * ");
querySen.AppendLine("FROM dbo.g_sn_status(NOLOCK) ");
querySen.AppendLine("WHERE serial_number = @input AND current_status=1 ");
Dictionary ht = new Dictionary(1);
ht.Add("@input", input);
List dtTemp = httpClient.GetEntityList(querySen.ToString(), ht);
return dtTemp == null || dtTemp.Count == 0 ? false : true;
}
}
///
/// 查询条码对应的不良列表
///
public bool addYYSndefect(string serialNumber, int terminalID, string defectName)
{
lock (httpClient)
{
List dt = getSNDefect(serialNumber, terminalID, defectName);
if (dt.Count < 1)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" INSERT INTO dbo.g_sn_defect ");
SqlStringBuilder.Append(" ( serial_number , ");
SqlStringBuilder.Append(" defect_id , ");
SqlStringBuilder.Append(" terminal_id , ");
SqlStringBuilder.Append(" rp_status , ");
SqlStringBuilder.Append(" enabled , ");
SqlStringBuilder.Append(" create_userid , ");
SqlStringBuilder.Append(" create_ymd , ");
SqlStringBuilder.Append(" create_hms , ");
SqlStringBuilder.Append(" guid ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append(" VALUES ( @serialNumber , ");
SqlStringBuilder.Append(" ( ISNULL(( SELECT defect_id ");
SqlStringBuilder.Append(" FROM dbo.sys_defect ");
SqlStringBuilder.Append(" WHERE defect_desc = @defectName AND stage_id=(SELECT stage_id FROM dbo.sys_terminal WHERE terminal_id=@terminalID) ");
SqlStringBuilder.Append(" ), '') ) , ");
SqlStringBuilder.Append(" @terminalID, ");
SqlStringBuilder.Append(" 0, ");
SqlStringBuilder.Append(" 'Y', ");
SqlStringBuilder.Append(" @userid, ");
SqlStringBuilder.Append(" dbo.get_ymd(), ");
SqlStringBuilder.Append(" dbo.get_hms(), ");
SqlStringBuilder.Append(" NEWID() ");
SqlStringBuilder.Append(" ) ");
Dictionary ht = new Dictionary(4);
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
ht.Add("@defectName", defectName);
ht.Add("@userid", httpClient.userId);
int i = httpClient.Execute(SqlStringBuilder.ToString(), ht);
return i > 0 ? true : false;
}
else
{
return true;
}
}
}
///
/// 删除不良列表数据
///
public bool delYYSndefect(string serialNumber, int terminalID, string defectName)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE dbo.g_sn_defect ");
SqlStringBuilder.Append("SET enabled = 'N',update_userid=@userid, ");
SqlStringBuilder.Append(" update_ymd=dbo.get_ymd(), update_hms=dbo.get_hms() ");
SqlStringBuilder.Append(" WHERE serial_number = @serialNumber ");
SqlStringBuilder.Append(" AND terminal_id = @terminalID ");
SqlStringBuilder.Append(" AND defect_id = ( SELECT TOP 1 ");
SqlStringBuilder.Append(" defect_id ");
SqlStringBuilder.Append(" FROM dbo.sys_defect ");
SqlStringBuilder.Append(" WHERE defect_desc = @defectName AND stage_id=(SELECT stage_id FROM dbo.sys_terminal WHERE terminal_id=@terminalID) ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append(" AND enabled = 'Y' ");
Dictionary ht = new Dictionary(4);
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
ht.Add("@defectName", defectName);
ht.Add("@userid", httpClient.userId);
int i = httpClient.Execute(SqlStringBuilder.ToString(), ht);
return i > 0 ? true : false;
}
}
///
/// 把条码标记状态
///
/// 过程条码
/// 执行结果
public bool SetSNStatusNG(string serialNumber, int status)
{
string SqlString = "update dbo.g_sn_status set current_status=@status,update_userid=@userid,update_ymd=dbo.get_ymd(), update_hms=dbo.get_hms() where serial_number=@serial_number";
Dictionary Params = new Dictionary(2);
Params.Add("@serial_number", serialNumber);
Params.Add("@userid", httpClient.userId);
Params.Add("@status", status);
return httpClient.Execute(SqlString, Params) == 1;
}
#endregion
///
/// 过站产出统计
///
///
///
///
public bool InOutputStationCount(string barcode, int terminalID)
{
string sql = @"EXEC dbo.sys_prod_count @barcode,@terminalID";
Dictionary ht = new Dictionary(2);
ht.Add("@barcode", barcode);
ht.Add("@terminalID", terminalID);
return httpClient.Execute(sql, ht) > 0;
}
#region 不良二级菜单
///
/// 查询不良类型二级菜单
///
public List getDefectDetail(int terminalID, string parent_desc)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" SELECT a.ruid, a.parent_defect_id,a.parent_defect_desc,a.item_defect_code,a.item_defect_desc ");
SqlStringBuilder.Append(" FROM dbo.sys_defect_detail a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_defect b ON a.parent_defect_id=b.defect_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_terminal c ON b.stage_id=c.stage_id ");
SqlStringBuilder.Append(" WHERE a.parent_defect_desc=@parent_desc AND a.enabled='Y' AND c.terminal_id=@terminalID ");
SqlStringBuilder.Append(" ORDER BY a.item_defect_code ");
Dictionary ht = new Dictionary(2);
ht.Add("@terminalID", terminalID);
ht.Add("@parent_desc", parent_desc);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
}
}
///
/// 查询条码对应全部不良列表
///
public List getSNDefectDetail(string serialNumber, int terminalID, string parent_desc)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT a.serial_number , ");
SqlStringBuilder.Append(" c.ruid , ");
SqlStringBuilder.Append(" c.item_defect_desc, ");
SqlStringBuilder.Append(" a.terminal_id ");
SqlStringBuilder.Append("FROM dbo.g_sn_defect AS a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_defect_detail c ON a.item_defect_id=c.ruid ");
SqlStringBuilder.Append("WHERE terminal_id = @terminalID and c.parent_defect_desc=@parent_desc ");
SqlStringBuilder.Append(" AND serial_number = @serialNumber and a.item_defect_id<>0 AND a.enabled='Y' ");
Dictionary ht = new Dictionary(3);
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
ht.Add("@parent_desc", parent_desc);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
}
}
///
/// 查询条码对应全部不良列表
///
public List getSNDefectDetail2(string serialNumber, int terminalID, string defectName, string parent_desc)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT a.serial_number , ");
SqlStringBuilder.Append(" c.ruid , ");
SqlStringBuilder.Append(" c.item_defect_desc, ");
SqlStringBuilder.Append(" a.terminal_id ");
SqlStringBuilder.Append("FROM dbo.g_sn_defect AS a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_defect_detail c ON a.item_defect_id=c.ruid ");
SqlStringBuilder.Append("WHERE terminal_id = @terminalID and c.parent_defect_desc=@parent_desc AND item_defect_desc=@defectName ");
SqlStringBuilder.Append(" AND serial_number = @serialNumber AND a.enabled='Y' ");
Dictionary ht = new Dictionary(3);
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
ht.Add("@parent_desc", parent_desc);
ht.Add("@defectName", defectName);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
}
}
///
/// 查询条码对应的不良列表
///
public bool addYYSndefectdetail(string serialNumber, int terminalID, string defectName, string parent_desc)
{
lock (httpClient)
{
List dt = getSNDefectDetail2(serialNumber, terminalID, defectName, parent_desc);
if (dt.Count < 1)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" INSERT INTO dbo.g_sn_defect ");
SqlStringBuilder.Append(" ( serial_number , ");
SqlStringBuilder.Append(" defect_id , ");
SqlStringBuilder.Append(" item_defect_id , ");
SqlStringBuilder.Append(" terminal_id , ");
SqlStringBuilder.Append(" rp_status , ");
SqlStringBuilder.Append(" enabled , ");
SqlStringBuilder.Append(" create_userid , ");
SqlStringBuilder.Append(" create_ymd , ");
SqlStringBuilder.Append(" create_hms , ");
SqlStringBuilder.Append(" guid ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append(" VALUES ( @serialNumber , ");
SqlStringBuilder.Append(" ( ISNULL(( SELECT defect_id ");
SqlStringBuilder.Append(" FROM dbo.sys_defect ");
SqlStringBuilder.Append(" WHERE defect_desc = @parent_desc AND stage_id=(SELECT stage_id FROM dbo.sys_terminal WHERE terminal_id=@terminalID) ");
SqlStringBuilder.Append(" ), '') ) , ");
SqlStringBuilder.Append(" ( ISNULL(( SELECT ruid FROM dbo.sys_defect_detail WHERE parent_defect_id IN ( SELECT defect_id FROM dbo.sys_defect ");
SqlStringBuilder.Append(" WHERE stage_id IN ( SELECT stage_id FROM dbo.sys_terminal WHERE terminal_id = @terminalID ) AND defect_desc = @parent_desc ) ");
SqlStringBuilder.Append(" AND item_defect_desc = @defectName ");
SqlStringBuilder.Append(" ), '') ) , ");
SqlStringBuilder.Append(" @terminalID, ");
SqlStringBuilder.Append(" 0, ");
SqlStringBuilder.Append(" 'Y', ");
SqlStringBuilder.Append(" @userid, ");
SqlStringBuilder.Append(" dbo.get_ymd(), ");
SqlStringBuilder.Append(" dbo.get_hms(), ");
SqlStringBuilder.Append(" NEWID() ");
SqlStringBuilder.Append(" ) ");
Dictionary ht = new Dictionary();
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
ht.Add("@defectName", defectName);
ht.Add("@parent_desc", parent_desc);
ht.Add("@userid", httpClient.userId);
int i = httpClient.Execute(SqlStringBuilder.ToString(), ht);
return i > 0 ? true : false;
}
else
{
return true;
}
}
}
///
/// 删除不良列表数据
///
public bool delYYSndefectdetail(string serialNumber, int terminalID, string defectName, string parent_desc)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE dbo.g_sn_defect ");
SqlStringBuilder.Append("SET enabled = 'N',update_userid=@userid, ");
SqlStringBuilder.Append(" update_ymd=dbo.get_ymd(), update_hms=dbo.get_hms() ");
SqlStringBuilder.Append(" WHERE serial_number = @serialNumber ");
SqlStringBuilder.Append(" AND terminal_id = @terminalID ");
SqlStringBuilder.Append(" AND defect_id = ( SELECT TOP 1 ");
SqlStringBuilder.Append(" defect_id ");
SqlStringBuilder.Append(" FROM dbo.sys_defect ");
SqlStringBuilder.Append(" WHERE defect_desc = @parent_desc AND stage_id=(SELECT stage_id FROM dbo.sys_terminal WHERE terminal_id=@terminalID) ");
SqlStringBuilder.Append(" ) AND item_defect_id IN (SELECT ruid FROM dbo.sys_defect_detail WHERE item_defect_desc=@item_defect_desc) ");
SqlStringBuilder.Append(" AND enabled = 'Y' ");
Dictionary ht = new Dictionary();
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
ht.Add("@item_defect_desc", defectName);
ht.Add("@parent_desc", parent_desc);
ht.Add("@userid", httpClient.userId);
int i = httpClient.Execute(SqlStringBuilder.ToString(), ht);
return i > 0 ? true : false;
}
}
///
/// 删除不良列表数据
///
public bool delDefectDetail(string serialNumber, int terminalID, string parent_desc)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" DELETE ");
SqlStringBuilder.Append(" FROM dbo.g_sn_defect ");
SqlStringBuilder.Append(" WHERE serial_number =@SN ");
SqlStringBuilder.Append(" AND defect_id IN ( ");
SqlStringBuilder.Append(" SELECT TOP 1 ");
SqlStringBuilder.Append(" defect_id ");
SqlStringBuilder.Append(" FROM dbo.sys_defect ");
SqlStringBuilder.Append(" WHERE stage_id IN ( SELECT TOP 1 ");
SqlStringBuilder.Append(" stage_id ");
SqlStringBuilder.Append(" FROM dbo.sys_terminal ");
SqlStringBuilder.Append(" WHERE terminal_id =@terminalID ) AND defect_desc=@parent_desc ) ");
SqlStringBuilder.Append(" AND item_defect_id <> 0 ");
Dictionary ht = new Dictionary();
ht.Add("@SN", serialNumber);
ht.Add("@terminalID", terminalID);
ht.Add("@parent_desc", parent_desc);
ht.Add("@userid", httpClient.userId);
int i = httpClient.Execute(SqlStringBuilder.ToString(), ht);
return i > 0 ? true : false;
}
}
///
/// 查询未绑定关键信息
///
public List YYNGKpsnCheck(string serialNumber, int terminalID)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" SELECT a.serial_number AS str1 , ");
SqlStringBuilder.Append(" terminal_name AS str2 , ");
SqlStringBuilder.Append(" part_no AS str3 , ");
SqlStringBuilder.Append(" part_spec AS str4 , ");
SqlStringBuilder.Append(" '未绑定' AS str5 ");
SqlStringBuilder.Append(" FROM ( SELECT g.serial_number , ");
SqlStringBuilder.Append(" f.terminal_name , ");
SqlStringBuilder.Append(" d.part_no, ");
SqlStringBuilder.Append(" d.part_spec , ");
SqlStringBuilder.Append(" d.part_id , ");
SqlStringBuilder.Append(" f.terminal_id ");
SqlStringBuilder.Append(" FROM dbo.sys_bom AS a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_bom_detail(NOLOCK) AS b ON a.bom_id = b.bom_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part(NOLOCK) AS c ON b.part_id = c.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part(NOLOCK) AS d ON b.item_part_id = d.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_process(NOLOCK) AS e ON b.process_id = e.process_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_terminal(NOLOCK) AS f ON e.process_id = f.process_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_sn_status(NOLOCK) AS g ON c.part_id = g.part_id ");
SqlStringBuilder.Append(" WHERE bom_type = '绑定' ");
SqlStringBuilder.Append(" AND g.serial_number =@serialNumber ");
SqlStringBuilder.Append(" AND b.process_id IS NOT NULL ");
SqlStringBuilder.Append(" AND b.process_id <> 0 ");
SqlStringBuilder.Append(" AND b.enabled = 'Y' AND f.pdline_id in (select pdline_id from sys_terminal where terminal_id in (@terminalID)) ");
SqlStringBuilder.Append(" ) AS a ");
SqlStringBuilder.Append(" LEFT JOIN ( SELECT serial_number , ");
SqlStringBuilder.Append(" kpsn , ");
SqlStringBuilder.Append(" item_part_id , ");
SqlStringBuilder.Append(" terminal_id ");
SqlStringBuilder.Append(" FROM dbo.g_sn_keyparts(NOLOCK) ");
SqlStringBuilder.Append(" WHERE serial_number = @serialNumber ");
SqlStringBuilder.Append(" ) AS b ON b.terminal_id = a.terminal_id ");
SqlStringBuilder.Append(" AND a.part_id = b.item_part_id ");
SqlStringBuilder.Append(" WHERE b.kpsn IS NULL order by str2 ");
Dictionary ht = new Dictionary();
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
}
}
///
/// 查询未采集力值
///
///
///
public List YYNGKeyDataCheck(string serialNumber, int terminalID)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" SELECT a.serial_number AS str1 , ");
SqlStringBuilder.Append(" terminal_name AS str2 , ");
SqlStringBuilder.Append(" a.keydata_name AS str3, ");
SqlStringBuilder.Append(" a.keydata_desc AS str4 , ");
SqlStringBuilder.Append(" '未采集' AS str5 ");
SqlStringBuilder.Append(" FROM ( SELECT a.part_id , ");
SqlStringBuilder.Append(" b.serial_number , ");
SqlStringBuilder.Append(" a.terminal_id , ");
SqlStringBuilder.Append(" e.terminal_name , ");
SqlStringBuilder.Append(" a.keydata_id , ");
SqlStringBuilder.Append(" c.keydata_name, ");
SqlStringBuilder.Append(" c.keydata_desc ");
SqlStringBuilder.Append(" FROM dbo.sys_part_keydata(NOLOCK) AS a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_sn_status(NOLOCK) AS b ON a.part_id = b.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_keydata(NOLOCK) AS c ON a.keydata_id = c.keydata_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_terminal(NOLOCK) AS e ON a.terminal_id = e.terminal_id ");
SqlStringBuilder.Append(" WHERE b.serial_number =@serialNumber AND e.pdline_id in (select pdline_id from sys_terminal where terminal_id in (@terminalID)) ");
SqlStringBuilder.Append(" ) AS a ");
SqlStringBuilder.Append(" LEFT JOIN ( SELECT serial_number , ");
SqlStringBuilder.Append(" terminal_id , ");
SqlStringBuilder.Append(" keydata_desc , ");
SqlStringBuilder.Append(" keydata_result ");
SqlStringBuilder.Append(" FROM dbo.g_sn_keydata(NOLOCK) ");
SqlStringBuilder.Append(" WHERE serial_number =@serialNumber ");
SqlStringBuilder.Append(" AND keydata_result = 'P' ");
SqlStringBuilder.Append(" ) AS b ON b.terminal_id = a.terminal_id ");
SqlStringBuilder.Append(" AND b.keydata_desc = a.keydata_desc ");
SqlStringBuilder.Append(" WHERE b.keydata_result IS NULL ");
Dictionary ht = new Dictionary();
ht.Add("@serialNumber", serialNumber);
ht.Add("@terminalID", terminalID);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
}
}
///
/// 根据关键件查找过程条码
///
///
///
public string isCheckSN(string kpsn)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT TOP 1 serial_number FROM dbo.g_sn_keyparts(NOLOCK) WHERE kpsn=@kpsn ");
Dictionary ht = new Dictionary(1);
ht.Add("@kpsn", kpsn);
object obj = httpClient.GetScalar(querySen.ToString(), ht);
return obj != null ? obj.ToString().ToUpper() : string.Empty;
}
}
#endregion
}
}