JEECG中用户、部门信息存储用到3张表 - 用户表: | 字段| 描述 | | --- | --- | | id | 用户ID | | username | 用户账号 | - 部门表: | 字段| 描述 | | --- | --- | | id | 部门ID | | orgCode | 部门编码 | | departName| 部门名称 | | parentId| 上级部门ID | - 关系表: | 字段| 描述 | | --- | --- | | departId | 部门ID | | userId | 用户ID | 现在需要将其他系统的用户部门信息通过excel导入JEECG,问题在于: - 1.其他系统字段命名和JEECG不一致 - 2.表结构设计可能不一样,此处我忽略这个问题,默认认为其他系统也是使用了3张表存储,可能区别在于部门表的设计,在JEECG中部门编码是一个有着级联关系的字符串。 - 3.最终的问题就是上述字段的赋值问题。 上述字段的赋值。 方案:将原数据整理成3个sheet, - 读取用户的时候,用sourceId接收原数据ID,定义map,map-key取sourceId,map-value取现在的ID,其他字段根据注解设置值 - 读取部门的时候,用sourceId接收原数据ID,定义map操作同上,parentId取值从map里取即可,orgcode设置起始值默认`A01`依次增加。这里设置orgcode需要用到递归,遍历数据判断是否有parentId,没有parentId说明是第一层部门直接根据设置的部门编码初始值递增赋值,有parentId的话找上一层的orgcode,上一层有,根据此orgcode增加一级设置新的orgcode并记录以便下次遇到同一上级的部门可以从此记录值递增,这个上一层没有orgcode则再次递归调用。 - 读取关系表,根据现有的两列id值,分别从上述两个map里取实际的id值, 最后,3个list批量入库。 ``` 用户:id,sourceId... 部门:id,sourceId... ```