forked from erp-dev/erp
feat: added fields like plate_order api into printing jobs api
This commit is contained in:
@@ -258,8 +258,12 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
|
||||
product_name = serializers.CharField(source='product.name', read_only=True)
|
||||
product_image_url = serializers.SerializerMethodField()
|
||||
status = serializers.CharField(read_only=True)
|
||||
status_id = serializers.IntegerField(read_only=True)
|
||||
work_state_display = serializers.SerializerMethodField()
|
||||
is_completed = serializers.BooleanField(read_only=True)
|
||||
has_started = serializers.BooleanField(read_only=True)
|
||||
progress_percentage = serializers.FloatField(read_only=True)
|
||||
last_completed_state = serializers.CharField(read_only=True)
|
||||
business_object_id = serializers.SerializerMethodField()
|
||||
batch_advance_records = serializers.SerializerMethodField()
|
||||
|
||||
@@ -270,11 +274,17 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
|
||||
'product_image_url',
|
||||
'quantity', 'unit', 'size', 'pieces', 'description',
|
||||
'work_state', 'work_state_display',
|
||||
'status', 'is_completed', 'business_object_id',
|
||||
'status', 'status_id', 'is_completed', 'has_started',
|
||||
'progress_percentage', 'last_completed_state',
|
||||
'business_object_id',
|
||||
'batch_advance_records',
|
||||
'created_at', 'updated_at'
|
||||
]
|
||||
read_only_fields = ['id', 'created_at', 'updated_at', 'status', 'is_completed', 'business_object_id']
|
||||
read_only_fields = [
|
||||
'id', 'created_at', 'updated_at',
|
||||
'status', 'status_id', 'is_completed', 'has_started',
|
||||
'progress_percentage', 'last_completed_state', 'business_object_id'
|
||||
]
|
||||
|
||||
def get_business_object_id(self, obj):
|
||||
"""安全地获取 business_object_id"""
|
||||
|
||||
@@ -85,6 +85,10 @@ services:
|
||||
DB_PASSWORD: postgres
|
||||
CACHE_HOST: redis
|
||||
CACHE_PORT: "6379"
|
||||
# Celery Broker(RabbitMQ)连接:容器内用服务名访问;宿主机运行时默认 localhost:5672
|
||||
CELERY_BROKER_HOST: rabbitmq
|
||||
# Celery Result Backend(Redis)连接:容器内用服务名访问;宿主机运行时默认 localhost:6379
|
||||
CELERY_RESULT_HOST: redis
|
||||
depends_on:
|
||||
- pgbouncer
|
||||
- redis
|
||||
@@ -112,14 +116,15 @@ services:
|
||||
- redis
|
||||
- rabbitmq
|
||||
environment:
|
||||
CELERY_BROKER_URL: amqp://guest:guest@rabbitmq:5672//
|
||||
CELERY_RESULT_BACKEND: redis://redis:6379/0
|
||||
PYTHONPATH: /app
|
||||
DB_HOST: pgbouncer
|
||||
DB_PORT: "6432"
|
||||
DB_NAME: flower
|
||||
DB_USER: postgres
|
||||
DB_PASSWORD: postgres
|
||||
# Celery 连接配置:容器内用服务名访问
|
||||
CELERY_BROKER_HOST: rabbitmq
|
||||
CELERY_RESULT_HOST: redis
|
||||
restart: unless-stopped
|
||||
|
||||
celery_beat:
|
||||
@@ -151,8 +156,9 @@ services:
|
||||
DB_NAME: flower
|
||||
DB_USER: postgres
|
||||
DB_PASSWORD: postgres
|
||||
CELERY_BROKER_URL: amqp://guest:guest@rabbitmq:5672//
|
||||
CELERY_RESULT_BACKEND: redis://redis:6379/0
|
||||
# Celery 连接配置:容器内用服务名访问
|
||||
CELERY_BROKER_HOST: rabbitmq
|
||||
CELERY_RESULT_HOST: redis
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
|
||||
@@ -68,10 +68,17 @@ services:
|
||||
DB_NAME: "${DB_NAME:-flower}"
|
||||
DB_USER: "${DB_USER:-postgres}"
|
||||
DB_PASSWORD: "${DB_PASSWORD:-postgres}"
|
||||
CELERY_BROKER_URL: "${CELERY_BROKER_URL:-amqp://guest:guest@rabbitmq:5672//}"
|
||||
CELERY_RESULT_BACKEND: "${CELERY_RESULT_BACKEND:-redis://redis:6379/0}"
|
||||
CACHE_HOST: ${CACHE_HOST:-redis}
|
||||
CACHE_PORT: "${CACHE_PORT:-6379}"
|
||||
# Celery Broker(RabbitMQ)连接:容器内用服务名访问
|
||||
CELERY_BROKER_HOST: ${CELERY_BROKER_HOST:-rabbitmq}
|
||||
CELERY_BROKER_PORT: "${CELERY_BROKER_PORT:-5672}"
|
||||
CELERY_BROKER_USER: "${CELERY_BROKER_USER:-guest}"
|
||||
CELERY_BROKER_PASSWORD: "${CELERY_BROKER_PASSWORD:-guest}"
|
||||
# Celery Result Backend(Redis)连接:容器内用服务名访问
|
||||
CELERY_RESULT_HOST: ${CELERY_RESULT_HOST:-redis}
|
||||
CELERY_RESULT_PORT: "${CELERY_RESULT_PORT:-6379}"
|
||||
CELERY_RESULT_DB: "${CELERY_RESULT_DB:-1}"
|
||||
depends_on:
|
||||
- pgbouncer
|
||||
- redis
|
||||
@@ -97,8 +104,14 @@ services:
|
||||
DB_NAME: "${DB_NAME:-flower}"
|
||||
DB_USER: "${DB_USER:-postgres}"
|
||||
DB_PASSWORD: "${DB_PASSWORD:-postgres}"
|
||||
CELERY_BROKER_URL: "${CELERY_BROKER_URL:-amqp://guest:guest@rabbitmq:5672//}"
|
||||
CELERY_RESULT_BACKEND: "${CELERY_RESULT_BACKEND:-redis://redis:6379/0}"
|
||||
# Celery 连接配置:容器内用服务名访问
|
||||
CELERY_BROKER_HOST: ${CELERY_BROKER_HOST:-rabbitmq}
|
||||
CELERY_BROKER_PORT: "${CELERY_BROKER_PORT:-5672}"
|
||||
CELERY_BROKER_USER: "${CELERY_BROKER_USER:-guest}"
|
||||
CELERY_BROKER_PASSWORD: "${CELERY_BROKER_PASSWORD:-guest}"
|
||||
CELERY_RESULT_HOST: ${CELERY_RESULT_HOST:-redis}
|
||||
CELERY_RESULT_PORT: "${CELERY_RESULT_PORT:-6379}"
|
||||
CELERY_RESULT_DB: "${CELERY_RESULT_DB:-1}"
|
||||
# 数据库备份输出目录(api_v1.tasks.backup_database 默认输出到 BASE_DIR/data-bak)
|
||||
volumes:
|
||||
# 默认落在 compose 同级目录的 ./data-bak,方便宿主机直接查看/拷贝
|
||||
@@ -130,8 +143,14 @@ services:
|
||||
DB_NAME: "${DB_NAME:-flower}"
|
||||
DB_USER: "${DB_USER:-postgres}"
|
||||
DB_PASSWORD: "${DB_PASSWORD:-postgres}"
|
||||
CELERY_BROKER_URL: "${CELERY_BROKER_URL:-amqp://guest:guest@rabbitmq:5672//}"
|
||||
CELERY_RESULT_BACKEND: "${CELERY_RESULT_BACKEND:-redis://redis:6379/0}"
|
||||
# Celery 连接配置:容器内用服务名访问
|
||||
CELERY_BROKER_HOST: ${CELERY_BROKER_HOST:-rabbitmq}
|
||||
CELERY_BROKER_PORT: "${CELERY_BROKER_PORT:-5672}"
|
||||
CELERY_BROKER_USER: "${CELERY_BROKER_USER:-guest}"
|
||||
CELERY_BROKER_PASSWORD: "${CELERY_BROKER_PASSWORD:-guest}"
|
||||
CELERY_RESULT_HOST: ${CELERY_RESULT_HOST:-redis}
|
||||
CELERY_RESULT_PORT: "${CELERY_RESULT_PORT:-6379}"
|
||||
CELERY_RESULT_DB: "${CELERY_RESULT_DB:-1}"
|
||||
# Celery Beat 的持久化调度文件,避免重启后重复/错过调度
|
||||
volumes:
|
||||
- celery_beat_data:/var/lib/celery
|
||||
|
||||
@@ -88,6 +88,10 @@ services:
|
||||
# 缓存(Redis)连接:容器内用服务名访问;宿主机运行时默认 localhost:6379
|
||||
CACHE_HOST: redis
|
||||
CACHE_PORT: "6379"
|
||||
# Celery Broker(RabbitMQ)连接:容器内用服务名访问;宿主机运行时默认 localhost:5672
|
||||
CELERY_BROKER_HOST: rabbitmq
|
||||
# Celery Result Backend(Redis)连接:容器内用服务名访问;宿主机运行时默认 localhost:6379
|
||||
CELERY_RESULT_HOST: redis
|
||||
depends_on:
|
||||
- pgbouncer
|
||||
- redis
|
||||
@@ -116,14 +120,15 @@ services:
|
||||
- redis
|
||||
- rabbitmq
|
||||
environment:
|
||||
CELERY_BROKER_URL: amqp://guest:guest@rabbitmq:5672//
|
||||
CELERY_RESULT_BACKEND: redis://redis:6379/0
|
||||
PYTHONPATH: /app
|
||||
DB_HOST: pgbouncer
|
||||
DB_PORT: "6432"
|
||||
DB_NAME: flower
|
||||
DB_USER: postgres
|
||||
DB_PASSWORD: postgres
|
||||
# Celery 连接配置:容器内用服务名访问
|
||||
CELERY_BROKER_HOST: rabbitmq
|
||||
CELERY_RESULT_HOST: redis
|
||||
restart: unless-stopped
|
||||
|
||||
celery_beat:
|
||||
@@ -153,8 +158,9 @@ services:
|
||||
DB_NAME: flower
|
||||
DB_USER: postgres
|
||||
DB_PASSWORD: postgres
|
||||
CELERY_BROKER_URL: amqp://guest:guest@rabbitmq:5672//
|
||||
CELERY_RESULT_BACKEND: redis://redis:6379/0
|
||||
# Celery 连接配置:容器内用服务名访问
|
||||
CELERY_BROKER_HOST: rabbitmq
|
||||
CELERY_RESULT_HOST: redis
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
|
||||
@@ -402,14 +402,28 @@ PRINTING_DEFAULT_PROCESS_ID = 1 # 默认印染流程ID
|
||||
PLATE_ORDER_DEFAULT_PROCESS_ID = 2 # 默认开版流程ID
|
||||
|
||||
# Celery 配置
|
||||
CELERY_BROKER_URL = env(
|
||||
'CELERY_BROKER_URL',
|
||||
default='amqp://guest:guest@rabbitmq:5672//',
|
||||
)
|
||||
CELERY_RESULT_BACKEND = env(
|
||||
'CELERY_RESULT_BACKEND',
|
||||
default='redis://redis:6379/0',
|
||||
)
|
||||
# RabbitMQ Broker 配置:优先使用 CELERY_BROKER_URL,否则从各组件构建
|
||||
# 默认 localhost(适合宿主机运行),Docker Compose 可通过环境变量指定 CELERY_BROKER_HOST=rabbitmq
|
||||
celery_broker_url = env('CELERY_BROKER_URL', default=None)
|
||||
if celery_broker_url is None:
|
||||
celery_broker_host = env('CELERY_BROKER_HOST', default='localhost')
|
||||
celery_broker_port = env.int('CELERY_BROKER_PORT', default=5672)
|
||||
celery_broker_user = env('CELERY_BROKER_USER', default='guest')
|
||||
celery_broker_password = env('CELERY_BROKER_PASSWORD', default='guest')
|
||||
celery_broker_vhost = env('CELERY_BROKER_VHOST', default='/')
|
||||
celery_broker_url = f'amqp://{celery_broker_user}:{celery_broker_password}@{celery_broker_host}:{celery_broker_port}/{celery_broker_vhost}'
|
||||
CELERY_BROKER_URL = celery_broker_url
|
||||
|
||||
# Celery Result Backend 配置:优先使用 CELERY_RESULT_BACKEND,否则从各组件构建
|
||||
# 默认使用与 Cache 相同的 Redis 实例,Docker Compose 可通过环境变量指定 CELERY_RESULT_HOST=redis
|
||||
celery_result_url = env('CELERY_RESULT_BACKEND', default=None)
|
||||
if celery_result_url is None:
|
||||
celery_result_host = env('CELERY_RESULT_HOST', default='localhost')
|
||||
celery_result_port = env.int('CELERY_RESULT_PORT', default=6379)
|
||||
celery_result_db = env.int('CELERY_RESULT_DB', default=1) # 使用 db=1,与 Cache 的 db=0 区分
|
||||
celery_result_url = f'redis://{celery_result_host}:{celery_result_port}/{celery_result_db}'
|
||||
CELERY_RESULT_BACKEND = celery_result_url
|
||||
|
||||
CELERY_ACCEPT_CONTENT = ['json']
|
||||
CELERY_TASK_SERIALIZER = 'json'
|
||||
CELERY_RESULT_SERIALIZER = 'json'
|
||||
|
||||
Reference in New Issue
Block a user