购物网站开发 项目描述,二级建造师注册查询官网入口,配送货wordpress,wordpress媒体图片压缩比根据日生产计划产量排产#xff0c;制定每2小时理论计划生产产量。
每2小时计划产量 每2小时工作时间#xff08;秒#xff09;/生产计划节拍#xff08;秒#xff09;。
假设#xff0c;生产计划节拍 #xff1a; 25.0(秒)/台
工厂以每天8点00分钟作为当日工作日的…根据日生产计划产量排产制定每2小时理论计划生产产量。
每2小时计划产量 每2小时工作时间秒/生产计划节拍秒。
假设生产计划节拍 25.0(秒)/台
工厂以每天8点00分钟作为当日工作日的起始时间。
相关表设计如下
01. 工作课程表表名称duty_time如下
...|.....|.....|....|work_flag
本日|08:00|08:20|早会|非工作时间(0)
本日|08:20|12:00|工作|工作时间(1)
本日|12:00|12:35|吃饭|非工作时间(0)
本日|12:35|17:30|工作|工作时间(1)
本日|17:30|18:00|吃饭|非工作时间(0)
本日|18:00|20:00|工作|工作时间(1)
本日|20:00|20:20|晚会|非工作时间(0)
本日|20:20|01:00|工作|工作时间(1)
次日|01:00|01:35|吃饭|非工作时间(0)
次日|01:35|06:30|工作|工作时间(1)
次日|06:30|07:00|吃饭|非工作时间(0)
次日|07:00|08:00|工作|工作时间(1)将工作课表起止时间转换分钟数分 表名称duty_time 分钟数分时*60分跨日次日1440;
day|start_time|end_time|work_type|work_flag|start_int|end_int
本日|08:00|08:20|早会|非工作时间(0)|480|500
...|.....|.....|....|...........|....|...
...|.....|.....|....|...........|....|...
次日|07:00|08:00|工作| 工作时间(1) |1860|1920每2小时计划生产量8点~10点时间段记录在10点时计划产量。
时间点|计划产量(xxx)10|xxx12|xxx14|xxx16|xxx18|xxx20|xxx22|xxx00|xxx02|xxx04|xxx06|xxx08|xxx02. 制作每2小时时间段数值表表名称segment_model起始时间是逻辑工作日8点 分钟数分时*60分跨日次日1440;
序号|开始时间点|结束时间点|开始时间点分钟|结束时间点分钟|
no|start_time|end_time|start_int|end_int
01|08:00|10:00| 480| 600
02|10:00|12:00| 600| 720
03|12:00|14:00| 720| 840
04|14:00|16:00| 840| 960
05|16:00|18:00| 960|1080
06|18:00|20:00|1080|1200
07|20:00|22:00|1200|1320
08|22:00|00:00|1320|1440
09|00:00|02:00|1440|1560
10|02:00|04:00|1560|1680
11|04:00|06:00|1680|1800
12|06:00|08:00|1800|192003. 制作分钟数值表“查表法模板表”表名称minute_time_table起始时间是逻辑工作日 分钟数分时*60分跨日次日1440; 以每天8点00分钟作为当日工作日的起始时间点。制作“模板表”模板表以8点01分开始每次递增一分钟。 “模板表”算法思想是“截止08点x分钟”时理论计划产量 x分钟-08点)*60秒/生产节拍秒。所以从08点01分钟开始做模板数据。 序号|时分|分钟数
no |minute_time|minute_int
0001|08:01| 481
0002|08:02| 482
0003|08:03| 483
....|.....|...
....|.....|...
....|.....|...
0958|23:58|1438
0959|23:59|1439
0960|00:00|1440
0961|00:01|1441
0962|00:02|1442
....|.....|...
....|.....|...
....|.....|...
1438|07:58|1918
1439|07:59|1919
1440|08:00|192004. SQL简单算法求解
SELECT tmp.id,tmp.start_time,tmp.end_time,SUM(tmp.work_flag) AS work_time_duration,SUM(tmp.work_flag)*60/25.0 AS work_count
FROM (
/**/SELECT sgmt.id,sgmt.start_time,sgmt.end_time,sgmt.start_int,sgmt.end_int,mint.minute_time,mint.minute_int,--duty.start_time,--duty.end_time,--duty.start_int,--duty.end_int,duty.work_type,duty.work_flagFROM demo.segment_model AS sgmtLEFT JOIN demo.minute_time_table AS mintON mint.minute_int sgmt.start_intAND mint.minute_int sgmt.end_intLEFT JOIN demo.duty_time AS dutyON duty.start_int mint.minute_intAND duty.end_int mint.minute_int
/**/
)AS tmpGROUP BY tmp.id,tmp.start_time,tmp.end_timeORDER BY tmp.id每2个小时时间段的工作分钟数扣除开会吃饭时间只统计工作时间分钟数值以及在工作时间分钟数值下的理论计划生产数量结果如下
id|开始时间| 结束时间| 工作分钟| 生产数量
id|start_time|end_time|duration|work_count
01| 08:00| 10:00| 100| 240
02| 10:00| 12:00| 120| 288
03| 12:00| 14:00| 085| 204
04| 14:00| 16:00| 120| 288
05| 16:00| 18:00| 120| 288
06| 18:00| 20:00| 120| 288
07| 20:00| 22:00| 100| 240
08| 22:00| 00:00| 120| 288
09| 00:00| 02:00| 085| 204
10| 02:00| 04:00| 120| 288
11| 04:00| 06:00| 120| 288
12| 06:00| 08:00| 090| 216