基于Springboot+vue的冷链物流配送系统 毕业设计

文末获取资源,收藏关注不迷路

前言

随着信息技术的发展,管理系统越来越成熟,各种企事业单位使用各种类型的管理系统来提高工作效率,从而降低手工劳动的弊端。冷链物流公司一直以来都非常重视公司信息化的发展,近几年来随着公司规模扩大,业务逐渐增加,冷链物流公司对冷链订单的管理也愈发的困难。因此,公司提出通过开发冷链物流配送系统来优化管理方案,对冷链订单进行全方位的在线管理,通过系统跟踪冷链订单的各项信息,并提高了公司管理者的工作效率,会员也可以通过系统查询个人的冷链订单和配送情况。
冷链物流配送系统利用Java语言,springboot框架开发的一款web系统,数据存储到MySQL中,会员端前台使用Html技术对界面进行设计和实现。本文先充分调查冷链物流配送系统的需求分析,深入剖析系统应该具有的功能,并设计完善的数据库。利用成熟的开发技术完成编码工作,最后进行投入前的测试工作。最终,完成前台和后台的冷链物流配送系统的功能,主要包括客户管理、业务员管理、配送员管理、货物订单管理、货物收货管理、订单安排管理、货物配送管理、订单送达管理、车辆信息管理等,通过前后台实现数据的传递。

一、研究背景

随着冷链物流公司规模的发展,公司业务越来越多,冷链订单和人员的管理也变得越来越困难。在传统的冷链订单管理中,公司往往通过大量的人力和物力进行管理,通过手工记录冷链订单,统计冷链订单订单信息。这种传统的管理方法容易出错,而且不能适应现代化、信息化的发展过程。因此,本冷链物流配送系统应运而生。在Java编程语言的基础上,开发冷链物流配送系统。
计算机信息化的普及也推动了管理系统的发展,各公司有条件开发并推广人员管理系统,从而提高管理手段,推动信息化进程的发展。无论是公司领导者还是会员,都希望通过有效的技术手段改变效率低下的经营手段,通过管理系统进行全面的业务管理。公司领导可以通过冷链物流配送系统,全面掌握公司的业务信息。而公司会员,通过系统可以查看所有的冷链订单信息,并可以安排派送。
在技术方面,后台使用Java语言进行开发,前端采用Html。这些技术可以处理冷链物流配送系统的业务逻辑,并方便用户操作,部署简单。所以适应本项目的开发。数据库方面,选择关系型MySQL数据库,比较成熟稳定,并且开源免费,具有高效、简洁的特点。
本文研发的冷链物流配送系统,结合冷链物流公司的现状,开发复合公司业务工作的管理系统,改变了以前落后的现状。并将冷链订单,工资管理等进行融合,发出通用的管理系统,广泛应用于公司。冷链物流配送系统的使用,对于公司的可持续发展具有不可替代的作用。
通过毕业设计,使学生对所学过的基础理论和专业知识进行一次全面、系统地回顾和总结,通过对基于SpringBoot的冷链物流配送系统设计的分析,使理论与实践相结合,巩固和发展所学理论知识,培养学生掌握正确的思维方法和利用计算机解决实际问题的基本技能,通过查阅文献,锻炼学生掌握文献检索、资料查询的基本方法以及获取新知识的能力,同时对培养学生的开发和设计能力,提高综合运用所学知识和技能去分析、解决实际问题的能力,检验学生的学习效果等均具有重要意义,达到了专业培养目标。

二、研究意义

在国内,公司业务管理系统发展迅速,从最初的单片机处理时代发展到数据综合处理时期,到目前的数据系统处理时期。信息技术的快速发展带来了管理系统的质的变化,在单片机处理时期,数据存储有限,系统效率较低。在第二时期的数据综合处理时期中,因为计算机软硬件水平较低而且价格昂贵,虽然公司业务管理系统得到了一定的发展,但是受限于昂贵的设备,不能全面普及开来。目前的综合数据系统时代,分布式开发技术、微服务技术,数据库技术逐渐完善,软件设备价格低廉,带动了全面的发展,为公司业务管理系统的普及提供了基础。相比单片机管理系统和会员端服务器模式的系统,目前的轻会员端模式大大降低了开发成本,提高了数据管理的效率。每一台会员端不需要单独安装,通过浏览器即可访问。
一直以来,公司内的冷链订单管理都是管理工作的重点,冷链订单是公司的主体,只有提高冷链订单的订单量,才能为公司创造更多的价值。通过和会员的交互来提高会员的满意度。会员通过综合评比来衡量会员的工资,所以管理系统可以更加全面的对冷链订单相关的信息进行综合管理,并提供高效的查询服务。
在国外,管理系统发展较早,各种技术比较成熟,对于公司业务管理也具有更好的兼容性和安全性。在信息化标准规范基础上,各种管理系统也可以满足会员要求,而且对于发达的欧美国家,他们通过利用技术手段,结合先进的管理模式,开发出符合公司发展的管理系统。同时,他们经过多年的摸索,形成了规范成熟的公司业务管理平台,在美国有着超过85%的会员通过在线查看冷链物流公司业务信息,并积极的参与到线上派件中。

