SampleDal.cs 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. using Cksoft.Data;
  2. using Cksoft.Data.Repository;
  3. using Cksoft.Unity;
  4. using Cksoft.Unity.Log4NetConfig;
  5. using Microsoft.Extensions.Logging;
  6. using Newtonsoft.Json;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Diagnostics;
  10. using System.Linq;
  11. using System.Net.Http;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using WebApplet.Controllers;
  15. using WebApplet.Models;
  16. namespace DllEapDal.OFILM
  17. {
  18. public class SampleDal
  19. {
  20. private readonly IDatabase Db = null;
  21. public SampleDal()
  22. {
  23. }
  24. public SampleDal(IDatabase db)
  25. {
  26. Db = db;
  27. }
  28. /// <summary>
  29. /// 获取当前机台的相关参数
  30. /// </summary>
  31. /// <param name="mId"></param>
  32. /// <returns></returns>
  33. public string Get(string mId)
  34. {
  35. string sql = $@"SELECT Remark from macstatus01 where MacCode='{mId}'";
  36. string type = Db.FindObject(sql).ToString();
  37. int x = type.IndexOf("-") > 0 ? type.IndexOf("-") : type.IndexOf(" ");
  38. return type.Substring(0, x);
  39. }
  40. public string GetMacNumber(string mId)
  41. {
  42. string sql = $@"select macnumber from machinenumber where MacId=(select id from machine where FCode='{mId}')";
  43. return Convert.ToString(Db.FindObject(sql));
  44. }
  45. /// <summary>
  46. /// 获取该机台的所有参数
  47. /// </summary>
  48. /// <param name="mId"></param>
  49. /// <param name="type"></param>
  50. /// <returns></returns>
  51. public SampleStandard MesGet(string mId, string type, string macNum)
  52. {
  53. QisCheck qis = Db.FindList<QisCheck>($@"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();
  54. if (qis!=null)
  55. {
  56. string str = "";
  57. Para s = new Para();
  58. s.MId = mId;
  59. s.Type = type;
  60. s.Macnum = macNum;
  61. s.X = qis.sXOffset ;
  62. s.Y = qis.sYOffset;
  63. s.T = qis.sTOffset;
  64. s.X1 = str + qis.wXOffset;
  65. s.X2 = str + qis.aXOffset;
  66. s.Y1 = str + qis.wYOffset;
  67. s.Y2 = str + qis.aYOffset;
  68. s.T1 = str + qis.wTOffset;
  69. s.T2 = str + qis.aTOffset;
  70. return new SampleStandard()
  71. {
  72. code = "1",
  73. data = s
  74. };
  75. }
  76. else
  77. {
  78. return new SampleStandard()
  79. {
  80. code = "0",
  81. msg="未查询到该机台及机种对应到的sample值请维护后重试"
  82. };
  83. }
  84. }
  85. public async Task<SampleRes> GetParamsAsync(ParamModel paramModel)
  86. {
  87. try
  88. {
  89. SampleRes s = new SampleRes();
  90. string url = AppConfigurtaionServices.Configuration["url"]; ;
  91. string macCode = paramModel.MacCode;
  92. Stopwatch sw = new Stopwatch();
  93. sw.Reset();
  94. sw.Start();
  95. var paras = paramModel.Paras;//new string[] { "283" };
  96. var obj = new MachineInfo { EquipmentID = macCode, ParamsList = paras };
  97. HttpClient client = new HttpClient(new HttpClientHandler
  98. {
  99. AutomaticDecompression = System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate
  100. });
  101. client.DefaultRequestHeaders.Add("Method", "POST");
  102. client.DefaultRequestHeaders.Add("ContentType", "multipart/form-data; charset=utf-8");
  103. var content = new MultipartFormDataContent();
  104. var uri = new Uri(url);
  105. var equipmentId = new ByteArrayContent(Encoding.UTF8.GetBytes(obj.EquipmentID));
  106. content.Add(equipmentId, "EquipmentID");
  107. for (int i = 0; i < obj.ParamsList.Count(); i++)
  108. {
  109. var temp = new ByteArrayContent(Encoding.UTF8.GetBytes(obj.ParamsList.ElementAt(i)));
  110. content.Add(temp, $"ParamsList[{i}]");
  111. }
  112. client.Timeout = new TimeSpan(0, 0, 600);
  113. LogHelper<MachineMaterialService>.LogError("请求地址: " + url + "请求内容: " + content.ToJson(), "DA sample 校验", string.Empty);
  114. var result = await client.PostAsync(uri, content);
  115. sw.Stop();
  116. // Console.WriteLine("请求用时:" + sw.ElapsedMilliseconds / 1000);
  117. if (result == null || result.IsSuccessStatusCode == false)
  118. {
  119. Console.WriteLine("----------------");
  120. LogHelper<MachineMaterialService>.LogError("请求返回的结果" + result.ToJson(), "DA sample 校验", string.Empty);
  121. Console.WriteLine(result);
  122. Console.WriteLine("----------------");
  123. }
  124. if (result != null && result.IsSuccessStatusCode)
  125. {
  126. var bytes = result.Content.ReadAsByteArrayAsync().Result;
  127. LogHelper<MachineMaterialService>.LogError("请求返回的结果" + Encoding.UTF8.GetString(bytes), "DA sample 校验", string.Empty);
  128. s = JsonConvert.DeserializeObject<SampleRes>(Encoding.UTF8.GetString(bytes));
  129. return s;
  130. }
  131. s.code = "fail";
  132. return s ;
  133. }
  134. catch (Exception ex)
  135. {
  136. SampleRes s = new SampleRes();
  137. LogHelper<MachineMaterialService>.LogError(ex.ToString(), "DA sample 校验", string.Empty);
  138. s.code = "fail";
  139. return s;
  140. }
  141. }
  142. public bool Set(Sample sample, string message)
  143. {
  144. /*using (IDatabase currDb = DbFactory.Base("qis"))
  145. {
  146. QisCheck qis = currDb.FindList<QisCheck>($@"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();
  147. if (qis != null)
  148. {*/
  149. if(sample!=null)
  150. {
  151. DaSample ds = new DaSample()
  152. {
  153. MacId = Convert.ToInt32(Db.FindObject($@"select id from machine where FCode='{sample.macId}'")),
  154. Type = sample.materialNo,
  155. Time = Convert.ToDateTime(sample.sTime),
  156. X = sample.xOffset,
  157. Y = sample.yOffset,
  158. T = sample.tOffset,
  159. RecCode = sample.userId,
  160. Result = message
  161. };
  162. if (Db.InsertFor<DaSample>(ds, sample.userId) > 0)
  163. {
  164. return true;
  165. }
  166. else
  167. {
  168. return false;
  169. }
  170. }
  171. return false;
  172. }
  173. #region 暂时用不到
  174. /// <summary>
  175. /// sql语句的生成
  176. /// </summary>
  177. /// <param name="sample"></param>
  178. /// <returns></returns>
  179. /* public Sample Set(Sample sample)
  180. {
  181. 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
  182. FROM machine AS a
  183. LEFT JOIN factoryregion AS b ON a.RegionId = b.id
  184. INNER JOIN factoryregion AS c ON b.ParentId = c.id
  185. INNER JOIN factoryregion AS d ON c.ParentId = d.id
  186. INNER JOIN factoryregion AS e ON d.ParentId = e.id
  187. INNER JOIN mactprocess AS f ON a.id = f.MacID
  188. LEFT JOIN machinenumber AS g ON a.id = g.macid where a.Fcode='{sample.MId}'";
  189. IEnumerable<Sample> s = Db.FindList<Sample>(sql);
  190. foreach (Sample item in s)
  191. {
  192. sample.Factory = item.Factory;
  193. sample.Plant = item.Plant;
  194. sample.Floor = item.Floor;
  195. sample.PCode = item.PCode;
  196. }
  197. DaSample ds = new DaSample();
  198. ds.MacId = Convert.ToInt32(Db.FindObject($@"select ID FROM machine where FCode='{sample.MId}'"));
  199. ds.Type = sample.Type;
  200. ds.Time = sample.STime;
  201. ds.X = sample.X;
  202. ds.Y = sample.Y;
  203. ds.T = sample.T;
  204. ds.RecCode = sample.UserId;
  205. Db.InsertFor<DaSample>(ds, sample.UserId);
  206. return sample;
  207. }*/
  208. #endregion
  209. }
  210. }