diff --git a/safesite/models.py b/safesite/models.py index 698b156c..88672c00 100644 --- a/safesite/models.py +++ b/safesite/models.py @@ -1383,4 +1383,37 @@ class Checkjob(models.Model): pmpeople=models.ManyToManyField(User,related_name='bcfr')#被处罚人员 content=models.TextField(null=True)#处罚内容 yhtp = models.TextField(null=True, blank=True) - zghtp = models.TextField(null=True, blank=True) \ No newline at end of file + zghtp = models.TextField(null=True, blank=True) + + +class WorkList(models.Model): + """ + 安全清单 + """ + user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="责任人") + usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE, verbose_name="所属公司") + name = models.CharField('清单名称') + createtime = models.DateTimeField(default=timezone.now, verbose_name="创建时间") + updatetime = models.DateTimeField(auto_now=True) + + +class WorkItem(models.Model): + """ + 清单项目 + """ + worklist = models.ForeignKey(WorkList, on_delete=models.CASCADE, verbose_name="所属清单") + name = models.TextField('清单项目名称') + type = models.IntegerField(default=1) # 默认是责任,2是指标 ,需反馈 + createtime = models.DateTimeField(default=timezone.now, verbose_name="创建时间") + updatetime = models.DateTimeField(auto_now=True) + +class WorkFeedBack(models.Model): + """ + 清单反馈记录 + """ + user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name="反馈人") + workitem = models.ForeignKey(WorkItem, on_delete=models.SET_NULL, null=True, blank=True) + isdone = models.IntegerField(default=1) # 默认是完成,0是未完成 + content = models.TextField('反馈内容') + createtime = models.DateTimeField(default=timezone.now, verbose_name="创建时间") + updatetime = models.DateTimeField(auto_now=True) diff --git a/safesite/views.py b/safesite/views.py index 76813f5d..00c3b80c 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -8933,4 +8933,40 @@ def apioffence(req): obj = Offence.objects.get(id=data['id']) obj.delete() return JsonResponse({"code":1}) - \ No newline at end of file + + +@apicheck_login +def apiworklist(req): + a = req.GET.get('a') + userid = req.session['userid'] + companyid = getcompany(userid) + if a == 'listall': + objs = WorkList.objects.filter(usecomp__partid=companyid) + if req.GET.get('search', None): + objs = objs.filter(Q(user__name__contains=req.GET.get('search'))|Q(name__contains=req.GET.get('search'))) + total = objs.count() + startnum, endnum = fenye(req) + objs = objs.order_by('-createtime')[startnum:endnum].values('id', 'name', 'user__name', 'createtime', 'updatetime') + return HttpResponse(transjson(total, objs), content_type="application/json") + elif a == 'add': + data = json.loads(req.body.decode('utf-8')) + user = User.objects.get(userid=userid) + data['user'] = user + data['usecomp'] = user.usecomp + instance = WorkList(**data) + instance.save() + return JsonResponse({"code":1}) + elif a == 'detail': + id = req.GET.get('id') + obj = Offence.objects.filter(id=id) + res = obj.values('id', 'type', 'dept', 'area', 'parter', 'reporter', 'reporter__name', 'createtime', 'area__name', 'happentime', 'description', 'imgs', 'post', 'place')[0] + if res['imgs']: + res['imgs'] = res['imgs'].split('?') + return HttpResponse(json.dumps(res, cls=MyEncoder), content_type="application/json") + elif a == 'del': + data = json.loads(req.body.decode('utf-8')) + obj = Offence.objects.get(id=data['id']) + obj.delete() + return JsonResponse({"code":1}) + + \ No newline at end of file