基于javaweb的SpringBoot快递物流管理系统(java+springboot+shiro+bootstrap+ssm+maven+mysql+jsp)

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

300023522402

310023522402

320023522402

330023522402

340023522402

350023522402

082024353108

基于javaweb的SpringBoot快递物流管理系统(java+springboot+shiro+bootstrap+ssm+maven+mysql+jsp)

项目技术:

使用 spring boot,基于 ssm 框架和 shiro 安全框架,开发的一个物流管理系统。前端使用的是 H-ui 开源框架,运用了 Bootstrap table、zTree、PageHelper、jQuery validate 等插件。

特点

  1. 基于 spring boot、maven 构建;
  2. 运用了 spring、spring mvc、mybatis 和 shiro 框架;
  3. 采用了 RBAC 的思路设计系统,采用了 Mysql 作为数据库支持;
  4. 不同的角色登录系统会有不同的菜单列表,且会根据角色返回特定的数据;
  5. 拥有基础数据管理模块,管理员管理模块,角色管理模块,权限管理模块,客户管理模块,订单管理模块和业务处理模块;
  6. 能够实现完整的业务流程:添加客户、添加订单、订单处理、财务报表。

细节介绍

  1. 业务员访问时,只能访问客户管理、订单管理、业务处理菜单,且只有添加的权力,没有修改和删除的权力; 2. 业务员添加订单时,只能基于自己拥有的客户添加; 3. 业务经理拥有客户管理、订单管理、业务处理的所有功能,可以查看所有业务员的客户和订单; 4. 总经理角色可以查看所有数据,但是没有修改的权力; 5. 仓管员只有业务处理中,测量物品信息和入库的功能,其他数据不可修改;

  2. 财务可以查看审核订单价格详情并导出为 excel 表格。

运行环境:

  1. JDK 1.8; 2. Maven; 3. Mysql 8.0/Mysql 5.7均可。  

使用前修改 application.properties 里的数据库的连接信息即可。可以通过 dataBase 目录下的 sql 文件创建所需要的表,数据库名字为 logistic_system。

测试账号

username:admin

password:123456

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
        return map;
}
//批量删除
int success = 0;
int total = customerIds.length;
for(Long customerId : customerIds) {
success += customerService.deleteByPrimaryKey(customerId);
}
map.put("status", "true");
map.put("info", "成功删除选中 " + total + " 个客户中的 " + success + " 个客户");
return map;
}


@RequestMapping("/add")
@RequiresPermissions("customer:insert")
public String add(Model m) {
//查出地区列表
BasicDataExample basicDataExample = new BasicDataExample();
basicDataExample.createCriteria().andParentIdEqualTo(ConstantDataField.AREA_BASICDATA_ID);
List<BasicData> basicDatas= basicDataService.selectByExample(basicDataExample);
m.addAttribute("areas",basicDatas);

//获取当前登录用户
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();

//如果是业务员进行操作,只能选择自己作为业务员
List<User> users = new ArrayList<>();
if (user.getRoleId() == ConstantDataField.SALESMAN_ROLE_ID) {
users.add(user);
} else {
UserExample userExample = new UserExample();
userExample.createCriteria().andRoleIdEqualTo(ConstantDataField.SALESMAN_ROLE_ID);
users = userService.selectByExample(userExample);
}
m.addAttribute("users", users);

return "customer/add";
}

@ResponseBody
@RequestMapping("/insert")
@RequiresPermissions("customer:insert")
public Boolean insert(Customer customer){
int res = customerService.insert(customer);
if (res == 1) {
return true;
}
return false;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
private OrderViewService orderViewService;

@Autowired
private OrderService orderService;

@Autowired
private BasicDataService basicDataService;

@Autowired
private OrderDetailService orderDetailService;

@Autowired
private UserService userService;

@Autowired
private TransactionService transactionService;

@Autowired
private TransactionDetailService transactionDetailService;

@Autowired
private InfoService infoService;

@Autowired
private ExportService exportService;

@Autowired
private ExportDetailService exportDetailService;

@RequestMapping("/list")
@RequiresPermissions("transaction:deal")
public String list() {
return "transaction/list";
}

@RequestMapping("/getOrders")
@RequiresPermissions("transaction:deal")
@ResponseBody
public PageInfo<OrderView> getOrders(String keyWord,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
return orderController.getOrdersUtil(keyWord, pageNum, pageSize);
}

@RequestMapping("/deal")
public String deal(Model m, Long orderId) {
Order order = orderService.selectByPrimaryKey(orderId);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    }
//批量删除
int success = 0;
int total = userIds.length;
for(Long userId : userIds) {
success += userService.deleteByPrimaryKey(userId);
}
map.put("status", "true");
map.put("info", "成功删除选中 " + total + " 个用户中的 " + success + " 个用户");
return map;
}

