工厂车间|基于springBoot的工厂车间系统设计与实现(附项目源码+论文+数据库)

news2024/12/25 9:11:49

私信或留言即免费送开题报告和任务书(可指定任意题目)

目录

一、摘要

二、相关技术

三、系统设计

四、数据库设计 

五、核心代码 

六、论文参考 

七、源码获取


一、摘要

社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。本次开发一套基于VUE的工厂车间管理系统,有管理员和人员两个角色。管理员功能有个人中心,人员管理,看板信息管理,设备信息管理,生产开立管理,生产工序管理,生产流程管理。注册的人员可以登录和查看管理员发布的所有信息。基于VUE的工厂车间管理系统服务端用Java开发,用Spring Boot框架开发的网站后台,数据库用到了MySQL数据库作为数据的存储。这样就让用户用着方便快捷,都通过同一个后台进行业务处理,而后台又可以根据并发量做好部署,用硬件和软件进行协作,满足于数据的交互式处理,让用户的数据存储更安全,得到数据更方便。

关键工厂车间管理系统;Spring Boot框架;Java;MySQL

二、相关技术

java、tomcat、mysql、spring、sprigBoot、mybatis、query、vue

三、系统设计

3.1 整体功能设计图

在管理员功能模块确定下来的基础上,对管理员各个功能进行设计,确定管理员功能的详细模块。绘制的管理员功能结构见下图。管理员功能有个人中心,用户管理,看板信息管理,设备信息管理,订单管理,系统管理。

3.2 功能具体细节设计 

(1)人员管理

管理员可以对人员信息进行添加,修改,删除,查询操作。

(2)看板信息管理 

管理员可以对看板信息信息进行添加,修改,删除,查询操作。

(3)设备信息管理

管理员可以对设备信息进行添加,修改,删除,查询操作。

(4)生产开立管理

管理员可以查看,修改,删除,查询生产开立信息。 

四、数据库设计 

(1)人员表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

addtime

Date

创建时间

3

zhanghao

String

账号

4

mima

String

密码

5

xingming

String

姓名

6

xingbie

String

性别

7

touxiang

String

头像

8

youxiang

String

邮箱

9

shouji

String

手机

10

renyuanleixing

String

人员类型

(2)生产工序表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

addtime

Date

创建时间

3

shengchanpici

String

生产批次

4

gongxumingcheng

String

工序名称

5

gongxubianhao

String

工序编号

6

shebeimingcheng

String

设备名称

7

picishuliang

Integer

批次数量

8

gongxuneirong

String

工序内容

9

chanpinmingcheng

String

产品名称

10

fabushijian

datetime

发布时间

(3) 生产开立表 

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

addtime

Date

创建时间

3

gongdanshuliang

Integer

工单数量

4

shengchanpici

String

生产批次

5

picishuliang

Integer

批次数量

6

picishuoming

String

批次说明

7

chanpinmingcheng

String

产品名称

8

fabushijian

datetime

发布时间

 (4)看板信息表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

addtime

Date

创建时间

3

kanbanmingcheng

String

看板名称

4

yulantu

String

预览图

5

wangyelianjie

String

网页链接

6

neirongshuoming

String

内容说明

(5)生产流程表

序号

列名

数据类型

说明

允许空

1

Id

Int

id

2

addtime

Date

创建时间

3

shengchanpihao

String

生产批号

4

shengchanpici

String

生产批次

5

gongxumingcheng

String

工序名称

6

gongxubianhao

String

工序编号

7

shebeimingcheng

String

设备名称

8

picishuliang

Integer

批次数量

9

chanpinmingcheng

String

产品名称

10

shengchanzhuangtai

String

生产状态

更多图略...

五、核心代码 

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.ShebeixinxiEntity;
import com.entity.view.ShebeixinxiView;

import com.service.ShebeixinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;

/**
 * 设备信息
 * 后端接口
 * @author 
 * @email 
 * @date 2022-03-19 15:00:26
 */
@RestController
@RequestMapping("/shebeixinxi")
public class ShebeixinxiController {
    @Autowired
    private ShebeixinxiService shebeixinxiService;


    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ShebeixinxiEntity shebeixinxi,
		HttpServletRequest request){
        EntityWrapper<ShebeixinxiEntity> ew = new EntityWrapper<ShebeixinxiEntity>();
		PageUtils page = shebeixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shebeixinxi), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,ShebeixinxiEntity shebeixinxi, 
		HttpServletRequest request){
        EntityWrapper<ShebeixinxiEntity> ew = new EntityWrapper<ShebeixinxiEntity>();
		PageUtils page = shebeixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shebeixinxi), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( ShebeixinxiEntity shebeixinxi){
       	EntityWrapper<ShebeixinxiEntity> ew = new EntityWrapper<ShebeixinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( shebeixinxi, "shebeixinxi")); 
        return R.ok().put("data", shebeixinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ShebeixinxiEntity shebeixinxi){
        EntityWrapper< ShebeixinxiEntity> ew = new EntityWrapper< ShebeixinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( shebeixinxi, "shebeixinxi")); 
		ShebeixinxiView shebeixinxiView =  shebeixinxiService.selectView(ew);
		return R.ok("查询设备信息成功").put("data", shebeixinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        ShebeixinxiEntity shebeixinxi = shebeixinxiService.selectById(id);
        return R.ok().put("data", shebeixinxi);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        ShebeixinxiEntity shebeixinxi = shebeixinxiService.selectById(id);
        return R.ok().put("data", shebeixinxi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody ShebeixinxiEntity shebeixinxi, HttpServletRequest request){
    	shebeixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(shebeixinxi);
        shebeixinxiService.insert(shebeixinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody ShebeixinxiEntity shebeixinxi, HttpServletRequest request){
    	shebeixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(shebeixinxi);
        shebeixinxiService.insert(shebeixinxi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody ShebeixinxiEntity shebeixinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(shebeixinxi);
        shebeixinxiService.updateById(shebeixinxi);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        shebeixinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<ShebeixinxiEntity> wrapper = new EntityWrapper<ShebeixinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = shebeixinxiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}


}

六、论文参考 

七、源码获取

点赞、收藏、关注、评论啦。

联系即送开题报告和任务书,欢迎咨询

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Java基础》常用类

综述 深入理解包装类 和 String类 一、包装类 针对八种基本数据类型都有一个引用类型的包装类&#xff0c;这个类可以自动包装和解包 基本数据类型包装类booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble 这几个类的继承关系&…

零工市场转型数字化的挑战和机遇

我们的生活因为科技而变的更加方便、便利&#xff0c;例如手机支付、网上购物&#xff0c;那么就目前的就业市场来说&#xff0c;零工市场也面临着数字化转型的挑战和机遇。 零工市场数字化的机遇&#xff1a; 1.通过大数据的计算&#xff0c;极大的提高了零工市场中的匹配效率…

跨平台应用程序本地化过程的特点

跨平台应用程序本地化不仅仅是将单词从一种语言翻译成另一种语言。这是关于调整应用程序&#xff0c;使其无缝融入全球用户的不同文化和语言环境&#xff0c;无论他们使用的是哪种设备或平台。这个过程对于跨平台应用程序来说尤其复杂&#xff0c;它们需要在多个操作系统和设备…

汽车车轮平衡块行业前景:预计2030年全球市场规模将达到10亿美元

汽车车轮平衡块&#xff0c;也称为轮胎平衡块&#xff0c;是一种安装在车轮上的配重部件。它的主要作用是帮助车轮在高速旋转状态下保持动平衡。当车轮高速旋转时&#xff0c;由于车轮的动态不平衡状态&#xff0c;会导致车辆在行驶中出现车轮抖动和方向盘震动的现象。汽车车轮…

[Python] 文件操作详解

文章目录 文件是什么&#xff1f;常用的文件操作函数1. 打开文件2. 关闭文件3. 读取文件(1) read() 方法(2) readline() 方法(3) readlines() 方法 4. 写入文件(1) write() 方法(2) 追加写入 5. 文件读写模式总结 中文文件的处理指定文件编码 上下文管理器示例&#xff1a;使用…

posix接口与system V接口及其异同

POSIX接口和System V接口是用于多线程和进程间通信的两种主要编程接口。它们各自有不同的特点、功能和适用场景。以下是对这两种接口的详细介绍及其异同点。 POSIX接口 特点 标准化: POSIX&#xff08;可移植操作系统接口&#xff09;是由IEEE制定的标准&#xff0c;旨在提供统…

win10+vs2017+opencv4.5.3+yolov5-5.0

win10vs2017opencv4.5.3yolov5-5.0 1&#xff0c;安装OpenCV4.5.3配置环境2&#xff0c;进行模型加载3&#xff0c;如何导出自己的onnx模型&#xff08;1&#xff09;下载YOLOv5的5.0版本的代码&#xff08;2&#xff09;在谷歌实验室更改两部分代码&#xff08;1-1&#xff09…

1个maven命令快速查看jar包依赖路径

本文目标&#xff1a;开发人员&#xff0c;在了解maven工具的dependency命令的条件下&#xff0c;进行查看jar包依赖关系&#xff0c;达到确认jar包引入来源的程度。 文章目录 1 痛点2 解决方案3 总结/练习 1 痛点 maven项目依赖包多时&#xff0c;项目某个包有问题时&#xff…

小赢卡贷公益行:乡村振兴与多元公益并进

在金融科技的浪潮中&#xff0c;小赢卡贷不仅以其创新的金融产品和服务赢得了市场的广泛认可&#xff0c;更以其背后的公益之心&#xff0c;积极履行社会责任&#xff0c;传递着温暖与希望。小赢公益基金会&#xff0c;作为小赢卡贷社会责任的延伸&#xff0c;主要聚焦于乡村振…

IEEE754浮点数的表示

在学习浮点数的表示之前&#xff0c;先看一下二进制和十进制之间的转换。再来学习IEEE754标准的浮点数。 十进制转二进制 对于十进制整数转换位2进制小数。 例如125转换为二进制小数方法为除二取余。 125/262 余数1 62/231 余数0 31/215 余数1 15…

USB转多路RS485应用-组态软件调试

前言 在工业领域&#xff0c;经常使用组态软件来监控和控制生产设备。组态是指不需要编写计算机程序、通过类似“配置”的方式完成工业应用开发的系统。终端设备包括仪表&#xff0c;PLC&#xff0c;传感器等&#xff0c;大部分支持RS485接口和Modbus协议。 运维或部署人员在实…

并发事务演示及隔离级别

引言 在MySQL数据库中&#xff0c;事务是一组不可分割的操作单元&#xff0c;这些操作要么全部成功&#xff0c;要么全部失败。事务的四大特性&#xff0c;通常被称为ACID特性&#xff0c;包括原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#x…

yolov11人物背景扣除

有时候我们需要对图片进行背景扣除和替换,本文将基于yolov11对一张图片进行背景扣除,对视频的处理同理。 安装 pip install ultralytics 2 、获取测试图片 3、代码 from ultralytics import YOLO import cv2 import nu

前海中粮创新中心附近无名路的长期免费停车点探寻

​中粮前海创新中心附近有一条无名路&#xff0c;我数了下大概可以停50个停车位&#xff0c;就是这个路需要点技巧才能进去。 ​可以看到直接从正面是开不进去的&#xff0c;水泥挡着了哈。但是可以观察附近地面车轮印痕就可以参考里面的车怎么停进去的哈 ​上图中的无名路是很…

基于SpringBoot+Vue+Redis+Mybatis+前后端分离旅游平台推荐系统

我 | 在这里 ⭐ 全栈开发攻城狮、全网10W粉丝、2022博客之星后端领域Top1、专家博主。 &#x1f393;擅长 指导毕设 | 论文指导 | 系统开发 | 毕业答辩 | 系统讲解等。已指导60位同学顺利毕业 ✈️个人公众号&#xff1a;乡下小哥编程。回复 Java全套视频教程 或 前端全套视频教…

SeaTunnel Web1.0.0安装

注&#xff1a;安装SeaTunnel Web1.0.1没区别&#xff0c;步骤全部都一样。 安装的SeaTunnel为2.3.7版本&#xff0c;以下安装基于SeaTunnel已经安装好的场景。 一、下载包 Apache SeaTunnel ​上传到服务器上并解压 -- 路径&#xff1a;/data/seatunnel/apache-seatunnel…

一个月学会Java 第8天 方法与递归

Day8 方法与递归 方法这个东西我们之前讲过&#xff0c;但是只是讲了原理并没有详细的讲解东西&#xff0c;还有构造器这个东西&#xff0c;也只是介绍过全貌&#xff0c;构造器其实就是一个特殊的方法&#xff0c;但是由于特殊&#xff0c;所以我们之后再讲&#xff0c;还有一…

【C++】单例模式「详尽版」

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 文章目录 什么是单例模式如何实现单例模式饿汉模式和懒汉模式饿汉模式懒汉模式饿汉模式和懒汉模式的优缺点1.饿汉模式的优缺点2.懒汉模式的优缺点 什么是单例模式 C单例模式是一种非常重要的设计模式&#xf…

看历史远比看未来更加清楚,太像了

目录 ‌1994年8月,中国进行了分税制改革 ‌2024年9月,中国经济经历了一系列显著的经济变化和政策调整。‌ 经济政策密集出台 资本市场反应热烈 制造业趋稳运行 外汇储备保持稳定 信心与预期提升 ‌2024年10月,股市回调和消费市场的活跃 ‌1994年8月,中国进行了分税…

通过SE38编写一个报表

该编写操作重点在于理解语法基础&#xff0c;并不具有实际意义。 然后进入代码编辑界面。 首先定义X M Z三个字段的类型为C&#xff08;字符类型&#xff09;&#xff0c;最大长度为10然后给X M进行赋值第三步使用ABAP链接语句&#xff0c;把X M两个值进行链接在屏幕上输出Z值。…