当前位置: 首页 > news >正文

生产计划排产,制定每小时计划产量(“查表法”SQL计算)

根据日生产计划产量排产,制定每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|xxx

 

02. 制作每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|1920

 

03. 制作分钟数值表“查表法模板表”(表名称: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|1920

04. 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

 

http://www.lryc.cn/news/360180.html

相关文章:

  • 视频汇聚管理安防监控平台EasyCVR程序报错“create jwtSecret del server class:0xf98b6040”的原因排查与解决
  • 头歌页面置换算法第2关:计算OPT算法缺页率
  • vscode怎么拷贝插件到另一台电脑
  • 网络协议分析
  • GAMIT目录配置
  • 基于JSP的九宫格日志网站
  • C#中结构struct能否继承于一个类class,类class能否继承于一个struct
  • 【Vulhub】Fastjson 1.2.24_rce复现
  • 【iconv】UTF-8字符串转换为UTF-16字符串
  • AI技术的未来展望:重塑人类社会的智能革命
  • 掘金AI 商战宝典-系统班:2024掘金AIGC课程(30节视频课)
  • C# WinForm —— 26 ImageList 介绍
  • Vue:现代前端开发的首选框架-【声明周期钩子详解】
  • 【因果推断python】8_线性回归模型2
  • MySQL目录和文件
  • 0基础学习Elasticsearch-Quick start
  • Centos给普通用户添加sudo命令权限
  • 编写备份MySQL 脚本
  • C语言中的数据类型转换:隐式类型转换与显示类型转换
  • Android 安卓通过bindService ServiceConnection 没有响应的问题
  • python切片(彻底解除对切片的曲解)
  • Java—— StringBuilder 和 StringBuffer
  • vs2019 c++20 规范 STL库中关于时间的模板
  • 激光焊接机作为一种高效、精密的焊接设备
  • vite为什么速度快
  • Java网络编程(下)
  • APISIX的安装与测试(springboot服务测试)
  • AI技术:探索未来智能的无限可能
  • npm install 出错,按照版本不匹配解决
  • 【第1章】SpringBoot实战篇之注册接口