车辆调度

为什么80%的码农都做不了架构师?>>>   hot3.png

车辆调度系统   

大体上分为4个部分吧

1.调度车辆:你调度的时候需要的车辆,方便给你运输啥的

2.调度任务:你为啥会调度车辆,肯定要有一个任务

3.客户:那这个车辆为谁调度呢?

4.用户:谁创建了这个任务,并且发起了调度,或者是谁主导了这个任务

 

这些问题弄清楚之后,我们就可以想象一下这个流程了

 

客户发起了一个调度任务,用户去调度车辆执行这个任务,然后接到任务的调度车辆去完成这个任务。完成任务之后,客户接收到任务完成之后的结果,大功告成。

 

虽然说,这样分析起来很简单,但是简单的背后是复杂的逻辑关系

比如说:调度车辆怎么分配,每个调度车辆都是平等的关系吗?如果一个任务发送出去了,每个车辆都能接收到这个任务吗?如果说每个车辆都能接收到这个任务的话,时间和成本应该怎么算,谁去执行,怎么执行。等等这些问题都是要考虑的。

 

1.执行任务的时候,车辆都是哪里都有。所以肯定不是有任务都直接发送出去的

2.执行任务的时候,车辆调度的距离远近,结算也是不同的,所以肯定要求最优化解决方案

3.执行任务的时候,对时间也是有要求的

4.对质量和服务也是有要求的

5.如果调度车辆已经接了很多单子,肯定也不会让他们在接单了,影响执行速度

6.每个任务都有对调度车辆和司机的限制的,所以车辆类型和司机的整体也是有要求的

7.因为一些原因,迟到或者是出现问题的处理

等等一些原因,如果这些原因都解决好了,那么这些问题我觉得70%左右的问题都解决了。

 

之后我们来分析一下车辆调度的时候我们的实体该如何设计

1.调度车辆

      我们现在看到的大街上,好多送餐的车,像饿了么,美团,百度等等,你们看他们的车子,有很多不是自己的,也有自己的,像饿了么找的是蜂鸟快送,应该是吧,我忘记了,百度好像是自己的,是饿了么。实际上我觉得有一部分都是找的第三方的公司接的单。然后到一个月或者是一个季度结算一次,这些我就不清楚了。

这个问题说明,最少得有一个第三方调度公司表,然后我觉得还有区域表,在有个调度车辆表,还有一个登陆上线的司机表,为啥呢?

1.第三方调度公司表:很清楚了,就是车辆所在的公司

2.区域表:我觉得,这些车辆应该有一个位置范围,他不可能那里都跑,这也不合理

3.调度车辆表:这个就清楚了,需要调度的车辆

4.司机表:他们肯定得有个App或者是啥东西吧,等接受到任务的,我怎么知道他们能不能上线,肯定得有个表记录一下他们的上下线的状态啥的

 

 

2.调度任务

    调度任务:相比于我来说,我想点个餐,然后这个点餐这个过程,我觉得应该是先发起一个点餐的任务,然后后台接收到这个任务,接收到任务之后,在把任务分配给调度车辆,然后调度车辆接到这个调度任务之后把相应的东西运送到目的地,然后结束掉。

    首先啊,肯定要有个任务表,来记录任务,然后有个调度表,来记录任务调度的状态,比如说任务调度给了调度车辆,然后车辆开始执行任务,车辆到达目的地,车辆完成任务等等。之后呢还需要车辆提供一下在这个任务中行走的轨迹,我们好知道他到哪里了,方便给客户推送实时信息。所以说呢?这里面的表包括

1.任务表:记录任务的

2.调度表:记录调度车辆状态信息的

3.坐标轨迹表:可以清楚的了解车辆信息的位置的

       但是呢,这个估计还不全,因为上面讲到了,这个任务有可能是特殊的,我们可能还需要加一个扩展表来满足它的特殊性,然后每个任务都是要对司机进行结算的,所以我们要有一个结算表来记录司机和任务的结算方式的。所以:

1.任务表:记录任务的

2.调度表:记录调度车辆状态信息的

3.坐标轨迹表:可以清楚的了解车辆信息的位置的

4.任务扩展表:记录特殊信息

5.结算表:记录司机和任务的结算金额

 

 

客户:

客户涉及到车辆服务的人群,所以首先有个客户表,根据客户的需求,可以在扩展出来其他的表

客户表

 

用户

用户包括组织权限,菜单,权限,角色,岗位,部门等等

用户表

用户角色表

角色表

菜单表

角色菜单表

权限表

岗位表

岗位菜单表

部门表

 

转载于:https://my.oschina.net/ohalo/blog/882600

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx 设置,设置已经解析的域名,在nginx中没有定义相应server时的默认访问

场景介绍: 因为业务需求,我们需要对域名进行解析,这里我对域名进行了如下解析但是,因为业务需求,我可能在nginx中只定义了kuman.xiaobudiu.top 和 www.xiaobudiu.top 的相应server的子配置文件,如图那么问题…

第一次作业--四则运算题目生成程序

功能简介: 1.获取用户所要生成算术的个数 2.随机生成算式和式子的答案 3.生成算式和答案的txt文件来保存算式和答案 思路: 生成里的运算数分为三个部分,整数,如果是分数就再分为分子和分母,然后为这三个部分创建数组&a…

ABP vNext微服务架构详细教程(补充篇)——单层模板(上)订正篇

