| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #coding:utf-8
- import re,time
- import datetime
- import sys,os
- import django
- reload(sys)
- sys.setdefaultencoding('utf8')
- sys.path.append('/mnt/bzyifeng/src')
- os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
- django.setup()
- import common.models as cm
- def calc_cutoff_time(cycle):
- """计算任务截止时间
- """
- data = []
- today = datetime.datetime.now().date()
- today = datetime.datetime.strptime(datetime.datetime.strftime(today,"%Y-%m-%d %H:%M:%S"),"%Y-%m-%d %H:%M:%S")
- times = re.search(r"(\d+).*",cycle.split("/")[0]).groups()[0]
- day = re.search(r"(\d+)(.*)",cycle.split("/")[1]).groups()[0]
- day_type = re.search(r"(\d+)(.*)",cycle.split("/")[1]).groups()[1]
- if day_type == u"日":
- day = int(day)
- if day_type == u"周":
- day = int(day)*7
- if day_type == u"月":
- day = int(day)*30
- tomorrow = today + datetime.timedelta(days=day)
- if times and int(times)>0:
- step = 24*day/int(times)
- for i in range(0,int(times)):
- cutoff_time = today + datetime.timedelta(seconds=60*60*(i+1)*step)
- if cutoff_time >= tomorrow:
- cutoff_time = cutoff_time + datetime.timedelta(seconds=-1)
- data.append(cutoff_time)
- return data
- def gen_monittasks():
- """
- """
- mtset = cm.MonitTask.objects.all()
- for mt in mtset:
- name = mt.name
- riskpoint_id = mt.riskpoint_id
- department_id = mt.department_id
- enterprise_id = mt.enterprise_id
- risk_level = mt.risk_level
- riskpoint_item = mt.riskpoint_item
- riskpoint_item0 = mt.riskpoint_item0
- task_id = mt.id
- cycle = mt.cycle
- cutoff_times = calc_cutoff_time(cycle)
- for cutoff_time in cutoff_times:
- print "开始生产巡检任务:{}({})".format(name,cutoff_time)
- obj,flag = cm.MonitJob.objects.get_or_create(
- **{"task_id":task_id,"name":name,"cutoff_time":cutoff_time,
- "department_id":department_id,"enterprise_id":enterprise_id,
- "risk_level":risk_level,"riskpoint_item":riskpoint_item,"riskpoint_item0":riskpoint_item0})
- if __name__ == "__main__":
- gen_monittasks()
|