InitSystemData
java 代码
- package com.bjsxt.oa.manager.impl;
- import java.io.BufferedReader;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.text.SimpleDateFormat;
- import java.util.List;
- import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
- import com.bjsxt.oa.manager.AclManager;
- import com.bjsxt.oa.manager.DataDictionaryManager;
- import com.bjsxt.oa.manager.InitSystemData;
- import com.bjsxt.oa.manager.ModuleManager;
- import com.bjsxt.oa.manager.PartyManager;
- import com.bjsxt.oa.manager.PersonManager;
- import com.bjsxt.oa.manager.RoleManager;
- import com.bjsxt.oa.manager.UserManager;
- import com.bjsxt.oa.model.DataDictionary;
- import com.bjsxt.oa.model.Module;
- import com.bjsxt.oa.model.Party;
- import com.bjsxt.oa.model.Person;
- import com.bjsxt.oa.model.Role;
- import com.bjsxt.oa.model.User;
- public class InitSystemDataImpl extends HibernateDaoSupport implements InitSystemData{
- static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- private ModuleManager moduleManager;
- private RoleManager roleManager;
- private AclManager aclManager;
- private PersonManager personManager;
- private PartyManager partyManager;
- private UserManager userManager;
- private DataDictionaryManager dataDictionaryManager;
- public void addInitSystemData(){
- addInitModuleData();
- addInitRoleData();
- addInitPartyData();
- addInitPersonData();
- addInitDictionaryData();
- }
- //初始化模块信息
- public void addInitModuleData(){
- try {
- InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("module.txt");
- BufferedReader reader = new BufferedReader(new InputStreamReader(is));
- String line = null;
- Module parent = null;
- int order = 1;
- while((line = reader.readLine()) != null){
- if(line.trim().equals("")){
- continue;
- }
- //submodule
- if(line.startsWith("\t")){
- String[] ss = line.trim().split(",");
- Module sub = new Module();
- sub.setName(ss[0].trim());
- sub.setSn(ss[1].trim());
- sub.setUrl(ss[2].trim());
- sub.setOrderNo(order++);
- moduleManager.addModule(sub, parent.getId());
- }else{ //parentmodule
- String[] ss = line.trim().split(",");
- parent = new Module();
- parent.setName(ss[0].trim());
- parent.setSn(ss[1].trim());
- parent.setOrderNo(order++);
- moduleManager.addModule(parent, 0);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- //初始化角色信息以及角色的访问权限
- public void addInitRoleData(){
- try {
- InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("role.txt");
- BufferedReader reader = new BufferedReader(new InputStreamReader(is));
- String line = null;
- while((line = reader.readLine()) != null){
- if(line.trim().equals("")){
- continue;
- }
- String[] ss = line.trim().split(":");
- Role role = new Role();
- role.setName(ss[0].trim());
- roleManager.addRole(role);
- //获取被分配的模块列表
- String moduleString = ss[1].trim();
- String[] moduleNames = moduleString.split(",");
- int[] moduleIds = new int[moduleNames.length];
- for(int i=0; i
- List list = getHibernateTemplate().find("from Module where name = ?",moduleNames[i]);
- if(list.isEmpty()){
- throw new RuntimeException("找不到相应模块["+moduleNames[i]+"]");
- }
- if(list.size() > 1){
- throw new RuntimeException("存在同名模块["+moduleNames[i]+"]");
- }
- Module m = (Module)list.get(0);
- moduleIds[i] = m.getId();
- }
- aclManager.addAcls(role.getId(), moduleIds);
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- //初始化机构信息
- public void addInitPartyData(){
- try {
- InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("party.txt");
- BufferedReader reader = new BufferedReader(new InputStreamReader(is));
- String line = null;
- Party parent = null;
- Party sub = null;
- while((line = reader.readLine()) != null){
- if(line.trim().equals("")){
- continue;
- }
- String name = line.trim();
- //第三级机构信息
- if(line.startsWith("\t\t")){
- Party subsub = new Party();
- subsub.setName(name);
- subsub.setParent(sub);
- getHibernateTemplate().save(subsub);
- subsub.setSn(sub.getSn()+"_"+subsub.getId()); //设置SN的值
- getHibernateTemplate().update(subsub);
- }
- //第二级机构信息
- else if(line.startsWith("\t")){
- sub = new Party();
- sub.setName(name);
- sub.setParent(parent);
- getHibernateTemplate().save(sub);
- sub.setSn(parent.getSn()+"_"+sub.getId());
- getHibernateTemplate().update(sub);
- }else{ //parentmodule
- parent = new Party();
- parent.setName(name);
- getHibernateTemplate().save(parent);
- parent.setSn(parent.getId()+"");
- getHibernateTemplate().update(parent);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- //初始化人员信息
- public void addInitPersonData(){
- try {
- InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("person.txt");
- BufferedReader reader = new BufferedReader(new InputStreamReader(is));
- String line = null;
- while((line = reader.readLine()) != null){
- if(line.trim().equals("")){
- continue;
- }
- String[] ss = line.trim().split(",");
- String personName = ss[0];
- String userAccount = ss[1];
- String partyName = ss[2]; //从index==3起,是用户具有的角色
- //根据名称获取机构信息
- Party party = null;
- List list = getHibernateTemplate().find("from Party where name = ?",partyName);
- if(list.isEmpty() || list.size() > 1){
- throw new RuntimeException("机构不存在或机构名称重复!");
- }
- party = (Party)list.get(0);
- //根据角色名称,获取角色的ID列表
- int roleslength = ss.length - 3;
- int[] roleIds = new int[roleslength];
- for(int i=0; i
- String roleName = ss[3 + i];
- List rolelist = getHibernateTemplate().find("from Role where name = ?",roleName);
- if(rolelist.isEmpty() || rolelist.size() > 1){
- throw new RuntimeException("无法找到被分配的角色名称或角色名称有重复");
- }
- roleIds[i] = ((Role)rolelist.get(0)).getId();
- }
- //创建Person对象
- Person person = new Person();
- person.setName(personName);
- person.setParty(party);
- person.setSex("1");
- person.setAddress("北京");
- person.setPhone("12345678");
- getHibernateTemplate().save(person);
- //创建User对象
- User user = new User();
- user.setAccount(userAccount);
- user.setPassword(userAccount);
- user.setExpireTime(format.parse("2008-11-11"));
- userManager.addUser(user, person.getId(), roleIds);
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- //初始化代码表
- public void addInitDictionaryData(){
- try {
- InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("code.txt");
- BufferedReader reader = new BufferedReader(new InputStreamReader(is));
- String line = null;
- String category = null;
- while((line = reader.readLine()) != null){
- if(line.trim().equals("")){
- continue;
- }
- //添加字典条目
- if(line.startsWith("\t")){
- String[] ss = line.trim().split(",");
- DataDictionary dict = new DataDictionary();
- dict.setCategory(category);
- dict.setCode(ss[0].trim());
- dict.setText(ss[1].trim());
- dataDictionaryManager.addDictionary(dict);
- }else{
- category = line.trim();
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- public void setDataDictionaryManager(DataDictionaryManager dataDictionaryManager) {
- this.dataDictionaryManager = dataDictionaryManager;
- }
- public void setModuleManager(ModuleManager moduleManager) {
- this.moduleManager = moduleManager;
- }
- public void setPartyManager(PartyManager partyManager) {
- this.partyManager = partyManager;
- }
- public void setPersonManager(PersonManager personManager) {
- this.personManager = personManager;
- }
- public void setRoleManager(RoleManager roleManager) {
- this.roleManager = roleManager;
- }
- public void setUserManager(UserManager userManager) {
- this.userManager = userManager;
- }
- public void setAclManager(AclManager aclManager) {
- this.aclManager = aclManager;
- }
- }
- package com.bjsxt.orm;
- import junit.framework.TestCase;
- import org.springframework.beans.factory.BeanFactory;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import com.bjsxt.orm.manager.InitSystemData;
- public class InitSystemDataTest extends TestCase {
- static BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext-*.xml");
- public void testAddInitSystemData() {
- InitSystemData init = (InitSystemData)factory.getBean("initSystemData");
- init.addInitSystemData();
- }
- }

被折叠的 条评论
为什么被折叠?



