fix: enm以team做统计不是shift

This commit is contained in:
caoqianming 2023-07-25 11:13:54 +08:00
parent 6e98ec57ee
commit e15cc2f9ce
4 changed files with 46 additions and 10 deletions

View File

@ -38,6 +38,7 @@ class EnStatFilter(filters.FilterSet):
"mgroup__belong_dept": ["exact"], "mgroup__belong_dept": ["exact"],
"type": ["exact"], "type": ["exact"],
"sflog": ["exact"], "sflog": ["exact"],
"team": ["exact"],
"day_s": ["exact"], "day_s": ["exact"],
"month_s": ["exact"], "month_s": ["exact"],
"year_s": ["exact"], "year_s": ["exact"],

View File

@ -0,0 +1,34 @@
# Generated by Django 3.2.12 on 2023-07-25 03:12
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('mtm', '0005_auto_20230706_1032'),
('enm', '0011_auto_20230718_1357'),
]
operations = [
migrations.RemoveField(
model_name='enstat',
name='shift',
),
migrations.AddField(
model_name='enstat',
name='qua_data',
field=models.JSONField(blank=True, default=list, verbose_name='质检数据'),
),
migrations.AddField(
model_name='enstat',
name='team',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='mtm.team', verbose_name='关联班组'),
),
migrations.AlterField(
model_name='enstat',
name='type',
field=models.CharField(default='hour', help_text='year_s/month_s/month_st/day_s/sflog/hour_s', max_length=50, verbose_name='统计维度'),
),
]

View File

@ -1,7 +1,7 @@
from django.db import models from django.db import models
from apps.utils.models import BaseModel, CommonBModel, CommonADModel from apps.utils.models import BaseModel, CommonBModel, CommonADModel
from apps.wpm.models import SfLog from apps.wpm.models import SfLog
from apps.mtm.models import Material, Mgroup, Shift from apps.mtm.models import Material, Mgroup, Team
class Mpoint(CommonBModel): class Mpoint(CommonBModel):
@ -54,9 +54,9 @@ class EnStat(BaseModel):
""" """
能源数据统计表 能源数据统计表
""" """
type = models.CharField('统计维度', max_length=50, default='hour', help_text='year_s/month_s/month_sf/day_s/sflog/hour_s') type = models.CharField('统计维度', max_length=50, default='hour', help_text='year_s/month_s/month_st/day_s/sflog/hour_s')
sflog = models.ForeignKey(SfLog, verbose_name='关联值班记录', on_delete=models.CASCADE, null=True, blank=True) sflog = models.ForeignKey(SfLog, verbose_name='关联值班记录', on_delete=models.CASCADE, null=True, blank=True)
shift = models.ForeignKey(Shift, verbose_name='关联班组', on_delete=models.CASCADE, null=True, blank=True) team = models.ForeignKey(Team, verbose_name='关联班组', on_delete=models.CASCADE, null=True, blank=True)
mgroup = models.ForeignKey(Mgroup, verbose_name='关联工段', on_delete=models.CASCADE) mgroup = models.ForeignKey(Mgroup, verbose_name='关联工段', on_delete=models.CASCADE)
year = models.PositiveSmallIntegerField('', null=True, blank=True) year = models.PositiveSmallIntegerField('', null=True, blank=True)
month = models.PositiveSmallIntegerField('', null=True, blank=True) month = models.PositiveSmallIntegerField('', null=True, blank=True)
@ -69,6 +69,7 @@ class EnStat(BaseModel):
elec_consume = models.FloatField('总电耗', null=True, blank=True, help_text='kw·h') elec_consume = models.FloatField('总电耗', null=True, blank=True, help_text='kw·h')
imaterial_data = models.JSONField('成本物料数据', default=list, blank=True) imaterial_data = models.JSONField('成本物料数据', default=list, blank=True)
other_cost_data = models.JSONField('其他成本数据', default=list, blank=True) other_cost_data = models.JSONField('其他成本数据', default=list, blank=True)
qua_data = models.JSONField('质检数据', default=list, blank=True)
production_cost_unit = models.FloatField('单位产品成本', null=True, blank=True, help_text='y/t') production_cost_unit = models.FloatField('单位产品成本', null=True, blank=True, help_text='y/t')
elec_consume_unit = models.FloatField('单位产品分布电耗', null=True, blank=True, help_text='kw·h/t') elec_consume_unit = models.FloatField('单位产品分布电耗', null=True, blank=True, help_text='kw·h/t')
celec_consume_unit = models.FloatField('单位产品综合电耗', null=True, blank=True, help_text='kw·h/t') celec_consume_unit = models.FloatField('单位产品综合电耗', null=True, blank=True, help_text='kw·h/t')

View File

