qc_material.py 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. from datetime import date, datetime
  2. from sqlalchemy import Column, Date, DateTime, Integer, Numeric, SmallInteger, String
  3. from app.core.database import Base
  4. class BizQcMaterial(Base):
  5. __tablename__ = "biz_qc_material"
  6. id = Column(String(64), primary_key=True, comment="主键ID")
  7. material_code = Column(String(64), nullable=False, comment="物料编码")
  8. material_name = Column(String(200), nullable=False, comment="物料名称")
  9. spec_model = Column(String(200), nullable=True, comment="规格型号")
  10. unit = Column(String(32), nullable=True, comment="单位")
  11. stock_qty = Column(Numeric(18, 4), nullable=False, default=0, comment="当前库存量")
  12. warning_qty = Column(Numeric(18, 4), nullable=False, default=0, comment="预警库存量")
  13. status = Column(String(1), nullable=False, default="1", comment="1-启用 0-停用")
  14. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  15. order_num = Column(Integer, nullable=True, comment="排序号")
  16. remark = Column(String(512), nullable=True, comment="备注")
  17. create_by = Column(String(64), nullable=True, comment="创建人id")
  18. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  19. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  20. update_by = Column(String(64), nullable=True, comment="更新人id")
  21. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  22. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  23. class BizQcMaterialMonthTemplate(Base):
  24. __tablename__ = "biz_qc_material_month_template"
  25. id = Column(String(64), primary_key=True, comment="主键ID")
  26. material_id = Column(String(64), nullable=True, comment="关联物料ID")
  27. material_code = Column(String(64), nullable=False, default="", comment="物料编码")
  28. material_name = Column(String(200), nullable=False, default="", comment="物料名称")
  29. spec_model = Column(String(200), nullable=True, comment="规格型号")
  30. unit = Column(String(32), nullable=True, comment="单位")
  31. catalog_no = Column(String(128), nullable=True, comment="货号")
  32. batch_no = Column(String(128), nullable=True, comment="批号")
  33. manufacturer = Column(String(200), nullable=True, comment="厂家")
  34. unit_price = Column(Numeric(18, 2), nullable=False, default=0, comment="单价(元)")
  35. amount = Column(Numeric(18, 2), nullable=False, default=0, comment="金额(元)")
  36. in_qty = Column(Numeric(18, 4), nullable=False, default=0, comment="默认入库数量")
  37. expire_date = Column(Date, nullable=True, comment="默认过期日期")
  38. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  39. order_num = Column(Integer, nullable=True, comment="排序号")
  40. remark = Column(String(512), nullable=True, comment="备注")
  41. create_by = Column(String(64), nullable=True, comment="创建人id")
  42. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  43. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  44. update_by = Column(String(64), nullable=True, comment="更新人id")
  45. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  46. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  47. class BizQcMaterialStockBatch(Base):
  48. __tablename__ = "biz_qc_material_stock_batch"
  49. id = Column(String(64), primary_key=True, comment="主键ID")
  50. material_id = Column(String(64), nullable=False, comment="关联物料ID")
  51. material_code = Column(String(64), nullable=True, comment="物料编码快照")
  52. material_name = Column(String(200), nullable=True, comment="物料名称快照")
  53. spec_model = Column(String(200), nullable=True, comment="规格型号快照")
  54. unit = Column(String(32), nullable=True, comment="单位快照")
  55. stock_in_no = Column(String(64), nullable=False, comment="入库编号")
  56. stock_in_date = Column(Date, nullable=False, comment="入库日期")
  57. expire_date = Column(Date, nullable=False, comment="过期日期")
  58. catalog_no = Column(String(128), nullable=False, comment="货号")
  59. batch_no = Column(String(128), nullable=False, comment="批号")
  60. manufacturer = Column(String(200), nullable=False, comment="厂家")
  61. unit_price = Column(Numeric(18, 2), nullable=False, comment="单价(元)")
  62. amount = Column(Numeric(18, 2), nullable=False, comment="金额(元)")
  63. in_qty = Column(Numeric(18, 4), nullable=False, comment="入库数量")
  64. remaining_qty = Column(Numeric(18, 4), nullable=False, comment="剩余数量")
  65. qc_attachment_urls = Column(String(4000), nullable=True, comment="质检附件URL,逗号分隔")
  66. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  67. order_num = Column(Integer, nullable=True, comment="排序号")
  68. remark = Column(String(512), nullable=True, comment="备注")
  69. create_by = Column(String(64), nullable=True, comment="创建人id")
  70. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  71. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  72. update_by = Column(String(64), nullable=True, comment="更新人id")
  73. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  74. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  75. class BizQcMaterialUsage(Base):
  76. __tablename__ = "biz_qc_material_usage"
  77. id = Column(String(64), primary_key=True, comment="主键ID")
  78. material_id = Column(String(64), nullable=False, comment="物料ID")
  79. material_code = Column(String(64), nullable=True, comment="物料编码快照")
  80. material_name = Column(String(200), nullable=True, comment="物料名称快照")
  81. batch_id = Column(String(64), nullable=True, comment="关联入库批次ID")
  82. stock_in_no = Column(String(64), nullable=True, comment="入库编号快照")
  83. catalog_no = Column(String(128), nullable=True, comment="货号快照")
  84. batch_no = Column(String(128), nullable=True, comment="批号快照")
  85. manufacturer = Column(String(200), nullable=True, comment="厂家快照")
  86. unit_price = Column(Numeric(18, 2), nullable=True, comment="单价快照(元)")
  87. amount = Column(Numeric(18, 2), nullable=True, comment="金额快照(元)")
  88. change_type = Column(String(16), nullable=False, comment="变动类型:use使用 / in入库 / discard废弃")
  89. change_qty = Column(Numeric(18, 4), nullable=False, comment="变动数量")
  90. usage_unit = Column(String(32), nullable=True, comment="用量单位")
  91. stock_before = Column(Numeric(18, 4), nullable=True, comment="变动前物资汇总库存")
  92. stock_after = Column(Numeric(18, 4), nullable=False, comment="变动后库存量")
  93. qc_task_id = Column(String(64), nullable=True, comment="关联质检任务ID")
  94. qc_task_no = Column(String(32), nullable=True, comment="质检任务号快照")
  95. parent_usage_id = Column(String(64), nullable=True, comment="关联领用记录ID")
  96. receiver = Column(String(64), nullable=True, comment="领用人(手动出库)")
  97. purpose = Column(String(512), nullable=True, comment="用途/事由(手动出库)")
  98. requisition_status = Column(
  99. String(16),
  100. nullable=False,
  101. default="open",
  102. comment="领用状态:open-待登记 closed-已使用完",
  103. )
  104. source_type = Column(
  105. String(32),
  106. nullable=False,
  107. comment="来源:task_complete / manual_in / manual_out / outbound_handover",
  108. )
  109. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  110. remark = Column(String(512), nullable=True, comment="备注")
  111. create_by = Column(String(64), nullable=True, comment="创建人id")
  112. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  113. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  114. update_by = Column(String(64), nullable=True, comment="更新人id")
  115. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  116. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  117. class BizQcMaterialStockCheck(Base):
  118. __tablename__ = "biz_qc_material_stock_check"
  119. id = Column(String(64), primary_key=True, comment="主键ID")
  120. title = Column(String(200), nullable=False, comment="盘点标题")
  121. check_time = Column(DateTime, nullable=False, comment="盘点时间")
  122. status = Column(String(16), nullable=False, default="draft", comment="draft/completed/cancelled")
  123. complete_time = Column(DateTime, nullable=True, comment="完成时间")
  124. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  125. order_num = Column(Integer, nullable=True, comment="排序号")
  126. remark = Column(String(512), nullable=True, comment="备注")
  127. create_by = Column(String(64), nullable=True, comment="创建人id")
  128. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  129. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  130. update_by = Column(String(64), nullable=True, comment="更新人id")
  131. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  132. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  133. class BizQcMaterialStockCheckBatchLine(Base):
  134. __tablename__ = "biz_qc_material_stock_check_batch_line"
  135. id = Column(String(64), primary_key=True, comment="主键ID")
  136. check_id = Column(String(64), nullable=False, comment="盘点单ID")
  137. batch_id = Column(String(64), nullable=False, comment="原入库批次ID")
  138. material_id = Column(String(64), nullable=False, comment="物资ID")
  139. material_code = Column(String(64), nullable=True, comment="物料编码快照")
  140. material_name = Column(String(200), nullable=True, comment="物料名称快照")
  141. spec_model = Column(String(200), nullable=True, comment="规格型号快照")
  142. unit = Column(String(32), nullable=True, comment="单位快照")
  143. stock_in_no = Column(String(64), nullable=False, comment="入库编号快照")
  144. stock_in_date = Column(Date, nullable=False, comment="入库日期快照")
  145. expire_date = Column(Date, nullable=False, comment="过期日期快照")
  146. catalog_no = Column(String(128), nullable=False, comment="货号快照")
  147. batch_no = Column(String(128), nullable=False, comment="批号快照")
  148. manufacturer = Column(String(200), nullable=False, comment="厂家快照")
  149. unit_price = Column(Numeric(18, 2), nullable=False, comment="单价快照(元)")
  150. amount = Column(Numeric(18, 2), nullable=False, comment="批次金额快照(元)")
  151. remaining_qty = Column(Numeric(18, 4), nullable=False, comment="快照时点剩余数量")
  152. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  153. order_num = Column(Integer, nullable=True, comment="排序号")
  154. remark = Column(String(512), nullable=True, comment="备注")
  155. create_by = Column(String(64), nullable=True, comment="创建人id")
  156. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  157. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  158. update_by = Column(String(64), nullable=True, comment="更新人id")
  159. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  160. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  161. class BizQcMaterialStockCheckUnusedLine(Base):
  162. __tablename__ = "biz_qc_material_stock_check_unused_line"
  163. id = Column(String(64), primary_key=True, comment="主键ID")
  164. check_id = Column(String(64), nullable=False, comment="盘点单ID")
  165. usage_id = Column(String(64), nullable=True, comment="关联领用记录ID")
  166. batch_id = Column(String(64), nullable=True, comment="关联入库批次ID")
  167. material_code = Column(String(64), nullable=True, comment="物料编码")
  168. material_name = Column(String(200), nullable=False, comment="物料名称")
  169. spec_model = Column(String(200), nullable=True, comment="规格型号")
  170. unit = Column(String(32), nullable=True, comment="单位")
  171. stock_in_no = Column(String(64), nullable=True, comment="入库编号")
  172. stock_in_date = Column(Date, nullable=True, comment="入库日期")
  173. expire_date = Column(Date, nullable=True, comment="过期日期")
  174. catalog_no = Column(String(128), nullable=True, comment="货号")
  175. batch_no = Column(String(128), nullable=True, comment="批号")
  176. manufacturer = Column(String(200), nullable=True, comment="厂家")
  177. unit_price = Column(Numeric(18, 2), nullable=True, comment="单价快照(元)")
  178. holder = Column(String(64), nullable=True, comment="持有人/领用人")
  179. unused_qty = Column(Numeric(18, 4), nullable=False, comment="未用完数量")
  180. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  181. order_num = Column(Integer, nullable=True, comment="排序号")
  182. remark = Column(String(512), nullable=True, comment="备注")
  183. create_by = Column(String(64), nullable=True, comment="创建人id")
  184. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  185. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  186. update_by = Column(String(64), nullable=True, comment="更新人id")
  187. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  188. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")