在上一文中,我们将原系统的部门管理改为了公司组织架构管理,并且为油站做了标识,但没有一个专门的模块来做油站信息维护和管理,本文将创建油站扩展表来管理油站的扩展信息。
站点配置功能分析
对于一个油站来说,我们通常需要记录油站号、油站名称、联系人、联系电话、油站状态(停用/启用)、经纬度(微信定位使用)、地址、油枪数量这些基本信息,在组织架构中已有组织ID、组织名称、联系人、联系电话、邮箱、状态,这几个字段可以直接复用,那么另外我们需要创建一张扩展表来保存剩余的信息。
对于站点配置这个功能来说,我们需要一个独立的菜单入口,同时也只有该操作权限的用户可以看到站点配置菜单,同时也只能查看和修改已授权的油站信息。
站点配置功能实现
- 添加代码模块
为了油站系统添加独立模块,将代码放在这个模块中,具体添加模块步骤请参考若依官网文档->后台手册->新增子模块章节,添加后的项目结构如图:
- 创建扩展表
根据上面的功能分析,需在数据库中创建扩展表,创建表语句整理如下:
CREATE TABLE `biz_dept_ext` (
`dept_id` BIGINT NOT NULL COMMENT '油站id',
`lng` DECIMAL(12,3) DEFAULT NULL COMMENT '经度',
`lat` DECIMAL(12,3) DEFAULT NULL COMMENT '纬度',
`address` VARCHAR(200) DEFAULT '' COMMENT '油站地址',
`noz_cnt` INT DEFAULT '0' COMMENT '油枪数量',
`update_time` DATETIME DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`dept_id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
COMMENT='站点扩展信息'
- 生成业务代码
将数据表创建完成后,打开若依界面,选择系统工具->代码生成,点击“导入”按钮,在弹出框中选择刚创建的扩展表,如下图:
- 修改deptextMenu.sql文件,删除新增、删除、导出功能权限并执行,修改后结果如下:
-- 菜单 SQL
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, STATUS, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES('站点设置', '2000', '1', 'deptext', 'nxx/deptext/index', 1, 0, 'C', '0', '0', 'nxx:deptext:list', '#', 'admin', SYSDATE(), '', NULL, '站点设置菜单');
-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();
-- 按钮 SQL
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, STATUS, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES('站点设置查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'nxx:deptext:query', '#', 'admin', SYSDATE(), '', NULL, '');
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, STATUS, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES('站点设置修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'nxx:deptext:edit', '#', 'admin', SYSDATE(), '', NULL, '');
- 为了提高代码的复用度,将domain和mapper目录下的文件复制到ruoyi-nxx-dao项目中,将service和controller代码复制到ruoyi-nxx-mgr项目中,如图:
- 修改BizDeptExt.java,添加已存在的站点字段,并修改BizDeotExtMapper.xml中的查询语句,结果如下:
- 修改BizDeptExtServiceImpl.java中selectBizDeptExtList方法,添加数据权限注解,结果如下:
- 将生成代码中vue目录下的api和views目录复制到ruoyi-ui下src目录,修改nxx/deptext/index.vue页面,列表上方的批量操作按钮,并修改列表字段,效果如下:
至此,站点信息配置已完成,并且保留了数据权限控制。