using Cksoft.Data; using Cksoft.Data.Repository; using Cksoft.Unity; using Cksoft.Unity.Log4NetConfig; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; using WebApplet.Controllers; using WebApplet.Models; namespace DllEapDal.OFILM { public class SampleDal { private readonly IDatabase Db = null; public SampleDal() { } public SampleDal(IDatabase db) { Db = db; } /// /// 获取当前机台的相关参数 /// /// /// public string Get(string mId) { string sql = $@"SELECT Remark from macstatus01 where MacCode='{mId}'"; string type = Db.FindObject(sql).ToString(); int x = type.IndexOf("-") > 0 ? type.IndexOf("-") : type.IndexOf(" "); return type.Substring(0, x); } public string GetMacNumber(string mId) { string sql = $@"select macnumber from machinenumber where MacId=(select id from machine where FCode='{mId}')"; return Convert.ToString(Db.FindObject(sql)); } /// /// 获取该机台的所有参数 /// /// /// /// public SampleStandard MesGet(string mId, string type, string macNum) { QisCheck qis = Db.FindList($@"select mac_id macId,Material_NO materialNo,STANDARD_XOFFSET sXOffset,STANDARD_YOFFSET sYOffset,STANDARD_ROTATE sTOffset,WARNING_XOFFSET wXOffset,WARNING_YOFFSET wYOffset,WARNING_ROTATE wTOffset,ABNORMAL_XOFFSET aXOffset,ABNORMAL_YOFFSET aYOffset,ABNORMAL_ROTATE aTOffset FROM ofg_qis.view_mfg_sample_check where mac_id='{mId}' and Material_NO='{type}'")?.FirstOrDefault(); if (qis!=null) { string str = ""; Para s = new Para(); s.MId = mId; s.Type = type; s.Macnum = macNum; s.X = qis.sXOffset ; s.Y = qis.sYOffset; s.T = qis.sTOffset; s.X1 = str + qis.wXOffset; s.X2 = str + qis.aXOffset; s.Y1 = str + qis.wYOffset; s.Y2 = str + qis.aYOffset; s.T1 = str + qis.wTOffset; s.T2 = str + qis.aTOffset; return new SampleStandard() { code = "1", data = s }; } else { return new SampleStandard() { code = "0", msg="未查询到该机台及机种对应到的sample值请维护后重试" }; } } public async Task GetParamsAsync(ParamModel paramModel) { try { SampleRes s = new SampleRes(); string url = AppConfigurtaionServices.Configuration["url"]; ; string macCode = paramModel.MacCode; Stopwatch sw = new Stopwatch(); sw.Reset(); sw.Start(); var paras = paramModel.Paras;//new string[] { "283" }; var obj = new MachineInfo { EquipmentID = macCode, ParamsList = paras }; HttpClient client = new HttpClient(new HttpClientHandler { AutomaticDecompression = System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate }); client.DefaultRequestHeaders.Add("Method", "POST"); client.DefaultRequestHeaders.Add("ContentType", "multipart/form-data; charset=utf-8"); var content = new MultipartFormDataContent(); var uri = new Uri(url); var equipmentId = new ByteArrayContent(Encoding.UTF8.GetBytes(obj.EquipmentID)); content.Add(equipmentId, "EquipmentID"); for (int i = 0; i < obj.ParamsList.Count(); i++) { var temp = new ByteArrayContent(Encoding.UTF8.GetBytes(obj.ParamsList.ElementAt(i))); content.Add(temp, $"ParamsList[{i}]"); } client.Timeout = new TimeSpan(0, 0, 600); LogHelper.LogError("请求地址: " + url + "请求内容: " + content.ToJson(), "DA sample 校验", string.Empty); var result = await client.PostAsync(uri, content); sw.Stop(); // Console.WriteLine("请求用时:" + sw.ElapsedMilliseconds / 1000); if (result == null || result.IsSuccessStatusCode == false) { Console.WriteLine("----------------"); LogHelper.LogError("请求返回的结果" + result.ToJson(), "DA sample 校验", string.Empty); Console.WriteLine(result); Console.WriteLine("----------------"); } if (result != null && result.IsSuccessStatusCode) { var bytes = result.Content.ReadAsByteArrayAsync().Result; LogHelper.LogError("请求返回的结果" + Encoding.UTF8.GetString(bytes), "DA sample 校验", string.Empty); s = JsonConvert.DeserializeObject(Encoding.UTF8.GetString(bytes)); return s; } s.code = "fail"; return s ; } catch (Exception ex) { SampleRes s = new SampleRes(); LogHelper.LogError(ex.ToString(), "DA sample 校验", string.Empty); s.code = "fail"; return s; } } public bool Set(Sample sample, string message) { /*using (IDatabase currDb = DbFactory.Base("qis")) { QisCheck qis = currDb.FindList($@"select mac_id macId,Material_NO materialNo,STANDARD_XOFFSET sXOffset,STANDARD_YOFFSET sYOffset,STANDARD_ROTATE sTOffset,WARNING_XOFFSET wXOffset,WARNING_YOFFSET wYOffset,WARNING_ROTATE wTOffset,ABNORMAL_XOFFSET aXOffset,ABNORMAL_YOFFSET aYOffset,ABNORMAL_ROTATE aTOffset FROM ofg_qis.view_mfg_sample_check where mac_id='{sample.macId}' and Material_NO='{sample.materialNo}'")?.FirstOrDefault(); if (qis != null) {*/ if(sample!=null) { DaSample ds = new DaSample() { MacId = Convert.ToInt32(Db.FindObject($@"select id from machine where FCode='{sample.macId}'")), Type = sample.materialNo, Time = Convert.ToDateTime(sample.sTime), X = sample.xOffset, Y = sample.yOffset, T = sample.tOffset, RecCode = sample.userId, Result = message }; if (Db.InsertFor(ds, sample.userId) > 0) { return true; } else { return false; } } return false; } #region 暂时用不到 /// /// sql语句的生成 /// /// /// /* public Sample Set(Sample sample) { string sql = $@"select e.FName as Factory,d.FName as Plant , c.FName as Floor ,f.pcode as PCode,a.Fcode as MacCode,g.MacNumber as MacNum FROM machine AS a LEFT JOIN factoryregion AS b ON a.RegionId = b.id INNER JOIN factoryregion AS c ON b.ParentId = c.id INNER JOIN factoryregion AS d ON c.ParentId = d.id INNER JOIN factoryregion AS e ON d.ParentId = e.id INNER JOIN mactprocess AS f ON a.id = f.MacID LEFT JOIN machinenumber AS g ON a.id = g.macid where a.Fcode='{sample.MId}'"; IEnumerable s = Db.FindList(sql); foreach (Sample item in s) { sample.Factory = item.Factory; sample.Plant = item.Plant; sample.Floor = item.Floor; sample.PCode = item.PCode; } DaSample ds = new DaSample(); ds.MacId = Convert.ToInt32(Db.FindObject($@"select ID FROM machine where FCode='{sample.MId}'")); ds.Type = sample.Type; ds.Time = sample.STime; ds.X = sample.X; ds.Y = sample.Y; ds.T = sample.T; ds.RecCode = sample.UserId; Db.InsertFor(ds, sample.UserId); return sample; }*/ #endregion } }