diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java index 03e9aabe..baadcfa2 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java @@ -25,7 +25,6 @@ import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; - import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; diff --git a/eladmin-system/src/main/resources/template/generator/admin/Controller.ftl b/eladmin-system/src/main/resources/template/generator/admin/Controller.ftl index 7d4ada7e..3ea9a093 100644 --- a/eladmin-system/src/main/resources/template/generator/admin/Controller.ftl +++ b/eladmin-system/src/main/resources/template/generator/admin/Controller.ftl @@ -11,6 +11,8 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; /** * @author ${author} @@ -27,10 +29,18 @@ public class ${className}Controller { this.${changeClassName}Service = ${changeClassName}Service; } + @Log("导出数据") + @ApiOperation("导出数据") + @GetMapping(value = "/download") + @PreAuthorize("@el.check('${changeClassName}:list')") + public void download(HttpServletResponse response, ${className}QueryCriteria criteria) throws IOException { + ${changeClassName}Service.download(${changeClassName}Service.queryAll(criteria), response); + } + @GetMapping @Log("查询${className}") @ApiOperation("查询${className}") - @PreAuthorize("@el.check('${changeClassName}:list'") + @PreAuthorize("@el.check('${changeClassName}:list')") public ResponseEntity get${className}s(${className}QueryCriteria criteria, Pageable pageable){ return new ResponseEntity<>(${changeClassName}Service.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/resources/template/generator/admin/Service.ftl b/eladmin-system/src/main/resources/template/generator/admin/Service.ftl index 3c04d747..18264298 100644 --- a/eladmin-system/src/main/resources/template/generator/admin/Service.ftl +++ b/eladmin-system/src/main/resources/template/generator/admin/Service.ftl @@ -6,6 +6,8 @@ import ${package}.service.dto.${className}QueryCriteria; import org.springframework.data.domain.Pageable; import java.util.Map; import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; /** * @author ${author} @@ -40,4 +42,6 @@ public interface ${className}Service { void update(${className} resources); void delete(${pkColumnType} ${pkChangeColName}); + + void download(List<${className}DTO> all, HttpServletResponse response) throws IOException; } \ No newline at end of file diff --git a/eladmin-system/src/main/resources/template/generator/admin/ServiceImpl.ftl b/eladmin-system/src/main/resources/template/generator/admin/ServiceImpl.ftl index cf869c4d..b81db3b5 100644 --- a/eladmin-system/src/main/resources/template/generator/admin/ServiceImpl.ftl +++ b/eladmin-system/src/main/resources/template/generator/admin/ServiceImpl.ftl @@ -11,6 +11,7 @@ import me.zhengjie.exception.EntityExistException; import me.zhengjie.utils.ValidationUtil; +import me.zhengjie.utils.FileUtil; import ${package}.repository.${className}Repository; import ${package}.service.${className}Service; import ${package}.service.dto.${className}DTO; @@ -35,6 +36,10 @@ import me.zhengjie.utils.PageUtil; import me.zhengjie.utils.QueryHelp; import java.util.List; import java.util.Map; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.LinkedHashMap; /** * @author ${author} @@ -127,4 +132,24 @@ public class ${className}ServiceImpl implements ${className}Service { public void delete(${pkColumnType} ${pkChangeColName}) { ${changeClassName}Repository.deleteById(${pkChangeColName}); } + + + @Override + public void download(List<${className}DTO> all, HttpServletResponse response) throws IOException { + List> list = new ArrayList<>(); + for (${className}DTO ${changeClassName} : all) { + Map map = new LinkedHashMap<>(); + <#list columns as column> + <#if column.columnKey != 'PRI'> + <#if column.columnComment != ''> + map.put("${column.columnComment}", ${changeClassName}.get${column.capitalColumnName}()); + <#else> + map.put(" ${column.changeColumnName}", ${changeClassName}.get${column.capitalColumnName}()); + + + + list.add(map); + } + FileUtil.downloadExcel(list, response); + } } \ No newline at end of file diff --git a/eladmin-system/src/main/resources/template/generator/front/api.ftl b/eladmin-system/src/main/resources/template/generator/front/api.ftl index a39d3bc7..a848db14 100644 --- a/eladmin-system/src/main/resources/template/generator/front/api.ftl +++ b/eladmin-system/src/main/resources/template/generator/front/api.ftl @@ -22,3 +22,12 @@ export function edit(data) { data }) } + +export function download${className}(params) { + return request({ + url: 'api/${changeClassName}/download', + method: 'get', + params, + responseType: 'blob' + }) +} diff --git a/eladmin-system/src/main/resources/template/generator/front/eForm.ftl b/eladmin-system/src/main/resources/template/generator/front/eForm.ftl index 1e8fbcd9..de44a6ae 100644 --- a/eladmin-system/src/main/resources/template/generator/front/eForm.ftl +++ b/eladmin-system/src/main/resources/template/generator/front/eForm.ftl @@ -5,7 +5,11 @@ <#list columns as column> <#if column.changeColumnName != '${pkChangeColName}'> prop="${column.changeColumnName}"> + <#if column.columnType != 'Timestamp'> + <#else > + + diff --git a/eladmin-system/src/main/resources/template/generator/front/index.ftl b/eladmin-system/src/main/resources/template/generator/front/index.ftl index 725a8cbe..456e955a 100644 --- a/eladmin-system/src/main/resources/template/generator/front/index.ftl +++ b/eladmin-system/src/main/resources/template/generator/front/index.ftl @@ -21,6 +21,16 @@ icon="el-icon-plus" @click="add">新增 + +
+ 导出 +
@@ -73,9 +83,9 @@