excel工具类优化

yun-zuoyi
汪云昊 6 years ago
parent 0b9ed93fc1
commit 90561827e5

@ -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);

@ -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());
}
}
}

@ -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());
}
}
}

@ -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());
}
}
}

@ -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<SysMenu> list = ExcelUtil.importData("permission.xls",multipart.getInputStream(), SysMenu.class);
List<SysMenu> list = ExcelTool.importData("permission.xls",multipart.getInputStream(), SysMenu.class);
Map<String,SysMenu> 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"
});

@ -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<SysOrderNoRule> sysOrderNoRuleList = ExcelUtil.importData(file.getOriginalFilename(), file.getInputStream(), SysOrderNoRule.class);
List<SysOrderNoRule> 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) {

@ -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){

@ -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);

@ -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);
}

@ -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 <T>
* @return
* @throws Exception
*/
public static <T> List<T> importData(String fileName, InputStream inputStream, Class importClass) throws Exception {
List dataList = new ArrayList<T>();
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<String, Field> 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<SysFile> fileList, Long userId){
StringBuffer letter = new StringBuffer();
letter.append("导出文件列表:");
for (SysFile sysFile:fileList) {
letter.append("<a href='/impp/operate/sys-file/download/"+sysFile.getId() + "'>");
letter.append(sysFile.getFileOriginalName());
letter.append("</a></br>");
}
// 消息提示
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));
}
}

@ -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();
}
}
}
}
}

@ -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.jarorg.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<File> 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();
}
}
}
/**
* ZIPZIPtargetDIR
*
* @param zipPath ZIP
* @param descDir
*/
public static List<File> 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<File> upzipFile(File zipFile, String descDir) {
List<File> _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;
}
}

@ -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 + "次");
}

@ -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;

@ -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<SysMenu> list = ExcelUtil.importData("permission.xls", new FileInputStream("E:\\permission.xls"), SysMenu.class);
List<SysMenu> list = ExcelTool.importData("permission.xls", new FileInputStream("E:\\permission.xls"), SysMenu.class);
System.out.println(JSON.toJSONString(list));
}

@ -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"
});

@ -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();

Loading…
Cancel
Save