@RequiresPermissions("admin:insert")
@RequestMapping("/add")
public String addAdmin(Model m) {
RoleExample roleExample = new RoleExample();
List<Role> roles = roleService.selectByExample(roleExample);
m.addAttribute("roles", roles);
return "admin/add";
}

@ResponseBody
@RequestMapping("/checkUsername")
@RequiresPermissions("admin:list")
public Boolean checkUsername(String username) {
UserExample userExample = new UserExample();
UserExample.Criteria criteria = userExample.createCriteria();
criteria.andUsernameEqualTo(username);
System.out.println(userService.selectByExample(userExample));
if (userService.selectByExample(userExample).size() != 0) {
return false;
}
return true;
}

@ResponseBody
@RequestMapping("/insert")
@RequiresPermissions("admin:insert")
public Boolean insert(User user){
String salt = UUID.randomUUID().toString().substring(0, 4);
//String hashedPassword = new SimpleHash("md5", user.getPassword(), salt,3).toString();
user.setSalt(salt);
//user.setPassword(hashedPassword);
user.setCreateDate(new Date());
int res = userService.insert(user);
if (res == 1) {
return true;
}
return false;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
}

@ResponseBody
@RequestMapping("/checkUsername")
@RequiresPermissions("admin:list")
public Boolean checkUsername(String username) {
UserExample userExample = new UserExample();
UserExample.Criteria criteria = userExample.createCriteria();
criteria.andUsernameEqualTo(username);
System.out.println(userService.selectByExample(userExample));
if (userService.selectByExample(userExample).size() != 0) {
return false;
}
return true;
}

@ResponseBody
@RequestMapping("/insert")
@RequiresPermissions("admin:insert")
public Boolean insert(User user){
String salt = UUID.randomUUID().toString().substring(0, 4);
//String hashedPassword = new SimpleHash("md5", user.getPassword(), salt,3).toString();
user.setSalt(salt);
//user.setPassword(hashedPassword);
user.setCreateDate(new Date());
int res = userService.insert(user);
if (res == 1) {
return true;
}
return false;
}

@RequestMapping("/edit")
@RequiresPermissions("admin:update")
public String edit(Model m, Long userId) {
m.addAttribute("user", userService.selectByPrimaryKey(userId));
m.addAttribute("roles", roleService.selectByExample(new RoleExample()));
return "admin/edit";
}

@ResponseBody
@RequestMapping("/update")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    }
//批量删除
int success = 0;
int total = permissionIds.length;
for(Long permissionId : permissionIds) {
success += permissionService.deleteByPrimaryKey(permissionId);
}
map.put("status", "true");
map.put("info", "成功删除选中 " + total + " 个权限中的 " + success + " 个权限");
return map;
}

@RequestMapping("/add")
@RequiresPermissions("permission:insert")
public String addAdmin(Model m) {
PermissionExample permissionExample = new PermissionExample();
List<Permission> permissions = permissionService.selectByExample(permissionExample);
m.addAttribute("permissions", permissions);
return "permission/add";
}

@ResponseBody
@RequestMapping("/checkPermission")
@RequiresPermissions("permission:list")
public Boolean checkPermission(String name, String curName) {
System.out.println(name);
System.out.println(curName);
if (curName != null && name.equals(curName)) {
return true;
}
PermissionExample permissionExample = new PermissionExample();
PermissionExample.Criteria criteria = permissionExample.createCriteria();
criteria.andNameEqualTo(name);
if (permissionService.selectByExample(permissionExample).size() != 0) {
return false;
}
return true;
}

@ResponseBody
@RequestMapping("/insert")
@RequiresPermissions("permission:insert")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
    }
m.addAttribute("users", users);

return "customer/add";
}

@ResponseBody
@RequestMapping("/insert")
@RequiresPermissions("customer:insert")
public Boolean insert(Customer customer){
int res = customerService.insert(customer);
if (res == 1) {
return true;
}
return false;
}

@RequestMapping("/edit")
@RequiresPermissions("customer:update")
public String edit(Model m, Long customerId) {
//查出地区列表
BasicDataExample basicDataExample = new BasicDataExample();
basicDataExample.createCriteria().andParentIdEqualTo(ConstantDataField.AREA_BASICDATA_ID);
List<BasicData> basicDatas= basicDataService.selectByExample(basicDataExample);
m.addAttribute("areas",basicDatas);

//查出业务员
UserExample userExample = new UserExample();
userExample.createCriteria().andRoleIdEqualTo(ConstantDataField.SALESMAN_ROLE_ID);
List<User> users = userService.selectByExample(userExample);
m.addAttribute("users", users);

//查出当前客户
Customer customer = customerService.selectByPrimaryKey(customerId);
m.addAttribute("customer", customer);
return "customer/edit";
}

@ResponseBody
@RequestMapping("/update")
@RequiresPermissions("customer:update")
public Boolean update(Customer customer) {
int res = customerService.updateByPrimaryKeySelective(customer);
if (res == 1) {
return true;
}
return false;


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