diff --git a/server/apps/quality/models.py b/server/apps/quality/models.py index e26828c..77b7c2f 100644 --- a/server/apps/quality/models.py +++ b/server/apps/quality/models.py @@ -39,6 +39,7 @@ class SubInspectTask(CommonAModel): """ name = models.CharField('子任务名', max_length=100) inspecttask = models.ForeignKey(InspectTask, on_delete=models.CASCADE, verbose_name='所属任务') + leader = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='组长') class Meta: verbose_name = '巡查子任务' @@ -60,7 +61,7 @@ class InspectTeam(CommonAModel): verbose_name = '巡查组' verbose_name_plural = verbose_name -class InspectOrg(CommonAModel): +class InspectDept(CommonAModel): """ 受巡查组织 """ @@ -75,6 +76,18 @@ class InspectRecord(CommonAModel): """ 巡查记录 """ + result_choices = ( + ('发现', '发现'), + ('未发现', '未发现'), + ('不适用', '不适用') + ) item = models.ForeignKey(InspectItem, on_delete=models.CASCADE, verbose_name='检查项') dept = models.ForeignKey(Organization, on_delete=models.CASCADE, verbose_name='受检查单位') + result = models.CharField('检查结果', max_length=50, choices=result_choices, null=True, blank=True) + note = models.TextField('检查说明', null=True, blank=True) + + class Meta: + verbose_name = '巡查记录' + verbose_name_plural = verbose_name + \ No newline at end of file diff --git a/server/apps/quality/serializers.py b/server/apps/quality/serializers.py index 7ab15fa..1901e66 100644 --- a/server/apps/quality/serializers.py +++ b/server/apps/quality/serializers.py @@ -17,7 +17,16 @@ class InspectItemSerializer(serializers.ModelSerializer): class InspectTaskSerializer(serializers.ModelSerializer): create_by_ = UserSimpleSerializer(source='create_by', read_only=True) + dept_count = serializers.SerializerMethodField() + subtask_count = serializers.SerializerMethodField() class Meta: model = InspectTask - fields = '__all__' \ No newline at end of file + fields = '__all__' + + def get_dept_count(obj): + return InspectDept.objects.filter(subtask__inspecttask=obj, is_deleted=True).count() + + def get_subtask_count(obj): + return SubInspectTask.objects.filter(inspecttask=obj, is_deleted=True).count() + diff --git a/server/apps/quality/views.py b/server/apps/quality/views.py index ada4e11..859cd3a 100644 --- a/server/apps/quality/views.py +++ b/server/apps/quality/views.py @@ -41,4 +41,10 @@ class InspectTaskViewSet(CreateUpdateCustomMixin, ModelViewSet): queryset = InspectTask.objects.all() serializer_class = InspectTaskSerializer search_fields = ['name'] - ordering = ['-create_time'] \ No newline at end of file + ordering = ['-create_time'] + +class SubtaskViewSet(ModelViewSet): + perms_map = {'get': '*', 'post': 'inspecttask_create', + 'put': 'inspecttask_update', 'delete': 'inspecttask_delete'} + queryset = SubInspectTask.objects.all() + ordering = ['create_time'] \ No newline at end of file