123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- from django.db import models
- from bound.models import BoundBatchModel
- # Create your models here.
- # 主表:托盘数据
- class ContainerListModel(models.Model):
- CONTAINER_STATUS = (
- (0, '空置'),
- (1, '入库中'),
- (2, '在库'),
- (3, '出库中'),
- (4, '已出库')
- )
-
- container_code = models.IntegerField( verbose_name='托盘编号')
- current_location = models.CharField(max_length=50, verbose_name='当前库位', default='N/A')
- target_location = models.CharField(max_length=50, verbose_name='目标库位', default='N/A')
- status = models.IntegerField(choices=CONTAINER_STATUS, default=0, verbose_name='托盘状态')
- last_operation = models.DateTimeField(auto_now=True, verbose_name='最后操作时间')
- class Meta:
- db_table = 'container_list'
- verbose_name = 'ContainerList'
- verbose_name_plural = "ContainerList"
- ordering = ['-container_code']
- # 明细表:托盘详细数据记录当前组盘的 批次 数量 使用托盘码和状态来获取、托盘上的物料信息,
- class ContainerDetailModel(models.Model):
- BATCH_STATUS=(
- (0, '空盘'),
- (1, '组盘'),
- (2, '已出库')
- )
- month = models.IntegerField(verbose_name='月份')
- container = models.ForeignKey(ContainerListModel, on_delete=models.CASCADE, related_name='details')
- batch = models.ForeignKey(BoundBatchModel, on_delete=models.CASCADE, verbose_name='批次')
- goods_code = models.CharField(max_length=50, verbose_name='货品编码')
- goods_desc = models.CharField(max_length=100, verbose_name='货品描述')
- goods_qty = models.IntegerField(verbose_name='数量')
- goods_weight = models.DecimalField(max_digits=10, decimal_places=3, verbose_name='重量')
- status = models.IntegerField(choices=BATCH_STATUS,default=0, verbose_name='状态') # 0: 未使用 1: 使用中 2: 已出库
- creater = models.CharField(max_length=50, verbose_name='创建人')
- create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
- update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
- is_delete = models.BooleanField(default=False, verbose_name='是否删除')
- class Meta:
- db_table = 'container_detail'
- verbose_name = 'ContainerDetail'
- verbose_name_plural = "ContainerDetail"
- ordering = ['-id']
- # 明细表:操作记录 记录每次出入库的记录,使用goods来进行盘点,使用托盘码来进行托盘的操作记录
- class ContainerOperationModel(models.Model):
- OPERATION_TYPES = (
- ('container','组盘'),
- ('inbound', '入库'),
- ('outbound', '出库'),
- ('adjust', '调整'),
- )
- month = models.IntegerField(verbose_name='月份')
- container = models.ForeignKey(ContainerListModel, on_delete=models.CASCADE, related_name='operations')
- operation_type = models.CharField(max_length=20, choices=OPERATION_TYPES, verbose_name='操作类型')
- batch = models.ForeignKey(BoundBatchModel, on_delete=models.CASCADE, verbose_name='批次')
- goods_code = models.CharField(max_length=50, verbose_name='货品编码')
- goods_desc = models.CharField(max_length=100, verbose_name='货品描述')
- goods_qty = models.IntegerField(verbose_name='数量')
- goods_weight = models.DecimalField(max_digits=10, decimal_places=3, verbose_name='重量')
- operator = models.CharField(max_length=50, verbose_name='操作人')
- timestamp = models.DateTimeField(auto_now_add=True, verbose_name='操作时间')
- from_location = models.CharField(max_length=50, null=True, verbose_name='原库位')
- to_location = models.CharField(max_length=50, null=True, verbose_name='目标库位')
- memo = models.TextField(null=True, verbose_name='备注')
- class Meta:
- db_table = 'container_operation'
- verbose_name = 'ContainerOperation'
- verbose_name_plural = "ContainerOperation"
- ordering = ['-timestamp']
- class ContainerWCSModel(models.Model):
- taskid = models.CharField(max_length=50, verbose_name='任务ID')
- month = models.IntegerField(verbose_name='月份')
- tasktype = models.CharField(max_length=50, verbose_name='任务类型')
- container = models.CharField(max_length=50, verbose_name='托盘号')
- current_location = models.CharField(max_length=50, verbose_name='当前库位')
- target_location = models.CharField(max_length=50, verbose_name='目标库位')
- message = models.TextField(verbose_name='消息')
- status = models.IntegerField(verbose_name='状态')
- create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
- is_delete = models.BooleanField(default=False, verbose_name='是否删除')
- class Meta:
- db_table = 'container_wcs'
- verbose_name = 'ContainerWCS'
- verbose_name_plural = "ContainerWCS"
- ordering = ['-create_time']
-
- def to_dict(self):
- return {
- 'container': self.container,
- 'current_location': self.current_location,
- 'month' : self.month,
- 'target_location': self.target_location,
- 'tasktype': self.tasktype,
- 'taskid': self.taskid,
- 'message': self.message,
- 'container': self.container,
- 'status': self.status
- }
|