|
|
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;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据总成零件号和工站编号获取本工站需要绑定的关键零件信息
|
|
|
/// </summary>
|
|
|
/// <param name="partNo"></param>
|
|
|
/// <param name="terminalID"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<dynamic> 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());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据总成零件号和工站编号获取本工站需要绑定的关键零件信息
|
|
|
/// </summary>
|
|
|
/// <param name="partNo"></param>
|
|
|
/// <param name="terminalID"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<dynamic> 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<string, object> ht = new Dictionary<string, object>(1);
|
|
|
ht.Add("@paramName", paramName);
|
|
|
|
|
|
object obj = httpClient.GetScalar(querySen.ToString(), ht);
|
|
|
|
|
|
return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询 KPSN 是否使用过
|
|
|
/// </summary>
|
|
|
/// <param name="kpsn">KPSN</param>
|
|
|
/// <returns>KPSN 是否使用过</returns>
|
|
|
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<string, object> Params = new Dictionary<string, object>(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<string, object> ht = new Dictionary<string, object>(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;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 插入 KPSN 数据
|
|
|
/// </summary>
|
|
|
/// <param name="sn">过程条码</param>
|
|
|
/// <param name="kpsn">KPSN</param>
|
|
|
/// <param name="item_part_id">KPSN 的零件号</param>
|
|
|
/// <param name="version">KPSN 版本</param>
|
|
|
/// <param name="location">KPSN 位置</param>
|
|
|
/// <param name="terminalID">工站编号</param>
|
|
|
/// <returns></returns>
|
|
|
public bool InsertKPSN(string sn, string kpsn, int item_part_id,
|
|
|
string version, string location, int terminalID)
|
|
|
{
|
|
|
lock (httpClient)
|
|
|
{
|
|
|
Dictionary<string, object> Values = new Dictionary<string, object>(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<string, object> Values = new Dictionary<string, object>(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<dynamic> 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<string, object> ht = new Dictionary<string, object>(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<string, object> ht = new Dictionary<string, object>(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<string, object> ht = new Dictionary<string, object>(3);
|
|
|
ht.Add("@serial_number", serial_number);
|
|
|
ht.Add("@pdlineID", pdlineID);
|
|
|
ht.Add("@userid", httpClient.userId);
|
|
|
return httpClient.Execute(querySen.ToString(), ht) > 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据条码(总成零件号)和工站编号获取本工站需要采集的关键数据
|
|
|
/// </summary>
|
|
|
/// <param name="sn">条码</param>
|
|
|
/// <param name="terminalID">工站编号</param>
|
|
|
/// <returns>查询到的相应产品配置</returns>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(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<dynamic> 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());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 更新关键数据结果
|
|
|
/// </summary>
|
|
|
/// <param name="sn"></param>
|
|
|
/// <param name="keyDataValue"></param>
|
|
|
/// <returns></returns>
|
|
|
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<string, object> ht = new Dictionary<string, object>(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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@sn", sn);
|
|
|
|
|
|
List<dynamic> dt = httpClient.GetEntityList(querySen.ToString(), Params);
|
|
|
|
|
|
if (dt.Count <= 0)
|
|
|
return false;
|
|
|
|
|
|
return dt[0][0].ToString().ToUpper() == "P" ? true : false;
|
|
|
}
|
|
|
|
|
|
///// <summary>
|
|
|
///// 检查数据表是否有效
|
|
|
///// </summary>
|
|
|
///// <param name="dt"></param>
|
|
|
///// <returns></returns>
|
|
|
//public bool CheckList<dynamic>Invalid(List<dynamic> 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<string, object> ht = new Dictionary<string, object>(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<string, object> ht = new Dictionary<string, object>(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<dynamic> 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<string, object> ht = new Dictionary<string, object>(1);
|
|
|
ht.Add("@part_no", part_no);
|
|
|
|
|
|
return httpClient.GetEntityList(querySen.ToString(), ht);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<dynamic> 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<string, object> ht = new Dictionary<string, object>(1);
|
|
|
ht.Add("@serialNumber", serialNumber);
|
|
|
|
|
|
return httpClient.GetEntityList(querySen.ToString(), ht);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询打印合格证条码需要信息
|
|
|
/// </summary>
|
|
|
/// <param name="serialNumber"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@serialNumber", serialNumber);
|
|
|
|
|
|
List<dynamic> 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<string, object> Params = new Dictionary<string, object>(2);
|
|
|
|
|
|
Params.Add("@sn", sn);
|
|
|
Params.Add("@userid", httpClient.userId);
|
|
|
return httpClient.Execute(SqlString, Params) == 1;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 修改标签计数
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
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<string, object> param = new Dictionary<string, object>(1);
|
|
|
param.Add("@sn", sn);
|
|
|
|
|
|
object obj = httpClient.Execute(SqlStringBuilder.ToString(), param);
|
|
|
if (obj == null)
|
|
|
{
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
return obj.ToString();
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
return "";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<dynamic> 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<string, object> param = new Dictionary<string, object>(1);
|
|
|
param.Add("@sn", sn);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), param);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<dynamic> 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<string, object> ht = new Dictionary<string, object>(2);
|
|
|
ht.Add("@pointValue", pointValue);
|
|
|
ht.Add("@pointName", pointName);
|
|
|
|
|
|
int rows = httpClient.Execute(querySen.ToString(), ht);
|
|
|
if (rows > 0)
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 修改产品为静音房产品
|
|
|
/// </summary>
|
|
|
/// <param name="_serial_number"></param>
|
|
|
/// <returns></returns>
|
|
|
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<string, object> ht = new Dictionary<string, object>(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<string, object> Params = new Dictionary<string, object>(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<string, object> ht = new Dictionary<string, object>(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<StoreProcedureParameter> Parameters = new List<StoreProcedureParameter>();
|
|
|
|
|
|
//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<string, object> inParams = new Dictionary<string, object>();
|
|
|
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<string, object> outParams = new Dictionary<string, object>();
|
|
|
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<Dictionary<string, object>>(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<string, object> Params = new Dictionary<string, object>(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<string, object> ht = new Dictionary<string, object>(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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 下线校验数据
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@terminal_id", terminalID);
|
|
|
Params.Add("@serial_number", serial_number);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 后排电检测
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@terminal_id", terminalID);
|
|
|
Params.Add("@serial_number", serial_number);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 前排视觉设备
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@terminal_id", terminalID);
|
|
|
Params.Add("@serial_number", serial_number);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 下线校验数据
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@terminal_id", terminalID);
|
|
|
Params.Add("@serial_number", serial_number);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 下线校验数据
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@terminal_id", terminalID);
|
|
|
Params.Add("@serial_number", serial_number);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 下线校验数据
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@terminal_id", terminalID);
|
|
|
Params.Add("@serial_number", serial_number);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 下线校验数据
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@terminal_id", terminalID);
|
|
|
Params.Add("@serial_number", serial_number);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 下线校验数据
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@terminal_id", terminalID);
|
|
|
Params.Add("@serial_number", serial_number);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 下线校验数据
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@terminal_id", terminalID);
|
|
|
Params.Add("@serial_number", serial_number);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// QE产线下线校验数据
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(1);
|
|
|
|
|
|
Params.Add("@terminal_id", terminalID);
|
|
|
Params.Add("@serial_number", serial_number);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<dynamic> 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<string, object> values = new Dictionary<string, object>(2);
|
|
|
values.Add("@terminalID", terminalID);
|
|
|
values.Add("@paramName", paramName);
|
|
|
|
|
|
return httpClient.GetEntityList(sqlstring.ToString(), values);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询总成检查项
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> Params = new Dictionary<string, object>(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<string, object> ht = new Dictionary<string, object>(2);
|
|
|
ht.Add("@barcode", barcode);
|
|
|
ht.Add("@terminalID", terminalID);
|
|
|
return httpClient.Execute(sql, ht) > 0;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询不良类型列表
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询条码对应全部不良列表
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> ht = new Dictionary<string, object>(2);
|
|
|
ht.Add("@serialNumber", serialNumber);
|
|
|
ht.Add("@terminalID", terminalID);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询拍照信息
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> ht = new Dictionary<string, object>(2);
|
|
|
ht.Add("@serialNumber", serialNumber);
|
|
|
ht.Add("@terminalID", terminalID);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询条码电检是否合格
|
|
|
/// </summary>
|
|
|
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<string, object> ht = new Dictionary<string, object>(1);
|
|
|
ht.Add("@serialNumber", serialNumber);
|
|
|
|
|
|
List<dynamic> dt = httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
|
|
|
if (dt.Count > 0)
|
|
|
{
|
|
|
if (dt[0][0].ToString().Equals("F"))
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询条码对应的不良列表
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> ht = new Dictionary<string, object>(3);
|
|
|
ht.Add("@serialNumber", serialNumber);
|
|
|
ht.Add("@terminalID", terminalID);
|
|
|
ht.Add("@DefectDesc", DefectDesc);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询条码对应的不良列表
|
|
|
/// </summary>
|
|
|
public bool addSndefect(string serialNumber, int terminalID, string defectName)
|
|
|
{
|
|
|
lock (httpClient)
|
|
|
{
|
|
|
List<dynamic> 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<string, object> ht = new Dictionary<string, object>(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;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 删除不良列表数据
|
|
|
/// </summary>
|
|
|
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<string, object> ht = new Dictionary<string, object>(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;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据工位编号和参数名称从系统中查询参数的设定值
|
|
|
/// </summary>
|
|
|
/// <param name="terminalId">工位编号</param>
|
|
|
/// <param name="paramName">参数名称</param>
|
|
|
/// <returns>参数值</returns>
|
|
|
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<string, object> Params = new Dictionary<string, object>(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;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 发送放行信号
|
|
|
/// </summary>
|
|
|
/// <param name="pointName"></param>
|
|
|
/// <param name="terminal_id"></param>
|
|
|
/// <param name="pointValue"></param>
|
|
|
/// <returns></returns>
|
|
|
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<string, object> values = new Dictionary<string, object>(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 余姚不良校验
|
|
|
/// <summary>
|
|
|
/// 余姚查询不良类型列表
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> values = new Dictionary<string, object>();
|
|
|
//values.Add("@terminalID", terminalID);
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString());
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 校验电检不良
|
|
|
/// </summary>
|
|
|
/// <param name="sn"></param>
|
|
|
/// <param name="terminalID"></param>
|
|
|
/// <returns></returns>
|
|
|
public bool insertDefectData(string sn, int terminalID)
|
|
|
{
|
|
|
string sql = @"EXEC [dbo].[insert_defect_data] @sn,@terminalID,@userID";
|
|
|
|
|
|
Dictionary<string, object> ht = new Dictionary<string, object>(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<string, object> ht = new Dictionary<string, object>(1);
|
|
|
ht.Add("@serialNumber", serialNumber);
|
|
|
|
|
|
List<dynamic> dt = httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
|
|
|
if (dt.Count > 0)
|
|
|
{
|
|
|
if (dt[0][0].ToString().Equals("F"))
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取PLC值
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
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<string, object> ht = new Dictionary<string, object>(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;
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// //插入进静音房记录
|
|
|
/// </summary>
|
|
|
/// <param name="sn"></param>
|
|
|
/// <param name="terminal_id"></param>
|
|
|
/// <param name="current_status"></param>
|
|
|
/// <returns></returns>
|
|
|
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<string, object> ht = new Dictionary<string, object>();
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 此条码是否是不良品
|
|
|
/// </summary>
|
|
|
/// <param name="input"></param>
|
|
|
/// <returns></returns>
|
|
|
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<string, object> ht = new Dictionary<string, object>(1);
|
|
|
ht.Add("@input", input);
|
|
|
|
|
|
List<dynamic> dtTemp = httpClient.GetEntityList(querySen.ToString(), ht);
|
|
|
return dtTemp == null || dtTemp.Count == 0 ? false : true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询条码对应的不良列表
|
|
|
/// </summary>
|
|
|
public bool addYYSndefect(string serialNumber, int terminalID, string defectName)
|
|
|
{
|
|
|
lock (httpClient)
|
|
|
{
|
|
|
List<dynamic> 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<string, object> ht = new Dictionary<string, object>(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;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 删除不良列表数据
|
|
|
/// </summary>
|
|
|
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<string, object> ht = new Dictionary<string, object>(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;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 把条码标记状态
|
|
|
/// </summary>
|
|
|
/// <param name="serialNumber">过程条码</param>
|
|
|
/// <returns>执行结果</returns>
|
|
|
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<string, object> Params = new Dictionary<string, object>(2);
|
|
|
|
|
|
Params.Add("@serial_number", serialNumber);
|
|
|
Params.Add("@userid", httpClient.userId);
|
|
|
Params.Add("@status", status);
|
|
|
return httpClient.Execute(SqlString, Params) == 1;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
/// <summary>
|
|
|
/// 过站产出统计
|
|
|
/// </summary>
|
|
|
/// <param name="barcode"></param>
|
|
|
/// <param name="terminalID"></param>
|
|
|
/// <returns></returns>
|
|
|
public bool InOutputStationCount(string barcode, int terminalID)
|
|
|
{
|
|
|
string sql = @"EXEC dbo.sys_prod_count @barcode,@terminalID";
|
|
|
|
|
|
Dictionary<string, object> ht = new Dictionary<string, object>(2);
|
|
|
ht.Add("@barcode", barcode);
|
|
|
ht.Add("@terminalID", terminalID);
|
|
|
return httpClient.Execute(sql, ht) > 0;
|
|
|
}
|
|
|
|
|
|
#region 不良二级菜单
|
|
|
/// <summary>
|
|
|
/// 查询不良类型二级菜单
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> ht = new Dictionary<string, object>(2);
|
|
|
ht.Add("@terminalID", terminalID);
|
|
|
ht.Add("@parent_desc", parent_desc);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询条码对应全部不良列表
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> ht = new Dictionary<string, object>(3);
|
|
|
ht.Add("@serialNumber", serialNumber);
|
|
|
ht.Add("@terminalID", terminalID);
|
|
|
ht.Add("@parent_desc", parent_desc);
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询条码对应全部不良列表
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> ht = new Dictionary<string, object>(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);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询条码对应的不良列表
|
|
|
/// </summary>
|
|
|
public bool addYYSndefectdetail(string serialNumber, int terminalID, string defectName, string parent_desc)
|
|
|
{
|
|
|
lock (httpClient)
|
|
|
{
|
|
|
List<dynamic> 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<string, object> ht = new Dictionary<string, object>();
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 删除不良列表数据
|
|
|
/// </summary>
|
|
|
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<string, object> ht = new Dictionary<string, object>();
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 删除不良列表数据
|
|
|
/// </summary>
|
|
|
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<string, object> ht = new Dictionary<string, object>();
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询未绑定关键信息
|
|
|
/// </summary>
|
|
|
public List<dynamic> 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<string, object> ht = new Dictionary<string, object>();
|
|
|
ht.Add("@serialNumber", serialNumber);
|
|
|
ht.Add("@terminalID", terminalID);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询未采集力值
|
|
|
/// </summary>
|
|
|
/// <param name="serialNumber"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<dynamic> 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<string, object> ht = new Dictionary<string, object>();
|
|
|
ht.Add("@serialNumber", serialNumber);
|
|
|
ht.Add("@terminalID", terminalID);
|
|
|
|
|
|
return httpClient.GetEntityList(SqlStringBuilder.ToString(), ht);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据关键件查找过程条码
|
|
|
/// </summary>
|
|
|
/// <param name="terminalID"></param>
|
|
|
/// <returns></returns>
|
|
|
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<string, object> ht = new Dictionary<string, object>(1);
|
|
|
ht.Add("@kpsn", kpsn);
|
|
|
|
|
|
object obj = httpClient.GetScalar(querySen.ToString(), ht);
|
|
|
|
|
|
return obj != null ? obj.ToString().ToUpper() : string.Empty;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|