feat: 更新煤粉热值触发计算的bug
This commit is contained in:
parent
e81cfbe10d
commit
5093eb7b29
|
@ -14,6 +14,7 @@ from apps.mtm.models import Mgroup, TeamMember, Shift, Material
|
|||
from apps.mtm.serializers import MaterialSimpleSerializer
|
||||
from django.db import transaction
|
||||
from django.utils import timezone
|
||||
from django.core.cache import cache
|
||||
|
||||
|
||||
class OtherLogSerializer(CustomModelSerializer):
|
||||
|
@ -114,8 +115,16 @@ class SfLogSerializer(CustomModelSerializer):
|
|||
new_pcoal_heat = instance.pcoal_heat
|
||||
new_team = instance.team
|
||||
mgroup: Mgroup = instance.mgroup
|
||||
|
||||
# 更新煤粉热值触发计算
|
||||
if new_pcoal_heat: # 更新一下缓存
|
||||
year_s, month_s, day_s = instance.get_ymd
|
||||
cache.set(f'pgoal_val_{year_s}_{month_s}_{day_s}', new_pcoal_heat)
|
||||
if new_pcoal_heat != old_pcoal_heat and mgroup.need_enm:
|
||||
cal_enstat_when_pcoal_heat_change.delay(instance.id)
|
||||
year_s, month_s, day_s = instance.get_ymd
|
||||
cal_enstat_when_pcoal_heat_change.delay(year_s, month_s, day_s)
|
||||
|
||||
# 更新班组触发计算
|
||||
if new_team != old_team:
|
||||
default_state = 'pending'
|
||||
if timezone.now() > instance.end_time:
|
||||
|
|
|
@ -63,20 +63,20 @@ def get_pcoal_heat(year_s: int, month_s: int, day_s: int):
|
|||
只有回转窑需要录入煤粉热值
|
||||
"""
|
||||
key = f'pgoal_val_{year_s}_{month_s}_{day_s}'
|
||||
pcoal_heat = cache.get(key, None)
|
||||
if pcoal_heat is not None:
|
||||
pcoal_heat = cache.get(key)
|
||||
if pcoal_heat:
|
||||
return pcoal_heat
|
||||
else:
|
||||
try:
|
||||
qs = SfLog.objects.get(work_date__year=year_s, work_date__month=month_s, work_date__day=day_s,
|
||||
mgroup__name='回转窑', shift__name__in=['白班', '早班']) # hardcode
|
||||
if qs.pcoal_heat is None:
|
||||
qs.pcoal_heat = 0
|
||||
qs.save()
|
||||
qs.pcoal_heat = 6000
|
||||
qs.save(update_fields=['pcoal_heat'])
|
||||
cache.set(f'pgoal_val_{year_s}_{month_s}_{day_s}', qs.pcoal_heat)
|
||||
return qs.pcoal_heat
|
||||
except Exception:
|
||||
return 0
|
||||
return 6000
|
||||
|
||||
|
||||
def do_out(mio: MIO):
|
||||
|
|
|
@ -2,10 +2,6 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
from apps.utils.tasks import CustomTask
|
||||
from celery import shared_task
|
||||
from apps.utils.sql import DbConnection
|
||||
from server.settings import get_sysconfig
|
||||
from django.core.cache import cache
|
||||
from apps.wpm.models import SfLog
|
||||
from apps.mtm.models import Mgroup
|
||||
import datetime
|
||||
from django.db.models import Sum
|
||||
|
@ -13,6 +9,7 @@ from apps.wpm.services import make_sflogs
|
|||
from apps.wpm.models import SfLog, StLog, SfLogExp
|
||||
from django.utils import timezone
|
||||
from django.db.models import F
|
||||
from apps.wpm.services import get_pcoal_heat
|
||||
|
||||
|
||||
@shared_task(base=CustomTask)
|
||||
|
@ -110,13 +107,11 @@ def cal_exp_duration_sec(stlogId: str='', all=False):
|
|||
|
||||
|
||||
@shared_task(base=CustomTask)
|
||||
def cal_enstat_when_pcoal_heat_change(sflogId):
|
||||
def cal_enstat_when_pcoal_heat_change(year_s, month_s, day_s):
|
||||
from apps.enm.models import EnStat
|
||||
from apps.enm.tasks import cal_enstat_pcoal_change, cal_enstat2
|
||||
sflog = SfLog.objects.get(id=sflogId)
|
||||
|
||||
pcoal_heat = sflog.pcoal_heat
|
||||
year_s, month_s, day_s = sflog.get_ymd
|
||||
pcoal_heat = get_pcoal_heat(year_s, month_s, day_s)
|
||||
# 只会影响到回转窑及水泥磨数据
|
||||
enstats = EnStat.objects.filter(mgroup__name='回转窑', year_s=year_s,
|
||||
month_s=month_s, day_s=day_s, type__in=['hour_s', 'sflog', 'day_s'])
|
||||
|
|
Loading…
Reference in New Issue