@ -195,7 +195,7 @@ def cal_mpointstat_manual(mpointId: str, sflogId: str, mgroupId: str, year: int,
compute_enstat('hour_s', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s) compute_enstat('hour_s', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s)
compute_enstat('sflog', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s) compute_enstat('sflog', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s)
compute_enstat('day_s', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s) compute_enstat('day_s', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s)
compute_enstat('month_sf', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s) compute_enstat('month_st', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s)
compute_enstat('month_s', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s) compute_enstat('month_s', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s)
compute_enstat('year_s', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s) compute_enstat('year_s', sflogId, mgroupId, year, month, day, hour, year_s, month_s, day_s)
@ -206,7 +206,7 @@ def compute_enstat(type, sflogId, mgroupId, year, month, day, hour, year_s, mont
""" """
mgroup = Mgroup.objects.get(id=mgroupId) mgroup = Mgroup.objects.get(id=mgroupId)
sflog = SfLog.objects.get(id=sflogId) sflog = SfLog.objects.get(id=sflogId)
shift = sflog.shift team = sflog.team
if type == 'hour_s': if type == 'hour_s':
enstat, _ = EnStat.objects.get_or_create(type="hour_s", mgroup=mgroup, year=year, month=month, day=day, hour=hour, enstat, _ = EnStat.objects.get_or_create(type="hour_s", mgroup=mgroup, year=year, month=month, day=day, hour=hour,
defaults={'type': 'hour_s', 'mgroup': mgroup, 'year_s': year_s, 'month_s': month_s, 'day_s': day_s, defaults={'type': 'hour_s', 'mgroup': mgroup, 'year_s': year_s, 'month_s': month_s, 'day_s': day_s,
@ -218,9 +218,9 @@ def compute_enstat(type, sflogId, mgroupId, year, month, day, hour, year_s, mont
elif type == 'day_s': elif type == 'day_s':
enstat, _ = EnStat.objects.get_or_create(type="day_s", mgroup=mgroup, year_s=year_s, month_s=month_s, day_s=day_s, enstat, _ = EnStat.objects.get_or_create(type="day_s", mgroup=mgroup, year_s=year_s, month_s=month_s, day_s=day_s,
defaults={'type': 'day_s', 'mgroup': mgroup, 'year_s': year_s, 'month_s': month_s, 'day_s': day_s, 'total_production': 0, 'elec_consume': 0}) defaults={'type': 'day_s', 'mgroup': mgroup, 'year_s': year_s, 'month_s': month_s, 'day_s': day_s, 'total_production': 0, 'elec_consume': 0})
elif type == 'month_sf': elif type == 'month_st':
enstat, _ = EnStat.objects.get_or_create(type="month_sf", mgroup=mgroup, shift=shift, year_s=year_s, month_s=month_s, enstat, _ = EnStat.objects.get_or_create(type="month_st", mgroup=mgroup, team=team, year_s=year_s, month_s=month_s,
defaults={'type': 'month_sf', 'mgroup': mgroup, 'year_s': year_s, 'month_s': month_s, 'shift': shift, 'total_production': 0, 'elec_consume': 0}) defaults={'type': 'month_sf', 'mgroup': mgroup, 'year_s': year_s, 'month_s': month_s, 'team': team, 'total_production': 0, 'elec_consume': 0})
elif type == 'month_s': elif type == 'month_s':
enstat, _ = EnStat.objects.get_or_create(type="month_s", mgroup=mgroup, year_s=year_s, month_s=month_s, enstat, _ = EnStat.objects.get_or_create(type="month_s", mgroup=mgroup, year_s=year_s, month_s=month_s,
defaults={'type': 'month_s', 'mgroup': mgroup, 'year_s': year_s, 'month_s': month_s, 'total_production': 0, 'elec_consume': 0}) defaults={'type': 'month_s', 'mgroup': mgroup, 'year_s': year_s, 'month_s': month_s, 'total_production': 0, 'elec_consume': 0})
@ -242,8 +242,8 @@ def compute_enstat(type, sflogId, mgroupId, year, month, day, hour, year_s, mont
mps = MpointStat.objects.filter(type='sflog', sflog=sflog, mpoint__material=material) mps = MpointStat.objects.filter(type='sflog', sflog=sflog, mpoint__material=material)
elif type == 'day_s': elif type == 'day_s':
mps = MpointStat.objects.filter(type='day_s', mgroup=mgroup, year_s=year_s, month_s=month_s, day_s=day_s, mpoint__material=material) mps = MpointStat.objects.filter(type='day_s', mgroup=mgroup, year_s=year_s, month_s=month_s, day_s=day_s, mpoint__material=material)
elif type == 'month_sf': elif type == 'month_st':
mps = MpointStat.objects.filter(type='sflog', mgroup=mgroup, sflog__shift=shift, year_s=year_s, month_s=month_s, mpoint__material=material) mps = MpointStat.objects.filter(type='sflog', mgroup=mgroup, sflog__team=team, year_s=year_s, month_s=month_s, mpoint__material=material)
elif type == 'month_s': elif type == 'month_s':
mps = MpointStat.objects.filter(type='month_s', mgroup=mgroup, year_s=year_s, month_s=month_s, mpoint__material=material) mps = MpointStat.objects.filter(type='month_s', mgroup=mgroup, year_s=year_s, month_s=month_s, mpoint__material=material)
elif type == 'year_s': elif type == 'year_s':