基于javaweb的仓库管理系统(java+springboot+layui+html+thymeleaf+mysql+实训报告)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+SpringBoot的仓库管理系统(java+SpringBoot+LayUI+HTML+Thymeleaf+mysql+实训报告)

项目介绍

仓库管理系统总共分为三个大的模块,分别是基础管理、仓库管理和系统管理。其中各个模块底下又有其子模块。 功能模块

一、基础管理

1、客户管理 客户列表 客户分页和模糊查询 客户添加、修改、删除、批量删除 2、供应商管理 供应商列表 供应商分页和模糊查询 供应商添加、修改、删除、批量删除 3、商品管理 商品列表 商品分页和模糊查询 商品添加、修改、删除、商品图片的上传

二、仓库管理

1.入库 订单查询、创建订单、删除订单 2.出库 订单查询、创建订单、删除订单 3.仓库基础设置 查询仓库、添加仓库、编辑仓库、删除仓库

三、系统管理

1、角色管理 全查询角色和模糊查询 角色的添加、修改、删除以及给角色分配权限 2、用户管理 全查询用户和模糊查询

用户的添加、修改、删除、重置密码以及给用户分配角色

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

6.数据库:MySql 8.0版本;

技术栈

  1. 后端:SpringBoot+Shiro+MybatisPlus

  2. 前端:HTML+CSS+Javascriipt+LayUI+DTree+Thymeleaf

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行; 4. 运行项目,输入localhost:8080/ 登录 5. 管理员用户名:钱多多 密码:123456

用户管理控制层:

@RestController

@RequestMapping(“/user”)

public class UserController {

@Autowired

private UserService userService;

@Autowired

private DeptService deptService;

@Autowired

private RoleService roleService;

/**

  • 用户全查询

*/

@RequestMapping(“loadAllUser”)

public DataGridView loadAllUser(UserVo userVo) {

IPage page=new Page<>(userVo.getPage(), userVo.getLimit());

QueryWrapper queryWrapper=new QueryWrapper<>();

queryWrapper.eq(StringUtils.isNotBlank(userVo.getName()), “loginname”, userVo.getName()).or().eq(StringUtils.isNotBlank(userVo.getName()), “name”, userVo.getName());

queryWrapper.eq(StringUtils.isNotBlank(userVo.getAddress()), “address”, userVo.getAddress());

queryWrapper.eq(“type”, Constast.USER_TYPE_NORMAL);//查询系统用户

queryWrapper.eq(userVo.getDeptid()!=null, “deptid”,userVo.getDeptid());

this.userService.page(page, queryWrapper);

System.out.println(userService.getClass().getSimpleName());

List list = page.getRecords();

for (User user : list) {

Integer deptid = user.getDeptid();

if(deptid!=null) {

Dept one =deptService.getById(deptid);

user.setDeptname(one.getTitle());

Integer mgr = user.getMgr();

if(mgr!=null) {

User one = this.userService.getById(mgr);

user.setLeadername(one.getName());

return new DataGridView(page.getTotal(), list);

/**

  • 加载最大的排序码

  • @param deptVo

  • @return

*/

@RequestMapping(“loadUserMaxOrderNum”)

public Map<String,Object> loadUserMaxOrderNum(){

Map<String, Object> map=new HashMap<String, Object>();

QueryWrapper queryWrapper=new QueryWrapper<>();

queryWrapper.orderByDesc(“ordernum”);

IPage page=new Page<>(1, 1);

List list = this.userService.page(page, queryWrapper).getRecords();

if(list.size()>0) {

map.put(“value”, list.get(0).getOrdernum()+1);

}else {

map.put(“value”, 1);

return map;

/**

  • 根据部门ID查询用户

*/

@RequestMapping(“loadUsersByDeptId”)

public DataGridView loadUsersByDeptId(Integer deptid) {

QueryWrapper queryWrapper=new QueryWrapper<>();

queryWrapper.eq(deptid!=null, “deptid”, deptid);

queryWrapper.eq(“available”, Constast.AVAILABLE_TRUE);

queryWrapper.eq(“type”, Constast.USER_TYPE_NORMAL);

List list = this.userService.list(queryWrapper);

return new DataGridView(list);

/**

  • 把用户名转成拼音

*/

@RequestMapping(“changeChineseToPinyin”)

public Map<String,Object> changeChineseToPinyin(String username){

Map<String,Object> map=new HashMap<>();

if(null!=username) {

map.put(“value”, PinyinUtils.getPingYin(username));

}else {

map.put(“value”, “”);

return map;

/**

  • 添加用户

*/

@RequestMapping(“addUser”)

public ResultObj addUser(UserVo userVo) {

try {

userVo.setType(Constast.USER_TYPE_NORMAL);//设置类型

userVo.setHiredate(new Date());

String salt=IdUtil.simpleUUID().toUpperCase();

userVo.setSalt(salt);//设置盐

userVo.setPwd(new Md5Hash(Constast.USER_DEFAULT_PWD, salt, 2).toString());//设置密码

this.userService.save(userVo);

return ResultObj.ADD_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.ADD_ERROR;

/**

  • 根据用户ID查询一个用户

*/

@RequestMapping(“loadUserById”)

public DataGridView loadUserById(Integer id) {

return new DataGridView(this.userService.getById(id));

/**

  • 修改用户

*/

@RequestMapping(“updateUser”)

public ResultObj updateUser(UserVo userVo) {

try {

this.userService.updateById(userVo);

return ResultObj.UPDATE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.UPDATE_ERROR;

/**

  • 删除用户

*/

@RequestMapping(“deleteUser”)

public ResultObj deleteUser(Integer id) {

try {

this.userService.removeById(id);

return ResultObj.DELETE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DELETE_ERROR;

/**

  • 重置用户密码

*/

@RequestMapping(“resetPwd”)

public ResultObj resetPwd(Integer id) {

try {

User user=new User();

user.setId(id);

String salt=IdUtil.simpleUUID().toUpperCase();

user.setSalt(salt);//设置盐

user.setPwd(new Md5Hash(Constast.USER_DEFAULT_PWD, salt, 2).toString());//设置密码

this.userService.updateById(user);

return ResultObj.RESET_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.RESET_ERROR;

/**

  • 根据用户ID查询角色并选中已拥有的角色

*/

@RequestMapping(“initRoleByUserId”)

public DataGridView initRoleByUserId(Integer id) {

//1,查询所有可用的角色

QueryWrapper queryWrapper=new QueryWrapper<>();

queryWrapper.eq(“available”, Constast.AVAILABLE_TRUE);

List<Map<String, Object>> listMaps = this.roleService.listMaps(queryWrapper);

//2,查询当前用户拥有的角色ID集合

List currentUserRoleIds=this.roleService.queryUserRoleIdsByUid(id);

for (Map<String, Object> map : listMaps) {

Boolean LAY_CHECKED=false;

Integer roleId=(Integer) map.get(“id”);

for (Integer rid : currentUserRoleIds) {

if(rid==roleId) {

LAY_CHECKED=true;

break;

map.put(“LAY_CHECKED”, LAY_CHECKED);

return new DataGridView(Long.valueOf(listMaps.size()), listMaps);

/**

  • 保存用户和角色的关系

*/

@RequestMapping(“saveUserRole”)

public ResultObj saveUserRole(Integer uid,Integer[] ids) {

try {

this.userService.saveUserRole(uid,ids);

return ResultObj.DISPATCH_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DISPATCH_ERROR;

系统控制层:

@Controller

@RequestMapping(“sys”)

public class SystemController {

/**

  • 跳转到登陆页面

*/

@RequestMapping(“toLogin”)

public String toLogin() {

return “system/index/login”;

/**

  • 跳转到首页

*/

@RequestMapping(“index”)

public String index() {

return “system/index/index”;

/**

  • 跳转到工作台

*/

@RequestMapping(“toDeskManager”)

public String toDeskManager() {

return “system/index/deskManager”;

/**

  • 跳转到日志管理

*/

@RequestMapping(“toLoginfoManager”)

public String toLoginfoManager() {

return “system/loginfo/loginfoManager”;

/**

  • 跳转到公告管理

*/

@RequestMapping(“toNoticeManager”)

public String toNoticeManager() {

return “system/notice/noticeManager”;

/**

  • 跳转到部门管理

*/

@RequestMapping(“toDeptManager”)

public String toDeptManager() {

return “system/dept/deptManager”;

/**

  • 跳转到部门管理-left

*/

@RequestMapping(“toDeptLeft”)

public String toDeptLeft() {

return “system/dept/deptLeft”;

/**

  • 跳转到部门管理–right

*/

@RequestMapping(“toDeptRight”)

public String toDeptRight() {

return “system/dept/deptRight”;

/**

  • 跳转到菜单管理

*/

@RequestMapping(“toMenuManager”)

public String toMenuManager() {

return “system/menu/menuManager”;

/**

  • 跳转到菜单管理-left

*/

@RequestMapping(“toMenuLeft”)

public String toMenuLeft() {

return “system/menu/menuLeft”;

/**

  • 跳转到菜单管理–right

*/

@RequestMapping(“toMenuRight”)

public String toMenuRight() {

return “system/menu/menuRight”;

/**

  • 跳转到权限管理

*/

@RequestMapping(“toPermissionManager”)

public String toPermissionManager() {

return “system/permission/permissionManager”;

/**

  • 跳转到权限管理-left

*/

@RequestMapping(“toPermissionLeft”)

public String toPermissionLeft() {

return “system/permission/permissionLeft”;

/**

  • 跳转到权限管理–right

*/

@RequestMapping(“toPermissionRight”)

public String toPermissionRight() {

return “system/permission/permissionRight”;

/**

  • 跳转到角色管理

*/

@RequestMapping(“toRoleManager”)

public String toRoleManager() {

return “system/role/roleManager”;

/**

  • 跳转到用户管理

*/

@RequestMapping(“toUserManager”)

public String toUserManager() {

return “system/user/userManager”;

/**

  • 跳转到缓存管理

*/

@RequestMapping(“toCacheManager”)

public String toCacheManager() {

return “system/cache/cacheManager”;

角色管理控制层:

@RestController

@RequestMapping(“/role”)

public class RoleController {

@Autowired

private RoleService roleService;

@Autowired

private PermissionService permissionService;

/**

  • 查询

*/

@RequestMapping(“loadAllRole”)

public DataGridView loadAllRole(RoleVo roleVo) {

IPage page=new Page<>(roleVo.getPage(), roleVo.getLimit());

QueryWrapper queryWrapper=new QueryWrapper<>();

queryWrapper.like(StringUtils.isNotBlank(roleVo.getName()), “name”, roleVo.getName());

queryWrapper.like(StringUtils.isNotBlank(roleVo.getRemark()), “remark”, roleVo.getRemark());

queryWrapper.eq(roleVo.getAvailable()!=null, “available”, roleVo.getAvailable());

queryWrapper.orderByDesc(“createtime”);

this.roleService.page(page, queryWrapper);

return new DataGridView(page.getTotal(), page.getRecords());

/**

  • 添加

*/

@RequestMapping(“addRole”)

public ResultObj addRole(RoleVo roleVo) {

try {

roleVo.setCreatetime(new Date());

this.roleService.save(roleVo);

return ResultObj.ADD_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.ADD_ERROR;

/**

  • 修改

*/

@RequestMapping(“updateRole”)

public ResultObj updateRole(RoleVo roleVo) {

try {

this.roleService.updateById(roleVo);

return ResultObj.UPDATE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.UPDATE_ERROR;

/**

  • 删除

*/

@RequestMapping(“deleteRole”)

public ResultObj deleteRole(Integer id) {

try {

this.roleService.removeById(id);

return ResultObj.DELETE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DELETE_ERROR;

/**

  • 根据角色ID加载菜单和权限的树的json串

*/

@RequestMapping(“initPermissionByRoleId”)

public DataGridView initPermissionByRoleId(Integer roleId) {

//查询所有可用的菜单和权限

QueryWrapper queryWrapper=new QueryWrapper<>();

queryWrapper.eq(“available”, Constast.AVAILABLE_TRUE);

List allPermissions = permissionService.list(queryWrapper);

/**

  • 1,根据角色ID查询当前角色拥有的所有的权限或菜单ID

  • 2,根据查询出来的菜单ID查询权限和菜单数据

*/

List currentRolePermissions=this.roleService.queryRolePermissionIdsByRid(roleId);

List carrentPermissions=null;

if(currentRolePermissions.size()>0) { //如果有ID就去查询

queryWrapper.in(“id”, currentRolePermissions);

carrentPermissions = permissionService.list(queryWrapper);

}else {

carrentPermissions=new ArrayList<>();

//构造 List

List nodes=new ArrayList<>();

for (Permission p1 : allPermissions) {

String checkArr=“0”;

for (Permission p2 : carrentPermissions) {

if(p1.getId()==p2.getId()) {

checkArr=“1”;

break;

Boolean spread=(p1.getOpen()==null||p1.getOpen()==1)?true:false;

nodes.add(new TreeNode(p1.getId(), p1.getPid(), p1.getTitle(), spread, checkArr));

return new DataGridView(nodes);

/**

  • 保存角色和菜单权限之间的关系

*/

@RequestMapping(“saveRolePermission”)

public ResultObj saveRolePermission(Integer rid,Integer[] ids) {

try {

this.roleService.saveRolePermission(rid,ids);

return ResultObj.DISPATCH_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DISPATCH_ERROR;

创作打卡挑战赛

赢取流量/现金/CSDN周边激励大奖


基于javaweb的仓库管理系统(java+springboot+layui+html+thymeleaf+mysql+实训报告)相关推荐

  1. 基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql)

    基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...

  2. 基于javaweb的药品管理系统(java+springboot+html+layui+bootstrap+echarts+mysql)

    基于javaweb的药品管理系统(java+springboot+html+layui+bootstrap+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 ecli ...

  3. 基于javaweb的erp管理系统(java+springboot+easyui+mysql)

    基于javaweb的erp管理系统(java+springboot+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclipse/st ...

  4. 基于javaweb的房屋租赁管理系统(java+ssm+layui+mysql+jsp)

    基于javaweb的房屋租赁管理系统(java+ssm+layui+mysql+jsp) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecli ...

  5. 基于javaweb的酒店管理系统(java+ssm+layui+mysql)

    基于javaweb的酒店管理系统(java+ssm+layui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/st ...

  6. 基于javaweb的医院管理系统(java+springboot+mybatis+vue+mysql)

    基于javaweb的医院管理系统(java+springboot+mybatis+vue+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:eclipse ...

  7. 基于javaweb的旅游管理系统(java+jsp+html5+bootstrap+servlet+mysql)

    基于javaweb的旅游管理系统(java+jsp+html5+bootstrap+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...

  8. 基于javaweb的出租车管理系统(java+ssm+html+javascript+jsp+mysql)

    基于javaweb的出租车管理系统(java+ssm+html+javascript+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...

  9. 基于javaweb的人事管理系统(java+ssm+ligerui+metronic+jsp+mysql)

    基于javaweb的人事管理系统(java+ssm+ligerui+metronic+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/id ...

最新文章

  1. iBATIS配置文件的特殊使用方法
  2. 临时对象与NRV技术
  3. rabbitmq简单运用
  4. LUOGU P4016 负载平衡问题
  5. 3-2-ServletConfig
  6. 从 Ops 到 NoOps,阿里文娱智能运维的关键:自动化应用容量管理
  7. 用Apache James搭建本地邮件服务器
  8. 工资软件测试白盒测试报告,白盒测试测试报告模板.doc
  9. 中国最酷、最美的女明星不是王菲,而是她!
  10. C语言使用 gzip 算法压缩数据
  11. 慕尼黑大学计算机硕士专业,德国可以申请的英语授课的计算机硕士有哪些学校?...
  12. Android SMB 简单几步实现手机给电脑传输数据
  13. BZOJ1066 蜥蜴
  14. linux 移动磁盘空间,如何将Linux下移动磁盘空间?
  15. 阿里云独享虚拟主机和共享虚拟主机区别对比
  16. 在网页中调用iOS客户端
  17. driver转httpClient
  18. 2022 ACM杰出会员揭榜:清华黄隆波、刘世霞,北大郝丹、刘譞哲等23位华人学者入选!...
  19. 一只超级愤怒的租房者对黑中介(鹏基伟业的控诉)
  20. 每天小练笔7-坐标变换

热门文章

  1. Redis与Memcached的区别
  2. 利用scat进行数据导入
  3. matplotlib数学绘图库——折线图,内置样式中文问题解决方法
  4. 【python】wallhaven.cc随机壁纸页面小爬虫
  5. 修改一封邮件的发件人等信息
  6. 亲自动手~用VC++做DLL
  7. 如何提升外贸仓储财务管理水平_Winseeing
  8. python orange3_Python Orange3包_程序模块 - PyPI - Python中文网
  9. 基于VHDL语言八位加法器设计
  10. Java三路快速排序