1
0
forked from erp-dev/erp

feat: sse && multi_merchant completed

This commit is contained in:
2025-11-11 10:56:20 +08:00
parent b2078dfa46
commit 2aafb93aad
43 changed files with 2445 additions and 244 deletions

View File

@@ -29,7 +29,6 @@ class InventoryAdmin(StockAdminBase):
'warehouse',
'quantity',
'num_of_rolls',
'minimum_quantity',
'frozen_quantity',
'updated_at',
)

View File

@@ -0,0 +1,17 @@
# Generated by Django 5.2.7 on 2025-11-10 07:52
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('stock', '0002_stockfreeze'),
]
operations = [
migrations.RemoveField(
model_name='inventory',
name='minimum_quantity',
),
]

View File

@@ -206,7 +206,7 @@ class Inventory(ModelBase):
)
quantity = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='库存数量')
num_of_rolls = models.IntegerField(default=1, verbose_name='匹数')
minimum_quantity = models.IntegerField(null=True, blank=True, verbose_name='最低库存量')
# minimum_quantity = models.IntegerField(null=True, blank=True, verbose_name='最低库存量')
spec = models.CharField(max_length=100, blank=True, null=True, verbose_name='规格')
description = models.TextField(blank=True, null=True, verbose_name='备注描述')

View File

@@ -1,6 +1,7 @@
from . import models
from django.db.models import Sum
from django.utils import timezone
from sse.services import push_simple_message_with_object_id
import logging
@@ -84,13 +85,10 @@ def make_stock_change_completed(stock_change_record: models.StockChangeRecord) -
# 更新现有库存记录
inventory_record.quantity += detail.quantity * positive
inventory_record.num_of_rolls += positive
logger.info(
f'更新库存记录 {inventory_record.id},新数量: {inventory_record.quantity}, '
f'新匹数: {inventory_record.num_of_rolls}'
)
inventory_record.save()
else:
# 创建新库存记录
inventory_record = models.Inventory(
@@ -100,11 +98,17 @@ def make_stock_change_completed(stock_change_record: models.StockChangeRecord) -
quantity=detail.quantity * positive,
num_of_rolls=1 if stock_change_record.is_incoming else -1,
)
inventory_record.save()
logger.info(
f'创建新库存记录 {inventory_record.id},数量: {inventory_record.quantity}, '
f'匹数: {inventory_record.num_of_rolls}'
)
inventory_record.save()
# 发送库存变动通知
push_simple_message_with_object_id(
event_type='stock_change',
message=f'产品ID {detail.product_id} 位于 {stock_change_record.warehouse_id} 的库存已更新',
object_id=inventory_record.id
)
# 无论库存记录原本是否存在都创建库存快照
create_stock_snapshot(detail, inventory_record)

View File

@@ -1,9 +0,0 @@
from ninja import NinjaAPI
router = NinjaAPI()
@router.get('/')
async def index(request):
return {'message': 'Welcome to the Stock API'}