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; } /// /// 查询打印合格证条码需要信息 /// /// /// public List 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 Params = new Dictionary(1); Params.Add("@sn", serialNumber); List dt = httpClient.GetEntityList(querySen.ToString(), Params); return dt; } } /// /// 查询打印过程条码需要信息 /// /// /// public List 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 Params = new Dictionary(1); Params.Add("@sn", serialNumber); List 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 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 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 Params = new Dictionary(1); Params.Add("@terminal_id", terminalID); return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params); } } public List 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 Params = new Dictionary(1); Params.Add("@ProcessID", ProcessID); return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params); } } public List 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 Params = new Dictionary(1); Params.Add("@sn", sn); return httpClient.GetEntityList(querySen.ToString(), Params); } catch { return null; } } } public List 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 Params = new Dictionary(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 Params = new Dictionary(2); Params.Add("@partid", partid); Params.Add("@modelid", modelid); object obj = httpClient.GetScalar(querySen.ToString(), Params); return obj != null ? obj.ToString().ToUpper() : string.Empty; } } /// /// 获取3C零件号 /// /// /// /// /// 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 Params = new Dictionary(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 Params = new Dictionary(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 ht = new Dictionary(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 ht = new Dictionary(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 ht = new Dictionary(1); ht.Add("@terminalID", terminalID); object obj = httpClient.GetScalar(querySen.ToString(), ht); return obj != null ? obj.ToString().ToUpper() : string.Empty; } } //更新上线时间 public bool updateOnLineStatus(string serial_number, string pdlineID) { lock (httpClient) { StringBuilder querySen = new StringBuilder(1024); querySen.AppendLine("UPDATE dbo.g_sn_status "); querySen.AppendLine("SET work_flag = 0 , pdline_id = @pdlineID ,update_userid=@userid, "); querySen.AppendLine(" in_pdline_time = GETDATE() "); querySen.AppendLine("WHERE serial_number = @serial_number "); querySen.AppendLine("UPDATE dbo.g_workorder "); querySen.AppendLine("SET status = 1 , "); 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 ht = new Dictionary(3); ht.Add("@serial_number", serial_number); ht.Add("@pdlineID", pdlineID); ht.Add("@userid", httpClient.userId); return httpClient.Execute(querySen.ToString(), ht) > 0; } } public 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 ht = new Dictionary(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 ht = new Dictionary(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 ht = new Dictionary(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 values = new Dictionary(1); values.Add("@sn", sn); object obj = httpClient.GetScalar(sqlstring.ToString(), values); return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty; } } public List GetBindQty(string part_no) { lock (httpClient) { StringBuilder querySen = new StringBuilder(1024); querySen.AppendLine("SELECT DISTINCT(d.part_no), "); querySen.AppendLine(" b.item_count , "); querySen.AppendLine(" b.location , "); querySen.AppendLine(" b.item_part_id , "); querySen.AppendLine(" c.part_no, "); querySen.AppendLine(" d.part_no , "); querySen.AppendLine(" d.part_spec , "); querySen.AppendLine(" f.type "); querySen.AppendLine("FROM dbo.sys_bom a "); querySen.AppendLine(" LEFT JOIN dbo.sys_bom_detail b ON A.bom_id = B.bom_id "); querySen.AppendLine(" LEFT JOIN dbo.sys_part c ON A.part_id = c.part_id "); querySen.AppendLine(" LEFT JOIN dbo.sys_part d ON b.item_part_id = d.part_id "); querySen.AppendLine(" LEFT JOIN dbo.sys_terminal e ON b.process_id = e.process_id "); querySen.AppendLine(" LEFT JOIN dbo.sys_part_sn_rule f ON b.item_part_id = f.part_id "); querySen.AppendLine("WHERE a.bom_type = '绑定' "); querySen.AppendLine(" AND c.part_no = @part_no "); querySen.AppendLine(" AND b.process_id != '' "); querySen.AppendLine(" AND type IS NOT NULL "); Dictionary ht = new Dictionary(1); ht.Add("@part_no", part_no); return httpClient.GetEntityList(querySen.ToString(), ht); } } public List 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 ht = new Dictionary(1); ht.Add("@part_no", part_no); ht.Add("@terminalID", terminalID); return httpClient.GetEntityList(querySen.ToString(), ht); } } public List GetKeyParts(string serialNumber) { lock (httpClient) { StringBuilder querySen = new StringBuilder(1024); querySen.AppendLine(" SELECT a.serial_number , "); querySen.AppendLine(" b.part_no , "); querySen.AppendLine(" b.part_spec , "); querySen.AppendLine(" a.kpsn , "); querySen.AppendLine(" a.create_ymd , "); querySen.AppendLine(" a.create_hms "); querySen.AppendLine(" FROM dbo.g_sn_keyparts (NOLOCK) a "); querySen.AppendLine(" LEFT JOIN dbo.sys_part (NOLOCK) b ON a.item_part_id = b.part_id "); querySen.AppendLine(" WHERE a.serial_number = @serialNumber "); querySen.AppendLine(" OR a.serial_number = ( SELECT TOP 1 "); querySen.AppendLine(" c.kpsn "); querySen.AppendLine(" FROM dbo.g_sn_keyparts (NOLOCK) AS c "); querySen.AppendLine(" WHERE c.serial_number = @serialNumber "); querySen.AppendLine(" AND c.version = 'SubFG' "); querySen.AppendLine(" ) "); querySen.AppendLine(" ORDER BY a.serial_number "); Dictionary ht = new Dictionary(1); ht.Add("@serialNumber", serialNumber); return httpClient.GetEntityList(querySen.ToString(), ht); } } public bool UpdatePrintCount(string sn) { lock (httpClient) { string SqlString = "UPDATE dbo.g_workorder_sn SET printed =printed+1,update_userid=@userid ,update_ymd=dbo.get_ymd(),update_hms=dbo.get_hms() WHERE serial_number=@sn "; Dictionary Params = new Dictionary(2); Params.Add("@sn", sn); Params.Add("@userid", httpClient.userId); return httpClient.Execute(SqlString, Params) == 1; } } public string GetPrintIP(string terminalID) { lock (httpClient) { string sqlstring = "SELECT param_value FROM dbo.sys_terminal_params WHERE param_name='printIP' AND terminal_id = @terminalID"; Dictionary values = new Dictionary(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 ht = new Dictionary(3); ht.Add("@terminal_id", terminalid); ht.Add("@serial_number", sn); ht.Add("@userid", httpClient.userId); try { httpClient.Execute(querySen.ToString(), ht); } catch { return false; } return true; } public string ProdTrans(int vbcID, string serialNumber, int terminalID, int currentStatus, string stationType) { //List Parameters = new List(); //Parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@vbc_id", vbcID)); //Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@serial_number", serialNumber)); //Parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@terminal_id", terminalID)); //Parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@current_status", currentStatus)); //Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@station_type", stationType)); //Parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Output, "@tres", 500)); //Dictionary ht = httpClient.ExecuteSotreProcedure("dbo.sys_prod_trans", Parameters); //if (!ht.ContainsKey("@tres")) // return string.Empty; //return ht["@tres"].ToString(); Dictionary inParams = new Dictionary(); inParams.Add("@vbc_id", vbcID); inParams.Add("@serial_number", serialNumber); inParams.Add("@terminal_id", terminalID); inParams.Add("@current_status", currentStatus); inParams.Add("@station_type", stationType); Dictionary outParams = new Dictionary(); outParams.Add("@tres", "500"); Hashtable ht = httpClient.ExecuteSotreProcedure("dbo.sys_prod_trans", inParams, outParams); if (!ht.ContainsKey("outParams")) return string.Empty; var res = JsonConvert.DeserializeObject>(ht["outParams"].ToString()); return res["@tres"].ToString(); } public bool 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 ht = new Dictionary(1); ht.Add("@input", input); List dtTemp = httpClient.GetEntityList(querySen.ToString(), ht); return dtTemp == null || dtTemp.Count == 0 ? false : true; } } public bool 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 ht = new Dictionary(1); ht.Add("@paramName", paramName); object obj = httpClient.GetScalar(querySen.ToString(), ht); return obj != null && obj != DBNull.Value ? obj.ToString() : string.Empty; } } public int torqueQty(string serial_number) { lock (httpClient) { StringBuilder querySen = new StringBuilder(1024); querySen.AppendLine("SELECT COUNT(DISTINCT ( keydata_id )) "); querySen.AppendLine("FROM dbo.sys_part_keydata "); querySen.AppendLine("WHERE part_id = ( SELECT part_id "); querySen.AppendLine(" FROM dbo.g_sn_status "); querySen.AppendLine(" WHERE serial_number = @serial_number "); querySen.AppendLine(" ) "); Dictionary ht = new Dictionary(1); ht.Add("@serial_number", serial_number); object obj = httpClient.GetScalar(querySen.ToString(), ht); return obj != null && obj != DBNull.Value ? (int)obj : 0; } } public int factTorqueQty(string serial_number) { lock (httpClient) { //StringBuilder 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 ht = new Dictionary(1); ht.Add("@serial_number", serial_number); object obj = httpClient.GetScalar(SqlStringBuilder.ToString(), ht); return obj != null && obj != DBNull.Value ? (int)obj : 0; } } public 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 Params = new Dictionary(1); Params.Add("@sn", sn); List dt = httpClient.GetEntityList(querySen.ToString(), Params); if (!CheckDataTableInvalid(dt)) return false; return dt[0][0].ToString().ToUpper() == "P" ? true : false; } /// /// 检查数据表是否有效 /// /// /// public bool CheckDataTableInvalid(List 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; } } /// /// 转移扭矩数据 /// /// /// 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 ht = new Dictionary(1); ht.Add("@sn", sn); return httpClient.Execute(SqlStringBuilder.ToString(), ht) > 0; } } /// /// 查看未完成列表 /// /// /// public List NotOKList(int terminalID) { lock (httpClient) { string SqlString = "SELECT * FROM dbo.i_kitting(NOLOCK) WHERE terminal_id=@terminalID AND status='Y'"; Dictionary Params = new Dictionary(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 Params = new Dictionary(1); Params.Add("@terminalID", terminalID); return httpClient.GetScalar(SqlString, Params) == null; } } /// /// 同步数据给线外预装工装夹具 /// /// /// /// /// /// /// /// /// /// /// 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 ht = new Dictionary(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; } } } /// /// 查询指定零件客户号 /// /// /// public List 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 Params = new Dictionary(1); Params.Add("@ModelName", ModelName); return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params); } } /// /// 此工位是否需要指定打印机 /// /// /// 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 ht = new Dictionary(1); ht.Add("@terminal_id", terminal_id); object obj = httpClient.GetScalar(querySen.ToString(), ht); return obj != null ? true : false; } } public List 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 Params = new Dictionary(2); Params.Add("@terminal_id", terminal_id); Params.Add("@partNo", partNo); return httpClient.GetEntityList(SqlStringBuilder.ToString(), Params); } } public List 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 ht = new Dictionary(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; } } } }