WCSDBAttributeExtensions.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. using SqlSugar;
  2. using System.ComponentModel;
  3. using System.Reflection;
  4. using WCS.Protocol.HJ.DataStructure;
  5. using WMS.Info.Models.WCSDeviceMonitor;
  6. namespace WMS.BZWeb.Extensions
  7. {
  8. public static class WCSDBAttributeExtensions
  9. {
  10. public static DBDetail GetAttributesDBDetail(this SRMData obj)
  11. {
  12. DBDetail dBDetail = new DBDetail() { DBName = new List<string>(), DBDatas = new Dictionary<string, List<DBData>>() };
  13. List<DBData> list = new List<DBData>();
  14. if (obj.D521 != null)
  15. {
  16. var WCS_SRM521IntefaceType = obj.D521?.GetType().GetInterfaces()[0];
  17. var WCS_SRM521IntefaceProperties = WCS_SRM521IntefaceType.GetProperties();
  18. foreach (PropertyInfo pi in obj.D521?.GetType()?.GetProperties())
  19. {
  20. string describle = string.Empty;
  21. foreach (PropertyInfo intefacePropertyInfo in WCS_SRM521IntefaceProperties)
  22. {
  23. if (pi.Name == intefacePropertyInfo.Name)
  24. {
  25. var descriptionAttribute = intefacePropertyInfo.GetCustomAttribute<DescriptionAttribute>();
  26. if (descriptionAttribute != null)
  27. {
  28. describle = descriptionAttribute.Description;
  29. }
  30. break;
  31. }
  32. }
  33. string proname = "DB521_" + pi.Name;
  34. var abc = pi.GetValue(obj.D521, null);
  35. if (abc == null) continue;
  36. list.Add(new DBData { Name = proname, Desc = describle, Value = abc.ToString() });
  37. }
  38. dBDetail.DBName.Add("DB521");
  39. dBDetail.DBDatas.Add("DB521", list);
  40. }
  41. if (obj.D520 != null)
  42. {
  43. var WCS_SRM520IntefaceType = obj.D520?.GetType().GetInterfaces()[0];
  44. var WCS_SRM520IntefaceProperties = WCS_SRM520IntefaceType.GetProperties();
  45. list = new List<DBData>();
  46. foreach (PropertyInfo pi in obj.D520?.GetType()?.GetProperties())
  47. {
  48. string describle = string.Empty;
  49. foreach (PropertyInfo intefacePropertyInfo in WCS_SRM520IntefaceProperties)
  50. {
  51. if (pi.Name == intefacePropertyInfo.Name)
  52. {
  53. var descriptionAttribute = intefacePropertyInfo.GetCustomAttribute<DescriptionAttribute>();
  54. if (descriptionAttribute != null)
  55. {
  56. describle = descriptionAttribute.Description;
  57. }
  58. break;
  59. }
  60. }
  61. string proname = "DB520_" + pi.Name;
  62. var abc = pi.GetValue(obj.D520, null);
  63. if (abc == null) continue;
  64. list.Add(new DBData { Name = proname, Desc = describle, Value = abc.ToString() });
  65. }
  66. dBDetail.DBName.Add("DB520");
  67. dBDetail.DBDatas.Add("DB520", list);
  68. }
  69. if (obj.D537 != null)
  70. {
  71. list = new List<DBData>();
  72. var WCS_SRM537IntefaceType = obj.D537?.GetType().GetInterfaces()[0];
  73. var WCS_SRM537IntefaceProperties = WCS_SRM537IntefaceType.GetProperties();
  74. foreach (PropertyInfo pi in obj.D537?.GetType()?.GetProperties())
  75. {
  76. string describle = string.Empty;
  77. foreach (PropertyInfo intefacePropertyInfo in WCS_SRM537IntefaceProperties)
  78. {
  79. if (pi.Name == intefacePropertyInfo.Name)
  80. {
  81. var descriptionAttribute = intefacePropertyInfo.GetCustomAttribute<DescriptionAttribute>();
  82. if (descriptionAttribute != null)
  83. {
  84. describle = descriptionAttribute.Description;
  85. }
  86. break;
  87. }
  88. }
  89. string proname = "DB537_" + pi.Name;
  90. var abc = pi.GetValue(obj.D537, null);
  91. if (abc == null) continue;
  92. list.Add(new DBData { Name = proname, Desc = describle, Value = abc.ToString() });
  93. }
  94. dBDetail.DBName.Add("DB537");
  95. dBDetail.DBDatas.Add("DB537", list);
  96. }
  97. return dBDetail;
  98. }
  99. public static DBDetail GetAttributesDBDetail(this StationData obj)
  100. {
  101. DBDetail dBDetail = new DBDetail() { DBName = new List<string>(), DBDatas = new Dictionary<string, List<DBData>>() };
  102. List<DBData> list = new List<DBData>();
  103. if (obj.D521 != null)
  104. {
  105. var WCS_Station521IntefaceType = obj.D521?.GetType().GetInterfaces()[0];
  106. var WCS_Station521IntefaceProperties = WCS_Station521IntefaceType.GetProperties();
  107. foreach (PropertyInfo pi in obj.D521?.GetType()?.GetProperties())
  108. {
  109. string describle = string.Empty;
  110. foreach (PropertyInfo intefacePropertyInfo in WCS_Station521IntefaceProperties)
  111. {
  112. if (pi.Name == intefacePropertyInfo.Name)
  113. {
  114. var descriptionAttribute = intefacePropertyInfo.GetCustomAttribute<DescriptionAttribute>();
  115. if (descriptionAttribute != null)
  116. {
  117. describle = descriptionAttribute.Description;
  118. }
  119. break;
  120. }
  121. }
  122. string proname = "DB521_" + pi.Name;
  123. var abc = pi.GetValue(obj.D521, null);
  124. if (abc == null) continue;
  125. list.Add(new DBData { Name = proname, Desc = describle, Value = abc.ToString() });
  126. }
  127. dBDetail.DBName.Add("DB521");
  128. dBDetail.DBDatas.Add("DB521", list);
  129. }
  130. if (obj.D520 != null)
  131. {
  132. list = new List<DBData>();
  133. var WCS_Station520IntefaceType = obj.D520?.GetType().GetInterfaces()[0];
  134. var WCS_Station520IntefaceProperties = WCS_Station520IntefaceType.GetProperties();
  135. foreach (PropertyInfo pi in obj.D520?.GetType()?.GetProperties())
  136. {
  137. string describle = string.Empty;
  138. foreach (PropertyInfo intefacePropertyInfo in WCS_Station520IntefaceProperties)
  139. {
  140. if (pi.Name == intefacePropertyInfo.Name)
  141. {
  142. var descriptionAttribute = intefacePropertyInfo.GetCustomAttribute<DescriptionAttribute>();
  143. if (descriptionAttribute != null)
  144. {
  145. describle = descriptionAttribute.Description;
  146. }
  147. break;
  148. }
  149. }
  150. string proname = "DB520_" + pi.Name;
  151. var abc = pi.GetValue(obj.D520, null);
  152. if (abc == null) continue;
  153. list.Add(new DBData { Name = proname, Desc = describle, Value = abc.ToString() });
  154. }
  155. dBDetail.DBName.Add("DB520");
  156. dBDetail.DBDatas.Add("DB520", list);
  157. }
  158. if (obj.D523 != null)
  159. {
  160. list = new List<DBData>();
  161. var WCS_Station523IntefaceType = obj.D523?.GetType().GetInterfaces()[0];
  162. var WCS_Station523IntefaceProperties = WCS_Station523IntefaceType.GetProperties();
  163. foreach (PropertyInfo pi in obj.D523?.GetType()?.GetProperties())
  164. {
  165. string describle = string.Empty;
  166. foreach (PropertyInfo intefacePropertyInfo in WCS_Station523IntefaceProperties)
  167. {
  168. if (pi.Name == intefacePropertyInfo.Name)
  169. {
  170. var descriptionAttribute = intefacePropertyInfo.GetCustomAttribute<DescriptionAttribute>();
  171. if (descriptionAttribute != null)
  172. {
  173. describle = descriptionAttribute.Description;
  174. }
  175. break;
  176. }
  177. }
  178. string proname = "DB523_" + pi.Name;
  179. var abc = pi.GetValue(obj.D523, null);
  180. if (abc == null) continue;
  181. list.Add(new DBData { Name = proname, Desc = describle, Value = abc.ToString() });
  182. }
  183. dBDetail.DBName.Add("DB523");
  184. dBDetail.DBDatas.Add("DB523", list);
  185. }
  186. if (obj.D80 != null)
  187. {
  188. var WCS_Station80IntefaceType = obj.D80?.GetType().GetInterfaces()[0];
  189. var WCS_Station80IntefaceProperties = WCS_Station80IntefaceType.GetProperties();
  190. list = new List<DBData>();
  191. foreach (PropertyInfo pi in obj.D80?.GetType()?.GetProperties())
  192. {
  193. string describle = string.Empty;
  194. foreach (PropertyInfo intefacePropertyInfo in WCS_Station80IntefaceProperties)
  195. {
  196. if (pi.Name == intefacePropertyInfo.Name)
  197. {
  198. var descriptionAttribute = intefacePropertyInfo.GetCustomAttribute<DescriptionAttribute>();
  199. if (descriptionAttribute != null)
  200. {
  201. describle = descriptionAttribute.Description;
  202. }
  203. break;
  204. }
  205. }
  206. string proname = "DB80_" + pi.Name;
  207. var abc = pi.GetValue(obj.D80, null);
  208. //if (abc == null) continue;
  209. list.Add(new DBData { Name = proname, Desc = describle, Value = abc?.ToString() });
  210. }
  211. dBDetail.DBName.Add("DB80");
  212. dBDetail.DBDatas.Add("DB80", list);
  213. }
  214. if (obj.D81 != null)
  215. {
  216. var WCS_Station81IntefaceType = obj.D81?.GetType().GetInterfaces()[0];
  217. var WCS_Station81IntefaceProperties = WCS_Station81IntefaceType.GetProperties();
  218. list = new List<DBData>();
  219. foreach (PropertyInfo pi in obj.D81?.GetType()?.GetProperties())
  220. {
  221. string describle = string.Empty;
  222. foreach (PropertyInfo intefacePropertyInfo in WCS_Station81IntefaceProperties)
  223. {
  224. if (pi.Name == intefacePropertyInfo.Name)
  225. {
  226. var descriptionAttribute = intefacePropertyInfo.GetCustomAttribute<DescriptionAttribute>();
  227. if (descriptionAttribute != null)
  228. {
  229. describle = descriptionAttribute.Description;
  230. }
  231. break;
  232. }
  233. }
  234. string proname = "DB81_" + pi.Name;
  235. var abc = pi.GetValue(obj.D81, null);
  236. //if (abc == null) continue;
  237. list.Add(new DBData { Name = proname, Desc = describle, Value = abc?.ToString() });
  238. }
  239. dBDetail.DBName.Add("DB81");
  240. dBDetail.DBDatas.Add("DB81", list);
  241. }
  242. if (obj.D91 != null)
  243. {
  244. var WCS_Station91IntefaceType = obj.D91?.GetType().GetInterfaces()[0];
  245. var WCS_Station91IntefaceProperties = WCS_Station91IntefaceType.GetProperties();
  246. list = new List<DBData>();
  247. foreach (PropertyInfo pi in obj.D91?.GetType()?.GetProperties())
  248. {
  249. string describle = string.Empty;
  250. foreach (PropertyInfo intefacePropertyInfo in WCS_Station91IntefaceProperties)
  251. {
  252. if (pi.Name == intefacePropertyInfo.Name)
  253. {
  254. var descriptionAttribute = intefacePropertyInfo.GetCustomAttribute<DescriptionAttribute>();
  255. if (descriptionAttribute != null)
  256. {
  257. describle = descriptionAttribute.Description;
  258. }
  259. break;
  260. }
  261. }
  262. string proname = "DB91_" + pi.Name;
  263. var abc = pi.GetValue(obj.D91, null);
  264. if (abc == null) continue;
  265. list.Add(new DBData { Name = proname, Desc = describle, Value = abc.ToString() });
  266. }
  267. dBDetail.DBName.Add("DB91");
  268. dBDetail.DBDatas.Add("DB91", list);
  269. }
  270. return dBDetail;
  271. }
  272. //public static DBDetail GetAttributesDBDetail(this RGVData obj)
  273. //{
  274. // DBDetail dBDetail = new DBDetail() { DBName = new List<string>(), DBDatas = new Dictionary<string, List<DBData>>() };
  275. // List<DBData> list = new List<DBData>();
  276. // foreach (PropertyInfo pi in obj.D521?.GetType()?.GetProperties())
  277. // {
  278. // AttributeCollection attributes = TypeDescriptor.GetProperties(obj.D521.GetType())[pi.Name].Attributes;
  279. // DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];
  280. // string describle = myAttribute.Description;
  281. // string proname = "DB521_" + pi.Name;
  282. // var abc = pi.GetValue(obj.D521, null);
  283. // if (abc == null) continue;
  284. //
  285. // list.Add(new DBData { Name = proname, Desc = describle, Value = abc.ToString() });
  286. // }
  287. // dBDetail.DBName.Add("DB521");
  288. // dBDetail.DBDatas.Add("DB521", list);
  289. // list = new List<DBData>();
  290. // foreach (PropertyInfo pi in obj.D520?.GetType()?.GetProperties())
  291. // {
  292. // AttributeCollection attributes = TypeDescriptor.GetProperties(obj.D520.GetType())[pi.Name].Attributes;
  293. // DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];
  294. // string describle = myAttribute.Description;
  295. // string proname = "DB520_" + pi.Name;
  296. // var abc = pi.GetValue(obj.D520, null);
  297. // if (abc == null) continue;
  298. // list.Add(new DBData { Name = proname, Desc = describle, Value = abc.ToString() });
  299. // }
  300. // dBDetail.DBName.Add("DB520");
  301. // dBDetail.DBDatas.Add("DB520", list);
  302. // list = new List<DBData>();
  303. // foreach (PropertyInfo pi in obj.D523?.GetType()?.GetProperties())
  304. // {
  305. // AttributeCollection attributes = TypeDescriptor.GetProperties(obj.D523.GetType())[pi.Name].Attributes;
  306. // DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];
  307. // string describle = myAttribute.Description;
  308. // string proname = "DB523_" + pi.Name;
  309. // var abc = pi.GetValue(obj.D523, null);
  310. // if (abc == null) continue;
  311. // list.Add(new DBData { Name = proname, Desc = describle, Value = abc.ToString() });
  312. // }
  313. // dBDetail.DBName.Add("DB523");
  314. // dBDetail.DBDatas.Add("DB523", list);
  315. // return dBDetail;
  316. //}
  317. }
  318. }