material.py 13 KB

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