refector: 生成排班记录
This commit is contained in:
parent
a6167294f7
commit
f620dc0bcb
|
|
@ -2,19 +2,20 @@ from apps.wpm.models import SfLog
|
||||||
from apps.mtm.models import Shift, Mgroup
|
from apps.mtm.models import Shift, Mgroup
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
def make_sflogs(mgroup: Mgroup, shift: Shift, start_date: datetime.date, end_date: datetime.date):
|
def make_sflogs(mgroup: Mgroup, start_date: datetime.date, end_date: datetime.date):
|
||||||
start_time_o = shift.start_time_o
|
for shift in Shift.objects.all():
|
||||||
end_time_o = shift.end_time_o
|
start_time_o = shift.start_time_o
|
||||||
current_date = start_date
|
end_time_o = shift.end_time_o
|
||||||
while current_date <= end_date:
|
current_date = start_date
|
||||||
start_time = datetime.datetime.combine(current_date, start_time_o)
|
while current_date <= end_date:
|
||||||
end_time = datetime.datetime.combine(current_date, end_time_o)
|
start_time = datetime.datetime.combine(current_date, start_time_o)
|
||||||
if start_time > end_time:
|
end_time = datetime.datetime.combine(current_date, end_time_o)
|
||||||
start_time -= datetime.timedelta(days=1)
|
if start_time > end_time:
|
||||||
SfLog.objects.get_or_create(mgroup=mgroup, shift=shift, start_time=start_time, defaults={
|
start_time -= datetime.timedelta(days=1)
|
||||||
"mgroup": mgroup,
|
SfLog.objects.get_or_create(mgroup=mgroup, shift=shift, start_time=start_time, defaults={
|
||||||
"shift": shift,
|
"mgroup": mgroup,
|
||||||
"start_time": start_time,
|
"shift": shift,
|
||||||
"end_time": end_time,
|
"start_time": start_time,
|
||||||
})
|
"end_time": end_time,
|
||||||
current_date = current_date + datetime.timedelta(days=1)
|
})
|
||||||
|
current_date = current_date + datetime.timedelta(days=1)
|
||||||
|
|
@ -6,7 +6,7 @@ from apps.utils.sql import DbConnection
|
||||||
from server.settings import get_sysconfig
|
from server.settings import get_sysconfig
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from apps.wpm.models import SfLog
|
from apps.wpm.models import SfLog
|
||||||
from apps.mtm.models import Mgroup, Shift
|
from apps.mtm.models import Mgroup
|
||||||
import datetime
|
import datetime
|
||||||
from django.db.models import Sum
|
from django.db.models import Sum
|
||||||
from apps.wpm.services import make_sflogs
|
from apps.wpm.services import make_sflogs
|
||||||
|
|
@ -20,7 +20,5 @@ def make_sflogs_simple(days=2):
|
||||||
start_date = datetime.datetime.today()
|
start_date = datetime.datetime.today()
|
||||||
end_date = start_date + datetime.timedelta(days=days)
|
end_date = start_date + datetime.timedelta(days=days)
|
||||||
mgroups = Mgroup.objects.filter(cate='section').all()
|
mgroups = Mgroup.objects.filter(cate='section').all()
|
||||||
shifts = Shift.objects.all()
|
|
||||||
for mgroup in mgroups:
|
for mgroup in mgroups:
|
||||||
for shift in shifts:
|
make_sflogs(mgroup, start_date, end_date)
|
||||||
make_sflogs(mgroup, shift, start_date, end_date)
|
|
||||||
Loading…
Reference in New Issue