【开源】JAVA+Vue.js实现食品生产管理系统

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 加工厂管理模块
    • 2.2 客户管理模块
    • 2.3 食品管理模块
    • 2.4 生产销售订单管理模块
    • 2.5 系统管理模块
    • 2.6 其他管理模块
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询食品
    • 4.2 查询加工厂
    • 4.3 新增生产订单
    • 4.4 新增销售订单
    • 4.5 查询客户
  • 五、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的食品生产管理系统,包含了加工厂管理、客户管理、食品管理、生产订单、销售订单、系统公告模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,食品生产管理系统基于角色的访问控制,给食品管理员、加工厂店员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

在食品产品管理系统中的难点重点是不同食品有不同的有效期,当把食品供应到多个卖场之后,会存在食品的供应、回收等问题。这些问题亟待解决。

系统主要通过食品管理、用户管理以及各个不同的角色等主要功能模块来实现食品产品管理系统的功能。其中包括用户信息的建立、修改以及删除;商品信息的建立、修改以及删除。特别是用户进行订购产品时,当食品过多或不足,会存在食品的供应、回收等问题。以及对各类食品的管理。从而,实现对食品各种信息、用户信息等实现全面、动态、及时的管理。

2.1 加工厂管理模块

用于对于生产加工的工厂进行管理,管理者可以进行添加加工厂,修改信息、删除加工厂信息等功能。

2.2 客户管理模块

客户管理模块主要是把客户汇总,做成可视化表格,便于对客户进行增删改查等基本操作的管理。

2.3 食品管理模块

食品管理模块主要对已经产出的食品进行信息分类展示,管理员可以对它进行查看,并进行增删改查功能。

2.4 生产销售订单管理模块

包括生产订单管理模块以及销售管理模块。生产订单管理模块是把需要加工的食品订单进行管理;销售管理是记录以及销售的食品种类以及数量,清晰的看到各类食品的销售并进行选择进行加订。

2.5 系统管理模块

包括两个个模块,权限管理、角色管理。权限管理模块分为两个权限,管理用户并分配权限角色,权限分为管理员与食品加工厂管理员,管理员可以看到所有功能模块,加工厂管理员只能看到加工厂生产订单管理;角色管理模块管理各个权限角色并进行解释。

2.6 其他管理模块

包括登陆日志以及系统公告。登陆日志可以查看历史登陆信息;系统公告模块可以编辑发布公告呈现在管理员的首页。


三、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、核心代码

4.1 查询食品

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询食品")
public Result<IPage<Food>> getByPage(@ModelAttribute Food food ,@ModelAttribute PageVo page){
    QueryWrapper<Food> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(food.getTitle())) {
        qw.like("title",food.getTitle());
    }
    if(!ZwzNullUtils.isNull(food.getContent())) {
        qw.like("content",food.getContent());
    }
    if(!ZwzNullUtils.isNull(food.getType())) {
        qw.eq("type",food.getType());
    }
    IPage<Food> data = iFoodService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Food>>().setData(data);
}

4.2 查询加工厂

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询加工厂")
public Result<IPage<ProcessingFactory>> getByPage(@ModelAttribute ProcessingFactory processingFactory ,@ModelAttribute PageVo page){
    QueryWrapper<ProcessingFactory> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(processingFactory.getTitle())) {
        qw.like("title",processingFactory.getTitle());
    }
    if(!ZwzNullUtils.isNull(processingFactory.getAddress())) {
        qw.like("address",processingFactory.getAddress());
    }
    if(!ZwzNullUtils.isNull(processingFactory.getDutyName())) {
        qw.like("duty_name",processingFactory.getDutyName());
    }
    IPage<ProcessingFactory> data = iProcessingFactoryService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<ProcessingFactory>>().setData(data);
}

4.3 新增生产订单

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增生产订单")
public Result<ProduceOrder> insert(ProduceOrder produceOrder){
    Food food = iFoodService.getById(produceOrder.getFoodId());
    if(food == null) {
        return ResultUtil.error("食品不存在");
    }
    produceOrder.setFoodName(food.getTitle());
    produceOrder.setContent(food.getContent());
    produceOrder.setImage(food.getImage());
    produceOrder.setType(food.getType());
    iProduceOrderService.saveOrUpdate(produceOrder);
    food.setStock(food.getStock().add(produceOrder.getNumber()));
    iFoodService.saveOrUpdate(food);
    return new ResultUtil<ProduceOrder>().setData(produceOrder);
}

