Index: ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java =================================================================== diff -u -r17595 -r17628 --- ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 17595) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 17628) @@ -97,6 +97,7 @@ import com.forgon.disinfectsystem.tousseitem.service.TousseItemManager; import com.forgon.disinfectsystem.vo.TousseItemVo; import com.forgon.disinfectsystem.webservice.security.service.WebServiceManager; +import com.forgon.oa.initdata.service.InitializeDataManager; import com.forgon.oa.web.service.PublicInformationManager; import com.forgon.runwithtrans.model.RunWithTransNewTask; import com.forgon.runwithtrans.service.RunWithTransNewManager; @@ -206,6 +207,8 @@ protected GoodsStockManager goodsStockManager; @Autowired protected RunWithTransNewManager runWithTransNewManager; + @Autowired + protected InitializeDataManager initializeDataManager; /** * 组织单位OrgUnit供应室的id @@ -2605,19 +2608,26 @@ roleManager.save(role1, null); + // 初始化组织机构根节点和系统管理员用户 + initializeDataManager.initOrgUnit(); - OrgUnit rootNode = (OrgUnit) thTreeNodeManager.getTHTreeNodeById( - OrgUnit.class.getSimpleName(), new Long(0)); + OrgUnit orgUnitROOT = (OrgUnit) thTreeNodeManager.getTHTreeNodeById( + OrgUnit.class.getSimpleName(), Long.valueOf(0)); + + assertNotNull(orgUnitROOT); + + assertEquals("组织机构",orgUnitROOT.getName()); + // OrgUnit rootNode = (OrgUnit) directoryHelper.createOrgUnit("阳光医院", // "yangguangyiyuan", "name1", rootNode); // assertNotNull(rootNode); - OrgUnit orgUnitROOT = directoryHelper.createOrgUnit("阳光医院", - "yangguangyiyuan", "name1", rootNode); +// OrgUnit orgUnitROOT = directoryHelper.createOrgUnit("阳光医院", +// "yangguangyiyuan", "name1", rootNode); +// - assertTrue(directoryHelper.isOrgUnitName("阳光医院")); OrgUnit orgUnitOR = directoryHelper.createOrgUnit(Constants.ORG_UNIT_NAME_OR, Constants.ORG_UNIT_CODE_OR, "name2", orgUnitROOT); assertTrue(directoryHelper.isOrgUnitName(Constants.ORG_UNIT_NAME_OR)); @@ -2668,9 +2678,13 @@ orgUnitCSSD.getId().toString(), orgUnitCSSD.getOrgUnitCoding(), null, role2.getId().toString()); + + Role adminRole = roleManager.getRoleByRoleName("ROLE_ADMINISTRATOR_0"); + String roleIds = role2.getId().toString() + User.ORGUNIT_ROLE_SEPARATOR + adminRole.getId().toString(); + User admin = createUser("admin","0100001008", orgUnitCSSD.getId().toString(), orgUnitCSSD.getOrgUnitCoding(), - null, role2.getId().toString()); + null, roleIds); assertTrue(directoryHelper.isUserName("oruser1")); assertTrue(directoryHelper.isUserName("oruser2")); Index: ssts-web/src/main/java/com/forgon/disinfectsystem/initdata/service/InitializeDataManagerImpl.java =================================================================== diff -u -r17064 -r17628 --- ssts-web/src/main/java/com/forgon/disinfectsystem/initdata/service/InitializeDataManagerImpl.java (.../InitializeDataManagerImpl.java) (revision 17064) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/initdata/service/InitializeDataManagerImpl.java (.../InitializeDataManagerImpl.java) (revision 17628) @@ -206,9 +206,9 @@ initRoles(); /** - * 初始化根级科室(即id为0的科室,默认名称为组织机构) + * 初始化根级科室和administrator用户(即id为0的科室,默认名称为组织机构) */ - initOrgUnit(); + initOrgUnitAndAdministrator(); /** * 初始化知识管理模块 @@ -556,25 +556,38 @@ return null; } - private void initOrgUnit() { + /** + * 初始化组织机构和系统管理员用户 + * 新建名字为“组织机构”的根节点,然后新建登陆名为“admin”的用户,默认密码为1,并为其赋予角色“系统管理员” + */ + private void initOrgUnitAndAdministrator() { + OrgUnit orgUnit = initOrgUnit(); + initAdministrator(orgUnit); + } + + /** + * 初始化组织机构,新建名字为“组织机构”的根节点 + * @return 新创建的组织机构根节点 + */ + public OrgUnit initOrgUnit() { OrgUnit orgUnit = (OrgUnit) thTreeNodeManager.getTHTreeNodeById( OrgUnit.class.getSimpleName(), Long.valueOf(0)); if (orgUnit == null) { - String shotName = "组织机构"; + String shortName = "组织机构"; String sql = "INSERT INTO OrgUnit(id, name,sequenceNumber,orgUnitCoding) values(0,'" - + shotName + "',0,'0')"; + + shortName + "',0,'0')"; if (dbConnection.isMySQL()) { insertIntoFirstItemFromMySQL(sql, - OrgUnit.class.getSimpleName(), shotName); + OrgUnit.class.getSimpleName(), shortName); } else if (dbConnection.isSqlServer()) { insertIntoFirstItemFromSQLServer(sql, OrgUnit.class .getSimpleName()); } else if (dbConnection.isOracle()) { insertIntoFirstItemFromOracle(sql, OrgUnit.class - .getSimpleName(), shotName); + .getSimpleName(), shortName); } } - initAdministrator(orgUnit); + return orgUnit; } private void intWareHouseOfOrgUnit(){ Index: forgon-core/src/main/java/com/forgon/directory/service/DirectoryHelper.java =================================================================== diff -u -r16913 -r17628 --- forgon-core/src/main/java/com/forgon/directory/service/DirectoryHelper.java (.../DirectoryHelper.java) (revision 16913) +++ forgon-core/src/main/java/com/forgon/directory/service/DirectoryHelper.java (.../DirectoryHelper.java) (revision 17628) @@ -1150,7 +1150,7 @@ * 创建科室 * @param orgUnitName 科室名称 * @param orgUnitCode 科室编码 - * @param orgUnitManager + * @param orgUnitManager 科室的管理者,即部门领导 * @param parentNode 直属上级科室 * @return 此科室对象 */ Index: forgon-core/src/main/java/com/forgon/oa/initdata/service/InitializeDataManager.java =================================================================== diff -u -r12331 -r17628 --- forgon-core/src/main/java/com/forgon/oa/initdata/service/InitializeDataManager.java (.../InitializeDataManager.java) (revision 12331) +++ forgon-core/src/main/java/com/forgon/oa/initdata/service/InitializeDataManager.java (.../InitializeDataManager.java) (revision 17628) @@ -1,6 +1,9 @@ package com.forgon.oa.initdata.service; +import com.forgon.directory.model.OrgUnit; + public interface InitializeDataManager { public void clearData(); public void initData(); + public OrgUnit initOrgUnit(); }