From d45b56f663436eafe10a57f6ced6dd9b037ef537 Mon Sep 17 00:00:00 2001 From: Rui Xue <1345359360@qq.com> Date: Thu, 1 Jun 2023 17:06:25 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=94=80=E5=94=AE=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/sales/models.py | 44 +-- system/sales/views.py | 34 +- .../Pye_chart/sales_index_movement.html | 341 ++++++------------ system/templates/Sales/index.html | 8 +- system/templates/index.html | 4 +- 5 files changed, 128 insertions(+), 303 deletions(-) diff --git a/system/sales/models.py b/system/sales/models.py index af5af8f..2757851 100644 --- a/system/sales/models.py +++ b/system/sales/models.py @@ -274,20 +274,6 @@ class LiveroomInfo(models.Model): db_table = 'liveroom_info' -class LogisticsInfo(models.Model): - logi_id = models.CharField(max_length=10, unique=True) - sup = models.OneToOneField('ProcureOrder', models.DO_NOTHING, primary_key=True) # The composite primary key (sup_id, logi_id, procure_id) found, that is not supported. The first column is selected. - procure = models.ForeignKey('ProcureOrder', models.DO_NOTHING, to_field='procure_id', related_name='logisticsinfo_procure_set', unique=True) - start_time = models.DateTimeField() - logi_status = models.CharField(max_length=10) - arrival_time = models.DateTimeField(blank=True, null=True) - - 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) # The composite primary key (order_id, goods_id) found, that is not supported. The first column is selected. goods = models.ForeignKey(GoodsInfo, models.DO_NOTHING) @@ -323,17 +309,6 @@ class ProcureAdmin(models.Model): db_table = 'procure_admin' -class ProcureOrder(models.Model): - sup = models.OneToOneField('SupplyInfo', models.DO_NOTHING, primary_key=True) # The composite primary key (sup_id, procure_id) found, that is not supported. The first column is selected. - procure = models.ForeignKey('ProcurePlan', models.DO_NOTHING, unique=True) - procure_price = models.FloatField() - procure_num = models.IntegerField() - - class Meta: - managed = False - db_table = 'procure_order' - unique_together = (('sup', 'procure'),) - class ProcurePlan(models.Model): procure = models.OneToOneField('ReplenishRequest', models.DO_NOTHING, primary_key=True) @@ -347,20 +322,6 @@ class ProcurePlan(models.Model): db_table = 'procure_plan' -class QualityInfo(models.Model): - sup = models.OneToOneField(LogisticsInfo, models.DO_NOTHING, primary_key=True) # The composite primary key (sup_id, logi_id, procure_id) found, that is not supported. The first column is selected. - logi = models.ForeignKey(LogisticsInfo, models.DO_NOTHING, to_field='logi_id', related_name='qualityinfo_logi_set') - procure = models.ForeignKey(LogisticsInfo, models.DO_NOTHING, to_field='procure_id', related_name='qualityinfo_procure_set') - 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) - - class Meta: - managed = False - db_table = 'quality_info' - unique_together = (('sup', 'logi', 'procure'),) - - class Receivables(models.Model): recv_id = models.CharField(primary_key=True, max_length=20) order = models.ForeignKey(OrderInfo, models.DO_NOTHING) @@ -454,13 +415,16 @@ class StockInfo(models.Model): class StockOut(models.Model): - goods = models.OneToOneField(StockInfo, models.DO_NOTHING, primary_key=True) + goods = models.OneToOneField(StockInfo, models.DO_NOTHING, primary_key=True) # The composite primary key (goods_id, order_id) found, that is not supported. The first column is selected. out_time = models.DateTimeField() out_num = models.IntegerField() + order = models.ForeignKey(OrderInfo, models.DO_NOTHING) + goods_name = models.CharField(max_length=45) class Meta: managed = False db_table = 'stock_out' + unique_together = (('goods', 'order'),) class SupplyInfo(models.Model): diff --git a/system/sales/views.py b/system/sales/views.py index 1cb609f..b3e7e8a 100644 --- a/system/sales/views.py +++ b/system/sales/views.py @@ -49,15 +49,15 @@ def order_process(request): def deliver_process(request): deliver_list = models.OrderInfo.objects.filter(eid='SA42376', process_status='已处理') if deliver_list.exists(): - goods_list = dict() for order in deliver_list: - goods = models.OrderDetails.objects.filter(order_id=order.order_id) - for good in goods: - goods_list[good.goods] = goods_list.get(good.goods, 0) + good.goods_num + deliver_goods = models.OrderDetails.objects.filter(order_id=order.order_id) + for good in deliver_goods: + models.StockOut.objects.create( + order_id=order.order_id, + goods_id=models.StockInfo.objects.get(goods=good.goods.goods_id).goods_id, + goods_name=good.goods.goods_name, + out_time=datetime.datetime.now(), out_num=good.goods_num) deliver_list.update(process_status="已发货") - for good in goods_list.keys(): - models.StockOut.objects.create(goods=models.StockInfo.objects.get(goods=good), - out_time=datetime.datetime.now(), out_num=goods_list[good]) return sale_index(request) @@ -75,26 +75,20 @@ def sales_movement(request): goods_list = list() goods_number = list() goods_sale_sum = list() - for item in models.GoodsInfo.objects.all(): + for item in models.GoodsInfo.objects.all().order_by('-goods_name'): goods_list.append(item.goods_name) tot_num_for_this_id = 0 for order in models.OrderDetails.objects.filter(goods=item.goods_id): tot_num_for_this_id += order.goods_num goods_number.append(tot_num_for_this_id) goods_sale_sum.append(tot_num_for_this_id * item.gprice) - bar_sum = Bar(init_opts=opt.InitOpts(theme=ThemeType.VINTAGE, width="1200px", height="600px")) + bar_sum = Bar(init_opts=opt.InitOpts(theme=ThemeType.VINTAGE, width="1600px", height="800px")) bar_sum.add_xaxis(goods_list) bar_sum.add_yaxis("销售额", goods_sale_sum) + bar_sum.add_yaxis("销售量", goods_number) bar_sum.reversal_axis() - bar_sum.set_series_opts(label_opts=opt.LabelOpts(position="right")) - bar_sum.set_global_opts(title_opts=opt.TitleOpts(title="销售额对比")) - - bar_qtt = Bar(init_opts=opt.InitOpts(theme=ThemeType.VINTAGE, width="1200px", height="600px")) - bar_qtt.add_xaxis(goods_list) - bar_qtt.add_yaxis("销售量", goods_number) - bar_qtt.reversal_axis() - bar_qtt.set_series_opts(label_opts=opt.LabelOpts(position="right")) - bar_qtt.set_global_opts(title_opts=opt.TitleOpts(title="销售量对比")) - page = Page().add(bar_qtt).add(bar_sum) - page.render("Django_structure/system/templates/Pye_chart/sales_index_movement.html") + 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") 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 048f788..713d718 100644 --- a/system/templates/Pye_chart/sales_index_movement.html +++ b/system/templates/Pye_chart/sales_index_movement.html @@ -6,16 +6,13 @@ -
- -