ideaSSM物流运输管理系统短路径算法开发mysql数据库web结构Dijstra编程计算机网页源码maven项目

本文主要是介绍ideaSSM物流运输管理系统短路径算法开发mysql数据库web结构Dijstra编程计算机网页源码maven项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、源码特点
  idea ssm 物流运输管理系统是一套完善的完整信息管理系统,结合SSM框架完成本系统SpringMVC spring mybatis ,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
前段主要技术 js css jquery
后端主要技术 SpringMVC spring mybatis 
数据库 mysql
开发工具 IDEA  JDK1.8 TOMCAT 8.5
最短路径算法  Dijstra算法

idea ssm物流运输管理系统1


二、功能介绍
1.登录功能
用户巨头不同角色(业务员、业务经理和超级管理员)。

2.权限控制
要求用户以不同角色登录时,能够使用的功能不同。

3.系统功能
(1)用户管理(超级管理员)
对系统的用户进行管理(增删改查)。用户注册时,用户数据表自动更新。

(2)权限管理(超级管理员)
对系统角色对应的权限进行管理(增删改查)。

(3)订单管理(业务员、业务经理、超级管理员)
对所有订单信息进行管理(增删改查)。其中,业务员仅能查看到个人负责的订单。

(4)业务管理(业务员、超级管理员)
a.添加、修改订单信息,自动计算物流费用。(自动更新订单表和客户信息表)
b.更新物流订单状态:揽件、入库、运输中、派送完成。
c.根据最短距离的订单运输建议,利用最短路径算法(Dijstra算法)进行路径规划。

(5)客户管理(业务经理、超级管理员)
对订单客户信息进行管理(增删改查)。

(6)报表管理(业务经理、超级管理员)
a.统计导出报表数据:统计订单数目、营业额、月度数据变化等报表数据
b.显示报表数据:利用图形、表格等形式展现报表数据

数据库设计

(1)权限信息表如表3.1所示:

表3.1 权限信息表

序号

字段名称

数据类型

长度

主键

描述

1

qxid

INTEGER

11

权限编号

2

qx

VARCHAR

40

权限

(2)机构信息表如表3.2所示:

表3.2 机构信息表

序号

字段名称

数据类型

长度

主键

描述

1

jgid

INTEGER

11

机构编号

2

jgmc

VARCHAR

40

机构名称

3

lx

VARCHAR

40

类型

(3)机构距离信息表如表3.3所示:

表3.3 机构距离信息表

序号

字段名称

数据类型

长度

主键

描述

1

jgjlid

INTEGER

11

机构距离编号

2

qsjg

VARCHAR

40

起始机构

3

mdjg

VARCHAR

40

目的机构

4

jl

VARCHAR

40

距离

5

yssj

VARCHAR

40

运输时间

(4)用户信息表如表3.4所示:

表3.4 用户信息表

序号

字段名称

数据类型

长度

主键

描述

1

yhid

INTEGER

11

用户编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

5

jg

VARCHAR

40

机构

6

lxdh

VARCHAR

40

联系电话

7

lxdz

VARCHAR

40

联系地址

8

qx

VARCHAR

40

权限

(5)重量价格信息表如表3.5所示:

表3.5 重量价格信息表

序号

字段名称

数据类型

长度

主键

描述

1

zljgid

INTEGER

11

重量价格编号

2

zl

VARCHAR

40

重量

3

jg

VARCHAR

40

价格

(6)客户信息表如表3.6所示:

表3.6 客户信息表

序号

字段名称

数据类型

长度

主键

描述

1

khid

INTEGER

11

客户编号

2

khmc

VARCHAR

40

客户名称

3

lxdh

VARCHAR

40

联系电话

4

lxdz

VARCHAR

40

联系地址

(7)运单信息表如表3.7所示:

表3.7 运单信息表

序号

字段名称

数据类型

长度

主键

描述

1

ydid

INTEGER

11

运单编号

2

dh

VARCHAR

40

单号

3

kh

VARCHAR

40

客户

4

fjrxx

VARCHAR

40

发件人信息

5

sjrxx

VARCHAR

40

收件人信息

6

qsjg

VARCHAR

40

起始机构

7

mdjg

VARCHAR

40

目的机构

8

zl

VARCHAR

40

重量

9

gs

VARCHAR

40

关税

10

zjg

VARCHAR

40

总价格

11

fzr

VARCHAR

40

负责人

12

zt

VARCHAR

40

状态

