add_mes_ding_msg.sql 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. -- 钉钉消息推送配置(类型预置,页面只允许启停、按产线配人、测试发送)
  2. -- 挂载位置:系统管理 / 系统设置 / 钉钉消息推送
  3. CREATE TABLE IF NOT EXISTS `mes_ding_msg_config` (
  4. `id` varchar(64) NOT NULL COMMENT '主键',
  5. `msg_code` varchar(64) NOT NULL COMMENT '消息编码(代码写死)',
  6. `msg_name` varchar(100) NOT NULL COMMENT '消息名称',
  7. `module` varchar(20) NOT NULL COMMENT '模块:DEVICE/PROD/QUALITY',
  8. `trigger_desc` varchar(500) DEFAULT '' COMMENT '触发说明(只读展示)',
  9. `msg_content` text COMMENT '发送内容(页面可编辑)',
  10. `is_enabled` char(1) NOT NULL DEFAULT '0' COMMENT '是否启用:1是 0否',
  11. `sort_order` int DEFAULT 0 COMMENT '排序',
  12. `status` char(1) NOT NULL DEFAULT '0' COMMENT '状态',
  13. `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
  14. `create_date` datetime DEFAULT NULL COMMENT '创建时间',
  15. `update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
  16. `update_date` datetime DEFAULT NULL COMMENT '更新时间',
  17. `remarks` varchar(500) DEFAULT NULL COMMENT '备注',
  18. PRIMARY KEY (`id`) USING BTREE,
  19. UNIQUE KEY `uk_mes_ding_msg_code` (`msg_code`) USING BTREE
  20. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='钉钉消息推送配置';
  21. CREATE TABLE IF NOT EXISTS `mes_ding_msg_line` (
  22. `id` varchar(64) NOT NULL COMMENT '主键',
  23. `config_id` varchar(64) NOT NULL COMMENT '消息配置ID',
  24. `line_sn` varchar(64) NOT NULL COMMENT '产线编号',
  25. `line_title` varchar(100) DEFAULT '' COMMENT '产线名称',
  26. `user_codes` varchar(2000) DEFAULT '' COMMENT '接收人用户编码,逗号分隔',
  27. `user_names` varchar(2000) DEFAULT '' COMMENT '接收人姓名,逗号分隔',
  28. `mobiles` varchar(2000) DEFAULT '' COMMENT '接收人手机号,逗号分隔',
  29. `status` char(1) NOT NULL DEFAULT '0' COMMENT '状态',
  30. `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
  31. `create_date` datetime DEFAULT NULL COMMENT '创建时间',
  32. `update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
  33. `update_date` datetime DEFAULT NULL COMMENT '更新时间',
  34. `remarks` varchar(500) DEFAULT NULL COMMENT '备注',
  35. PRIMARY KEY (`id`) USING BTREE,
  36. KEY `idx_mes_ding_msg_line_cfg` (`config_id`, `line_sn`) USING BTREE
  37. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='钉钉消息产线接收人';
  38. INSERT INTO `js_sys_menu` (
  39. `menu_code`, `parent_code`, `parent_codes`, `tree_sort`, `tree_sorts`, `tree_leaf`, `tree_level`,
  40. `tree_names`, `menu_name`, `menu_type`, `menu_href`, `menu_target`, `menu_icon`, `menu_color`,
  41. `menu_title`, `permission`, `weight`, `is_show`, `sys_code`, `module_codes`, `component`, `params`,
  42. `status`, `create_by`, `create_date`, `update_by`, `update_date`, `remarks`
  43. )
  44. SELECT
  45. 'mesDingMsgConfig',
  46. '1582259828007895040',
  47. '0,1582259822626603008,1582259828007895040,',
  48. 180,
  49. '0000009000,0000000500,0000000180,',
  50. '1',
  51. 2,
  52. '系统管理/系统设置/钉钉消息推送',
  53. '钉钉消息推送',
  54. '1',
  55. '/mes/mesDingMsgConfig/list',
  56. '',
  57. 'icon-speech',
  58. '',
  59. '',
  60. 'mes:mesDingMsgConfig:view',
  61. 40,
  62. '1',
  63. 'default',
  64. 'core',
  65. NULL,
  66. NULL,
  67. '0',
  68. 'system',
  69. NOW(),
  70. 'system',
  71. NOW(),
  72. ''
  73. FROM DUAL
  74. WHERE NOT EXISTS (
  75. SELECT 1 FROM `js_sys_menu` WHERE `menu_code` = 'mesDingMsgConfig'
  76. );
  77. INSERT INTO `js_sys_menu` (
  78. `menu_code`, `parent_code`, `parent_codes`, `tree_sort`, `tree_sorts`, `tree_leaf`, `tree_level`,
  79. `tree_names`, `menu_name`, `menu_type`, `menu_href`, `menu_target`, `menu_icon`, `menu_color`,
  80. `menu_title`, `permission`, `weight`, `is_show`, `sys_code`, `module_codes`, `component`, `params`,
  81. `status`, `create_by`, `create_date`, `update_by`, `update_date`, `remarks`
  82. )
  83. SELECT
  84. 'mesDingMsgConfigEdit',
  85. 'mesDingMsgConfig',
  86. '0,1582259822626603008,1582259828007895040,mesDingMsgConfig,',
  87. 30,
  88. '0000009000,0000000500,0000000180,0000000030,',
  89. '1',
  90. 3,
  91. '系统管理/系统设置/钉钉消息推送/编辑',
  92. '编辑',
  93. '2',
  94. '',
  95. '',
  96. '',
  97. '',
  98. '',
  99. 'mes:mesDingMsgConfig:edit',
  100. 40,
  101. '0',
  102. 'default',
  103. 'core',
  104. NULL,
  105. NULL,
  106. '0',
  107. 'system',
  108. NOW(),
  109. 'system',
  110. NOW(),
  111. ''
  112. FROM DUAL
  113. WHERE NOT EXISTS (
  114. SELECT 1 FROM `js_sys_menu` WHERE `menu_code` = 'mesDingMsgConfigEdit'
  115. );
  116. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  117. SELECT 'DEVICE_PREVENT_TASK','DEVICE_PREVENT_TASK','预防性任务提示','DEVICE','每天中午12点进行定时任务:查询预防性维护计划,在开始前3天或者已经开始(未结束),但是没有完成的任务,进行提醒','0',10,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='DEVICE_PREVENT_TASK');
  118. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  119. SELECT 'DEVICE_MAINTAIN_15','DEVICE_MAINTAIN_15','设备保养三级维护(提前15天)','DEVICE','每天中午12点进行定时任务:查询预防性维护计划,未完成且距离开始时间正好提前15天的任务进行提醒','0',11,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='DEVICE_MAINTAIN_15');
  120. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  121. SELECT 'DEVICE_MAINTAIN_7','DEVICE_MAINTAIN_7','设备保养三级维护(提前7天)','DEVICE','每天中午12点进行定时任务:查询预防性维护计划,未完成且距离开始时间正好提前7天的任务进行提醒','0',12,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='DEVICE_MAINTAIN_7');
  122. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  123. SELECT 'DEVICE_MAINTAIN_3','DEVICE_MAINTAIN_3','设备保养三级维护(提前3天)','DEVICE','每天中午12点进行定时任务:查询预防性维护计划,未完成且距离开始时间正好提前3天的任务进行提醒','0',13,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='DEVICE_MAINTAIN_3');
  124. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  125. SELECT 'PROD_PLAN_RATE','PROD_PLAN_RATE','生产计划完成率低于97%','PROD','每天中午12点进行定时任务:排产计划中的最后一天中午12:00,如果完成率低于97%,进行提醒','0',20,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='PROD_PLAN_RATE');
  126. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  127. SELECT 'PROD_MATERIAL_3DAY','PROD_MATERIAL_3DAY','低于3天计划量的物料','PROD','每天中午12点进行定时任务:查询当前日期的计划数据,计算平均每天需要做工数量,结合产线每个工位需要的物料进行计算,如果库存中物料少于三天的需要物料进行提醒','0',30,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='PROD_MATERIAL_3DAY');
  128. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  129. SELECT 'PROD_OEE_85','PROD_OEE_85','设备OEE低于85%','PROD','每1小时进行定时任务:看设备综合效率管理大屏中的平均开动率,如果低于85%,则发送数据','0',40,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='PROD_OEE_85');
  130. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  131. SELECT 'PROD_STOCK_500','PROD_STOCK_500','产品成品库存低于500件','PROD','每天中午12点进行定时任务:查询批次码记录表中仓库中的批次码,计算数量,如果少于500,进行提醒','0',50,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='PROD_STOCK_500');
  132. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  133. SELECT 'QM_FIRST_NG','QM_FIRST_NG','首件NG时进行消息推送','QUALITY','触发任务:使用pda抽检模块提交首件检查为NG时触发','0',60,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='QM_FIRST_NG');
  134. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  135. SELECT 'QM_SPOT_NG','QM_SPOT_NG','抽检NG时进行消息推送','QUALITY','触发任务:使用pda抽检模块提交抽检为NG时触发','0',70,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='QM_SPOT_NG');
  136. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  137. SELECT 'QM_LAST_NG','QM_LAST_NG','末件NG时进行消息推送','QUALITY','触发任务:使用pda抽检模块提交末件检查为NG时触发','0',80,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='QM_LAST_NG');
  138. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  139. SELECT 'QM_REPAIR_ONLINE','QM_REPAIR_ONLINE','返修机完成重新上线','QUALITY','触发任务:返修检查OK时','0',90,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='QM_REPAIR_ONLINE');
  140. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  141. SELECT 'QM_SCRAP','QM_SCRAP','报废','QUALITY','触发任务:当调用报废接口提交时触发','0',100,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='QM_SCRAP');
  142. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  143. SELECT 'QM_NG_3','QM_NG_3','当班同产品不良数超过3','QUALITY','触发任务:加工提交结果为NG时,查询当班NG数量,当NG数量为4时触发','0',110,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='QM_NG_3');
  144. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  145. SELECT 'QM_NG_10','QM_NG_10','当班同产品不良数超过10','QUALITY','触发任务:加工提交结果为NG时,查询当班NG数量,当NG数量为11时触发','0',120,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='QM_NG_10');
  146. INSERT INTO `mes_ding_msg_config` (`id`,`msg_code`,`msg_name`,`module`,`trigger_desc`,`is_enabled`,`sort_order`,`status`,`create_by`,`create_date`,`update_by`,`update_date`)
  147. SELECT 'QM_NG_50','QM_NG_50','当班同产品不良数超过50','QUALITY','触发任务:加工提交结果为NG时,查询当班NG数量,当NG数量为51时触发','0',130,'0','system',NOW(),'system',NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `mes_ding_msg_config` WHERE `msg_code`='QM_NG_50');
  148. INSERT INTO `js_sys_role_menu` (`role_code`, `menu_code`)
  149. SELECT 'corpAdmin', 'mesDingMsgConfig' FROM DUAL
  150. WHERE NOT EXISTS (SELECT 1 FROM `js_sys_role_menu` WHERE `role_code`='corpAdmin' AND `menu_code`='mesDingMsgConfig');
  151. INSERT INTO `js_sys_role_menu` (`role_code`, `menu_code`)
  152. SELECT 'corpAdmin', 'mesDingMsgConfigEdit' FROM DUAL
  153. WHERE NOT EXISTS (SELECT 1 FROM `js_sys_role_menu` WHERE `role_code`='corpAdmin' AND `menu_code`='mesDingMsgConfigEdit');
  154. -- 已有库补加发送内容字段
  155. SET @col_exists := (
  156. SELECT COUNT(1) FROM information_schema.COLUMNS
  157. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'mes_ding_msg_config' AND COLUMN_NAME = 'msg_content'
  158. );
  159. SET @sql := IF(@col_exists = 0,
  160. 'ALTER TABLE mes_ding_msg_config ADD COLUMN msg_content text COMMENT ''发送内容'' AFTER trigger_desc',
  161. 'SELECT 1');
  162. PREPARE stmt FROM @sql;
  163. EXECUTE stmt;
  164. DEALLOCATE PREPARE stmt;
  165. ALTER TABLE mes_ding_msg_config MODIFY COLUMN trigger_desc varchar(500) DEFAULT '' COMMENT '触发说明';
  166. DELETE FROM mes_ding_msg_line WHERE config_id IN (
  167. SELECT id FROM (
  168. SELECT id FROM mes_ding_msg_config WHERE msg_code NOT IN (
  169. 'DEVICE_PREVENT_TASK','DEVICE_MAINTAIN_15','DEVICE_MAINTAIN_7','DEVICE_MAINTAIN_3',
  170. 'PROD_PLAN_RATE','PROD_MATERIAL_3DAY','PROD_OEE_85','PROD_STOCK_500',
  171. 'QM_FIRST_NG','QM_SPOT_NG','QM_LAST_NG','QM_REPAIR_ONLINE','QM_SCRAP','QM_NG_3','QM_NG_10','QM_NG_50'
  172. )
  173. ) t
  174. );
  175. DELETE FROM mes_ding_msg_config WHERE msg_code NOT IN (
  176. 'DEVICE_PREVENT_TASK','DEVICE_MAINTAIN_15','DEVICE_MAINTAIN_7','DEVICE_MAINTAIN_3',
  177. 'PROD_PLAN_RATE','PROD_MATERIAL_3DAY','PROD_OEE_85','PROD_STOCK_500',
  178. 'QM_FIRST_NG','QM_SPOT_NG','QM_LAST_NG','QM_REPAIR_ONLINE','QM_SCRAP','QM_NG_3','QM_NG_10','QM_NG_50'
  179. );