100 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
from django.db import models
 | 
						|
from apps.system.models import CommonAModel, Dictionary, CommonBModel, CommonADModel
 | 
						|
 | 
						|
# Create your models here.
 | 
						|
class Material(CommonAModel):
 | 
						|
    MA_TYPE_BASE = 0
 | 
						|
    MA_TYPE_GOOD = 10
 | 
						|
    MA_TYPE_HALFGOOD = 20
 | 
						|
    MA_TYPE_MAINSO = 30
 | 
						|
    MA_TYPE_HELPSO = 40
 | 
						|
    MA_TYPE_TOOL = 50
 | 
						|
    MA_TYPE_HELPTOOL = 60
 | 
						|
    
 | 
						|
    type_choices=(
 | 
						|
        (MA_TYPE_BASE, '电/水/气'),
 | 
						|
        (MA_TYPE_GOOD, '成品'),
 | 
						|
        (MA_TYPE_HALFGOOD, '半成品'),
 | 
						|
        (MA_TYPE_MAINSO, '主要原料'),
 | 
						|
        (MA_TYPE_HELPSO, '辅助材料'),
 | 
						|
        (MA_TYPE_TOOL, '加工工具'),
 | 
						|
        (MA_TYPE_HELPTOOL, '辅助工装')
 | 
						|
    )
 | 
						|
    name = models.CharField('名称', max_length=50)
 | 
						|
    code = models.CharField('标识', max_length=50, null=True, blank=True)
 | 
						|
    type = models.PositiveSmallIntegerField('物料类型', choices= type_choices, default=1, help_text=str(type_choices))
 | 
						|
    testitems = models.JSONField('检测项目', default=list, blank=True)
 | 
						|
    sort = models.PositiveSmallIntegerField('排序', default=1)
 | 
						|
 | 
						|
    class Meta:
 | 
						|
        verbose_name = '物料表'
 | 
						|
        ordering = ['sort', '-create_time']
 | 
						|
 | 
						|
 | 
						|
class Shift(CommonAModel):
 | 
						|
    """班次
 | 
						|
    """
 | 
						|
    name = models.CharField('名称', max_length=50)
 | 
						|
    start_time_o = models.TimeField('开始时间')
 | 
						|
    end_time_o = models.TimeField('结束时间')
 | 
						|
 | 
						|
    class Meta:
 | 
						|
        verbose_name = '班次'
 | 
						|
 | 
						|
 | 
						|
class Team(CommonBModel):
 | 
						|
    """班组
 | 
						|
    """
 | 
						|
    name = models.CharField('名称', max_length=50)
 | 
						|
    leader = models.ForeignKey('system.user', verbose_name='班长', on_delete=models.CASCADE)
 | 
						|
 | 
						|
 | 
						|
class Mgroup(CommonBModel):
 | 
						|
    """测点集
 | 
						|
    """
 | 
						|
 | 
						|
    name = models.CharField('名称', max_length=50)
 | 
						|
    cate = models.CharField('分类', max_length=50, default='section', help_text='section/other')  # section是工段
 | 
						|
    product = models.ForeignKey(Material, verbose_name='主要产品', on_delete=models.SET_NULL, null=True, blank=True)
 | 
						|
    input_materials = models.JSONField('直接材料', default=list, blank=True, help_text='material的ID列表')
 | 
						|
    test_materials = models.JSONField('检测材料', default=list, blank=True, help_text='material的ID列表')
 | 
						|
    sort = models.PositiveSmallIntegerField('排序', default=1)
 | 
						|
    is_runing = models.BooleanField('是否正常运行', default=True)
 | 
						|
 | 
						|
    class Meta:
 | 
						|
        verbose_name = '测点集'
 | 
						|
        ordering = ['sort', '-create_time']
 | 
						|
 | 
						|
 | 
						|
class Goal(CommonADModel):
 | 
						|
    """目标
 | 
						|
    """
 | 
						|
    mgroup = models.ForeignKey(Mgroup, verbose_name='关联工段', on_delete=models.CASCADE, null=True, blank=True)
 | 
						|
    year = models.PositiveSmallIntegerField('年')
 | 
						|
    goal_cate = models.ForeignKey(Dictionary, verbose_name='目标种类', on_delete=models.CASCADE)
 | 
						|
    goal_val = models.FloatField('全年目标值')
 | 
						|
    goal_val_1 = models.FloatField('1月份目标值')
 | 
						|
    goal_val_2 = models.FloatField('2月份目标值')
 | 
						|
    goal_val_3 = models.FloatField('3月份目标值')
 | 
						|
    goal_val_4 = models.FloatField('4月份目标值')
 | 
						|
    goal_val_5 = models.FloatField('5月份目标值')
 | 
						|
    goal_val_6 = models.FloatField('6月份目标值')
 | 
						|
    goal_val_7 = models.FloatField('7月份目标值')
 | 
						|
    goal_val_8 = models.FloatField('8月份目标值')
 | 
						|
    goal_val_9 = models.FloatField('9月份目标值')
 | 
						|
    goal_val_10 = models.FloatField('10月份目标值')
 | 
						|
    goal_val_11 = models.FloatField('11月份目标值')
 | 
						|
    goal_val_12 = models.FloatField('12月份目标值')
 | 
						|
 | 
						|
    class Meta:
 | 
						|
        unique_together = ("mgroup", "year", "goal_cate")
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class Process(CommonAModel):
 | 
						|
    """
 | 
						|
    工序
 | 
						|
    """
 | 
						|
    name = models.CharField('工序名称', max_length=100)
 | 
						|
    
 |