from django.db import models from apps.utils.models import CommonADModel from apps.mtm.models import Material, Mgroup # Create your models here. class Utask(CommonADModel): """ 生产大任务 """ UTASK_CREATED = 10 UTASK_ASSGINED = 20 UTASK_WORKING = 30 UTASK_DONE = 40 UTASK_STATES = ( (UTASK_CREATED, '创建中'), (UTASK_ASSGINED, '已下达'), (UTASK_WORKING, '生产中'), (UTASK_DONE, '已提交') ) state = models.PositiveIntegerField( '状态', choices=UTASK_STATES, default=UTASK_CREATED, help_text=str(UTASK_STATES)) number = models.CharField('编号', max_length=50, unique=True) material = models.ForeignKey( Material, verbose_name='产品', on_delete=models.CASCADE) count = models.PositiveIntegerField('任务数', default=1) count_real = models.PositiveIntegerField('实际生产数', default=0) count_ok = models.PositiveIntegerField('合格数', default=0) count_notok = models.PositiveIntegerField('不合格数', default=0) start_date = models.DateField('计划开工日期') end_date = models.DateField('计划完工日期') class Mtask(CommonADModel): """ 生产任务 """ MTASK_CREATED = 10 MTASK_ASSGINED = 20 MTASK_WORKING = 30 MTASK_DONE = 40 MTASK_STATES = ( (MTASK_CREATED, '创建中'), (MTASK_ASSGINED, '已下达'), (MTASK_WORKING, '生产中'), (MTASK_DONE, '已提交') ) state = models.PositiveIntegerField( '状态', choices=MTASK_STATES, default=MTASK_CREATED, help_text=str(MTASK_STATES)) number = models.CharField('编号', max_length=50, unique=True) mgroup = models.ForeignKey( Mgroup, verbose_name='工段', on_delete=models.CASCADE) material_in = models.ForeignKey( Material, verbose_name='领用物', on_delete=models.CASCADE, related_name='mtask_material_in', null=True, blank=True) material_out = models.ForeignKey( Material, verbose_name='产物', on_delete=models.CASCADE, related_name='mtask_material_out') count = models.PositiveIntegerField('任务数', default=1) count_real = models.PositiveIntegerField('实际生产数', default=0) count_ok = models.PositiveIntegerField('合格数', default=0) count_notok = models.PositiveIntegerField('不合格数', default=0) start_date = models.DateField('计划开工日期') end_date = models.DateField('计划完工日期') utask = models.ForeignKey( Utask, verbose_name='关联大任务', on_delete=models.CASCADE, null=True, blank=True)