@@ -4,10 +4,7 @@ from __future__ import division |
||
| 4 | 4 |
|
| 5 | 5 |
from django.shortcuts import HttpResponse |
| 6 | 6 |
|
| 7 |
-from stock.models import StockInfo |
|
| 8 |
-from utils.redis.connect import r |
|
| 9 |
-from utils.redis.rkeys import JDJOS_STOCK_CHANGED_SET |
|
| 10 |
-from utils.stock_utils import refresh_stock_info, send_stock_info |
|
| 7 |
+from utils.stock_utils import refresh_stock_info, send_all_stock_info |
|
| 11 | 8 |
|
| 12 | 9 |
|
| 13 | 10 |
def refresh_stockinfo(request): |
@@ -16,11 +13,5 @@ def refresh_stockinfo(request): |
||
| 16 | 13 |
|
| 17 | 14 |
|
| 18 | 15 |
def send_stockinfo(request): |
| 19 |
- pks = r.smembers(JDJOS_STOCK_CHANGED_SET) |
|
| 20 |
- for pk in pks: |
|
| 21 |
- try: |
|
| 22 |
- stock = StockInfo.objects.get(pk=pk, status=True) |
|
| 23 |
- except StockInfo.DoesNotExist: |
|
| 24 |
- continue |
|
| 25 |
- send_stock_info(stock) |
|
| 16 |
+ send_all_stock_info() |
|
| 26 | 17 |
return HttpResponse('Send Success')
|
@@ -1,11 +1,12 @@ |
||
| 1 | 1 |
# -*- coding: utf-8 -*- |
| 2 | 2 |
|
| 3 | 3 |
from django.contrib import admin |
| 4 |
-from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin |
|
| 4 |
+from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin, SpecifiedQuantityQuerySetModelAdmin |
|
| 5 | 5 |
|
| 6 |
-from stock.models import StockInfo |
|
| 6 |
+from stock.models import StockInfo, StockSendInfo |
|
| 7 | 7 |
from utils.redis.connect import r |
| 8 | 8 |
from utils.redis.rkeys import JDJOS_STOCK_CHANGED_SET |
| 9 |
+from utils.stock_utils import send_all_stock_info |
|
| 9 | 10 |
|
| 10 | 11 |
|
| 11 | 12 |
class StockInfoAdmin(AdvancedExportExcelModelAdmin, admin.ModelAdmin): |
@@ -19,4 +20,13 @@ class StockInfoAdmin(AdvancedExportExcelModelAdmin, admin.ModelAdmin): |
||
| 19 | 20 |
r.sadd(JDJOS_STOCK_CHANGED_SET, obj.pk) |
| 20 | 21 |
|
| 21 | 22 |
|
| 23 |
+class StockSendInfoAdmin(SpecifiedQuantityQuerySetModelAdmin, admin.ModelAdmin): |
|
| 24 |
+ list_display = ('pk', 'submit')
|
|
| 25 |
+ readonly_fields = ('status', )
|
|
| 26 |
+ |
|
| 27 |
+ def save_model(self, request, obj, form, change): |
|
| 28 |
+ send_all_stock_info() |
|
| 29 |
+ |
|
| 30 |
+ |
|
| 22 | 31 |
admin.site.register(StockInfo, StockInfoAdmin) |
| 32 |
+admin.site.register(StockSendInfo, StockSendInfoAdmin) |
@@ -0,0 +1,29 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+# Generated by Django 1.11.20 on 2019-03-04 08:03 |
|
| 3 |
+from __future__ import unicode_literals |
|
| 4 |
+ |
|
| 5 |
+from django.db import migrations, models |
|
| 6 |
+ |
|
| 7 |
+ |
|
| 8 |
+class Migration(migrations.Migration): |
|
| 9 |
+ |
|
| 10 |
+ dependencies = [ |
|
| 11 |
+ ('stock', '0004_auto_20190304_1337'),
|
|
| 12 |
+ ] |
|
| 13 |
+ |
|
| 14 |
+ operations = [ |
|
| 15 |
+ migrations.CreateModel( |
|
| 16 |
+ name='StockSendInfo', |
|
| 17 |
+ fields=[ |
|
| 18 |
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
| 19 |
+ ('status', models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status')),
|
|
| 20 |
+ ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
|
|
| 21 |
+ ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
|
|
| 22 |
+ ('submit', models.BooleanField(default=True, help_text='\u786e\u8ba4\u63d0\u4ea4', verbose_name='\u786e\u8ba4\u63d0\u4ea4')),
|
|
| 23 |
+ ], |
|
| 24 |
+ options={
|
|
| 25 |
+ 'verbose_name': 'StockSendInfo', |
|
| 26 |
+ 'verbose_name_plural': 'StockSendInfo', |
|
| 27 |
+ }, |
|
| 28 |
+ ), |
|
| 29 |
+ ] |
@@ -33,3 +33,14 @@ class StockInfo(BaseModelMixin): |
||
| 33 | 33 |
|
| 34 | 34 |
def __unicode__(self): |
| 35 | 35 |
return u'{0.pk}'.format(self)
|
| 36 |
+ |
|
| 37 |
+ |
|
| 38 |
+class StockSendInfo(BaseModelMixin): |
|
| 39 |
+ submit = models.BooleanField(_(u'确认提交'), default=True, help_text=_(u'确认提交')) |
|
| 40 |
+ |
|
| 41 |
+ class Meta: |
|
| 42 |
+ verbose_name = _(u'StockSendInfo') |
|
| 43 |
+ verbose_name_plural = _(u'StockSendInfo') |
|
| 44 |
+ |
|
| 45 |
+ def __unicode__(self): |
|
| 46 |
+ return u'{0.pk}'.format(self)
|
@@ -10,6 +10,8 @@ from jd.api.rest.EdiInventorySendRequest import EdiInventorySendRequest |
||
| 10 | 10 |
from jd.api.rest.VcAplsStockBatchGetProdStockInfoRequest import VcAplsStockBatchGetProdStockInfoRequest |
| 11 | 11 |
from jd.api.rest.VcItemProductsFindRequest import VcItemProductsFindRequest |
| 12 | 12 |
from stock.models import StockInfo |
| 13 |
+from utils.redis.connect import r |
|
| 14 |
+from utils.redis.rkeys import JDJOS_STOCK_CHANGED_SET |
|
| 13 | 15 |
|
| 14 | 16 |
|
| 15 | 17 |
JOS = settings.JOS['TAMRON'] |
@@ -89,3 +91,13 @@ def send_stock_info(stock): |
||
| 89 | 91 |
print(json.dumps(f)) |
| 90 | 92 |
except Exception, e: |
| 91 | 93 |
print(e) |
| 94 |
+ |
|
| 95 |
+ |
|
| 96 |
+def send_all_stock_info(): |
|
| 97 |
+ pks, _ = r.pipeline().smembers(JDJOS_STOCK_CHANGED_SET).delete(JDJOS_STOCK_CHANGED_SET).execute() |
|
| 98 |
+ for pk in pks: |
|
| 99 |
+ try: |
|
| 100 |
+ stock = StockInfo.objects.get(pk=pk, status=True) |
|
| 101 |
+ except StockInfo.DoesNotExist: |
|
| 102 |
+ continue |
|
| 103 |
+ send_stock_info(stock) |