models.py 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from django.db import models
  2. from bound.models import BoundBatchModel
  3. # Create your models here.
  4. # 主表:托盘数据
  5. class ContainerListModel(models.Model):
  6. CONTAINER_STATUS = (
  7. (0, '空置'),
  8. (1, '入库中'),
  9. (2, '在库'),
  10. (3, '出库中'),
  11. (4, '已出库')
  12. )
  13. container_code = models.IntegerField( verbose_name='托盘编号')
  14. current_location = models.CharField(max_length=50, verbose_name='当前库位', default='N/A')
  15. status = models.IntegerField(choices=CONTAINER_STATUS, default=0, verbose_name='托盘状态')
  16. last_operation = models.DateTimeField(auto_now=True, verbose_name='最后操作时间')
  17. class Meta:
  18. db_table = 'container_list'
  19. verbose_name = 'ContainerList'
  20. verbose_name_plural = "ContainerList"
  21. ordering = ['-container_code']
  22. # 明细表:托盘详细数据记录当前组盘的 批次 数量 使用托盘码和状态来获取、托盘上的物料信息,
  23. class ContainerDetailModel(models.Model):
  24. month = models.IntegerField(verbose_name='月份')
  25. container = models.ForeignKey(ContainerListModel, on_delete=models.CASCADE, related_name='details')
  26. batch = models.ForeignKey(BoundBatchModel, on_delete=models.CASCADE, verbose_name='批次')
  27. goods_code = models.CharField(max_length=50, verbose_name='货品编码')
  28. goods_desc = models.CharField(max_length=100, verbose_name='货品描述')
  29. goods_qty = models.IntegerField(verbose_name='数量')
  30. goods_weight = models.DecimalField(max_digits=10, decimal_places=3, verbose_name='重量')
  31. status = models.IntegerField(default=1, verbose_name='状态') # 0: 未使用 1: 使用中 2: 已出库
  32. creater = models.CharField(max_length=50, verbose_name='创建人')
  33. create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
  34. update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
  35. class Meta:
  36. db_table = 'container_detail'
  37. verbose_name = 'ContainerDetail'
  38. verbose_name_plural = "ContainerDetail"
  39. ordering = ['-id']
  40. # 明细表:操作记录 记录每次出入库的记录,使用goods来进行盘点,使用托盘码来进行托盘的操作记录
  41. class ContainerOperationModel(models.Model):
  42. OPERATION_TYPES = (
  43. ('inbound', '入库'),
  44. ('outbound', '出库'),
  45. )
  46. month = models.IntegerField(verbose_name='月份')
  47. container = models.ForeignKey(ContainerListModel, on_delete=models.CASCADE, related_name='operations')
  48. operation_type = models.CharField(max_length=20, choices=OPERATION_TYPES, verbose_name='操作类型')
  49. batch = models.ForeignKey(BoundBatchModel, on_delete=models.CASCADE, verbose_name='批次')
  50. goods_code = models.CharField(max_length=50, verbose_name='货品编码')
  51. goods_desc = models.CharField(max_length=100, verbose_name='货品描述')
  52. goods_qty = models.IntegerField(verbose_name='数量')
  53. goods_weight = models.DecimalField(max_digits=10, decimal_places=3, verbose_name='重量')
  54. operator = models.CharField(max_length=50, verbose_name='操作人')
  55. timestamp = models.DateTimeField(auto_now_add=True, verbose_name='操作时间')
  56. from_location = models.CharField(max_length=50, null=True, verbose_name='原库位')
  57. to_location = models.CharField(max_length=50, null=True, verbose_name='目标库位')
  58. memo = models.TextField(null=True, verbose_name='备注')
  59. class Meta:
  60. db_table = 'container_operation'
  61. verbose_name = 'ContainerOperation'
  62. verbose_name_plural = "ContainerOperation"
  63. ordering = ['-timestamp']