33 lines
1.3 KiB
Python
33 lines
1.3 KiB
Python
from apps.wpm.models import SfLog, StLog, StSfLog
|
|
from apps.mtm.models import Shift, Mgroup
|
|
import datetime
|
|
from django.utils.timezone import localtime
|
|
from django.db.models import Sum
|
|
|
|
def make_sflogs(mgroup: Mgroup, start_date: datetime.date, end_date: datetime.date):
|
|
for shift in Shift.objects.all():
|
|
start_time_o = shift.start_time_o
|
|
end_time_o = shift.end_time_o
|
|
current_date = start_date
|
|
while current_date <= end_date:
|
|
start_time = datetime.datetime.combine(current_date, start_time_o)
|
|
end_time = datetime.datetime.combine(current_date, end_time_o)
|
|
if start_time > end_time:
|
|
start_time -= datetime.timedelta(days=1)
|
|
SfLog.objects.get_or_create(mgroup=mgroup, shift=shift, start_time=start_time, defaults={
|
|
"mgroup": mgroup,
|
|
"shift": shift,
|
|
"start_time": start_time,
|
|
"end_time": end_time,
|
|
})
|
|
current_date = current_date + datetime.timedelta(days=1)
|
|
|
|
def get_pcoal_val(year_s: int, month_s: int, day_s: int):
|
|
"""
|
|
获取煤粉热值
|
|
"""
|
|
sflog = SfLog.objects.filter(end_time__year=year_s, end_time__month=month_s, end_time__day=day_s).exclude(pcoal_val=None).first()
|
|
if sflog:
|
|
return sflog.coal_val
|
|
return None
|