基于javaweb+mysql的springboot仓库管理系统设计和实现(java+ssm+springboot+layui+thymeleaf+html)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot仓库管理系统设计和实现(java+ssm+springboot+layui+thymeleaf+html)
主要功能模块
1.用户模块管理:用户登录、用户注册、用户的查询、添加、删除操作、
2.客户信息管理:.客户列表的展示、添加、修改、删除操作、
3.供应商管理:供应商详情列表的查看、添加、删除等操作、
4.退货管理和退货查询
5.公告信息管理:公告信息的查看、添加、修改、删除操作、
6.角色管理:角色查询、添加、删除、
7.系统管理、菜单管理以及权限控制
8.管理员信息管理:管理员信息的查看、修改
给大家截一部分效果图:
主要技术:springboot Java、springmvc mysql layui jquery mybatis
List<TreeNode> treeNodes = new ArrayList<TreeNode>();
for (Permission p : list) {
Integer id =p.getId();
Integer pid = p.getPid();
String title = p.getTitle();
String icon = p.getIcon();
String href = p.getHref();
Boolean spread = p.getOpen().equals(Constast.OPEN_TRUE)?true:false;
treeNodes.add(new TreeNode(id,pid,title,icon,href,spread));
}
//构造层级关系
List<TreeNode> list2 = TreeNodeBuilder.build(treeNodes,1);
return new DataGridView(list2);
}
/************************菜单管理*********************************/
/**
* 加载菜单左边的菜单树
* @param permissionVo
* @return
*/
@RequestMapping("loadMenuManagerLeftTreeJson")
public DataGridView loadMenuManagerLeftTreeJson(PermissionVo permissionVo){
QueryWrapper<Permission> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type",Constast.TYPE_MENU);
//查询出所有的菜单,存放进list中
List<Permission> list = permissionService.list(queryWrapper);
List<TreeNode> treeNodes = new ArrayList<>();
//将菜单放入treeNodes中,组装成json
for (Permission menu : list) {
Boolean open = menu.getOpen()==1?true:false;
treeNodes.add(new TreeNode(menu.getId(),menu.getPid(),menu.getTitle(),open));
}
return new DataGridView(treeNodes);
}
/**
* 查询所有菜单数据
* @param permissionVo
* @return
/**
* <p>
* InnoDB free: 9216 kB 前端控制器
* </p>
*
*/
@RestController
@RequestMapping("/customer")
public class CustomerController {
@Autowired
private ICustomerService customerService;
/**
* 查询所有的客户
* @param customerVo
* @return
*/
@RequestMapping("loadAllCustomer")
public DataGridView loadAllCustomer(CustomerVo customerVo){
//1.声明一个分页page对象
IPage<Customer> page = new Page<Customer>(customerVo.getPage(),customerVo.getLimit());
//2.声明一个queryWrapper
QueryWrapper<Customer> queryWrapper = new QueryWrapper<Customer>();
queryWrapper.like(StringUtils.isNotBlank(customerVo.getCustomername()),"customername",customerVo.getCustomername());
queryWrapper.like(StringUtils.isNotBlank(customerVo.getConnectionpersion()),"connectionpersion",customerVo.getConnectionpersion());
queryWrapper.like(StringUtils.isNotBlank(customerVo.getPhone()),"phone",customerVo.getPhone());
customerService.page(page,queryWrapper);
return new DataGridView(page.getTotal(),page.getRecords());
}
User user = (User) WebUtils.getSession().getAttribute("user");
//设置操作人
inportVo.setOperateperson(user.getName());
//设置进货时间
inportVo.setInporttime(new Date());
inportService.save(inportVo);
return ResultObj.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.ADD_ERROR;
}
}
/**
* 更新进货商品
* @param inportVo
* @return
*/
@RequestMapping("updateInport")
public ResultObj updateInport(InportVo inportVo){
try {
inportService.updateById(inportVo);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
}
}
/**
* 删除进货商品
* @param id
* @return
*/
@RequestMapping("deleteInport")
public ResultObj deleteInport(Integer id){
try {
inportService.removeById(id);
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}
}
map.put("value","");
}
return map;
}
/**
* 添加用户
* @param userVo
* @return
*/
@RequestMapping("addUser")
public ResultObj addUser(UserVo userVo){
try {
//设置类型
userVo.setType(Constast.USER_TYPE_NORMAL);
//设置盐
String salt = IdUtil.simpleUUID().toUpperCase();
userVo.setSalt(salt);
//设置默认密码
userVo.setPwd(new Md5Hash(Constast.USER_DEFAULT_PWD,salt,2).toString());
//设置用户默认头像
userVo.setImgpath(Constast.DEFAULT_IMG_USER);
userService.save(userVo);
return ResultObj.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.ADD_ERROR;
}
}
/**
* 根据id查询一个用户
* @param id 领导的id
* @return
*/
@RequestMapping("loadUserById")
public DataGridView loadUserById(Integer id){
return new DataGridView(userService.getById(id));
}
* @return
*/
@RequestMapping("changeChineseToPinyin")
public Map<String,Object> changeChineseToPinyin(String username){
Map<String,Object> map = new HashMap<String, Object>(16);
if (null!=username){
map.put("value", PinyinUtils.getPingYin(username));
}else {
map.put("value","");
}
return map;
}
/**
* 添加用户
* @param userVo
* @return
*/
@RequestMapping("addUser")
public ResultObj addUser(UserVo userVo){
try {
//设置类型
userVo.setType(Constast.USER_TYPE_NORMAL);
//设置盐
String salt = IdUtil.simpleUUID().toUpperCase();
userVo.setSalt(salt);
//设置默认密码
userVo.setPwd(new Md5Hash(Constast.USER_DEFAULT_PWD,salt,2).toString());
//设置用户默认头像
userVo.setImgpath(Constast.DEFAULT_IMG_USER);
userService.save(userVo);
return ResultObj.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.ADD_ERROR;
}
}
/**
* 根据id查询一个用户
* @param id 领导的id
* @return
*/
@RequestMapping("loadUserById")
public DataGridView loadUserById(Integer id){
return new DataGridView(userService.getById(id));
}
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
}
}
/**
* 检查当前权限是否有子权限
* @param permissionVo
* @return
*/
@RequestMapping("checkPermissionHasChildrenNode")
public Map<String,Object> checkPermissionHasChildrenNode(PermissionVo permissionVo){
Map<String,Object> map = new HashMap<String, Object>();
QueryWrapper<Permission> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("pid",permissionVo.getId());
List<Permission> list = permissionService.list(queryWrapper);
if (list.size()>0){
map.put("value",true);
}else {
map.put("value",false);
}
return map;
}
/**
* 删除权限
* @param permissionVo
* @return
*/
@RequestMapping("deletePermission")
public ResultObj deletePermission(PermissionVo permissionVo){
try {
permissionService.removeById(permissionVo.getId());
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}
}
*/
@RequestMapping("toUserManager")
public String toUserManager(){
return "system/user/userManager";
}
/**
* 跳转到缓存管理
* @return
*/
@RequestMapping("toCacheManager")
public String toCacheManager(){
return "system/cache/cacheManager";
}
}
/**
* <p>
* InnoDB free: 9216 kB 前端控制器
* </p>
*
*/
@RestController
@RequestMapping("/salesback")
public class SalesbackController {
@Autowired
private ISalesbackService salesbackService;
@Autowired
List<Goods> list = goodsService.list(queryWrapper);
for (Goods goods : list) {
Provider provider = providerService.getById(goods.getProviderid());
if (null!=provider){
goods.setProvidername(provider.getProvidername());
}
}
return new DataGridView(list);
}
@RequestMapping("loadAllWarningGoods")
public DataGridView loadAllWarningGoods(){
List<Goods> goods = goodsService.loadAllWarning();
return new DataGridView((long) goods.size(),goods);
}
}
/**
* <p>
* InnoDB free: 9216 kB 前端控制器
* </p>
*
@Autowired
private ISalesService salesService;
@Autowired
private ICustomerService customerService;
@Autowired
private IGoodsService goodsService;
/**
* 查询所有商品销售信息
* @param salesVo
* @return
*/
@RequestMapping("loadAllSales")
public DataGridView loadAllSales(SalesVo salesVo){
IPage<Sales> page = new Page<>(salesVo.getPage(),salesVo.getLimit());
QueryWrapper<Sales> queryWrapper = new QueryWrapper<Sales>();
//根据客户进行模糊查询
queryWrapper.eq(salesVo.getCustomerid()!=null&&salesVo.getCustomerid()!=0,"customerid",salesVo.getCustomerid());
//根据商品模糊查询
queryWrapper.eq(salesVo.getGoodsid()!=null&&salesVo.getGoodsid()!=0,"goodsid",salesVo.getGoodsid());
//根据时间进行模糊查询
queryWrapper.ge(salesVo.getStartTime()!=null,"salestime",salesVo.getStartTime());
queryWrapper.le(salesVo.getEndTime()!=null,"salestime",salesVo.getEndTime());
IPage<Sales> page1 = salesService.page(page, queryWrapper);
List<Sales> records = page1.getRecords();
for (Sales sales : records) {
//设置客户姓名
Customer customer = customerService.getById(sales.getCustomerid());
if(null!=customer){
sales.setCustomername(customer.getCustomername());
}
//设置商品名称
Goods goods = goodsService.getById(sales.getGoodsid());
if (null!=goods){
//设置商品名称
sales.setGoodsname(goods.getGoodsname());
//设置商品规格
sales.setSize(goods.getSize());
}
}
return new DataGridView(page1.getTotal(),page1.getRecords());
}
/**
* 添加商品销售信息
return ResultObj.UPDATE_ERROR;
}
}
/**
* 删除公告
* @param noticeVo
* @return
*/
@RequestMapping("deleteNotice")
public ResultObj deleteNotice(NoticeVo noticeVo){
try {
noticeService.removeById(noticeVo);
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}
/**
* 批量删除公告
* @param noticeVo
* @return
*/
@RequestMapping("batchDeleteNotice")
public ResultObj batchDeleteNotice(NoticeVo noticeVo){
try {
Collection<Serializable> idList = new ArrayList<>();
for (Integer id : noticeVo.getIds()) {
idList.add(id);
}
noticeService.removeByIds(idList);
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}
}
/**
* <p>
* InnoDB free: 9216 kB; (`providerid`) REFER `warehouse/bus_provider`(`id`) 前端控制器
* </p>
*
*/
@RestController
@RequestMapping("/goods")
public class GoodsController {
@Autowired
private IGoodsService goodsService;
@Autowired
private IProviderService providerService;
/**
* 查询商品
* @param goodsVo
* @return
*/
@RequestMapping("loadAllGoods")
public DataGridView loadAllGoods(GoodsVo goodsVo){
IPage<Goods> page = new Page<Goods>(goodsVo.getPage(),goodsVo.getLimit());
QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();
queryWrapper.eq(goodsVo.getProviderid()!=null&&goodsVo.getProviderid()!=0,"providerid",goodsVo.getProviderid());
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getGoodsname()),"goodsname",goodsVo.getGoodsname());
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getProductcode()),"productcode",goodsVo.getProductcode());
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getPromitcode()),"promitcode",goodsVo.getPromitcode());
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getDescription()),"description",goodsVo.getDescription());
queryWrapper.like(StringUtils.isNotBlank(goodsVo.getSize()),"size",goodsVo.getSize());
queryWrapper.orderByDesc("id");
goodsService.page(page,queryWrapper);
List<Goods> records = page.getRecords();
for (Goods goods : records) {
Provider provider = providerService.getById(goods.getProviderid());
if (null!=provider){
goods.setProvidername(provider.getProvidername());
}
}
return new DataGridView(page.getTotal(),page.getRecords());
}
/**
* 添加商品
* @param goodsVo
* @return
*/
@RequestMapping("addGoods")
/**
* 跳转到公告管理
* @return
*/
@RequestMapping("toNoticeManager")
public String toNoticeManager(){
return "system/notice/noticeManager";
}
/**
* 跳转到部门管理
* @return
*/
@RequestMapping("toDeptManager")
public String toDeptManager(){
return "system/dept/deptManager";
}
/**
* 跳转到部门管理--left
* @return
*/
@RequestMapping("toDeptLeft")
public String toDeptLeft(){
return "system/dept/deptLeft";
}
/**
* 跳转到部门管理--right
* @return
*/
@RequestMapping("toDeptRight")
public String toDeptRight(){
return "system/dept/deptRight";
}
/**
* 跳转到菜单管理
* @return
@RequestMapping("loadIndexLeftMenuJson")
public DataGridView loadIndexLeftMenuJson(PermissionVo permissionVo){
//查询所有菜单
QueryWrapper<Permission> queryWrapper = new QueryWrapper<Permission>();
//设置查询条件
//查询的必须是菜单,不能是crud的权限
queryWrapper.eq("type",Constast.TYPE_MENU);
//菜单必须可用
queryWrapper.eq("available", Constast.AVAILABLE_TRUE);
//获得用户 判断用户的类型
User user = (User) WebUtils.getSession().getAttribute("user");
List<Permission> list = null;
if (user.getType().equals(Constast.USER_TYPE_SUPER)){
//用户类型为超级管理员
list = permissionService.list(queryWrapper);
}else {
//用户类型为 普通用户
//根据用户ID+角色+权限去查询
Integer userId = user.getId();
//1.根据用户ID查询角色
List<Integer> currentUserRoleIds = roleService.queryUserRoleIdsByUid(userId);
//2.根据角色ID查询菜单ID和权限ID
//使用set去重
Set<Integer> pids = new HashSet<>();
for (Integer rid : currentUserRoleIds) {
//根据角色ID查询菜单ID和权限ID
List<Integer> permissionIds = roleService.queryRolePermissionIdsByRid(rid);
//将菜单ID和权限ID放入Set中去重
pids.addAll(permissionIds);
}
//3.根据角色ID查询权限
if (pids.size()>0){
queryWrapper.in("id",pids);
list = permissionService.list(queryWrapper);
}else {
list=new ArrayList<>();
}
}
List<TreeNode> treeNodes = new ArrayList<TreeNode>();
for (Permission p : list) {
Integer id =p.getId();
Integer pid = p.getPid();
String title = p.getTitle();
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
}
}
/**
* 删除一个客户
* @param id 客户的ID
* @return
*/
@ApiOperation(value = "删除一个客户",notes = "删除一个客户")
@ApiImplicitParams({@ApiImplicitParam(name = "id", value = "客户ID",required = true,paramType = "query",dataType = "Integer")})
@RequestMapping(value = "deleteCustomer",method = RequestMethod.DELETE)
public ResultObj deleteCustomer(Integer id){
try {
customerService.deleteCustomerById(id);
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}
/**
* 加载所有客户的下拉列表
* @return
*/
@RequestMapping("loadAllCustomerForSelect")
public DataGridView loadAllCustomerForSelect(){
QueryWrapper<Customer> queryWrapper = new QueryWrapper<Customer>();
queryWrapper.eq("available", Constast.AVAILABLE_TRUE);
List<Customer> list = customerService.list(queryWrapper);
return new DataGridView(list);
}
}
}
/**
* <p>
* InnoDB free: 9216 kB 前端控制器
* </p>
*
*/
@RestController
@RequestMapping("permission")
public class PermissionController {
@Autowired
private IPermissionService permissionService;
/**
* 加载权限左边的权限树
* @param permissionVo
* @return
*/
@RequestMapping("loadPermissionManagerLeftTreeJson")
*/
@RequestMapping("deleteMenu")
public ResultObj deleteMenu(PermissionVo permissionVo){
try {
permissionService.removeById(permissionVo.getId());
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}
}
/**
* <p>
* InnoDB free: 9216 kB; (`providerid`) REFER `warehouse/bus_provider`(`id`) 前端控制器
* </p>
*
*/
@Autowired
private IGoodsService goodsService;
/**
* 添加退货信息
* @param id 进货单ID
* @param number 退货数量
* @param remark 备注
* @return
*/
@RequestMapping("addOutport")
public ResultObj addOutport(Integer id,Integer number,String remark){
try {
outportService.addOutport(id,number,remark);
return ResultObj.BACKINPORT_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.BACKINPORT_ERROR;
}
}
/**t
* 查询商品退货
* @param outportVo
* @return
*/
@RequestMapping("loadAllOutport")
public DataGridView loadAllOuport(OutportVo outportVo){
IPage<Outport> page = new Page<Outport>(outportVo.getPage(),outportVo.getLimit());
QueryWrapper<Outport> queryWrapper = new QueryWrapper<Outport>();
//对供应商进行查询
queryWrapper.eq(outportVo.getProviderid()!=null&&outportVo.getProviderid()!=0,"providerid",outportVo.getProviderid());
//对商品进行查询
queryWrapper.eq(outportVo.getGoodsid()!=null&&outportVo.getGoodsid()!=0,"goodsid",outportVo.getGoodsid());
//对时间进行查询要求大于开始时间小于结束时间
queryWrapper.ge(outportVo.getStartTime()!=null,"outputtime",outportVo.getStartTime());
queryWrapper.le(outportVo.getEndTime()!=null,"outputtime",outportVo.getEndTime());
//通过进货时间对商品进行排序
queryWrapper.orderByDesc("outputtime");
IPage<Outport> page1 = outportService.page(page, queryWrapper);
List<Outport> records = page1.getRecords();
for (Outport ouport : records) {
Provider provider = providerService.getById(ouport.getProviderid());
if (provider!=null){
//设置供应商姓名
ouport.setProvidername(provider.getProvidername());
}
Goods goods = goodsService.getById(ouport.getGoodsid());
if (goods!=null){