基于javaweb+mysql的仓库管理系统设计和实现(java+ssm+springboot+layui)

基于javaweb+mysql的仓库管理系统设计和实现(java+ssm+springboot+layui)

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

20220519000014

20220519000015

20220519000016

20220519000018

20220519000019

20220519000020

20220519000021

20220519000022

20220519000024

20220519000025

20220519000026

20220519000027

基于javaweb+springboot的仓库管理系统设计和实现(java+ssm+springboot+layui)

主要功能模块

1.用户模块管理:用户登录、用户注册、用户的查询、添加、删除操作、

2.客户信息管理:.客户列表的展示、添加、修改、删除操作、

3.供应商管理:供应商详情列表的查看、添加、删除等操作、

4.退货管理和退货查询

5.公告信息管理:公告信息的查看、添加、修改、删除操作、

6.角色管理:角色查询、添加、删除、

7.系统管理、菜单管理以及权限控制

8.管理员信息管理:管理员信息的查看、修改

给大家截一部分效果图:

主要技术:springboot   Java、springmvc  mysql  layui  jquery mybatis

用户信息控制层:

/**

  • 前端控制器

*/

@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(“/dept”)

public class DeptController {

@Autowired

private DeptService deptService;

/**

  • 加载部门管理左边的部门树的json

*/

@RequestMapping(“loadDeptManagerLeftTreeJson”)

public DataGridView loadDeptManagerLeftTreeJson(DeptVo deptVo) {

List list = this.deptService.list();

List treeNodes=new ArrayList<>();

for (Dept dept : list) {

Boolean spread=dept.getOpen()==1?true:false;

treeNodes.add(new TreeNode(dept.getId(), dept.getPid(), dept.getTitle(), spread));

return new DataGridView(treeNodes);

/**

  • 查询

*/

@RequestMapping(“loadAllDept”)

public DataGridView loadAllDept(DeptVo deptVo) {

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

QueryWrapper queryWrapper=new QueryWrapper<>();

queryWrapper.like(StringUtils.isNotBlank(deptVo.getTitle()), “title”, deptVo.getTitle());

queryWrapper.like(StringUtils.isNotBlank(deptVo.getAddress()), “address”, deptVo.getAddress());

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

queryWrapper.eq(deptVo.getId()!=null, “id”, deptVo.getId()).or().eq(deptVo.getId()!=null,“pid”, deptVo.getId());

queryWrapper.orderByAsc(“ordernum”);

this.deptService.page(page, queryWrapper);

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

/**

  • 加载最大的排序码

  • @param deptVo

  • @return

*/

@RequestMapping(“loadDeptMaxOrderNum”)

public Map<String,Object> loadDeptMaxOrderNum(){

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

QueryWrapper queryWrapper=new QueryWrapper<>();

queryWrapper.orderByDesc(“ordernum”);

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

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

if(list.size()>0) {

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

}else {

map.put(“value”, 1);

return map;

/**

  • 添加

  • @param deptVo

  • @return

*/

@RequestMapping(“addDept”)

public ResultObj addDept(DeptVo deptVo) {

try {

deptVo.setCreatetime(new Date());

this.deptService.save(deptVo);

return ResultObj.ADD_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.ADD_ERROR;

/**

  • 修改

  • @param deptVo

  • @return

*/

@RequestMapping(“updateDept”)

public ResultObj updateDept(DeptVo deptVo) {

try {

this.deptService.updateById(deptVo);

return ResultObj.UPDATE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.UPDATE_ERROR;

/**

  • 查询当前的ID的部门有没有子部门

*/

@RequestMapping(“checkDeptHasChildrenNode”)

public Map<String,Object> checkDeptHasChildrenNode(DeptVo deptVo){

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

QueryWrapper queryWrapper=new QueryWrapper<>();

queryWrapper.eq(“pid”, deptVo.getId());

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

if(list.size()>0) {

map.put(“value”, true);

}else {

map.put(“value”, false);

return map;

/**

  • 删除

  • @param deptVo

  • @return

*/

@RequestMapping(“deleteDept”)

public ResultObj deleteDept(DeptVo deptVo) {

try {

this.deptService.removeById(deptVo.getId());

return ResultObj.DELETE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DELETE_ERROR;

供应商控制层:

/**

  • 前端控制器

*/

@RestController

@RequestMapping(“/provider”)

public class ProviderController {

@Autowired

private ProviderService providerService;

/**

  • 查询

*/

@RequestMapping(“loadAllProvider”)

public DataGridView loadAllProvider(ProviderVo providerVo) {

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

QueryWrapper queryWrapper = new QueryWrapper<>();

queryWrapper.like(StringUtils.isNotBlank(providerVo.getProvidername()), “providername”,

providerVo.getProvidername());

queryWrapper.like(StringUtils.isNotBlank(providerVo.getPhone()), “phone”, providerVo.getPhone());

queryWrapper.like(StringUtils.isNotBlank(providerVo.getConnectionperson()), “connectionperson”,

providerVo.getConnectionperson());

this.providerService.page(page, queryWrapper);

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

/**

  • 添加

*/

@RequestMapping(“addProvider”)

public ResultObj addProvider(ProviderVo providerVo) {

try {

this.providerService.save(providerVo);

return ResultObj.ADD_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.ADD_ERROR;

/**

  • 修改

*/

@RequestMapping(“updateProvider”)

public ResultObj updateProvider(ProviderVo providerVo) {

try {

this.providerService.updateById(providerVo);

return ResultObj.UPDATE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.UPDATE_ERROR;

/**

  • 删除

*/

@RequestMapping(“deleteProvider”)

public ResultObj deleteProvider(Integer id) {

try {

this.providerService.removeById(id);

return ResultObj.DELETE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DELETE_ERROR;

/**

  • 批量删除

*/

@RequestMapping(“batchDeleteProvider”)

public ResultObj batchDeleteProvider(ProviderVo providerVo) {

try {

Collection idList = new ArrayList();

for (Integer id : providerVo.getIds()) {

idList.add(id);

this.providerService.removeByIds(idList);

return ResultObj.DELETE_SUCCESS;

} catch (Exception e) {

e.printStackTrace();

return ResultObj.DELETE_ERROR;

/**

  • 加载所有可用的供应商

*/

@RequestMapping(“loadAllProviderForSelect”)

public DataGridView loadAllProviderForSelect() {

QueryWrapper queryWrapper=new QueryWrapper<>();

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

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

return new DataGridView(list);


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值