from django.db import models from django.db.models.base import Model import django.utils.timezone as timezone from django.db.models.query import QuerySet from apps.pm.models import SubProductionPlan from apps.system.models import CommonAModel, CommonBModel, Organization, User, Dict, File from utils.model import SoftModel, BaseModel from simple_history.models import HistoricalRecords from apps.mtm.models import Material, Step, RecordForm class WMaterial(BaseModel): """ 车间生产物料 """ subproduction_plan = models.ForeignKey(SubProductionPlan, verbose_name='关联子计划', on_delete=models.CASCADE) material = models.ForeignKey(Material, verbose_name='关联物料', on_delete=models.CASCADE) batch = models.CharField('批次号', max_length=100, null=True, blank=True) count = models.IntegerField('当前数量', default=0) class WProduct(CommonAModel): """ 半成品/成品 """ act_state_choices=( (0, '待执行'), (1, '进行中'), (2, '已完成') ) number = models.CharField('物品编号', unique=True, null=True, blank=True, max_length=50) m_state = models.ForeignKey(Material, verbose_name='所属物料状态', on_delete=models.CASCADE) p_state = models.ForeignKey(Step, verbose_name='所在步骤', on_delete=models.CASCADE, null=True, blank=True) act_state = models.IntegerField('进行状态', default=0) parent = models.ForeignKey('self', verbose_name='上一级', on_delete=models.CASCADE, db_constraint=False) remark = models.CharField('备注', max_length=200, null=True, blank=True) subproduction_plan = models.ForeignKey(SubProductionPlan, verbose_name='关联子生产计划', on_delete=models.CASCADE) class WProductForm(CommonAModel): """ 记录表格 """ record_form = models.ForeignKey(RecordForm, verbose_name='所用表格', on_delete=models.CASCADE) data = models.JSONField('记录的数据', default=dict, blank=True) class WProductFlow(BaseModel): """ 产品流转日志 """ wproduct = models.ForeignKey(WProduct, verbose_name='产品', on_delete=models.CASCADE)