This commit is contained in:
caoqianming 2024-01-22 08:27:28 +08:00
commit e81acb7aa7
4 changed files with 14 additions and 4 deletions

View File

@ -34,3 +34,4 @@ class DataExecSerializer(serializers.Serializer):
query = serializers.JSONField(
label="查询字典参数", required=False, allow_null=True)
is_test = serializers.BooleanField(label='是否测试', default=False)
raise_exception = serializers.BooleanField(label='是否直接报错', default=False)

View File

@ -54,7 +54,7 @@ class DatasetViewSet(CustomModelViewSet):
return obj
@action(methods=['post'], detail=True, perms_map={'post': 'dataset.exec'}, serializer_class=DataExecSerializer, cache_seconds=0)
@action(methods=['post'], detail=True, perms_map={'post': 'dataset.exec'}, serializer_class=DataExecSerializer, cache_seconds=0, logging_methods=[])
def exec(self, request, pk=None):
"""执行sql查询
@ -64,6 +64,7 @@ class DatasetViewSet(CustomModelViewSet):
rdata = DatasetSerializer(instance=dt).data
query = request.data.get('query', {})
is_test = request.data.get('is_test', False)
raise_exception = request.data.get('raise_exception', False)
query['r_user'] = request.user.id
query['r_dept'] = request.user.belong_dept.id if request.user.belong_dept else ''
results = {}
@ -104,6 +105,9 @@ class DatasetViewSet(CustomModelViewSet):
results[name], results2[name] = format_sqldata(
res[0], res[1])
except Exception as e:
if raise_exception:
raise
else:
results[name] = 'error: ' + str(e)
can_cache = False
rdata['data'] = results

View File

@ -11,7 +11,7 @@ class MyPagination(PageNumberPagination):
def paginate_queryset(self, queryset, request, view=None):
if request.query_params.get('pageoff', None) or request.query_params.get('page', None) == '0':
if queryset.count() < 800:
if queryset.count() < 3000:
return None
raise ParseError('单次请求数据量大,请分页获取')
return super().paginate_queryset(queryset, request, view=view)

View File

@ -289,6 +289,11 @@ class MlogSerializer(CustomModelSerializer):
def validate(self, attrs):
mtask = attrs.get('mtask', None)
count_notok = 0
for i in attrs:
if 'count_n_' in i:
count_notok = count_notok + attrs[i]
attrs['count_notok'] = count_notok
if mtask:
if mtask.start_date == mtask.end_date:
attrs['handle_date'] = mtask.start_date