文章目录

  • 1、需求
  • 2、service层
  • 3、sql

1、需求

2、service层

 /*** 趋势图近七天数据获取* 1.数据校验 判断仓库是否有效* 2.自redis取数,取到数据直接返回* 3.redis无数据,去数据库读,返回并根据key存redis* @param depotCode* @return*/public OverviewAResp overview(String depotCode) {//1if (ObjectUtils.isEmpty(depotInfoService.getDepotInfoByCode(depotCode.trim()))){throw new BizException(BizErrorCode.NO_DATA,"仓库编码不存在");}//2OverviewAResp redisData = (OverviewAResp) redisService.get(REDIS_KEY_FOR + depotCode.trim());if (ObjectUtils.isNotEmpty(redisData)) {return redisData;}//3OverviewAResp data = overviewDataDeal(depotCode);redisService.add(REDIS_KEY_FOR + depotCode.trim(),data, null);return overviewDataDeal(depotCode);}/*** 这是一个专门负责取数,服务于楼上和定时任务的方法的方法,没有进行数据校验* @param depotCode* @return*/public OverviewAResp overviewDataDeal(String depotCode) {OverviewAResp overviewAResp = new OverviewAResp();overviewAResp.setReceiptInfoDtoList(orderReceiptService.getReceiptInfoDto(depotCode));overviewAResp.setOutboundInfoDtoList(orderShipmentService.getOutboundInfoDto(depotCode));return overviewAResp;}/*** 深夜计划 每天的凌晨 0:01 刷新各仓库七天的数据存入Redis,* 以备前端接口获取数据,不会因数据量而照成响应时间长的情况*/public void refreshOverviewPageDataAllDepotInfo() {//获取所有有效仓库信息List<DepotInfo> depotInfoList = depotInfoService.getAllDepotInfo();SimpleDateFormat df = new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN);if (depotInfoList != null && depotInfoList.size() > 0) {//根据KEY 覆盖式更新,redis不设置失效时间for (DepotInfo depotInfo : depotInfoList) {OverviewAResp data = overviewDataDeal(depotInfo.getDepotCode());redisService.add(REDIS_KEY_FOR + depotInfo.getDepotCode(),data, null);}log.info("执行时间:" + df.format(new Date()) + ",此次更新数据的仓库有:" + depotInfoList.toString());} else {log.error("执行时间:" + df.format(new Date()) + "未获取到仓库信息");}}

3、sql

SELECTa.dt,b.addNum,c.cancelNUm
FROM( SELECT DATE_SUB( CURRENT_DATE, INTERVAL help_topic_id DAY ) dt FROM mysql.help_topic WHERE help_topic_id BETWEEN 0 AND 6 ) aLEFT JOIN (
SELECTDATE_FORMAT(create_time,'%Y-%m-%d') AS dt,count( * ) AS addNum
FROMorder_receipt
WHEREcreate_time > DATE_SUB( curdate( ), INTERVAL 8 DAY ) AND mark > 0 AND order_state NOT IN ( "11" ) AND depot_code = "HMD-051-00"
GROUP BYTO_DAYS( create_time ) ) b ON a.dt = b.dtLEFT JOIN (
SELECTDATE_FORMAT(create_time,'%Y-%m-%d') AS dt,count( * ) AS cancelNUm
FROMorder_receipt
WHEREcreate_time > DATE_SUB( curdate( ), INTERVAL 8 DAY ) AND mark > 0 AND order_state = "11" AND depot_code = "HMD-051-00"
GROUP BYTO_DAYS( create_time ) ) c ON c.dt = a.dtORDER BY a.dt

查询7日内的展示数据相关推荐

  1. Spring Boot+MybatisPlus使用JQuery DataTables表格插件展示数据、实现分页和模糊查询等功能

    Spring Boot+MybatisPlus使用JQuery DataTables表格插件展示数据.实现分页和查询功能 一.部分技术选型 二.项目结构 三.功能需求和效果展示 四.关键代码 4.1页 ...

  2. 利用bootstraptable展示数据,对数据进行排序分页等操作

    今天分享一下bootstraptable的相关技能点,由于第一次接触,所以刚开始碰了好多壁,于是趁现在过去不久,先总结总结. Bootstraptable简单的来说就是一个表格控件,但是这个表格可不是 ...

  3. layui表格展示数据时:返回的数据不符合规范,正确的成功状态码应为:code: 0

    1.今天,用django和layui结合,处理表格展示数据时,有数据的表格能正常显示列表,无数据的表格却提示了:返回的数据不符合规范,正确的成功状态码应为:"code": 0,于是 ...

  4. 数据展示_使用Cadvisor监控容器并展示数据

    Cadvisor使用Go语言开发,利用Linux的cgroups获取容器的资源使用信息,cadvisor不仅可以搜集一台机器上所有运行的容器信息,还提供基础查询界面和http接口,方便其他组件如Pro ...

  5. 自我规范模版A要求2:展示数据列表 (无从表)和导出数据页面

    名称: 展示数据列表 (无从表)和导出页面 路径要求: /pages/${entityClassName}/XXX_list.zul /pages/${entityClassName}/XXX_lis ...

  6. MySQL分组查询,获取分组后数据

    MySQL分组查询,获取分组后数据 MySQL分组查询,将其它列的数据,合并到一行展示,可以设置去重,设置去重,设置排序,截取指定条数 创建表结构 CREATE TABLE `author_info` ...

  7. 各位集美兄得看过来! 利用AI给青春有你2的选手们做数据分析挖掘(二):统计并展示数据

    各位集美兄得看过来! 利用AI给青春有你2的选手们做数据分析挖掘(一):爬虫选手信息 各位集美兄得看过来! 利用AI给青春有你2的选手们做数据分析挖掘(二):统计并展示数据 各位集美兄得看过来! 利用 ...

  8. layui做折线图_flask+layui+echarts实现前端动态图展示数据效果

    效果图: 该效果主要实现一个table展示数据,并在下方生成一个折线图. 实现方式: 1.首先需要对表格进行一个数据加载,这里用到了layui的table.render,具体用法可以参考 https: ...

  9. vue 表格 侧边(竖向)表头展示数据

    实现效果: 表格区域: <!-- 表格区域 :loading="loading"--><el-tableheight="calc(100% - 60px ...

最新文章

  1. Android studio 开发工具,试图预览工具不见了找会设置
  2. 利用frp进行内网穿透
  3. 科学解释超级计算机,超级计算机:彻底“改变”科学
  4. linux中查看lvm的名称,关于Linux中LVM的使用总结
  5. TFTP、RAM、NVRAM之间的关系
  6. Android学习笔记(5)----启动 Theme.Dialog 主题的Activity时程序崩溃的解决办法
  7. keras核心已转储_转储Keras-ImageDataGenerator。 开始使用TensorFlow-tf.data(第2部分)
  8. 面板php,自己的路面板添加php扩展
  9. 笑谈软件工程:烽烟中的敏捷
  10. Spring不使用XML的注解开发
  11. IP地址的定义和含义
  12. Python中如何打印空行
  13. php开发技术规范怎么写,PHP开发技术规范!(2)
  14. 老男孩python全栈视频教程_老男孩Python全栈7期,Flask全套组件及原理剖析视频教程下载...
  15. 他妈的 Python(1):怎么发起一个同步的 HTTP 请求
  16. 软件开发平台之争:NET VS Java,谁是更好的选择?
  17. strchr、strstr函数
  18. Unity + SteamVR + VIVE Pro进行动作捕捉
  19. AAAI2020|Asymmetric Co-Teaching for Unsupervised Cross-Domain Person Re-Identification
  20. 英语爱阅读--I hope you live a life you're proud of

热门文章

  1. AP AUTOSAR 6——Execution Management
  2. 元学习—模型不可知元学习(MAML)
  3. Python爬虫项目--批量爬取公司债券平台网公司信息并下载PDF
  4. STM32F103 PB3 作为 普通IO使用
  5. Matplotlib 多子图绘制
  6. WIFI 认证加密模式介绍
  7. 计算机技术在美术方面的应用,计算机技术在图形图像处理中的应用
  8. Mac 截图工具 iShot Pro - 软件介绍、下载安装详细教程
  9. Delphi XE5教程9:基本语法元素
  10. 蓝桥杯-完全二叉树的权值(运用数学思想超快解题)