2026-09-12-pl-vehicle-fuel-register.sql 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. -- 车辆加油登记:新表 + 菜单(加油登记 / 加油信息汇总)
  2. -- 独立于 ETC 充值模块;历史 pl_vehicle_recharge_* fuel 行不迁移
  3. SET NAMES utf8mb4;
  4. CREATE TABLE IF NOT EXISTS `pl_vehicle_fuel_register` (
  5. `id` varchar(64) NOT NULL COMMENT '主键ID',
  6. `register_no` varchar(32) NOT NULL COMMENT '登记单号 SXJY+YYYYMMDD+6位',
  7. `fuel_category` varchar(20) NOT NULL COMMENT '加油类别 bailian-百链 gas_station-加油站',
  8. `register_date` date NOT NULL COMMENT '日期',
  9. `registrant_id` varchar(64) NOT NULL COMMENT '登记人用户ID',
  10. `license_plate` varchar(20) NOT NULL COMMENT '车牌号',
  11. `odometer_km` decimal(10,1) DEFAULT NULL COMMENT '期初公里数',
  12. `fuel_liters` decimal(10,2) NOT NULL COMMENT '加油升数',
  13. `attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
  14. `status` varchar(20) NOT NULL DEFAULT 'normal' COMMENT 'normal-正常 cancelled-已作废',
  15. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  16. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  17. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  18. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  19. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  20. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  21. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  22. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  23. `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
  24. PRIMARY KEY (`id`),
  25. UNIQUE KEY `uk_register_no` (`register_no`),
  26. KEY `idx_tenant_date` (`tenant_no`, `register_date`),
  27. KEY `idx_tenant_registrant` (`tenant_no`, `registrant_id`),
  28. KEY `idx_tenant_plate` (`tenant_no`, `license_plate`),
  29. KEY `idx_tenant_status` (`tenant_no`, `status`)
  30. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆加油登记';
  31. -- 加油登记(本人)
  32. INSERT INTO `sys_menu` (
  33. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  34. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  35. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  36. )
  37. SELECT
  38. 'PL_VEH_FUEL_REG', '加油登记', 'PL_GROUP_VEHICLE', 'C',
  39. 'vehicle-fuel-register', 'pl/vehicle-fuel-register/index',
  40. 'pl:vehicle-fuel-register:list', 1, '1', '1', 'shanxia2.0', 7, NULL,
  41. 'system', '', NOW(), NULL, NOW(), 0
  42. FROM DUAL
  43. WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_VEH_FUEL_REG' AND `del_flag` = 0);
  44. INSERT INTO `sys_menu` (
  45. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  46. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  47. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  48. )
  49. SELECT 'PL_VFR_Q', '查询', 'PL_VEH_FUEL_REG', 'F', '', '', 'pl:vehicle-fuel-register:query',
  50. 1, '1', '1', 'shanxia2.0', 1, NULL, 'system', '', NOW(), NULL, NOW(), 0
  51. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_VFR_Q' AND `del_flag` = 0);
  52. INSERT INTO `sys_menu` (
  53. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  54. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  55. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  56. )
  57. SELECT 'PL_VFR_A', '新增', 'PL_VEH_FUEL_REG', 'F', '', '', 'pl:vehicle-fuel-register:add',
  58. 1, '1', '1', 'shanxia2.0', 2, NULL, 'system', '', NOW(), NULL, NOW(), 0
  59. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_VFR_A' AND `del_flag` = 0);
  60. INSERT INTO `sys_menu` (
  61. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  62. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  63. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  64. )
  65. SELECT 'PL_VFR_E', '编辑', 'PL_VEH_FUEL_REG', 'F', '', '', 'pl:vehicle-fuel-register:edit',
  66. 1, '1', '1', 'shanxia2.0', 3, NULL, 'system', '', NOW(), NULL, NOW(), 0
  67. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_VFR_E' AND `del_flag` = 0);
  68. INSERT INTO `sys_menu` (
  69. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  70. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  71. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  72. )
  73. SELECT 'PL_VFR_C', '作废', 'PL_VEH_FUEL_REG', 'F', '', '', 'pl:vehicle-fuel-register:cancel',
  74. 1, '1', '1', 'shanxia2.0', 4, NULL, 'system', '', NOW(), NULL, NOW(), 0
  75. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_VFR_C' AND `del_flag` = 0);
  76. -- 加油信息汇总(全部)
  77. INSERT INTO `sys_menu` (
  78. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  79. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  80. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  81. )
  82. SELECT
  83. 'PL_VEH_FUEL_SUM', '加油信息汇总', 'PL_GROUP_VEHICLE', 'C',
  84. 'vehicle-fuel-summary', 'pl/vehicle-fuel-summary/index',
  85. 'pl:vehicle-fuel-summary:list', 1, '1', '1', 'shanxia2.0', 8, NULL,
  86. 'system', '', NOW(), NULL, NOW(), 0
  87. FROM DUAL
  88. WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_VEH_FUEL_SUM' AND `del_flag` = 0);
  89. INSERT INTO `sys_menu` (
  90. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  91. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  92. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  93. )
  94. SELECT 'PL_VFS_Q', '查询', 'PL_VEH_FUEL_SUM', 'F', '', '', 'pl:vehicle-fuel-summary:query',
  95. 1, '1', '1', 'shanxia2.0', 1, NULL, 'system', '', NOW(), NULL, NOW(), 0
  96. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_VFS_Q' AND `del_flag` = 0);
  97. INSERT INTO `sys_menu` (
  98. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  99. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  100. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  101. )
  102. SELECT 'PL_VFS_A', '新增', 'PL_VEH_FUEL_SUM', 'F', '', '', 'pl:vehicle-fuel-summary:add',
  103. 1, '1', '1', 'shanxia2.0', 2, NULL, 'system', '', NOW(), NULL, NOW(), 0
  104. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_VFS_A' AND `del_flag` = 0);
  105. INSERT INTO `sys_menu` (
  106. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  107. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  108. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  109. )
  110. SELECT 'PL_VFS_E', '编辑', 'PL_VEH_FUEL_SUM', 'F', '', '', 'pl:vehicle-fuel-summary:edit',
  111. 1, '1', '1', 'shanxia2.0', 3, NULL, 'system', '', NOW(), NULL, NOW(), 0
  112. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_VFS_E' AND `del_flag` = 0);
  113. INSERT INTO `sys_menu` (
  114. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  115. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  116. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  117. )
  118. SELECT 'PL_VFS_C', '作废', 'PL_VEH_FUEL_SUM', 'F', '', '', 'pl:vehicle-fuel-summary:cancel',
  119. 1, '1', '1', 'shanxia2.0', 4, NULL, 'system', '', NOW(), NULL, NOW(), 0
  120. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_VFS_C' AND `del_flag` = 0);
  121. -- 已拥有「车辆管理」分组的角色:同步授权新菜单及按钮
  122. INSERT INTO `sys_role_menu` (
  123. `id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`,
  124. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  125. )
  126. SELECT
  127. MD5(CONCAT(rm.role_id, '|', m.menu_id, '|fuel|', rm.id)),
  128. rm.role_id,
  129. m.menu_id,
  130. rm.tenant_no,
  131. 0,
  132. NULL,
  133. 'system',
  134. '',
  135. NOW(),
  136. NULL,
  137. NOW(),
  138. 0
  139. FROM `sys_role_menu` rm
  140. JOIN (
  141. SELECT 'PL_VEH_FUEL_REG' AS menu_id UNION ALL
  142. SELECT 'PL_VFR_Q' UNION ALL SELECT 'PL_VFR_A' UNION ALL SELECT 'PL_VFR_E' UNION ALL SELECT 'PL_VFR_C' UNION ALL
  143. SELECT 'PL_VEH_FUEL_SUM' UNION ALL
  144. SELECT 'PL_VFS_Q' UNION ALL SELECT 'PL_VFS_A' UNION ALL SELECT 'PL_VFS_E' UNION ALL SELECT 'PL_VFS_C'
  145. ) m
  146. WHERE rm.menu_id = 'PL_GROUP_VEHICLE'
  147. AND rm.del_flag = 0
  148. AND NOT EXISTS (
  149. SELECT 1 FROM `sys_role_menu` x
  150. WHERE x.role_id = rm.role_id AND x.menu_id = m.menu_id AND x.del_flag = 0
  151. );