用spark sql 或者scala spark 实现都可以
机器回答的就算了,答的都不对,如果是真人写出来验证没问题可以加钱
OEE 设备综合效率(OEE)用来表现机器实际的生产能力相对于理论产能的比率
现在需要计算每个模组的真实有效运行的时间,一个大模组有多台机台,每个模组的机台数是不一样的。
如何判断定模组的有效运行时间:
1、模组有并行机台 以及串行机台,串行机台必须保证是同时都有在运行的时间,并行的机台只要这个时间有一台机器在运行,整个模组都是有效的,如果串行的机台在这个时间段没有运行,整个模组都不算运行时间
2、串行的时间要保证每个机台都有,并且是并行时间里面有包含串行的时间,如果串行的时间其中有一个机台时间没有,这个时间段都不算有效运行时间
以下是测试数据:
有2个表 一个配置表 一个实际设备运行表
配置表字段有:
TERMINL_ID -- 机台ID
TYPE --类型 Y并行 机台 null 串行机台
MODEL_ID --模组ID
MODEL_NAME --模组名称
设备表字段:
TERMINL_ID --机台ID
START_TIME --开始时间
END_TIME --结束数据
STATUS --状态
配置表:
TERMINL_ID TYPE MODEL_ID MODEL_NAME
1001 111 TEST
1002 Y 111 TEST
1003 Y 111 TEST
1004 111 TEST
测试数据:
TERMINL_ID START_TIME END_TIME STATUS
1001 2023/3/20 8:05 2023/3/20 8:08 running
1001 2023/3/20 8:00 2023/3/20 8:00 running
1002 2023/3/20 8:10 2023/3/20 8:11 running
1002 2023/3/20 8:11 2023/3/20 8:11 running
1003 2023/3/20 8:03 2023/3/20 8:05 running
1003 2023/3/20 8:06 2023/3/20 8:07 running
1004 2023/3/20 8:06 2023/3/20 8:11 running
1004 2023/3/20 8:11 2023/3/20 8:12 running
1005 2023/3/20 8:00 2023/3/20 8:07 running