fix: get_sflog 取的时候与happen_time对比错误

This commit is contained in:
caoqianming 2024-04-30 12:59:38 +08:00
parent 90ed2927e6
commit dddab37c63
2 changed files with 5 additions and 5 deletions

View File

@ -105,9 +105,9 @@ def cal_mpointstat_hour(mpointId: str, year: int, month: int, day: int, hour: in
"""
mpoint = Mpoint.objects.get(id=mpointId)
mytz = tz.gettz(settings.TIME_ZONE)
dt = datetime.datetime(year=year, month=month, day=day, hour=hour, minute=0, second=0, tzinfo=mytz)
dt_hour_p= dt - datetime.timedelta(hours=1)
dt_hour_n= dt + datetime.timedelta(hours=1)
dt = datetime.datetime(year=year, month=month, day=day, hour=hour, minute=0, second=0, tzinfo=mytz) # 整点时间
dt_hour_p= dt - datetime.timedelta(hours=1) # 上个整点
dt_hour_n= dt + datetime.timedelta(hours=1) # 下个整点
if mpoint.material and mpoint.val_type in ['float', 'int']: # 如果计量的是物料 # 累计量 有的会清零,需要额外处理(还未做)
params = {"mpoint": mpoint, "type": "hour"}
params["year"], params["month"], params["day"], params["hour"] = year, month, day, hour

View File

@ -18,12 +18,12 @@ from .models import SfLog, SfLogExp, WMaterial, Mlog, Mlogb, Handover
def get_sflog(mgroup: Mgroup, happen_time: datetime):
sflog = SfLog.objects.filter(
start_time__lt=happen_time, end_time__gte=happen_time, mgroup=mgroup).first()
start_time__lte=happen_time, end_time__gt=happen_time, mgroup=mgroup).order_by('-start_time').first()
if sflog is None: # 需要创建值班记录
make_sflogs(mgroup=mgroup, start_date=(
happen_time-datetime.timedelta(days=1)).date(), end_date=happen_time.date())
sflog = SfLog.objects.filter(
start_time__lt=happen_time, end_time__gte=happen_time, mgroup=mgroup).order_by('-start_time').first()
start_time__lte=happen_time, end_time__gt=happen_time, mgroup=mgroup).order_by('-start_time').first()
return sflog