革博士程序V1仓库
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

před 2 roky
před 2 roky
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Concurrent;
  4. using System.Collections.Generic;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace Models
  10. {
  11. /// <summary>
  12. /// 检测记录表
  13. /// </summary>
  14. //[SugarIndex("index_{table}_ProductId_SerialNum",
  15. // nameof(Records.ProductId), OrderByType.Asc,
  16. // nameof(Records.SerialNum), OrderByType.Desc, isUnique: true)]
  17. public class Records : BaseTable
  18. {
  19. /// <summary>
  20. /// 产品
  21. /// </summary>
  22. public int ProductId { get; set; }
  23. [SugarColumn(IsIgnore = true)]//不关联查询,好像无意义
  24. [Navigate(NavigateType.ManyToOne, nameof(ProductId))]
  25. public Product ProductInfo { get; set; }
  26. /// <summary>
  27. /// 条码
  28. /// </summary>
  29. public string BarCode { get; set; }
  30. /// <summary>
  31. /// 品名
  32. /// </summary>
  33. public string BarCodeName { get; set; }
  34. public string Material { get; set; }//材质名字
  35. public string Color { get; set; }//颜色名字
  36. //产品单号、产品批号、产品卷号
  37. /// <summary>
  38. /// 单号
  39. /// </summary>
  40. //public string OrderId { get; set; }
  41. /// <summary>
  42. /// 批号
  43. /// </summary>
  44. public string BatchId { get; set; }
  45. /// <summary>
  46. /// 卷号 1,2,3,4
  47. /// </summary>
  48. public string ReelId { get; set; }
  49. public double ErpLen { get; set; }//ERP长度
  50. //[SugarColumn(IsNullable = true)]
  51. //public string SerialNum { get; set; } //流水号=批号+ReelId
  52. /// <summary>
  53. /// M
  54. /// </summary>
  55. public double Len { get; set; }//实际数量/长度
  56. public double TensionValue { get; set; }//实际张力
  57. [SugarColumn(IsNullable = true)]
  58. public string ExeStandard { get; set; }//执行标准
  59. /// <summary>
  60. /// 时长-分
  61. /// </summary>
  62. public double TimeLen { get; set; }
  63. /// <summary>
  64. /// 等级划分1-n 对应ABC
  65. /// </summary>
  66. public int Grade { get; set; }
  67. /// <summary>
  68. /// 是否合格
  69. /// </summary>
  70. public bool Qualified { get; set; }
  71. /// <summary>
  72. /// 缺陷总数
  73. /// </summary>
  74. public int DefectTotalCount { get; set; }
  75. #region 缺陷种类
  76. public int DKCount { get; set; }//堵孔数量
  77. public int ZWCount { get; set; }//脏污数量
  78. public int GSYCCount { get; set; }//钢丝异常数量
  79. public int XWSCount { get; set; }//纤维丝数量
  80. public int QKCount { get; set; }//缺口数量
  81. public int ZKCount { get; set; }//针孔数量
  82. public int PPCount { get; set; }//泡泡数量
  83. public int HSCount { get; set; }//划伤数量
  84. public int YXCount { get; set; }//压线数量
  85. public int XBCount { get; set; }//斜边数量 new
  86. public int SXCount { get; set; }//栅线数量 new
  87. #endregion
  88. public bool Succeed { get; set; }
  89. /// <summary>
  90. /// 失败分类
  91. /// </summary>
  92. public int FailType { get; set; }
  93. [SugarColumn(IsNullable = true, ColumnDataType = "text", Length = 2048)]
  94. public string Note { get; set; }
  95. public double FaceWidthMin { get; set; }
  96. public double FaceWidthMax { get; set; }
  97. /// <summary>
  98. /// 门幅线
  99. /// </summary>
  100. [SqlSugar.SugarColumn(IsJson = true, ColumnDataType = StaticConfig.CodeFirst_BigString)]
  101. public List<float[]> FacePointList { get; set; } = new List<float[]>();
  102. /// <summary>
  103. /// Defect和Size比对失败的坐标位置
  104. /// </summary>
  105. [Navigate(NavigateType.OneToMany, nameof(DefectInfo.Pid))]
  106. public List<DefectInfo> DefectInfoList { get; set; }
  107. //===计算属性和方法
  108. [SugarColumn(IsIgnore = true)]
  109. public int currKey { get; set; }
  110. //[SugarColumn(IsIgnore = true)]
  111. //public List<double> FaceWidthList { get; set; }=new List<double>();//String.Join(", ", array)
  112. /// <summary>
  113. /// 拍照1-n
  114. /// </summary>
  115. [SugarColumn(IsIgnore = true)]
  116. public int ScannerPhotoCount { get; set; }=0;//多个相机拍照张数 ++
  117. [SugarColumn(IsIgnore = true)]
  118. public int ScannerPhotoFinishCount { get; set; } = 0;//多个相机拍照张数 --
  119. //每百米瑕疵数告警起始位
  120. [SugarColumn(IsIgnore = true)]
  121. public int preWarningPhotoIndex { get; set; } = 0;
  122. /// <summary>
  123. /// 图片索引,是否有瑕疵 key=0-n
  124. /// </summary>
  125. [SugarColumn(IsIgnore = true)]
  126. public ConcurrentDictionary<int, bool> dicPhoto_Defect { get; set; } = new ConcurrentDictionary<int, bool>();
  127. /// <summary>
  128. /// 单一缺陷报警位置记录,预留50
  129. /// </summary>
  130. [SugarColumn(IsIgnore = true)]
  131. public int[] preWarningPhotoIndexByLabel { get; set; } = new int[50];
  132. }
  133. /// <summary>
  134. /// 瑕疵明细表
  135. /// </summary>
  136. [SugarIndex("index_{table}_pid", nameof(DefectInfo.Pid), OrderByType.Asc,
  137. nameof(DefectInfo.Code), OrderByType.Asc,
  138. nameof(DefectInfo.Target), OrderByType.Asc,
  139. isUnique: false)]
  140. public class DefectInfo : BaseTable
  141. {
  142. public int Pid { get; set; }
  143. public int PhotoIndex { get; set; }//原图索引/文件名 0-n
  144. /// <summary>
  145. /// 类别ID DefectCodeEnum
  146. /// </summary>
  147. public string Code { get; set; }
  148. public double X { get; set; }//cm
  149. public double Y { get; set; }//cm
  150. public double Width { get; set; }//cm
  151. public double Height { get; set; }//cm
  152. /// <summary>
  153. /// 置信度
  154. /// </summary>
  155. public double ZXD { get; set; }
  156. /// <summary>
  157. /// 对比度
  158. /// </summary>
  159. public double Contrast { get; set; }//
  160. /// <summary>
  161. /// 目标
  162. /// </summary>
  163. public int Target { get; set; }
  164. //--计算属性
  165. [SugarColumn(IsIgnore = true)]
  166. public long uid { get; set; }//程序中的唯一索引,用于移除用索引
  167. [SugarColumn(IsIgnore = true)]
  168. public double CentreX
  169. {
  170. get { return Math.Round(X + Width / 2,2); }
  171. }
  172. [SugarColumn(IsIgnore = true)]
  173. public double CentreY
  174. {
  175. get { return Math.Round(Y + Height / 2,2); }
  176. }
  177. /// <summary>
  178. /// 面积
  179. /// </summary>
  180. [SugarColumn(IsIgnore = true)]
  181. public double Area
  182. {
  183. get { return Width * Height; }
  184. }
  185. [SugarColumn(IsIgnore = true)]
  186. public Image image{get;set;}
  187. [SugarColumn(IsIgnore = true)]
  188. public string Name { get; set; }
  189. [SugarColumn(IsIgnore = true)]
  190. public string TagFilePath { get; set; }//打标小图路径,用于二次瑕疵检测修改和忽略时的改名/删除
  191. }
  192. }