简介在之前的《ABP vNext微服务架构详细教程》系列中,我们已经构建了完整的微服务架构实例,但是在开发过程中,我们会发现每个基础服务都包含10个类库,这是给予DDD四层架构下ABP的实现方案,但是实际使用中我们会发现&am…

javascript基础修炼(4)——UMD规范的代码推演

javascript基础修炼(4)——UMD规范的代码推演 1. UMD规范 地址:https://github.com/umdjs/umd UMD规范,就是所有规范里长得最丑的那个,没有之一!!!它是为了让模块同时兼容AMD和CommonJs规范而出现的&#x…

Missing artifact log4j:log4j:bundle:1.2.17

为什么80%的码农都做不了架构师?>>> maven引入log4jjar包出现Missing artifact log4j:log4j:bundle:1.2.17,解决方法是去掉bundle,其他的解决方案可以参考maven log4j.jar问题 Maven使用log4j可能会有协议上的问题 如果log4j的版…

PHPStorm 配置远程服务器文件夹在本地windows镜像,实现代码自动同步(类似于Samba架构文件同步功能)

场景介绍: 这是一种类似samba架构,也和 filezillaxshell 模式相类似的代码文件同步的模式,但是却更加优雅,也更加方便简洁。环境介绍: 本地windows端:编辑器phpstorm 远程Linux端:centos&#x…

反向ajax实现

在过去的几年中,web开发已经发生了很大的变化。现如今,我们期望的是能够通过web快速、动态地访问应用。在这一新的文章系列中,我们学习如何使用反 向Ajax(Reverse Ajax)技术来开发事件驱动的web应用,以此来…

linux系统启动流程及常见问题的解决

一、前言计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面。然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一个命令行…

使用.NET开发一个屏幕OCR工具

本文将介绍使用.NET开发的一款桌面截图 OCR 工具,软件已开源,地址:https://github.com/sangyuxiaowu/Snipping_OCR背景因为不同地方人们的使用习惯不同,国内可能截图更多的是使用QQ,微信等即时聊天工具提供的截图功能。…

Linux开启fileinfo扩展

在项目初始部署环境的时候,可能考虑的并不全面,就会少装一些扩展,这里讲解如何添加fileinfo扩展1、找到php安装的压缩包2、将压缩包cp到 /data目录下,并解压 cp php-7.0.30.tar.gz /data cd /data tar -zxvf php-7.0.30.tar.gz…

Layui版本的WPF开源控件库-Layui-WPF

大家好,我是沙漠尽头的狼。今天介绍一款Layui风格的WPF开源控件库,仓库信息如下:仓库地址:https://github.com/Layui-WPF-Team/Layui-WPF仓库截图:Layui-WPF关于Layui请点击此链接[1]了解,本文不做介绍&…

Mycat 之 通过Keepalived 实现高可用

一、系统拓扑图 一、操作方法 参考本博客的Nginx Keepalived 实现高可用转载于:https://blog.51cto.com/12965094/2164485

微软产品 .NET 6 迁移之旅

“.NET性能不行!”“.NET有什么像样的产品吗!?”“升级到.NET 6有什么好处!?”……听人扯淡还不如看看微软自己是怎么做的。本文将汇总一下微软的开发博客——这些博客均涉及微软将产品和服务迁移到.NET 6的成果。博客…

Navicat 连接 RDS数据库

场景介绍: 随着业务量的逐渐增加,公司的数据库压力也会逐渐增大,使用自己购买的esc创建的mysql的话,还得考虑相应的dba维护,也比较繁琐,说不定还做的并不完美,这时,RDS就派上用场了&…

为.NET应用添加截图功能

本文介绍了 .NET 实现截图功能的思路和过程,如果你仅想了解最后的解决方案,可以直接查看文章末尾。截图的功能我们应该都经常使用,在开发软件时,我们有时也或多或少需要提供这方面的功能,无论是为用户更方便提供远程诊…

K8S集群Master高可用实践

本文将在前文基础上介绍k8s集群的高可用实践,一般来讲,k8s集群高可用主要包含以下几个内容:1、etcd集群高可用2、集群dns服务高可用3、kube-apiserver、kube-controller-manager、kube-scheduler等master组件的高可用 其中etcd实现的办法较为…

[转载]智能科普:VR、AR、MR的区别

智能科普:VR、AR、MR的区别 http://news.zol.com.cn/553/5534833.html news.zol.com.cn 2015-11-23 16:00近日, 获得谷歌5亿美元融资的技术公司Magic Leap在WSJD展会中放出了一段实录视频,引起不小骚动。如今,也有媒体称他们为MR公…

PHP项目中,记录错误日志

一、场景介绍: 环境:LNMP 我们通常是通过nginx的错误日志来分析分错的,也就是我们在各个server中定义的error_log。 比如下面这样,就是将错误日志定义在/etc/nginx/logs/error/www.xiaobudiu.top.log,发生错误&#xf…

持续集成指南:GitLab 的 CI/CD 工具配置与使用

1前言写代码这项工作,本质就是将工作自动化,减少手工操作提供效率,因为人的本质都是懒狗,程序员也不能例外,为了各种意义的效率提升(懒),我们需要持续集成工具,将代码测试…

php 错误日志 redis' already loaded in Unknown on line 0

环境介绍:LNMP 报错信息:注:这个php_errors.log 是我在php.ini 中定义的错误日志路径 问题原因: 报错信息给出的意思是:redis和memcache 模块已经加载过问题解决: php加载模块有两种方式,一种是…