点击上方“Java基基”,选择“设为星标”

做积极的人,而不是积极废人!

源码精品专栏

  • 原创 | Java 2020 超神之路,很肝~

  • 中文详细注释的开源项目

  • RPC 框架 Dubbo 源码解析

  • 网络应用框架 Netty 源码解析

  • 消息中间件 RocketMQ 源码解析

  • 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析

  • 作业调度中间件 Elastic-Job 源码解析

  • 分布式事务中间件 TCC-Transaction 源码解析

  • Eureka 和 Hystrix 源码解析

  • Java 并发源码

  • 项目需求说明

  • 项目技术选型

  • 架构选型

    • 前端

    • 后端

  • 功能模块介绍

    • 票据管理

  • ‍‍‍‍‍‍‍‍‍‍‍‍‍‍源码地址获取


大家好,我是基基

缺物流管理系统项目经验的,推荐看看这个项目。

项目需求说明

首先,发货客户与快递公司签订货运合同(货运单),把货物交给快递公司来托运,并按照货运合同的付款方式付款。快递公司根据货物运输线路,为货物配车,找到合适的车辆后,与司机签订运输合同(回执单),并按照运输合同的运费结算方式结算。司机对货物检查无误后,装车,然后发车,发车后,货物的任何损失由司机承担。

司机到达目的地后,需要经过货物验收,验收通过,填写一份司机回执单,快递公司这时同时通知发货客户和收货客户,货物已到达。如果货物没有通过验收,则填写差错记录。如果该货物不需要中转,通知收货客户来提货,客户验收通过后,填写客户回执单,快递公司这时通知发货客户,所发货物已被提走。

如果该货物需要中转,则填写一份中转信息单,快递公司这时同时通知发货客户和收货客户,货物已被中转。中转成功后,收货客户来提货,并通知发货客户,货物已被提,然后进行转货结算。

项目技术选型

  • 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)

特色

  1. Hibernate 采用 SpringBoot-data-jpa 进行封装,简化数据库操作,采用命名规范进行数据库的增删改查,去除了接口的实现

  2. 使用 Springboot 进行快速开发,简化了配置文件的编写

  3. 项目中采用了 Swagger2.0,自动扫描 Controller 中的 RequestMapping,形成接口文档

接口截图文档如下:

功能模块介绍

票据管理

票据管理主要是对票据信息进行分发和历史票据的查询

票据分发

票据分发主要是对货运单进行司机分配,分发后,该货运单以及相应的货运回执单的状态会被更新为未到运单和未到车辆,同时更新发货时间

票据查询

票据查询主要是查询所有的历史票据

主要进行货运单的分发(分发到司机)及历史单据的查询

接货管理

接货管理主要由工作人员负责填写一份货运单合同。合同中发货客户和收货客户信息都是下拉选择后自动查找数据库返回前台,职员编号通过获取当前登录用户的编号自动填写。实际交货日期、是否有效、是否审核都是禁止填写,后续事件触发后自动补充填写。提交合同后,货运单事件表修改该合同状态为待运,票据状态为已填。填完货运单后,自动跳转添加货物信息

填写接货单

接货单中,部分信息由数据库读取自动生成 接货单中的发货和收货客户由数据库返回前端显示 中转地及中转费在填写完发货地和收货地后,根据路线情况动态生成 添加货运单的同时自动生成货运单号,以HY开头,提交合同后,添加票据,类型为货运单,状态为已填,修改货运单事件表状态为待发

String goodsBillCode = "HY";while (true) {goodsBillCode += randomCode();if (goodsBillDao.findByGoodsBillCode(goodsBillCode) == null) {break;}}goodsBill.setGoodsBillCode(goodsBillCode);goodsBill.setValidity("无效");goodsBill.setIfAudit("未审核");goodsBill.setIfSettleAccounts("未结账");goodsBillDao.save(goodsBill);BillInfo billInfo = new BillInfo();billInfo.setBillType("货运单");billInfo.setBillCode(goodsBillCode);billInfo.setBillState("已填");billInfo.setWriteDate(new Date());billInfoDao.save(billInfo);GoodsBillEvent goodsBillEvent = new GoodsBillEvent();goodsBillEvent.setGoodsBillId(goodsBillCode);goodsBillEvent.setEventName("待发");goodsBillEvent.setRemark("单据已填");goodsBillEvent.setOccurTime(new Date());goodsBillEventDao.save(goodsBillEvent);

添加货物后,给回执单一个编号,以HZ开头,并且修改货运单状态为有效和已填

