...
(本文档仅供参考)
需求描述:
工厂目前有多条流水线,每天8点开始运行,17点分停止,希望以图形的形式展示当天流水线各个机器的安排情况。
...
1、把日期时间处理成数字:从数据上看可以考虑把任务执行的消化时长数值作为X轴,但X轴是从0开始的,而机器每天8点开始运行,因此还需要对8点开始的机器+8即:开始时间8。即:开始时间=8点 然后耗时+8,其他时间段 然后直接处理成耗时,对所有的数据进行堆叠。(注:截图是SqlServer语法,时间处理可自行根据数据库类型调整)然后直接处理成耗时,对所有的数据进行堆叠。
2、增加排序字段:由于堆叠是按照耗时字段堆叠,顺序可能出现异常,因此可把流水线和机器开始时间拼接,用于排序
代码块 | ||||
---|---|---|---|---|
| ||||
(注:以下SqlServer语法,时间处理可自行根据数据库类型调整)
select
"線別"+
CONVERT(varchar(100), "時間開始", 120) as sort,
"線別",
"機型",
"時間開始",
"時間結束",case
when DATENAME(hour, "時間開始") = 8 then DATEDIFF(second, "時間開始", "時間結束") / 3600.0 + 8
else DATEDIFF(second, "時間開始", "時間結束") / 3600.0
end as times
from
"dbo"."生產排程1"
order by
"線別",
"時間開始"
|
...
3、通过扩展属性处理X轴的数值标签 转为时间标签,并把最小值调整为8点,最大值为17点
代码块 | ||
---|---|---|
| ||
{ "xAxis": { "position": "top", "min":8, "max":17, "axisLabel": { "formatter": "function(param){return param +':00';}" }, "axisTick": { "show": true }, "axisLine": { "show": true }, "splitLine": { "show": true }, "interval": 1 } } |
...