using LB_VisionProcesses.Communicators; using Newtonsoft.Json; using System.Collections; using System.Collections.Concurrent; using System.Diagnostics; namespace LB_VisionProcesses.Processes { class CheckChangeProductTool : BaseProcess { string BOM = string.Empty; string ODF = string.Empty; public CheckChangeProductTool() { strProcessName = "转产检查工具"; strProcessClass = "LB_VisionProcesses.Processes.CheckChangeProductTool"; Params.Inputs.Add("SN", ""); Params.Inputs.Add("BOM", ""); Params.Inputs.Add("ODF", ""); Params.Outputs.Add("是否转产", false); } public override bool Run() { try { InitRunParams(); string SN = Params.Inputs["SN"].ToString(); Params.Outputs.Add("是否转产", false); if (string.IsNullOrEmpty(SN)) { Result = true; return true; } string GetTVInfoMessage = GetWebServer.GetTVInfo("http://10.222.16.22:9006/api/PE" , "GetTVInfo", SN); if ("Erro" != GetTVInfoMessage && "null" != GetTVInfoMessage) { try { List TVInfos = JsonConvert.DeserializeObject> ("[" + GetTVInfoMessage + "]"); foreach (TVInfo info in TVInfos) { if (info.ProductCode != BOM) Params.Outputs.Add("是否转产", true); BOM = info.ProductCode; ODF = info.ODF; } } catch { } } else { string sHtml = GetWebServer.PostXml (" http://10.222.16.22:9002/SAPService.asmx?op=GetMaInfo", SN); if (!sHtml.StartsWith("error")) { try { MaInfo info = JsonConvert.DeserializeObject(sHtml); if (info.BOM != BOM) Params.Outputs.Add("是否转产", true); BOM = info.BOM; ODF = info.ODF; } catch { } } } Params.Inputs.Add("BOM", BOM); Params.Inputs.Add("ODF", ODF); } catch (Exception ex) { Msg = $"运行出现异常,原因是:{ex.Message}【{ex.StackTrace}】"; Result = false; } return Result; } public override bool Load(string fullPath = null) { bool res = base.Load(fullPath); if (res) { BOM = Params.Inputs["BOM"]?.ToString(); ODF = Params.Inputs["ODF"]?.ToString(); } return res; } } }