参考

知网 某硕士论文:宅急送路由辅助信息系统的设计与实现

试算逻辑为::

a.  根据选择的出发地找到所有从当前出发地发车的资源包括航空、班车和
零担存放到 Map(起名 map1)里备用。 
b.  循环遍历 map1,循环体里再用资源的到达城市作为出发城市继续执行 a
的操作将资源存放到 Map2 里,并且与 map1 里的数据进行拼接 
c.  如果在执行拼接的过程中资源的到达城市跟是界面录入的到达城市相
同,将结果放入 Map(起名 mapResult),否则继续拼接执行 b 的操作。  
d.  最多执行 5 次 b 步骤。满足最多中转 4 次的要求,或者也可以按照界面
的要求控制次数。 
e.  对 mapResult 的结果执行过滤,保留优质的路由。 
f.  最终将剩下的路由保存到系统。

具体代码实现如下:

ssm下的测试代码

测试方法代码

@Testpublic void testMapper() throws Exception {List<Routelinebill> findByStartCity = routelinebillMapper.findByStartCity("北京");Routebill routebill = new Routebill();routebill.setStartcity("北京市");routebill.setEndcity("湛江市");List<Routebill> results=new ArrayList<>();trial(findByStartCity, routebill, results);for (Iterator iterator = results.iterator(); iterator.hasNext();) {Routebill routebill1 = (Routebill) iterator.next();System.out.println(routebill1.toString());}}