String goodsRevertBillId = "HZ";while (true) {goodsRevertBillId += randomCode();if (cargoReceiptDetailDao.findByGoodsRevertBillId(goodsRevertBillId) == null) {break;}}goodsBill.setValidity("有效");goodsBill.setIfAudit("审核");123456789

查询接货单

查询页面可以查看不同状态的货运单:待发运单、未到运单、未结运单、所有运单。页面以分页形式展示货运单编号、事件名称、备注、发生时间等简略信息。只有在待运状态的货运单,才有修改和删除功能,其他状态不能对其数据操作。所有页面都可以通过货运单编号查看详情。

刚填写好后的接货单将会以待发的状态保存在待发运单中

可以查看运单的详细内容

对待发运单可以进行修改或删除 删除货运单时只能修改货运单及票据状态,不能真正删除

GoodsBillEvent goodsBillEvent = new GoodsBillEvent();goodsBillEvent.setGoodsBillId(goodsBillCode);goodsBillEvent.setEventName("删除货运单");goodsBillEvent.setRemark("顾客不想发货");goodsBillEvent.setOccurTime(new Date());BillInfo billInfo = billInfoDao.findByBillCode(goodsBillCode);billInfo.setBillState("作废");

配车管理

主要进行货运回执单的填写。下拉选择未填写的货运回执单,选择后数据库查询联系人、地址等信息直接填写到页面。货运单状态自动填写为未出合同。

装货地点下拉选择,能找到所有路线的出发地,交货地点后台根据装货地点查询能到达的相应目的地供工作人员选择。起运时间和司机编号在分发票据的时候自动补充填写。是否结算在结算页面事件触发更改。

查询页面可以查看运输合同在不同阶段的状态:未出合同、未到合同、未结车辆、所有合同。页面以分页形式展示货运回执单编号、回执单状态、收货联系人等大致信息。只有运输合同状态为未出合同时,才有修改和删除功能,其他状态不能对其进行数据操作。所有页面都可以通过货运单编号查看详情

填写运输合同

填写主要是填写货运回执单主表,后端会检索数据库中没有运输合同的信息,从而显示在下拉框中,填票人选择相应的货运单后,会返显部分信息 填写后运输合同将处于未出合同状态 添加货运回执单的同时添加票据,类型为货运回执单,状态为已填,修改货运单事件表状态为待发。

BillInfo billInfo = new BillInfo();billInfo.setBillType("货运回执单");billInfo.setBillCode(cargoReceipt.getGoodsRevertBillCode());billInfo.setBillState("已填");billInfo.setWriteDate(new Date());billInfoDao.save(billInfo);

查询运输合同

可以查询未出合同、未到车辆、未结合同、所有合同4个状态的货运回执单

可以查看未出合同的详细信息并进行修改、删除操作 删除货运回执单时只能修改货运单及票据状态,不能真正删除

BillInfo billInfo = billInfoDao.findByBillCode(goodsRevertBillCode);billInfo.setBillState("作废");billInfo.setWriteDate(new Date());

操作同接货类似,在此不重复展示

到货管理

司机可以在此进行到货回执的填写、用户可以填写顾客回执,并进行历史货物的查询

到货主要分两个部分:1. 司机填写到货回执,确认货物到货;2. 客户填写收货回执,确认收货

司机到货回执

司机填写到货回执,同时后端更新货运单和货运回执为未结;同时客服可以进行提货回告和到货回告并进行填写

客户到货回执

客户填写到货回执后,同时客服可以进行收货回告

客户可以查询自己的收货历史

中转管理

中转管理主要是进行中转公司信息的填写、查询以及对货物中转信息的录入和历史查询

中转公司

选择某一个城市,并对该城市的中转公司信息进行录入

可以在中转公司信息查询中查询所有的中转公司信息

中转信息

中转信息主要是填写中转货物的中转信息

可以在中转历史中查询所有的中转信息

源码地址获取

首先点击右下方在看,再长按下方二维码关注哦,并后台回复

p039】即可获得 GitHub 地址。

二维码


欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)

