diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index 9bfd0b2..8e8145f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -219,10 +219,10 @@ public class WhiteController extends CoreBaseController { } // 从缓存获取语言信息 - Map resourceMap = redisRes.getHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + languageCode); + Map resourceMap = redisRes.getHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + languageCode); if (resourceMap == null || resourceMap.size() == 0) { systemInitService.putAndLoadSysLocaleLanguage(); - resourceMap = redisRes.getHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + languageCode); + resourceMap = redisRes.getHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + ":" + languageCode); } return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(resourceMap); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java index 00b6ecf..9c8ff11 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService; +import cn.estsh.i3plus.core.apiservice.serviceimpl.base.SystemInitService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.StringTool; @@ -44,7 +45,10 @@ public class SysDictionaryController extends CoreBaseController{ public static final Logger LOGGER = LoggerFactory.getLogger(SysConfigController.class); @Autowired - public ISysDictionaryService sysDictionaryService; + private ISysDictionaryService sysDictionaryService; + + @Autowired + private SystemInitService systemInitService; /** * 添加字典 @@ -72,6 +76,9 @@ public class SysDictionaryController extends CoreBaseController{ sysDictionary.setIsDefault(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); sysDictionaryService.insertSysDictionary(sysDictionary); + + // 更新缓存信息 + systemInitService.putAndLoadSysDictionary(); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); @@ -119,6 +126,9 @@ public class SysDictionaryController extends CoreBaseController{ ConvertBean.modelUpdate(sysDictionary,user); sysDictionaryService.updateSysDictionary(sysDictionary); + + // 更新缓存信息 + systemInitService.putAndLoadSysDictionary(); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); @@ -169,6 +179,9 @@ public class SysDictionaryController extends CoreBaseController{ } sysDictionaryService.deleteSysDictionaryById(Long.parseLong(idStr)); + + // 更新缓存信息 + systemInitService.putAndLoadSysDictionary(); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogExceptionController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogExceptionController.java index 83f7e97..0144cfd 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogExceptionController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogExceptionController.java @@ -1,12 +1,9 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; -import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysLogExceptionService; -import cn.estsh.i3plus.core.apiservice.util.ExcelUtil; -import cn.estsh.i3plus.core.apiservice.util.FileUtil; -import cn.estsh.i3plus.core.apiservice.util.ZipUtil; +import cn.estsh.i3plus.core.api.iservice.busi.*; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; +import cn.estsh.i3plus.platform.common.tool.FileTool; +import cn.estsh.i3plus.platform.common.tool.ZipTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -20,6 +17,7 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.compress.archivers.zip.ZipUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -49,14 +47,14 @@ public class SysLogExceptionController extends CoreBaseController { private ISysLogExceptionService sysLogExceptionService; @Autowired - private ISysDictionaryService sysDictionaryService; - - @Autowired private ISysConfigService sysConfigService; @Autowired private ISysFileService sysFileService; + @Autowired + private ISysMessageService sysMessageService; + /** * 异常日志复杂查询,分页,排序 * @param sysLogException 查询条件 @@ -84,7 +82,7 @@ public class SysLogExceptionController extends CoreBaseController { @ApiOperation(value = "获取系统操作日志字段") public ResultBean getSysLogExceptionCol(){ try { - return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelUtil.getColName(SysLogException.class)); + return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelTool.getColName(SysLogException.class)); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); }catch(Exception e){ @@ -140,7 +138,7 @@ public class SysLogExceptionController extends CoreBaseController { excelFile = new File(excelDir + File.separator + SysLogException.class.getSimpleName() + pager.getCurrentPage() + ".xls"); excelFile.createNewFile(); - ExcelUtil.exportData(excelFile, listPager.getObjectList(), SysLogException.class, colName); + ExcelTool.exportData(excelFile, listPager.getObjectList(), SysLogException.class, colName); result.add(sysFileService.uploadFile(excelFile)); pager.setCurrentPage(pager.getCurrentPage() + 1); @@ -148,9 +146,9 @@ public class SysLogExceptionController extends CoreBaseController { // 将所有excel文件打包 if(isZip){ - zipFile = ZipUtil.zipFile(null, excelDir); + zipFile = ZipTool.zipFile(null, excelDir); result.add(sysFileService.uploadFile(zipFile)); - ExcelUtil.sendStationLetter(result,getSessionUser().getUser().getId()); + sysMessageService.doSendSysMessage(ExcelTool.sendStationLetter(result,getSessionUser().getUser().getId())); return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); } else { return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); @@ -162,9 +160,9 @@ public class SysLogExceptionController extends CoreBaseController { } finally { // 清理临时文件文件 if (zipFile != null) { - FileUtil.deletefile(zipFile.getPath()); + FileTool.deleteFile(zipFile.getPath()); } - FileUtil.deletefile(excelDir.getPath()); + FileTool.deleteFile(excelDir.getPath()); } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogOperateController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogOperateController.java index d3c236f..bc5f4c2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogOperateController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogOperateController.java @@ -1,12 +1,9 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; -import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysLogOperateService; -import cn.estsh.i3plus.core.apiservice.util.ExcelUtil; -import cn.estsh.i3plus.core.apiservice.util.FileUtil; -import cn.estsh.i3plus.core.apiservice.util.ZipUtil; +import cn.estsh.i3plus.core.api.iservice.busi.*; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; +import cn.estsh.i3plus.platform.common.tool.FileTool; +import cn.estsh.i3plus.platform.common.tool.ZipTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -26,7 +23,6 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.websocket.server.PathParam; import java.io.File; import java.util.ArrayList; import java.util.Date; @@ -57,6 +53,9 @@ public class SysLogOperateController extends CoreBaseController { @Autowired private ISysFileService sysFileService; + @Autowired + private ISysMessageService sysMessageService; + /** * 添加操作日志 * @param logOperate 操作日志 @@ -165,7 +164,7 @@ public class SysLogOperateController extends CoreBaseController { @ApiOperation(value = "获取系统操作日志字段") public ResultBean getSysLogOperateCol(){ try { - return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelUtil.getColName(SysLogOperate.class)); + return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelTool.getColName(SysLogOperate.class)); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); }catch(Exception e){ @@ -221,7 +220,7 @@ public class SysLogOperateController extends CoreBaseController { excelFile = new File(excelDir + File.separator + SysLogOperate.class.getSimpleName() + pager.getCurrentPage() + ".xls"); excelFile.createNewFile(); - ExcelUtil.exportData(excelFile, listPager.getObjectList(), SysLogOperate.class, colName); + ExcelTool.exportData(excelFile, listPager.getObjectList(), SysLogOperate.class, colName); result.add(sysFileService.uploadFile(excelFile)); pager.setCurrentPage(pager.getCurrentPage() + 1); @@ -229,9 +228,9 @@ public class SysLogOperateController extends CoreBaseController { // 将所有excel文件打包 if(isZip){ - zipFile = ZipUtil.zipFile(null, excelDir); + zipFile = ZipTool.zipFile(null, excelDir); result.add(sysFileService.uploadFile(zipFile)); - ExcelUtil.sendStationLetter(result,getSessionUser().getUser().getId()); + sysMessageService.doSendSysMessage(ExcelTool.sendStationLetter(result,getSessionUser().getUser().getId())); return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); } else { return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); @@ -242,11 +241,9 @@ public class SysLogOperateController extends CoreBaseController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } finally { // 清理临时文件文件 - // 清理临时文件文件 - if (zipFile != null) { - FileUtil.deletefile(zipFile.getPath()); + if(excelDir == null) { + FileTool.deleteFile(excelDir.getPath()); } - FileUtil.deletefile(excelDir.getPath()); } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogSystemController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogSystemController.java index ee07de4..01fcbc9 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogSystemController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLogSystemController.java @@ -3,9 +3,10 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService; import cn.estsh.i3plus.core.api.iservice.busi.ISysLogSystemService; -import cn.estsh.i3plus.core.apiservice.util.ExcelUtil; -import cn.estsh.i3plus.core.apiservice.util.FileUtil; -import cn.estsh.i3plus.core.apiservice.util.ZipUtil; +import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; +import cn.estsh.i3plus.platform.common.tool.FileTool; +import cn.estsh.i3plus.platform.common.tool.ZipTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -52,6 +53,9 @@ public class SysLogSystemController extends CoreBaseController{ @Autowired private ISysFileService sysFileService; + @Autowired + private ISysMessageService sysMessageService; + /** * 新增系统日志 * @param logSystem 系统日志 @@ -153,7 +157,7 @@ public class SysLogSystemController extends CoreBaseController{ @ApiOperation(value = "获取系统日志字段") public ResultBean getSysLogSystem(){ try { - return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelUtil.getColName(SysLogSystem.class)); + return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelTool.getColName(SysLogSystem.class)); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); }catch(Exception e){ @@ -209,7 +213,7 @@ public class SysLogSystemController extends CoreBaseController{ excelFile = new File(excelDir + File.separator + SysLogSystem.class.getSimpleName() + pager.getCurrentPage() + ".xls"); excelFile.createNewFile(); - ExcelUtil.exportData(excelFile, listPager.getObjectList(), SysLogSystem.class, colName); + ExcelTool.exportData(excelFile, listPager.getObjectList(), SysLogSystem.class, colName); result.add(sysFileService.uploadFile(excelFile)); pager.setCurrentPage(pager.getCurrentPage() + 1); @@ -217,9 +221,9 @@ public class SysLogSystemController extends CoreBaseController{ // 将所有excel文件打包 if(isZip){ - zipFile = ZipUtil.zipFile(null, excelDir); + zipFile = ZipTool.zipFile(null, excelDir); result.add(sysFileService.uploadFile(zipFile)); - ExcelUtil.sendStationLetter(result,getSessionUser().getUser().getId()); + sysMessageService.doSendSysMessage(ExcelTool.sendStationLetter(result,getSessionUser().getUser().getId())); return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); } else { return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); @@ -231,9 +235,9 @@ public class SysLogSystemController extends CoreBaseController{ } finally { // 清理临时文件文件 if (zipFile != null) { - FileUtil.deletefile(zipFile.getPath()); + FileTool.deleteFile(zipFile.getPath()); } - FileUtil.deletefile(excelDir.getPath()); + FileTool.deleteFile(excelDir.getPath()); } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java index d080548..6ca9757 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java @@ -1,9 +1,9 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; -import cn.estsh.i3plus.core.apiservice.util.ExcelUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; @@ -18,7 +18,6 @@ import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -298,7 +297,7 @@ public class SysMenuController extends CoreBaseController { .setErrorDetail("请选择需要上传的文件。") .build(); } - List list = ExcelUtil.importData("permission.xls",multipart.getInputStream(), SysMenu.class); + List list = ExcelTool.importData("permission.xls",multipart.getInputStream(), SysMenu.class); Map map = new HashMap<>(); list.forEach(menu -> { @@ -355,7 +354,7 @@ public class SysMenuController extends CoreBaseController { File file = new File(fileName); file.createNewFile(); - File excle = ExcelUtil.exportData(file, list, SysMenu.class, new String[]{ + File excle = ExcelTool.exportData(file, list, SysMenu.class, new String[]{ "menuCode", "name","parentId","menuType","menuStatus","parentNameRdd","menuUrl","menuClassPath","menuGrade","menuSort" ,"menuCss","menuIcon","menuDescription" }); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java index b9a4709..0159b0f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java @@ -1,26 +1,21 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; -import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysOrderNoRuleService; -import cn.estsh.i3plus.core.apiservice.util.ExcelUtil; -import cn.estsh.i3plus.core.apiservice.util.FileUtil; -import cn.estsh.i3plus.core.apiservice.util.ZipUtil; +import cn.estsh.i3plus.core.api.iservice.busi.*; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; +import cn.estsh.i3plus.platform.common.tool.FileTool; import cn.estsh.i3plus.platform.common.tool.StringTool; +import cn.estsh.i3plus.platform.common.tool.ZipTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; -import cn.estsh.i3plus.pojo.base.bean.BaseConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysDictionary; import cn.estsh.i3plus.pojo.platform.bean.SysFile; import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient; import cn.estsh.impp.framework.boot.fastdfs.FastDFSFile; import cn.estsh.impp.framework.boot.util.ResultBean; @@ -61,6 +56,9 @@ public class SysOrderNoRuleController extends CoreBaseController { private ISysFileService sysFileService; @Autowired + private ISysMessageService sysMessageService; + + @Autowired private FastDFSClient dfsClient; /** @@ -255,21 +253,21 @@ public class SysOrderNoRuleController extends CoreBaseController { listPager = sysOrderNoRuleService.querySysOrderNoRuleByPager(sysOrderNoRule, pager); pager = listPager.getObjectPager(); - // 将excel导出至临时文件夹并上传 + // 将excel导出至临时文件夹 excelFile = new File(excelDir + File.separator + SysOrderNoRule.class.getSimpleName() + pager.getCurrentPage() + ".xls"); excelFile.createNewFile(); - ExcelUtil.exportData(excelFile, listPager.getObjectList(), SysOrderNoRule.class, colName); + ExcelTool.exportData(excelFile, listPager.getObjectList(), SysOrderNoRule.class, colName); pager.setCurrentPage(pager.getCurrentPage() + 1); } while (pager.getCurrentPage() <= pager.getTotalPages()); // 将所有excel文件打包 - zipFile = ZipUtil.zipFile(null, excelDir); + zipFile = ZipTool.zipFile(null, excelDir); result.add(sysFileService.uploadFile(zipFile)); // 是否发送站内信 if (isZip) { - ExcelUtil.sendStationLetter(result, getSessionUser().getUser().getId()); + sysMessageService.doSendSysMessage(ExcelTool.sendStationLetter(result, getSessionUser().getUser().getId())); } return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); @@ -280,10 +278,10 @@ public class SysOrderNoRuleController extends CoreBaseController { } finally { // 清理临时文件文件 if (zipFile != null) { - FileUtil.deletefile(zipFile.getPath()); + FileTool.deleteFile(zipFile.getPath()); } if (excelDir != null) { - FileUtil.deletefile(excelDir.getPath()); + FileTool.deleteFile(excelDir.getPath()); } } } @@ -292,7 +290,7 @@ public class SysOrderNoRuleController extends CoreBaseController { @ApiOperation(value = "导入单号规则") public ResultBean importSysOrderNoRule(@RequestParam("file") MultipartFile file) { try { - List sysOrderNoRuleList = ExcelUtil.importData(file.getOriginalFilename(), file.getInputStream(), SysOrderNoRule.class); + List sysOrderNoRuleList = ExcelTool.importData(file.getOriginalFilename(), file.getInputStream(), SysOrderNoRule.class); // 初始化数据 for (SysOrderNoRule sysOrderNoRule : sysOrderNoRuleList) { sysOrderNoRule.setOrderNoRuleStatus(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); @@ -312,28 +310,20 @@ public class SysOrderNoRuleController extends CoreBaseController { public ResultBean downSysOrderNoRuleTemplate() { try { startMultiService(); + String importTemplateCode = SysOrderNoRule.class.getSimpleName() + "ImportTemplate"; - FastDFSFile fastDFSFile = new FastDFSFile(SysOrderNoRule.class.getSimpleName() + "ImportTemplate.xls", - ExcelUtil.importTemplate(SysOrderNoRule.class), "xls"); + // 查询服务器中是否存在模板文件 + SysFile sysFile = sysFileService.getSysFileByFileCode(importTemplateCode); + if(sysFile == null){ + FastDFSFile fastDFSFile = new FastDFSFile(SysOrderNoRule.class.getSimpleName() + "ImportTemplate.xls", + ExcelTool.importTemplate(SysOrderNoRule.class), ".xls"); - String[] fileAbsolutePath = dfsClient.upload(fastDFSFile); + sysFile = dfsClient.upload(fastDFSFile,CommonEnumUtil.SOFT_TYPE.CORE.getValue()); + sysFile.setFileCode(importTemplateCode); + sysFileService.insertSysFile(sysFile); - // 保证系统文件表中 - String filePath = dfsClient.getHostUi() + "/" + fileAbsolutePath[0] + "/" + fileAbsolutePath[1]; - SysDictionary dictionary = sysDictionaryService.getSysDictionaryByParentCodeAndCode( - BaseConstWords.DICTIONARY_FILE_TYPE, fastDFSFile.getExt()); + } - SysFile sysFile = new SysFile(); - sysFile.setDfsGroupName(fileAbsolutePath[0]); - sysFile.setDfsFileName(fileAbsolutePath[1]); - sysFile.setFileSoftType(CommonEnumUtil.SOFT_TYPE.CORE.getValue()); - sysFile.setFileSize(fastDFSFile.getContent().length); - sysFile.setFilePath(filePath); - sysFile.setFileOriginalName(fastDFSFile.getName()); - sysFile.setFileTypeId(dictionary.getId()); - sysFile.setFileTypeName(dictionary.getName()); - sysFile.setDownloadNum(0); - sysFileService.insertSysFile(sysFile); return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysFile); } catch (ImppBusiException busExcep) { @@ -347,7 +337,7 @@ public class SysOrderNoRuleController extends CoreBaseController { @ApiOperation(value = "获取单号规则字段") public ResultBean getSysOrderNoRuleColName() { try { - return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelUtil.getColName(SysOrderNoRule.class)); + return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelTool.getColName(SysOrderNoRule.class)); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); } catch (Exception e) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java index e959c88..1314ead 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java @@ -1,10 +1,11 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; import cn.estsh.i3plus.core.api.iservice.busi.*; -import cn.estsh.i3plus.core.apiservice.util.ExcelUtil; -import cn.estsh.i3plus.core.apiservice.util.FileUtil; -import cn.estsh.i3plus.core.apiservice.util.ZipUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; +import cn.estsh.i3plus.platform.common.tool.FileTool; +import cn.estsh.i3plus.platform.common.tool.ZipTool; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; @@ -17,11 +18,12 @@ import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.compress.archivers.zip.ZipUtil; +import org.aspectj.util.FileUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -61,6 +63,9 @@ public class SysUserInfoController extends CoreBaseController{ @Autowired private ISysFileService sysFileService; + @Autowired + private ISysMessageService sysMessageService; + /** * 添加用户信息 * @param userInfo 用户信息 @@ -407,7 +412,7 @@ public class SysUserInfoController extends CoreBaseController{ excelFile = new File(excelDir + File.separator + SysUserInfo.class.getSimpleName() + pager.getCurrentPage() + ".xls"); excelFile.createNewFile(); - ExcelUtil.exportData(excelFile, listPager.getObjectList(), SysUserInfo.class, colName); + ExcelTool.exportData(excelFile, listPager.getObjectList(), SysUserInfo.class, colName); result.add(sysFileService.uploadFile(excelFile)); pager.setCurrentPage(pager.getCurrentPage() + 1); @@ -415,9 +420,9 @@ public class SysUserInfoController extends CoreBaseController{ // 将所有excel文件打包 if(isZip){ - zipFile = ZipUtil.zipFile(null, excelDir); + zipFile = ZipTool.zipFile(null, excelDir); result.add(sysFileService.uploadFile(zipFile)); - ExcelUtil.sendStationLetter(result,getSessionUser().getUser().getId()); + sysMessageService.doSendSysMessage(ExcelTool.sendStationLetter(result,getSessionUser().getUser().getId())); return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); } else { return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); @@ -428,10 +433,9 @@ public class SysUserInfoController extends CoreBaseController{ return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } finally { // 清理临时文件文件 - if (zipFile != null) { - FileUtil.deletefile(zipFile.getPath()); + if(excelDir != null){ + FileTool.deleteFile(excelDir.getPath()); } - FileUtil.deletefile(excelDir.getPath()); } } @@ -443,7 +447,7 @@ public class SysUserInfoController extends CoreBaseController{ @ApiOperation(value = "获取用户可导出字段") public ResultBean getSysUserInfoColName(){ try { - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelUtil.getColName(SysUserInfo.class)); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelTool.getColName(SysUserInfo.class)); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); }catch(Exception e){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/message/WMSMessageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/message/WMSMessageController.java new file mode 100644 index 0000000..497d266 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/message/WMSMessageController.java @@ -0,0 +1,153 @@ +package cn.estsh.i3plus.core.apiservice.controller.message; + +import cn.estsh.i3plus.core.apiservice.controller.base.BaseMessageController; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.model.platform.MessagePagerModel; +import cn.estsh.i3plus.pojo.model.platform.RefUserMessagePagerModel; +import cn.estsh.i3plus.pojo.platform.bean.SysMessage; +import cn.estsh.i3plus.pojo.platform.bean.SysRefUserMessage; +import cn.estsh.impp.framework.base.controller.CoreBaseController; +import cn.estsh.impp.framework.boot.util.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @Description : SWEB消息管理服务 + * @Reference : + * @Author : yunhao + * @Date : 2018-10-25 19:03 + * @Modify : + **/ +@RestController +@RequestMapping(PlatformConstWords.BASE_URL +"/wms") +@Api(description = "消息管理服务") +public class WMSMessageController extends CoreBaseController { + + @Autowired + private BaseMessageController baseSysMessage; + + + /*************************************************** WMS系统消息 **************************************************/ + + /** + * WMS - 新增消息 + * @param sysMessage + * @return + */ + @PostMapping(value = "/sys-message/insert") + @ApiOperation(value = "新增消息",notes = "新增消息") + public ResultBean insertSysMessage(@RequestBody SysMessage sysMessage){ + sysMessage = sysMessage == null ? new SysMessage() : sysMessage; + sysMessage.setMessageSoftType(CommonEnumUtil.SOFT_TYPE.WMS.getValue()); + + return baseSysMessage.basaeInsertSysMessage(sysMessage); + } + + /** + * WMS - 删除消息 + * @param id + * @return + */ + @DeleteMapping("/sys-message/delete/{id}") + @ApiOperation(value = "根据id删除消息",notes = "根据id删除消息") + public ResultBean deleteSysMessageById(@PathVariable("id") String id){ + return baseSysMessage.baseDeleteSysMessageById(id); + } + + /** + * WMS - 修改消息 + * @param sysMessage + * @return + */ + @PutMapping("/sys-message/update") + @ApiOperation(value = "修改信息",notes = "修改信息") + public ResultBean updateSysMessage(SysMessage sysMessage){ + sysMessage = sysMessage == null ? new SysMessage() : sysMessage; + sysMessage.setMessageSoftType(CommonEnumUtil.SOFT_TYPE.WMS.getValue()); + return baseSysMessage.baseUpdateSysMessage(sysMessage); + } + + /** + * WMS - 根据id查询消息 + * @param idStr 消息id + * @return 处理结果 + */ + @GetMapping(value = "/sys-message/get/{id}") + @ApiOperation(value = "根据id查询消息",notes = "根据id查询消息") + public ResultBean getSysMessageById(@PathVariable("id") String idStr){ + return baseSysMessage.baseGetSysMessageById(idStr); + } + + /** + * WMS - 分页带条件查询 + * @param messagePagerModel 分页以及条件信息 + * @return 处理结果 + */ + @PostMapping(value = "/sys-message/query") + @ApiOperation(value = "消息复杂查询,分页,排序",notes = "消息复杂查询,分页,排序") + public ResultBean querySysMessageByPager(@RequestBody MessagePagerModel messagePagerModel){ + return baseSysMessage.baseQuerySysMessageByPager(messagePagerModel); + } + + /** + * WMS - 批量删除 + * @param ids ids数组 + * @return 处理结果 + */ + @DeleteMapping("/sys-message/batch-delete") + @ApiOperation(value = "批量删除消息",notes = "批量删除消息") + public ResultBean deleteSysMessageByIds(String[] ids){ + return baseSysMessage.baseDeleteSysMessageByIds(ids); + } + + /*********************************************** WMS用户系统消息 *********************************************/ + + /** + * WMS - 根据用户消息id查询消息 + * @param idStr + * @return 处理结果 + */ + @GetMapping(value = "/user-message/get/{id}") + @ApiOperation(value = "根据用户消息id查询消息",notes = "根据用户消息id查询消息") + public ResultBean getUserMessageById(@PathVariable("id") String idStr){ + return baseSysMessage.baseGetUserMessageById(idStr); + } + + /** + * WMS - 批量切换消息状态 + * @param ids ids数组 + * @param status 状态 + * @return 处理结果 + */ + @PutMapping("/user-message/batch-status") + @ApiOperation(value = "批量切换消息状态",notes = "批量切换消息状态") + public ResultBean updateSysMessageStatusByIds(String[] ids,Integer status){ + return baseSysMessage.baseUpdateSysMessageStatusByIds(ids, status); + } + + /** + * 用户消息复杂查询,分页,排序 + * @param refUserMessagePagerModel 查询条件及分页信息 + * @return 处理结果 + */ + @PostMapping(value = "/user-message/query") + @ApiOperation(value = "消息复杂查询,分页,排序",notes = "消息复杂查询,分页,排序") + public ResultBean querySysRefUserMessageByPager(@RequestBody RefUserMessagePagerModel refUserMessagePagerModel){ + return baseSysMessage.baseQuerySysRefUserMessageByPager(refUserMessagePagerModel); + } + + /** + * 用户消息删除 + * @param idStr 用户消息id + * @return 处理结果 + */ + @DeleteMapping(value = "/user-message/delete/{id}") + @ApiOperation(value = "消息复杂查询,分页,排序",notes = "消息复杂查询,分页,排序") + public ResultBean deleteSysRefUserMessageById(@PathVariable("id") String idStr){ + return baseSysMessage.baseDeleteSysRefUserMessageById(idStr); + } + +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/WYHQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/WYHQueueReceiver.java new file mode 100644 index 0000000..303141d --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/WYHQueueReceiver.java @@ -0,0 +1,49 @@ +package cn.estsh.i3plus.core.apiservice.mq; + +import com.rabbitmq.client.Channel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +/** + * @Description : 定时任务通道业务处理 + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-12-20 21:56 + * @Modify: + **/ +@Component +public class WYHQueueReceiver { + + private static final Logger LOGGER = LoggerFactory.getLogger(WYHQueueReceiver.class); + + + /** + * 定时任务通道处理 + * + * @param data 系统消息信息 + * @param channel 通道 + * @param message 消息 + */ + @RabbitListener(queues = "WYH") + public void processSchedule(String data, Channel channel, Message message) { + try { + System.out.println("队列消息接受成功========" + data); + //信息已处理 + channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); + } catch (IOException e) { + LOGGER.error("【MQ-IMPP_MESSAGE_MAIL_QUEUE】处理出错:{}", e.getMessage(), e); + //丢弃这条消息 + try { + // 未成功处理,重新发送 + channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java index 20b5200..107bb59 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java @@ -67,7 +67,7 @@ public class SystemInitService implements ISystemInitService { redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + ":" + config.getConfigCode(); //存放于缓存 - putDataToCache(redisKey, config,SysConfig.class); + putDataToCache(redisKey, config,Object.class); } LOGGER.info("加载系统配置数量:【{}】",list.size()); } @@ -85,12 +85,12 @@ public class SystemInitService implements ISystemInitService { for (String key : parentCodeMap.keySet()) { //存放于缓存 putDataToCache(CommonConstWords.REDIS_PREFIX_CACHE_DICTIONARY + ":" + key, - parentCodeMap.get(key),List.class); + parentCodeMap.get(key),Object.class); } for (long key : parentIdMap.keySet()) { putDataToCache(CommonConstWords.REDIS_PREFIX_CACHE_DICTIONARY + ":" + key, - parentIdMap.get(key),List.class); + parentIdMap.get(key),Object.class); } } }catch (Exception e){ @@ -165,8 +165,8 @@ public class SystemInitService implements ISystemInitService { LOGGER.info(" Put Cache Redis Key:{},value:{},dataType:{}",key,data,dataType); // Redis 缓存 if(dataType == List.class){ - redisRes.putList(key,data,-1); - }else if(dataType == SysConfig.class){ + redisRes.putObject(key,data,-1); + }else if(dataType == Object.class){ redisRes.putObject(key,data,-1); }else{ LOGGER.error("不支持树形{}存放缓存!",dataType); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java index 40efe5c..e5de0ef 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysFileServiceImpl.java @@ -1,15 +1,12 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService; -import cn.estsh.i3plus.core.apiservice.util.FileUtil; +import cn.estsh.i3plus.platform.common.tool.FileTool; import cn.estsh.i3plus.platform.common.tool.StringTool; -import cn.estsh.i3plus.platform.common.tool.TimeTool; -import cn.estsh.i3plus.pojo.base.bean.BaseConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysDictionary; import cn.estsh.i3plus.pojo.platform.bean.SysFile; import cn.estsh.i3plus.pojo.platform.repository.SysDictionaryRepository; import cn.estsh.i3plus.pojo.platform.repository.SysFileRepository; @@ -24,6 +21,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; + import java.io.File; import java.util.List; @@ -132,37 +130,13 @@ public class SysFileServiceImpl implements ISysFileService { FastDFSFile fastDFSFile; // 判断参数类型 if (file instanceof File) { - fastDFSFile = new FastDFSFile((( File ) file).getName(), FileUtil.file2Byte((( File ) file).getPath()), + fastDFSFile = new FastDFSFile((( File ) file).getName(), FileTool.file2Byte((( File ) file).getPath()), StringTool.getStringFileSuffix((( File ) file).getName(), true)); } else { fastDFSFile = dfsClient.saveFile(( MultipartFile ) file); } - String[] fileAbsolutePath = dfsClient.upload(fastDFSFile); - - // 保存到系统文件表中 - LOGGER.info(" dfsClient ====>> " + dfsClient); - LOGGER.info(" fileAbsolutePath ====>> " + fileAbsolutePath); - String filePath = dfsClient.getHostUi() + "/" + fileAbsolutePath[0] + "/" + fileAbsolutePath[1]; - SysDictionary dictionary = sysDictionaryRDao.getByProperty(new String[]{"parentCodeRdd", "dictionaryValue"}, - new Object[]{BaseConstWords.DICTIONARY_FILE_TYPE, fastDFSFile.getExt()}); - - if (dictionary == null) { - dictionary = sysDictionaryRDao.getByProperty(new String[]{"parentCodeRdd", "dictionaryValue"}, - new Object[]{BaseConstWords.DICTIONARY_FILE_TYPE, "." + fastDFSFile.getExt()}); - } - - SysFile sysFile = new SysFile(); - sysFile.setDfsGroupName(fileAbsolutePath[0]); - sysFile.setDfsFileName(fileAbsolutePath[1]); - sysFile.setFileSoftType(CommonEnumUtil.SOFT_TYPE.CORE.getValue()); - sysFile.setFileSize(fastDFSFile.getContent().length); - sysFile.setFilePath(filePath); - sysFile.setFileOriginalName(fastDFSFile.getName()); - sysFile.setFileTypeId(dictionary.getId()); - sysFile.setFileTypeName(dictionary.getName()); - sysFile.setDownloadNum(0); - sysFile.setCreateDatetime(TimeTool.getNowTime(true)); + SysFile sysFile = dfsClient.upload(fastDFSFile,CommonEnumUtil.SOFT_TYPE.CORE.getValue()); return insertSysFile(sysFile); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java deleted file mode 100644 index 82ab984..0000000 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java +++ /dev/null @@ -1,445 +0,0 @@ -package cn.estsh.i3plus.core.apiservice.util; - -import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService; -import cn.estsh.i3plus.platform.common.tool.ReflexTool; -import cn.estsh.i3plus.platform.common.tool.StringTool; -import cn.estsh.i3plus.platform.common.tool.TimeTool; -import cn.estsh.i3plus.platform.common.util.PlatformConstWords; -import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysDictionary; -import cn.estsh.i3plus.pojo.platform.bean.SysFile; -import cn.estsh.i3plus.pojo.platform.bean.SysMessage; -import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; -import com.alibaba.fastjson.JSON; -import io.swagger.annotations.ApiParam; -import org.apache.commons.lang3.StringUtils; -import org.apache.poi.hssf.usermodel.HSSFRow; -import org.apache.poi.hssf.usermodel.HSSFSheet; -import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.apache.poi.ss.usermodel.*; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import javax.persistence.EntityManager; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.*; - -/** - * @Description : Excel导入导出工具类 - * @Reference : - * @Author : yunhao - * @CreateDate : 2018-12-05 16:12 - * @Modify: - **/ -@Component -public class ExcelUtil { - public static final Logger LOGGER = LoggerFactory.getLogger(ExcelUtil.class); - - private static ISysConfigService sysConfigService; - - @Autowired - public void setSysConfigService(ISysConfigService sysConfigService) { - ExcelUtil.sysConfigService = sysConfigService; - } - - private static EntityManager entityManager; - - @Autowired - public void setEntityManager(EntityManager entityManager) { - ExcelUtil.entityManager = entityManager; - } - - private static ISysDictionaryService sysDictionaryService; - - @Autowired - public void setSysDictionaryService(ISysDictionaryService sysDictionaryService){ - ExcelUtil.sysDictionaryService = sysDictionaryService; - } - - private static RabbitTemplate rabbitTemplate; - - @Autowired - public void setRabbitTemplate(RabbitTemplate rabbitTemplate) { - this.rabbitTemplate = rabbitTemplate; - } - - /** - * 导出 - * - * @param excelFile excel文件 - * @param data 导出的数据 - * @param exportClass 导出数据类型 - * @param exportCol 需要导出的列 - * @return 导出文件 - */ - public static File exportData(File excelFile, List data, Class exportClass, String[] exportCol) throws Exception { - FileOutputStream fos = null; - //创建HSSFWorkbook对象(excel的文档对象) - HSSFWorkbook workbook = new HSSFWorkbook(); - try { - fos = new FileOutputStream(excelFile); - - //建立新的sheet对象(excel的表单) - HSSFSheet sheet = workbook.createSheet(exportClass.getSimpleName()); - - // 创建表头 - HSSFRow tableHeader = sheet.createRow(0); - - // 类数据 - Field[] fields = new Field[exportCol.length]; - Field[] allFields = ReflexTool.getAllField(exportClass.getName()); - String colName; - - // 获取字段中文名 优先使用 OutputColumn.name - for (int i = 0; i < exportCol.length; i++) { - for (int j = 0; j < allFields.length; j++){ - if(exportCol[i].equals(allFields[j].getName())){ - fields[i] = allFields[j]; - - colName = null; - - if (fields[i].isAnnotationPresent(AnnoOutputColumn.class)) { - colName = fields[i].getAnnotation(AnnoOutputColumn.class).name(); - } - - if (fields[i].isAnnotationPresent(ApiParam.class) && StringUtils.isBlank(colName)) { - colName = fields[i].getAnnotation(ApiParam.class).value(); - } - tableHeader.createCell(i, CellType.STRING).setCellValue(colName); - } - } - } - - //加载数据至excel对象 - HSSFRow hssfRow; - Method method; - AnnoOutputColumn outputColumn; - Object cellValue; - - for (int i = 0; i < data.size(); i++) { - hssfRow = sheet.createRow(i + 1); - for (int j = 0; j < fields.length; j++) { - fields[j].setAccessible(true); - cellValue = fields[j].get(data.get(i)); - - // 判断是否存在引用关系 - if (fields[j].isAnnotationPresent(AnnoOutputColumn.class)) { - outputColumn = fields[j].getAnnotation(AnnoOutputColumn.class); - - // 判断是否为枚举字段 - if (outputColumn.refClass().isEnum()) { - method = outputColumn.refClass().getDeclaredMethod( - outputColumn.refForeignKey() + "Of" + StringTool.toUpperCaseFirstOne(outputColumn.value()), - outputColumn.refClass().getDeclaredMethod("get"+ - StringTool.toUpperCaseFirstOne(outputColumn.refForeignKey())).getReturnType()); - cellValue = method.invoke(data.get(i), cellValue); - }else if(outputColumn.refClass().equals(SysDictionary.class) && cellValue != null){ - cellValue = sysDictionaryService.getSysDictionaryByParentCodeAndValue(outputColumn.refForeignKey(), String.valueOf(cellValue)).getName(); - } else if(!outputColumn.refClass().equals(Object.class) && !outputColumn.refClass().equals(SysDictionary.class)){ - cellValue = selectByProperty(outputColumn.refClass(), outputColumn.value(), outputColumn.refForeignKey(), cellValue); - } - } - - // excel 文本框最大长度 - hssfRow.createCell(j, CellType.STRING).setCellValue(StringTool.valueExcelOf(cellValue)); - } - } - - workbook.write(fos); - fos.flush(); - return excelFile; - } finally { - try { - workbook.close(); - fos.close(); - } catch (IOException e) { - LOGGER.error("IOException!", e); - } - } - } - - /** - * 导入 - * - * @param fileName 文件名 - * @param inputStream 输入流 - * @param importClass 导入类型 - * @param 实体 - * @return 导入数据集合 - * @throws Exception - */ - public static List importData(String fileName, InputStream inputStream, Class importClass) throws Exception { - List dataList = new ArrayList(); - String fileType = StringTool.getStringFileSuffix(fileName, false); - - try { - //根据文件类型及文件输入流新建工作簿对象 - Workbook wb = null; - if (fileType.equals("xls")) { - wb = new HSSFWorkbook(inputStream); - } else if (fileType.equals("xlsx")) { - wb = new XSSFWorkbook(inputStream); - } else { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode()) - .setErrorDetail("Excel 您导入的excel格式不正确") - .setErrorSolution("请检查导入文件格式") - .build(); - } - - // 校验sheet是否超过最大行数 - Sheet sheet = wb.getSheet(importClass.getSimpleName()); - int maxRow = Integer.parseInt(sysConfigService.getSysConfigByCode(PlatformConstWords.EXCEL_IMPORT_MAX_ROW).getConfigValue()); - System.out.println(maxRow); - if (sheet != null && sheet.getLastRowNum() > maxRow) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("Excel 数据超过最大行数") - .setErrorSolution("请检查是否有空行,或分批导入") - .build(); - } - - // excel列名与字段名映射 - Map colName = new HashMap<>(); - for (Field field : ReflexTool.getAllField(importClass.getName())) { - if (field.isAnnotationPresent(AnnoOutputColumn.class) - && !StringUtils.isBlank(field.getAnnotation(AnnoOutputColumn.class).name())) { - colName.put(field.getAnnotation(AnnoOutputColumn.class).name(), field); - } else if (field.isAnnotationPresent(ApiParam.class)) { - colName.put(field.getAnnotation(ApiParam.class).value(), field); - } - } - - // 创建表头 - Row tableHeader = sheet.getRow(0); - Field[] fields = new Field[tableHeader.getLastCellNum()]; - - for (int i = 0; i < tableHeader.getLastCellNum(); i++) { - fields[i] = colName.get(tableHeader.getCell(i).getStringCellValue()); - } - - Row row; - Object obj; - Object cellValue = null; - AnnoOutputColumn inputColumn; - Method method; - - for (int i = 1; i <= sheet.getLastRowNum(); i++) { - row = sheet.getRow(i); - obj = importClass.newInstance(); - for (int j = 0; j < fields.length; j++) { - Field field = fields[j]; - if(field != null){ - // 判断是否存在引用关系 - if (field.isAnnotationPresent(AnnoOutputColumn.class)) { - inputColumn = fields[j].getAnnotation(AnnoOutputColumn.class); - row.getCell(j).setCellType(CellType.STRING); - cellValue = row.getCell(j).getStringCellValue(); - - // 判断是否为枚举字段 - if (inputColumn.refClass().isEnum()) { - method = inputColumn.refClass().getDeclaredMethod( - inputColumn.value() + "Of" + StringTool.toUpperCaseFirstOne(inputColumn.refForeignKey()), - inputColumn.refClass().getDeclaredMethod("get"+ - StringTool.toUpperCaseFirstOne(inputColumn.value())).getReturnType()); - cellValue = method.invoke(null, cellValue); - }else if(inputColumn.refClass().equals(SysDictionary.class) && cellValue != null){ - cellValue = sysDictionaryService.getSysDictionaryByParentCodeAndName(inputColumn.refForeignKey(), String.valueOf(cellValue)).getName(); - } else if(!inputColumn.refClass().equals(Object.class) && !inputColumn.refClass().equals(SysDictionary.class)){ - cellValue = selectByProperty(inputColumn.refClass(), inputColumn.refForeignKey(), inputColumn.value(), cellValue); - } - }else{ - cellValue = getExcelCell(row.getCell(j), field.getType()); - } - - field.setAccessible(true); - field.set(obj, cellValue); - } - } - dataList.add(obj); - } - - } finally { - inputStream.close(); - } - return dataList; - } - - /** - * 导入模板 - * @param exportClass 需要生成模板的类 - * @return 模板文件 - */ - public static byte[] importTemplate(Class exportClass) { - File excelFile = null; - FileOutputStream fos = null; - //创建HSSFWorkbook对象(excel的文档对象) - HSSFWorkbook workbook = new HSSFWorkbook(); - - try { - //创建临时文件 - excelFile = File.createTempFile(exportClass.getSimpleName() + new Date().getTime(), "Tp.xls"); - LOGGER.info("临时文件所在的本地路径:" + excelFile.getCanonicalPath()); - fos = new FileOutputStream(excelFile); - - //建立新的sheet对象(excel的表单) - HSSFSheet sheet = workbook.createSheet(exportClass.getSimpleName()); - - // 创建表头 - HSSFRow tableHeader = sheet.createRow(0); - - // 类数据 - Field[] fields = ReflexTool.getAllField(exportClass.getName()); - int col = 0; - - for (int i = 0; i < fields.length; i++) { - if (fields[i].isAnnotationPresent(AnnoOutputColumn.class)) { - // 是否隐藏列 - if(!fields[i].getAnnotation(AnnoOutputColumn.class).hidden()){ - if (fields[i].isAnnotationPresent(AnnoOutputColumn.class)) { - tableHeader.createCell(col, CellType.STRING).setCellValue(fields[i].getAnnotation(AnnoOutputColumn.class).name()); - } - - // 优先使用 AnnoOutputColumn.name() - if (fields[i].isAnnotationPresent(ApiParam.class) && StringUtils.isBlank(fields[i].getAnnotation(AnnoOutputColumn.class).name())) { - tableHeader.createCell(col, CellType.STRING).setCellValue(fields[i].getAnnotation(ApiParam.class).value()); - } - col++; - } - } else { - if (fields[i].isAnnotationPresent(ApiParam.class)) { - tableHeader.createCell(col, CellType.STRING).setCellValue(fields[i].getAnnotation(ApiParam.class).value()); - col++; - } - } - } - - workbook.write(fos); - return FileUtil.file2Byte(excelFile.getPath()); - } catch (IOException e) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode()) - .setErrorDetail("Excel导出错误") - .build(); - } finally { - try { - workbook.close(); - fos.close(); - excelFile.deleteOnExit(); - } catch (IOException e) { - LOGGER.error("IOException!", e); - } - } - } - - /** - * 获取实体列集合 - * @param pojoClass 实体类 - * @return 列集合 - */ - public static Map getColName(Class pojoClass) { - Map colName = new LinkedHashMap(); - Field[] fields = ReflexTool.getAllField(pojoClass.getName()); - - for (int i = 0; i < fields.length; i++) { - if (fields[i].isAnnotationPresent(ApiParam.class)) { - colName.put(fields[i].getName(),fields[i].getAnnotation(ApiParam.class).value()); - } - - if (fields[i].isAnnotationPresent(AnnoOutputColumn.class)) { - // 判断是否隐藏 - if(fields[i].getAnnotation(AnnoOutputColumn.class).hidden()){ - colName.remove(fields[i].getName()); - } - // 如果AnnoOutputColumn存在name属性则优先使用 - if(!StringUtils.isBlank(fields[i].getAnnotation(AnnoOutputColumn.class).name())){ - colName.put(fields[i].getName(),fields[i].getAnnotation(AnnoOutputColumn.class).name()); - } - } - } - return colName; - } - - /** - * 查询外键信息 - * @param persistentClass class - * @param colName 查询列名 - * @param propertyName 条件属性名称 - * @param value 条件属性值 - * @return - */ - public static Object selectByProperty(Class persistentClass, String colName, String propertyName, Object value) { - String queryString = "select model." + colName + " from " + persistentClass.getSimpleName() - + " as model where model." + propertyName + "= :" + propertyName; - return entityManager.createQuery(queryString).setParameter(propertyName, value).getSingleResult(); - } - - /** - * 获取excel单元格值 - * @param cell 单元格 - * @param cellClass 单元格参数类型 - * @return 处理结果 - */ - private static Object getExcelCell(Cell cell, Class cellClass) { - if (cell != null) { - cell.setCellType(CellType.STRING); - - if ("".equals(cell.getStringCellValue()) || "null".equals(cell.getStringCellValue())) { - return null; - } else if (cellClass == String.class) { - return cell.getStringCellValue(); - } else if (cellClass == Integer.class) { - return Integer.parseInt(cell.getStringCellValue()); - } else if (cellClass == Long.class) { - return Long.parseLong(cell.getStringCellValue()); - } else if (cellClass == Double.class) { - return Long.parseLong(cell.getStringCellValue()); - } - } - return null; - } - - /** - * 发送包含文件列表的站内信 - * @param fileList 文件集合 - * @param userId 用户id - */ - public static void sendStationLetter(List fileList, Long userId){ - StringBuffer letter = new StringBuffer(); - letter.append("导出文件列表:"); - for (SysFile sysFile:fileList) { - letter.append(""); - letter.append(sysFile.getFileOriginalName()); - letter.append("
"); - } - - // 消息提示 - SysMessage sysMessage = new SysMessage(); - sysMessage.setMessageSenderNameRdd(CommonEnumUtil.SOFT_TYPE.CORE.getDescription()); - sysMessage.setMessageTitle("数据导出"); - sysMessage.setMessageContent(letter.toString()); - sysMessage.setMessageType(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue()); - sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue()); - sysMessage.setMessageSendTime(TimeTool.getNowTime(true)); - sysMessage.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); - sysMessage.setMessageReceiversId(String.valueOf(userId)); - - rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, JSON.toJSONString(sysMessage)); - } - -} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/FileUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/FileUtil.java deleted file mode 100644 index ba5d617..0000000 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/FileUtil.java +++ /dev/null @@ -1,108 +0,0 @@ -package cn.estsh.i3plus.core.apiservice.util; - -import java.io.*; - -/** - * @Description : 文件工具类 - * @Reference : - * @Author : yunhao - * @CreateDate : 2019-01-11 13:34 - * @Modify: - **/ -public class FileUtil { - - private FileUtil(){} - - /** - * 对临时生成的文件夹和文件夹下的文件进行删除 - */ - public static void deletefile(String delpath) { - try { - File file = new File(delpath); - if (!file.isDirectory()) { - file.delete(); - } else if (file.isDirectory()) { - String[] filelist = file.list(); - for (int i = 0; i < filelist.length; i++) { - File delfile = new File(delpath + File.separator + filelist[i]); - if (!delfile.isDirectory()) { - delfile.delete(); - } else if (delfile.isDirectory()) { - deletefile(delpath + File.separator + filelist[i]); - } - } - file.delete(); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * File 转 byte[] - * - * @param filePath - * @return byte[] - */ - public static byte[] file2Byte(String filePath){ - byte[] buffer = null; - try { - File file = new File(filePath); - FileInputStream fis = new FileInputStream(file); - ByteArrayOutputStream bos = new ByteArrayOutputStream(1000); - byte[] b = new byte[1000]; - int n; - while ((n = fis.read(b)) != -1) { - bos.write(b, 0, n); - } - fis.close(); - bos.close(); - buffer = bos.toByteArray(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - return buffer; - } - - - /** - * byte[] 转 File - * @param buf byte[] - * @param filePath 文件地址 - * @param fileName 文件名称 - */ - public static void byte2File(byte[] buf, String filePath, String fileName) { - BufferedOutputStream bos = null; - FileOutputStream fos = null; - File file = null; - try { - File dir = new File(filePath); - if (!dir.exists() && dir.isDirectory()) { - dir.mkdirs(); - } - file = new File(filePath + File.separator + fileName); - fos = new FileOutputStream(file); - bos = new BufferedOutputStream(fos); - bos.write(buf); - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (bos != null) { - try { - bos.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - if (fos != null) { - try { - fos.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - } -} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ZipUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ZipUtil.java deleted file mode 100644 index 5079e0e..0000000 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ZipUtil.java +++ /dev/null @@ -1,181 +0,0 @@ -package cn.estsh.i3plus.core.apiservice.util; - -import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo; -import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; -import org.apache.commons.compress.archivers.zip.ZipFile; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.*; -import java.util.ArrayList; -import java.util.Date; -import java.util.Enumeration; -import java.util.List; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; - -/** - * @Description : - * 压缩或解压zip:由于直接使用java.util.zip工具包下的类,会出现中文乱码问题, - * 所以使用ant.jar中的org.apache.tools.zip下的工具类 - * @Reference : - * @Author : yunhao - * @CreateDate : 2019-01-11 10:16 - * @Modify: - **/ -public class ZipUtil { - - public static final Logger LOGGER = LoggerFactory.getLogger(ZipUtil.class); - - private static byte[] _byte = new byte[1024]; - - /** - * 压缩文件或路径 - * - * @param zip 压缩的目的地址 - * @param srcFiles 压缩的源文件 - */ - public static File zipFile(String zip, List srcFiles) { - try { - // zip == null 则创建临时文件 - if(StringUtils.isBlank(zip)){ - zip = File.createTempFile("zip" + new Date().getTime(), ".zip").getPath(); - } - File zipFile = new File(zip); - if (zip.endsWith(".zip") || zip.endsWith(".ZIP")) { - ZipOutputStream _zipOut = new ZipOutputStream(new FileOutputStream(zipFile)); - for (File _f : srcFiles) { - handlerFile(zip, _zipOut, _f, ""); - } - _zipOut.close(); - } else { - LOGGER.error("target file[" + zip + "] is not .zip type file"); - } - return zipFile; - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - /** - * 压缩文件或路径 - * - * @param zip 压缩的目的地址 - * @param srcFiles 压缩的源文件 - */ - public static File zipFile(String zip, File srcFiles) { - try { - File zipFile = null; - // zip == null 则创建临时文件 - if(StringUtils.isBlank(zip)){ - zipFile = new File(System.getProperty("java.io.tmpdir") + File.separator + SysUserInfo.class.getSimpleName()+ ".zip"); - zipFile.createNewFile(); - zip = zipFile.getPath(); - } - if (zip.endsWith(".zip") || zip.endsWith(".ZIP")) { - zipFile = new File(zip); - ZipOutputStream _zipOut = new ZipOutputStream(new FileOutputStream(zipFile)); - handlerFile(zip, _zipOut, srcFiles, ""); - _zipOut.close(); - } else { - LOGGER.error("target file[" + zip + "] is not .zip type file"); - } - return zipFile; - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - /** - * @param zip 压缩的目的地址 - * @param zipOut - * @param srcFile 被压缩的文件信息 - * @param path 在zip中的相对路径 - * @throws IOException - */ - private static void handlerFile(String zip, ZipOutputStream zipOut, File srcFile, String path) throws IOException { - LOGGER.debug(" begin to compression file[" + srcFile.getName() + "]"); - if (!"".equals(path) && !path.endsWith(File.separator)) { - path += File.separator; - } - if (!srcFile.getPath().equals(zip)) { - // 判断是否为文件目录如果为文件目录则打包目录下所有文件 - if (srcFile.isDirectory()) { - File[] _files = srcFile.listFiles(); - if (_files.length == 0) { - zipOut.putNextEntry(new ZipEntry(path + srcFile.getName() + File.separator)); - zipOut.closeEntry(); - } else { - for (File _f : _files) { - handlerFile(zip, zipOut, _f, path + srcFile.getName()); - } - } - } else { - InputStream _in = new FileInputStream(srcFile); - zipOut.putNextEntry(new ZipEntry(path + srcFile.getName())); - int len = 0; - while ((len = _in.read(_byte)) > 0) { - zipOut.write(_byte, 0, len); - } - _in.close(); - zipOut.closeEntry(); - } - } - } - - /** - * 解压缩ZIP文件,将ZIP文件里的内容解压到targetDIR目录下 - * - * @param zipPath 待解压缩的ZIP文件路径 - * @param descDir 目标目录 - */ - public static List upzipFile(String zipPath, String descDir) { - return upzipFile(new File(zipPath), descDir); - } - - /** - * 对.zip文件进行解压缩 - * - * @param zipFile 解压缩文件 - * @param descDir 压缩的目标地址,如:D:\\测试 或 /mnt/d/测试 - * @return - */ - @SuppressWarnings("rawtypes") - public static List upzipFile(File zipFile, String descDir) { - List _list = new ArrayList<>(); - try { - ZipFile _zipFile = new ZipFile(zipFile); - for (Enumeration entries = _zipFile.getEntries(); entries.hasMoreElements(); ) { - ZipEntry entry = (ZipEntry) entries.nextElement(); - File _file = new File(descDir + File.separator + entry.getName()); - if (entry.isDirectory()) { - _file.mkdirs(); - } else { - File _parent = _file.getParentFile(); - if (!_parent.exists()) { - _parent.mkdirs(); - } - InputStream _in = _zipFile.getInputStream((ZipArchiveEntry) entry); - OutputStream _out = new FileOutputStream(_file); - int len; - while ((len = _in.read(_byte)) > 0) { - _out.write(_byte, 0, len); - } - _in.close(); - _out.flush(); - _out.close(); - _list.add(_file); - } - } - } catch (IOException e) { - } - return _list; - } -} diff --git a/modules/i3plus-core-apiservice/src/main/resources/init/sys-config.xlsx b/modules/i3plus-core-apiservice/src/main/resources/init/sys-config.xlsx index db2137d..29198fd 100644 Binary files a/modules/i3plus-core-apiservice/src/main/resources/init/sys-config.xlsx and b/modules/i3plus-core-apiservice/src/main/resources/init/sys-config.xlsx differ diff --git a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/mq/TestMQ.java b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/mq/TestMQ.java index 62b9b5c..429a9ac 100644 --- a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/mq/TestMQ.java +++ b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/mq/TestMQ.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.TestBase; import cn.estsh.i3plus.core.apiservice.util.MailUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysMessage; +import com.alibaba.fastjson.JSON; import org.junit.Test; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; @@ -41,7 +42,7 @@ public class TestMQ extends TestBase { sysMessage.setId(null); sysMessage.setMessageTitle( i + "mail测试"); sysMessage.setMessageSenderNameRdd(i+""); - rabbitTemplate.convertAndSend("WYH_MESSAGE_QUEUE", new SysMessage()); + rabbitTemplate.convertAndSend("WYH_MESSAGE_QUEUE", JSON.toJSONString(new SysMessage())); System.out.println("第" + i + "次"); } diff --git a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestSysLocaleResourceService.java b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestSysLocaleResourceService.java new file mode 100644 index 0000000..7e6b1d9 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestSysLocaleResourceService.java @@ -0,0 +1,45 @@ +package test.cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService; +import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.TestBase; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; +import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.io.File; +import java.io.IOException; +import java.util.Date; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2019-05-22 16:37 + * @Modify: + **/ +public class TestSysLocaleResourceService extends TestBase { + + @Autowired + ISysLocaleResourceService sysLocaleResourceService; + + @Test + public void exportSysLocaleResourceData() throws IOException { + SysLocaleResource ds = new SysLocaleResource(); + System.out.println(ExcelTool.getColName(SysLocaleResource.class)); + String[] colName = new String[]{ + "resourceType","languageCode","languageNameRdd","resourceKey","resourceValue","isSystem" + }; + File file = File.createTempFile(SysLocaleResource.class.getSimpleName() + new Date().getTime(), "Tp.xls"); + try { + ExcelTool.exportData(file,sysLocaleResourceService.listSysLocaleResource(),SysLocaleResource.class,colName); + System.out.println(file.getPath()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + System.out.println(ExcelTool.getColName(SysLocaleResource.class)); + } +} diff --git a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestUser.java b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestUser.java index 47816e7..837d2e2 100644 --- a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestUser.java +++ b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestUser.java @@ -2,7 +2,7 @@ // //import cn.estsh.i3plus.core.api.iservice.busi.*; //import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.TestBase; -//import cn.estsh.i3plus.core.apiservice.util.FileUtil; +//import cn.estsh.i3plus.core.apiservice.util.FileTool; //import cn.estsh.i3plus.platform.common.convert.ConvertBean; //import cn.estsh.i3plus.pojo.base.bean.BaseBean; //import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; diff --git a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/ExcelReadData.java b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/ExcelReadData.java index d82e204..d1e988c 100644 --- a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/ExcelReadData.java +++ b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/ExcelReadData.java @@ -1,6 +1,6 @@ package test.cn.estsh.i3plus.core.apiservice.util; -import cn.estsh.i3plus.core.apiservice.util.ExcelUtil; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; import cn.estsh.i3plus.pojo.platform.bean.SysMenu; import com.alibaba.fastjson.JSON; @@ -16,7 +16,7 @@ import java.util.List; **/ public class ExcelReadData { public static void main(String[] args) throws Exception{ - List list = ExcelUtil.importData("permission.xls", new FileInputStream("E:\\permission.xls"), SysMenu.class); + List list = ExcelTool.importData("permission.xls", new FileInputStream("E:\\permission.xls"), SysMenu.class); System.out.println(JSON.toJSONString(list)); } diff --git a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/JavaTest.java b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/JavaTest.java index 83f0331..5b89157 100644 --- a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/JavaTest.java +++ b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/JavaTest.java @@ -1,9 +1,8 @@ package test.cn.estsh.i3plus.core.apiservice.util; -import cn.estsh.i3plus.core.apiservice.util.ExcelUtil; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.pojo.platform.bean.SysMenu; -import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo; import lombok.Data; import org.apache.commons.lang3.StringUtils; @@ -957,7 +956,7 @@ public class JavaTest { File file = new File("E:\\test.xls"); file.createNewFile(); - ExcelUtil.exportData(file, list, SysMenu.class, new String[]{ + ExcelTool.exportData(file, list, SysMenu.class, new String[]{ "menuCode", "name","parentId","menuType","menuStatus","parentNameRdd","menuUrl","menuClassPath","menuGrade","menuSort" ,"menuCss","menuIcon","menuDescription" }); diff --git a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/TestExcelUtil.java b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/TestExcelUtil.java index 1283122..357373a 100644 --- a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/TestExcelUtil.java +++ b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/util/TestExcelUtil.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.core.apiservice.util; import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.TestBase; +import cn.estsh.i3plus.platform.common.tool.ExcelTool; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysTool; import org.junit.Test; @@ -32,7 +33,7 @@ public class TestExcelUtil extends TestBase { @Test public void importData() throws Exception{ try { - List sy = ExcelUtil.importData("testOut.xls", new FileInputStream("E://testOut.xls"), SysTool.class); + List sy = ExcelTool.importData("testOut.xls", new FileInputStream("E://testOut.xls"), SysTool.class); System.out.println(sy); } catch (FileNotFoundException e) { e.printStackTrace();