三、主要使用技术

环境需要
1.运行环境:最好是java jdk 1.8,这是目前最稳定的JDK也是被使用最多的JDK版本。
2.IDE环境:IDEA,Eclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7/Tomcat8/Tomcat9版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目:是;
技术栈
后端:Spring+SpringMVC+Mybatis+Springboot
前端:vue+CSS+JavaScript+jQuery+elementui

使用说明
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
将项目中applicationContext.xml配置文件中的数据库配置改为自己的配置,然后运行;
运行成功后,在浏览器中输入:http://localhost:8080/项目名

四、研究内容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
管理员管理包括用户登录、客户管理、业务员管理、配送员管理、货物订单统计、货物收货查看、订单安排查看、货物配送查看、订单送达查看、车辆信息管理。
在这里插入图片描述
对于冷链物流信息调度系统所牵扯的管理及数据保存都是非常多的,例如管理员;首页、用户管理(管理员、客户、业务员、配送员)客户管理(货物信息、客户运输单、车辆信息、调度安排)这给管理者的工作带来了巨大的挑战,面对大量的信息,为此开发了冷链物流信息调度系统;为用户提供了方便管理平台,方便管理员查看及维护,并且可以通过需求进行内容的编辑及维护等;对于用户而言,可以随时进行查询所需信息,管理员可以足不出户就可以获取到系统的数据信息等,而且还能节省用户很多时间,所以开发冷链物流信息调度系统给管理者带来了很大的方便,同时也方便管理员对用户信息进行处理。
从用户角度,划分了管理员、客户、业务员、配送员四种用户角色。功能设计了客户管理、业务员管理、配送员管理、货物订单管理、货物收货管理、订单安排管理、货物配送管理、订单送达管理、车辆信息管理。

在这里插入图片描述
其中用户登录中,通过HTML访问该冷链物流配送系统,选择登录界面,进行登录。登录成功进入到系统,登录失败,提示用户不存在,需要重新输入正确的用户名和密码。
用户管理中,先运行冷链物流配送系统,然后录入冷链订单,验证信息后,保存信息到数据库,如果保存失败,提示错误信息,并返回到主界面。
货物订单管理中,启动冷链物流配送系统,进入到货物订单创建的页面,填写创建货物订单的基本信息,创建成功后更新货物订单数据库表的记录。在货物订单修改或者删除的页面,完成操作后,更新货物订单数据库表的记录。在货物订单列表界面,查询所有的货物订单数据库表的记录,然后绑定数据到货物订单列表中。
货物配送管理中,启动冷链物流配送系统,进入到货物配送创建的页面,填写创建货物配送的基本信息,创建成功后更新货物配送数据库表的记录。在货物配送修改或者删除的页面,完成操作后,更新货物配送数据库表的记录。在货物配送列表界面,查询所有的货物配送数据库表的记录,然后绑定数据到货物配送列表中。

在这里插入图片描述
会员用户登录后,在HTML的首页,查看操作菜单,可以修改个人信息和修改个人密码,修改个人信息和密码的功能流程一致,都是通过先获取到个人信息后,然后进行修改,通过数据库修改语句更新信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、核心代码


package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

六、文章目录

1系统概述 1
1.1 研究背景 1
1.2研究目的 1
1.3系统设计思想 1
2相关技术 3
2.1 MYSQL数据库 3
2.2 B/S结构 3
2.3 Spring Boot框架简介 4
2.4 VUE框架 4
3系统分析 5
3.1可行性分析 5
3.1.1技术可行性 5
3.1.2经济可行性 5
3.1.3操作可行性 5
3.2系统性能分析 6
3.2.1 系统安全性 6
3.2.2 数据完整性 6
3.3系统界面分析 6
3.4系统流程和逻辑 8
4系统概要设计 9
4.1概述 9
4.2系统结构 10
4.3.数据库设计 11
4.3.1数据库实体 11
4.3.2数据库设计表 13
5系统详细实现 17
5.1 管理员模块的实现 17
5.2用户模块的实现 19
6系统测试 21
6.1概念和意义 21
6.2特性 22
6.3重要性 22
6.4测试方法 23
6.5 功能测试 23
6.6可用性测试 24
6.7性能测试 24
6.8测试分析 24
6.9测试结果分析 25
结论 25
致谢语 26
参考文献 26

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wqq6310855

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值