qc_material.py 12 KB

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