java程序员用下班时间给学弟做了一个物流管理系统

前言介绍:

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

功能设计:

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

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

功能截图:

用户前端:

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

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

物流公告:

货物委托:

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

公司简介:

个人中心:

普通用户后台管理:

管理员后台管理:

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

网站公告信息:

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

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

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

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

行车路线:

评价反馈:

系统管理:

部分代码:



/**
 * 配送订单
 * 后端接口
 * @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天

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享