diff --git a/modules/i3plus-core-apiservice/pom.xml b/modules/i3plus-core-apiservice/pom.xml index ba0e1d3..da61650 100644 --- a/modules/i3plus-core-apiservice/pom.xml +++ b/modules/i3plus-core-apiservice/pom.xml @@ -128,6 +128,27 @@ javax.mail mail + + + org.jdom + jdom2 + 2.0.6 + + + jaxen + jaxen + 1.1.6 + + + + org.apache.poi + poi + + + org.apache.poi + poi-ooxml + + @@ -164,8 +185,19 @@ src/main/resources true + + **/*.xlsx + + + + src/main/resources + false + + **/*.xlsx + + \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java index 7e7a087..256cb42 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java @@ -35,10 +35,10 @@ public class SysUserInfoService implements ISysUserInfoService { public static final Logger LOGGER = LoggerFactory.getLogger(SysUserInfoService.class); @Autowired - private SysUserInfoRepository userInfoRDao; + private SysUserInfoRepository sysUserInfoRDao; @Autowired - private SysUserRepository userRDao; + private SysUserRepository sysUserRepository; @Autowired private SysDepartmentRepository departmentRDao; @@ -63,20 +63,20 @@ public class SysUserInfoService implements ISysUserInfoService { public SysUserInfo insertSysUserInfo(SysUserInfo userInfo) { LOGGER.info("用户信息 SysUserInfo userInfo:{}",userInfo); - return userInfoRDao.insert(userInfo); + return sysUserInfoRDao.insert(userInfo); } @Override public void updateSysUserInfo(SysUserInfo userInfo) { LOGGER.info("用户信息 SysUserInfo userInfo:{}",userInfo); - userInfoRDao.update(userInfo); + sysUserInfoRDao.update(userInfo); } @Override public void refreshRefUserDepartment(Long userInfoId, Long[] departmentIds, String userName) { LOGGER.info("用户信息 SysUserInfo userInfoId:{} departmentIds:{} userName:{}",userInfoId,departmentIds,userName); - SysUserInfo userInfo = userInfoRDao.getById(userInfoId); + SysUserInfo userInfo = sysUserInfoRDao.getById(userInfoId); if(userInfo != null ){ // 查询部门信息 StringBuffer where = new StringBuffer(); @@ -106,7 +106,7 @@ public class SysUserInfoService implements ISysUserInfoService { userInfo.setDepartmentNameRdd(String.join(",",nameList)); refUserDepartmentRDao.saveAll(list); - userInfoRDao.save(userInfo); + sysUserInfoRDao.save(userInfo); LOGGER.info("用户信息 SysUserInfo RefUserDepartmentRDao Insert Size :{}",list.size()); } @@ -124,7 +124,7 @@ public class SysUserInfoService implements ISysUserInfoService { public void refreshRefUserPosition(Long userInfoId, Long[] positionIds , String userName) { LOGGER.info("用户信息 SysUserInfo userInfoId:{} positionIds:{} userName:{}",userInfoId,positionIds,userName); - SysUserInfo userInfo = userInfoRDao.getById(userInfoId); + SysUserInfo userInfo = sysUserInfoRDao.getById(userInfoId); if(userInfo != null ){ // 查询部门信息 StringBuffer where = new StringBuffer(); @@ -154,7 +154,7 @@ public class SysUserInfoService implements ISysUserInfoService { userInfo.setPositionNameRdd(String.join(",",nameList)); refUserPositionRDao.saveAll(list); - userInfoRDao.save(userInfo); + sysUserInfoRDao.save(userInfo); LOGGER.info("用户信息 SysUserInfo RefUserPositionRDao Insert Size :{}",list.size()); } @@ -171,7 +171,7 @@ public class SysUserInfoService implements ISysUserInfoService { @Override public void refreshRefUserOrganize(Long userInfoId, Long organizeId, String userName) { LOGGER.info("用户信息 SysUserInfo userInfoId:{} organizeId:{} userName:{}",userInfoId,organizeId,userName); - SysUserInfo userInfo = userInfoRDao.getById(userInfoId); + SysUserInfo userInfo = sysUserInfoRDao.getById(userInfoId); if(userInfo != null ){ SysOrganize organize = organizeRDao.getById(organizeId); if(organize != null ){ @@ -181,7 +181,7 @@ public class SysUserInfoService implements ISysUserInfoService { userInfo.setModifyUser(userName); userInfo.setModifyDatetime(TimeTool.getNowTime(true)); - userInfoRDao.update(organize); + sysUserInfoRDao.update(organize); } }else { throw ImppExceptionBuilder.newInstance() @@ -196,35 +196,35 @@ public class SysUserInfoService implements ISysUserInfoService { @Override public void deleteSysUserInfoById(Long id) { LOGGER.info("用户信息 SysUserInfo id:{}",id); - userInfoRDao.deleteById(id); + sysUserInfoRDao.deleteById(id); } @Override public void deleteSysUserInfoByIds(Long[] ids) { LOGGER.info("用户信息 SysUserInfo ids:{}",ids); - userInfoRDao.deleteByIds(ids); + sysUserInfoRDao.deleteByIds(ids); } @Override public SysUserInfo getSysUserInfoById(Long id) { - return userInfoRDao.getById(id); + return sysUserInfoRDao.getById(id); } @Override public List listSysUserInfo() { - return userInfoRDao.findAll(); + return sysUserInfoRDao.findAll(); } @Override public ListPager querySysUserInfo(SysUserInfo userInfo, Pager pager) { LOGGER.info("定时任务 TASK_TIME TaskTime:{},Pager:{}",userInfo,pager); if(userInfo == null) { - pager = PagerHelper.getPager(pager, userInfoRDao.listCount()); - return new ListPager(userInfoRDao.listPager(pager),pager); + pager = PagerHelper.getPager(pager, sysUserInfoRDao.listCount()); + return new ListPager(sysUserInfoRDao.listPager(pager),pager); }else { String hqlPack = CoreHqlPack.packHqlSysUserInfo(userInfo); - pager = PagerHelper.getPager(pager, userInfoRDao.findByHqlWhereCount(hqlPack)); - return new ListPager(userInfoRDao.findByHqlWherePage(hqlPack + userInfo.orderBy(),pager),pager); + pager = PagerHelper.getPager(pager, sysUserInfoRDao.findByHqlWhereCount(hqlPack)); + return new ListPager(sysUserInfoRDao.findByHqlWherePage(hqlPack + userInfo.orderBy(),pager),pager); } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index e8124dc..775c214 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -435,7 +435,6 @@ public class SysUserService implements ISysUserService { organize = organizeRDao.getById(userInfo.getOrganizeId()); }catch (Exception e){ LOGGER.error(" SysUser Peck Organize information Error userId : {} Exception Message : {} " ,userInfo.getId(),e.getMessage()); - e.printStackTrace(); } userInfo.setOrganize(organize); sessionUser.setUserInfo(userInfo); diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties index 1d99390..193295a 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -24,7 +24,7 @@ impp.web.cross = true ################ 云配置 (以projectName作为应用名) ################ #是否开启微服 -eureka.client.enabled=true +eureka.client.enabled=false #ribbon.eureka.enable=true #默认微服主机 eureka.client.serviceUrl.defaultZone:http://192.168.1.20:8000/eureka/ @@ -66,14 +66,14 @@ spring.data.mongodb.port=27017 ##主数据源,读写 #impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/dev_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/dev_i3_core_bak?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.write.datasource.username=i3_dev_core impp.write.datasource.password=i3_core_pass ##辅数据源,只读 #impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/dev_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/dev_i3_core_bak?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.read.datasource.username=i3_dev_core impp.read.datasource.password=i3_core_pass diff --git a/modules/i3plus-core-apiservice/src/main/resources/init/permission-test.xlsx b/modules/i3plus-core-apiservice/src/main/resources/init/permission-test.xlsx new file mode 100644 index 0000000..7e9ae4d Binary files /dev/null and b/modules/i3plus-core-apiservice/src/main/resources/init/permission-test.xlsx differ diff --git a/modules/i3plus-core-apiservice/src/main/resources/init/permission.xlsx b/modules/i3plus-core-apiservice/src/main/resources/init/permission.xlsx new file mode 100644 index 0000000..fc80651 Binary files /dev/null and b/modules/i3plus-core-apiservice/src/main/resources/init/permission.xlsx differ diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestExcelPermission.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestExcelPermission.java new file mode 100644 index 0000000..04f6020 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestExcelPermission.java @@ -0,0 +1,261 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.platform.common.tool.EncryptTool; +import cn.estsh.i3plus.pojo.platform.bean.*; +import cn.estsh.i3plus.pojo.platform.repository.*; +import com.alibaba.fastjson.JSON; +import io.swagger.models.auth.In; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.jdom2.Document; +import org.jdom2.JDOMException; +import org.jdom2.input.SAXBuilder; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +/** + * 系统数据初始化 + */ +public class TestExcelPermission extends TestBase { +//public class TestExcelPermission { + + public static final Logger LOGGER = LoggerFactory.getLogger(TestExcelPermission.class); + + // 文件路径 + public static final String PATH_NAME = "init/permission.xlsx"; + // 权限Sheet 名称 + public static final String SHEET_NAME_MENU = "menu"; + public static final String SHEET_NAME_ROLE = "role"; + public static final String SHEET_NAME_USER_INFO = "user-info"; + public static final String SHEET_NAME_USER = "user"; + + @Autowired + private SysUserRepository sysUserRdao; + + @Autowired + private SysUserInfoRepository userInfoRDao; + + @Autowired + private SysMenuRepository menuRdao; + + @Autowired + private SysRoleRepository roleRDao; + + @Autowired + private SysRefRoleMenuRepository refRoleMenuRDao; + + + + @Test + public void testInit() throws Exception { + XSSFWorkbook workbook = getWorkbook(PATH_NAME); + if(workbook != null){ + XSSFSheet sheetMenu = workbook.getSheet(SHEET_NAME_MENU); + XSSFSheet sheetRole = workbook.getSheet(SHEET_NAME_ROLE); + XSSFSheet sheetUserInfo = workbook.getSheet(SHEET_NAME_USER_INFO); + XSSFSheet sheetUser = workbook.getSheet(SHEET_NAME_USER); + + List menus = getSysMenu(sheetMenu); + List roles = getSysRole(sheetRole); + List userInfos = getSysUserInfo(sheetUserInfo); + List users = getSysUser(sheetUser); + + List refRoleMenu = getRefRoleMenu(menus, roles); + + LOGGER.info("System Init SysMenu Size:{}",menus.size()); + LOGGER.info("System Init SysRole Size:{}",roles.size()); + LOGGER.info("System Init SysUserInfo Size:{}",userInfos.size()); + LOGGER.info("System Init SysUser Size:{}",users.size()); + LOGGER.info("System Init SysRefRoleMenu Size:{}",refRoleMenu.size()); + + sysUserRdao.saveAll(users); + userInfoRDao.saveAll(userInfos); + menuRdao.saveAll(menus); + roleRDao.saveAll(roles); + refRoleMenuRDao.saveAll(refRoleMenu); + } + } + + + + + public List getRefUserRole(List users,List roles){ + List result = new ArrayList<>(); + if(users != null && roles != null){ + SysRefUserRole ref = null; + for (SysUser user : users) { + for (SysRole role : roles) { + ref = new SysRefUserRole(); + ref.setRoleId(role.getId()); + ref.setRoleNameRdd(role.getName()); + ref.setUserId(user.getId()); + ref.setUserNameRdd(user.getUserName()); + result.add(ref); + } + } + } + return result; + } + + public List getRefRoleMenu(List menus,List roles){ + List result = new ArrayList<>(); + if(menus != null && roles != null){ + SysRefRoleMenu ref = null; + for (SysMenu menu : menus) { + for (SysRole role : roles) { + ref = new SysRefRoleMenu(); + ref.setRoleId(role.getId()); + ref.setRoleNameRdd(role.getName()); + ref.setMenuId(menu.getId()); + ref.setMenuNameRdd(menu.getName()); + ref.setMenuTypeRdd(menu.getMenuType()); + result.add(ref); + } + } + } + return result; + } + + public List getSysUser(XSSFSheet sheet){ + List result = new ArrayList<>(); + if(sheet != null){ + if(sheet.getLastRowNum() >= 1){ + SysUser obj = null; + for (int i = 1; i <= sheet.getLastRowNum(); i++) { + try { + Row row = sheet.getRow(i);//获取索引为i的行,以0开始 + if(row.getCell(0).toString().trim().length() > 0){ + obj = new SysUser(); + String md5 = EncryptTool.hexMD5(row.getCell(2).toString()); + obj.setId(Long.parseLong(row.getCell(0).getStringCellValue())); + obj.setUserLoginName(row.getCell(1).getStringCellValue()); + obj.setUserLoginPassword(md5); + obj.setUserEmail(row.getCell(3).getStringCellValue()); + obj.setUserPhone(row.getCell(4).getStringCellValue()); + obj.setUserInfoId(Long.parseLong(row.getCell(5).getStringCellValue())); + obj.setUserName(row.getCell(6).getStringCellValue()); + obj.setIsValid(1); + obj.setUserType(1); + obj.setUserLoginNum(0); + + result.add(obj); + } + }catch (Exception e){ + LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); + } + } + } + } + return result; + } + + public List getSysUserInfo(XSSFSheet sheet){ + List result = new ArrayList<>(); + if(sheet != null){ + if(sheet.getLastRowNum() >= 1){ + SysUserInfo obj = null; + for (int i = 1; i <= sheet.getLastRowNum(); i++) { + try { + Row row = sheet.getRow(i);//获取索引为i的行,以0开始 + if(row.getCell(0).toString().trim().length() > 0){ + obj = new SysUserInfo(); + obj.setId(Long.parseLong(row.getCell(0).getStringCellValue())); + obj.setName(row.getCell(1).getStringCellValue()); + obj.setUserEmpNo(row.getCell(2).getStringCellValue()); + obj.setUserLoginNum(0); + obj.setIsValid(1); + + result.add(obj); + } + }catch (Exception e){ + LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); + } + } + } + } + return result; + } + + public List getSysRole(XSSFSheet sheet){ + List result = new ArrayList<>(); + if(sheet != null){ + if(sheet.getLastRowNum() >= 1){ + SysRole role = null; + for (int i = 1; i <= sheet.getLastRowNum(); i++) { + try { + Row row = sheet.getRow(i);//获取索引为i的行,以0开始 + if(row.getCell(0).toString().trim().length() > 0){ + role = new SysRole(); + role.setId(Long.parseLong(row.getCell(0).getStringCellValue())); + role.setName(row.getCell(1).getStringCellValue()); + role.setRoleDescription(row.getCell(2).getStringCellValue()); + + result.add(role); + } + }catch (Exception e){ + LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); + } + } + } + } + return result; + } + + public List getSysMenu(XSSFSheet sheet){ + List result = new ArrayList<>(); + if(sheet != null){ + if(sheet.getLastRowNum() >= 1){ + SysMenu menu = null; + for (int i = 1; i <= sheet.getLastRowNum(); i++) { + try { + Row row = sheet.getRow(i);//获取索引为i的行,以0开始 + if(row.getCell(0).toString().trim().length() > 0){ + menu = new SysMenu(); + menu.setId(Long.parseLong(row.getCell(0).getStringCellValue())); + menu.setMenuType(Integer.parseInt(row.getCell(1).getStringCellValue())); + menu.setMenuCode(row.getCell(2).getStringCellValue()); + menu.setName(row.getCell(3).getStringCellValue()); + menu.setParentId(Long.parseLong(row.getCell(4).getStringCellValue())); + menu.setParentNameRdd(row.getCell(5).getStringCellValue()); + menu.setMenuDescription(row.getCell(6).getStringCellValue()); + menu.setMenuStatus(Integer.parseInt(row.getCell(7).getStringCellValue())); + menu.setCreateUser("System Init"); + menu.setMenuUrl(row.getCell(9).getStringCellValue()); + menu.setMenuCss(row.getCell(10).getStringCellValue()); + menu.setMenuIcon(row.getCell(11).getStringCellValue()); + + result.add(menu); + } + }catch (Exception e){ + LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); + } + } + } + } + return result; + } + + public XSSFWorkbook getWorkbook(String pathName){ + try { + InputStream in = TestExcelPermission.class.getClassLoader().getResourceAsStream(pathName); + XSSFWorkbook workbook = new XSSFWorkbook(in); + return workbook; + }catch (Exception e){ + LOGGER.error(" System Init Sys Data Excel Error file path {} error message :{}",pathName,e.getMessage()); + e.getMessage(); + return null; + } + } + +} diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestInitData.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestInitData.java deleted file mode 100644 index 4ce05a6..0000000 --- a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestInitData.java +++ /dev/null @@ -1,111 +0,0 @@ -package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; - -import cn.estsh.i3plus.core.api.iservice.busi.*; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.*; -import com.alibaba.fastjson.JSON; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import javax.transaction.Transactional; - -/** - * 系统数据初始化 - */ -public class TestInitData extends TestBase { - - @Autowired - private IOrganizeService organizeService; - - @Autowired - private IPositionService positionService; - - @Autowired - private IDepartmentService departmentService; - - @Autowired - private ISysMenuService sysMenuService; - - @Autowired - private ISysRoleService sysRoleService; - - @Autowired - private ISysUserService sysUserService; - - @Autowired - private ISysUserInfoService sysUserInfoService; - - @Test - @Transactional - public void testInitPosition(){ - - } - - @Test - @Transactional - public void testInitOrganize(){ - - } - - @Test - @Transactional - public void testInitDepartment(){ - - } - - @Test - @Transactional - public void testInitSysRole(){ - - } - - @Test - @Transactional - public void testInitSysUser()throws Exception{ - Organize organize = new Organize(); - organize.setName("Junit 组织"); - organize.setOrganizeTypeId(ImppEnumUtil.ORGANIZE_YTPE.TYPE_COMPANY.getValue()); - organize.setOrganizeCode("junit 001"); - Organize insertOrganize = organizeService.insertOrganize(organize); - System.out.println(JSON.toJSON(insertOrganize)); - - Department department = new Department(); - department.setName("Junit 部门"); - department.setDepartmentCode("junit 001"); - department.setOrganizeId(insertOrganize.getId()); - Department insertDepartment = departmentService.insertDepartment(department); - System.out.println(JSON.toJSON(insertDepartment)); - - Position position = new Position(); - position.setName("Junit 岗位"); - position.setPositionCode("junit 001"); - Position insertPosition = positionService.insertPosition(position); - System.out.println(JSON.toJSON(insertPosition)); - - SysUserInfo info = new SysUserInfo(); - info.setName("Junit 用户"); - info.setOrganizeId(insertOrganize.getId()); - info.setDepartmentId(insertDepartment.getId()); - info.setPositionId(insertPosition.getId()); - - SysUserInfo insertSysUserInfo = sysUserInfoService.insertSysUserInfo(info); - - SysRole role = new SysRole(); - role.setName("Junit 角色"); - SysRole insertSysRole = sysRoleService.insertSysRole(role); - System.out.println(JSON.toJSON(insertSysRole)); - - - SysUser user = new SysUser(); - user.setUserLoginName("root"); - user.setUserLoginPassword("root"); - user.setUserInfoId(insertSysUserInfo.getId()); - user.setRoleId(insertSysRole.getId()); - - SysUser sysUser = sysUserService.insertSysUser(user); - System.out.println(JSON.toJSON(sysUser)); - } - - -} diff --git a/pom.xml b/pom.xml index 652cd8b..f9d07bc 100644 --- a/pom.xml +++ b/pom.xml @@ -182,6 +182,17 @@ mail 1.4.7 + + + org.apache.poi + poi + RELEASE + + + org.apache.poi + poi-ooxml + RELEASE +