diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysOrderNoRuleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysOrderNoRuleService.java index 4666a1f..ac3130e 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysOrderNoRuleService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysOrderNoRuleService.java @@ -5,6 +5,8 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule; import io.swagger.annotations.ApiOperation; +import java.util.List; + /** * @Description : 单号生成规则服务器 * @Reference : @@ -32,6 +34,15 @@ public interface ISysOrderNoRuleService { @ApiOperation(value = "根据code查询单号规则") SysOrderNoRule getSysOrderNoRuleCode(String code); - @ApiOperation(value = "根据id修改用户状态") + @ApiOperation(value = "根据id修改单号规则状态") void updateSysOrderNoRuleCodeStatusById(Long id,Integer status); + + @ApiOperation(value = "批量删除单号规则") + void deleteSysOrderNoRuleByIds(Long[] ids); + + @ApiOperation(value = "批量修改单号规则状态") + void updateSysOrderNoRuleByIds(Long[] ids,Integer status); + + @ApiOperation(value = "批量添加编号规则") + void insertSysOrderNoRuleList(List sysOrderNoRuleList); } 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 d8782ac..35b170b 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,20 +1,42 @@ 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.platform.common.tool.StringTool; +import cn.estsh.i3plus.platform.common.util.CommonConstWords; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; 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.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; import cn.estsh.impp.framework.boot.util.ValidatorBean; +import com.netflix.discovery.converters.Auto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; /** * @Description :系统单号规则管理服务 @@ -26,10 +48,18 @@ import org.springframework.web.bind.annotation.*; @RestController @Api(description = "系统单号规则管理服务") @RequestMapping(CoreBaseController.BASE_URL + "/sys-order-no-rule") -public class SysOrderNoRuleController { +public class SysOrderNoRuleController extends CoreBaseController { @Autowired ISysOrderNoRuleService sysOrderNoRuleService; + @Autowired + ISysDictionaryService sysDictionaryService; + @Autowired + ISysConfigService sysConfigService; + @Autowired + ISysFileService sysFileService; + @Autowired + private FastDFSClient dfsClient; @PostMapping(value = "/insert") @ApiOperation(value = "新增单号规则") @@ -135,14 +165,14 @@ public class SysOrderNoRuleController { ListPager sysOrderNoRuleList = sysOrderNoRuleService.querySysOrderNoRuleByPager(sysOrderNoRule, pager); return ResultBean.success("查询成功").setListPager(sysOrderNoRuleList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep.getErrorShow()); + return ResultBean.fail(busExcep); }catch(Exception e){ return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } - @PutMapping(value = "/update-status/{id}/{status}") - @ApiOperation(value = "单号规则复杂查询,分页,排序") + @PutMapping(value = "/status/{id}/{status}") + @ApiOperation(value = "根据id修改规则状态") public ResultBean updateSysOrderNoRuleStatusById(@PathVariable("id") String id,@PathVariable("status") Integer status){ try { ValidatorBean.checkNotNull(id,"code不能为空"); @@ -151,9 +181,131 @@ public class SysOrderNoRuleController { sysOrderNoRuleService.updateSysOrderNoRuleCodeStatusById(Long.parseLong(id),status); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep.getErrorShow()); + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @DeleteMapping(value = "/batch-delete") + @ApiOperation(value = "批量删除单号规则") + public ResultBean deleteSysOrderNoRuleByIds(String[] idsStr){ + try { + if(idsStr.length == 0){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("请选择需要删除的资源。") + .build(); + } + + sysOrderNoRuleService.deleteSysOrderNoRuleByIds(StringTool.getArrayLong(idsStr)); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PutMapping(value = "/batch-status") + @ApiOperation(value = "根据id批量修改规则状态") + public ResultBean updateSysOrderNoRuleStatusByIds(String[] idsStr,Integer status){ + try { + if(idsStr.length == 0){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("请选择需要删除的资源。") + .build(); + } + ValidatorBean.checkIsNumber(status,"状态不能为空!"); + + sysOrderNoRuleService.updateSysOrderNoRuleByIds(StringTool.getArrayLong(idsStr),status); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping(value = "/export") + @ApiOperation(value = "导出单号规则") + public ResultBean exportSysOrderNoRule(SysOrderNoRule sysOrderNoRule, String[] colName){ + try { + Pager pager = new Pager(); + pager.setCurrentPage(1); + pager.setPageSize(Integer.parseInt(sysConfigService.getSysConfigByCode(PlatformConstWords.EXCEL_EXPORT_MAX_ROW).getConfigValue())); + ListPager listPager; + String[] fileAbsolutePath; + List result = new ArrayList(); + do { + listPager = sysOrderNoRuleService.querySysOrderNoRuleByPager(sysOrderNoRule, pager); + pager = listPager.getObjectPager(); + + // 上传至文件服务器 + FastDFSFile fastDFSFile = new FastDFSFile(SysOrderNoRule.class.getSimpleName() + pager.getCurrentPage() + ".xls", + ExcelUtil.exportData(listPager.getObjectList(),SysOrderNoRule.class,colName),"xls"); + + fileAbsolutePath = dfsClient.upload(fastDFSFile); + + // 保证系统文件表中 + String filePath = dfsClient.getHostUi() + "/" + fileAbsolutePath[0] + "/" + fileAbsolutePath[1]; + SysDictionary dictionary = sysDictionaryService.getSysDictionaryByParentCodeAndCode( + CommonConstWords.DICTIONARY_FILE_TYPE,fastDFSFile.getExt()); + + SysFile sysFile = new SysFile(); + sysFile.setDfsGroupName(fileAbsolutePath[0]); + sysFile.setDfsFileName(fileAbsolutePath[1]); + sysFile.setFileSize(fastDFSFile.getContent().length); + sysFile.setFilePath(filePath); + sysFile.setFileOriginalName(fastDFSFile.getName()); + sysFile.setFileTypeId(dictionary.getId()); + sysFile.setFileTypeName(dictionary.getName()); + sysFile.setDownloadNum(0); + result.add(sysFileService.insertSysFile(sysFile)); + + pager.setCurrentPage(pager.getCurrentPage() + 1); + } while (pager.getCurrentPage() <= pager.getTotalPages()); + return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); }catch(Exception e){ return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + + @GetMapping(value = "/import") + @ApiOperation(value = "导入单号规则") + public ResultBean importSysOrderNoRule(@RequestParam("file") MultipartFile file){ + try { + List sysOrderNoRuleList = ExcelUtil.importData(file.getName(),file.getInputStream(),SysOrderNoRule.class); + sysOrderNoRuleService.insertSysOrderNoRuleList(sysOrderNoRuleList); + return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping(value = "/import-template") + @ApiOperation(value = "下载导入模板") + public ResultBean importSysOrderNoRuleTemplate(HttpServletResponse response, String[] colName){ + try { + response.setContentType("application/force-download");// 设置强制下载不打开 + response.addHeader("Content-Disposition", "attachment;fileName=" + SysOrderNoRule.class.getSimpleName() + "Template.xls");// 设置文件名 + response.addHeader("Content-type", "application/octet-stream");// 设置文件名 + +// ExcelUtil.importTemplate(response.getOutputStream(),SysOrderNoRule.class, colName); + + return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysToolController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysToolController.java index 5b1c187..b51cb03 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysToolController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysToolController.java @@ -18,11 +18,18 @@ 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 io.swagger.annotations.ApiParam; +import org.apache.poi.ss.formula.functions.T; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrderNoRuleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrderNoRuleService.java index a5eed4d..2f9ccd9 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrderNoRuleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrderNoRuleService.java @@ -2,10 +2,12 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysOrderNoRuleService; import cn.estsh.i3plus.core.apiservice.util.OrderNoMakeUtil; +import cn.estsh.i3plus.platform.common.tool.StringTool; 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.base.tool.HqlPack; import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule; import cn.estsh.i3plus.pojo.platform.repository.SysOrderNoRuleRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; @@ -16,6 +18,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * @Description : 系统单号生成规则接口实现 * @Reference : @@ -112,5 +116,22 @@ public class SysOrderNoRuleService implements ISysOrderNoRuleService { sysOrderNoRuleRDao.updateByProperties("id",id,"orderNoRuleStatus",status); } + @Override + public void deleteSysOrderNoRuleByIds(Long[] ids) { + sysOrderNoRuleRDao.deleteByIds(ids); + } + + @Override + public void updateSysOrderNoRuleByIds(Long[] ids, Integer status) { + StringBuffer where = new StringBuffer(); + HqlPack.getInPack(String.join(",", StringTool.getArrayString(ids)), "id", where); + sysOrderNoRuleRDao.updateByHqlWhere(where.toString(), "orderNoRuleStatus", status); + } + + @Override + public void insertSysOrderNoRuleList(List sysOrderNoRuleList) { + sysOrderNoRuleRDao.saveAll(sysOrderNoRuleList); + } + } 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 new file mode 100644 index 0000000..b8fd500 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java @@ -0,0 +1,358 @@ +package cn.estsh.i3plus.core.apiservice.util; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; +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.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysTool; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import io.swagger.annotations.ApiParam; +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.CellType; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.*; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +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 ExcelUtil() throws IOException { + } + + private static ISysConfigService sysConfigService; + + @Autowired + public void setSysConfigService(ISysConfigService sysConfigService) { + ExcelUtil.sysConfigService = sysConfigService; + } + + /** + * 导出 + * + * @param data 导出的数据 + * @param exportClass 导出数据类型 + * @param exportCol 需要导出的列 + */ + public static byte[] exportData(List data, Class exportClass, String[] exportCol) { + File excelFile = null; + FileOutputStream fos = null; + //创建HSSFWorkbook对象(excel的文档对象) + HSSFWorkbook workbook = new HSSFWorkbook(); + try { + //创建临时文件 + System.out.println(exportClass.getSimpleName() + TimeTool.getNowTime(true)); + excelFile = File.createTempFile(exportClass.getSimpleName() + new Date().getTime(),".xls"); + LOGGER.info("临时文件所在的本地路径:" + excelFile.getCanonicalPath()); + fos = new FileOutputStream(excelFile); + + //建立新的sheet对象(excel的表单) + HSSFSheet sheet = workbook.createSheet(exportClass.getSimpleName()); + + // 创建表头 + HSSFRow tableHeader = sheet.createRow(0); + + // 类数据 + Field[] declaredFields = exportClass.getDeclaredFields(); + Field[] fields = new Field[exportCol.length]; + + for (int i = 0; i < exportCol.length; i++) { + for (Field field : declaredFields) { + if (field.getName().equals(exportCol[i])) { + fields[i] = field; + + if (field.isAnnotationPresent(ApiParam.class)) { + ApiParam fieldAnno = field.getAnnotation(ApiParam.class); + tableHeader.createCell(i, CellType.STRING).setCellValue(fieldAnno.value()); + } + } + } + } + + //加载数据至excel对象 + HSSFRow hssfRow; + Method method; + for (int i = 0; i < data.size(); i++) { + hssfRow = sheet.createRow(i + 1); + for (int j = 0; j < fields.length; j++) { + method = exportClass.getDeclaredMethod("get" + StringTool.toUpperCaseFirstOne(fields[j].getName())); + hssfRow.createCell(j, CellType.STRING).setCellValue( + String.valueOf(method.invoke(data.get(i))) + ); + } + } + + workbook.write(fos); + fos.flush(); + return file2Byte(excelFile); + } catch (NoSuchMethodException e) { + LOGGER.error("属性get方法不存在!", e); + } catch (IllegalAccessException e) { + LOGGER.error("Excel 导出异常!", e); + } catch (InvocationTargetException e) { + LOGGER.error("Excel 导出异常!", e); + } catch (IOException e) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode()) + .setErrorDetail("Excel 导出错误") + .build(); + } finally { + try { + workbook.close(); + fos.close(); + excelFile.deleteOnExit(); + } catch (IOException e) { + LOGGER.error("IOException!", e); + } + } + return null; + } + + /** + * 导入 + * + * @param fileName 文件名 + * @param inputStream 输入流 + * @param importClass 导入类型 + * @return 导入数据集合 + */ + public static List importData(String fileName, InputStream inputStream, Class importClass) { + 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()); + 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<>(); + ApiParam fieldAnno; + for (Field field : importClass.getDeclaredFields()) { + if (field.isAnnotationPresent(ApiParam.class)) { + fieldAnno = field.getAnnotation(ApiParam.class); + colName.put(fieldAnno.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; + for (int i = 0; i < sheet.getLastRowNum(); i++) { + row = sheet.getRow(i); + obj = importClass.newInstance(); + for (int j = 0; j < fields.length; j++) { + if (fields[j].getType() == String.class) { + cellValue = row.getCell(j).getStringCellValue(); + } else if (fields[j].getType() == Integer.class) { + cellValue = Integer.parseInt(row.getCell(j).getStringCellValue()); + } else if (fields[j].getType() == Long.class) { + cellValue = Long.parseLong(row.getCell(j).getStringCellValue()); + } + + importClass.getDeclaredMethod("set" + StringTool.toUpperCaseFirstOne(fields[i].getName()), fields[i].getType()) + .invoke(obj, cellValue); + } + dataList.add(obj); + } + + } catch (IOException e) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode()) + .setErrorDetail("IO输入输出异常") + .build(); + } catch (IllegalAccessException e) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.REFLEX_EXCEPTION.getCode()) + .setErrorDetail("无法访问导入类") + .setErrorSolution("请检查导入类访问修饰符") + .build(); + } catch (InstantiationException e) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.REFLEX_EXCEPTION.getCode()) + .setErrorDetail("无法实例化导入类") + .setErrorSolution("请检查导入类是拥有无参构造方法") + .build(); + } catch (InvocationTargetException e) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.REFLEX_EXCEPTION.getCode()) + .setErrorDetail("属性set方法实现错误") + .setErrorSolution("请检查属性set方法参数类型是否正确") + .build(); + } catch (NoSuchMethodException e) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.REFLEX_EXCEPTION.getCode()) + .setErrorDetail("没有找到属性set方法") + .setErrorSolution("请检查属性set方法是否存在") + .build(); + } + return dataList; + } + + /** + * 导入模板 + * + * @param exportClass + * @param exportCol + */ + public static byte[] importTemplate(Class exportClass, String[] exportCol) { + //创建HSSFWorkbook对象(excel的文档对象) + HSSFWorkbook workbook = new HSSFWorkbook(); + + try { + //建立新的sheet对象(excel的表单) + HSSFSheet sheet = workbook.createSheet(exportClass.getSimpleName()); + + // 创建表头 + HSSFRow tableHeader = sheet.createRow(0); + HSSFRow tableData = sheet.createRow(1); + + // 类数据 + Field[] declaredFields = exportClass.getDeclaredFields(); + Field[] fields = new Field[exportCol.length]; + ApiParam fieldAnno; + + for (int i = 0; i < exportCol.length; i++) { + for (Field field : declaredFields) { + if (field.getName().equals(exportCol[i])) { + fields[i] = field; + + if (field.isAnnotationPresent(ApiParam.class)) { + fieldAnno = field.getAnnotation(ApiParam.class); + tableHeader.createCell(i, CellType.STRING).setCellValue(fieldAnno.value()); + + tableData.createCell(i, CellType.STRING).setCellValue(fieldAnno.example()); + } + } + } + } + + ByteArrayOutputStream os = new ByteArrayOutputStream(); + workbook.write(os); + return os.toString("utf-8").getBytes(); + } catch (IOException e) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode()) + .setErrorDetail("Excel导出错误") + .build(); + } finally { + try { + workbook.close(); + } catch (IOException e) { + LOGGER.error("IOException!", e); + } + } + } + + + public static void main(String[] args) { + List sysTools = new ArrayList<>(); + SysTool sysTool = new SysTool(); + for (int i = 0; i < 14; i++) { + sysTool.setName("ddd"); + sysTools.add(sysTool); + } + String[] colName = new String[]{"name", "toolTypeNameRdd", "toolStatus", "toolIp", "toolPort", "toolConnType", "toolDataType", "toolOperating", "toolDescription"}; + try { + FileOutputStream ds = new FileOutputStream("E://testOut.xls"); + ds.write(ExcelUtil.exportData(sysTools, SysTool.class, colName)); + ds.flush(); + ds.close(); +// ExcelUtil.importData("testOut.xls", new FileInputStream("E://testOut.xls"), SysTool.class); +// ExcelUtil.importTemplate(new FileOutputStream("E://testOut.xls"), SysTool.class, colName); + + } catch (IOException e) { + e.printStackTrace(); + } + } + + + + public static byte[] file2Byte(File file) + { + byte[] buffer = null; + try + { + FileInputStream fis = new FileInputStream(file); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + byte[] b = new byte[1024]; + 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; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java index 15d75f0..4acefbc 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/MailUtil.java @@ -197,13 +197,4 @@ public class MailUtil { e.printStackTrace(); } } - - public static void main(String[] args) { - MailUtil mail = new MailUtil(); - mail.setTo("yunhao.wang@estsh.com"); - mail.setSubject("中文"); - mail.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getDescription()); - mail.setBody("内容"); - mail.send(); - } } diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestExcelOrderNoRule.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestExcelOrderNoRule.java new file mode 100644 index 0000000..2d527bf --- /dev/null +++ b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestExcelOrderNoRule.java @@ -0,0 +1,96 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;//package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.pojo.platform.bean.*; +import cn.estsh.i3plus.pojo.platform.repository.*; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-11-22 11:01 + * @Modify: + **/ +public class TestExcelOrderNoRule extends TestBase { + + public static final Logger LOGGER = LoggerFactory.getLogger(TestExcelOrderNoRule.class); + + // 文件路径 + public static final String PATH_NAME = "init/oder-no-rule.xlsx"; + // 权限Sheet 名称 + public static final String SHEET_ORDER_NO_RULE = "order-no-rule"; + + @Autowired + private SysOrderNoRuleRepository sysOrderNoRuleRDao; + + @Test + public void testInit() throws Exception { + XSSFWorkbook workbook = getWorkbook(PATH_NAME); + if(workbook != null){ + XSSFSheet sheetOrderNoRule = workbook.getSheet(SHEET_ORDER_NO_RULE); + + List ysOrderNoRuleList = getSysOrderNoRule(sheetOrderNoRule); + + LOGGER.info("System Init SysOrderNoRule Size:{}",ysOrderNoRuleList.size()); + + sysOrderNoRuleRDao.saveAll(ysOrderNoRuleList); + } + } + + public List getSysOrderNoRule(XSSFSheet sheet){ + List result = new ArrayList<>(); + if(sheet != null){ + if(sheet.getLastRowNum() >= 1){ + SysOrderNoRule obj = null; + for (int i = 1; i <= sheet.getLastRowNum(); i++) { + try { + Row row = sheet.getRow(i);//获取索引为i的行,以0开始 + if(row.getCell(0).toString().trim().length() > 0){ + obj = new SysOrderNoRule(); + obj.setId(Long.parseLong(row.getCell(0).getStringCellValue())); + obj.setName(row.getCell(1).getStringCellValue()); + obj.setOrderNoRuleCode(row.getCell(2).getStringCellValue()); + obj.setOrderNoRule(row.getCell(3).getStringCellValue()); + obj.setSerialNoSeed(Long.parseLong(row.getCell(4).getStringCellValue())); + obj.setSerialNoIncrement(Long.parseLong(row.getCell(5).getStringCellValue())); + obj.setSerialNoLength(Long.parseLong(row.getCell(6).getStringCellValue())); + obj.setIsCycle(Integer.parseInt(row.getCell(7).getStringCellValue())); + obj.setOrderNoRuleDescription(row.getCell(8).getStringCellValue()); + obj.setOrderNoRuleStatus(1); + obj.setSerialNo(-1L); + obj.setIsValid(1); + + result.add(obj); + } + }catch (Exception e){ + LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); + } + } + } + } + return result; + } + + public XSSFWorkbook getWorkbook(String pathName){ + try { + InputStream in = TestExcelPermission.class.getClassLoader().getResourceAsStream(pathName); + XSSFWorkbook workbook = new XSSFWorkbook(in); + return workbook; + }catch (Exception e){ + LOGGER.error(" System Init Sys Data Excel Error file path {} error message :{}",pathName,e.getMessage()); + e.getMessage(); + return null; + } + } + +} diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestExcelSysConfig.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestExcelSysConfig.java index 43ec295..69ad6a8 100644 --- a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestExcelSysConfig.java +++ b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestExcelSysConfig.java @@ -1,207 +1,207 @@ -package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; - -import cn.estsh.i3plus.pojo.platform.bean.*; -import cn.estsh.i3plus.pojo.platform.repository.SysConfigRepository; -import cn.estsh.i3plus.pojo.platform.repository.SysDictionaryRepository; -import cn.estsh.i3plus.pojo.platform.repository.SysLocaleLanguageRepository; -import cn.estsh.i3plus.pojo.platform.repository.SysLocaleResourceRepository; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.xssf.usermodel.XSSFSheet; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * @Description : - * @Reference : - * @Author : yunhao - * @CreateDate : 2018-11-22 11:01 - * @Modify: - **/ -public class TestExcelSysConfig extends TestBase { - - public static final Logger LOGGER = LoggerFactory.getLogger(TestExcelPermission.class); - - // 文件路径 - public static final String PATH_NAME = "init/sys-config.xlsx"; - // 权限Sheet 名称 - public static final String SHEET_SYS_CONFIG = "sys-config"; - public static final String SHEET_DICTIONARY = "dictionary"; - public static final String SHEET_LANGUAGE = "language"; - public static final String SHEET_RESOURCE = "resource"; - - @Autowired - private SysConfigRepository sysConfigRDao; - @Autowired - private SysDictionaryRepository sysDictionaryRDao; - @Autowired - private SysLocaleLanguageRepository sysLocaleLanguageRDao; - @Autowired - private SysLocaleResourceRepository sysLocaleResourceRDao; - - @Test - public void testInit() throws Exception { - XSSFWorkbook workbook = getWorkbook(PATH_NAME); - if(workbook != null){ - XSSFSheet sheetSysConfig = workbook.getSheet(SHEET_SYS_CONFIG); - XSSFSheet sheetDictionary = workbook.getSheet(SHEET_DICTIONARY); - XSSFSheet sheetLanguage = workbook.getSheet(SHEET_LANGUAGE); - XSSFSheet sheetResource = workbook.getSheet(SHEET_RESOURCE); - - List sysConfigList = getSysConfig(sheetSysConfig); - List sysDictionaryList = getSysDictionary(sheetDictionary); - List sysLocaleLanguageList = getSysLocaleLanguage(sheetLanguage); - List sysLocaleResourceList= getSysLocaleResource(sheetResource); - - LOGGER.info("System Init SysConfig Size:{}",sysConfigList.size()); - LOGGER.info("System Init SysDictionary Size:{}",sysDictionaryList.size()); - LOGGER.info("System Init SysLocaleLanguage Size:{}",sysLocaleLanguageList.size()); - LOGGER.info("System Init SysLocaleResource Size:{}",sysLocaleResourceList.size()); - - sysConfigRDao.saveAll(sysConfigList); - sysDictionaryRDao.saveAll(sysDictionaryList); - sysLocaleLanguageRDao.saveAll(sysLocaleLanguageList); - sysLocaleResourceRDao.saveAll(sysLocaleResourceList); - } - } - - public List getSysConfig(XSSFSheet sheet){ - List result = new ArrayList<>(); - if(sheet != null){ - if(sheet.getLastRowNum() >= 1){ - SysConfig obj = null; - for (int i = 1; i <= sheet.getLastRowNum(); i++) { - try { - Row row = sheet.getRow(i);//获取索引为i的行,以0开始 - if(row.getCell(0).toString().trim().length() > 0){ - obj = new SysConfig(); - obj.setId(Long.parseLong(row.getCell(0).getStringCellValue())); - obj.setName(row.getCell(1).getStringCellValue()); - obj.setConfigType(Integer.valueOf(row.getCell(2).getStringCellValue())); - obj.setConfigCode(row.getCell(3).getStringCellValue()); - obj.setConfigValue(row.getCell(4).getStringCellValue()); - obj.setConfigDescription(row.getCell(5).getStringCellValue()); - obj.setIsValid(1); - - result.add(obj); - } - }catch (Exception e){ - LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); - } - } - } - } - return result; - } - - public List getSysDictionary(XSSFSheet sheet){ - List result = new ArrayList<>(); - if(sheet != null){ - if(sheet.getLastRowNum() >= 1){ - SysDictionary obj = null; - for (int i = 1; i <= sheet.getLastRowNum(); i++) { - try { - Row row = sheet.getRow(i);//获取索引为i的行,以0开始 - if(row.getCell(0).toString().trim().length() > 0){ - obj = new SysDictionary(); - obj.setId(Long.parseLong(row.getCell(0).getStringCellValue())); - obj.setName(row.getCell(1).getStringCellValue()); - obj.setDictionaryCode(row.getCell(2).getStringCellValue()); - obj.setParentId(Long.valueOf(row.getCell(3).getStringCellValue())); - obj.setParentNameRdd(row.getCell(4).getStringCellValue()); - obj.setParentCodeRdd(row.getCell(5).getStringCellValue()); - obj.setDictionaryValue(row.getCell(6).getStringCellValue()); - obj.setDictionarySort(Integer.valueOf(row.getCell(7).getStringCellValue())); - obj.setDictionaryDescription(row.getCell(8).getStringCellValue()); - obj.setIsValid(1); - - result.add(obj); - } - }catch (Exception e){ - LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); - } - } - } - } - return result; - } - - public List getSysLocaleLanguage(XSSFSheet sheet){ - List result = new ArrayList<>(); - if(sheet != null){ - if(sheet.getLastRowNum() >= 1){ - SysLocaleLanguage obj = null; - for (int i = 1; i <= sheet.getLastRowNum(); i++) { - try { - Row row = sheet.getRow(i);//获取索引为i的行,以0开始 - if(row.getCell(0).toString().trim().length() > 0){ - obj = new SysLocaleLanguage(); - obj.setId(Long.parseLong(row.getCell(0).getStringCellValue())); - obj.setLanguageName(row.getCell(1).getStringCellValue()); - obj.setLanguageCode(row.getCell(2).getStringCellValue()); - obj.setLanguageSort(Integer.valueOf(row.getCell(3).getStringCellValue())); - obj.setIsDefault(Integer.valueOf(row.getCell(4).getStringCellValue())); - obj.setLanguageStatus(Integer.valueOf(row.getCell(5).getStringCellValue())); - obj.setIsValid(1); - - result.add(obj); - } - }catch (Exception e){ - LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); - } - } - } - } - return result; - } - - public List getSysLocaleResource(XSSFSheet sheet){ - List result = new ArrayList<>(); - if(sheet != null){ - if(sheet.getLastRowNum() >= 1){ - SysLocaleResource obj = null; - for (int i = 1; i <= sheet.getLastRowNum(); i++) { - try { - Row row = sheet.getRow(i);//获取索引为i的行,以0开始 - if(row.getCell(0).toString().trim().length() > 0){ - obj = new SysLocaleResource(); - obj.setId(Long.parseLong(row.getCell(0).getStringCellValue())); - obj.setResourceType(Integer.valueOf(row.getCell(1).getStringCellValue())); - obj.setLanguageCode(row.getCell(2).getStringCellValue()); - obj.setLanguageNameRdd(row.getCell(3).getStringCellValue()); - obj.setResourceKey(row.getCell(4).getStringCellValue()); - obj.setResourceValue(row.getCell(5).getStringCellValue()); - obj.setIsSystem(Integer.valueOf(row.getCell(6).getStringCellValue())); - obj.setIsValid(1); - - result.add(obj); - } - }catch (Exception e){ - LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); - } - } - } - } - return result; - } - - - public XSSFWorkbook getWorkbook(String pathName){ - try { - InputStream in = TestExcelPermission.class.getClassLoader().getResourceAsStream(pathName); - XSSFWorkbook workbook = new XSSFWorkbook(in); - return workbook; - }catch (Exception e){ - LOGGER.error(" System Init Sys Data Excel Error file path {} error message :{}",pathName,e.getMessage()); - e.getMessage(); - return null; - } - } - -} +//package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; +// +//import cn.estsh.i3plus.pojo.platform.bean.*; +//import cn.estsh.i3plus.pojo.platform.repository.SysConfigRepository; +//import cn.estsh.i3plus.pojo.platform.repository.SysDictionaryRepository; +//import cn.estsh.i3plus.pojo.platform.repository.SysLocaleLanguageRepository; +//import cn.estsh.i3plus.pojo.platform.repository.SysLocaleResourceRepository; +//import org.apache.poi.ss.usermodel.Row; +//import org.apache.poi.xssf.usermodel.XSSFSheet; +//import org.apache.poi.xssf.usermodel.XSSFWorkbook; +//import org.junit.Test; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.beans.factory.annotation.Autowired; +// +//import java.io.InputStream; +//import java.util.ArrayList; +//import java.util.List; +// +///** +// * @Description : +// * @Reference : +// * @Author : yunhao +// * @CreateDate : 2018-11-22 11:01 +// * @Modify: +// **/ +//public class TestExcelSysConfig extends TestBase { +// +// public static final Logger LOGGER = LoggerFactory.getLogger(TestExcelPermission.class); +// +// // 文件路径 +// public static final String PATH_NAME = "init/sys-config.xlsx"; +// // 权限Sheet 名称 +// public static final String SHEET_SYS_CONFIG = "sys-config"; +// public static final String SHEET_DICTIONARY = "dictionary"; +// public static final String SHEET_LANGUAGE = "language"; +// public static final String SHEET_RESOURCE = "resource"; +// +// @Autowired +// private SysConfigRepository sysConfigRDao; +// @Autowired +// private SysDictionaryRepository sysDictionaryRDao; +// @Autowired +// private SysLocaleLanguageRepository sysLocaleLanguageRDao; +// @Autowired +// private SysLocaleResourceRepository sysLocaleResourceRDao; +// +// @Test +// public void testInit() throws Exception { +// XSSFWorkbook workbook = getWorkbook(PATH_NAME); +// if(workbook != null){ +// XSSFSheet sheetSysConfig = workbook.getSheet(SHEET_SYS_CONFIG); +// XSSFSheet sheetDictionary = workbook.getSheet(SHEET_DICTIONARY); +// XSSFSheet sheetLanguage = workbook.getSheet(SHEET_LANGUAGE); +// XSSFSheet sheetResource = workbook.getSheet(SHEET_RESOURCE); +// +// List sysConfigList = getSysConfig(sheetSysConfig); +// List sysDictionaryList = getSysDictionary(sheetDictionary); +// List sysLocaleLanguageList = getSysLocaleLanguage(sheetLanguage); +// List sysLocaleResourceList= getSysLocaleResource(sheetResource); +// +// LOGGER.info("System Init SysConfig Size:{}",sysConfigList.size()); +// LOGGER.info("System Init SysDictionary Size:{}",sysDictionaryList.size()); +// LOGGER.info("System Init SysLocaleLanguage Size:{}",sysLocaleLanguageList.size()); +// LOGGER.info("System Init SysLocaleResource Size:{}",sysLocaleResourceList.size()); +// +// sysConfigRDao.saveAll(sysConfigList); +// sysDictionaryRDao.saveAll(sysDictionaryList); +// sysLocaleLanguageRDao.saveAll(sysLocaleLanguageList); +// sysLocaleResourceRDao.saveAll(sysLocaleResourceList); +// } +// } +// +// public List getSysConfig(XSSFSheet sheet){ +// List result = new ArrayList<>(); +// if(sheet != null){ +// if(sheet.getLastRowNum() >= 1){ +// SysConfig obj = null; +// for (int i = 1; i <= sheet.getLastRowNum(); i++) { +// try { +// Row row = sheet.getRow(i);//获取索引为i的行,以0开始 +// if(row.getCell(0).toString().trim().length() > 0){ +// obj = new SysConfig(); +// obj.setId(Long.parseLong(row.getCell(0).getStringCellValue())); +// obj.setName(row.getCell(1).getStringCellValue()); +// obj.setConfigType(Integer.valueOf(row.getCell(2).getStringCellValue())); +// obj.setConfigCode(row.getCell(3).getStringCellValue()); +// obj.setConfigValue(row.getCell(4).getStringCellValue()); +// obj.setConfigDescription(row.getCell(5).getStringCellValue()); +// obj.setIsValid(1); +// +// result.add(obj); +// } +// }catch (Exception e){ +// LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); +// } +// } +// } +// } +// return result; +// } +// +// public List getSysDictionary(XSSFSheet sheet){ +// List result = new ArrayList<>(); +// if(sheet != null){ +// if(sheet.getLastRowNum() >= 1){ +// SysDictionary obj = null; +// for (int i = 1; i <= sheet.getLastRowNum(); i++) { +// try { +// Row row = sheet.getRow(i);//获取索引为i的行,以0开始 +// if(row.getCell(0).toString().trim().length() > 0){ +// obj = new SysDictionary(); +// obj.setId(Long.parseLong(row.getCell(0).getStringCellValue())); +// obj.setName(row.getCell(1).getStringCellValue()); +// obj.setDictionaryCode(row.getCell(2).getStringCellValue()); +// obj.setParentId(Long.valueOf(row.getCell(3).getStringCellValue())); +// obj.setParentNameRdd(row.getCell(4).getStringCellValue()); +// obj.setParentCodeRdd(row.getCell(5).getStringCellValue()); +// obj.setDictionaryValue(row.getCell(6).getStringCellValue()); +// obj.setDictionarySort(Integer.valueOf(row.getCell(7).getStringCellValue())); +// obj.setDictionaryDescription(row.getCell(8).getStringCellValue()); +// obj.setIsValid(1); +// +// result.add(obj); +// } +// }catch (Exception e){ +// LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); +// } +// } +// } +// } +// return result; +// } +// +// public List getSysLocaleLanguage(XSSFSheet sheet){ +// List result = new ArrayList<>(); +// if(sheet != null){ +// if(sheet.getLastRowNum() >= 1){ +// SysLocaleLanguage obj = null; +// for (int i = 1; i <= sheet.getLastRowNum(); i++) { +// try { +// Row row = sheet.getRow(i);//获取索引为i的行,以0开始 +// if(row.getCell(0).toString().trim().length() > 0){ +// obj = new SysLocaleLanguage(); +// obj.setId(Long.parseLong(row.getCell(0).getStringCellValue())); +// obj.setLanguageName(row.getCell(1).getStringCellValue()); +// obj.setLanguageCode(row.getCell(2).getStringCellValue()); +// obj.setLanguageSort(Integer.valueOf(row.getCell(3).getStringCellValue())); +// obj.setIsDefault(Integer.valueOf(row.getCell(4).getStringCellValue())); +// obj.setLanguageStatus(Integer.valueOf(row.getCell(5).getStringCellValue())); +// obj.setIsValid(1); +// +// result.add(obj); +// } +// }catch (Exception e){ +// LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); +// } +// } +// } +// } +// return result; +// } +// +// public List getSysLocaleResource(XSSFSheet sheet){ +// List result = new ArrayList<>(); +// if(sheet != null){ +// if(sheet.getLastRowNum() >= 1){ +// SysLocaleResource obj = null; +// for (int i = 1; i <= sheet.getLastRowNum(); i++) { +// try { +// Row row = sheet.getRow(i);//获取索引为i的行,以0开始 +// if(row.getCell(0).toString().trim().length() > 0){ +// obj = new SysLocaleResource(); +// obj.setId(Long.parseLong(row.getCell(0).getStringCellValue())); +// obj.setResourceType(Integer.valueOf(row.getCell(1).getStringCellValue())); +// obj.setLanguageCode(row.getCell(2).getStringCellValue()); +// obj.setLanguageNameRdd(row.getCell(3).getStringCellValue()); +// obj.setResourceKey(row.getCell(4).getStringCellValue()); +// obj.setResourceValue(row.getCell(5).getStringCellValue()); +// obj.setIsSystem(Integer.valueOf(row.getCell(6).getStringCellValue())); +// obj.setIsValid(1); +// +// result.add(obj); +// } +// }catch (Exception e){ +// LOGGER.error("Excel Sheet Name :{} Index:{} DataType Error", sheet.getSheetName(), i); +// } +// } +// } +// } +// return result; +// } +// +// +// public XSSFWorkbook getWorkbook(String pathName){ +// try { +// InputStream in = TestExcelPermission.class.getClassLoader().getResourceAsStream(pathName); +// XSSFWorkbook workbook = new XSSFWorkbook(in); +// return workbook; +// }catch (Exception e){ +// LOGGER.error(" System Init Sys Data Excel Error file path {} error message :{}",pathName,e.getMessage()); +// e.getMessage(); +// return null; +// } +// } +// +//} diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestMessageServiceImpl.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestMessageService.java similarity index 89% rename from modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestMessageServiceImpl.java rename to modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestMessageService.java index e1e4bbf..259a4e6 100644 --- a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestMessageServiceImpl.java +++ b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestMessageService.java @@ -1,14 +1,14 @@ //package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; // //import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; -//import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; //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.ImppEnumUtil; //import cn.estsh.i3plus.pojo.platform.bean.SysMessage; //import com.alibaba.fastjson.JSON; //import org.junit.Test; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.test.annotation.Rollback; // @@ -22,10 +22,11 @@ // * @Date : 2018-10-31 15:30 // * @Modify : // **/ -//public class TestMessageServiceImpl extends TestBase { +//public class TestMessageService extends TestBase { // +// public static final Logger LOGGER = LoggerFactory.getLogger(TestMessageService.class); // @Autowired -// ISysMessageService sysMessageService; +// private ISysMessageService sysMessageService; // // /** // * 测试 查询所有消息 @@ -43,7 +44,7 @@ // @Test // @Transactional // public void testGetSysMessageById() { -// SysMessage sysMessage = sysMessageService.getSysMessageById("1057110061127700480"); +// SysMessage sysMessage = sysMessageService.getSysMessageById(1L); // System.out.println(JSON.toJSONString(sysMessage)); // } // @@ -75,7 +76,7 @@ // @Test // @Transactional // public void testUpdateSysMessage(){ -// SysMessage sysMessage = sysMessageService.getSysMessageById("1057110613261684736"); +// SysMessage sysMessage = sysMessageService.getSysMessageById(1L); // sysMessage.setMessageTitle("测试修改"); // // sysMessageService.updateSysMessage(sysMessage); @@ -87,7 +88,7 @@ // @Test // @Transactional // public void testDeleteSysMessageById(){ -// sysMessageService.deleteSysMessageById("1057111616417566720"); +// sysMessageService.deleteSysMessageById(1L); // } // // /** @@ -105,4 +106,5 @@ // ListPager list = sysMessageService.querySysMessageByPager(sysMessage,pager); // System.out.println(list); // } +// //} diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/util/TestExcelUtil.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/util/TestExcelUtil.java new file mode 100644 index 0000000..46775b6 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/util/TestExcelUtil.java @@ -0,0 +1,41 @@ +package cn.estsh.i3plus.core.apiservice.util; + +import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.TestBase; +import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysTool; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description : excel导入导出测试 + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-11-21 19:44 + * @Modify: + **/ +public class TestExcelUtil extends TestBase { + + + @Test + public void TestExportData(){ + + } + + @Test + public void importData(){ + try { + List sy = ExcelUtil.importData("testOut.xls", new FileInputStream("E://testOut.xls"), SysTool.class); + System.out.println(sy); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } +}