【开源】基于JAVA+Vue+SpringBoot的农村物流配送系统


目录

  • 一、摘要
    • [1.1 项目介绍](#1.1 项目介绍)
    • [1.2 项目录屏](#1.2 项目录屏)
  • 二、功能模块
    • [2.1 系统登录、注册界面](#2.1 系统登录、注册界面)
    • [2.2 系统功能](#2.2 系统功能)
      • [2.2.1 快递信息管理:](#2.2.1 快递信息管理:)
      • [2.2.2 位置信息管理:](#2.2.2 位置信息管理:)
      • [2.2.3 配送人员分配:](#2.2.3 配送人员分配:)
      • [2.2.4 路线规划:](#2.2.4 路线规划:)
      • [2.2.5 个人中心:](#2.2.5 个人中心:)
      • [2.2.6 退换快递处理:](#2.2.6 退换快递处理:)
      • [2.2.7 客户评价:](#2.2.7 客户评价:)
  • 三、系统展示
  • 四、核心代码
    • [4.1 查询商家](#4.1 查询商家)
    • [4.2 退换快递](#4.2 退换快递)
    • [4.3 新增路线规划](#4.3 新增路线规划)
    • [4.4 查询乡镇村社](#4.4 查询乡镇村社)
    • [4.5 查询配送位置](#4.5 查询配送位置)
  • 五、免责说明

一、摘要

1.1 项目介绍

基于Vue+SpringBoot+MySQL的农村物流配送系统,包含快递客户管理模块、配送位置管理模块、配送人员模块、路线规划模块、商家管理模块、商品退换模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,农村物流配送系统基于角色的访问控制,给物流管理员、配送人员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

2.1 系统登录、注册界面

1、快递员注册、登录此系统。

2、建立员工数据库,管理员工信息。

2.2 系统功能

2.2.1 快递信息管理:

(1)添加客户信息:输入收货人,取件码,快递单号。

(2)查询客户信息:输入收货人,ID。

(3)删除客户信息:

(4)修改客户信息;

2.2.2 位置信息管理:

(1)添加位置信息:输入起始地点,输入终点

(2)删除位置信息:

(3)修改位置信息:

(4)定位信息:请输入地点信息

2.2.3 配送人员分配:

(1)添加配送人员:输入性别,输入姓名,输入年龄

(2)删除配送人员信息:

(3)修改配送人员信息:

2.2.4 路线规划:

(1)划分路线图:输入乡镇名,村名,

(2)为每个配送人员添加自己的路线:

(3)删除路线:

(4)修改路线:

2.2.5 个人中心:

(1)员工个人信息管理:添加员工信息,输入姓名,性别,年龄;删除员工信息;查询员工信息;修改员工信息

(2)关于系统:系统版本

(3)退出系统:

2.2.6 退换快递处理:

(1)输入退换产品理由;

(2)输入商家信息:输入商家姓名,位置信息,联系方式

(3)输入客户信息:输入客户姓名,联系方式:

(4)删除商家信息:

(5)删除客户信息:

(6)修改商家信息:

(7)修改客户信息:

2.2.7 客户评价:

(1)非常满意,满意,一般,差评。


三、系统展示










四、核心代码

4.1 查询商家

java 复制代码
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询商家")
public Result<IPage<Business>> getByPage(@ModelAttribute Business business ,@ModelAttribute PageVo page){
    QueryWrapper<Business> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(business.getUserName())) {
        qw.like("user_name",business.getUserName());
    }
    if(!ZwzNullUtils.isNull(business.getAddress())) {
        qw.like("address",business.getAddress());
    }
    IPage<Business> data = iBusinessService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Business>>().setData(data);
}

4.2 退换快递

java 复制代码
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增退换快递")
public Result<Exchange> insert(Exchange exchange){
    Business b = iBusinessService.getById(exchange.getBusinessId());
    if(b == null) {
        return ResultUtil.error("商家不存在");
    }
    exchange.setBusinessName(b.getUserName() + "-" + b.getAddress());
    Express e = iExpressService.getById(exchange.getExpressId());
    if(e == null) {
        return ResultUtil.error("快递客户不存在");
    }
    exchange.setExpressName(e.getUserName() + "-" + e.getAddress());
    iExchangeService.saveOrUpdate(exchange);
    return new ResultUtil<Exchange>().setData(exchange);
}

4.3 新增路线规划

java 复制代码
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增路线规划")
public Result<Route> insert(Route route){
    Department d1 = iDepartmentService.getById(route.getTownshipId());
    if(d1 == null) {
        return ResultUtil.error("乡镇不存在");
    }
    route.setTownshipName(d1.getTitle());
    Department d2 = iDepartmentService.getById(route.getVillageId());
    if(d2 == null) {
        return ResultUtil.error("村社不存在");
    }
    route.setVillageName(d2.getTitle());
    User user = iUserService.getById(route.getDispatcherId());
    if(user == null) {
        return ResultUtil.error("配送员不存在");
    }
    route.setDispatcherName(user.getNickname());
    iRouteService.saveOrUpdate(route);
    return new ResultUtil<Route>().setData(route);
}

4.4 查询乡镇村社

java 复制代码
@RequestMapping(value = "/getTopDepartment", method = RequestMethod.GET)
@ApiOperation(value = "查询乡镇")
public Result<List<Department>> getTopDepartment(){
    QueryWrapper<Department> qw = new QueryWrapper<>();
    qw.eq("parent_id",0);
    return new ResultUtil<List<Department>>().setData(iDepartmentService.list(qw));
}

@RequestMapping(value = "/getSonDepartment", method = RequestMethod.GET)
@ApiOperation(value = "查询村社")
public Result<List<Department>> getSonDepartment(@RequestParam String parentId){
    QueryWrapper<Department> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(parentId)) {
        qw.eq("parent_id",parentId);
    } else {
        qw.ne("parent_id",0);
    }
    return new ResultUtil<List<Department>>().setData(iDepartmentService.list(qw));
}

4.5 查询配送位置

java 复制代码
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询位置")
public Result<IPage<Position>> getByPage(@ModelAttribute Position position ,@ModelAttribute PageVo page){
    QueryWrapper<Position> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(position.getTitle())) {
        qw.like("title",position.getTitle());
    }
    if(!ZwzNullUtils.isNull(position.getStartAddress())) {
        qw.like("start_address",position.getStartAddress());
    }
    if(!ZwzNullUtils.isNull(position.getEndAddress())) {
        qw.like("end_address",position.getEndAddress());
    }
    IPage<Position> data = iPositionService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Position>>().setData(data);
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
相关推荐
南岸月明几秒前
副业自媒体1年终于明白:为什么会表达的人,能量越来越强,更能赚到钱?
前端
天天摸鱼的java工程师1 分钟前
🔧 MySQL 索引的设计原则有哪些?【原理 + 业务场景实战】
java·后端·面试
学不动CV了11 分钟前
单片机ADC采集机理层面详细分析(二)
c语言·arm开发·stm32·单片机·嵌入式硬件·开源·51单片机
Danny_FD14 分钟前
Vue + Element UI 实现模糊搜索自动补全
前端·javascript
空影学Java18 分钟前
Day44 Java数组08 冒泡排序
java
gnip19 分钟前
闭包实现一个简单Vue3的状态管理
前端·javascript
斐济岛上有一只斐济24 分钟前
后端程序员的CSS复习
前端
Enddme27 分钟前
《面试必问!JavaScript 中this 全方位避坑指南 (含高频题解析)》
前端·javascript·面试
有梦想的程序员29 分钟前
微信小程序使用 Tailwind CSS version 3
前端
wocwin39 分钟前
Vue移动端项目二次封装原生table组件,支持表头/数据动态配置(支持多级表头、排序);作用域插槽、render函数渲染某列数据等功能
vue.js