目录
- 一、摘要
- 1.1 项目介绍
- 1.2 项目录屏
- 二、系统设计
- 2.1 软件
- 2.2 布局
- 2.3 技术框架
- 三、功能模块
- 3.1 保险类型模块
- 3.2 快递管理模块
- 3.3 保险订单模块
- 四、系统展示
- 五、核心代码
- 5.1 查询快递
- 5.2 查询快递保险
- 5.3 新增快递保险
- 5.4 快递投保
- 5.5 查询保险订单
- 六、免责说明
一、摘要
1.1 项目介绍
基于JAVA+Vue+SpringBoot+MySQL的快递投保管理系统,包含了保险类型模块、快递管理模块、保险订单模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,快递投保管理系统基于角色的访问控制,给管理员、普通员工角色使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。
近年来随着电子商务的不断发展,快递的数量变的越来越多,在快速的配送过程中,难免会出现破损、丢件的情况,给买卖双方都造成一定的损失。编写快递投保管理系统的目的,就是给快递投上一份保险,当快递在配送过程中发生了破损、丢件的情况,发件人就可以快速理赔,拿到应有的款项,降低自己的损失,保障自身合法权益。
1.2 项目录屏
二、系统设计
快递服务业的快递投保系统的设计与实现具有重要意义:发件人理赔更加方便快捷,只需注册账号进行登录,便可以在自己的电脑上进行理赔操作,可以根据需要修改自己的个人信息,用户也可以随时根据需要进行收发快递,轻松地预先了解收发快递的费用信息,判断是否可以发件的可能性,完成发件方便快捷,有利于缓解快递站人员聚集的现状。大量寄件人需要面对面进行发件,增加了疫情传染的可能性,快递站前台工作人员的工作量也很大,不利于以人为本的工作理念。针对这一问题,快递投保管理系统有利于减少卖家在寄件的等待时间,减轻寄件等待时间的占比,在一定程度上提高了电子商务的物流效率。
2.1 软件
快递投保管理系统采用前后端分离的模式,前端采用Vue,后端采用SpringBoot,数据库采用MySQL,这些都是热门的技术框架,操作简单,容易上手,因此快递投保管理系统没有技术上的难题。
2.2 布局
本系统使用了当下热门的View UI组件库,该组件库基于Vue这一主流前端技术框架进行编程开发。
2.3 技术框架
前端:Vue
(前端界面)、View UI
(组件库)
后端:SpringBoot
(后端逻辑)、MyBatis
(连接数据库)
数据库:MySQL
(主数据库)、Redis
(缓存)
三、功能模块
3.1 保险类型模块
快递投保管理系统的保险类型模块负责管理和维护系统中可供选择的保险类型,该模块允许用户进行保险类型的增加、删除、修改和查询操作。用户可以通过在系统中添加新的保险类型来扩展可选的保险范围。增加保险类型通常包括填写相关信息,如保险名称、保险费用、保险期限等,如果系统中存在不再需要的保险类型,用户可以选择删除该类型。删除保险类型时,系统会提示确认操作,以免误操作,用户可以对已存在的保险类型进行修改。修改保险类型可以包括更新保险名称、保险费用、保险期限等信息。用户可以通过关键词搜索或按照分类方式查询系统中的保险类型。查询结果会显示保险类型的详细信息,方便用户做出选择,保险类型模块的设计旨在提供一个便捷的管理界面,使系统管理员可以方便地管理和配置系统中的保险类型,同时用户也可以通过该模块了解系统中可选择的保险类型,以便在投保时做出合适的选择。
3.2 快递管理模块
快递投保管理系统的快递管理模块负责管理系统中的快递信息,包括增加、删除、修改和查询快递信息,用户可以通过填写相关信息,如快递单号、发件人信息、收件人信息等,将新的快递信息添加到系统中。系统会生成唯一的快递ID来标识该快递。如果系统中存在已经投递或不再需要的快递信息,用户可以选择删除该快递。删除前系统会进行确认操作以防误删。用户可以对已存在的快递信息进行修改。修改快递可以包括更新快递单号、发件人信息、收件人信息等。用户可以通过快递单号或其他关键词进行快递信息的查询。查询结果会显示快递的详细信息,包括发件人、收件人、快递状态等。快递管理模块的设计旨在为用户提供一个方便快捷的界面,以管理和跟踪系统中的快递信息。管理员可以通过该模块进行快递信息的录入和管理,用户可以通过该模块查询快递状态和详细信息,提高系统的运营效率和用户体验。
3.3 保险订单模块
快递投保管理系统的保险订单模块负责管理和维护用户投保的保险订单信息。该模块提供了增加、删除、修改和查询保险订单的功能,用户可以通过填写相关信息,如投保人信息、被保人信息、保险类型、保险金额等,将新的保险订单添加到系统中。系统会为每个订单生成一个唯一的订单号,用于标识该订单。如果系统中存在不再需要的保险订单,用户可以选择删除该订单,删除保险订单时,系统会进行确认操作以避免误操作。用户可以对已存在的保险订单进行修改,修改保险订单可以包括更新投保人信息、被保人信息、保险类型、保险金额等。用户可以通过订单号、投保人信息、被保人信息等关键词进行保险订单的查询,查询结果会显示保险订单的详细信息,如投保人、被保人、保险类型、保险金额、保险状态等。保险订单模块的设计旨在提供一个便捷的界面,使用户可以方便地管理和查看自己的保险订单信息,管理员也可以通过该模块进行保险订单的管理和跟踪,以提供更好的服务和支持。
四、系统展示
五、核心代码
5.1 查询快递
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询快递")
public Result<IPage<Express>> getByPage(@ModelAttribute Express express ,@ModelAttribute PageVo page){
QueryWrapper<Express> qw = new QueryWrapper<>();
if(!ZwzNullUtils.isNull(express.getTitle())) {
qw.like("title",express.getTitle());
}
if(!ZwzNullUtils.isNull(express.getCourierNumber())) {
qw.eq("courier_number",express.getCourierNumber());
}
if(!ZwzNullUtils.isNull(express.getAddresseeName())) {
qw.like("addressee_name",express.getAddresseeName());
}
IPage<Express> data = iExpressService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<Express>>().setData(data);
}
5.2 查询快递保险
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询快递保险")
public Result<IPage<Insurance>> getByPage(@ModelAttribute Insurance insurance ,@ModelAttribute PageVo page){
QueryWrapper<Insurance> qw = new QueryWrapper<>();
if(!ZwzNullUtils.isNull(insurance.getTitle())) {
qw.like("title",insurance.getTitle());
}
if(!ZwzNullUtils.isNull(insurance.getIntroduce())) {
qw.like("introduce",insurance.getIntroduce());
}
IPage<Insurance> data = iInsuranceService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<Insurance>>().setData(data);
}
5.3 新增快递保险
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增快递保险")
public Result<Insurance> insert(Insurance insurance){
iInsuranceService.saveOrUpdate(insurance);
return new ResultUtil<Insurance>().setData(insurance);
}
5.4 快递投保
@RequestMapping(value = "/addInsurance", method = RequestMethod.GET)
@ApiOperation(value = "快递投保")
public Result<Object> addInsurance(@RequestParam String expressId,@RequestParam String insuranceId,@RequestParam String password){
if(!new BCryptPasswordEncoder().matches(password, securityUtil.getCurrUser().getPassword())){
return ResultUtil.error("支付密码不正确");
}
Express express = iExpressService.getById(expressId);
if(express == null) {
return ResultUtil.error("快递不存在");
}
Insurance insurance = iInsuranceService.getById(insuranceId);
if(insurance == null) {
return ResultUtil.error("保险不存在");
}
InsuranceOrder order = new InsuranceOrder();
order.setTitle(express.getTitle() + " 的 " + insurance.getTitle());
order.setExpressId(express.getId());
order.setExpressName(express.getTitle());
order.setInsuranceId(insurance.getId());
order.setInsuranceName(insurance.getTitle());
order.setOrderTime(DateUtil.now());
iInsuranceOrderService.saveOrUpdate(order);
return ResultUtil.success();
}
5.5 查询保险订单
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询保险订单")
public Result<IPage<InsuranceOrder>> getByPage(@ModelAttribute InsuranceOrder insuranceOrder ,@ModelAttribute PageVo page){
QueryWrapper<InsuranceOrder> qw = new QueryWrapper<>();
if(!ZwzNullUtils.isNull(insuranceOrder.getInsuranceName())) {
qw.like("insurance_name",insuranceOrder.getInsuranceName());
}
if(!ZwzNullUtils.isNull(insuranceOrder.getExpressName())) {
qw.like("express_name",insuranceOrder.getExpressName());
}
IPage<InsuranceOrder> data = iInsuranceOrderService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<InsuranceOrder>>().setData(data);
}
六、免责说明
- 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
- 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
- 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!
- 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
- 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
- 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
- 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。