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')
|
||||
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_expect = models.PositiveSmallIntegerField('应发报告数', null=True, blank=True)
|
||||
num_acc = models.PositiveSmallIntegerField('重大质量事故', null=True, blank=True)
|
||||
|
||||
num_error = models.PositiveSmallIntegerField('不准确报告数', null=True, blank=True)
|
||||
num_overdue = 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_10 = models.PositiveSmallIntegerField('满意能力验证数', null=True, blank=True)
|
||||
num_risk = 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.is_valid(raise_exception=True)
|
||||
vdata = sr.validated_data
|
||||
count_all = 8
|
||||
count_all = 9
|
||||
if task2.type == Task2.TASK2_F:
|
||||
count_all = 5
|
||||
for i in vdata['ids']:
|
||||
|
|
@ -486,7 +486,7 @@ class Task2DoViewSet(ListModelMixin, GenericViewSet):
|
|||
queryset = Task2Do.objects.select_related('belong_dept', 'task2').all()
|
||||
serializer_class = Task2DoSerializer
|
||||
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']
|
||||
|
||||
@classmethod
|
||||
|
|
@ -509,6 +509,7 @@ class Task2DoViewSet(ListModelMixin, GenericViewSet):
|
|||
obj = self.get_object()
|
||||
obj.num_issue = request.data.get('num_issue', 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.save()
|
||||
self.countup_task2do(obj)
|
||||
|
|
@ -521,7 +522,11 @@ class Task2DoViewSet(ListModelMixin, GenericViewSet):
|
|||
没有记录
|
||||
"""
|
||||
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()
|
||||
self.countup_task2do(obj)
|
||||
return Response()
|
||||
|
|
@ -602,6 +607,8 @@ class ImpMixin:
|
|||
sr.is_valid(raise_exception=True)
|
||||
vdata = sr.validated_data
|
||||
path = vdata['path']
|
||||
if not path.endswith('.xlsx'):
|
||||
raise ParseError('请提供xlsx格式文件')
|
||||
task2do = vdata['task2do']
|
||||
fullpath = settings.BASE_DIR + path
|
||||
wb = load_workbook(fullpath,data_only=True)
|
||||
|
|
@ -677,7 +684,8 @@ class ComplaintViewSet(ImpMixin, Domixin, CreateUpdateCustomMixin, ModelViewSet)
|
|||
queryset = Complaint.objects.all()
|
||||
serializer_class = ComplaintSerializer
|
||||
count_dict = {
|
||||
"num_complaint": {}
|
||||
"num_complaint": {},
|
||||
"num_complaint_10": {'is_satisfied': True}
|
||||
}
|
||||
filterset_fields = ['task2do', 'task2do__belong_dept', 'task2do__task2__year']
|
||||
|
||||
|
|
@ -703,7 +711,8 @@ class PtViewSet(ImpMixin, Domixin, CreateUpdateCustomMixin, ModelViewSet):
|
|||
queryset = Pt.objects.all()
|
||||
serializer_class = PtSerializer
|
||||
count_dict = {
|
||||
"num_pt": {}
|
||||
"num_pt": {},
|
||||
"num_pt_10": {'result': 10}
|
||||
}
|
||||
filterset_fields = ['task2do', 'task2do__belong_dept', 'task2do__task2__year']
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue