基于javaweb的SpringBoot企业仓库库存管理系统(java+ssm+springboot+layui+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

031324590701

041324590701

051324590701

061324590701

071324590701

基于javaweb的SpringBoot企业仓库库存管理系统(java+ssm+springboot+layui+mysql)

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

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

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

4.退货管理和退货查询

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

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

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

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

登录管理控制层:

/**

  • 登陆前端控制器

*/

@RestController

@RequestMapping(“login”)

public class LoginController {

@Autowired

private LoginfoService loginfoService;

@RequestMapping(“login”)

public ResultObj login(String loginname,String pwd) {

Subject subject = SecurityUtils.getSubject();

AuthenticationToken token=new UsernamePasswordToken(loginname, pwd);

try {

subject.login(token);

ActiverUser activerUser=(ActiverUser) subject.getPrincipal();

WebUtils.getSession().setAttribute(“user”, activerUser.getUser());

//记录登陆日志

Loginfo entity=new Loginfo();

entity.setLoginname(activerUser.getUser().getName()+”-“+activerUser.getUser().getLoginname());

entity.setLoginip(WebUtils.getRequest().getRemoteAddr());

entity.setLogintime(new Date());

loginfoService.save(entity);

return ResultObj.LOGIN_SUCCESS;

} catch (AuthenticationException e) {

e.printStackTrace();

return ResultObj.LOGIN_ERROR_PASS;

角色管理控制层: 

@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;

用户管理控制层:

@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;


项目链接:
https://javayms.github.io?id=371524170701201gp
https://javayms.pages.dev?id=371524170701201gp