forked from erp-dev/erp
feat: upload api
This commit is contained in:
@@ -328,6 +328,42 @@ class BusinessObjectViewSet(viewsets.ModelViewSet):
|
||||
'parameter_record': StateLogParameterRecordSerializer(record).data
|
||||
})
|
||||
|
||||
@action(detail=True, methods=['get'], url_path='state-logs')
|
||||
def get_state_logs(self, request, pk=None):
|
||||
"""
|
||||
获取业务对象的所有状态流转记录列表
|
||||
|
||||
GET /api/v1/stateflow/business-objects/{id}/state-logs/
|
||||
GET /api/v1/stateflow/business-objects/{id}/state-logs/?include_parameters=false
|
||||
GET /api/v1/stateflow/business-objects/{id}/state-logs/?include_cancelled=true
|
||||
|
||||
查询参数:
|
||||
- include_parameters: 是否包含工艺参数,默认 true(可选值: true, false)
|
||||
- include_cancelled: 是否包含已撤销的记录,默认 true(可选值: true, false)
|
||||
"""
|
||||
business_object = self.get_object()
|
||||
include_parameters = request.query_params.get('include_parameters', 'true').lower() == 'true'
|
||||
include_cancelled = request.query_params.get('include_cancelled', 'true').lower() == 'true'
|
||||
|
||||
# 获取状态流转记录
|
||||
state_logs = business_object.state_logs.select_related('state', 'completed_by').order_by('completed_at')
|
||||
|
||||
if not include_cancelled:
|
||||
state_logs = state_logs.filter(is_cancelled=False)
|
||||
|
||||
# 序列化
|
||||
if include_parameters:
|
||||
from stateflow.serializers import StateFlowRecordWithParametersSerializer
|
||||
serializer = StateFlowRecordWithParametersSerializer(state_logs, many=True)
|
||||
else:
|
||||
from stateflow.serializers import StateFlowRecordSerializer
|
||||
serializer = StateFlowRecordSerializer(state_logs, many=True)
|
||||
|
||||
return Response({
|
||||
'count': state_logs.count(),
|
||||
'state_logs': serializer.data
|
||||
})
|
||||
|
||||
@action(detail=True, methods=['get'], url_path='state-logs/(?P<log_id>[^/.]+)/parameters')
|
||||
def get_log_parameters(self, request, pk=None, log_id=None):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user