fix: 添加保存num_issue接口

This commit is contained in:
caoqianming 2023-05-17 17:03:24 +08:00
parent 1269e40a6f
commit cbf274cc7c
2 changed files with 28 additions and 5 deletions

View File

@ -140,13 +140,13 @@ class ValidateMixin:
class BaseMeta:
fields = '__all__'
read_only_fields = ['create_time', 'update_time', 'create_by', 'update_by', 'is_deleted']
read_only_fields = ['create_time', 'update_time', 'create_by', 'update_by', 'is_deleted', 'belong_dept']
class PgoalDeptSerializer(ValidateMixin, serializers.ModelSerializer):
goal_file_ = FileSimpleSerializer(source='goal_file', read_only=True)
class Meta(BaseMeta):
model = PgoalDept
read_only_fields = BaseMeta.read_only_fields + ['goal_value_a', 'goal_value_c', 'goal_files', 'goal_key']
read_only_fields = BaseMeta.read_only_fields + ['goal_value_a', 'goal_value_c', 'goal_files', 'goal_key', 'goal_file_', 'goal_o_file']
class RcSerializer(ValidateMixin, serializers.ModelSerializer):
@ -176,4 +176,12 @@ class OinspectSerializer(ValidateMixin, serializers.ModelSerializer):
class NoRecordSerializer(serializers.Serializer):
key = serializers.ChoiceField(label='字段key', choices=['num_error', 'num_overdue', 'num_complaint', 'num_pt', 'num_risk', 'num_oinspect'])
key = serializers.ChoiceField(label='字段key', choices=['num_error', 'num_overdue', 'num_complaint', 'num_pt', 'num_risk', 'num_oinspect'])
class UpdateFieldSerializer(serializers.ModelSerializer):
class Meta:
model = Task2Do
fields = ['num_issue', 'num_expect']
extra_kwargs = {'num_issue': {'required': True}, 'num_expect': {'required': True}}

View File

@ -475,7 +475,7 @@ class Task2ViewSet(CreateUpdateCustomMixin, ModelViewSet):
if task2.type == Task2.TASK2_F:
count_all = 5
for i in vdata['ids']:
Task2Do.objects.get_or_create(task2=task2, belong_dept=i, defaults={'task2': task2, 'belong_dept': i, 'count_all': count_all})
Task2Do.objects.get_or_create(task2=task2, belong_dept=i, defaults={'task2': task2, 'belong_dept': i, 'count_all': count_all, 'create_by': self.request.user})
return Response()
@ -484,7 +484,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']
cfields = ['num_issue', 'num_expect', 'num_error', 'num_overdue', 'num_complaint', 'num_pt', 'num_risk', 'num_oinspect']
@classmethod
@ -498,6 +498,20 @@ class Task2DoViewSet(ListModelMixin, GenericViewSet):
instance.count_up = count_up
instance.save()
@action(methods=['put'], detail=False, perms_map = {'post':'task2do'}, serializer_class=UpdateFieldSerializer)
def save_num(self, request, *args, **kwargs):
"""保存数值
保存数值
"""
obj = self.get_object()
obj.num_issue = request.data.get('num_issue', 0)
obj.num_expect = request.data.get('num_expect', 0)
obj.update_by = request.user
obj.save()
self.countup_task2do(obj)
return Response()
@action(methods=['put'], detail=True, perms_map = {'post':'task2do'}, serializer_class=NoRecordSerializer)
def no_record(self, request, *args, **kwargs):
"""没有记录
@ -532,6 +546,7 @@ class Domixin:
perms_map = {'get': '*', 'put': 'task2do', 'post': 'task2do', 'delete': 'task2do'}
ordering = ['create_time']
ordering_fields = ['create_time', 'belong_dept__sort']
filterset_fields = ['task2do', 'task2do__task2', 'task2do__belong_dept']
def countnum_task2do_field(self, task2do):
for k, v in self.count_dict: