作者主页:编程指南针

作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助

文末获取源码

项目编号:BS-XX-121

一,项目简介

本项目基于Springboot+Vue开发实现一个建筑工地用料管理系统,基于前后端分离的方式来开发实现,符合现在主流的开发方式。主要功能模块包含:

材料管理:材料类型的增删改查处理

供货商管理:供货商的增删改查处理

生产商管理:材料生产商的增删改查处理

采购管理:包含采购审核、我的采购信息管理

库存管理:材料库存信息管理,新增材料后根据采购计划来进行导入库存

报价管理:导入供货商的材料报价清单EXCEL表格,也可以导出EXCEL

工地管理:包含建筑工地的基本信息管理和用料详情管理

系统管理:包含角色、权限和用户管理

另带有背景音乐在线播放功能

基本业务流程:先添加库存材料信息---》导入供应商报价清单---》生成采购计划(库存中操作点击采购)---》采购审批----》采购入库---》工具用料

二,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

后端开发技术:Springboot+Mybatis+SpringSecurity

前端开发技术:Vue+Element

三,系统展示

管理员登陆:

材料管理:

生产商和供应商管理

采购管理:采购审核

采购管理:我的采购信息管理

库存管理:先新增材料,再点采购根据报价清单生成采购计划,审核后入库

报价管理:

工地管理:

工地用料详情:

系统管理

权限分配:

操作员管理

四,核心代码展示

package com.znz.server.controller;import com.znz.server.common.constant.Constants;
import com.znz.server.entity.Admin;
import com.znz.server.entity.RespBean;
import com.znz.server.entity.Role;
import com.znz.server.service.IAdminService;
import com.znz.server.service.IRoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** 操作员信息** @author znz* @since 2021-03-06*/
@Api(value = "操作员控制器", tags = {"操作员管理"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/system/admin")
public class AdminController {private final IAdminService adminService;private final IRoleService roleService;@ApiOperation(value = "获取所有操作员")@GetMapping("/")public List<Admin> getAllAdmins(String keywords) {return adminService.getAllAdmins(keywords);}@ApiOperation(value = "更新操作员")@PutMapping("/")public RespBean updateAdmin(@RequestBody Admin admin) {if (adminService.updateById(admin)) {return RespBean.success(Constants.SUCCESS);}return RespBean.error(Constants.FAIL);}@ApiOperation(value = "删除操作员")@DeleteMapping("/{id}")public RespBean deleteAdmin(@PathVariable Integer id) {if (adminService.removeById(id)) {return RespBean.success(Constants.SUCCESS);}return RespBean.success(Constants.FAIL);}@ApiOperation(value = "获取所有角色")@GetMapping("/roles")public List<Role> getAllRoles() {return roleService.list();}@ApiOperation(value = "更新操作员角色")@PutMapping("/role")public RespBean updateAdminRole(Integer adminId, Integer[] rids) {return adminService.updateAdminRole(adminId, rids);}}
package com.znz.server.controller;import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.znz.server.common.core.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;/*** 图片验证码* @Author znz* @Date 21-3-6 下午8:59* @Version 1.0*/
@Api(value = "验证码控制器", tags = {"验证码管理"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
public class CaptchaController extends BaseController {private final DefaultKaptcha defaultKaptcha;/*** 生成验证码* @param request* @param response*/@ApiOperation(value = "验证码")@GetMapping(value = "/captcha", produces = "image/jpeg")public void captcha(HttpServletRequest request, HttpServletResponse response) {// 定义response输出类型为image/jpeg类型response.setDateHeader("Expires", 0);// Set standard HTTP/1.1 no-cache headers.response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");// Set IE extended HTTP/1.1 no-cache headers (use addHeader).response.addHeader("Cache-Control", "post-check=0, pre-check=0");// Set standard HTTP/1.0 no-cache header.response.setHeader("Pragma", "no-cache");// return a jpegresponse.setContentType("image/jpeg");// 获取验证码文本内容String text = defaultKaptcha.createText();logger.info("验证码内容: {}", text);// 方便登录验证时用request获取,参考AdminServiceImpl#login()request.getSession().setAttribute("captcha", text);// 生成图形验证码BufferedImage image = defaultKaptcha.createImage(text);ServletOutputStream outputStream = null;try {outputStream = response.getOutputStream();// 输出流输出图片, 格式为jpgImageIO.write(image, "jpg", outputStream);outputStream.flush();} catch (IOException e) {e.printStackTrace();} finally {if (null != outputStream) {try {outputStream.close();} catch (IOException e) {e.printStackTrace();}}}}
}
package com.znz.server.controller;import com.znz.server.annotation.ApiLog;
import com.znz.server.common.constant.Constants;
import com.znz.server.entity.Admin;
import com.znz.server.entity.AdminLoginParam;
import com.znz.server.entity.RespBean;
import com.znz.server.service.IAdminService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;
import java.security.Principal;/*** 登录验证* @Author znz* @Date 21-3-6 下午5:03* @Version 1.0*/
@Api(value = "登录控制器", tags = {"登录管理"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
public class LoginController {private final IAdminService adminService;@ApiLog@ApiOperation(value = "登录之后返回token")@PostMapping("/login")public RespBean login(@RequestBody AdminLoginParam adminLoginParam, HttpServletRequest request) {return adminService.login(adminLoginParam.getUsername(), adminLoginParam.getPassword(), adminLoginParam.getCode(),request);}@ApiLog@ApiOperation(value = "获取当前登录用户信息")@GetMapping("/admin/info")public Admin getAdminInfo(Principal principal) {if (null == principal) {return null;}String username = principal.getName();Admin admin = adminService.getAdminByUserName(username);admin.setPassword(null);// 设置用户角色admin.setRoles(adminService.getRoles(admin.getId()));return admin;}@ApiOperation(value = "退出登录")@PostMapping("/logout")public RespBean logout() {return RespBean.success(Constants.LOGOUT);}
}

package com.znz.server.controller;import com.znz.server.common.Result;
import com.znz.server.common.constant.Constants;
import com.znz.server.entity.MaterialCategory;
import com.znz.server.entity.RespBean;
import com.znz.server.entity.RespPageBean;
import com.znz.server.service.IMaterialCategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;/*** 材料分类Controller* @author znz* @since 2021-03-10*/
@Api(value = "材料分类控制器", tags = {"材料分类管理"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/material/materialCategory/mc")
public class MaterialCategoryController {private final IMaterialCategoryService materialCategoryService;@ApiOperation(value = "条件分页")@GetMapping("/")public RespPageBean getMaterialCategoryPage(String materialCategoryName,@RequestParam(defaultValue = "1") Integer pageIndex,@RequestParam(defaultValue = "10") Integer pageSize) {return materialCategoryService.findMaterialCategoryByPage(materialCategoryName, pageIndex, pageSize);}@ApiOperation(value = "新增")@PostMapping("/")public RespBean addMaterialCategory(@RequestBody MaterialCategory materialCategory) {/** 日期处理 */materialCategory.setCreateDate(LocalDateTime.now());if (materialCategoryService.save(materialCategory)) {return RespBean.success(Constants.ADD_SUCCESS);}return RespBean.error(Constants.ADD_FAIL);}@ApiOperation(value = "更新")@PutMapping("/")public RespBean updateMaterialCategory(@RequestBody MaterialCategory materialCategory) {if (materialCategoryService.updateById(materialCategory)) {return RespBean.success(Constants.UPDATE_SUCCESS);}return RespBean.error(Constants.UPDATE_FAIL);}@ApiOperation(value = "根据id删除")@DeleteMapping("/{id}")public RespBean deleteMaterialCategory(@PathVariable Integer id) {if (materialCategoryService.removeById(id)) {return RespBean.success(Constants.DELETE_SUCCESS);}return RespBean.error(Constants.DELETE_FAIL);}@ApiOperation(value = "批量删除")@DeleteMapping("/")public RespBean deleteMaterialCategories(Integer[] ids) {if (materialCategoryService.removeByIds(Arrays.asList(ids))) {return RespBean.success(Constants.DELETE_SUCCESS);}return RespBean.error(Constants.DELETE_FAIL);}@ApiOperation(value = "查询列表")@GetMapping("/list")public Result list() {return new Result("1001", Constants.SELECT_SUCCESS, materialCategoryService.list());}
}

五,项目总结

项目界面清晰,通过AJAX进行异步交互,非常适合毕业使用。

基于Springboot+Vue开发建筑工地用料管理系统相关推荐

  1. 基于SpringBoot+Vue的学生成绩管理系统

    基于SpringBoot+Vue的学生成绩管理系统 ,已经实现了增删改查,完美的springBoot项目脚手架 ,适合学习和二次开发,课程设计 已经实现了增删改查和搜索查询所有功能,完美的spring ...

  2. 计算机毕业设计基于springboot+vue+elementUI的网吧管理系统(源码+系统+mysql数据库+Lw文档)

    项目介绍 随着我国的经济发展,人们的生活水平也有了一定程度的提高,对网络的要求也越来越高,很多家庭都有了自己的电脑,但是很多时候大家在家里玩电脑的时候找不到那种玩耍的气氛和氛围,这个时候大家就都选择了 ...

  3. java计算机毕业设计基于springboot+vue+elementUI的实验室管理系统(前后端分离)

    项目介绍 科技水平一直是体现一个国家强弱的重要标志,而科技的一点诞生地是实验室,如果能够更好的对实验室进行管理是很多实验室管理人员一直研究的一个问题.只有更加科学和合理化的利用实验室才能够更好的让科技 ...

  4. java语言基于springboot+vue+elementUI 毕业生实习管理系统-#计算机毕业设计

    项目介绍 每年都有大量的毕业生,毕业生面临的一个很严峻的问题就是如何去进行实习.我经过了实习,用人单位才能够更好的让实习生进行工作. 传统的毕业生实习管理都是通过人工手动的方式进行管理的.这种管理模式 ...

  5. 基于 SpringBoot + Vue 的学生公寓管理系统

    学生公寓管理系统 简介 基于 SpringBoot + Vue 的学生公寓管理系统,自定义了权限拦截器进行权限认证与授权,使用 aop+log4j 进行日志记录,使用 reids 作为缓存,使用 my ...

  6. 基于springboot vue新生可视化报到管理系统源码

    演示视频: 基于springboot vue新生可视化报到管理系统源码 package com.zxy.controller;import com.baomidou.mybatisplus.exten ...

  7. 基于springboot+Vue的智慧酒店管理系统

    真正的大师,永远都怀着一颗学徒的心! 一.项目简介 基于springboot+Vue的智慧酒店管理系统 二.实现功能 支持多端 支持用户管理 支持酒店前台管理 支持酒店管理 支持订单管理 支持系统管理 ...

  8. 基于springboot+vue的便利店库存管理系统

    基于springboot+vue的便利店库存管理系统 ✌全网粉丝20W+,csdn特邀作者.博客专家.CSDN新星计划导师.java领域优质创作者,博客之星.掘金/华为云/阿里云/InfoQ等平台优质 ...

  9. 基于SpringBoot+Vue实现的酒店管理系统

    [简介] 基于springboot+vue实现的酒店管理系统,用于酒店客房业务管理与酒店内部管理. [功能结构] [技术架构] 后端:springboot+mybatis 前端:vue + eleme ...

  10. 基于springboot+vue的酒店预订管理系统(源代码+数据库)072

    部分代码地址 https://gitee.com/ynwynwyn/hotelVuePublic 基于springboot+vue的酒店预订管理系统(源代码+数据库)072 一.系统介绍 本项目前后端 ...

最新文章

  1. MySQL单机多实例部署详解之------利用mysqld_multi配置实现
  2. Python爬虫(一)
  3. java判断request请求是手机还是pc终端
  4. mysql故障诊断_mysql常见故障诊断
  5. Java GC系列(3):垃圾回收器种类
  6. 《架构师(“拥抱2015”特刊)》发布
  7. 「MySQL」 - SQL设计规范
  8. Linux添加用户(user)到用户组(group)
  9. Oracle数据库多结点相关配置
  10. Qt 两个Ui 界面传值
  11. 如何查看python的版本号
  12. MySQL----数据的显示位宽
  13. java.util报错
  14. dalsa相机设置编码器外触发_Modicon M262 编码器接口功能介绍
  15. (原文)基于甘特图的深度强化学习方法求解端到端在线重调度
  16. 数据库操作导入导出以及加快查询速度
  17. 百度文库文档下载操作流程
  18. Java初学者作业——声明变量储存商品信息并进行输出
  19. c语言标准库详解(九):实用函数stdlib.h
  20. matlab 插入标尺,Matlab如何设置自定义的画图标尺scale

热门文章

  1. android qq robot,KG Robot(QQ机器人手机版)
  2. ssm基于java的线上阅读平台的设计与实现毕业设计源码291023
  3. 如何在SOLIDWORKS中使用PDM模板?
  4. Selenium实现QQ空间说说自动点赞
  5. 关于企业电子工单系统的解决方案
  6. 超好用的网站克隆工具,就是玩
  7. ZoomIt下载,ZoomIt下载地址分享
  8. 浅谈马尔可夫预测方法
  9. Ipad2.4 9.3.5 降级8.4.1方法
  10. sketchup的SKP格式转到导入supermap需要的GLTF格式