基于Java+SpringBoot+vue+element实现物流管理系统

举报
Java李杨勇 发表于 2022/03/31 21:55:07 2022/03/31
【摘要】 前言介绍:           随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对物流管理方面的要求也在不断提高,物流管理的数量更是不断增加,使得物流管理系统的开发成为必需而且紧迫的事情。物流管理系统主要是借助计算机,通过对物流管理系统所需的信息管理,增加用户的选择,同时也方便对广大用户信息的及时查询、修改以及对物流管理信息的及时了解。物流管理系统对用户...

前言介绍:

           随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对物流管理方面的要求也在不断提高,物流管理的数量更是不断增加,使得物流管理系统的开发成为必需而且紧迫的事情。物流管理系统主要是借助计算机,通过对物流管理系统所需的信息管理,增加用户的选择,同时也方便对广大用户信息的及时查询、修改以及对物流管理信息的及时了解。物流管理系统对用户带来了更多的便利,该系统通过和数据库管理系统软件协作来满足用户的需求。计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。本物流管理系统主要牵扯到程序,数据库与计算机技术等。覆盖知识面大,可以大大的提高系统人员工作效率。

功能设计:

管理员结构图,如图所示。 

系统流程的分析是通过调查系统所涉及问题的识别、可行性、可操作性、系统分析处理能力等具体环节来调节、整理系统的设计方案以确保系统能达到理想的状态。这些操作都要从注册、登录处着眼进行一系列的流程测试保证数据库的完整,从而把控系统所涉及信息管理的安全、保证信息输入、输出正常转换。然后,通过实际操作完成流程图的绘制工作。物流管理系统的开发对管理模块和系统使用的数据库进行分析,编写代码,系统测试,如图所示。

功能截图:

用户前端:

系统首页:用户在可以查看首页、网站公告、货物委托、公司简介、个人中心、后台管理等

登录注册:会员注册,在注册页面通过填写会员号、密码、会员姓名、年龄、会员手机、身份证、地址等信息完成会员注册

物流公告:

货物委托:

 可以在货物委托页面可以查看委托编号、会员号、会员姓名、会员手机、货物名称、重量、委托地点、运输地点、收货人、货物图片、备注等详细内容

公司简介:

个人中心:

普通用户后台管理:

管理员后台管理:

管理员登录系统后,可以对首页、个人中心、会员管理、网站公告管理、货物委托管理、公司简介管理、车源信息管理、配送订单管理、行车路线管理、评价反馈管理、系统管理等功能进行相应操作

网站公告信息:

货物托运:在货物委托管理页面可以对索引、委托编号、会员号、会员姓名、会员手机、货物名称、重量、委托地点、运输地点、收货人、货物图片、备注等内容进行详情、配送订单、修改或删除等操作

 可以配送订单、修改或删除等操作

配送订单管理,在配送订单管理页面可以对索引、委托编号、会员号、会员姓名、会员手机、货物名称、货物图片、委托地点、运输地点、收货人、司机姓名、司机电话、车牌号码、物流状态、路线编号、路线名称、运输价格、是否支付等内容进行详情、评价反馈、修改或删除等操作

车辆信息:在车源信息管理页面可以对索引、司机姓名、司机证件、车牌号码、司机电话、车辆类型、车辆状况、司机住址、车辆图片等内容进行详情、修改或删除等操作

行车路线:

评价反馈:

系统管理:

部分代码:



/**
 * 配送订单
 * 后端接口
 * @author 
 * @email 
 * @date 2022-03-06 13:38:47
 */