4.4 新增销售订单

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增销售订单")
public Result<SalesOrder> insert(SalesOrder salesOrder){
    Food food = iFoodService.getById(salesOrder.getFoodId());
    if(food == null) {
        return ResultUtil.error("食品不存在");
    }
    if(food.getStock().compareTo(salesOrder.getNumber()) < 0) {
        return ResultUtil.error("库存不足");
    }
    salesOrder.setFoodName(food.getTitle());
    salesOrder.setContent(food.getContent());
    salesOrder.setImage(food.getImage());
    salesOrder.setType(food.getType());
    Customer customer = iCustomerService.getById(salesOrder.getBuyId());
    if(customer == null) {
        return ResultUtil.error("客户不存在");
    }
    salesOrder.setBuyName(customer.getTitle());
    iSalesOrderService.saveOrUpdate(salesOrder);
    food.setStock(food.getStock().subtract(salesOrder.getNumber()));
    iFoodService.saveOrUpdate(food);
    return new ResultUtil<SalesOrder>().setData(salesOrder);
}

4.5 查询客户

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询客户")
public Result<IPage<Customer>> getByPage(@ModelAttribute Customer customer ,@ModelAttribute PageVo page){
    QueryWrapper<Customer> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(customer.getTitle())) {
        qw.like("title",customer.getTitle());
    }
    if(!ZwzNullUtils.isNull(customer.getSex())) {
        qw.eq("sex",customer.getSex());
    }
    if(!ZwzNullUtils.isNull(customer.getChannel())) {
        qw.eq("channel",customer.getChannel());
    }
    IPage<Customer> data = iCustomerService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Customer>>().setData(data);
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/431949.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

操作系统:初识操作系统

目录 1.冯诺依曼体系结构 2.操作系统 2.1什么是操作系统 2.2为什么需要操作系统 2.3怎么实现操作系统 1.冯诺依曼体系结构 对于上图&#xff1a; 输入设备完成的是写入工作&#xff0c;输出设备完成输出工作&#xff0c;这两部分包含磁盘这类的外存。 存储器一般指的是内存…

【C#杂谈】在 .NET Framework 中使用新的C#语言特性

前排提示&#xff1a;提出一个可以让 [^1] 这中语法可以在.NET Framework运行时中使用的方法 众所都周知&#xff0c;.NET Framework&#xff08;以下简称 .NF&#xff09;作为一个被微软官方确认不在继续发布新特性的运行时&#xff0c;它所对应的C#语言版本被&#xff08;官方…

TruEra

文章目录 关于 TruEra关于 TruLens 关于 TruEra TruEra Gen AI Observability and LLM Evaluation​ Monitor, evaluate, and debug your LLM and Gen AI apps. All part of Full Lifecycle AI Observability from TruEra. 官网&#xff1a;https://truera.comgithub : https…

时间序列分析技巧(一):根据ACF、PACF进行AR、MA、ARMA模型选择

程序员如何选择职业赛道&#xff1f; &#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#…

定时执行专家 - 自动截屏任务的设置步骤

以下是使用定时执行专家进行自动截屏的设置步骤&#xff1a; 下载并安装定时执行专家 从以下 官方博客 下载最新版本的定时执行专家&#xff0c;并按照提示进行安装。 BoomWorks软件的最新版-CSDN博客文章浏览阅读10w次&#xff0c;点赞9次&#xff0c;收藏42次。▉定时执行…

C语言数据结构与算法——深度、广度优先搜索(DFS、BFS)

目录 一、深度优先搜索&#xff08;Depth-First-Search 简称&#xff1a;DFS&#xff09; 无向图的深度优先搜索 有向图的深度优先搜索 二、广度优先搜索&#xff08;Breadth-First-Search 简称&#xff1a;BFS&#xff09; 无向图的广度优先搜索 有向图的广度优先搜索 深…

市场复盘总结 20240305

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 25% 最常用的…

CSS字体样式值,html注释标签

突破困境&#xff1a; 1. 提升学历 前端找工作&#xff0c;学历重要吗&#xff1f; 重要。谁要是告诉你不重要那一定是在骗你。现实情况是大专吃紧&#xff0c;本科够用&#xff0c;硕士占优&#xff0c;大专以下找到工作靠运气和真实力。 学历是硬伤&#xff0c;已经毕业的你…

(黑马出品_02)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

&#xff08;黑马出品_02&#xff09;SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术栈治理 今日目标1.Nacos配置管理1.1.统一配置管理1.1.1.在nacos中添加配置文件1.1.2.从微服务拉取配置 1.2.配置热更新1.2.1.方式一1.2.2.方式二 1.3.配…

【Java设计模式】六、代理模式:静态代理、JDK + CGLIB动态代理

文章目录 1、代理对象2、代理模式结构3、静态代理4、JDK动态代理5、JDK动态代理的原理6、CGLIB动态代理7、三种代理的对比8、代理模式的总结 结构型设计是将类或者对象按某种布局&#xff08;继承机制、组合聚合&#xff09;来组成更大结构。包括七种&#xff1a; * 代理模式 …

代码随想录第51天|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结

文章目录 ● 309.最佳买卖股票时机含冷冻期思路代码 ● 714.买卖股票的最佳时机含手续费思路&#xff1a; ●总结 ● 309.最佳买卖股票时机含冷冻期 思路 代码 class Solution {public int maxProfit(int[] prices) {// 0.买入状态-(持有)// 1.保持卖出股票的状态// 2.今天…

JVM运行时数据区——堆

文章目录 1、堆的核心概述1.1、JVM实例与堆内存的对应关系1.2、堆与栈的关系1.3、JVM堆空间划分 2、设置堆内存大小与内存溢出2.1、设置堆内存大小2.2、内存溢出案例 3、新生代与老年代4、图解对象分配过程5、Minor GC、Major GC、Full GC5.1、GC的分类5.2、分代式GC策略的触发…

Sora:AI视频模型的无限可能与挑战

随着人工智能技术的突飞猛进&#xff0c;AI视频模型已成为科技领域的新焦点。OpenAI推出的AI视频模型Sora&#xff0c;凭借其卓越的技术性能和前瞻性&#xff0c;为AI视频领域的发展揭开了新的篇章。本文将从技术解析、应用场景、未来展望、伦理与创意以及用户体验与互动五个方…

【python基础学习09课_装饰器、模块、文件】

一、项目的日志 1、日志意义与级别 1、日志的意义&#xff1a;项目的日志 -- 开发编写的&#xff0c;日志记录 -- 测试就是去查看日志信息&#xff08;为了协助我们进行问题的定位&#xff09; 可以根据日志&#xff0c;看是哪个应用的哪台机器&#xff0c;出现了什么问题&…

Scala 之舞:林浩然与杨凌芸的 IDEA 冒险

Scala 之舞&#xff1a;林浩然与杨凌芸的 IDEA 冒险 The Dance of Scala: The IDEA Adventure of Lin Haoran and Yang Lingyun 在那个阳光明媚的日子里&#xff0c;林浩然如同一位英勇的探险家&#xff0c;踏入了 Scala 的 IntelliJ IDEA 开发环境的奇妙领域&#xff0c;他带着…

day7 字符数组

1&#xff1a;输入一个字符串&#xff0c;实现单词逆置 输入:"good good study" 输出&#xff1a;"study good good" 6 //单词逆置7 // good good study8 // study good good9 10 //整体逆置11 char str[50]"good good stu…

springboot集成logback打印彩色日志

一、logback介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站&#xff1a; logback.qos.ch。它当前分为以下三个模块&#xff1a; logback-core&#xff1a;其它两个模块的基础模块。logback-classic&#xff1a;它是log4j的一个改良版本&#xff0c;同时它完整实…

C++基于多设计模式下的同步异步日志系统day6

C基于多设计模式下的同步&异步日志系统day6 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C基于多设计模式下的同步&异步日志系统 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&am…

云手机运行在云端?安全性有保障吗

随着云计算技术的不断发展&#xff0c;云手机作为一种新兴的移动终端形态&#xff0c;逐渐成为人们关注的焦点。然而&#xff0c;对于许多人来说&#xff0c;云手机 是一个相对陌生的概念&#xff0c;安全性成为了他们最为关心的问题之一。本文将就云手机运行在云端的特点以及其…

JWT身份验证

在实际项目中一般会使用jwt鉴权方式。 JWT知识点 jwt&#xff0c;全称json web token &#xff0c;JSON Web令牌是一种开放的行业标准RFC 7519方法&#xff0c;用于在两方安全地表示声明。具体网上有许多文章介绍&#xff0c;这里做简单的使用。 1.数据结构 JSON Web Token…