版博士V2.0程序
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 

406 рядки
15 KiB

  1. using SqlSugar;
  2. using System.Collections.Generic;
  3. namespace Models
  4. {
  5. [SugarIndex("index_{table}_code", nameof(Product.Code), OrderByType.Asc, isUnique: true)]
  6. public class Product : BaseTable
  7. {
  8. public string Code { get; set; }
  9. public string Name { get; set; }
  10. [SugarColumn(IsNullable = true)]
  11. public string Spec { get; set; }
  12. //类别
  13. public int ClassesId { get; set; }
  14. [Navigate(NavigateType.ManyToOne, nameof(ClassesId))]
  15. public Classes ClassesInfo { get; set; }
  16. //目数
  17. public int HoleCount { get; set; }
  18. //外观检测模型文件 //不存在默认使用 .\onnx\default.onnx
  19. [SugarColumn(IsNullable = true)]
  20. public string DefectModelFile { get; set; }
  21. //Files Type0-产品图纸
  22. [Navigate(NavigateType.OneToMany, nameof(Attachment.Pid))]
  23. public List<Attachment> AttachmentList { get; set; }//注意禁止给books手动赋值,也不能new初始化,否则导航查询不到
  24. //当前最新批次号
  25. public string BatchId { get; set; }
  26. /// <summary>
  27. /// 目标数量
  28. /// </summary>
  29. public int TargetCount { get; set; }
  30. /// <summary>
  31. /// 完成数量
  32. /// </summary>
  33. public int CompleteCount { get; set; }
  34. [Navigate(NavigateType.OneToMany, nameof(BatchHistory.Pid))]
  35. public List<BatchHistory> BatchHistoryList { get; set; }//注意禁止给books手动赋值,也不能new初始化,否则导航查询不到
  36. /// <summary>
  37. /// 合格标准
  38. /// </summary>
  39. [Navigate(NavigateType.OneToMany, nameof(QualifiedCriterion.Pid))]
  40. public List<QualifiedCriterion> QualifiedCriterionList { get; set; }
  41. [SugarColumn(IsNullable = true)]
  42. public string Note { get; set; }
  43. //判断上下限
  44. public double TensionBaseValue { get; set; }
  45. public double TensionUpFloatValue { get; set; }
  46. public double TensionDownFloatValue { get; set; }
  47. public double HeightBaseValue { get; set; }
  48. public double HeightUpFloatValue { get; set; }
  49. public double HeightDownFloatValue { get; set; }
  50. public double LineWidthBaseValue { get; set; }
  51. public double LineWidthUpFloatValue { get; set; }
  52. public double LineWidthDownFloatValue { get; set; }
  53. //以前只支持Y方向PT
  54. public double PTBaseValue { get; set; }
  55. public double PTUpFloatValue { get; set; }
  56. public double PTDownFloatValue { get; set; }
  57. //新增X方向PT
  58. public double PTXBaseValue { get; set; }
  59. public double PTXUpFloatValue { get; set; }
  60. public double PTXDownFloatValue { get; set; }
  61. //新增检测项2024-2-20
  62. //反面检测
  63. public double FLineWidthBaseValue { get; set; }
  64. public double FLineWidthUpFloatValue { get; set; }
  65. public double FLineWidthDownFloatValue { get; set; }
  66. //主栅连接线检测
  67. public double MGridIntervalBaseValue { get; set; }
  68. public double MGridIntervalUpFloatValue { get; set; }
  69. public double MGridIntervalDownFloatValue { get; set; }
  70. //主栅宽度
  71. public double MGridWidthBaseValue { get; set; }
  72. public double MGridWidthUpFloatValue { get; set; }
  73. public double MGridWidthDownFloatValue { get; set; }
  74. //主栅间距
  75. public double MGridSpreadBaseValue { get; set; }
  76. public double MGridSpreadUpFloatValue { get; set; }
  77. public double MGridSpreadDownFloatValue { get; set; }
  78. //细栅间距检测
  79. public double FGridSpreadBaseValue { get; set; }
  80. public double FGridSpreadUpFloatValue { get; set; }
  81. public double FGridSpreadDownFloatValue { get; set; }
  82. //背极宽度
  83. public double BackPoleWidthBaseValue { get; set; }
  84. public double BackPoleWidthUpFloatValue { get; set; }
  85. public double BackPoleWidthDownFloatValue { get; set; }
  86. //主栅长度检测
  87. public double MGridLengthBaseValue { get; set; }
  88. public double MGridLengthUpFloatValue { get; set; }
  89. public double MGridLengthDownFloatValue { get; set; }
  90. //Mark点横向间距
  91. public double MarkXDisBaseValue { get; set; }
  92. public double MarkXDisUpFloatValue { get; set; }
  93. public double MarkXDisDownFloatValue { get; set; }
  94. //Mark点竖向间距
  95. public double MarkYDisBaseValue { get; set; }
  96. public double MarkYDisUpFloatValue { get; set; }
  97. public double MarkYDisDownFloatValue { get; set; }
  98. //鱼叉口长
  99. public double ForkLengthBaseValue { get; set; }
  100. public double ForkLengthUpFloatValue { get; set; }
  101. public double ForkLengthDownFloatValue { get; set; }
  102. //鱼叉口宽
  103. public double ForkWidthBaseValue { get; set; }
  104. public double ForkWidthUpFloatValue { get; set; }
  105. public double ForkWidthDownFloatValue { get; set; }
  106. //鱼叉口间距
  107. public double ForkDisBaseValue { get; set; }
  108. public double ForkDisUpFloatValue { get; set; }
  109. public double ForkDisDownFloatValue { get; set; }
  110. //蜈蚣角长
  111. public double ChilopodLengthBaseValue { get; set; }
  112. public double ChilopodLengthUpFloatValue { get; set; }
  113. public double ChilopodLengthDownFloatValue { get; set; }
  114. //蜈蚣角宽
  115. public double ChilopodWidthBaseValue { get; set; }
  116. public double ChilopodWidthUpFloatValue { get; set; }
  117. public double ChilopodWidthDownFloatValue { get; set; }
  118. //分片间隔
  119. public double ShardingDisBaseValue { get; set; }
  120. public double ShardingDisUpFloatValue { get; set; }
  121. public double ShardingDisDownFloatValue { get; set; }
  122. //焊点间距
  123. public double WeldingSpotDisBaseValue { get; set; }
  124. public double WeldingSpotDisUpFloatValue { get; set; }
  125. public double WeldingSpotDisDownFloatValue { get; set; }
  126. //焊点长
  127. public double WeldingSpotLengthBaseValue { get; set; }
  128. public double WeldingSpotLengthUpFloatValue { get; set; }
  129. public double WeldingSpotLengthDownFloatValue { get; set; }
  130. //焊点宽
  131. public double WeldingSpotWidthBaseValue { get; set; }
  132. public double WeldingSpotWidthUpFloatValue { get; set; }
  133. public double WeldingSpotWidthDownFloatValue { get; set; }
  134. //高度BASE值
  135. public string HeightBaseDec { get; set; }
  136. //====生产流程绑定
  137. [SugarColumn(IsNullable = true)]
  138. public int? StepId { get; set; }
  139. [Navigate(NavigateType.ManyToOne, nameof(StepId))]
  140. public Step StepInfo { get; set; }
  141. //流程工序列表
  142. [Navigate(NavigateType.OneToMany, nameof(ProductProcess.Pid))]
  143. public List<ProductProcess> ProductProcessList { get; set; }//注意禁止给books手动赋值,也不能new初始化,否则导航查询不到
  144. //====校正流程绑定
  145. [SugarColumn(IsNullable = true)]
  146. public int? ReviseStepId { get; set; }
  147. [Navigate(NavigateType.ManyToOne, nameof(ReviseStepId))]
  148. public Step ReviseStepInfo { get; set; }
  149. //校正流程工序列表
  150. [Navigate(NavigateType.OneToMany, nameof(ProductReviseProcess.Pid))]
  151. public List<ProductReviseProcess> ProductReviseProcessList { get; set; }//注意禁止给books手动赋值,也不能new初始化,否则导航查询不到
  152. //====修复流程绑定
  153. [SugarColumn(IsNullable = true)]
  154. public int? AssistStepId { get; set; }
  155. [Navigate(NavigateType.ManyToOne, nameof(AssistStepId))]
  156. public Step AssistStepInfo { get; set; }
  157. //校正流程工序列表
  158. [Navigate(NavigateType.OneToMany, nameof(ProductAssistProcess.Pid))]
  159. public List<ProductAssistProcess> ProductAssistProcessList { get; set; }//注意禁止给books手动赋值,也不能new初始化,否则导航查询不到
  160. //生产记录(用于导航删除)
  161. [Navigate(NavigateType.OneToMany, nameof(Order.ProductId))]
  162. public List<Order> OrderList { get; set; }//注意禁止给books手动赋值,也不能new初始化,否则导航查询不到
  163. //2023-11-2 加入mark使用
  164. //mark类型 0:无mark
  165. public int MarkType { get; set; }
  166. //mark尺寸
  167. public double MarkSize { get; set; }
  168. //抓点图像
  169. [SugarColumn(IsNullable = true)]
  170. public string MapPath { get; set; }
  171. //抓取点位
  172. [SugarColumn(IsNullable = true, Length = 2048)]
  173. public string GetPointList { get; set; }
  174. //2023-12-18 加入mark干扰判断,是否主栅
  175. public int MarkDisturb { get; set; }
  176. public int MainGrid { get; set; }
  177. //2023-12-19 新流程方案参数
  178. //工单
  179. [SugarColumn(IsNullable = true)]
  180. public string WorkOrderCode { get; set; }
  181. //灵活测试点位
  182. [Navigate(NavigateType.OneToMany, nameof(TestDefectPoints.Pid))]
  183. public List<TestDefectPoints> TestDefectPointsList { get; set; }
  184. //2024-1-24 加入是否存在pad点
  185. [SugarColumn(IsNullable = true)]
  186. public int HavePad { get; set; }
  187. //2024-5-10 加入是否存在网节
  188. [SugarColumn(IsNullable = true)]
  189. public int HaveWJ { get; set; }
  190. //2024-9-12 设置比对精度
  191. [SugarColumn(IsNullable = true)]
  192. public double WangMuThresh { get; set; }
  193. //2024 03-12 加入打印内容绑定产品
  194. #region 打印
  195. [SugarColumn(IsNullable = true)]
  196. /// <summary>
  197. /// 开启检测单打印
  198. /// </summary>
  199. public bool EnableOrderPrint { get; set; }
  200. [SugarColumn(IsNullable = true)]
  201. /// <summary>
  202. /// 打印模板路径
  203. /// </summary>
  204. public string OrderTempPath { get; set; }
  205. [SugarColumn(IsNullable = true)]
  206. /// <summary>
  207. /// 开启标签打印
  208. /// </summary>
  209. public bool EnableLabelPrint { get; set; }
  210. [SugarColumn(IsNullable = true)]
  211. /// <summary>
  212. /// 打印模板路径
  213. /// </summary>
  214. public string LabelTempPath { get; set; }
  215. [SugarColumn(IsNullable = true)]
  216. /// <summary>
  217. /// 开启Excel打印
  218. /// </summary>
  219. public bool EnableExcelPrint { get; set; }
  220. [SugarColumn(IsNullable = true)]
  221. /// <summary>
  222. /// 打印模板路径
  223. /// </summary>
  224. public string ExcelTempPath { get; set; }
  225. [SugarColumn(IsNullable = true)]
  226. //打印信息
  227. [Navigate(NavigateType.OneToMany, nameof(PrintInfo.Pid))]
  228. public List<PrintInfo> PrintInfoList { get; set; }
  229. #endregion
  230. //2024-04-12 保存excel
  231. #region 保存excel
  232. [SugarColumn(IsNullable = true)]
  233. /// <summary>
  234. /// 开启检测单保存
  235. /// </summary>
  236. public bool EnableOrderSave { get; set; }
  237. [SugarColumn(IsNullable = true)]
  238. /// <summary>
  239. /// 保存路径
  240. /// </summary>
  241. public string OrderSavePath { get; set; }
  242. #endregion
  243. }
  244. /// <summary>
  245. /// 结束的批次才加入
  246. /// </summary>
  247. public class Attachment : BaseTable
  248. {
  249. /// <summary>
  250. /// 源表名,小写
  251. /// </summary>
  252. public string TBName { get; set; }
  253. /// <summary>
  254. /// 子类 看TB主表对应类型
  255. /// </summary>
  256. public int Type { get; set; } = 0;
  257. public int Pid { get; set; }
  258. /// <summary>
  259. /// 原始文件名还扩展名
  260. /// </summary>
  261. public string Name { get; set; }
  262. /// <summary>
  263. /// 本地文件名 子路径+文件名(无扩展名):{TBName}\\{NameTimestamp} //NameTimestamp=id\\A
  264. /// </summary>
  265. public string NameTimestamp { get; set; }
  266. /// <summary>
  267. /// .pdf/.doc
  268. /// </summary>
  269. public string ExtendName { get; set; }
  270. }
  271. /// <summary>
  272. /// 非全量copy于StepProcess工序,只有产品修改工序参数时保存
  273. /// </summary>
  274. public class ProductProcess : BaseTable
  275. {
  276. public int Pid { get; set; }
  277. public string ProcessCode { get; set; }
  278. /// <summary>
  279. /// json
  280. /// </summary>
  281. [SugarColumn(IsNullable = true, Length = 2048)]
  282. public string ProcessParams { get; set; }
  283. }
  284. public class ProductReviseProcess : ProductProcess
  285. {
  286. }
  287. public class ProductAssistProcess : ProductProcess
  288. {
  289. }
  290. /// <summary>
  291. /// 结束的批次才加入
  292. /// </summary>
  293. public class BatchHistory : BaseTable
  294. {
  295. public int Pid { get; set; }
  296. public string BatchId { get; set; }
  297. /// <summary>
  298. /// 目标数量
  299. /// </summary>
  300. public int TargetCount { get; set; }
  301. /// <summary>
  302. /// 当前数量
  303. /// </summary>
  304. public int CompleteCount { get; set; }
  305. }
  306. /// <summary>
  307. /// 合格标准
  308. /// </summary>
  309. public class QualifiedCriterion : BaseTable
  310. {
  311. public int Pid { get; set; }
  312. public string DefectCode { get; set; }//pp,sx,... EnumUtil.Convert2Enum
  313. /// <summary>
  314. /// 尺寸
  315. /// </summary>
  316. public float Size { get; set; }
  317. /// <summary>
  318. /// 最大允许缺陷数量
  319. /// </summary>
  320. public int MaxDefectCount { get; set; }
  321. }
  322. /// <summary>
  323. /// 2023-12-25 单点测试点位
  324. /// </summary>
  325. public class TestDefectPoints : BaseTable
  326. {
  327. public int Pid { get; set; }
  328. /// <summary>
  329. /// 点位代码
  330. /// </summary>
  331. public string PointCode { get; set; }
  332. /// <summary>
  333. /// 点位X
  334. /// </summary>
  335. public double X { get; set; }
  336. /// <summary>
  337. /// 点位Y
  338. /// </summary>
  339. public double Y { get; set; }
  340. }
  341. /// <summary>
  342. /// 2024-03-12 打印信息
  343. /// </summary>
  344. public class PrintInfo : BaseTable
  345. {
  346. public int Pid { get; set; }
  347. /// <summary>
  348. /// 是否为数字
  349. /// </summary>
  350. public bool IsValue { get; set; }
  351. /// <summary>
  352. /// 打印类型0:excel,1:标签,2:工单
  353. /// </summary>
  354. public int Type { get; set; }
  355. /// <summary>
  356. /// 打印位置
  357. /// </summary>
  358. public string PrintKey { get; set; }
  359. /// <summary>
  360. /// 打印代码或数据
  361. /// </summary>
  362. public string PrintCode { get; set; }
  363. /// <summary>
  364. /// 备注名称
  365. /// </summary>
  366. public string PrintName { get; set; }
  367. }
  368. }