牛x!基于Springboot 2.0 + LayUI开发的物流管理系统(已开源)相关推荐

  1. 不错!基于Springboot 2.0 + LayUI开发的物流管理系统(已开源)

    缺物流管理系统项目经验的,推荐看看这个项目. 项目需求说明 首先,发货客户与快递公司签订货运合同(货运单),把货物交给快递公司来托运,并按照货运合同的付款方式付款.快递公司根据货物运输线路,为货物配车 ...

  2. idea新建springboot后端到前端_基于SpringBoot+AntDesign的快速开发平台

    项目介绍 Jeecg-Boot是一款基于SpringBoot+代码生成器的快速开发平台!前后端分离架构.技术采用SpringBoot.AntDesignVue.Mybatis.Shiro.JWT.强大 ...

  3. 基于springboot+mybatis+mysql+layui员工工资管理系统

    基于springboot+mybatis+mysql+layui员工工资管理系统 一.目的 二.需求 功能划分 系统结构设计 软件界面截图 三.系统开发配置 四.获取源码 一.目的 ​ 运用JavaE ...

  4. 基于springboot+redis+bootstrap+mysql开发一套属于自己的分布式springcloud云权限架构(七)【权限架构生产者(数据字典)】

    在我们的编码中我们经常会存放一些静态常量,而这些静态变量我们通常都是写死的,如果我们需要改变这些静态变量的值那么我们必须要修改代码,并重新发布程序,这很明显很不符合我们现实中的业务场景,我们现实中的业 ...

  5. JeecgBoot 2.1 Online表单版本发布,基于SpringBoot+AntDesign的快速开发平台

    项目介绍 Jeecg-Boot 是一款基于SpringBoot+代码生成器的快速开发平台!采用前后端分离架构:SpringBoot,Ant-Design-Vue,Mybatis,Shiro,JWT.强 ...

  6. ssm如何支持热部署_IntelliJ IDEA基于SpringBoot如何搭建SSM开发环境

    之前给大家在博文中讲过如何通过eclipse快速搭建SSM开发环境,但相对而言还是有些麻烦的,今天小编给大家介绍下如何使用IntelliJ IDEA基于SpringBoot来更快速地搭建SSM开发环境 ...

  7. 基于springboot+dubbo微服务开发的商城系统

    基于springboot+dubbo微服务开发的商城系统 模仿天猫商城 更多资源,访问搬砖联盟-每天搬一点,收货多一点.

  8. quartz配置_基于spring-boot 2.x +quartz 的CRUD任务管理系统

    基于spring-boot 2.x + quartz 的CRUD任务管理系统,适用于中小项目. 开发环境 JDK1.8.Maven.Eclipse 技术栈 SpringBoot 2.0.1.thyme ...

  9. 基于springboot+mybatis+mysql+html实现宠物医院管理系统(包含实训报告)

    基于springboot+mybatis+mysql+html实现宠物医院管理系统(包含实训报告) 一.系统简介 二.系统主要功能界面 2.1登陆 2.2系统设置 2.3宠物管理 2.4预约管理 2. ...

  10. java计算机毕业设计基于springboot+vue+elementUI的口腔管理平台管理系统(前后端分离)

    项目介绍 口腔卫生是关系民生的一个重要问题.口腔健康会直接影响全身的健康,口腔基本常见的有龋齿,牙周炎等问题,而且人类的牙齿只有2次更换周期,一旦牙齿彻底完成更换终生将不再更换,所以越来越多的人开始关 ...

最新文章

  1. Python 中的 eavl() 函数
  2. swift String
  3. 在传统.NET Framework 上运行ASP.NET Core项目
  4. 玩转oracle 11g(46):图解oracle数据库
  5. 'chcp' 不是内部或外部命令,也不是可运行的程序
  6. PHP网站如何解决大流量与高并发的问题
  7. Unity2D开发小细节
  8. 架构蓝图--软件架构 “4+1“ 视图模型
  9. brctl 设置ip_linux下brctl配置网桥
  10. 【算法工程师】深度学习面试问题总结
  11. 能量信号、功率信号及能量谱、功率谱
  12. ucenter安装指南及问题解决
  13. Promethes监控华为S5720交换机
  14. IO编程,真的很简单
  15. jarsigner签名APK完整步骤
  16. 阅读笔记-阿里妈妈AI智能文案
  17. php根据日期判断星座if函数,js根据日期判断星座的代码
  18. Win2019AD域DNS服务器NSLOOKUP出现 Non-existent domain访问不了某一网站
  19. 亚马逊美国站儿童玩具车、毛绒玩具办理CPC认证 ASTMF963标准
  20. SimpleDateFormat类

热门文章

  1. 下载 MIUI任意型号卡刷包/线刷包
  2. 安装Visual Studio2019一直显示网络未连接
  3. 【笔记】win10上使用Magic Trackpad2触摸板
  4. Kubernets:容器日志收集方案
  5. ElasticJob
  6. 录制Gif动画的软件-ScreenToGif
  7. 用.bat文件切换固定IP地址和自动IP地址
  8. 彻底解决Python包下载慢问题
  9. 2020计算机网络练习题记录(1)
  10. 解释一下什么是vue实例