feat: 增加统计字段
This commit is contained in:
parent
46e9607942
commit
1d31f80c92
|
|
@ -0,0 +1,28 @@
|
||||||
|
# Generated by Django 3.2.12 on 2023-05-31 08:29
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('supervision', '0046_auto_20230529_1206'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='task2do',
|
||||||
|
name='num_acc',
|
||||||
|
field=models.PositiveSmallIntegerField(blank=True, null=True, verbose_name='重大质量事故'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='task2do',
|
||||||
|
name='num_complaint_10',
|
||||||
|
field=models.PositiveSmallIntegerField(blank=True, null=True, verbose_name='满意客户投诉数'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='task2do',
|
||||||
|
name='num_pt_10',
|
||||||
|
field=models.PositiveSmallIntegerField(blank=True, null=True, verbose_name='满意能力验证数'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -168,15 +168,18 @@ class Task2Do(CommonBDModel):
|
||||||
"""
|
"""
|
||||||
task2 = models.ForeignKey(Task2, verbose_name='关联任务', on_delete=models.CASCADE, related_name='task2dept_task2')
|
task2 = models.ForeignKey(Task2, verbose_name='关联任务', on_delete=models.CASCADE, related_name='task2dept_task2')
|
||||||
count_up = models.PositiveSmallIntegerField('完成上报内容数', default=0)
|
count_up = models.PositiveSmallIntegerField('完成上报内容数', default=0)
|
||||||
count_all = models.PositiveSmallIntegerField('需上报内容数', default=8)
|
count_all = models.PositiveSmallIntegerField('需上报内容数', default=9)
|
||||||
|
|
||||||
num_issue = models.PositiveSmallIntegerField('已发放报告数量', null=True, blank=True)
|
num_issue = models.PositiveSmallIntegerField('已发放报告数量', null=True, blank=True)
|
||||||
num_expect = models.PositiveSmallIntegerField('应发报告数', null=True, blank=True)
|
num_expect = models.PositiveSmallIntegerField('应发报告数', null=True, blank=True)
|
||||||
|
num_acc = models.PositiveSmallIntegerField('重大质量事故', null=True, blank=True)
|
||||||
|
|
||||||
num_error = models.PositiveSmallIntegerField('不准确报告数', null=True, blank=True)
|
num_error = models.PositiveSmallIntegerField('不准确报告数', null=True, blank=True)
|
||||||
num_overdue = models.PositiveSmallIntegerField('超期报告数', null=True, blank=True)
|
num_overdue = models.PositiveSmallIntegerField('超期报告数', null=True, blank=True)
|
||||||
num_complaint = models.PositiveSmallIntegerField('客户投诉数', null=True, blank=True)
|
num_complaint = models.PositiveSmallIntegerField('客户投诉数', null=True, blank=True)
|
||||||
|
num_complaint_10 = models.PositiveSmallIntegerField('满意客户投诉数', null=True, blank=True)
|
||||||
num_pt = models.PositiveSmallIntegerField('能力验证数', null=True, blank=True)
|
num_pt = models.PositiveSmallIntegerField('能力验证数', null=True, blank=True)
|
||||||
|
num_pt_10 = models.PositiveSmallIntegerField('满意能力验证数', null=True, blank=True)
|
||||||
num_risk = models.PositiveSmallIntegerField('风险识别数', null=True, blank=True)
|
num_risk = models.PositiveSmallIntegerField('风险识别数', null=True, blank=True)
|
||||||
num_oinspect = models.PositiveSmallIntegerField('外部检查数', null=True, blank=True)
|
num_oinspect = models.PositiveSmallIntegerField('外部检查数', null=True, blank=True)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -473,7 +473,7 @@ class Task2ViewSet(CreateUpdateCustomMixin, ModelViewSet):
|
||||||
sr = Task2DeptsSerializer(data=request.data)
|
sr = Task2DeptsSerializer(data=request.data)
|
||||||
sr.is_valid(raise_exception=True)
|
sr.is_valid(raise_exception=True)
|
||||||
vdata = sr.validated_data
|
vdata = sr.validated_data
|
||||||
count_all = 8
|
count_all = 9
|
||||||
if task2.type == Task2.TASK2_F:
|
if task2.type == Task2.TASK2_F:
|
||||||
count_all = 5
|
count_all = 5
|
||||||
for i in vdata['ids']:
|
for i in vdata['ids']:
|
||||||
|
|
@ -486,7 +486,7 @@ class Task2DoViewSet(ListModelMixin, GenericViewSet):
|
||||||
queryset = Task2Do.objects.select_related('belong_dept', 'task2').all()
|
queryset = Task2Do.objects.select_related('belong_dept', 'task2').all()
|
||||||
serializer_class = Task2DoSerializer
|
serializer_class = Task2DoSerializer
|
||||||
ordering = ['belong_dept__sort']
|
ordering = ['belong_dept__sort']
|
||||||
filterset_fields = ['task2', 'belong_dept']
|
filterset_fields = ['task2', 'belong_dept', 'task2__year', 'task2__cycle']
|
||||||
cfields = ['num_issue', 'num_expect', 'num_error', 'num_overdue', 'num_complaint', 'num_pt', 'num_risk', 'num_oinspect']
|
cfields = ['num_issue', 'num_expect', 'num_error', 'num_overdue', 'num_complaint', 'num_pt', 'num_risk', 'num_oinspect']
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -509,6 +509,7 @@ class Task2DoViewSet(ListModelMixin, GenericViewSet):
|
||||||
obj = self.get_object()
|
obj = self.get_object()
|
||||||
obj.num_issue = request.data.get('num_issue', 0)
|
obj.num_issue = request.data.get('num_issue', 0)
|
||||||
obj.num_expect = request.data.get('num_expect', 0)
|
obj.num_expect = request.data.get('num_expect', 0)
|
||||||
|
obj.num_acc = request.data.get('num_acc', 0)
|
||||||
obj.update_by = request.user
|
obj.update_by = request.user
|
||||||
obj.save()
|
obj.save()
|
||||||
self.countup_task2do(obj)
|
self.countup_task2do(obj)
|
||||||
|
|
@ -521,7 +522,11 @@ class Task2DoViewSet(ListModelMixin, GenericViewSet):
|
||||||
没有记录
|
没有记录
|
||||||
"""
|
"""
|
||||||
obj = self.get_object()
|
obj = self.get_object()
|
||||||
setattr(obj, request.data.get('key'), 0)
|
theattr = getattr(obj, request.data.get('key'), None)
|
||||||
|
if theattr is None:
|
||||||
|
theattr = 0
|
||||||
|
else:
|
||||||
|
raise ParseError('已有记录')
|
||||||
obj.save()
|
obj.save()
|
||||||
self.countup_task2do(obj)
|
self.countup_task2do(obj)
|
||||||
return Response()
|
return Response()
|
||||||
|
|
@ -602,6 +607,8 @@ class ImpMixin:
|
||||||
sr.is_valid(raise_exception=True)
|
sr.is_valid(raise_exception=True)
|
||||||
vdata = sr.validated_data
|
vdata = sr.validated_data
|
||||||
path = vdata['path']
|
path = vdata['path']
|
||||||
|
if not path.endswith('.xlsx'):
|
||||||
|
raise ParseError('请提供xlsx格式文件')
|
||||||
task2do = vdata['task2do']
|
task2do = vdata['task2do']
|
||||||
fullpath = settings.BASE_DIR + path
|
fullpath = settings.BASE_DIR + path
|
||||||
wb = load_workbook(fullpath,data_only=True)
|
wb = load_workbook(fullpath,data_only=True)
|
||||||
|
|
@ -677,7 +684,8 @@ class ComplaintViewSet(ImpMixin, Domixin, CreateUpdateCustomMixin, ModelViewSet)
|
||||||
queryset = Complaint.objects.all()
|
queryset = Complaint.objects.all()
|
||||||
serializer_class = ComplaintSerializer
|
serializer_class = ComplaintSerializer
|
||||||
count_dict = {
|
count_dict = {
|
||||||
"num_complaint": {}
|
"num_complaint": {},
|
||||||
|
"num_complaint_10": {'is_satisfied': True}
|
||||||
}
|
}
|
||||||
filterset_fields = ['task2do', 'task2do__belong_dept', 'task2do__task2__year']
|
filterset_fields = ['task2do', 'task2do__belong_dept', 'task2do__task2__year']
|
||||||
|
|
||||||
|
|
@ -703,7 +711,8 @@ class PtViewSet(ImpMixin, Domixin, CreateUpdateCustomMixin, ModelViewSet):
|
||||||
queryset = Pt.objects.all()
|
queryset = Pt.objects.all()
|
||||||
serializer_class = PtSerializer
|
serializer_class = PtSerializer
|
||||||
count_dict = {
|
count_dict = {
|
||||||
"num_pt": {}
|
"num_pt": {},
|
||||||
|
"num_pt_10": {'result': 10}
|
||||||
}
|
}
|
||||||
filterset_fields = ['task2do', 'task2do__belong_dept', 'task2do__task2__year']
|
filterset_fields = ['task2do', 'task2do__belong_dept', 'task2do__task2__year']
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue