团子烘焙销售服务系统【Java项目、Java课设、Java毕设、Java期末大作业、毕设必备项目】【源码+论文+答辩】

59 阅读6分钟

💖💖作者:计算机编程小咖 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目

@TOC

团子烘焙销售服务系统介绍

团子烘焙销售服务系统是一个基于现代Web技术栈开发的综合性烘焙商业管理平台,采用B/S架构设计,支持Java和Python两种开发语言实现。系统后端采用SpringBoot框架(Java版本)或Django框架(Python版本)构建,前端使用Vue.js结合ElementUI组件库开发,数据库采用MySQL进行数据存储和管理。该系统围绕烘焙行业的完整业务流程设计,涵盖了从商品管理到订单处理的全链条功能模块。系统核心功能包括用户信息管理、烘焙师信息维护、烘焙商品分类管理、烘焙作品展示、订单全流程管理(包含订单创建、支付、发货、签收等状态追踪)、薪酬信息统计以及公告信息发布等。在订单管理方面,系统提供了完善的订单状态分类,支持已完成订单、已支付订单、已发货订单、已退款订单的分别管理,确保订单处理流程的规范化和透明化。系统还集成了个人中心功能,为用户提供个性化的操作界面和信息管理功能。整个系统界面简洁美观,操作流程符合用户习惯,能够有效提升烘焙店铺的运营效率,为烘焙行业的数字化转型提供了完整的解决方案,同时也为计算机专业学生提供了一个功能完备、技术栈主流、易于理解和扩展的优秀毕业设计选题。

团子烘焙销售服务系统演示视频

演示视频

团子烘焙销售服务系统演示图片

烘焙订单.png

烘焙发货.png

烘焙签收.png

烘焙商品.png

烘焙师信息.png

烘焙作品.png

团子烘焙销售服务系统代码展示

from pyspark.sql import SparkSession
from django.http import JsonResponse
from django.views import View
from django.db import transaction
from decimal import Decimal
from datetime import datetime
import json

spark = SparkSession.builder.appName("TuanZiBakerySystem").master("local[*]").getOrCreate()

class OrderManagementService(View):
    def create_order(self, request):
        try:
            order_data = json.loads(request.body)
            user_id = order_data.get('user_id')
            product_items = order_data.get('product_items')
            total_amount = Decimal('0.00')
            order_details = []
            with transaction.atomic():
                for item in product_items:
                    product_id = item.get('product_id')
                    quantity = int(item.get('quantity'))
                    product = BakingProduct.objects.get(id=product_id)
                    if product.stock_quantity < quantity:
                        return JsonResponse({'error': f'商品{product.name}库存不足'}, status=400)
                    item_total = product.price * quantity
                    total_amount += item_total
                    order_detail = {
                        'product_id': product_id,
                        'product_name': product.name,
                        'unit_price': product.price,
                        'quantity': quantity,
                        'subtotal': item_total
                    }
                    order_details.append(order_detail)
                    product.stock_quantity -= quantity
                    product.save()
                order = BakingOrder.objects.create(
                    user_id=user_id,
                    order_number=self.generate_order_number(),
                    total_amount=total_amount,
                    order_status='待支付',
                    create_time=datetime.now()
                )
                for detail in order_details:
                    OrderDetail.objects.create(
                        order=order,
                        product_id=detail['product_id'],
                        quantity=detail['quantity'],
                        unit_price=detail['unit_price'],
                        subtotal=detail['subtotal']
                    )
                order_spark_data = spark.createDataFrame([(order.id, order.order_number, float(total_amount), order.order_status)])
                order_spark_data.write.mode("append").option("path", "/data/orders").saveAsTable("baking_orders")
                return JsonResponse({
                    'success': True,
                    'order_id': order.id,
                    'order_number': order.order_number,
                    'total_amount': str(total_amount)
                })
        except Exception as e:
            return JsonResponse({'error': f'订单创建失败: {str(e)}'}, status=500)

class ProductManagementService(View):
    def add_product(self, request):
        try:
            product_data = json.loads(request.body)
            category_id = product_data.get('category_id')
            product_name = product_data.get('name')
            price = Decimal(product_data.get('price'))
            stock_quantity = int(product_data.get('stock_quantity'))
            description = product_data.get('description', '')
            baker_id = product_data.get('baker_id')
            if BakingProduct.objects.filter(name=product_name).exists():
                return JsonResponse({'error': '商品名称已存在'}, status=400)
            if price <= 0:
                return JsonResponse({'error': '商品价格必须大于0'}, status=400)
            if stock_quantity < 0:
                return JsonResponse({'error': '库存数量不能为负数'}, status=400)
            category = ProductCategory.objects.get(id=category_id)
            baker = BakingMaster.objects.get(id=baker_id)
            product = BakingProduct.objects.create(
                name=product_name,
                category=category,
                price=price,
                stock_quantity=stock_quantity,
                description=description,
                baker=baker,
                create_time=datetime.now(),
                is_active=True
            )
            product_spark_data = [(product.id, product.name, float(price), stock_quantity, category.name, baker.name)]
            product_df = spark.createDataFrame(product_spark_data, ["id", "name", "price", "stock", "category", "baker"])
            product_df.write.mode("append").option("path", "/data/products").saveAsTable("baking_products")
            existing_products = spark.sql("SELECT * FROM baking_products WHERE category = '" + category.name + "'")
            category_stats = existing_products.groupBy("category").agg(
                {"price": "avg", "stock": "sum", "id": "count"}
            ).collect()
            return JsonResponse({
                'success': True,
                'product_id': product.id,
                'message': '商品添加成功',
                'category_stats': {
                    'avg_price': float(category_stats[0][1]) if category_stats else 0,
                    'total_stock': category_stats[0][2] if category_stats else 0,
                    'product_count': category_stats[0][3] if category_stats else 0
                }
            })
        except Exception as e:
            return JsonResponse({'error': f'商品添加失败: {str(e)}'}, status=500)

class SalaryManagementService(View):
    def calculate_baker_salary(self, request):
        try:
            request_data = json.loads(request.body)
            baker_id = request_data.get('baker_id')
            start_date = datetime.strptime(request_data.get('start_date'), '%Y-%m-%d')
            end_date = datetime.strptime(request_data.get('end_date'), '%Y-%m-%d')
            baker = BakingMaster.objects.get(id=baker_id)
            base_salary = baker.base_salary or Decimal('3000.00')
            commission_rate = baker.commission_rate or Decimal('0.05')
            completed_orders = BakingOrder.objects.filter(
                baker=baker,
                order_status='已完成',
                create_time__range=[start_date, end_date]
            )
            total_sales = sum([order.total_amount for order in completed_orders])
            commission_amount = total_sales * commission_rate
            bonus_amount = Decimal('0.00')
            if len(completed_orders) > 50:
                bonus_amount = Decimal('500.00')
            elif len(completed_orders) > 30:
                bonus_amount = Decimal('300.00')
            elif len(completed_orders) > 20:
                bonus_amount = Decimal('200.00')
            total_salary = base_salary + commission_amount + bonus_amount
            deduction_amount = Decimal('0.00')
            rejected_orders = BakingOrder.objects.filter(
                baker=baker,
                order_status='已退款',
                create_time__range=[start_date, end_date]
            ).count()
            if rejected_orders > 5:
                deduction_amount = Decimal(str(rejected_orders * 50))
            final_salary = total_salary - deduction_amount
            salary_data = [(baker.id, baker.name, float(base_salary), float(commission_amount), 
                           float(bonus_amount), float(deduction_amount), float(final_salary), 
                           len(completed_orders), float(total_sales))]
            salary_df = spark.createDataFrame(salary_data, 
                                            ["baker_id", "baker_name", "base_salary", "commission", 
                                             "bonus", "deduction", "final_salary", "order_count", "total_sales"])
            salary_df.write.mode("append").option("path", "/data/salaries").saveAsTable("baker_salaries")
            all_salaries = spark.sql(f"SELECT * FROM baker_salaries WHERE baker_id = {baker_id}")
            avg_monthly_salary = all_salaries.agg({"final_salary": "avg"}).collect()[0][0]
            SalaryRecord.objects.create(
                baker=baker,
                period_start=start_date,
                period_end=end_date,
                base_salary=base_salary,
                commission_amount=commission_amount,
                bonus_amount=bonus_amount,
                deduction_amount=deduction_amount,
                final_salary=final_salary,
                order_count=len(completed_orders),
                total_sales=total_sales,
                create_time=datetime.now()
            )
            return JsonResponse({
                'success': True,
                'salary_details': {
                    'baker_name': baker.name,
                    'base_salary': str(base_salary),
                    'commission_amount': str(commission_amount),
                    'bonus_amount': str(bonus_amount),
                    'deduction_amount': str(deduction_amount),
                    'final_salary': str(final_salary),
                    'order_count': len(completed_orders),
                    'total_sales': str(total_sales),
                    'avg_monthly_salary': float(avg_monthly_salary) if avg_monthly_salary else 0
                }
            })
        except Exception as e:
            return JsonResponse({'error': f'薪酬计算失败: {str(e)}'}, status=500)

团子烘焙销售服务系统文档展示

文档.png

💖💖作者:计算机编程小咖 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目