This commit is contained in:
caoqianming 2022-11-12 00:17:20 +08:00
commit bb435e3b07
3 changed files with 37 additions and 17 deletions

Binary file not shown.

View File

@ -108,8 +108,8 @@ def drquestions(companyid,path,userid):
else:
cateobj = Questioncat.objects.create(usecomp=Partment.objects.get(partid=companyid),name=cate)
if type == '单选':
if Question.objects.filter(type=1,title=title,right=right,deletemark=1,usecomps = ','+companyid+',').exists():
Question.objects.filter(type=1,title=title,right=right,deletemark=1,usecomps = ','+companyid+',').update(nousecomps='', questioncat=cateobj)
if Question.objects.filter(questioncat=cateobj, type=1,title=title,right=right,deletemark=1,usecomps = ','+companyid+',').exists():
pass
else:
if right in ['A','B','C','D','E','F']:
obj = Question()
@ -128,8 +128,8 @@ def drquestions(companyid,path,userid):
obj.save()
elif type == '多选':
right = list(right)
if Question.objects.filter(type=2,title=title,right=right,deletemark=1,usecomps = ','+companyid+',').exists():
Question.objects.filter(type=2,title=title,right=right,deletemark=1,usecomps = ','+companyid+',').update(nousecomps='', questioncat=cateobj)
if Question.objects.filter(questioncat=cateobj, type=2,title=title,right=right,deletemark=1,usecomps = ','+companyid+',').exists():
pass
else:
if [False for c in right if c not in qlist]:
pass
@ -153,8 +153,8 @@ def drquestions(companyid,path,userid):
right = 'A'
else:
right = 'B'
if Question.objects.filter(type=3,title=title,right=right,deletemark=1,usecomps = ','+companyid+',').exists():
Question.objects.filter(type=3,title=title,right=right,deletemark=1,usecomps = ','+companyid+',').update(nousecomps='', questioncat=cateobj)
if Question.objects.filter(questioncat=cateobj, type=3,title=title,right=right,deletemark=1,usecomps = ','+companyid+',').exists():
pass
else:
obj = Question()
obj.type = 3

View File

@ -24,6 +24,13 @@ def gettime(x=datetime.datetime.now()):
first_day_of_next_month = first_day + datetime.timedelta(days = days_num)
return first_day,first_day_of_next_month
@shared_task
def get_wtoken():
r=requests.get('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx4d75244c1b980b5b&secret=edf7d23a457fb4df5ad47eeb9d4b7a39').text
token=json.loads(r)['access_token']
with open('D:/safesite/safesite/token.txt','w') as f:
f.write(token)
@shared_task
def send_wechatmsgs(postdict,tolist):
with open(dirname + 'token.txt','r',encoding= 'utf-8') as f:
@ -47,8 +54,7 @@ def send_wechatmsg(postdict):
pass
@shared_task
def yjjs(companyid):
first_day,first_day_of_next_month = gettime()
def yjjs(companyid, first_day=gettime()[0], first_day_of_next_month=gettime()[1]):
#隐患算分
a = Trouble.objects.filter(fxsj__range=(first_day, first_day_of_next_month),usecomp__partid=companyid,deletemark=1)
#隐患按时上报率
@ -90,8 +96,7 @@ def yjjs(companyid):
obj.save()
@shared_task
def yjjs_px(companyid):
first_day,first_day_of_next_month = gettime()
def yjjs_px(companyid, first_day=gettime()[0], first_day_of_next_month=gettime()[1]):
#培训算分
a = Train.objects.filter(starttime__range=(first_day, first_day_of_next_month),usecomp__partid=companyid,state=1,deletemark=1) #有效培训
#计算培训效果
@ -121,8 +126,7 @@ def yjjs_px(companyid):
obj.save()
@shared_task
def yjjs_gc(companyid):
first_day,first_day_of_next_month = gettime()
def yjjs_gc(companyid, first_day=gettime()[0], first_day_of_next_month=gettime()[1]):
#观察算分
a = Observe.objects.filter(looktime__range=(first_day, first_day_of_next_month),usecomp__partid=companyid,deletemark=1)
num = a.count()
@ -138,9 +142,8 @@ def yjjs_gc(companyid):
obj.save()
@shared_task
def yjjs_ws(companyid):
def yjjs_ws(companyid, first_day=gettime()[0], first_day_of_next_month=gettime()[1]):
#未遂算分
first_day,first_day_of_next_month = gettime()
a = Miss.objects.filter(misstime__range=(first_day, first_day_of_next_month),usecomp__partid=companyid,deletemark=1) #
score = (a.count())*0.6
year = first_day.year
@ -151,8 +154,7 @@ def yjjs_ws(companyid):
obj.save()
@shared_task
def yjjs_yl(companyid):
first_day,first_day_of_next_month = gettime()
def yjjs_yl(companyid, first_day=gettime()[0], first_day_of_next_month=gettime()[1]):
a = Drill.objects.filter(starttime__range=(first_day, first_day_of_next_month),usecomp__partid=companyid,state=1,deletemark=1) #有效演练
#计算演练效果
participantnum = Drill.objects.filter(drillid__in=a).count()
@ -180,6 +182,23 @@ def yjjs_yl(companyid):
obj.yjz = round(obj.troublevalue + obj.trainvalue + obj.drillvalue,2)
obj.save()
@shared_task
def correct_yjz(year:int, month:int, companyid: int = 0):
# 重新更新某个月的预警值
days_num = calendar.monthrange(year, month)[1]
first_day = datetime.date(year, month, 1)
first_day_of_next_month = first_day + datetime.timedelta(days = days_num)
if companyid == 0:
companys = Partment.objects.filter(iscompany=1)
else:
companys = Partment.objects.filter(partid=companyid)
for i in companys:
yjjs(i.id, first_day, first_day_of_next_month)
yjjs_px(i.id, first_day, first_day_of_next_month)
yjjs_gc(i.id, first_day, first_day_of_next_month)
yjjs_ws(i.id, first_day, first_day_of_next_month)
yjjs_yl(i.id, first_day, first_day_of_next_month)
@shared_task
def ycjs():
#print('正在执行预测计算。。。')
@ -188,7 +207,7 @@ def ycjs():
nowmonth = datetime.datetime.now().month
objs = Yjyc.objects.exclude(yjz=0,year=nowyear,month=nowmonth)
for x in companys:
obj = objs.filter(usecomp=x).order_by('-yjycid')
obj = objs.filter(usecomp=x).order_by('-yjycid')[-6:] # 只取半年内的
objv = obj.values('yjycid','yjz')
#print(objv)
if len(obj)>1:
@ -215,6 +234,7 @@ def ycjs():
objnew.b = ("%.2f" % b)
objnew.save()
#print('执行完毕!')
@shared_task
def risktask():
nowtime = datetime.datetime.now()