You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1112 lines
52 KiB
C#

using Estsh.Client.Common.HttpClientUtil;
using Newtonsoft.Json;
using System.Collections;
using System.Data;
using System.Text;
namespace Estsh.Client
{
public class MESPrintSN
{
private HttpClientHelper httpClient = null;
public MESPrintSN(HttpClientHelper _httpClient)
{
httpClient = _httpClient;
}
/// <summary>
/// 查询打印合格证条码需要信息
/// </summary>
/// <param name="serialNumber"></param>
/// <returns></returns>
public List<dynamic> GetPrintSN(string serialNumber)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT TOP 1 ");
querySen.AppendLine(" i.cust_part_no AS cust_partno , ");
querySen.AppendLine(" a.serial_number , ");
querySen.AppendLine(" dbo.get_ymd() + ' ' +dbo.get_hms() AS create_time , ");
querySen.AppendLine(" RIGHT(b.order_no, 3) + '-' + RIGHT('00' + CONVERT(VARCHAR, b.slot_no), ");
querySen.AppendLine(" 2) AS order_seq , ");
querySen.AppendLine(" b.slot_no , ");
querySen.AppendLine(" b.car_no , ");
querySen.AppendLine(" c.part_no ,c.part_id ,e.model_id , ");
querySen.AppendLine(" c.part_spec , ");
querySen.AppendLine(" c.part_spec2 , ");
querySen.AppendLine(" c.part_location , ");
querySen.AppendLine(" c.cust_part_no , ");
querySen.AppendLine(" c.part_class , ");
querySen.AppendLine(" c.label_type , ");
querySen.AppendLine(" c.part_no_3c , c.part_abc, ");
querySen.AppendLine(" e.model_code , ");
querySen.AppendLine(" e.model_desc , ");
querySen.AppendLine(" c.part_spec2 AS model_alias, ");
querySen.AppendLine(" e.model_alias as models, ");
querySen.AppendLine(" f.enum_alias as enum_alias , ");
querySen.AppendLine(" f.enum_desc as enum_desc , ");
querySen.AppendLine(" g.csn , ");
querySen.AppendLine(" g.prod_type , ");
querySen.AppendLine(" e.model_name , ");
querySen.AppendLine(" h.type_name , ");
querySen.AppendLine(" h.type_desc , ");
querySen.AppendLine(" (CONVERT(varchar(100), GETDATE(), 12)) AS dates , ");
querySen.AppendLine(" SUBSTRING(RIGHT(@sn,21),1,12) AS seq , ");
querySen.AppendLine(" SUBSTRING(@sn,19,4) AS number_T ,");
querySen.AppendLine(" SUBSTRING(@sn,11,2) AS part_T ,");
querySen.AppendLine(" ( CONVERT([VARCHAR](10), GETDATE(), ( 120 )) ) AS ymd , ");
querySen.AppendLine(" ( CONVERT([VARCHAR](10), GETDATE(), ( 108 )) ) AS hms ");
querySen.AppendLine("FROM dbo.g_workorder_sn a ");
querySen.AppendLine(" LEFT JOIN dbo.g_workorder_detail z ON a.wo_detail_id = z.ruid ");
querySen.AppendLine(" LEFT JOIN dbo.g_workorder b ON z.workorder_id = b.ruid ");
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.part_id = d.part_id ");
querySen.AppendLine(" LEFT JOIN dbo.sys_model e ON d.model_id = e.model_id ");
querySen.AppendLine(" LEFT JOIN dbo.sys_enum f ON c.part_location = f.enum_value ");
querySen.AppendLine(" AND f.enum_type = 'sys_part_location' ");
querySen.AppendLine(" LEFT JOIN dbo.g_sn_status g ON a.serial_number = g.serial_number ");
querySen.AppendLine(" LEFT JOIN dbo.sys_model_type h ON e.model_type_id = h.type_id ");
querySen.AppendLine(" LEFT JOIN g_part_relation i ON ( i.part_id = c.part_id ");
querySen.AppendLine(" AND i.model_id = e.model_id ");
querySen.AppendLine(" ) ");
querySen.AppendLine("WHERE a.serial_number = @sn ");
Dictionary<string, object> Params = new Dictionary<string, object>(1);
Params.Add("@sn", serialNumber);
List<dynamic> dt = httpClient.GetEntityList(querySen.ToString(), Params);
return dt;
}
}
/// <summary>
/// 查询打印过程条码需要信息
/// </summary>
/// <param name="serialNumber"></param>
/// <returns></returns>
public List<dynamic> GetPrintSN2(string serialNumber)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 ");
SqlStringBuilder.Append(" a.serial_number as f10, ");
SqlStringBuilder.Append(" a.serial_number as f1 , ");
SqlStringBuilder.Append(" dbo.get_ymd() + ' ' +dbo.get_hms() AS create_time , ");
SqlStringBuilder.Append(" RIGHT(b.order_no, 3) + '-' + RIGHT('00' + CONVERT(VARCHAR, b.slot_no), ");
SqlStringBuilder.Append(" 2) AS order_seq , ");
SqlStringBuilder.Append(" b.slot_no , ");
SqlStringBuilder.Append(" b.car_no as f7 , ");
SqlStringBuilder.Append(" c.part_no ,c.vendor_part_no,c.mfger_part_no,c.subboard_qty, ");
SqlStringBuilder.Append(" c.part_spec as f4 , ");
SqlStringBuilder.Append(" c.part_spec2 , ");
SqlStringBuilder.Append(" c.part_location , ");
SqlStringBuilder.Append(" c.cust_part_no ,c.part_class,c.cust_part_no + c.part_class as f8, c.label_type,c.part_no_3c as f5, ");
SqlStringBuilder.Append(" e.model_code , ");
SqlStringBuilder.Append(" e.model_desc , ");
SqlStringBuilder.Append(" SUBSTRING(e.model_alias,1,1) AS model_alias , ");
SqlStringBuilder.Append(" f.enum_desc as f6 , ");
SqlStringBuilder.Append(" g.csn , ");
SqlStringBuilder.Append(" g.prod_type,e.model_name as f3,h.type_name as f2, ");
SqlStringBuilder.Append(" SUBSTRING(@sn,19,4) AS number_T ,");
SqlStringBuilder.Append(" SUBSTRING(@sn,11,2) AS part_T ,");
SqlStringBuilder.Append(" CONVERT(VARCHAR,GETDATE(),23)+' '+SUBSTRING(CONVERT(VARCHAR,GETDATE(),24),1,2) AS ymd, ");
SqlStringBuilder.Append(" (CONVERT([varchar](10),getdate(),(108))) AS hms,c.part_id,'' AS part_no_m1,'' AS part_no_m2,'' AS vendor_name ");
SqlStringBuilder.Append("FROM dbo.g_workorder_sn a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_workorder_detail z ON a.wo_detail_id=z.ruid ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_workorder b ON z.workorder_id = b.ruid ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part c ON a.part_id = c.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part d ON b.part_id = d.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_model e ON d.model_id = e.model_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_enum f ON c.part_location = f.enum_value ");
SqlStringBuilder.Append(" AND f.enum_type = 'sys_part_location' ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_sn_status g ON a.serial_number = g.serial_number ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_model_type h ON e.model_type_id = h.type_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_stock_order j ON g.workorder = j.order_no ");
SqlStringBuilder.Append(" WHERE a.serial_number = @sn ");
Dictionary<string, object> Params = new Dictionary<string, object>(1);
Params.Add("@sn", serialNumber);
List<dynamic> dt = httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
//添加当前总成的头枕零件号和头枕供应商名称
if (dt.Count > 0)
{
string sql = @" SELECT DISTINCT(e.part_no) AS part_no,v.vendor_name
FROM sys_bom a,
sys_bom_detail b
LEFT JOIN sys_process c
ON b.process_id = c.process_id,
sys_part d,
sys_part e LEFT JOIN dbo.sys_vendor v ON e.vendor_id=v.vendor_code
WHERE a.part_id = d.part_id
AND b.item_part_id = e.part_id
AND a.bom_id = b.bom_id
AND d.part_id = '" + dt[0]["part_id"].ToString() + @"'
AND a.bom_type = '回冲'
AND a.enabled = 'Y'
AND e.part_spec LIKE '%头枕总成%'
ORDER BY e.part_no;";
List<dynamic> dt2 = httpClient.GetEntityList(sql);
if (dt2.Count == 1)
{
dt[0]["part_no_m1"] = dt2[0]["part_no"].ToString();
dt[0]["vendor_name"] = dt2[0]["vendor_name"].ToString();
}
if (dt2.Count == 2)
{
dt[0]["part_no_m1"] = dt2[0]["part_no"].ToString();
dt[0]["part_no_m2"] = dt2[1]["part_no"].ToString();
dt[0]["vendor_name"] = dt2[0]["vendor_name"].ToString();
}
}
return dt;
}
}
public int Get3CSN(string sn)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT COUNT(*) FROM dbo.g_sn_status WHERE serial_number = '" + sn + "' ");
return Convert.ToInt32(httpClient.GetScalar(querySen.ToString()));
}
}
public List<dynamic> GetProcessID(int terminalID)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT process_id FROM dbo.sys_terminal ");
SqlStringBuilder.Append("WHERE terminal_id = @terminal_id ");
Dictionary<string, object> Params = new Dictionary<string, object>(1);
Params.Add("@terminal_id", terminalID);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
public List<dynamic> GetRouteNecessary(string ProcessID)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT necessary FROM dbo.sys_route_detail ");
SqlStringBuilder.Append("WHERE next_process_id = @ProcessID ");
Dictionary<string, object> Params = new Dictionary<string, object>(1);
Params.Add("@ProcessID", ProcessID);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
public List<dynamic> Getcsn(string sn)
{
lock (httpClient)
{
try
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT TOP 1 a.csn,a.part_id,b.part_no,b.label_type,b.cust_part_no ");
querySen.AppendLine("FROM dbo.g_sn_status(NOLOCK) AS a ");
querySen.AppendLine(" LEFT JOIN dbo.sys_part(NOLOCK) AS b ON a.part_id =b.part_id ");
querySen.AppendLine("WHERE a.serial_number=@sn ");
Dictionary<string, object> Params = new Dictionary<string, object>(1);
Params.Add("@sn", sn);
return httpClient.GetEntityList(querySen.ToString(), Params);
}
catch
{
return null;
}
}
}
public List<dynamic> GetSNInfo(string sn)
{
lock (httpClient)
{
try
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT part_id , ");
querySen.AppendLine(" model_id ");
querySen.AppendLine("FROM dbo.g_sn_status ");
querySen.AppendLine("WHERE serial_number = @sn ");
Dictionary<string, object> Params = new Dictionary<string, object>(1);
Params.Add("@sn", sn);
return httpClient.GetEntityList(querySen.ToString(), Params);
}
catch
{
return null;
}
}
}
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 string GetCustPartNO(string partid, string modelid)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT TOP 1 ");
querySen.AppendLine(" cust_part_no ");
querySen.AppendLine("FROM dbo.g_part_relation(NOLOCK) ");
querySen.AppendLine("WHERE model_id = @modelid ");
querySen.AppendLine(" AND part_id = @partid ");
querySen.AppendLine(" AND enabled = 'Y' ");
Dictionary<string, object> Params = new Dictionary<string, object>(2);
Params.Add("@partid", partid);
Params.Add("@modelid", modelid);
object obj = httpClient.GetScalar(querySen.ToString(), Params);
return obj != null ? obj.ToString().ToUpper() : string.Empty;
}
}
/// <summary>
/// 获取3C零件号
/// </summary>
/// <param name="PartNO3c"></param>
/// <param name="modelID"></param>
/// <param name="partID"></param>
/// <returns></returns>
public string GetPartNO3c(string PartNO3c, string modelID, string partID)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT ISNULL(( SELECT TOP 1 ");
querySen.AppendLine(" cust_part_no ");
querySen.AppendLine(" FROM dbo.g_part_relation(NOLOCK) ");
querySen.AppendLine(" WHERE model_id = @modelID ");
querySen.AppendLine(" AND part_id = @partID ");
querySen.AppendLine(" AND enabled = 'Y' ");
querySen.AppendLine(" ), @PartNO3c) ");
Dictionary<string, object> Params = new Dictionary<string, object>(3);
Params.Add("@PartNO3c", PartNO3c);
Params.Add("@modelID", modelID);
Params.Add("@partID", partID);
object obj = httpClient.GetScalar(querySen.ToString(), Params);
return obj != null ? obj.ToString().ToUpper() : string.Empty;
}
}
public string GetCustPartNO(string partid)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT cust_part_no FROM sys_part WHERE part_id = @partid ");
Dictionary<string, object> Params = new Dictionary<string, object>(1);
Params.Add("@partid", partid);
object obj = httpClient.GetScalar(querySen.ToString(), Params);
return obj != null ? obj.ToString().ToUpper() : string.Empty;
}
}
public string stationType(string terminalID)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT param_value ");
querySen.AppendLine("FROM dbo.sys_terminal_params(NOLOCK) ");
querySen.AppendLine("WHERE param_name = 'StationType' ");
querySen.AppendLine(" AND 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 string UpdateBarcodeInPdlineTime(string Barcode)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine(" UPDATE dbo.g_sn_status SET in_pdline_time=GETDATE(),update_userid=@userid ,work_flag=0 WHERE serial_number=@Barcode ");
Dictionary<string, object> ht = new Dictionary<string, object>(2);
ht.Add("@Barcode", Barcode);
ht.Add("@userid", httpClient.userId);
object obj = httpClient.GetScalar(querySen.ToString(), ht);
return obj != null ? obj.ToString().ToUpper() : string.Empty;
}
}
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 , ");
querySen.AppendLine(" in_pdline_ymd = dbo.get_ymd() ,update_userid=@userid, ");
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;
}
}
public bool getSNStatus(string serial_number)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT * ");
querySen.AppendLine("FROM dbo.g_sn_status(NOLOCK) ");
querySen.AppendLine("WHERE serial_number = @serial_number ");
querySen.AppendLine(" AND work_flag = 0 ");
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 ? true : false;
}
}
public String SNStatus(string serial_number)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT work_flag ");
querySen.AppendLine("FROM dbo.g_sn_status(NOLOCK) ");
querySen.AppendLine("WHERE serial_number = @serial_number ");
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 ? obj.ToString() : string.Empty;
}
}
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 ,current_status=0 ,update_userid=@userid, ");
querySen.AppendLine(" out_pdline_time = GETDATE() ");
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 GetPartNo(string sn)
{
lock (httpClient)
{
string sqlstring = "SELECT part_no FROM dbo.sys_part(NOLOCK) WHERE part_id = (SELECT part_id FROM dbo.g_sn_status WHERE serial_number = @sn)";
Dictionary<string, object> values = new Dictionary<string, object>(1);
values.Add("@sn", sn);
object obj = httpClient.GetScalar(sqlstring.ToString(), values);
return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty;
}
}
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> GetBindQty(string part_no, int terminalID)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT 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(NOLOCK) a ");
querySen.AppendLine(" LEFT JOIN dbo.sys_bom_detail(NOLOCK) b ON A.bom_id = B.bom_id ");
querySen.AppendLine(" LEFT JOIN dbo.sys_part(NOLOCK) c ON A.part_id = c.part_id ");
querySen.AppendLine(" LEFT JOIN dbo.sys_part(NOLOCK) d ON b.item_part_id = d.part_id ");
querySen.AppendLine(" LEFT JOIN dbo.sys_terminal(NOLOCK) e ON b.process_id = e.process_id ");
querySen.AppendLine(" LEFT JOIN dbo.sys_part_sn_rule(NOLOCK) 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 ");
querySen.AppendLine(" AND e.pdline_id = ( SELECT pdline_id ");
querySen.AppendLine(" FROM dbo.sys_terminal ");
querySen.AppendLine(" WHERE terminal_id = @terminalID ");
querySen.AppendLine(" ) ");
querySen.AppendLine(" AND e.terminal_id != @terminalID ");
Dictionary<string, object> ht = new Dictionary<string, object>(1);
ht.Add("@part_no", part_no);
ht.Add("@terminalID", terminalID);
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);
}
}
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;
}
}
public string GetPrintIP(string terminalID)
{
lock (httpClient)
{
string sqlstring = "SELECT param_value FROM dbo.sys_terminal_params WHERE param_name='printIP' AND terminal_id = @terminalID";
Dictionary<string, object> values = new Dictionary<string, object>(1);
values.Add("@terminalID", terminalID);
object obj = httpClient.GetScalar(sqlstring.ToString(), values);
return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty;
}
}
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 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> ht = httpClient.ExecuteSotreProcedure("dbo.sys_prod_trans", Parameters);
//if (!ht.ContainsKey("@tres"))
// return string.Empty;
//return ht["@tres"].ToString();
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 IsSN(string input)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT * ");
querySen.AppendLine("FROM dbo.g_sn_status ");
querySen.AppendLine("WHERE serial_number = @input ");
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;
}
}
public bool IsValidateKeyData()
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT param_value ");
querySen.AppendLine("FROM sys_base ");
querySen.AppendLine("WHERE ( param_name = 'IsValidateKeyData' ) ");
object obj = httpClient.GetScalar(querySen.ToString());
return obj != null && obj != DBNull.Value ? obj.ToString() == "Y" : false;
}
}
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;
}
}
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 querySen = new StringBuilder(1024);
//querySen.AppendLine("SELECT COUNT(*) FROM dbo.g_sn_keydata_temp WHERE serial_number =@serial_number AND keydata_result='P' ");
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 bool GetTestData(string sn)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT 测试结果 ");
querySen.AppendLine("FROM dbo.i_func_testdata ");
querySen.AppendLine("WHERE 座椅条码 = @sn ");
querySen.AppendLine("ORDER BY 测试时间 DESC ");
Dictionary<string, object> Params = new Dictionary<string, object>(1);
Params.Add("@sn", sn);
List<dynamic> dt = httpClient.GetEntityList(querySen.ToString(), Params);
if (!CheckDataTableInvalid(dt))
return false;
return dt[0][0].ToString().ToUpper() == "P" ? true : false;
}
/// <summary>
/// 检查数据表是否有效
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public bool CheckDataTableInvalid(List<dynamic> dt)
{
if (dt == null)
return false;
if (dt.Count == 0)
return false;
return true;
}
public string GetTestTerminalID()
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT param_value ");
querySen.AppendLine("FROM dbo.sys_base ");
querySen.AppendLine("WHERE param_name = 'validatePowerTestLimit' ");
object obj = httpClient.GetScalar(querySen.ToString());
return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty;
}
}
/// <summary>
/// 转移扭矩数据
/// </summary>
/// <param name="sn"></param>
/// <returns></returns>
public bool moveKeyData(string sn)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO dbo.g_sn_keydata ");
SqlStringBuilder.Append(" ( serial_number , ");
SqlStringBuilder.Append(" part_id , ");
SqlStringBuilder.Append(" terminal_id , ");
SqlStringBuilder.Append(" keydata_value , ");
SqlStringBuilder.Append(" keydata_result , ");
SqlStringBuilder.Append(" keydata_desc , ");
SqlStringBuilder.Append(" keydata_id , ");
SqlStringBuilder.Append(" keydata_angle , ");
SqlStringBuilder.Append(" enabled , ");
SqlStringBuilder.Append(" update_userid , ");
SqlStringBuilder.Append(" update_ymd , ");
SqlStringBuilder.Append(" update_hms , ");
SqlStringBuilder.Append(" create_userid , ");
SqlStringBuilder.Append(" create_ymd , ");
SqlStringBuilder.Append(" create_hms ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append(" SELECT TOP 1000 ");
SqlStringBuilder.Append(" serial_number , ");
SqlStringBuilder.Append(" part_id , ");
SqlStringBuilder.Append(" terminal_id , ");
SqlStringBuilder.Append(" keydata_value , ");
SqlStringBuilder.Append(" keydata_result , ");
SqlStringBuilder.Append(" keydata_desc , ");
SqlStringBuilder.Append(" keydata_id , ");
SqlStringBuilder.Append(" keydata_angle , ");
SqlStringBuilder.Append(" enabled , ");
SqlStringBuilder.Append(" update_userid , ");
SqlStringBuilder.Append(" update_ymd , ");
SqlStringBuilder.Append(" update_hms , ");
SqlStringBuilder.Append(" create_userid , ");
SqlStringBuilder.Append(" create_ymd , ");
SqlStringBuilder.Append(" create_hms ");
SqlStringBuilder.Append(" FROM dbo.g_sn_keydata_temp ");
SqlStringBuilder.Append(" WHERE serial_number = @sn ");
SqlStringBuilder.Append("DELETE FROM dbo.g_sn_keydata_temp ");
SqlStringBuilder.Append("WHERE serial_number = @sn ");
Dictionary<string, object> ht = new Dictionary<string, object>(1);
ht.Add("@sn", sn);
return httpClient.Execute(SqlStringBuilder.ToString(), ht) > 0;
}
}
/// <summary>
/// 查看未完成列表
/// </summary>
/// <param name="terminalID"></param>
/// <returns></returns>
public List<dynamic> NotOKList(int terminalID)
{
lock (httpClient)
{
string SqlString =
"SELECT * FROM dbo.i_kitting(NOLOCK) WHERE terminal_id=@terminalID AND status='Y'";
Dictionary<string, object> Params = new Dictionary<string, object>(1);
Params.Add("@terminalID", terminalID);
return httpClient.GetEntityList(SqlString, Params);
}
}
public bool OK(int terminalID)
{
lock (httpClient)
{
string SqlString =
"SELECT * FROM dbo.i_kitting(NOLOCK) WHERE terminal_id=@terminalID AND status='Y'";
Dictionary<string, object> Params = new Dictionary<string, object>(1);
Params.Add("@terminalID", terminalID);
return httpClient.GetScalar(SqlString, Params) == null;
}
}
/// <summary>
/// 同步数据给线外预装工装夹具
/// </summary>
/// <param name="seq"></param>
/// <param name="car_no"></param>
/// <param name="terminal_id"></param>
/// <param name="serial_number"></param>
/// <param name="model_name"></param>
/// <param name="model_desc"></param>
/// <param name="part_no"></param>
/// <param name="part_spec"></param>
/// <param name="enum_desc"></param>
/// <returns></returns>
public bool insertKittingData(string seq, string car_no, int terminal_id, string serial_number, string model_name, string model_desc, string part_no, string part_spec, string enum_desc)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO i_kitting ");
SqlStringBuilder.Append(" ( seq , ");
SqlStringBuilder.Append(" car_no , ");
SqlStringBuilder.Append(" terminal_id , ");
SqlStringBuilder.Append(" serial_number , ");
SqlStringBuilder.Append(" model_name , ");
SqlStringBuilder.Append(" model_desc , ");
SqlStringBuilder.Append(" part_no , ");
SqlStringBuilder.Append(" part_spec , ");
SqlStringBuilder.Append(" enum_desc ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append("VALUES ( @seq , ");
SqlStringBuilder.Append(" @car_no , ");
SqlStringBuilder.Append(" @terminal_id , ");
SqlStringBuilder.Append(" @serial_number , ");
SqlStringBuilder.Append(" @model_name , ");
SqlStringBuilder.Append(" @model_desc , ");
SqlStringBuilder.Append(" @part_no , ");
SqlStringBuilder.Append(" @part_spec , ");
SqlStringBuilder.Append(" @enum_desc ");
SqlStringBuilder.Append(" ) ");
Dictionary<string, object> ht = new Dictionary<string, object>(9);
ht.Add("@seq", seq);
ht.Add("@car_no", car_no);
ht.Add("@terminal_id", terminal_id);
ht.Add("@serial_number", serial_number);
ht.Add("@model_name", model_name);
ht.Add("@model_desc", model_desc);
ht.Add("@part_no", part_no);
ht.Add("@part_spec", part_spec);
ht.Add("@enum_desc", enum_desc);
return httpClient.Execute(SqlStringBuilder.ToString(), ht) > 0;
}
}
public bool UpdateTerminalPoint(string value, int Tid)
{
lock (httpClient)
{
string sql = string.Format("UPDATE sys_terminal_point SET wo_detail_seq = '{0}' WHERE terminal_id = {1}", value, Tid);
int rows = httpClient.Execute(sql);
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
}
/// <summary>
/// 查询指定零件客户号
/// </summary>
/// <param name="terminalID"></param>
/// <returns></returns>
public List<dynamic> getCustPartNoList(string ModelName)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT e.part_no , ");
SqlStringBuilder.Append(" e.cust_part_no ");
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 c.part_id = a.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_model AS d ON c.model_id = d.model_id ");
SqlStringBuilder.Append(" LEFT JOIN sys_part AS e ON b.item_part_id = e.part_id ");
SqlStringBuilder.Append("WHERE d.model_name = @ModelName ");
SqlStringBuilder.Append(" AND a.bom_type = '物料' ");
SqlStringBuilder.Append(" AND e.part_location IN ( '03', '04', '05' ) ");
Dictionary<string, object> Params = new Dictionary<string, object>(1);
Params.Add("@ModelName", ModelName);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
/// <summary>
/// 此工位是否需要指定打印机
/// </summary>
/// <param name="terminal_id"></param>
/// <returns></returns>
public bool ifTerminalPrint(int terminal_id)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT * FROM dbo.sys_terminal_print WHERE terminal_id=@terminal_id and enabled='Y' ");
Dictionary<string, object> ht = new Dictionary<string, object>(1);
ht.Add("@terminal_id", terminal_id);
object obj = httpClient.GetScalar(querySen.ToString(), ht);
return obj != null ? true : false;
}
}
public List<dynamic> getPartPrintList(int terminal_id, string partNo)
{
lock (httpClient)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT print_name,print_port ");
SqlStringBuilder.Append("FROM dbo.sys_terminal_print a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_terminal_print_detail b ON a.ruid = b.tprint_id ");
SqlStringBuilder.Append("WHERE a.terminal_id = @terminal_id ");
SqlStringBuilder.Append(" AND b.part_id IN ( SELECT part_id ");
SqlStringBuilder.Append(" FROM dbo.sys_part ");
SqlStringBuilder.Append(" WHERE part_no = @partNo ");
SqlStringBuilder.Append(" AND part_type = '1' ");
SqlStringBuilder.Append(" AND enabled = 'Y' ) ");
SqlStringBuilder.Append(" AND b.enabled = 'Y' ");
Dictionary<string, object> Params = new Dictionary<string, object>(2);
Params.Add("@terminal_id", terminal_id);
Params.Add("@partNo", partNo);
return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params);
}
}
public List<dynamic> PrintCount(string parm_name)
{
lock (httpClient)
{
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("SELECT * FROM dbo.sys_base WHERE param_name=@parm_name AND enabled='Y' ");
Dictionary<string, object> ht = new Dictionary<string, object>(1);
ht.Add("@parm_name", parm_name);
return httpClient.GetEntityList(querySen.ToString(), ht);
}
}
public bool insertBackflush(string sn, string partNo)
{
string checkSn = "SELECT TOP 1 1 FROM g_sap_backflush WHERE serial_number ='" + sn + "'";
object obj = httpClient.GetScalar(checkSn);
string checkResult = obj != null && obj != DBNull.Value ? obj.ToString() : "";
if (string.IsNullOrEmpty(checkResult))
{
string sql = "INSERT INTO g_sap_backflush(serial_number,part_no) VALUES ('" + sn + "','" + partNo + "')";
return httpClient.Execute(sql) > 0;
}
else
{
return false;
}
}
}
}