试算的实现,一个迭代的算法

 public  void  trial(List<Routelinebill> startline,Routebill result,List<Routebill> results){for (Iterator iterator = startline.iterator(); iterator.hasNext();) {Routebill result2 = (Routebill)result.clone();Routelinebill routelinebill = (Routelinebill) iterator.next();routelinebill.setId(UUIDUtils.getId());//保存路由起始时间if (routelinebill.getStartstation().equals(result2.getStartcity())) {result2.setStarttime(routelinebill.getStarttime());result2.setName(result2.getStartcity()+"-"+result2.getEndcity()+"(起始:"+routelinebill.getLinename()+")");//每一次刚开始循环都清空}result2.setRouteprice(routelinebill.getLineprice()+result2.getRouteprice());result2.setMileage(routelinebill.getMileage()+result2.getMileage());result2.setSumDuration(routelinebill.getDuration()+result2.getSumDuration());result2.getRoutelinebills().add(routelinebill);//如果终点一致就存起来继续下一个遍历if (routelinebill.getEndstation().equals(result2.getEndcity())) {result2.setEndtime(routelinebill.getEndtime());result2.getTimelimit();result2.setId(UUIDUtils.getId());results.add(result2);continue;}//不一致就存到中转站中if (result2.getTransfernode1()==null) {result2.setTransfernode1(routelinebill.getEndstation());}else if (result2.getTransfernode2()==null) {result2.setTransfernode2(routelinebill.getEndstation());}else if (result2.getTransfernode3()==null) {result2.setTransfernode3(routelinebill.getEndstation());}else if (result2.getTransfernode4()==null) {result2.setTransfernode4(routelinebill.getEndstation());}else{continue;}List<Routelinebill> findByStartCity = routelinebillService.findByStartCity(routelinebill.getEndstation());if (findByStartCity == null) {continue;}trial(findByStartCity, result2, results);}}

物流中的独立节点路由试算相关推荐

  1. 如何编制试算平衡表_利用Excel制作总账表试算平衡表

    企业的总账处理也是财务问题,总账是日记账的汇总,一般来说,在总账中每个会计科 目占用一行,此外在财务计算中,还需要使用试算平衡表,下面介绍这两种表格的详细制作 过程. (1)新建Excel 2010工 ...

  2. lavaral中文手册_【laravel7.x中文文档】路由

    路由 [TOC] 基本路由 构建基本路由只需要一个 URI 与一个 闭包 ,这里提供了一个非常简单优雅定义路由的方法: Route::get('foo', function () { return ' ...

  3. 试算平衡表示例图_期末试算平衡表截图

    [判断题]商业汇票的付款期限最长不得超过 9 个月. ( ) [多选题]硫代硫酸钠溶液不稳定,下列说法正确的是 [简答题]1-简述中控门锁的作用 [判断题]在支付结算业务处理的过程中必须坚持" ...

  4. [xms]西软xms试算平衡报表-穿透明细报表-增加储值卡卡号列

    只能呵呵哒 [xms]西软xms试算平衡报表-穿透明细报表-增加储值卡卡号列 pospay select menu,vipcard from pos_pay where paycode='9303' ...

  5. 移动namenode、secondarynamenode和jobTracker的节点(使其成为独立节点)

    由于集群规模差异较大,对于主节点守护进程的配置也差异很大,包括namenode.辅助namenode和jobtracker.对于一个小型集群来说(几十个节点),可以直接将这些守护进程放到单独的一台机器 ...

  6. 关机时无人照管更新正在运行_无法抗拒的未来:无人叉车在内部物流中已成为现实...

    自动化和半自动化的叉车不再是新奇的东西,在人力短缺的仓库中取得了进展.他们最终会成为规范吗? 目前尚不知道全世界有多少辆无人驾驶叉车(也称为自动叉车.机器人叉车或者AGV)售出.但是叉车生产商都显示出 ...

  7. 如何编制试算平衡表_试算平衡表的编制

    试算平衡表 一.试算平衡表中的平衡关系 定义: 试算平衡表是对会计总账科目发生额及余额进行试算平衡的基础报表, 是编制资产负 债表.损益表等有关报表的工作底稿.这份表格有助于检查记录的准确性和编制财务 ...

  8. 用友nc操作手册_铁军人物汤轩宇, 入职两年,她用努力和汗水编制出单户试算操作手册...

    她在财务部一个默默无闻的工作岗位辛勤工作,大家不了解她的工作内容,当然也未知个中的艰辛,但她的岗位对于公司来说非常重要,所以她不敢有丝毫的怠慢,无论工作有多么艰难都要加班加点完成,她就是汤轩宇,201 ...

  9. 【大数据作业02】HDFS中的名称节点和数据结点的具体功能

    试述HDFS中的名称节点和数据结点的具体功能 名称节点负责管理分布式文件系统的命名空间,记录每个文件中各个块所在的数据节点的位置信息: 数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取 ...

最新文章

  1. CloseHandle()函数的使用(转载)
  2. linux查看某个端口是被哪个进程占用的
  3. vs代码显示波浪线,但没编译错误
  4. Android 中 Behavior, NestedScrollingParent, NestedScrollingChild 关系
  5. Linux运行hadoop命令,将hadoop程序打成jar包,在linux下以命令行方式运行(例如单词计算程序)...
  6. 动态规划(dynamic programming)基础【背包问题】
  7. flex 下对齐_Flex 布局教程:语法篇
  8. xuggler实现视频压缩_Xuggler视频处理简介
  9. app账号退不出去_最新!多交的税可以退,同学,你今天退税了吗?
  10. 信息学奥赛一本通(1235:输出前k大的数)——堆排序
  11. Java修炼之道--集合框架
  12. linux ip协议号,IP协议号大全
  13. 二级菜单不同方法的实现
  14. JavaScript-箭头函数
  15. JS PopupAlert
  16. “鬼才”论文致谢刷屏!感谢我导“似导非导”的指导……
  17. postman 测试excel下载_postman下载,postman下载excel
  18. Bzoj4556: [Tjoi2016Heoi2016]字符串
  19. 同一页面显示不同内容
  20. VMware虚拟机复制文件卡死的解决

热门文章

  1. 一帆基金投资报告:下周初股指将选择方向
  2. ftl模板导出excel_freemarker导出Excel
  3. 光滑曲线_光滑曲线可求长定理证明
  4. vue elementUI 默认事件 添加额外参数
  5. 为什么Pod突然就不见了?
  6. Linux 安装python 3.8(Linux 的版本为 Centos 7)
  7. 多线程+SOCKET编程实现qq群聊的服务端和客户端
  8. 跑跑卡丁车组队竞速赛得分制度问题
  9. xposed模块开发第一篇
  10. AIO600 IPPBX电话交换机对接联通移动IMS服务器