From 57dc16f67a2ff3ef378cec76c4fd147bf9980f82 Mon Sep 17 00:00:00 2001 From: haze on hillside <2428349829@qq.com> Date: Sat, 3 Jun 2023 16:48:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=91=E5=9B=BE=E7=94=9F=E6=88=90=E4=B8=8D?= =?UTF-8?q?=E5=87=BA=E6=9D=A5=EF=BC=8Ccnm=EF=BC=8C=E7=94=A8=E4=BA=86?= =?UTF-8?q?=E6=9F=B1=E5=BD=A2=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/encodings.xml | 1 + system/LiveStream/settings.py | 4 +- system/login/urls.py | 1 + system/login/views.py | 42 +- system/login/virtual.py | 3 +- system/proc/models.py | 465 ++++++++++++++++-- system/proc/views.py | 4 +- system/sales/views.py | 4 +- .../Pye_chart/sales_index_movement.html | 303 ++++-------- system/templates/WareHouse/in_out_return.html | 10 +- system/templates/WareHouse/print_bar.html | 54 +- system/templates/graph/test_graph_1.html | 2 +- system/templates/graph/test_graph_2.html | 2 +- system/templates/graph/test_graph_3.html | 2 +- system/templates/graph/test_graph_4.html | 2 +- system/templates/graph/test_graph_5.html | 2 +- system/templates/graph/wwww.html | 279 +++++++++++ system/templates/index.html | 4 - system/templates/live-info.html | 21 +- system/warehouse/models.py | 10 +- system/warehouse/views.py | 23 +- 21 files changed, 917 insertions(+), 321 deletions(-) create mode 100644 system/templates/graph/wwww.html diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 234d9e3..d526881 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -3,6 +3,7 @@ + \ No newline at end of file diff --git a/system/LiveStream/settings.py b/system/LiveStream/settings.py index 4d4f1a0..18200a1 100644 --- a/system/LiveStream/settings.py +++ b/system/LiveStream/settings.py @@ -39,8 +39,6 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', - 'django_htmx', - 'django_htmx_refresh', 'login',#注册APP 'proc',#采购 'sales',#销售 @@ -89,7 +87,7 @@ WSGI_APPLICATION = 'LiveStream.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'live', + 'NAME': 'livestream', 'USER': 'root', 'PASSWORD': '123123', 'HOST': 'localhost', diff --git a/system/login/urls.py b/system/login/urls.py index bc9d835..0e73e4a 100644 --- a/system/login/urls.py +++ b/system/login/urls.py @@ -10,6 +10,7 @@ urlpatterns = [ path('index1/', views.index_1, name='index1'), path('register/', views.register, name='register'), path('create/', views.create, name='create'), + path('index1/Proc_index/', include("proc.urls"), name='proc_index'), path('index1/Proc_index/', views.proc_index, name='proc_index'), path('index1/Warehouse_index/', include('warehouse.urls')), path('index1/live_info', views.Stream_info, name='stream_info'), diff --git a/system/login/views.py b/system/login/views.py index eff0583..b7f9b39 100644 --- a/system/login/views.py +++ b/system/login/views.py @@ -215,7 +215,6 @@ class live: ren8=[] self.d = danmu8 self.ren = ren8 - self.mod1=mod1 self.record=record# 直播记录号 self.live_nu=live_nu#直播间号 self.host=host#主播号 @@ -425,10 +424,13 @@ class ChartView5(APIView):##生成一个展示数据的,用于交互的json文 class ChartUpdateView5(APIView):#通过该函数进行动态输入 def get(self, request, *args, **kwargs): - s4=ren5.get() - #print(s) - return JsonResponse({"name": s4["时间"], "value": s4["人数"]}) - + try: + s=ren5.pop(-1) + print(s) + return JsonResponse({"name": s["时间"], "value": s["人数"]}) + except: + s={"时间":0,"人数":0} + return JsonResponse({"name": s["时间"], "value": s["人数"]}) def home_page5(request):#返回展示数据的模板 return render(request,'../templates/Pye_chart/test5.html',{}) @@ -454,9 +456,13 @@ class ChartView6(APIView):##生成一个展示数据的,用于交互的json文 class ChartUpdateView6(APIView):#通过该函数进行动态输入 def get(self, request, *args, **kwargs): - s4=ren6.get() - #print(s) - return JsonResponse({"name": s4["时间"], "value": s4["人数"]}) + try: + s=ren6.pop(-1) + print(s) + return JsonResponse({"name": s["时间"], "value": s["人数"]}) + except: + s={"时间":0,"人数":0} + return JsonResponse({"name": s["时间"], "value": s["人数"]}) def home_page6(request):#返回展示数据的模板 return render(request,'../templates/Pye_chart/test6.html',{}) @@ -483,9 +489,13 @@ class ChartView7(APIView):##生成一个展示数据的,用于交互的json文 class ChartUpdateView7(APIView):#通过该函数进行动态输入 def get(self, request, *args, **kwargs): - s4=ren7.get() - #print(s) - return JsonResponse({"name": s4["时间"], "value": s4["人数"]}) + try: + s=ren7.pop(-1) + print(s) + return JsonResponse({"name": s["时间"], "value": s["人数"]}) + except: + s={"时间":0,"人数":0} + return JsonResponse({"name": s["时间"], "value": s["人数"]}) def home_page7(request):#返回展示数据的模板 return render(request,'../templates/Pye_chart/test7.html',{}) @@ -512,9 +522,13 @@ class ChartView8(APIView):##生成一个展示数据的,用于交互的json文 class ChartUpdateView8(APIView):#通过该函数进行动态输入 def get(self, request, *args, **kwargs): - s4=ren8.get() - #print(s) - return JsonResponse({"name": s4["时间"], "value": s4["人数"]}) + try: + s=ren8.pop(-1) + print(s) + return JsonResponse({"name": s["时间"], "value": s["人数"]}) + except: + s={"时间":0,"人数":0} + return JsonResponse({"name": s["时间"], "value": s["人数"]}) def home_page8(request):#返回展示数据的模板 return render(request,'../templates/Pye_chart/test8.html',{}) diff --git a/system/login/virtual.py b/system/login/virtual.py index 7c2b5df..74afef8 100644 --- a/system/login/virtual.py +++ b/system/login/virtual.py @@ -21,8 +21,7 @@ from .models import LiveroomInfo from .models import SalesInfo from django.db import connection import asyncio -import aiomysql -from dbutils.pooled_db import PooledDB#使用这个可以增加连接数 + import pymysql diff --git a/system/proc/models.py b/system/proc/models.py index def1d9b..80e01fb 100644 --- a/system/proc/models.py +++ b/system/proc/models.py @@ -1,7 +1,160 @@ +# This is an auto-generated Django model module. +# You'll have to do the following manually to clean this up: +# * Rearrange models' order +# * Make sure each model has one field with primary_key=True +# * Make sure each ForeignKey and OneToOneField has `on_delete` set to the desired behavior +# * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table +# Feel free to rename the models, but don't rename db_table values or field names. from django.db import models -# Create your models here. +class AuthGroup(models.Model): + name = models.CharField(unique=True, max_length=150) + + class Meta: + managed = False + db_table = 'auth_group' + + +class AuthGroupPermissions(models.Model): + id = models.BigAutoField(primary_key=True) + group = models.ForeignKey(AuthGroup, models.DO_NOTHING) + permission = models.ForeignKey('AuthPermission', models.DO_NOTHING) + + class Meta: + managed = False + db_table = 'auth_group_permissions' + unique_together = (('group', 'permission'),) + + +class AuthPermission(models.Model): + name = models.CharField(max_length=255) + content_type = models.ForeignKey('DjangoContentType', models.DO_NOTHING) + codename = models.CharField(max_length=100) + + class Meta: + managed = False + db_table = 'auth_permission' + unique_together = (('content_type', 'codename'),) + + +class AuthUser(models.Model): + password = models.CharField(max_length=128) + last_login = models.DateTimeField(blank=True, null=True) + is_superuser = models.IntegerField() + username = models.CharField(unique=True, max_length=150) + first_name = models.CharField(max_length=150) + last_name = models.CharField(max_length=150) + email = models.CharField(max_length=254) + is_staff = models.IntegerField() + is_active = models.IntegerField() + date_joined = models.DateTimeField() + + class Meta: + managed = False + db_table = 'auth_user' + + +class AuthUserGroups(models.Model): + id = models.BigAutoField(primary_key=True) + user = models.ForeignKey(AuthUser, models.DO_NOTHING) + group = models.ForeignKey(AuthGroup, models.DO_NOTHING) + + class Meta: + managed = False + db_table = 'auth_user_groups' + unique_together = (('user', 'group'),) + + +class AuthUserUserPermissions(models.Model): + id = models.BigAutoField(primary_key=True) + user = models.ForeignKey(AuthUser, models.DO_NOTHING) + permission = models.ForeignKey(AuthPermission, models.DO_NOTHING) + + class Meta: + managed = False + db_table = 'auth_user_user_permissions' + unique_together = (('user', 'permission'),) + + +class BackgroundEmp(models.Model): + eid = models.OneToOneField('EmployeeInfo', models.DO_NOTHING, db_column='eid', primary_key=True) + bge_name = models.CharField(max_length=10, blank=True, null=True) + bge_duty = models.CharField(max_length=10, blank=True, null=True) + login_status = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'background_emp' + + +class CollectingNotes(models.Model): + collect_id = models.CharField(primary_key=True, max_length=20) + recv = models.ForeignKey('Receivables', models.DO_NOTHING) + collect_name = models.CharField(max_length=20, blank=True, null=True) + collect_way = models.CharField(max_length=20, blank=True, null=True) + collect_num = models.FloatField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'collecting_notes' + + +class Danmu(models.Model): + dm_id = models.CharField(primary_key=True, max_length=25) + live_record_id = models.CharField(max_length=20) + user_name = models.CharField(max_length=50, blank=True, null=True) + send_time = models.DateTimeField(blank=True, null=True) + send_text = models.CharField(max_length=256, blank=True, null=True) + + class Meta: + managed = False + db_table = 'danmu' + + +class DjangoAdminLog(models.Model): + action_time = models.DateTimeField() + object_id = models.TextField(blank=True, null=True) + object_repr = models.CharField(max_length=200) + action_flag = models.PositiveSmallIntegerField() + change_message = models.TextField() + content_type = models.ForeignKey('DjangoContentType', models.DO_NOTHING, blank=True, null=True) + user = models.ForeignKey(AuthUser, models.DO_NOTHING) + + class Meta: + managed = False + db_table = 'django_admin_log' + + +class DjangoContentType(models.Model): + app_label = models.CharField(max_length=100) + model = models.CharField(max_length=100) + + class Meta: + managed = False + db_table = 'django_content_type' + unique_together = (('app_label', 'model'),) + + +class DjangoMigrations(models.Model): + id = models.BigAutoField(primary_key=True) + app = models.CharField(max_length=255) + name = models.CharField(max_length=255) + applied = models.DateTimeField() + + class Meta: + managed = False + db_table = 'django_migrations' + + +class DjangoSession(models.Model): + session_key = models.CharField(primary_key=True, max_length=40) + session_data = models.TextField() + expire_date = models.DateTimeField() + + class Meta: + managed = False + db_table = 'django_session' class EmployeeInfo(models.Model): @@ -15,6 +168,158 @@ class EmployeeInfo(models.Model): db_table = 'employee_info' +class GoodsInfo(models.Model): + goods_id = models.CharField(primary_key=True, max_length=10) + goods_name = models.CharField(max_length=20, blank=True, null=True) + goods_type = models.CharField(max_length=20, blank=True, null=True) + gprice = models.FloatField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'goods_info' + + +class GoodsInv(models.Model): + inv_id = models.CharField(primary_key=True, max_length=10) + eid = models.ForeignKey('StockAdmin', models.DO_NOTHING, db_column='eid') + inv_time = models.DateTimeField() + + class Meta: + managed = False + db_table = 'goods_inv' + + +class Inventory(models.Model): + inv = models.OneToOneField(GoodsInv, models.DO_NOTHING, primary_key=True) + goods = models.ForeignKey('StockInfo', models.DO_NOTHING) + + class Meta: + managed = False + db_table = 'inventory' + unique_together = (('inv', 'goods'),) + + +class Jbj4Renqi(models.Model): + tim = models.DateTimeField(blank=True, null=True) + peo = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'jbj4_renqi' + + +class Jbj5Renqi(models.Model): + tim = models.DateTimeField(blank=True, null=True) + peo = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'jbj5_renqi' + + +class Jbj6Renqi(models.Model): + tim = models.DateTimeField(blank=True, null=True) + peo = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'jbj6_renqi' + + +class Jbj7Renqi(models.Model): + tim = models.DateTimeField(blank=True, null=True) + peo = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'jbj7_renqi' + + +class Jbj8Renqi(models.Model): + tim = models.DateTimeField(blank=True, null=True) + peo = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'jbj8_renqi' + + +class LiveRecord(models.Model): + live_record_id = models.CharField(primary_key=True, max_length=20) + liveroom = models.ForeignKey('LiveroomInfo', models.DO_NOTHING) + eid = models.ForeignKey('ZbInfo', models.DO_NOTHING, db_column='eid') + live_starttime = models.DateTimeField(blank=True, null=True) + live_endtime = models.DateTimeField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'live_record' + + +class LiveroomInfo(models.Model): + liveroom_id = models.CharField(primary_key=True, max_length=10) + liveroom_status = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'liveroom_info' + + +class LogisticsInfo(models.Model): + logi_id = models.CharField(max_length=60, primary_key=True) + sup = models.OneToOneField('SupplyInfo', models.DO_NOTHING, related_name='order_logi_sup') + procure = models.ForeignKey('ProcureOrder', models.DO_NOTHING, to_field='procure', + related_name="order_logi_procure") + start_time = models.DateTimeField() + logi_status = models.CharField(max_length=10) + arrival_time = models.DateTimeField(blank=True, null=True) + over = models.IntegerField() + + class Meta: + managed = False + db_table = 'logistics_info' + unique_together = (('sup', 'logi_id', 'procure'),) + + +class OrderDetails(models.Model): + order_id = models.CharField(primary_key=True, max_length=25) + goods = models.ForeignKey(GoodsInfo, models.DO_NOTHING) + goods_num = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'order_details' + unique_together = (('order_id', 'goods'),) + + +class OrderInfo(models.Model): + order_id = models.CharField(primary_key=True, max_length=25) + live_record_id = models.CharField(max_length=20) + cid = models.CharField(max_length=20) + eid = models.ForeignKey('SalesInfo', models.DO_NOTHING, db_column='eid') + order_time = models.DateTimeField(blank=True, null=True) + address = models.CharField(max_length=100, blank=True, null=True) + sum_price = models.FloatField(blank=True, null=True) + process_status = models.CharField(max_length=10, blank=True, null=True) + + class Meta: + managed = False + db_table = 'order_info' + + +class PredictNum(models.Model): + goods_id = models.CharField(primary_key=True, max_length=25) + goods_name = models.CharField(max_length=45) + stock_num = models.IntegerField() + predict_num = models.IntegerField() + kucun_num = models.IntegerField() + caigou_num = models.IntegerField() + + class Meta: + managed = False + db_table = 'predict_num' + + class ProcureAdmin(models.Model): eid = models.OneToOneField(EmployeeInfo, models.DO_NOTHING, db_column='eid', primary_key=True) pro_name = models.CharField(max_length=10, blank=True, null=True) @@ -38,102 +343,108 @@ class ProcureOrder(models.Model): # 采购订单 unique_together = (('sup', 'procure'),) -class ProcurePlan(models.Model): # 采购计划 +class ProcurePlan(models.Model): procure = models.OneToOneField('ReplenishRequest', models.DO_NOTHING, primary_key=True) check_status = models.CharField(max_length=8) project_intro = models.CharField(max_length=1024, blank=True, null=True) procure_rule = models.CharField(max_length=1024, blank=True, null=True) procure_content = models.CharField(max_length=1024, blank=True, null=True) - over = models.IntegerField() + over = models.IntegerField(blank=True, null=True) class Meta: managed = False db_table = 'procure_plan' +class Receivables(models.Model): + recv_id = models.CharField(primary_key=True, max_length=20) + order = models.ForeignKey(OrderInfo, models.DO_NOTHING) + invoice_id = models.CharField(max_length=20, blank=True, null=True) + + class Meta: + managed = False + db_table = 'receivables' + + class ReplenishRequest(models.Model): request_num = models.IntegerField() request_time = models.DateTimeField() - procure_id = models.CharField(primary_key=True, max_length=10) - eid = models.ForeignKey(ProcureAdmin, models.DO_NOTHING, db_column='eid') + procure_id = models.CharField(primary_key=True, max_length=50) goods = models.ForeignKey('StockInfo', models.DO_NOTHING, blank=True, null=True) - over = models.IntegerField() + over = models.IntegerField(blank=True, null=True) class Meta: managed = False db_table = 'replenish_request' -class SupplyInfo(models.Model): - sup_id = models.CharField(primary_key=True, max_length=10) - sup_name = models.CharField(max_length=20) - sup_contact = models.CharField(max_length=15) - sup_serve = models.CharField(max_length=1024) - sup_level = models.CharField(max_length=10) +class ReturnInfo(models.Model): + return_id = models.CharField(primary_key=True, max_length=20) + order = models.ForeignKey(OrderInfo, models.DO_NOTHING) + apply_time = models.DateTimeField(blank=True, null=True) + process_time = models.DateTimeField(blank=True, null=True) + process_way = models.CharField(max_length=20, blank=True, null=True) + retrun_status = models.CharField(max_length=20, blank=True, null=True) class Meta: managed = False - db_table = 'supply_info' + db_table = 'return_info' -class StockInfo(models.Model): - goods = models.OneToOneField('GoodsInfo', models.DO_NOTHING, primary_key=True) - goods_details = models.CharField(max_length=1024, blank=True, null=True) - stock_num = models.IntegerField() +class SalesIndex(models.Model): + goods = models.OneToOneField(GoodsInfo, models.DO_NOTHING, primary_key=True) + profit_rate = models.FloatField(blank=True, null=True) + sales_num = models.IntegerField(blank=True, null=True) + return_rate = models.FloatField(blank=True, null=True) + kpi_rate = models.FloatField(blank=True, null=True) + index_month = models.IntegerField() class Meta: managed = False - db_table = 'stock_info' + db_table = 'sales_index' + unique_together = (('goods', 'index_month'),) -class GoodsInfo(models.Model): - goods_id = models.CharField(primary_key=True, max_length=10) - goods_name = models.CharField(max_length=20, blank=True, null=True) - goods_type = models.CharField(max_length=20, blank=True, null=True) - gprice = models.FloatField(blank=True, null=True) +class SalesInfo(models.Model): + eid = models.OneToOneField(EmployeeInfo, models.DO_NOTHING, db_column='eid', primary_key=True) + sales_name = models.CharField(max_length=10, blank=True, null=True) + sales_duty = models.CharField(max_length=20, blank=True, null=True) + login_status = models.IntegerField(blank=True, null=True) + salary = models.FloatField(blank=True, null=True) class Meta: managed = False - db_table = 'goods_info' + db_table = 'sales_info' -class LogisticsInfo(models.Model): - logi_id = models.CharField(max_length=10, primary_key=True) - sup = models.OneToOneField('SupplyInfo', models.DO_NOTHING, related_name='order_logi_sup') - procure = models.ForeignKey('ProcureOrder', models.DO_NOTHING, to_field='procure', related_name="order_logi_procure") - start_time = models.DateTimeField() - logi_status = models.CharField(max_length=10) - arrival_time = models.DateTimeField(blank=True, null=True) - over = models.IntegerField() +class SalesPerformance(models.Model): + sales_performance = models.IntegerField(blank=True, null=True) + performance_rank = models.IntegerField(blank=True, null=True) + performance_month = models.IntegerField(primary_key=True) + eid = models.ForeignKey(EmployeeInfo, models.DO_NOTHING, db_column='eid') class Meta: managed = False - db_table = 'logistics_info' - unique_together = (('sup', 'logi_id', 'procure'),) + db_table = 'sales_performance' + unique_together = (('performance_month', 'eid'),) -class QualityInfo(models.Model): - sup = models.OneToOneField(SupplyInfo, models.DO_NOTHING, to_field='sup_id', - related_name='qualityinfo_sup_set') - logi = models.ForeignKey(LogisticsInfo, models.DO_NOTHING, to_field='logi_id', related_name='qualityinfo_logi_set') - procure = models.ForeignKey(ReplenishRequest, models.DO_NOTHING, primary_key=True, ) - quality_status = models.CharField(max_length=10) - quality_result = models.CharField(max_length=10) - details_info = models.CharField(max_length=1024, blank=True, null=True) - over = models.IntegerField() +class StockAdmin(models.Model): + eid = models.OneToOneField(EmployeeInfo, models.DO_NOTHING, db_column='eid', primary_key=True) + st_name = models.CharField(max_length=10, blank=True, null=True) class Meta: managed = False - db_table = 'quality_info' - unique_together = (('sup', 'logi', 'procure'),) + db_table = 'stock_admin' class StockIn(models.Model): - procure = models.CharField(primary_key=True, max_length=10) # The composite primary key (procure, goods_id) found, that is not supported. The first column is selected. + procure = models.CharField(primary_key=True, max_length=25) goods_id = models.CharField(max_length=45) goods_name = models.CharField(max_length=45) in_num = models.IntegerField() in_time = models.DateTimeField() + in_status = models.IntegerField() class Meta: managed = False @@ -141,4 +452,66 @@ class StockIn(models.Model): unique_together = (('procure', 'goods_id'),) +class StockInfo(models.Model): + goods = models.OneToOneField(GoodsInfo, models.DO_NOTHING, primary_key=True) + goods_name = models.CharField(max_length=45, blank=True, null=True) + stock_num_system = models.IntegerField() + stock_num_true = models.IntegerField(blank=True, null=True) + stock_num_diff = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'stock_info' + + +class StockOut(models.Model): + order = models.OneToOneField(OrderInfo, models.DO_NOTHING, primary_key=True) + goods = models.ForeignKey(StockInfo, models.DO_NOTHING) + goods_name = models.CharField(max_length=45) + out_time = models.DateTimeField(blank=True, null=True) + out_num = models.IntegerField() + out_status = models.IntegerField() + + class Meta: + managed = False + db_table = 'stock_out' + unique_together = (('order', 'goods'),) + + +class SupplyInfo(models.Model): + sup_id = models.CharField(primary_key=True, max_length=10) + sup_name = models.CharField(max_length=20) + sup_contact = models.CharField(max_length=1024) + sup_serve = models.CharField(max_length=1024) + sup_level = models.CharField(max_length=10) + + class Meta: + managed = False + db_table = 'supply_info' + + +class ZbInfo(models.Model): + eid = models.OneToOneField(EmployeeInfo, models.DO_NOTHING, db_column='eid', primary_key=True) + zbname = models.CharField(max_length=10, blank=True, null=True) + zblevel = models.CharField(max_length=1024, blank=True, null=True) + login_status = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'zb_info' + +class QualityInfo(models.Model): + sup = models.OneToOneField(SupplyInfo, models.DO_NOTHING, to_field='sup_id', + related_name='qualityinfo_sup_set') + logi = models.ForeignKey(LogisticsInfo, models.DO_NOTHING, to_field='logi_id', related_name='qualityinfo_logi_set') + procure = models.ForeignKey(ReplenishRequest, models.DO_NOTHING, primary_key=True, ) + quality_status = models.CharField(max_length=10) + quality_result = models.CharField(max_length=10) + details_info = models.CharField(max_length=1024, blank=True, null=True) + over = models.IntegerField() + + class Meta: + managed = False + db_table = 'quality_info' + unique_together = (('sup', 'logi', 'procure'),) diff --git a/system/proc/views.py b/system/proc/views.py index 17d284a..8d68c6f 100644 --- a/system/proc/views.py +++ b/system/proc/views.py @@ -123,7 +123,7 @@ def insert_order(request): # 生成采购计划,并插入数据库 {"replenish": replenish, "plan": plan, "order": order, "quality": quality}) replenish1 = plan.procure # print(plan) - sup = SupplyInfo.objects.filter(sup_serve=plan.procure_content).order_by('sup_level').first() + sup = SupplyInfo.objects.filter(sup_serve__icontains=plan.procure_content).order_by('sup_level').first() num = replenish1.request_num price = replenish1.goods.goods.gprice / 2.5 ProcureOrder.objects.create(procure=plan, sup=sup, procure_price=price, procure_num=num, over=0) @@ -244,7 +244,7 @@ def good_sub(request): if quality.quality_result == "合格": StockIn.objects.create(procure=id, goods_id=good_id, goods_name=good_name, - in_num=in_num, in_time=in_time) + in_num=in_num, in_time=in_time, in_status=0) replenish1.over = 1 replenish1.save() plan.over = 1 diff --git a/system/sales/views.py b/system/sales/views.py index 15f6ded..677f0cb 100644 --- a/system/sales/views.py +++ b/system/sales/views.py @@ -55,7 +55,7 @@ def deliver_process(request): for good in deliver_goods: StockOut.objects.create( order_id=order.order_id, - goods_id=StockInfo.objects.get(goods=good.goods.goods_id).goods_id, + goods_id=good.goods.goods_id, goods_name=good.goods.goods_name, out_time=datetime.datetime.now(), out_num=good.goods_num) deliver_list.update(process_status="已发货") @@ -91,5 +91,5 @@ def sales_movement(request): bar_sum.set_series_opts(label_opts=opt.LabelOpts(position="right", formatter="{b}:{c}")) bar_sum.set_global_opts(title_opts=opt.TitleOpts(title="销售额/量对比"), legend_opts=opt.LegendOpts(type_="scroll", orient="vertical")) - bar_sum.render("Django_structure/system/templates/Pye_chart/sales_index_movement.html") + bar_sum.render("templates/Pye_chart/sales_index_movement.html") return render(request, "../templates/pye_chart/sales_index_movement.html") diff --git a/system/templates/Pye_chart/sales_index_movement.html b/system/templates/Pye_chart/sales_index_movement.html index d2601cd..09a6072 100644 --- a/system/templates/Pye_chart/sales_index_movement.html +++ b/system/templates/Pye_chart/sales_index_movement.html @@ -3,18 +3,16 @@ Awesome-pyecharts - - + + - - -
-
+ +
-
- -
- diff --git a/system/templates/WareHouse/in_out_return.html b/system/templates/WareHouse/in_out_return.html index a37a59e..ed81d2b 100644 --- a/system/templates/WareHouse/in_out_return.html +++ b/system/templates/WareHouse/in_out_return.html @@ -45,7 +45,7 @@ {{item.goods_name}} {{item.in_num}} {{item.in_time}} - 入 + {{item.in_status_cn}} {% endfor %} @@ -78,12 +78,12 @@ {% for item in stock_out_list%} {{forloop.counter}} - {{item.oder.order_id}} + {{item.order.order_id}} {{item.goods.goods_id}} {{item.goods_name}} {{item.out_num}} {{item.out_time}} - 出 + {{item.out_status_cn}} {% endfor %} @@ -116,12 +116,12 @@ {% for item in stock_return_list%} {{forloop.counter}} - {{item.order.order_id}} + {{item.order_id}} {{item.goods.goods_id}} {{item.goods_name}} {{item.goods_num}} {{item.return_time}} - 退 + {{item.return_status_cn}} {% endfor %} diff --git a/system/templates/WareHouse/print_bar.html b/system/templates/WareHouse/print_bar.html index 43e60d4..42eb2c7 100644 --- a/system/templates/WareHouse/print_bar.html +++ b/system/templates/WareHouse/print_bar.html @@ -7,11 +7,11 @@ -
+
diff --git a/system/templates/graph/test_graph_1.html b/system/templates/graph/test_graph_1.html index f32a5f5..6a970c3 100644 --- a/system/templates/graph/test_graph_1.html +++ b/system/templates/graph/test_graph_1.html @@ -15,7 +15,7 @@ $( function () { - setInterval(fetchData, 3000);//包装函数 + setInterval(fetchData, 10000);//包装函数 } ); $.ajaxSetup( { diff --git a/system/templates/graph/test_graph_2.html b/system/templates/graph/test_graph_2.html index 8f5f8d0..c41534e 100644 --- a/system/templates/graph/test_graph_2.html +++ b/system/templates/graph/test_graph_2.html @@ -15,7 +15,7 @@ $( function () { - setInterval(fetchData, 3000);//包装函数 + setInterval(fetchData, 10000);//包装函数 } ); $.ajaxSetup( { diff --git a/system/templates/graph/test_graph_3.html b/system/templates/graph/test_graph_3.html index 3047c61..ccb24ce 100644 --- a/system/templates/graph/test_graph_3.html +++ b/system/templates/graph/test_graph_3.html @@ -15,7 +15,7 @@ $( function () { - setInterval(fetchData, 3000);//包装函数 + setInterval(fetchData, 10000);//包装函数 } ); $.ajaxSetup( { diff --git a/system/templates/graph/test_graph_4.html b/system/templates/graph/test_graph_4.html index 4ca2184..65b04f7 100644 --- a/system/templates/graph/test_graph_4.html +++ b/system/templates/graph/test_graph_4.html @@ -15,7 +15,7 @@ $( function () { - setInterval(fetchData, 3000);//包装函数 + setInterval(fetchData, 10000);//包装函数 } ); $.ajaxSetup( { diff --git a/system/templates/graph/test_graph_5.html b/system/templates/graph/test_graph_5.html index 772524e..bc5f771 100644 --- a/system/templates/graph/test_graph_5.html +++ b/system/templates/graph/test_graph_5.html @@ -15,7 +15,7 @@ $( function () { - setInterval(fetchData, 3000);//包装函数 + setInterval(fetchData, 10000);//包装函数 } ); $.ajaxSetup( { diff --git a/system/templates/graph/wwww.html b/system/templates/graph/wwww.html new file mode 100644 index 0000000..cf7631e --- /dev/null +++ b/system/templates/graph/wwww.html @@ -0,0 +1,279 @@ + + + + + Awesome-pyecharts + + + + + +
+ + + diff --git a/system/templates/index.html b/system/templates/index.html index 83f2f39..d2436b9 100644 --- a/system/templates/index.html +++ b/system/templates/index.html @@ -267,8 +267,6 @@ 商品代码 商品类别 - 供货商 - 库存量 零售价 销售量 销售额 @@ -280,8 +278,6 @@ {{i.goods.goods_id}} {{i.goods.goods_type}} - ? - ? {{i.goods.gprice}} {{i.count}} {{i.sales_num}} diff --git a/system/templates/live-info.html b/system/templates/live-info.html index 7fcad54..1ad64a2 100644 --- a/system/templates/live-info.html +++ b/system/templates/live-info.html @@ -94,8 +94,8 @@

请输入登记的直播信息

-
- {% csrf_token %} + + {% csrf_token %}
@@ -123,10 +123,10 @@
+ id="GetEndTime" name="live_endtime" >
- +
@@ -146,7 +146,15 @@ id="ConfirmBtn" disabled onclick="alert('已生成并提交直播信息')"> 提交直播信息 +

{{ rlt }}

+ {% if messages %} + + {% endif %}
@@ -197,9 +205,10 @@ } } +