基于JSP+MySQL搭建的一个简易收件派件系统

发布于:2025-02-26 ⋅ 阅读:(15) ⋅ 点赞:(0)

根据 SpringBoot 和 jpa 和 JSP 搭建的一个简易收件派件系统

1、项目简介

本项目主要分为 3 个模块:
(1)邮客模块
(2)邮差模块
(3)管理员模块

2、数据库模型如下:

4、功能模块细则:

邮客模块

1、邮客注册、登录


关键代码:

注册模块:


2、邮客登录以后可以查看自己的权限以及快递信息
当每个邮客注册登录后,他的权限都为新用户:


代码:
 


当邮客想要寄件时,必须完善自己的信息:
 


代码:

@ResponseBody
String resuleinfo(HttpServletRequest request, String username, String phone, Long woid, String address) {
    Mailcustomer = (Mailcustomer) request.getSession().getAttribute("mailcustomer");
    mailcustomer.setManame(username);
    mailcustomer.setMaadress(address);
    mailcustomer.setMaworkingarea(workingareaService.findworkingareaById(woid));
    mailcustomer.setMaphone(phone);
    if (mailcustomer.getMarole().getRoid() == 1) {
        mailcustomer.setMarole(roleService.findRoleById((short) 2));
    }
    mailcustomerService.savemailcustomer(mailcustomer);
    request.getSession().setAttribute("mailcustomer", mailcustomer);
    return "更改成功!";
}

完善自己的信息以后,就可以寄件,并可以看到自己的折扣情况


点击确定按钮,就能看到自己的寄件情况:

邮差模块

1、邮差的登录
 


代码:
 


2、邮差可以查看快件的情况,也可以查看系统给予的任务,用不同颜色显示快件包裹的情况
派件:
 


收件:
 


当邮差点击正在寄件的时候,会弹出显示需要的金额
 


当邮差输入金额,点击确定以后,会在下方显示邮客需要交付的金额,然后用户也可以看到自己的邮费是多少


邮客查看金额:

代码:

@GetMapping("/receipt/{page}")
    public String getreceipt(@PathVariable int page,HttpServletRequest request){
        Post = (Post) request.getSession().getAttribute("post");
        Sort = new Sort(Sort.Direction.DESC,"reid");
        Pageable = PageRequest.of(page-1,10,sort);
        Page<Recipient> recipients = recipientService.findRecipientToPost(post.getPoid(),pageable);
        List<Recipient> recipients1 = recipients.getContent();
        System.out.println(recipients1.toString());
        List<State> lose = stateService.findLose("失败");
//        System.out.println(lose.toString());
        request.setAttribute("lose",lose);
        isreoverdue(recipients1);
        request.setAttribute("postrecipients",recipients1);
        return "WO/Receipt";
    }

3、当邮差寄件结束以后,点击完成寄件,邮客同时可以知道快件已经寄出了;当邮客发现快件在寄出过程中出现问题,可点击寄件失败按钮,提示邮客快件寄出过程遇到的问题:


同时邮客也能知道快件邮寄过程的问题:


代码:

管理员模块

1、管理员登录模块
 


代码:

2、管理员可以查看邮客的信息,并修改邮客的权限
注:当邮客没有完善自己的信息时,不能够修改他/她的权限

修改完以后,这里的每一个邮差的权限不同,所对应的颜色显示也不一样
 


代码:


3、查看邮差情况(详细信息),也可以新增邮差
 


修改邮差信息:


注:当邮差在所在区域有工作时,不能修改其工作区域以及工作状态,而当邮差有事请假在休息中,结束以后,管理员可以修改其状态以及工作区域

由上图看出,小强的工作状态已经修改为工作中

代码:

if (workingarea != post.getPoworkarea()) {
            if (repostid.contains(new Short((short) 1)) || repostid.contains(new Short((short) 2)) ||
                    sepostid.contains(new Short((short) 1)) || sepostid.contains(new Short((short) 2))) {
                return "该邮差目前在所处区域有正在进行的工作,不可更改!";
            }else {
                post.setPoworkarea(workingarea);
}
        }
                postService.update(post);
                return "更改成功";
                }

4、通过点击工作状况,可以查询某个邮差的工作情况:

5、派件表

在这里可以看到分配给每个邮差的任务,同时也可以根据邮客提交的快件订单,分配给每个邮差

查看工作量以及工资:


注:分配原则:在同一区域内,每一个快件会默认派给工作量较少的邮差,因为不可能有的邮差工作量很大,而有的邮差工作量很少,甚至没有工作量,所以在这里设置了优先级

代码:

6、收件表
管理员可以通过该表查看每个包裹的情况