@RestController
@RequestMapping("/peisongdingdan")
public class PeisongdingdanController {
    @Autowired
    private PeisongdingdanService peisongdingdanService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,PeisongdingdanEntity peisongdingdan, HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("huiyuan")) {
			peisongdingdan.setHuiyuanhao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<PeisongdingdanEntity> ew = new EntityWrapper<PeisongdingdanEntity>();
		PageUtils page = peisongdingdanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, peisongdingdan), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,PeisongdingdanEntity peisongdingdan, HttpServletRequest request){
        EntityWrapper<PeisongdingdanEntity> ew = new EntityWrapper<PeisongdingdanEntity>();
		PageUtils page = peisongdingdanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, peisongdingdan), params), params));
        return R.ok().put("data", page);
    }

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(PeisongdingdanEntity peisongdingdan){
        EntityWrapper< PeisongdingdanEntity> ew = new EntityWrapper< PeisongdingdanEntity>();
 		ew.allEq(MPUtil.allEQMapPre( peisongdingdan, "peisongdingdan")); 
		PeisongdingdanView peisongdingdanView =  peisongdingdanService.selectView(ew);
		return R.ok("查询配送订单成功").put("data", peisongdingdanView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        PeisongdingdanEntity peisongdingdan = peisongdingdanService.selectById(id);
        return R.ok().put("data", peisongdingdan);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        PeisongdingdanEntity peisongdingdan = peisongdingdanService.selectById(id);
        return R.ok().put("data", peisongdingdan);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody PeisongdingdanEntity peisongdingdan, HttpServletRequest request){
    	peisongdingdan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(peisongdingdan);
        peisongdingdanService.insert(peisongdingdan);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody PeisongdingdanEntity peisongdingdan, HttpServletRequest request){
    	peisongdingdan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(peisongdingdan);
        peisongdingdanService.insert(peisongdingdan);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody PeisongdingdanEntity peisongdingdan, HttpServletRequest request){
        //ValidatorUtils.validateEntity(peisongdingdan);
        peisongdingdanService.updateById(peisongdingdan);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        peisongdingdanService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<PeisongdingdanEntity> wrapper = new EntityWrapper<PeisongdingdanEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("huiyuan")) {
			wrapper.eq("huiyuanhao", (String)request.getSession().getAttribute("username"));
		}

		int count = peisongdingdanService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

数据设计:

将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。表会员

字段名称

类型

长度

字段说明

id

bigint


主键

addtime

timestamp


创建时间

huiyuanhao

varchar

200

会员号

mima

varchar

200

密码

huiyuanxingming

varchar

200

会员姓名

xingbie

varchar

200

性别

nianling

int


年龄

zhaopian

varchar

200

照片

huiyuanshouji

varchar

200

会员手机

shenfenzheng

varchar

200

身份证

dizhi

varchar

200

地址

表4-2公司简介

字段名称

类型

长度

字段说明

id

bigint


主键

addtime

timestamp


创建时间

biaoti

varchar

200

标题

tupian

varchar

200

图片

gongsiwenhua

longtext

4294967295

公司文化

gongsijieshao

longtext

4294967295

公司介绍

lianxifangshi

varchar

200

联系方式

youxiang

varchar

200

邮箱

字段名称

类型

长度

字段说明

id

bigint


主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-4车源信息

字段名称

类型

长度

字段说明

id

bigint


主键

addtime

timestamp


创建时间

sijixingming

varchar

200

司机姓名

sijizhengjian

varchar

200

司机证件

chepaihaoma

varchar

200

车牌号码

sijidianhua

varchar

200

司机电话

cheliangleixing

varchar

200

车辆类型

cheliangzhuangkuang

varchar

200

车辆状况

sijizhuzhi

varchar

200

司机住址

cheliangtupian

varchar

200

车辆图片

表4-5行车路线

字段名称

类型

长度

字段说明

id

bigint


主键

addtime

timestamp


创建时间

luxianbianhao

varchar

200

路线编号

luxianmingcheng

varchar

200

路线名称

qidian

varchar

200

起点

zhongdian

varchar

200

终点

xiangxixinxi

longtext

4294967295

详细信息

论文目录:

  

ABSTRACT

 

1 绪论

1.1背景及意义

1.2 国内外研究概况

1.3 研究的内容

2 相关技术

2.1 Spring Boot框架

2.2 JAVA简介

2.3 ECLIPSE开发环境

2.4 Tomcat服务器

2.5 MySQL数据库

3 系统分析

3.1 需求分析

3.2 系统可行性分析

3.2.1技术可行性:技术背景

3.2.2经济可行性

3.2.3操作可行性

3.3 项目设计目标与原则

3.4系统流程分析

3.4.1操作流程

3.4.2添加信息流程

3.4.3删除信息流程

4 系统设计

4.1 系统体系结构

4.2开发流程设计

4.3 数据库设计原则

4.4 数据表

5 系统详细设计

5.1系统功能模块

5.2管理员功能模块

5.3会员功能模块

6  系统测试

6.1系统测试的目的

6.2系统测试方法

6.3功能测试

  

  

参考文献

完整源码:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻微信公众号获取联系方式👇🏻👇🏻👇🏻

打卡 文章 更新 231/  365天

 精彩专栏推荐订阅:下方专栏👇🏻👇🏻👇🏻👇🏻

Java项目精品实战案例《100套》

web前端期末大作业网页实战《100套》

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。