diff --git a/safesite/views.py b/safesite/views.py index 6327a53c..e59a1cd2 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -8066,6 +8066,18 @@ def apirisk(req): a = a.values('id', 'step', 'hazard', 'result', 'level', 'riskl', 'riske', 'riskc', 'riskd', 'measure1', 'measure2', 'measure3', 'measure4', 'measure5', 'riskact__name', 'riskact__area__name', 'riskact__area__id', 'riskact__place', 'content', 'createtime') + if req.GET.get('riskacttask', None): + riskids = [] + taskdo_dict = {} + for i in a: + riskids.append(i.id) + checks = Riskcheck2.objects.filter(riskacttask__id=req.GET.get('riskacttask')).values('risk__id', 'trouble__troubleid', 'trouble__yhnum') + for m in checks: + taskdo_dict[str(m.risk__id)] = m + for n in a: + if str(n.id) in taskdo_dict: + n.trouble = taskdo_dict[str(n.id)].trouble__troubleid + n.yhnum = taskdo_dict[str(n.id)].trouble__yhnum return HttpResponse(transjson(total, a), content_type="application/json") elif a == 'listall2': # 按风险点聚合 a = Risk.objects.filter(usecomp__partid=companyid, @@ -8464,16 +8476,18 @@ def apiriskcheck2(req): obj.taskdo = nowtime obj.note = data['note'] if 'note' in data else None obj.save() + has_trouble = False for i in checkrisks: risk = Risk.objects.get(id=i['id']) if 'trouble' in i: - Riskcheck2.objects.create(risk=risk, riskacttask=obj, trouble=Trouble.objects.get( - troubleid=i['trouble']), dotime=nowtime) - obj.state = 0 - obj.save() + trouble = Trouble.objects.get(troubleid=i['trouble']) + Riskcheck2.objects.get_or_create(risk=risk, riskacttask=obj, defaults={'risk': risk, 'riskacttask': obj, 'trouble': trouble, 'dotime': nowtime}) + has_trouble = True else: - Riskcheck2.objects.create( - risk=risk, riskacttask=obj, dotime=nowtime) + Riskcheck2.objects.get_or_create(risk=risk, riskacttask=obj, defaults={'risk': risk, 'riskacttask': obj, 'dotime': nowtime}) + if has_trouble: + obj.state = 0 + obj.save() return JsonResponse({'code': 1}) elif a == 'listall': objs = Riskcheck2.objects.filter(risk__usecomp__partid=companyid) @@ -8484,6 +8498,13 @@ def apiriskcheck2(req): objs = objs.order_by('trouble')[startnum:endnum].values('id','risk', 'risk__step', 'risk__level','trouble', 'trouble__yhnum', 'risk__hazard', 'risk__result', 'risk__measure1', 'risk__measure2', 'risk__measure3', 'risk__measure4', 'risk__measure5', 'riskacttask', 'riskacttask__taskdo') return HttpResponse(transjson(total, objs), content_type="application/json") + elif a == 'check': # 发现隐患2 + data = json.loads(req.body.decode('utf-8')) + trouble = Trouble.objects.get(troubleid=data['trouble']) + risk = Risk.objects.get(id=data['risk']) + riskacttask = RiskActTask.objects.get(id=data['riskacttask']) + Riskcheck2.objects.get_or_create(risk=risk, riskacttask=riskacttask, defaults={'risk':risk, 'riskacttask': riskacttask, 'trouble': trouble, 'now': datetime.now()}) + return JsonResponse({'code': 1}) @apicheck_login def apiriskcheck(req):