production_material.py 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  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 BizProductionMaterial(Base):
  5. __tablename__ = "biz_production_material"
  6. id = Column(String(64), primary_key=True, comment="主键ID")
  7. material_type = Column(String(32), nullable=False, comment="物料类型:reagent/consumable/configured_reagent")
  8. material_code = Column(String(64), nullable=False, comment="物料编码")
  9. material_name = Column(String(200), nullable=False, 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. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  16. order_num = Column(Integer, nullable=True, comment="排序号")
  17. remark = Column(String(512), nullable=True, comment="备注")
  18. create_by = Column(String(64), nullable=True, comment="创建人id")
  19. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  20. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  21. update_by = Column(String(64), nullable=True, comment="更新人id")
  22. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  23. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  24. class BizProductionMaterialStockBatch(Base):
  25. __tablename__ = "biz_production_material_stock_batch"
  26. id = Column(String(64), primary_key=True, comment="主键ID")
  27. material_id = Column(String(64), nullable=False, comment="关联物料ID")
  28. material_type = Column(String(32), nullable=False, comment="物料类型快照")
  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. production_date = Column(Date, nullable=True, comment="生产日期")
  37. catalog_no = Column(String(128), nullable=False, comment="货号")
  38. batch_no = Column(String(128), nullable=False, comment="批号")
  39. manufacturer = Column(String(200), nullable=False, comment="厂家")
  40. storage_location = Column(String(200), nullable=True, comment="存储位置")
  41. unit_price = Column(Numeric(18, 2), nullable=False, comment="单价(元)")
  42. amount = Column(Numeric(18, 2), nullable=False, comment="金额(元)")
  43. in_qty = Column(Numeric(18, 4), nullable=False, comment="入库数量")
  44. remaining_qty = Column(Numeric(18, 4), nullable=False, comment="剩余数量")
  45. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  46. order_num = Column(Integer, nullable=True, comment="排序号")
  47. remark = Column(String(512), nullable=True, comment="备注")
  48. create_by = Column(String(64), nullable=True, comment="创建人id")
  49. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  50. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  51. update_by = Column(String(64), nullable=True, comment="更新人id")
  52. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  53. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  54. class BizProductionMaterialUsage(Base):
  55. __tablename__ = "biz_production_material_usage"
  56. id = Column(String(64), primary_key=True, comment="主键ID")
  57. material_id = Column(String(64), nullable=False, comment="物料ID")
  58. material_type = Column(String(32), nullable=False, comment="物料类型快照")
  59. material_code = Column(String(64), nullable=True, comment="物料编码快照")
  60. material_name = Column(String(200), nullable=True, comment="物料名称快照")
  61. batch_id = Column(String(64), nullable=True, comment="关联入库批次ID")
  62. stock_in_no = Column(String(64), nullable=True, comment="入库编号快照")
  63. catalog_no = Column(String(128), nullable=True, comment="货号快照")
  64. batch_no = Column(String(128), nullable=True, comment="批号快照")
  65. manufacturer = Column(String(200), nullable=True, comment="厂家快照")
  66. storage_location = Column(String(200), nullable=True, comment="存储位置快照")
  67. unit_price = Column(Numeric(18, 2), nullable=True, comment="单价快照(元)")
  68. amount = Column(Numeric(18, 2), nullable=True, comment="金额快照(元)")
  69. change_type = Column(String(16), nullable=False, comment="变动类型:use使用 / in入库 / discard废弃")
  70. change_qty = Column(Numeric(18, 4), nullable=False, comment="变动数量")
  71. usage_unit = Column(String(32), nullable=True, comment="用量单位")
  72. stock_before = Column(Numeric(18, 4), nullable=True, comment="变动前物资汇总库存")
  73. stock_after = Column(Numeric(18, 4), nullable=False, comment="变动后库存量")
  74. step_id = Column(String(64), nullable=True, comment="关联生产步骤ID")
  75. step_name = Column(String(200), nullable=True, comment="生产步骤名称快照")
  76. task_id = Column(String(64), nullable=True, comment="关联生产任务ID")
  77. task_no = Column(String(64), nullable=True, comment="生产任务号快照")
  78. parent_usage_id = Column(String(64), nullable=True, comment="关联领用记录ID")
  79. prep_id = Column(String(64), nullable=True, comment="关联配制单ID")
  80. receiver = Column(String(64), nullable=True, comment="领用人(手动出库)")
  81. purpose = Column(String(512), nullable=True, comment="用途/事由(手动出库)")
  82. requisition_status = Column(
  83. String(16),
  84. nullable=False,
  85. default="open",
  86. comment="领用状态:open-待登记/有剩余 closed-已使用完",
  87. )
  88. source_type = Column(
  89. String(32),
  90. nullable=False,
  91. comment="来源:step_save / manual_in / manual_out / prep_consume / prep_in",
  92. )
  93. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  94. remark = Column(String(512), nullable=True, comment="备注")
  95. create_by = Column(String(64), nullable=True, comment="创建人id")
  96. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  97. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  98. update_by = Column(String(64), nullable=True, comment="更新人id")
  99. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  100. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  101. class BizProductionMaterialFormula(Base):
  102. __tablename__ = "biz_production_material_formula"
  103. id = Column(String(64), primary_key=True, comment="主键ID")
  104. configured_material_id = Column(String(64), nullable=False, comment="配置试剂目录ID")
  105. component_material_id = Column(String(64), nullable=False, comment="子物料目录ID")
  106. component_material_type = Column(String(32), nullable=False, comment="reagent/consumable")
  107. component_material_code = Column(String(64), nullable=True, comment="子物料编码快照")
  108. component_material_name = Column(String(200), nullable=True, comment="子物料名称快照")
  109. standard_qty = Column(Numeric(18, 4), nullable=False, default=0, comment="标准用量")
  110. usage_unit = Column(String(32), nullable=True, comment="单位")
  111. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  112. order_num = Column(Integer, nullable=True, comment="排序号")
  113. remark = Column(String(512), nullable=True, comment="备注")
  114. create_by = Column(String(64), nullable=True, comment="创建人id")
  115. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  116. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  117. update_by = Column(String(64), nullable=True, comment="更新人id")
  118. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  119. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  120. class BizProductionMaterialPrep(Base):
  121. __tablename__ = "biz_production_material_prep"
  122. id = Column(String(64), primary_key=True, comment="主键ID")
  123. prep_no = Column(String(64), nullable=False, comment="配制单号")
  124. configured_material_id = Column(String(64), nullable=False, comment="配置试剂目录ID")
  125. configured_material_code = Column(String(64), nullable=True, comment="配置试剂编码快照")
  126. configured_material_name = Column(String(200), nullable=True, comment="配置试剂名称快照")
  127. prep_time = Column(DateTime, nullable=False, comment="配制时间")
  128. output_qty = Column(Numeric(18, 4), nullable=False, comment="产出数量")
  129. output_unit = Column(String(32), nullable=True, comment="产出单位")
  130. batch_no = Column(String(128), nullable=False, comment="产出批号")
  131. storage_location = Column(String(200), nullable=True, comment="产出存储位置")
  132. expire_date = Column(Date, nullable=False, comment="过期日期")
  133. stock_in_no = Column(String(64), nullable=True, comment="产出入库编号")
  134. output_batch_id = Column(String(64), nullable=True, comment="产出批次ID")
  135. status = Column(String(16), nullable=False, default="draft", comment="draft/completed/cancelled")
  136. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  137. order_num = Column(Integer, nullable=True, comment="排序号")
  138. remark = Column(String(512), nullable=True, comment="备注")
  139. create_by = Column(String(64), nullable=True, comment="创建人id")
  140. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  141. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  142. update_by = Column(String(64), nullable=True, comment="更新人id")
  143. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  144. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  145. class BizProductionMaterialPrepLine(Base):
  146. __tablename__ = "biz_production_material_prep_line"
  147. id = Column(String(64), primary_key=True, comment="主键ID")
  148. prep_id = Column(String(64), nullable=False, comment="配制单ID")
  149. component_material_id = Column(String(64), nullable=False, comment="子物料目录ID")
  150. component_material_type = Column(String(32), nullable=False, comment="reagent/consumable")
  151. component_material_code = Column(String(64), nullable=True, comment="子物料编码快照")
  152. component_material_name = Column(String(200), nullable=True, comment="子物料名称快照")
  153. requisition_usage_id = Column(String(64), nullable=True, comment="领用记录ID")
  154. actual_qty = Column(Numeric(18, 4), nullable=False, default=0, comment="实际用量")
  155. usage_unit = Column(String(32), nullable=True, 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="删除标记")
  165. class BizProductionMaterialStockCheck(Base):
  166. __tablename__ = "biz_production_material_stock_check"
  167. id = Column(String(64), primary_key=True, comment="主键ID")
  168. title = Column(String(200), nullable=False, comment="盘点标题")
  169. check_time = Column(DateTime, nullable=False, comment="盘点时间")
  170. status = Column(String(16), nullable=False, default="draft", comment="draft/completed/cancelled")
  171. complete_time = Column(DateTime, nullable=True, comment="完成时间")
  172. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  173. order_num = Column(Integer, nullable=True, comment="排序号")
  174. remark = Column(String(512), nullable=True, comment="备注")
  175. create_by = Column(String(64), nullable=True, comment="创建人id")
  176. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  177. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  178. update_by = Column(String(64), nullable=True, comment="更新人id")
  179. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  180. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  181. class BizProductionMaterialStockCheckBatchLine(Base):
  182. __tablename__ = "biz_production_material_stock_check_batch_line"
  183. id = Column(String(64), primary_key=True, comment="主键ID")
  184. check_id = Column(String(64), nullable=False, comment="盘点单ID")
  185. batch_id = Column(String(64), nullable=False, comment="原入库批次ID")
  186. material_id = Column(String(64), nullable=False, comment="物资ID")
  187. material_type = Column(String(32), nullable=False, comment="物料类型快照")
  188. material_code = Column(String(64), nullable=True, comment="物料编码快照")
  189. material_name = Column(String(200), nullable=True, comment="物料名称快照")
  190. spec_model = Column(String(200), nullable=True, comment="规格型号快照")
  191. unit = Column(String(32), nullable=True, comment="单位快照")
  192. stock_in_no = Column(String(64), nullable=False, comment="入库编号快照")
  193. stock_in_date = Column(Date, nullable=False, comment="入库日期快照")
  194. expire_date = Column(Date, nullable=False, comment="过期日期快照")
  195. catalog_no = Column(String(128), nullable=False, comment="货号快照")
  196. batch_no = Column(String(128), nullable=False, comment="批号快照")
  197. manufacturer = Column(String(200), nullable=False, comment="厂家快照")
  198. storage_location = Column(String(200), nullable=True, comment="存储位置快照")
  199. unit_price = Column(Numeric(18, 2), nullable=False, comment="单价快照(元)")
  200. amount = Column(Numeric(18, 2), nullable=False, comment="批次金额快照(元)")
  201. remaining_qty = Column(Numeric(18, 4), nullable=False, comment="快照时点剩余数量")
  202. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  203. order_num = Column(Integer, nullable=True, comment="排序号")
  204. remark = Column(String(512), nullable=True, comment="备注")
  205. create_by = Column(String(64), nullable=True, comment="创建人id")
  206. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  207. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  208. update_by = Column(String(64), nullable=True, comment="更新人id")
  209. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  210. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
  211. class BizProductionMaterialStockCheckUnusedLine(Base):
  212. __tablename__ = "biz_production_material_stock_check_unused_line"
  213. id = Column(String(64), primary_key=True, comment="主键ID")
  214. check_id = Column(String(64), nullable=False, comment="盘点单ID")
  215. usage_id = Column(String(64), nullable=True, comment="关联领用记录ID")
  216. batch_id = Column(String(64), nullable=True, comment="关联入库批次ID")
  217. material_type = Column(String(32), nullable=True, comment="物料类型")
  218. material_code = Column(String(64), nullable=True, comment="物料编码")
  219. material_name = Column(String(200), nullable=False, comment="物料名称")
  220. spec_model = Column(String(200), nullable=True, comment="规格型号")
  221. unit = Column(String(32), nullable=True, comment="单位")
  222. stock_in_no = Column(String(64), nullable=True, comment="入库编号")
  223. stock_in_date = Column(Date, nullable=True, comment="入库日期")
  224. expire_date = Column(Date, nullable=True, comment="过期日期")
  225. catalog_no = Column(String(128), nullable=True, comment="货号")
  226. batch_no = Column(String(128), nullable=True, comment="批号")
  227. manufacturer = Column(String(200), nullable=True, comment="厂家")
  228. unit_price = Column(Numeric(18, 2), nullable=True, comment="单价快照(元)")
  229. holder = Column(String(64), nullable=True, comment="持有人/领用人")
  230. unused_qty = Column(Numeric(18, 4), nullable=False, comment="未用完数量")
  231. tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
  232. order_num = Column(Integer, nullable=True, comment="排序号")
  233. remark = Column(String(512), nullable=True, comment="备注")
  234. create_by = Column(String(64), nullable=True, comment="创建人id")
  235. create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
  236. create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
  237. update_by = Column(String(64), nullable=True, comment="更新人id")
  238. update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
  239. del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")