代码设计

  public String addpage(jigou bean, HttpServletRequest request){/**机构添加页面*/Map<String,Object> map= new HashMap<String,Object>();System.out.println("addPageok");return "jigou/jigouadd";}@RequestMapping(value="/add")public String add(jigou bean, HttpServletRequest request){/**机构添加处理方法**/Map<String,Object> map= new HashMap<String,Object>();//初始变量String jgid=(String)request.getParameter("jgid");//机构编号String jgmc=(String)request.getParameter("jgmc");//机构名称String lx=(String)request.getParameter("lx");//类型jigoudao.add(bean);//调用添加方法System.out.println("add");request.setAttribute("msg", "<script>alert('添加成功');</script>");//操作提示return "jigou/jigouadd";}/**删除 机构**/@RequestMapping(value="/del")public String  del(HttpServletRequest request,Map<String,Object> map){//	Map<String,Object> map= new HashMap<String,Object>();//初始化对象String a=(String)request.getParameter("keyid");//request 方式获得主键idint id=Integer.parseInt(a);request.setAttribute("msg", "<script>alert('删除成功');</script>");jigoudao.delete(id);//调用 删除方法return listpage(map,request);}/*** 查询jigou信息 返回list结果 前台获取*/@RequestMapping(value="/listpage")public String listpage(Map<String,Object> map,HttpServletRequest request){List<Map> list= new ArrayList<Map>();//初始化对象Map  map1= new HashMap();String jgid=(String)request.getParameter("jgid");//机构编号if(jgid!=null&&!jgid.equals("")){map1.put("jgid",jgid);//机构编号}String jgmc=(String)request.getParameter("jgmc");//机构名称if(jgmc!=null&&!jgmc.equals("")){map1.put("jgmc",jgmc);//机构名称}String lx=(String)request.getParameter("lx");//类型if(lx!=null&&!lx.equals("")){map1.put("lx",lx);//类型}list=jigoudao.getAll(map1);//传入 方法参数 返回gly结果集System.out.println("listsize="+list.size());map.put("list", list);//传递参数return "jigou/jigoulist";}/**机构详情信息*/@RequestMapping(value="/detail")public String detail(Map<String,Object> map,HttpServletRequest request){String keyid=(String)request.getParameter("keyid");//request 方式获得主键idjigou bean=new jigou();//初始化对象bean=jigoudao.getjigouByID(Integer.parseInt(keyid));//根据id返回 jigou对象数据request.setAttribute("jgid", bean.getJgid());//机构编号request.setAttribute("jgmc", bean.getJgmc());//机构名称request.setAttribute("lx", bean.getLx());//类型return "jigou/jigoudetail";}/**进入jigou修改页面**/@RequestMapping(value="/modifypage")public String modifypage(Map<String,Object> map,HttpServletRequest request){String keyid=(String)request.getParameter("keyid");//request 方式获得主键idjigou bean=new jigou();//初始化对象bean=jigoudao.getjigouByID(Integer.parseInt(keyid));//根据id返回 jigou对象数据request.setAttribute("jgid", bean.getJgid());//机构编号request.setAttribute("jgmc", bean.getJgmc());//机构名称request.setAttribute("lx", bean.getLx());//类型return "jigou/jigoumodify";}

核心算法设计

  public static String getJL (String qsd,String mdd){String temp="";sz sz=new sz();String[] a=sz.get1sz();int data[][]=sz.getjl();int start=sz.getint(a,qsd);int end=sz.getint(a,mdd);System.out.println("start="+start);System.out.println("end="+end);temp=dijkstra(data, start,end);// sj=shortPath1[end];// System.out.println("sj="+shortPath1[end]);System.out.println("temp="+temp);temp=changword(temp);System.out.println("temp=new="+changword(temp));return temp;}public static int[] dijkstra(int[][] weight, int start) {// 接受一个有向图的权重矩阵,和一个起点编号start(从0编号,顶点存在数组中)// 返回一个int[] 数组,表示从start到它的最短路径长度int n = weight.length; // 顶点个数int[] shortPath = new int[n]; // 保存start到其他各点的最短路径String[] path = new String[n]; // 保存start到其他各点最短路径的字符串表示for (int i = 0; i < n; i++)path[i] = new String("["+start+"]" + "-->[" + i+"]");int[] visited = new int[n]; // 标记当前该顶点的最短路径是否已经求出,1表示已求出// 初始化,第一个顶点已经求出shortPath[start] = 0;visited[start] = 1;for (int count = 1; count < n; count++) { // 要加入n-1个顶点int k = -1; // 选出一个距离初始顶点start最近的未标记顶点int dmin = Integer.MAX_VALUE;for (int i = 0; i < n; i++) {if (visited[i] == 0 && weight[start][i] < dmin) {dmin = weight[start][i];k = i;}}// 将新选出的顶点标记为已求出最短路径,且到start的最短路径就是dminshortPath[k] = dmin;visited[k] = 1;// 以k为中间点,修正从start到未访问各点的距离for (int i = 0; i < n; i++) {//如果 '起始点到当前点距离' + '当前点到某点距离' < '起始点到某点距离', 则更新if (visited[i] == 0 && weight[start][k] + weight[k][i] < weight[start][i]) {weight[start][i] = weight[start][k] + weight[k][i];path[i] = path[k] + "-->[" + i+"]";}}}for (int i = 0; i < n; i++) {System.out.println("||从" + start + "出发到" + i + "的最短路径为:" + path[i]+"");}System.out.println("=====================================");return shortPath;}


三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件src\main\resources  下的 application.properties
2、开发环境为IDEA开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspssmwuliu.sql 系统名称jspssmwuliu
4、地址:login.jsp 

四 系统实现


代码下载

https://download.csdn.net/download/qq_41221322/88955548

源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

这篇关于ideaSSM物流运输管理系统短路径算法开发mysql数据库web结构Dijstra编程计算机网页源码maven项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/811840

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p