- 个人博客地址:https://www.ltysyn.cn/?p=173
- github 前端项目地址:https://github.com/anselleeyy/logistics-front
- github 后端项目地址:https://github.com/anselleeyy/logistics-back
- 欢迎大家 star 或者 fork
项目需求说明
首先,发货客户与快递公司签订货运合同(货运单),把货物交给快递公司来托运,并按照货运合同的付款方式付款。快递公司根据货物运输线路,为货物配车,找到合适的车辆后,与司机签订运输合同(回执单),并按照运输合同的运费结算方式结算。司机对货物检查无误后,装车,然后发车,发车后,货物的任何损失由司机承担。司机到达目的地后,需要经过货物验收,验收通过,填写一份司机回执单,快递公司这时同时通知发货客户和收货客户,货物已到达。如果货物没有通过验收,则填写差错记录。如果该货物不需要中转,通知收货客户来提货,客户验收通过后,填写客户回执单,快递公司这时通知发货客户,所发货物已被提走。如果该货物需要中转,则填写一份中转信息单,快递公司这时同时通知发货客户和收货客户,货物已被中转。中转成功后,收货客户来提货,并通知发货客户,货物已被提,然后进行转货结算。
项目技术选型
编写环境
- Windows10 专业版 - 1803
- Spring Tool Suite 3.9.4.RELEASE
- Spring5 + SpringMvc5 + Spring-Data-Jpa
- Mysql 8.0.11
架构选型
项目前后端分离,降低耦合度
前端
前端选用 layui 2.3.0,以 html 的形式保存,通过 js 向后端请求数据
后端
后端选用 SpringBoot 2.0.2 进行快速的原型开发,内部采用SSH(Spring + SpringMVC + Hibernate)
特色
- Hibernate 采用 SpringBoot-data-jpa 进行封装,简化数据库操作,采用命名规范进行数据库的增删改查,去除了接口的实现
- 使用 Springboot 进行快速开发,简化了配置文件的编写
- 项目中采用了 Swagger2.0,自动扫描 Controller 中的 RequestMapping,形成接口文档
接口截图文档如下:
功能模块介绍
票据管理
票据管理主要是对票据信息进行分发和历史票据的查询
票据分发
票据分发主要是对货运单进行司机分配,分发后,该货运单以及相应的货运回执单的状态会被更新为未到运单和未到车辆,同时更新发货时间
票据查询
票据查询主要是查询所有的历史票据
主要进行货运单的分发(分发到司机)及历史单据的查询
接货管理
接货管理主要由工作人员负责填写一份货运单合同。合同中发货客户和收货客户信息都是下拉选择后自动查找数据库返回前台,职员编号通过获取当前登录用户的编号自动填写。实际交货日期、是否有效、是否审核都是禁止填写,后续事件触发后自动补充填写。提交合同后,货运单事件表修改该合同状态为待运,票据状态为已填。填完货运单后,自动跳转添加货物信息
填写接货单
接货单中,部分信息由数据库读取自动生成
接货单中的发货和收货客户由数据库返回前端显示
中转地及中转费在填写完发货地和收货地后,根据路线情况动态生