前端要求畫一個樹形組織機構圖,具體要求:前端
前端向後端傳遞參數爲【登陸用戶所在組織機構id】,要求後端返回json數據,前端解析數據畫出樹形組織機構圖。java
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for sys_organization -- ---------------------------- DROP TABLE IF EXISTS `sys_organization`; CREATE TABLE `sys_organization` ( `org_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '組織機構Id', `org_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL COMMENT '組織機構名稱', `parent_id` int(11) unsigned NOT NULL COMMENT '父節點爲空的是根機構', PRIMARY KEY (`org_id`), UNIQUE KEY `idx_oname` (`org_name`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- ---------------------------- -- Records of sys_organization -- ---------------------------- INSERT INTO `sys_organization` VALUES ('1', '順心工程總公司', '0'); INSERT INTO `sys_organization` VALUES ('3', '北京分公司', '1'); INSERT INTO `sys_organization` VALUES ('12', '北京分公司-車隊', '3'); INSERT INTO `sys_organization` VALUES ('13', '北京分公司-生產運行科', '3'); INSERT INTO `sys_organization` VALUES ('14', '北京分公司-計劃經營科', '3'); INSERT INTO `sys_organization` VALUES ('15', '北京分公司-物資管理部', '3'); INSERT INTO `sys_organization` VALUES ('16', '北京分公司-財務科', '3'); INSERT INTO `sys_organization` VALUES ('17', '北京分公司-綜合研究所', '3'); INSERT INTO `sys_organization` VALUES ('18', '北京分公司-審計紀檢科', '3'); INSERT INTO `sys_organization` VALUES ('19', '北京分公司-綜合辦公室', '3'); INSERT INTO `sys_organization` VALUES ('20', '北京分公司-工程技術科', '3'); INSERT INTO `sys_organization` VALUES ('21', '北京分公司-工程建設科', '3'); INSERT INTO `sys_organization` VALUES ('22', '北京分公司-安全環保科', '3'); INSERT INTO `sys_organization` VALUES ('23', '北京分公司-公共關係科', '3'); INSERT INTO `sys_organization` VALUES ('25', '大連分公司', '1'); INSERT INTO `sys_organization` VALUES ('26', '大連分公司-生產運行部', '25'); INSERT INTO `sys_organization` VALUES ('27', '大連分公司-綜合管理部', '25'); INSERT INTO `sys_organization` VALUES ('28', '大連分公司-安全環保部', '25'); INSERT INTO `sys_organization` VALUES ('29', '大連分公司-計劃財務部', '25'); INSERT INTO `sys_organization` VALUES ('30', '大連分公司-設備物資部', '25'); INSERT INTO `sys_organization` VALUES ('31', '大連分公司-公共關係部', '25'); INSERT INTO `sys_organization` VALUES ('37', '大連分公司-維修隊', '25'); INSERT INTO `sys_organization` VALUES ('38', '大連分公司-運維隊', '25'); INSERT INTO `sys_organization` VALUES ('39', '深圳分公司', '1'); INSERT INTO `sys_organization` VALUES ('40', '深圳分公司-安全環保科', '39'); INSERT INTO `sys_organization` VALUES ('41', '深圳分公司-生產運行科', '39'); INSERT INTO `sys_organization` VALUES ('42', '深圳分公司-綜合辦公室', '39'); INSERT INTO `sys_organization` VALUES ('43', '深圳分公司-黨羣工做科', '39'); INSERT INTO `sys_organization` VALUES ('44', '深圳分公司-審計紀檢科', '39'); INSERT INTO `sys_organization` VALUES ('45', '深圳分公司-計劃財務科', '39'); INSERT INTO `sys_organization` VALUES ('46', '深圳分公司-財務科', '39'); INSERT INTO `sys_organization` VALUES ('47', '深圳分公司-物資管理部', '39'); INSERT INTO `sys_organization` VALUES ('48', '深圳分公司-工程技術科', '39'); INSERT INTO `sys_organization` VALUES ('49', '深圳分公司-工程建設科', '39'); INSERT INTO `sys_organization` VALUES ('50', '深圳分公司-綜合研究所', '39'); INSERT INTO `sys_organization` VALUES ('51', '深圳分公司-排採研究所', '39'); INSERT INTO `sys_organization` VALUES ('52', '深圳分公司-公共關係科', '39'); INSERT INTO `sys_organization` VALUES ('55', '深圳分公司-安全生產科', '39'); INSERT INTO `sys_organization` VALUES ('56', '深圳分公司-車隊', '39'); INSERT INTO `sys_organization` VALUES ('57', '洛陽分公司', '1'); INSERT INTO `sys_organization` VALUES ('58', '洛陽分公司-綜合辦公室', '57'); INSERT INTO `sys_organization` VALUES ('59', '洛陽分公司-計劃經營科', '57'); INSERT INTO `sys_organization` VALUES ('60', '洛陽分公司-財務科', '57'); INSERT INTO `sys_organization` VALUES ('61', '洛陽分公司-生產運行科', '57'); INSERT INTO `sys_organization` VALUES ('62', '洛陽分公司-工程技術科', '57'); INSERT INTO `sys_organization` VALUES ('64', '洛陽分公司-安全環保科', '57'); INSERT INTO `sys_organization` VALUES ('65', '洛陽分公司-工程建設科', '57'); INSERT INTO `sys_organization` VALUES ('66', '洛陽分公司-公共關係科', '57'); INSERT INTO `sys_organization` VALUES ('67', '洛陽分公司-黨羣工做科', '57'); INSERT INTO `sys_organization` VALUES ('68', '洛陽分公司-審計紀檢科', '57'); INSERT INTO `sys_organization` VALUES ('69', '洛陽分公司-地質研究所', '57'); INSERT INTO `sys_organization` VALUES ('70', '洛陽分公司-排採研究所', '57'); INSERT INTO `sys_organization` VALUES ('71', '洛陽分公司-物資管理部', '57'); INSERT INTO `sys_organization` VALUES ('74', '洛陽分公司-HSE監督中心', '57'); INSERT INTO `sys_organization` VALUES ('75', '洛陽分公司-工程監督中心', '57'); INSERT INTO `sys_organization` VALUES ('76', '洛陽分公司-行政事務中心', '57'); INSERT INTO `sys_organization` VALUES ('77', '洛陽分公司-石樓北項目部', '57'); INSERT INTO `sys_organization` VALUES ('78', '拉薩項目經理部', '1'); INSERT INTO `sys_organization` VALUES ('79', '拉薩項目經理部-綜合管理部', '78'); INSERT INTO `sys_organization` VALUES ('80', '拉薩項目經理部-生產運行部', '78'); INSERT INTO `sys_organization` VALUES ('81', '拉薩項目經理部-安全環保部', '78'); INSERT INTO `sys_organization` VALUES ('82', '拉薩項目經理部-公共關係部', '78'); INSERT INTO `sys_organization` VALUES ('83', '拉薩項目經理部-車隊', '78');
{ "oid" : 3, "oname" : "北京分公司", "parentId" : 1, "children" : [ { "oid" : 12, "oname" : "北京分公司-車隊", "parentId" : 3, "children" : [ ] }, { "oid" : 13, "oname" : "北京分公司-生產運行科", "parentId" : 3, "children" : [ ] }, { "oid" : 14, "oname" : "北京分公司-計劃經營科", "parentId" : 3, "children" : [ ] }, { "oid" : 15, "oname" : "北京分公司-物資管理部", "parentId" : 3, "children" : [ ] }, { "oid" : 16, "oname" : "北京分公司-財務科", "parentId" : 3, "children" : [ ] }, { "oid" : 17, "oname" : "北京分公司-綜合研究所", "parentId" : 3, "children" : [ ] }, { "oid" : 18, "oname" : "北京分公司-審計紀檢科", "parentId" : 3, "children" : [ ] }, { "oid" : 19, "oname" : "北京分公司-綜合辦公室", "parentId" : 3, "children" : [ ] }, { "oid" : 20, "oname" : "北京分公司-工程技術科", "parentId" : 3, "children" : [ ] }, { "oid" : 21, "oname" : "北京分公司-工程建設科", "parentId" : 3, "children" : [ ] }, { "oid" : 22, "oname" : "北京分公司-安全環保科", "parentId" : 3, "children" : [ ] }, { "oid" : 23, "oname" : "北京分公司-公共關係科", "parentId" : 3, "children" : [ ] } ] }
import java.util.ArrayList; import java.util.List; public class OrgTreeNode { private Long oid; private String oname; private Long parentId; private List<OrgTreeNode> children = new ArrayList<OrgTreeNode>(); //Getter and Setter }
遞歸調用組裝根節點下面的子孫節點sql