diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitExcelExporter.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitExcelExporter.java new file mode 100644 index 00000000..b36f3c3f --- /dev/null +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitExcelExporter.java @@ -0,0 +1,101 @@ +package cn.odboy.util.xlsx; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; +import cn.idev.excel.EasyExcel; +import jakarta.servlet.http.HttpServletResponse; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.Date; +import java.util.List; + +/** + * EasyExcel 导出增强工具类 (支持普通/分页模式) + * + * @author https://mp.weixin.qq.com/s/gnrKCUzHg24sBSDp4IyAvg + */ +public class KitExcelExporter { + + private static int calculateOptimalPageSize(Class clazz) { + // 1. 估算单条数据大小 (字节) - 根据业务模型调整逻辑 + // 保守估计500字节/行 + long approxBytesPerRow = 500; + // 2. 获取当前JVM可用内存 (转成字节) + long freeMemoryBytes = Runtime.getRuntime().freeMemory(); + // 3. 【安全策略】仅使用一部分可用内存 (例如 40%) + long safeMemoryToUse = (long) (freeMemoryBytes * 0.4); + // 4. 计算建议分页条数 + int suggestedPageSize = (int) (safeMemoryToUse / approxBytesPerRow); + // 5. 设置合理范围 (防止太大或太小) + // 限制在1000~10000条/页 + return Math.max(1000, Math.min(suggestedPageSize, 10000)); + } + + /** + * 分页写入 (大数据量首选) + * + * @param response / + * @param fileName 下载文件名 + * @param dataModel 数据类 (User.class) + * @param totalCount 总条数 + * @param pageSupplier 分页查询逻辑 + */ + public static void exportByPage(HttpServletResponse response, String fileName, Class dataModel, long totalCount, PageQuerySupplier pageSupplier) { + int pageSize = calculateOptimalPageSize(dataModel); + String sheetName = DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN); + setupResponse(response, fileName, sheetName); + try (OutputStream out = response.getOutputStream()) { + KitExcelPageWriteHelper.writeByPage(out, dataModel, sheetName, pageSize, totalCount, pageSupplier); + } catch (Exception e) { + throw new RuntimeException("导出失败: " + e.getMessage(), e); + } + } + + /** + * 普通导出 (小数据量) + * + * @param response / + * @param fileName 下载文件名 + * @param dataModel 数据类 (User.class) + * @param dataList 全量数据List + */ + public static void exportSimple(HttpServletResponse response, String fileName, Class dataModel, List dataList) { + String sheetName = DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN); + setupResponse(response, fileName, sheetName); + try (OutputStream out = response.getOutputStream()) { + EasyExcel.write(out, dataModel) + .sheet(sheetName) + // 全量写入 + .doWrite(dataList); + } catch (Exception e) { + throw new RuntimeException("导出失败: " + e.getMessage(), e); + } + } + + /** + * 设置响应头 + */ + private static void setupResponse(HttpServletResponse response, String title, String sheetName) { + try { + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode(sheetName + "_" + title, StandardCharsets.UTF_8); + response.setHeader("Content-disposition", + "attachment;filename*=utf-8''" + fileName + ".xlsx"); + } catch (Exception e) { + throw new RuntimeException("设置响应头失败", e); + } + } + + /** + * 分页查询供应商 + * + * @param + */ + @FunctionalInterface + public interface PageQuerySupplier { + + List getPage(long pageNum, long pageSize); // 函数式接口 + } +} diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitExcelPageWriteHelper.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitExcelPageWriteHelper.java new file mode 100644 index 00000000..c6c399af --- /dev/null +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitExcelPageWriteHelper.java @@ -0,0 +1,36 @@ +package cn.odboy.util.xlsx; + +import cn.idev.excel.EasyExcel; +import cn.idev.excel.ExcelWriter; +import cn.idev.excel.write.metadata.WriteSheet; +import java.io.OutputStream; +import java.util.List; + +/** + * 分页写入Excel工具 - 专治各种不服(OOM) + */ +public class KitExcelPageWriteHelper { + + /** + * 执行分页写入 + * + * @param outputStream 输出流 (响应OutputStream) + * @param head 数据模型Class (如 User.class) + * @param sheetName 表格名称 + * @param pageSize 【重要】每批次处理条数 (建议 1000~5000) + * @param totalCount 总数据量 (用于计算总页数) + * @param supplier 分页数据提供器 (你的业务查询逻辑) + */ + public static void writeByPage(OutputStream outputStream, Class head, String sheetName, long pageSize, long totalCount, KitExcelExporter.PageQuerySupplier supplier) { + try (ExcelWriter excelWriter = EasyExcel.write(outputStream, head).build()) { + // 默认Sheet + WriteSheet writeSheet = EasyExcel.writerSheet(sheetName).build(); + int totalPage = totalCount > 0 ? (int) Math.ceil((double) totalCount / pageSize) : 1; + for (int pageNum = 1; pageNum <= totalPage; pageNum++) { + List pageData = supplier.getPage(pageNum, pageSize); + excelWriter.write(pageData, writeSheet); + pageData.clear(); + } + } + } +} \ No newline at end of file diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitXlsxExportUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitXlsxExportUtil.java index 320b0f2a..14e60780 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitXlsxExportUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitXlsxExportUtil.java @@ -6,13 +6,13 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.idev.excel.FastExcel; import cn.odboy.framework.exception.BadRequestException; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Date; import java.util.List; -import jakarta.servlet.http.HttpServletResponse; import lombok.experimental.UtilityClass; /** diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java index ffad72af..c3449355 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java @@ -15,17 +15,13 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; -import cn.odboy.system.constant.SystemZhConst; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.model.SystemCreateDeptArgs; -import cn.odboy.system.dal.model.SystemDeptExportRowVo; import cn.odboy.system.dal.model.SystemQueryDeptArgs; import cn.odboy.system.service.SystemDeptService; import cn.odboy.util.KitPageUtil; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -54,14 +50,7 @@ public class SystemDeptController { @GetMapping(value = "/download") @PreAuthorize("@el.check('dept:list')") public void exportDept(HttpServletResponse response, SystemQueryDeptArgs args) throws Exception { - List systemDeptTbs = systemDeptService.queryAllDeptByArgs(args, false); - KitXlsxExportUtil.exportFile(response, "部门数据", systemDeptTbs, SystemDeptExportRowVo.class, (dataObject) -> { - SystemDeptExportRowVo rowVo = new SystemDeptExportRowVo(); - rowVo.setName(dataObject.getName()); - rowVo.setEnabled(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); - rowVo.setCreateTime(dataObject.getCreateTime()); - return CollUtil.newArrayList(rowVo); - }); + systemDeptService.exportDeptXlsx(response, args); } @ApiOperation("查询部门") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java index 393a4a6c..f5b57b50 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java @@ -15,22 +15,17 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictTb; import cn.odboy.system.dal.model.SystemCreateDictArgs; -import cn.odboy.system.dal.model.SystemDictDetailVo; -import cn.odboy.system.dal.model.SystemDictExportRowVo; import cn.odboy.system.dal.model.SystemQueryDictArgs; import cn.odboy.system.service.SystemDictDetailService; import cn.odboy.system.service.SystemDictService; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.Set; import jakarta.servlet.http.HttpServletResponse; @@ -58,30 +53,7 @@ public class SystemDictController { @GetMapping(value = "/download") @PreAuthorize("@el.check('dict:list')") public void exportDict(HttpServletResponse response, SystemQueryDictArgs args) throws IOException { - List systemDictTbs = systemDictService.queryDictByArgs(args); - KitXlsxExportUtil.exportFile(response, "字典数据", systemDictTbs, SystemDictExportRowVo.class, (dataObject) -> { - List dictDetails = systemDictDetailService.listDictDetailByName(dataObject.getName()); - if (CollUtil.isEmpty(dictDetails)) { - SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); - rowVo.setName(dataObject.getName()); - rowVo.setDescription(dataObject.getDescription()); - rowVo.setCreateTime(dataObject.getCreateTime()); - rowVo.setLabel(""); - rowVo.setValue(""); - return CollUtil.newArrayList(rowVo); - } - List rowVos = new ArrayList<>(); - for (SystemDictDetailVo dictDetail : dictDetails) { - SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); - rowVo.setName(dataObject.getName()); - rowVo.setDescription(dataObject.getDescription()); - rowVo.setCreateTime(dataObject.getCreateTime()); - rowVo.setLabel(dictDetail.getLabel()); - rowVo.setValue(dictDetail.getValue()); - rowVos.add(rowVo); - } - return rowVos; - }); + systemDictService.exportDictXlsx(response, args); } @ApiOperation("查询字典") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java index 2ccac93a..8877f379 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java @@ -15,20 +15,16 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.model.SystemCreateJobArgs; -import cn.odboy.system.dal.model.SystemJobExportRowVo; import cn.odboy.system.dal.model.SystemQueryJobArgs; import cn.odboy.system.service.SystemJobService; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.io.IOException; -import java.util.List; import java.util.Set; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -53,14 +49,7 @@ public class SystemJobController { @GetMapping(value = "/download") @PreAuthorize("@el.check('job:list')") public void exportJob(HttpServletResponse response, SystemQueryJobArgs args) throws IOException { - List systemJobTbs = systemJobService.queryJobByArgs(args); - KitXlsxExportUtil.exportFile(response, "岗位数据", systemJobTbs, SystemJobExportRowVo.class, (dataObject) -> { - SystemJobExportRowVo rowVo = new SystemJobExportRowVo(); - rowVo.setName(dataObject.getName()); - rowVo.setEnabled(dataObject.getEnabled() ? "启用" : "停用"); - rowVo.setCreateTime(dataObject.getCreateTime()); - return CollUtil.newArrayList(rowVo); - }); + systemJobService.exportJobXlsx(response, args); } @ApiOperation("查询岗位") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java index fe4590dd..6bd3d93e 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java @@ -15,20 +15,15 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemLocalStorageTb; -import cn.odboy.system.dal.model.SystemLocalStorageExportRowVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.service.SystemLocalStorageService; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.io.IOException; -import java.util.List; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -63,9 +58,7 @@ public class SystemLocalStorageController { @GetMapping(value = "/download") @PreAuthorize("@el.check('storage:list')") public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) throws IOException { - List systemLocalStorageTbs = localStorageService.queryLocalStorageByArgs(args); - KitXlsxExportUtil.exportFile(response, "文件上传记录数据", systemLocalStorageTbs, SystemLocalStorageExportRowVo.class, - (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class))); + localStorageService.exportLocalStorageXlsx(response, args); } @ApiOperation("上传文件") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java index 09a1fa53..452acc3e 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java @@ -15,18 +15,14 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.system.constant.SystemYesOrNoChConst; import cn.odboy.system.dal.dataobject.SystemMenuTb; -import cn.odboy.system.dal.model.SystemMenuExportRowVo; import cn.odboy.system.dal.model.SystemMenuVo; import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.service.SystemMenuService; import cn.odboy.util.KitPageUtil; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -55,18 +51,7 @@ public class SystemMenuController { @GetMapping(value = "/download") @PreAuthorize("@el.check('menu:list')") public void exportMenu(HttpServletResponse response, SystemQueryMenuArgs args) throws Exception { - List systemMenuTbs = systemMenuService.queryAllMenu(args, false); - KitXlsxExportUtil.exportFile(response, "菜单数据", systemMenuTbs, SystemMenuExportRowVo.class, (dataObject -> { - SystemMenuExportRowVo rowVo = new SystemMenuExportRowVo(); - rowVo.setTitle(dataObject.getTitle()); - rowVo.setType(dataObject.getType() == null ? "目录" : dataObject.getType() == 1 ? "菜单" : "按钮"); - rowVo.setPermission(dataObject.getPermission()); - rowVo.setIFrame(dataObject.getIFrame() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); - rowVo.setHidden(dataObject.getHidden() ? SystemYesOrNoChConst.NO_STR : SystemYesOrNoChConst.YES_STR); - rowVo.setCache(dataObject.getCache() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); - rowVo.setCreateTime(dataObject.getCreateTime()); - return CollUtil.newArrayList(rowVo); - })); + systemMenuService.exportMenuXlsx(response, args); } @PostMapping(value = "/buildMenus") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java index 36f1479c..1b47c802 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java @@ -15,20 +15,14 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; -import cn.odboy.system.dal.model.SystemUserOnlineExportRowVo; import cn.odboy.system.dal.model.SystemUserOnlineVo; import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import java.io.IOException; -import java.util.List; import java.util.Set; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -61,10 +55,8 @@ public class SystemOnlineController { @ApiOperation("导出数据") @GetMapping(value = "/download") @PreAuthorize("@el.check()") - public void exportOnlineUser(HttpServletResponse response, String username) throws IOException { - List userOnlineVos = systemUserOnlineInfoDAO.queryUserOnlineModelListByUsername(username); - KitXlsxExportUtil.exportFile(response, "在线用户数据", userOnlineVos, SystemUserOnlineExportRowVo.class, - (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class))); + public void exportOnlineUser(HttpServletResponse response, String username) { + systemUserOnlineInfoDAO.exportOnlineUserXlsx(response, username); } @ApiOperation("踢出用户") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java index e92ccea5..0d391ba9 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java @@ -15,21 +15,16 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; -import cn.odboy.system.dal.model.SystemOssStorageExportRowVo; import cn.odboy.system.dal.model.SystemOssStorageVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.service.SystemOssStorageService; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.io.IOException; -import java.util.List; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -66,9 +61,7 @@ public class SystemOssStorageController { @GetMapping(value = "/download") @PreAuthorize("@el.check('storage:list')") public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) throws IOException { - List systemOssStorageVos = systemOssStorageService.queryOssStorage(args); - KitXlsxExportUtil.exportFile(response, "OSS文件上传记录数据", systemOssStorageVos, SystemOssStorageExportRowVo.class, - (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class))); + systemOssStorageService.exportOssStorageXlsx(response, args); } @ApiOperation("上传文件") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java index 3529fde9..48a136f6 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java @@ -15,22 +15,16 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; import cn.odboy.system.dal.dataobject.SystemQuartzLogTb; -import cn.odboy.system.dal.model.SystemQuartzJobExportRowVo; -import cn.odboy.system.dal.model.SystemQuartzLogExportRowVo; import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs; import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs; import cn.odboy.system.service.SystemQuartzJobService; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import java.io.IOException; -import java.util.List; import java.util.Set; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; @@ -67,42 +61,15 @@ public class SystemQuartzJobController { @ApiOperation("导出任务数据") @GetMapping(value = "/download") @PreAuthorize("@el.check('quartzJob:list')") - public void exportQuartzJob(HttpServletResponse response, SystemQueryQuartzJobArgs args) throws IOException { - List systemQuartzJobTbs = systemQuartzJobService.queryQuartzJobByArgs(args); - KitXlsxExportUtil.exportFile(response, "定时任务数据", systemQuartzJobTbs, SystemQuartzJobExportRowVo.class, - (dataObject) -> { - SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo(); - rowVo.setJobName(dataObject.getJobName()); - rowVo.setBeanName(dataObject.getBeanName()); - rowVo.setMethodName(dataObject.getMethodName()); - rowVo.setParams(dataObject.getParams()); - rowVo.setCronExpression(dataObject.getCronExpression()); - rowVo.setIsPause(dataObject.getIsPause() ? "暂停中" : "运行中"); - rowVo.setDescription(dataObject.getDescription()); - rowVo.setCreateTime(dataObject.getCreateTime()); - return CollUtil.newArrayList(rowVo); - }); + public void exportQuartzJob(HttpServletResponse response, SystemQueryQuartzJobArgs args) { + systemQuartzJobService.exportQuartzJobXlsx(response, args); } @ApiOperation("导出日志数据") @GetMapping(value = "/logs/download") @PreAuthorize("@el.check('quartzJob:list')") - public void exportQuartzJobLog(HttpServletResponse response, SystemQueryQuartzJobArgs args) throws IOException { - List systemQuartzLogTbs = systemQuartzJobService.queryQuartzLogByArgs(args); - KitXlsxExportUtil.exportFile(response, "定时任务日志数据", systemQuartzLogTbs, SystemQuartzLogExportRowVo.class, - (dataObject) -> { - SystemQuartzLogExportRowVo rowVo = new SystemQuartzLogExportRowVo(); - rowVo.setJobName(dataObject.getJobName()); - rowVo.setBeanName(dataObject.getBeanName()); - rowVo.setMethodName(dataObject.getMethodName()); - rowVo.setParams(dataObject.getParams()); - rowVo.setCronExpression(dataObject.getCronExpression()); - rowVo.setExceptionDetail(dataObject.getExceptionDetail()); - rowVo.setTime(dataObject.getTime()); - rowVo.setStatus(dataObject.getIsSuccess() ? "成功" : "失败"); - rowVo.setCreateTime(dataObject.getCreateTime()); - return CollUtil.newArrayList(rowVo); - }); + public void exportQuartzJobLog(HttpServletResponse response, SystemQueryQuartzJobArgs args) { + systemQuartzJobService.exportQuartzLogXlsx(response, args); } @ApiOperation("查询任务执行日志") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java index e0da40b6..36550e40 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java @@ -15,17 +15,14 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Dict; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.model.SystemCreateRoleArgs; import cn.odboy.system.dal.model.SystemQueryRoleArgs; -import cn.odboy.system.dal.model.SystemRoleExportRowVo; import cn.odboy.system.dal.model.SystemRoleVo; import cn.odboy.system.service.SystemRoleService; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -62,15 +59,7 @@ public class SystemRoleController { @GetMapping(value = "/download") @PreAuthorize("@el.check('role:list')") public void exportRole(HttpServletResponse response, SystemQueryRoleArgs args) throws IOException { - List systemRoleVos = systemRoleService.queryRoleByArgs(args); - KitXlsxExportUtil.exportFile(response, "角色数据", systemRoleVos, SystemRoleExportRowVo.class, (dataObject) -> { - SystemRoleExportRowVo rowVo = new SystemRoleExportRowVo(); - rowVo.setName(dataObject.getName()); - rowVo.setLevel(dataObject.getLevel()); - rowVo.setDescription(dataObject.getDescription()); - rowVo.setCreateTime(dataObject.getCreateTime()); - return CollUtil.newArrayList(rowVo); - }); + systemRoleService.exportRoleXlsx(response, args); } @ApiOperation("返回全部的角色") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java index 5de653d6..08a33d70 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java @@ -15,28 +15,20 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.base.KitSelectOptionVo; -import cn.odboy.system.constant.SystemZhConst; -import cn.odboy.system.dal.dataobject.SystemJobTb; -import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.SystemQueryUserArgs; import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs; -import cn.odboy.system.dal.model.SystemUserExportRowVo; import cn.odboy.system.dal.model.SystemUserVo; import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.service.SystemUserService; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import java.io.IOException; import java.util.List; import java.util.Set; -import java.util.stream.Collectors; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -63,21 +55,8 @@ public class SystemUserController { @ApiOperation("导出用户数据") @GetMapping(value = "/download") @PreAuthorize("@el.check('user:list')") - public void exportUserExcel(HttpServletResponse response, SystemQueryUserArgs args) throws IOException { - List systemUserVos = systemUserService.queryUserVoByArgs(args); - KitXlsxExportUtil.exportFile(response, "用户数据", systemUserVos, SystemUserExportRowVo.class, (dataObject) -> { - SystemUserExportRowVo rowVo = new SystemUserExportRowVo(); - rowVo.setUsername(dataObject.getUsername()); - rowVo.setRoles(dataObject.getRoles().stream().map(SystemRoleTb::getName).collect(Collectors.joining(","))); - rowVo.setDept(dataObject.getDept().getName()); - rowVo.setJobs(dataObject.getJobs().stream().map(SystemJobTb::getName).collect(Collectors.joining(","))); - rowVo.setEmail(dataObject.getEmail()); - rowVo.setStatus(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); - rowVo.setMobile(dataObject.getPhone()); - rowVo.setUpdatePwdTime(dataObject.getPwdResetTime()); - rowVo.setCreateTime(dataObject.getCreateTime()); - return CollUtil.newArrayList(rowVo); - }); + public void exportUserExcel(HttpServletResponse response, SystemQueryUserArgs args) { + systemUserService.exportUserXlsx(response, args); } @ApiOperation("查询用户") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDictExportRowVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDictExportRowVo.java index 872990e6..c91c290c 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDictExportRowVo.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDictExportRowVo.java @@ -9,6 +9,7 @@ import lombok.Setter; @Getter @Setter public class SystemDictExportRowVo extends KitObject { + @ExcelProperty("字典名称") private String name; @ExcelProperty("字典描述") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzLogExportRowVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzLogExportRowVo.java index 4be2d0e4..d78de3c1 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzLogExportRowVo.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzLogExportRowVo.java @@ -9,6 +9,7 @@ import lombok.Setter; @Getter @Setter public class SystemQuartzLogExportRowVo extends KitObject { + @ExcelProperty("任务名称") private String jobName; @ExcelProperty("Bean名称") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemRoleExportRowVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemRoleExportRowVo.java index 5fde2e02..b8c95352 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemRoleExportRowVo.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemRoleExportRowVo.java @@ -9,6 +9,7 @@ import lombok.Setter; @Getter @Setter public class SystemRoleExportRowVo extends KitObject { + @ExcelProperty("角色名称") private String name; @ExcelProperty("角色级别") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSendEmailArgs.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSendEmailArgs.java index 76670629..57af4839 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSendEmailArgs.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSendEmailArgs.java @@ -16,9 +16,9 @@ package cn.odboy.system.dal.model; import io.swagger.annotations.ApiModelProperty; +import java.util.List; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; -import java.util.List; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java index 90255f44..f4bc0676 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java @@ -1,5 +1,6 @@ package cn.odboy.system.dal.redis; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; import cn.odboy.framework.properties.AppProperties; @@ -12,9 +13,8 @@ import cn.odboy.util.KitDesEncryptUtil; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitIPUtil; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.metadata.IPage; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -24,6 +24,8 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -166,4 +168,12 @@ public class SystemUserOnlineInfoDAO { this.logoutByToken(token); } } + + public void exportOnlineUserXlsx(HttpServletResponse response, String username) { + List userOnlineVos = this.queryUserOnlineModelListByUsername(username); +// KitXlsxExportUtil.exportFile(response, "在线用户数据", userOnlineVos, SystemUserOnlineExportRowVo.class, +// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class))); + List rowVos = BeanUtil.copyToList(userOnlineVos, SystemUserOnlineVo.class); + KitExcelExporter.exportSimple(response, "在线用户数据", SystemUserOnlineVo.class, rowVos); + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java index fb63b5b9..62868016 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java @@ -23,14 +23,17 @@ import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.constant.SystemDataScopeEnum; +import cn.odboy.system.constant.SystemZhConst; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.model.SystemCreateDeptArgs; +import cn.odboy.system.dal.model.SystemDeptExportRowVo; import cn.odboy.system.dal.model.SystemProductLineTreeVo; import cn.odboy.system.dal.model.SystemProductLineVo; import cn.odboy.system.dal.model.SystemQueryDeptArgs; import cn.odboy.system.dal.mysql.SystemDeptMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.util.KitClassUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import java.lang.reflect.Field; import java.util.ArrayList; @@ -43,6 +46,7 @@ import java.util.Map; import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -464,4 +468,24 @@ public class SystemDeptService { wrapper.eq(SystemDeptTb::getPid, pid); return systemDeptMapper.selectList(wrapper); } + + public void exportDeptXlsx(HttpServletResponse response, SystemQueryDeptArgs args) throws Exception { + List systemDeptTbs = this.queryAllDeptByArgs(args, false); +// KitXlsxExportUtil.exportFile(response, "部门数据", systemDeptTbs, SystemDeptExportRowVo.class, (dataObject) -> { +// SystemDeptExportRowVo rowVo = new SystemDeptExportRowVo(); +// rowVo.setName(dataObject.getName()); +// rowVo.setEnabled(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); + List rowVos = new ArrayList<>(); + for (SystemDeptTb dataObject : systemDeptTbs) { + SystemDeptExportRowVo rowVo = new SystemDeptExportRowVo(); + rowVo.setName(dataObject.getName()); + rowVo.setEnabled(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "部门数据", SystemDeptExportRowVo.class, rowVos); + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java index de4be192..86df8fff 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java @@ -16,17 +16,23 @@ package cn.odboy.system.service; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictTb; import cn.odboy.system.dal.model.SystemCreateDictArgs; +import cn.odboy.system.dal.model.SystemDictDetailVo; +import cn.odboy.system.dal.model.SystemDictExportRowVo; import cn.odboy.system.dal.model.SystemQueryDictArgs; import cn.odboy.system.dal.mysql.SystemDictMapper; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import java.util.ArrayList; import java.util.List; import java.util.Set; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -101,4 +107,55 @@ public class SystemDictService { injectQueryParams(args, wrapper); return systemDictMapper.selectList(wrapper); } + + public void exportDictXlsx(HttpServletResponse response, SystemQueryDictArgs args) { + List systemDictTbs = this.queryDictByArgs(args); +// KitXlsxExportUtil.exportFile(response, "字典数据", systemDictTbs, SystemDictExportRowVo.class, (dataObject) -> { +// List dictDetails = systemDictDetailService.listDictDetailByName(dataObject.getName()); +// if (CollUtil.isEmpty(dictDetails)) { +// SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); +// rowVo.setName(dataObject.getName()); +// rowVo.setDescription(dataObject.getDescription()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// rowVo.setLabel(""); +// rowVo.setValue(""); +// return CollUtil.newArrayList(rowVo); +// } +// List rowVos = new ArrayList<>(); +// for (SystemDictDetailVo dictDetail : dictDetails) { +// SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); +// rowVo.setName(dataObject.getName()); +// rowVo.setDescription(dataObject.getDescription()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// rowVo.setLabel(dictDetail.getLabel()); +// rowVo.setValue(dictDetail.getValue()); +// rowVos.add(rowVo); +// } +// return rowVos; +// }); + List rowVos = new ArrayList<>(); + for (SystemDictTb dataObject : systemDictTbs) { + List dictDetails = systemDictDetailService.listDictDetailByName(dataObject.getName()); + if (CollUtil.isEmpty(dictDetails)) { + SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); + rowVo.setName(dataObject.getName()); + rowVo.setDescription(dataObject.getDescription()); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVo.setLabel(""); + rowVo.setValue(""); + rowVos.add(rowVo); + continue; + } + for (SystemDictDetailVo dictDetail : dictDetails) { + SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); + rowVo.setName(dataObject.getName()); + rowVo.setDescription(dataObject.getDescription()); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVo.setLabel(dictDetail.getLabel()); + rowVo.setValue(dictDetail.getValue()); + rowVos.add(rowVo); + } + } + KitExcelExporter.exportSimple(response, "字典数据", SystemDictExportRowVo.class, rowVos); + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java index 10f2aef6..aefd4680 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java @@ -22,13 +22,17 @@ import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.model.SystemCreateJobArgs; +import cn.odboy.system.dal.model.SystemJobExportRowVo; import cn.odboy.system.dal.model.SystemQueryJobArgs; import cn.odboy.system.dal.mysql.SystemJobMapper; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import java.util.ArrayList; import java.util.List; import java.util.Set; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -133,4 +137,24 @@ public class SystemJobService { } wrapper.orderByDesc(SystemJobTb::getJobSort, SystemJobTb::getId); } + + public void exportJobXlsx(HttpServletResponse response, SystemQueryJobArgs args) { + List systemJobTbs = this.queryJobByArgs(args); +// KitXlsxExportUtil.exportFile(response, "岗位数据", systemJobTbs, SystemJobExportRowVo.class, (dataObject) -> { +// SystemJobExportRowVo rowVo = new SystemJobExportRowVo(); +// rowVo.setName(dataObject.getName()); +// rowVo.setEnabled(dataObject.getEnabled() ? "启用" : "停用"); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); + List rowVos = new ArrayList<>(); + for (SystemJobTb dataObject : systemJobTbs) { + SystemJobExportRowVo rowVo = new SystemJobExportRowVo(); + rowVo.setName(dataObject.getName()); + rowVo.setEnabled(dataObject.getEnabled() ? "启用" : "停用"); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "岗位数据", SystemJobExportRowVo.class, rowVos); + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java index 7ab48037..d5b19dfb 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java @@ -15,6 +15,7 @@ */ package cn.odboy.system.service; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; @@ -27,15 +28,18 @@ import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.dal.dataobject.SystemLocalStorageTb; +import cn.odboy.system.dal.model.SystemLocalStorageExportRowVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.mysql.SystemLocalStorageMapper; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.io.File; import java.util.Date; import java.util.List; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -164,4 +168,12 @@ public class SystemLocalStorageService { } return KitSpringBeanHolder.getBean(SystemLocalStorageService.class).uploadFile(null, file); } + + public void exportLocalStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) { + List systemLocalStorageTbs = this.queryLocalStorageByArgs(args); +// KitXlsxExportUtil.exportFile(response, "文件上传记录数据", systemLocalStorageTbs, SystemLocalStorageExportRowVo.class, +// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class))); + List rowVos = BeanUtil.copyToList(systemLocalStorageTbs, SystemLocalStorageExportRowVo.class); + KitExcelExporter.exportSimple(response, "文件上传记录数据", SystemLocalStorageExportRowVo.class, rowVos); + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java index 7e560ee8..5cc8f48f 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java @@ -21,10 +21,12 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; +import cn.odboy.system.constant.SystemYesOrNoChConst; import cn.odboy.system.constant.TransferProtocolConst; import cn.odboy.system.dal.dataobject.SystemMenuTb; import cn.odboy.system.dal.dataobject.SystemRoleMenuTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; +import cn.odboy.system.dal.model.SystemMenuExportRowVo; import cn.odboy.system.dal.model.SystemMenuMetaVo; import cn.odboy.system.dal.model.SystemMenuVo; import cn.odboy.system.dal.model.SystemQueryMenuArgs; @@ -33,6 +35,7 @@ import cn.odboy.system.dal.mysql.SystemMenuMapper; import cn.odboy.system.dal.mysql.SystemRoleMenuMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.util.KitClassUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import java.lang.reflect.Field; @@ -44,6 +47,7 @@ import java.util.List; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -464,4 +468,32 @@ public class SystemMenuService { } return systemMenuTbs; } + + public void exportMenuXlsx(HttpServletResponse response, SystemQueryMenuArgs args) throws Exception { + List systemMenuTbs = this.queryAllMenu(args, false); +// KitXlsxExportUtil.exportFile(response, "菜单数据", systemMenuTbs, SystemMenuExportRowVo.class, (dataObject -> { +// SystemMenuExportRowVo rowVo = new SystemMenuExportRowVo(); +// rowVo.setTitle(dataObject.getTitle()); +// rowVo.setType(dataObject.getType() == null ? "目录" : dataObject.getType() == 1 ? "菜单" : "按钮"); +// rowVo.setPermission(dataObject.getPermission()); +// rowVo.setIFrame(dataObject.getIFrame() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); +// rowVo.setHidden(dataObject.getHidden() ? SystemYesOrNoChConst.NO_STR : SystemYesOrNoChConst.YES_STR); +// rowVo.setCache(dataObject.getCache() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// })); + List rowVos = new ArrayList<>(); + for (SystemMenuTb dataObject : systemMenuTbs) { + SystemMenuExportRowVo rowVo = new SystemMenuExportRowVo(); + rowVo.setTitle(dataObject.getTitle()); + rowVo.setType(dataObject.getType() == null ? "目录" : dataObject.getType() == 1 ? "菜单" : "按钮"); + rowVo.setPermission(dataObject.getPermission()); + rowVo.setIFrame(dataObject.getIFrame() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); + rowVo.setHidden(dataObject.getHidden() ? SystemYesOrNoChConst.NO_STR : SystemYesOrNoChConst.YES_STR); + rowVo.setCache(dataObject.getCache() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "菜单数据", SystemMenuExportRowVo.class, rowVos); + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java index 68069417..e0bf5d71 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java @@ -21,7 +21,6 @@ import cn.odboy.system.dal.model.SystemOssStorageVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import java.io.IOException; import java.util.List; import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.multipart.MultipartFile; @@ -40,9 +39,9 @@ public interface SystemOssStorageService extends IService { List queryOssStorage(SystemQueryStorageArgs args); - void exportOssStorageExcel(List list, HttpServletResponse response) throws IOException; - String uploadFile(MultipartFile file); void deleteFileByIds(Long[] ids); + + void exportOssStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args); } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java index 2ff2c21c..bed1e10a 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java @@ -25,17 +25,22 @@ import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; import cn.odboy.system.dal.dataobject.SystemQuartzLogTb; +import cn.odboy.system.dal.model.SystemQuartzJobExportRowVo; +import cn.odboy.system.dal.model.SystemQuartzLogExportRowVo; import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs; import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs; import cn.odboy.system.dal.mysql.SystemQuartzJobMapper; import cn.odboy.system.dal.mysql.SystemQuartzLogMapper; import cn.odboy.system.framework.quartz.QuartzManage; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Set; +import jakarta.servlet.http.HttpServletResponse; import org.quartz.CronExpression; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -274,4 +279,68 @@ public class SystemQuartzJobService { wrapper.eq(SystemQuartzJobTb::getIsPause, 0); return systemQuartzJobMapper.selectList(wrapper); } + + public void exportQuartzJobXlsx(HttpServletResponse response, SystemQueryQuartzJobArgs args) { + List systemQuartzJobTbs = this.queryQuartzJobByArgs(args); +// KitXlsxExportUtil.exportFile(response, "定时任务数据", systemQuartzJobTbs, SystemQuartzJobExportRowVo.class, +// (dataObject) -> { +// SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo(); +// rowVo.setJobName(dataObject.getJobName()); +// rowVo.setBeanName(dataObject.getBeanName()); +// rowVo.setMethodName(dataObject.getMethodName()); +// rowVo.setParams(dataObject.getParams()); +// rowVo.setCronExpression(dataObject.getCronExpression()); +// rowVo.setIsPause(dataObject.getIsPause() ? "暂停中" : "运行中"); +// rowVo.setDescription(dataObject.getDescription()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); + List rowVos = new ArrayList<>(); + for (SystemQuartzJobTb dataObject : systemQuartzJobTbs) { + SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo(); + rowVo.setJobName(dataObject.getJobName()); + rowVo.setBeanName(dataObject.getBeanName()); + rowVo.setMethodName(dataObject.getMethodName()); + rowVo.setParams(dataObject.getParams()); + rowVo.setCronExpression(dataObject.getCronExpression()); + rowVo.setIsPause(dataObject.getIsPause() ? "暂停中" : "运行中"); + rowVo.setDescription(dataObject.getDescription()); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "定时任务数据", SystemQuartzJobExportRowVo.class, rowVos); + } + + public void exportQuartzLogXlsx(HttpServletResponse response, SystemQueryQuartzJobArgs args) { + List systemQuartzLogTbs = this.queryQuartzLogByArgs(args); +// KitXlsxExportUtil.exportFile(response, "定时任务日志数据", systemQuartzLogTbs, SystemQuartzLogExportRowVo.class, +// (dataObject) -> { +// SystemQuartzLogExportRowVo rowVo = new SystemQuartzLogExportRowVo(); +// rowVo.setJobName(dataObject.getJobName()); +// rowVo.setBeanName(dataObject.getBeanName()); +// rowVo.setMethodName(dataObject.getMethodName()); +// rowVo.setParams(dataObject.getParams()); +// rowVo.setCronExpression(dataObject.getCronExpression()); +// rowVo.setExceptionDetail(dataObject.getExceptionDetail()); +// rowVo.setTime(dataObject.getTime()); +// rowVo.setStatus(dataObject.getIsSuccess() ? "成功" : "失败"); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); + List rowVos = new ArrayList<>(); + for (SystemQuartzLogTb dataObject : systemQuartzLogTbs) { + SystemQuartzLogExportRowVo rowVo = new SystemQuartzLogExportRowVo(); + rowVo.setJobName(dataObject.getJobName()); + rowVo.setBeanName(dataObject.getBeanName()); + rowVo.setMethodName(dataObject.getMethodName()); + rowVo.setParams(dataObject.getParams()); + rowVo.setCronExpression(dataObject.getCronExpression()); + rowVo.setExceptionDetail(dataObject.getExceptionDetail()); + rowVo.setTime(dataObject.getTime()); + rowVo.setStatus(dataObject.getIsSuccess() ? "成功" : "失败"); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "定时任务日志数据", SystemQuartzLogExportRowVo.class, rowVos); + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java index 35ca3fe0..7092377c 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java @@ -28,17 +28,21 @@ import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.SystemCreateRoleArgs; import cn.odboy.system.dal.model.SystemQueryRoleArgs; import cn.odboy.system.dal.model.SystemRoleCodeVo; +import cn.odboy.system.dal.model.SystemRoleExportRowVo; import cn.odboy.system.dal.model.SystemRoleVo; import cn.odboy.system.dal.mysql.SystemRoleMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -271,4 +275,26 @@ public class SystemRoleService { } return min; } + + public void exportRoleXlsx(HttpServletResponse response, SystemQueryRoleArgs args) { + List systemRoleVos = this.queryRoleByArgs(args); +// KitXlsxExportUtil.exportFile(response, "角色数据", systemRoleVos, SystemRoleExportRowVo.class, (dataObject) -> { +// SystemRoleExportRowVo rowVo = new SystemRoleExportRowVo(); +// rowVo.setName(dataObject.getName()); +// rowVo.setLevel(dataObject.getLevel()); +// rowVo.setDescription(dataObject.getDescription()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); + List rowVos = new ArrayList<>(); + for (SystemRoleVo dataObject : systemRoleVos) { + SystemRoleExportRowVo rowVo = new SystemRoleExportRowVo(); + rowVo.setName(dataObject.getName()); + rowVo.setLevel(dataObject.getLevel()); + rowVo.setDescription(dataObject.getDescription()); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "部门数据", SystemRoleExportRowVo.class, rowVos); + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java index 213422bf..67e11fe4 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java @@ -26,6 +26,7 @@ import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.constant.SystemCaptchaBizEnum; +import cn.odboy.system.constant.SystemZhConst; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; @@ -34,6 +35,7 @@ import cn.odboy.system.dal.dataobject.SystemUserRoleTb; import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.SystemQueryUserArgs; import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs; +import cn.odboy.system.dal.model.SystemUserExportRowVo; import cn.odboy.system.dal.model.SystemUserVo; import cn.odboy.system.dal.mysql.SystemDeptMapper; import cn.odboy.system.dal.mysql.SystemJobMapper; @@ -47,10 +49,12 @@ import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitRsaEncryptUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.io.File; +import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashSet; @@ -59,6 +63,7 @@ import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; @@ -348,18 +353,23 @@ public class SystemUserService { return KitPageUtil.toPage(userVos, userPage.getTotal()); } - /** - * 查询全部不分页 - * - * @param args 条件 - * @return / - */ - public List queryUserVoByArgs(SystemQueryUserArgs args) { - // 查询用户基本信息 +// /** +// * 查询全部不分页 +// * +// * @param args 条件 +// * @return / +// */ +// public List queryUserVoByArgs(SystemQueryUserArgs args) { +// // 查询用户基本信息 +// LambdaQueryWrapper wrapper = buildUserQueryWrapper(args); +// List users = systemUserMapper.selectList(wrapper); +// // 转换为SystemUserVo并关联查询 +// return users.stream().map(this::convertToUserVo).collect(Collectors.toList()); +// } + + public long countUserByArgs(SystemQueryUserArgs args) { LambdaQueryWrapper wrapper = buildUserQueryWrapper(args); - List users = systemUserMapper.selectList(wrapper); - // 转换为SystemUserVo并关联查询 - return users.stream().map(this::convertToUserVo).collect(Collectors.toList()); + return systemUserMapper.selectCount(wrapper); } /** @@ -544,4 +554,55 @@ public class SystemUserService { } return KitPageUtil.emptyData(); } + + public void exportUserXlsx(HttpServletResponse response, SystemQueryUserArgs args) { + // List systemUserVos = systemUserService.queryUserVoByArgs(args); +// KitXlsxExportUtil.exportFile(response, "用户数据", systemUserVos, SystemUserExportRowVo.class, (dataObject) -> { +// SystemUserExportRowVo rowVo = new SystemUserExportRowVo(); +// rowVo.setUsername(dataObject.getUsername()); +// rowVo.setRoles(dataObject.getRoles().stream().map(SystemRoleTb::getName).collect(Collectors.joining(","))); +// rowVo.setDept(dataObject.getDept().getName()); +// rowVo.setJobs(dataObject.getJobs().stream().map(SystemJobTb::getName).collect(Collectors.joining(","))); +// rowVo.setEmail(dataObject.getEmail()); +// rowVo.setStatus(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); +// rowVo.setMobile(dataObject.getPhone()); +// rowVo.setUpdatePwdTime(dataObject.getPwdResetTime()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); +// List rowVos = new ArrayList<>(); +// for (SystemUserVo dataObject : systemUserVos) { +// SystemUserExportRowVo rowVo = new SystemUserExportRowVo(); +// rowVo.setUsername(dataObject.getUsername()); +// rowVo.setRoles(dataObject.getRoles().stream().map(SystemRoleTb::getName).collect(Collectors.joining(","))); +// rowVo.setDept(dataObject.getDept().getName()); +// rowVo.setJobs(dataObject.getJobs().stream().map(SystemJobTb::getName).collect(Collectors.joining(","))); +// rowVo.setEmail(dataObject.getEmail()); +// rowVo.setStatus(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); +// rowVo.setMobile(dataObject.getPhone()); +// rowVo.setUpdatePwdTime(dataObject.getPwdResetTime()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// rowVos.add(rowVo); +// } +// KitExcelExporter.exportSimple(response, "用户数据", SystemUserExportRowVo.class, rowVos); + long totalCount = this.countUserByArgs(args); + KitExcelExporter.exportByPage(response, "用户数据", SystemUserExportRowVo.class, totalCount, (long pageNum, long pageSize) -> { + KitPageResult pageResult = this.searchUserByArgs(args, new Page<>(pageNum, pageSize)); + List rowVos = new ArrayList<>(); + for (SystemUserVo dataObject : pageResult.getContent()) { + SystemUserExportRowVo rowVo = new SystemUserExportRowVo(); + rowVo.setUsername(dataObject.getUsername()); + rowVo.setRoles(dataObject.getRoles().stream().map(SystemRoleTb::getName).collect(Collectors.joining(","))); + rowVo.setDept(dataObject.getDept().getName()); + rowVo.setJobs(dataObject.getJobs().stream().map(SystemJobTb::getName).collect(Collectors.joining(","))); + rowVo.setEmail(dataObject.getEmail()); + rowVo.setStatus(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); + rowVo.setMobile(dataObject.getPhone()); + rowVo.setUpdatePwdTime(dataObject.getPwdResetTime()); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + return rowVos; + }); + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java index 52aba54a..4fdd02be 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java @@ -24,6 +24,7 @@ import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.properties.model.StorageOSSModel; import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; +import cn.odboy.system.dal.model.SystemOssStorageExportRowVo; import cn.odboy.system.dal.model.SystemOssStorageVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.mysql.SystemOssStorageMapper; @@ -32,16 +33,13 @@ import cn.odboy.system.service.SystemOssStorageService; import cn.odboy.util.KitDateUtil; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -106,25 +104,6 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl ossStorages, HttpServletResponse response) - throws IOException { - List> list = new ArrayList<>(); - for (SystemOssStorageVo ossStorage : ossStorages) { - Map map = new LinkedHashMap<>(); - map.put("服务类型", ossStorage.getServiceType()); - map.put("服务地址", ossStorage.getEndpoint()); - map.put("存储桶名称", ossStorage.getBucketName()); - map.put("文件名称", ossStorage.getFileName()); - map.put("文件大小", ossStorage.getFileSizeDesc()); - map.put("文件类型", ossStorage.getFileMime()); - map.put("创建人", ossStorage.getCreateBy()); - map.put("创建日期", ossStorage.getCreateTime()); - list.add(map); - } - KitFileUtil.downloadExcel(list, response); - } - @Override @Transactional(rollbackFor = Exception.class) public String uploadFile(MultipartFile file) { @@ -174,6 +153,15 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl systemOssStorageVos = this.queryOssStorage(args); +// KitXlsxExportUtil.exportFile(response, "OSS文件上传记录数据", systemOssStorageVos, SystemOssStorageExportRowVo.class, +// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class))); + List rowVos = BeanUtil.copyToList(systemOssStorageVos, SystemOssStorageExportRowVo.class); + KitExcelExporter.exportSimple(response, "OSS文件上传记录数据", SystemOssStorageExportRowVo.class, rowVos); + } + private SystemOssStorageTb getOssStorageByMd5(String md5) { return lambdaQuery().eq(SystemOssStorageTb::getFileMd5, md5).one(); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/constant/SystemYesOrNoChConst.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/constant/SystemYesOrNoChConst.java index 25ab481c..d1e17789 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/constant/SystemYesOrNoChConst.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/constant/SystemYesOrNoChConst.java @@ -1,6 +1,7 @@ package cn.odboy.system.constant; public interface SystemYesOrNoChConst { + String YES_STR = "是"; String NO_STR = "否"; } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java index 71040639..580252f7 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java @@ -17,17 +17,13 @@ package cn.odboy.system.controller; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; -import cn.odboy.system.constant.SystemZhConst; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.model.SystemCreateDeptArgs; -import cn.odboy.system.dal.model.SystemDeptExportRowVo; import cn.odboy.system.dal.model.SystemQueryDeptArgs; import cn.odboy.system.service.SystemDeptService; import cn.odboy.util.KitPageUtil; -import cn.odboy.util.xlsx.KitExcelExporter; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import java.util.ArrayList; import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletResponse; @@ -54,23 +50,7 @@ public class SystemDeptController { @GetMapping(value = "/download") @PreAuthorize("@el.check('dept:list')") public void exportDept(HttpServletResponse response, SystemQueryDeptArgs args) throws Exception { - List systemDeptTbs = systemDeptService.queryAllDeptByArgs(args, false); -// KitXlsxExportUtil.exportFile(response, "部门数据", systemDeptTbs, SystemDeptExportRowVo.class, (dataObject) -> { -// SystemDeptExportRowVo rowVo = new SystemDeptExportRowVo(); -// rowVo.setName(dataObject.getName()); -// rowVo.setEnabled(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); -// rowVo.setCreateTime(dataObject.getCreateTime()); -// return CollUtil.newArrayList(rowVo); -// }); - List rowVos = new ArrayList<>(); - for (SystemDeptTb dataObject : systemDeptTbs) { - SystemDeptExportRowVo rowVo = new SystemDeptExportRowVo(); - rowVo.setName(dataObject.getName()); - rowVo.setEnabled(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); - rowVo.setCreateTime(dataObject.getCreateTime()); - rowVos.add(rowVo); - } - KitExcelExporter.exportSimple(response, "部门数据", SystemDeptExportRowVo.class, rowVos); + systemDeptService.exportDeptXlsx(response, args); } @ApiOperation("查询部门") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java index f00e62c5..9d184b96 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java @@ -15,22 +15,17 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictTb; import cn.odboy.system.dal.model.SystemCreateDictArgs; -import cn.odboy.system.dal.model.SystemDictDetailVo; -import cn.odboy.system.dal.model.SystemDictExportRowVo; import cn.odboy.system.dal.model.SystemQueryDictArgs; import cn.odboy.system.service.SystemDictDetailService; import cn.odboy.system.service.SystemDictService; -import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletResponse; @@ -58,54 +53,7 @@ public class SystemDictController { @GetMapping(value = "/download") @PreAuthorize("@el.check('dict:list')") public void exportDict(HttpServletResponse response, SystemQueryDictArgs args) throws IOException { - List systemDictTbs = systemDictService.queryDictByArgs(args); -// KitXlsxExportUtil.exportFile(response, "字典数据", systemDictTbs, SystemDictExportRowVo.class, (dataObject) -> { -// List dictDetails = systemDictDetailService.listDictDetailByName(dataObject.getName()); -// if (CollUtil.isEmpty(dictDetails)) { -// SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); -// rowVo.setName(dataObject.getName()); -// rowVo.setDescription(dataObject.getDescription()); -// rowVo.setCreateTime(dataObject.getCreateTime()); -// rowVo.setLabel(""); -// rowVo.setValue(""); -// return CollUtil.newArrayList(rowVo); -// } -// List rowVos = new ArrayList<>(); -// for (SystemDictDetailVo dictDetail : dictDetails) { -// SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); -// rowVo.setName(dataObject.getName()); -// rowVo.setDescription(dataObject.getDescription()); -// rowVo.setCreateTime(dataObject.getCreateTime()); -// rowVo.setLabel(dictDetail.getLabel()); -// rowVo.setValue(dictDetail.getValue()); -// rowVos.add(rowVo); -// } -// return rowVos; -// }); - List rowVos = new ArrayList<>(); - for (SystemDictTb dataObject : systemDictTbs) { - List dictDetails = systemDictDetailService.listDictDetailByName(dataObject.getName()); - if (CollUtil.isEmpty(dictDetails)) { - SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); - rowVo.setName(dataObject.getName()); - rowVo.setDescription(dataObject.getDescription()); - rowVo.setCreateTime(dataObject.getCreateTime()); - rowVo.setLabel(""); - rowVo.setValue(""); - rowVos.add(rowVo); - continue; - } - for (SystemDictDetailVo dictDetail : dictDetails) { - SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); - rowVo.setName(dataObject.getName()); - rowVo.setDescription(dataObject.getDescription()); - rowVo.setCreateTime(dataObject.getCreateTime()); - rowVo.setLabel(dictDetail.getLabel()); - rowVo.setValue(dictDetail.getValue()); - rowVos.add(rowVo); - } - } - KitExcelExporter.exportSimple(response, "字典数据", SystemDictExportRowVo.class, rowVos); + systemDictService.exportDictXlsx(response, args); } @ApiOperation("查询字典") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java index 4563f991..8995aae7 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java @@ -19,16 +19,12 @@ import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.model.SystemCreateJobArgs; -import cn.odboy.system.dal.model.SystemJobExportRowVo; import cn.odboy.system.dal.model.SystemQueryJobArgs; import cn.odboy.system.service.SystemJobService; -import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -53,23 +49,7 @@ public class SystemJobController { @GetMapping(value = "/download") @PreAuthorize("@el.check('job:list')") public void exportJob(HttpServletResponse response, SystemQueryJobArgs args) throws IOException { - List systemJobTbs = systemJobService.queryJobByArgs(args); -// KitXlsxExportUtil.exportFile(response, "岗位数据", systemJobTbs, SystemJobExportRowVo.class, (dataObject) -> { -// SystemJobExportRowVo rowVo = new SystemJobExportRowVo(); -// rowVo.setName(dataObject.getName()); -// rowVo.setEnabled(dataObject.getEnabled() ? "启用" : "停用"); -// rowVo.setCreateTime(dataObject.getCreateTime()); -// return CollUtil.newArrayList(rowVo); -// }); - List rowVos = new ArrayList<>(); - for (SystemJobTb dataObject : systemJobTbs) { - SystemJobExportRowVo rowVo = new SystemJobExportRowVo(); - rowVo.setName(dataObject.getName()); - rowVo.setEnabled(dataObject.getEnabled() ? "启用" : "停用"); - rowVo.setCreateTime(dataObject.getCreateTime()); - rowVos.add(rowVo); - } - KitExcelExporter.exportSimple(response, "岗位数据", SystemJobExportRowVo.class, rowVos); + systemJobService.exportJobXlsx(response, args); } @ApiOperation("查询岗位") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java index 25b4196d..172a5d6e 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java @@ -15,19 +15,15 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.bean.BeanUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemLocalStorageTb; -import cn.odboy.system.dal.model.SystemLocalStorageExportRowVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.service.SystemLocalStorageService; -import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.io.IOException; -import java.util.List; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -62,11 +58,7 @@ public class SystemLocalStorageController { @GetMapping(value = "/download") @PreAuthorize("@el.check('storage:list')") public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) throws IOException { - List systemLocalStorageTbs = localStorageService.queryLocalStorageByArgs(args); -// KitXlsxExportUtil.exportFile(response, "文件上传记录数据", systemLocalStorageTbs, SystemLocalStorageExportRowVo.class, -// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class))); - List rowVos = BeanUtil.copyToList(systemLocalStorageTbs, SystemLocalStorageExportRowVo.class); - KitExcelExporter.exportSimple(response, "文件上传记录数据", SystemLocalStorageExportRowVo.class, rowVos); + localStorageService.exportLocalStorageXlsx(response, args); } @ApiOperation("上传文件") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java index 50d672b2..1dea13cb 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java @@ -18,17 +18,13 @@ package cn.odboy.system.controller; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.system.constant.SystemYesOrNoChConst; import cn.odboy.system.dal.dataobject.SystemMenuTb; -import cn.odboy.system.dal.model.SystemMenuExportRowVo; import cn.odboy.system.dal.model.SystemMenuVo; import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.service.SystemMenuService; import cn.odboy.util.KitPageUtil; -import cn.odboy.util.xlsx.KitExcelExporter; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import java.util.ArrayList; import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletResponse; @@ -55,31 +51,7 @@ public class SystemMenuController { @GetMapping(value = "/download") @PreAuthorize("@el.check('menu:list')") public void exportMenu(HttpServletResponse response, SystemQueryMenuArgs args) throws Exception { - List systemMenuTbs = systemMenuService.queryAllMenu(args, false); -// KitXlsxExportUtil.exportFile(response, "菜单数据", systemMenuTbs, SystemMenuExportRowVo.class, (dataObject -> { -// SystemMenuExportRowVo rowVo = new SystemMenuExportRowVo(); -// rowVo.setTitle(dataObject.getTitle()); -// rowVo.setType(dataObject.getType() == null ? "目录" : dataObject.getType() == 1 ? "菜单" : "按钮"); -// rowVo.setPermission(dataObject.getPermission()); -// rowVo.setIFrame(dataObject.getIFrame() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); -// rowVo.setHidden(dataObject.getHidden() ? SystemYesOrNoChConst.NO_STR : SystemYesOrNoChConst.YES_STR); -// rowVo.setCache(dataObject.getCache() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); -// rowVo.setCreateTime(dataObject.getCreateTime()); -// return CollUtil.newArrayList(rowVo); -// })); - List rowVos = new ArrayList<>(); - for (SystemMenuTb dataObject : systemMenuTbs) { - SystemMenuExportRowVo rowVo = new SystemMenuExportRowVo(); - rowVo.setTitle(dataObject.getTitle()); - rowVo.setType(dataObject.getType() == null ? "目录" : dataObject.getType() == 1 ? "菜单" : "按钮"); - rowVo.setPermission(dataObject.getPermission()); - rowVo.setIFrame(dataObject.getIFrame() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); - rowVo.setHidden(dataObject.getHidden() ? SystemYesOrNoChConst.NO_STR : SystemYesOrNoChConst.YES_STR); - rowVo.setCache(dataObject.getCache() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); - rowVo.setCreateTime(dataObject.getCreateTime()); - rowVos.add(rowVo); - } - KitExcelExporter.exportSimple(response, "菜单数据", SystemMenuExportRowVo.class, rowVos); + systemMenuService.exportMenuXlsx(response, args); } @PostMapping(value = "/buildMenus") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java index 01258426..0421ac23 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java @@ -15,22 +15,14 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; -import cn.odboy.system.dal.model.SystemLocalStorageExportRowVo; -import cn.odboy.system.dal.model.SystemUserOnlineExportRowVo; import cn.odboy.system.dal.model.SystemUserOnlineVo; import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; -import cn.odboy.util.xlsx.KitExcelExporter; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import java.io.IOException; -import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -63,12 +55,8 @@ public class SystemOnlineController { @ApiOperation("导出数据") @GetMapping(value = "/download") @PreAuthorize("@el.check()") - public void exportOnlineUser(HttpServletResponse response, String username) throws IOException { - List userOnlineVos = systemUserOnlineInfoDAO.queryUserOnlineModelListByUsername(username); -// KitXlsxExportUtil.exportFile(response, "在线用户数据", userOnlineVos, SystemUserOnlineExportRowVo.class, -// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class))); - List rowVos = BeanUtil.copyToList(userOnlineVos, SystemUserOnlineVo.class); - KitExcelExporter.exportSimple(response, "在线用户数据", SystemUserOnlineVo.class, rowVos); + public void exportOnlineUser(HttpServletResponse response, String username) { + systemUserOnlineInfoDAO.exportOnlineUserXlsx(response, username); } @ApiOperation("踢出用户") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java index 234b0cad..e08e4fb7 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java @@ -15,23 +15,16 @@ */ package cn.odboy.system.controller; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; -import cn.odboy.system.dal.model.SystemOssStorageExportRowVo; import cn.odboy.system.dal.model.SystemOssStorageVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; -import cn.odboy.system.dal.model.SystemUserOnlineVo; import cn.odboy.system.service.SystemOssStorageService; -import cn.odboy.util.xlsx.KitExcelExporter; -import cn.odboy.util.xlsx.KitXlsxExportUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.io.IOException; -import java.util.List; import javax.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -68,11 +61,7 @@ public class SystemOssStorageController { @GetMapping(value = "/download") @PreAuthorize("@el.check('storage:list')") public void exportFile(HttpServletResponse response, SystemQueryStorageArgs args) throws IOException { - List systemOssStorageVos = systemOssStorageService.queryOssStorage(args); -// KitXlsxExportUtil.exportFile(response, "OSS文件上传记录数据", systemOssStorageVos, SystemOssStorageExportRowVo.class, -// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class))); - List rowVos = BeanUtil.copyToList(systemOssStorageVos, SystemOssStorageExportRowVo.class); - KitExcelExporter.exportSimple(response, "OSS文件上传记录数据", SystemOssStorageExportRowVo.class, rowVos); + systemOssStorageService.exportOssStorageXlsx(response, args); } @ApiOperation("上传文件") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java index 8a6239d2..31a1f1e2 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java @@ -19,18 +19,12 @@ import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; import cn.odboy.system.dal.dataobject.SystemQuartzLogTb; -import cn.odboy.system.dal.model.SystemQuartzJobExportRowVo; -import cn.odboy.system.dal.model.SystemQuartzLogExportRowVo; import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs; import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs; import cn.odboy.system.service.SystemQuartzJobService; -import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; @@ -67,71 +61,15 @@ public class SystemQuartzJobController { @ApiOperation("导出任务数据") @GetMapping(value = "/download") @PreAuthorize("@el.check('quartzJob:list')") - public void exportQuartzJob(HttpServletResponse response, SystemQueryQuartzJobArgs args) throws IOException { - List systemQuartzJobTbs = systemQuartzJobService.queryQuartzJobByArgs(args); -// KitXlsxExportUtil.exportFile(response, "定时任务数据", systemQuartzJobTbs, SystemQuartzJobExportRowVo.class, -// (dataObject) -> { -// SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo(); -// rowVo.setJobName(dataObject.getJobName()); -// rowVo.setBeanName(dataObject.getBeanName()); -// rowVo.setMethodName(dataObject.getMethodName()); -// rowVo.setParams(dataObject.getParams()); -// rowVo.setCronExpression(dataObject.getCronExpression()); -// rowVo.setIsPause(dataObject.getIsPause() ? "暂停中" : "运行中"); -// rowVo.setDescription(dataObject.getDescription()); -// rowVo.setCreateTime(dataObject.getCreateTime()); -// return CollUtil.newArrayList(rowVo); -// }); - List rowVos = new ArrayList<>(); - for (SystemQuartzJobTb dataObject : systemQuartzJobTbs) { - SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo(); - rowVo.setJobName(dataObject.getJobName()); - rowVo.setBeanName(dataObject.getBeanName()); - rowVo.setMethodName(dataObject.getMethodName()); - rowVo.setParams(dataObject.getParams()); - rowVo.setCronExpression(dataObject.getCronExpression()); - rowVo.setIsPause(dataObject.getIsPause() ? "暂停中" : "运行中"); - rowVo.setDescription(dataObject.getDescription()); - rowVo.setCreateTime(dataObject.getCreateTime()); - rowVos.add(rowVo); - } - KitExcelExporter.exportSimple(response, "定时任务数据", SystemQuartzJobExportRowVo.class, rowVos); + public void exportQuartzJob(HttpServletResponse response, SystemQueryQuartzJobArgs args) { + systemQuartzJobService.exportQuartzJobXlsx(response, args); } @ApiOperation("导出日志数据") @GetMapping(value = "/logs/download") @PreAuthorize("@el.check('quartzJob:list')") - public void exportQuartzJobLog(HttpServletResponse response, SystemQueryQuartzJobArgs args) throws IOException { - List systemQuartzLogTbs = systemQuartzJobService.queryQuartzLogByArgs(args); -// KitXlsxExportUtil.exportFile(response, "定时任务日志数据", systemQuartzLogTbs, SystemQuartzLogExportRowVo.class, -// (dataObject) -> { -// SystemQuartzLogExportRowVo rowVo = new SystemQuartzLogExportRowVo(); -// rowVo.setJobName(dataObject.getJobName()); -// rowVo.setBeanName(dataObject.getBeanName()); -// rowVo.setMethodName(dataObject.getMethodName()); -// rowVo.setParams(dataObject.getParams()); -// rowVo.setCronExpression(dataObject.getCronExpression()); -// rowVo.setExceptionDetail(dataObject.getExceptionDetail()); -// rowVo.setTime(dataObject.getTime()); -// rowVo.setStatus(dataObject.getIsSuccess() ? "成功" : "失败"); -// rowVo.setCreateTime(dataObject.getCreateTime()); -// return CollUtil.newArrayList(rowVo); -// }); - List rowVos = new ArrayList<>(); - for (SystemQuartzLogTb dataObject : systemQuartzLogTbs) { - SystemQuartzLogExportRowVo rowVo = new SystemQuartzLogExportRowVo(); - rowVo.setJobName(dataObject.getJobName()); - rowVo.setBeanName(dataObject.getBeanName()); - rowVo.setMethodName(dataObject.getMethodName()); - rowVo.setParams(dataObject.getParams()); - rowVo.setCronExpression(dataObject.getCronExpression()); - rowVo.setExceptionDetail(dataObject.getExceptionDetail()); - rowVo.setTime(dataObject.getTime()); - rowVo.setStatus(dataObject.getIsSuccess() ? "成功" : "失败"); - rowVo.setCreateTime(dataObject.getCreateTime()); - rowVos.add(rowVo); - } - KitExcelExporter.exportSimple(response, "定时任务日志数据", SystemQuartzLogExportRowVo.class, rowVos); + public void exportQuartzJobLog(HttpServletResponse response, SystemQueryQuartzJobArgs args) { + systemQuartzJobService.exportQuartzLogXlsx(response, args); } @ApiOperation("查询任务执行日志") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java index c590d20e..cc74b34e 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java @@ -21,15 +21,12 @@ import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.model.SystemCreateRoleArgs; import cn.odboy.system.dal.model.SystemQueryRoleArgs; -import cn.odboy.system.dal.model.SystemRoleExportRowVo; import cn.odboy.system.dal.model.SystemRoleVo; import cn.odboy.system.service.SystemRoleService; -import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletResponse; @@ -62,25 +59,7 @@ public class SystemRoleController { @GetMapping(value = "/download") @PreAuthorize("@el.check('role:list')") public void exportRole(HttpServletResponse response, SystemQueryRoleArgs args) throws IOException { - List systemRoleVos = systemRoleService.queryRoleByArgs(args); -// KitXlsxExportUtil.exportFile(response, "角色数据", systemRoleVos, SystemRoleExportRowVo.class, (dataObject) -> { -// SystemRoleExportRowVo rowVo = new SystemRoleExportRowVo(); -// rowVo.setName(dataObject.getName()); -// rowVo.setLevel(dataObject.getLevel()); -// rowVo.setDescription(dataObject.getDescription()); -// rowVo.setCreateTime(dataObject.getCreateTime()); -// return CollUtil.newArrayList(rowVo); -// }); - List rowVos = new ArrayList<>(); - for (SystemRoleVo dataObject : systemRoleVos) { - SystemRoleExportRowVo rowVo = new SystemRoleExportRowVo(); - rowVo.setName(dataObject.getName()); - rowVo.setLevel(dataObject.getLevel()); - rowVo.setDescription(dataObject.getDescription()); - rowVo.setCreateTime(dataObject.getCreateTime()); - rowVos.add(rowVo); - } - KitExcelExporter.exportSimple(response, "部门数据", SystemRoleExportRowVo.class, rowVos); + systemRoleService.exportRoleXlsx(response, args); } @ApiOperation("返回全部的角色") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java index 64419d21..677b1d4c 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java @@ -18,24 +18,17 @@ package cn.odboy.system.controller; import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.base.KitSelectOptionVo; -import cn.odboy.system.constant.SystemZhConst; -import cn.odboy.system.dal.dataobject.SystemJobTb; -import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.SystemQueryUserArgs; import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs; -import cn.odboy.system.dal.model.SystemUserExportRowVo; import cn.odboy.system.dal.model.SystemUserVo; import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.service.SystemUserService; -import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import java.util.ArrayList; import java.util.List; import java.util.Set; -import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -63,54 +56,7 @@ public class SystemUserController { @GetMapping(value = "/download") @PreAuthorize("@el.check('user:list')") public void exportUserExcel(HttpServletResponse response, SystemQueryUserArgs args) { -// List systemUserVos = systemUserService.queryUserVoByArgs(args); -// KitXlsxExportUtil.exportFile(response, "用户数据", systemUserVos, SystemUserExportRowVo.class, (dataObject) -> { -// SystemUserExportRowVo rowVo = new SystemUserExportRowVo(); -// rowVo.setUsername(dataObject.getUsername()); -// rowVo.setRoles(dataObject.getRoles().stream().map(SystemRoleTb::getName).collect(Collectors.joining(","))); -// rowVo.setDept(dataObject.getDept().getName()); -// rowVo.setJobs(dataObject.getJobs().stream().map(SystemJobTb::getName).collect(Collectors.joining(","))); -// rowVo.setEmail(dataObject.getEmail()); -// rowVo.setStatus(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); -// rowVo.setMobile(dataObject.getPhone()); -// rowVo.setUpdatePwdTime(dataObject.getPwdResetTime()); -// rowVo.setCreateTime(dataObject.getCreateTime()); -// return CollUtil.newArrayList(rowVo); -// }); -// List rowVos = new ArrayList<>(); -// for (SystemUserVo dataObject : systemUserVos) { -// SystemUserExportRowVo rowVo = new SystemUserExportRowVo(); -// rowVo.setUsername(dataObject.getUsername()); -// rowVo.setRoles(dataObject.getRoles().stream().map(SystemRoleTb::getName).collect(Collectors.joining(","))); -// rowVo.setDept(dataObject.getDept().getName()); -// rowVo.setJobs(dataObject.getJobs().stream().map(SystemJobTb::getName).collect(Collectors.joining(","))); -// rowVo.setEmail(dataObject.getEmail()); -// rowVo.setStatus(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); -// rowVo.setMobile(dataObject.getPhone()); -// rowVo.setUpdatePwdTime(dataObject.getPwdResetTime()); -// rowVo.setCreateTime(dataObject.getCreateTime()); -// rowVos.add(rowVo); -// } -// KitExcelExporter.exportSimple(response, "用户数据", SystemUserExportRowVo.class, rowVos); - long totalCount = systemUserService.countUserByArgs(args); - KitExcelExporter.exportByPage(response, "用户数据", SystemUserExportRowVo.class, totalCount, (long pageNum, long pageSize) -> { - KitPageResult pageResult = systemUserService.searchUserByArgs(args, new Page<>(pageNum, pageSize)); - List rowVos = new ArrayList<>(); - for (SystemUserVo dataObject : pageResult.getContent()) { - SystemUserExportRowVo rowVo = new SystemUserExportRowVo(); - rowVo.setUsername(dataObject.getUsername()); - rowVo.setRoles(dataObject.getRoles().stream().map(SystemRoleTb::getName).collect(Collectors.joining(","))); - rowVo.setDept(dataObject.getDept().getName()); - rowVo.setJobs(dataObject.getJobs().stream().map(SystemJobTb::getName).collect(Collectors.joining(","))); - rowVo.setEmail(dataObject.getEmail()); - rowVo.setStatus(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); - rowVo.setMobile(dataObject.getPhone()); - rowVo.setUpdatePwdTime(dataObject.getPwdResetTime()); - rowVo.setCreateTime(dataObject.getCreateTime()); - rowVos.add(rowVo); - } - return rowVos; - }); + systemUserService.exportUserXlsx(response, args); } @ApiOperation("查询用户") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDictExportRowVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDictExportRowVo.java index 872990e6..c91c290c 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDictExportRowVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDictExportRowVo.java @@ -9,6 +9,7 @@ import lombok.Setter; @Getter @Setter public class SystemDictExportRowVo extends KitObject { + @ExcelProperty("字典名称") private String name; @ExcelProperty("字典描述") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzLogExportRowVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzLogExportRowVo.java index 4be2d0e4..d78de3c1 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzLogExportRowVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzLogExportRowVo.java @@ -9,6 +9,7 @@ import lombok.Setter; @Getter @Setter public class SystemQuartzLogExportRowVo extends KitObject { + @ExcelProperty("任务名称") private String jobName; @ExcelProperty("Bean名称") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemRoleExportRowVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemRoleExportRowVo.java index 5fde2e02..b8c95352 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemRoleExportRowVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemRoleExportRowVo.java @@ -9,6 +9,7 @@ import lombok.Setter; @Getter @Setter public class SystemRoleExportRowVo extends KitObject { + @ExcelProperty("角色名称") private String name; @ExcelProperty("角色级别") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserExportRowVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserExportRowVo.java index da974cd7..9bbd2def 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserExportRowVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserExportRowVo.java @@ -3,7 +3,6 @@ package cn.odboy.system.dal.model; import cn.idev.excel.annotation.ExcelProperty; import cn.odboy.base.KitObject; import java.util.Date; -import java.util.List; import lombok.Getter; import lombok.Setter; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java index 7973494b..9a1749d9 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java @@ -1,5 +1,6 @@ package cn.odboy.system.dal.redis; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; import cn.odboy.framework.properties.AppProperties; @@ -12,6 +13,7 @@ import cn.odboy.util.KitDesEncryptUtil; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitIPUtil; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.metadata.IPage; import java.io.IOException; import java.util.ArrayList; @@ -166,4 +168,12 @@ public class SystemUserOnlineInfoDAO { this.logoutByToken(token); } } + + public void exportOnlineUserXlsx(HttpServletResponse response, String username) { + List userOnlineVos = this.queryUserOnlineModelListByUsername(username); +// KitXlsxExportUtil.exportFile(response, "在线用户数据", userOnlineVos, SystemUserOnlineExportRowVo.class, +// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class))); + List rowVos = BeanUtil.copyToList(userOnlineVos, SystemUserOnlineVo.class); + KitExcelExporter.exportSimple(response, "在线用户数据", SystemUserOnlineVo.class, rowVos); + } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java index b5d72c51..1a35d3e4 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java @@ -23,14 +23,17 @@ import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.constant.SystemDataScopeEnum; +import cn.odboy.system.constant.SystemZhConst; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.model.SystemCreateDeptArgs; +import cn.odboy.system.dal.model.SystemDeptExportRowVo; import cn.odboy.system.dal.model.SystemProductLineTreeVo; import cn.odboy.system.dal.model.SystemProductLineVo; import cn.odboy.system.dal.model.SystemQueryDeptArgs; import cn.odboy.system.dal.mysql.SystemDeptMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.util.KitClassUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import java.lang.reflect.Field; import java.util.ArrayList; @@ -43,6 +46,7 @@ import java.util.Map; import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -464,4 +468,24 @@ public class SystemDeptService { wrapper.eq(SystemDeptTb::getPid, pid); return systemDeptMapper.selectList(wrapper); } + + public void exportDeptXlsx(HttpServletResponse response, SystemQueryDeptArgs args) throws Exception { + List systemDeptTbs = this.queryAllDeptByArgs(args, false); +// KitXlsxExportUtil.exportFile(response, "部门数据", systemDeptTbs, SystemDeptExportRowVo.class, (dataObject) -> { +// SystemDeptExportRowVo rowVo = new SystemDeptExportRowVo(); +// rowVo.setName(dataObject.getName()); +// rowVo.setEnabled(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); + List rowVos = new ArrayList<>(); + for (SystemDeptTb dataObject : systemDeptTbs) { + SystemDeptExportRowVo rowVo = new SystemDeptExportRowVo(); + rowVo.setName(dataObject.getName()); + rowVo.setEnabled(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "部门数据", SystemDeptExportRowVo.class, rowVos); + } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java index 217441c1..58d54e77 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java @@ -16,17 +16,23 @@ package cn.odboy.system.service; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictTb; import cn.odboy.system.dal.model.SystemCreateDictArgs; +import cn.odboy.system.dal.model.SystemDictDetailVo; +import cn.odboy.system.dal.model.SystemDictExportRowVo; import cn.odboy.system.dal.model.SystemQueryDictArgs; import cn.odboy.system.dal.mysql.SystemDictMapper; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import java.util.ArrayList; import java.util.List; import java.util.Set; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -101,4 +107,55 @@ public class SystemDictService { injectQueryParams(args, wrapper); return systemDictMapper.selectList(wrapper); } + + public void exportDictXlsx(HttpServletResponse response, SystemQueryDictArgs args) { + List systemDictTbs = this.queryDictByArgs(args); +// KitXlsxExportUtil.exportFile(response, "字典数据", systemDictTbs, SystemDictExportRowVo.class, (dataObject) -> { +// List dictDetails = systemDictDetailService.listDictDetailByName(dataObject.getName()); +// if (CollUtil.isEmpty(dictDetails)) { +// SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); +// rowVo.setName(dataObject.getName()); +// rowVo.setDescription(dataObject.getDescription()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// rowVo.setLabel(""); +// rowVo.setValue(""); +// return CollUtil.newArrayList(rowVo); +// } +// List rowVos = new ArrayList<>(); +// for (SystemDictDetailVo dictDetail : dictDetails) { +// SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); +// rowVo.setName(dataObject.getName()); +// rowVo.setDescription(dataObject.getDescription()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// rowVo.setLabel(dictDetail.getLabel()); +// rowVo.setValue(dictDetail.getValue()); +// rowVos.add(rowVo); +// } +// return rowVos; +// }); + List rowVos = new ArrayList<>(); + for (SystemDictTb dataObject : systemDictTbs) { + List dictDetails = systemDictDetailService.listDictDetailByName(dataObject.getName()); + if (CollUtil.isEmpty(dictDetails)) { + SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); + rowVo.setName(dataObject.getName()); + rowVo.setDescription(dataObject.getDescription()); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVo.setLabel(""); + rowVo.setValue(""); + rowVos.add(rowVo); + continue; + } + for (SystemDictDetailVo dictDetail : dictDetails) { + SystemDictExportRowVo rowVo = new SystemDictExportRowVo(); + rowVo.setName(dataObject.getName()); + rowVo.setDescription(dataObject.getDescription()); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVo.setLabel(dictDetail.getLabel()); + rowVo.setValue(dictDetail.getValue()); + rowVos.add(rowVo); + } + } + KitExcelExporter.exportSimple(response, "字典数据", SystemDictExportRowVo.class, rowVos); + } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java index e3152c7e..b7ca5ede 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java @@ -22,17 +22,15 @@ import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.model.SystemCreateJobArgs; +import cn.odboy.system.dal.model.SystemJobExportRowVo; import cn.odboy.system.dal.model.SystemQueryJobArgs; import cn.odboy.system.dal.mysql.SystemJobMapper; -import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import java.io.IOException; import java.util.ArrayList; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -139,4 +137,24 @@ public class SystemJobService { } wrapper.orderByDesc(SystemJobTb::getJobSort, SystemJobTb::getId); } + + public void exportJobXlsx(HttpServletResponse response, SystemQueryJobArgs args) { + List systemJobTbs = this.queryJobByArgs(args); +// KitXlsxExportUtil.exportFile(response, "岗位数据", systemJobTbs, SystemJobExportRowVo.class, (dataObject) -> { +// SystemJobExportRowVo rowVo = new SystemJobExportRowVo(); +// rowVo.setName(dataObject.getName()); +// rowVo.setEnabled(dataObject.getEnabled() ? "启用" : "停用"); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); + List rowVos = new ArrayList<>(); + for (SystemJobTb dataObject : systemJobTbs) { + SystemJobExportRowVo rowVo = new SystemJobExportRowVo(); + rowVo.setName(dataObject.getName()); + rowVo.setEnabled(dataObject.getEnabled() ? "启用" : "停用"); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "岗位数据", SystemJobExportRowVo.class, rowVos); + } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java index a37f115c..9944ca02 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java @@ -15,6 +15,7 @@ */ package cn.odboy.system.service; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; @@ -27,19 +28,17 @@ import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.dal.dataobject.SystemLocalStorageTb; +import cn.odboy.system.dal.model.SystemLocalStorageExportRowVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.mysql.SystemLocalStorageMapper; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.io.File; -import java.io.IOException; -import java.util.ArrayList; import java.util.Date; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -169,4 +168,12 @@ public class SystemLocalStorageService { } return KitSpringBeanHolder.getBean(SystemLocalStorageService.class).uploadFile(null, file); } + + public void exportLocalStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) { + List systemLocalStorageTbs = this.queryLocalStorageByArgs(args); +// KitXlsxExportUtil.exportFile(response, "文件上传记录数据", systemLocalStorageTbs, SystemLocalStorageExportRowVo.class, +// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class))); + List rowVos = BeanUtil.copyToList(systemLocalStorageTbs, SystemLocalStorageExportRowVo.class); + KitExcelExporter.exportSimple(response, "文件上传记录数据", SystemLocalStorageExportRowVo.class, rowVos); + } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java index 2e3f3da3..7d947d81 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java @@ -21,10 +21,12 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; +import cn.odboy.system.constant.SystemYesOrNoChConst; import cn.odboy.system.constant.TransferProtocolConst; import cn.odboy.system.dal.dataobject.SystemMenuTb; import cn.odboy.system.dal.dataobject.SystemRoleMenuTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; +import cn.odboy.system.dal.model.SystemMenuExportRowVo; import cn.odboy.system.dal.model.SystemMenuMetaVo; import cn.odboy.system.dal.model.SystemMenuVo; import cn.odboy.system.dal.model.SystemQueryMenuArgs; @@ -33,6 +35,7 @@ import cn.odboy.system.dal.mysql.SystemMenuMapper; import cn.odboy.system.dal.mysql.SystemRoleMenuMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.util.KitClassUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import java.lang.reflect.Field; @@ -44,6 +47,7 @@ import java.util.List; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -464,4 +468,32 @@ public class SystemMenuService { } return systemMenuTbs; } + + public void exportMenuXlsx(HttpServletResponse response, SystemQueryMenuArgs args) throws Exception { + List systemMenuTbs = this.queryAllMenu(args, false); +// KitXlsxExportUtil.exportFile(response, "菜单数据", systemMenuTbs, SystemMenuExportRowVo.class, (dataObject -> { +// SystemMenuExportRowVo rowVo = new SystemMenuExportRowVo(); +// rowVo.setTitle(dataObject.getTitle()); +// rowVo.setType(dataObject.getType() == null ? "目录" : dataObject.getType() == 1 ? "菜单" : "按钮"); +// rowVo.setPermission(dataObject.getPermission()); +// rowVo.setIFrame(dataObject.getIFrame() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); +// rowVo.setHidden(dataObject.getHidden() ? SystemYesOrNoChConst.NO_STR : SystemYesOrNoChConst.YES_STR); +// rowVo.setCache(dataObject.getCache() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// })); + List rowVos = new ArrayList<>(); + for (SystemMenuTb dataObject : systemMenuTbs) { + SystemMenuExportRowVo rowVo = new SystemMenuExportRowVo(); + rowVo.setTitle(dataObject.getTitle()); + rowVo.setType(dataObject.getType() == null ? "目录" : dataObject.getType() == 1 ? "菜单" : "按钮"); + rowVo.setPermission(dataObject.getPermission()); + rowVo.setIFrame(dataObject.getIFrame() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); + rowVo.setHidden(dataObject.getHidden() ? SystemYesOrNoChConst.NO_STR : SystemYesOrNoChConst.YES_STR); + rowVo.setCache(dataObject.getCache() ? SystemYesOrNoChConst.YES_STR : SystemYesOrNoChConst.NO_STR); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "菜单数据", SystemMenuExportRowVo.class, rowVos); + } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java index 75569826..fc8b25c8 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java @@ -21,7 +21,6 @@ import cn.odboy.system.dal.model.SystemOssStorageVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import java.io.IOException; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.springframework.web.multipart.MultipartFile; @@ -40,9 +39,9 @@ public interface SystemOssStorageService extends IService { List queryOssStorage(SystemQueryStorageArgs args); - void exportOssStorageExcel(List list, HttpServletResponse response) throws IOException; - String uploadFile(MultipartFile file); void deleteFileByIds(Long[] ids); + + void exportOssStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java index 723a5a74..ddf4921d 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java @@ -25,21 +25,20 @@ import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; import cn.odboy.system.dal.dataobject.SystemQuartzLogTb; +import cn.odboy.system.dal.model.SystemQuartzJobExportRowVo; +import cn.odboy.system.dal.model.SystemQuartzLogExportRowVo; import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs; import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs; import cn.odboy.system.dal.mysql.SystemQuartzJobMapper; import cn.odboy.system.dal.mysql.SystemQuartzLogMapper; import cn.odboy.system.framework.quartz.QuartzManage; -import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletResponse; import org.quartz.CronExpression; @@ -280,4 +279,68 @@ public class SystemQuartzJobService { wrapper.eq(SystemQuartzJobTb::getIsPause, 0); return systemQuartzJobMapper.selectList(wrapper); } + + public void exportQuartzJobXlsx(HttpServletResponse response, SystemQueryQuartzJobArgs args) { + List systemQuartzJobTbs = this.queryQuartzJobByArgs(args); +// KitXlsxExportUtil.exportFile(response, "定时任务数据", systemQuartzJobTbs, SystemQuartzJobExportRowVo.class, +// (dataObject) -> { +// SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo(); +// rowVo.setJobName(dataObject.getJobName()); +// rowVo.setBeanName(dataObject.getBeanName()); +// rowVo.setMethodName(dataObject.getMethodName()); +// rowVo.setParams(dataObject.getParams()); +// rowVo.setCronExpression(dataObject.getCronExpression()); +// rowVo.setIsPause(dataObject.getIsPause() ? "暂停中" : "运行中"); +// rowVo.setDescription(dataObject.getDescription()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); + List rowVos = new ArrayList<>(); + for (SystemQuartzJobTb dataObject : systemQuartzJobTbs) { + SystemQuartzJobExportRowVo rowVo = new SystemQuartzJobExportRowVo(); + rowVo.setJobName(dataObject.getJobName()); + rowVo.setBeanName(dataObject.getBeanName()); + rowVo.setMethodName(dataObject.getMethodName()); + rowVo.setParams(dataObject.getParams()); + rowVo.setCronExpression(dataObject.getCronExpression()); + rowVo.setIsPause(dataObject.getIsPause() ? "暂停中" : "运行中"); + rowVo.setDescription(dataObject.getDescription()); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "定时任务数据", SystemQuartzJobExportRowVo.class, rowVos); + } + + public void exportQuartzLogXlsx(HttpServletResponse response, SystemQueryQuartzJobArgs args) { + List systemQuartzLogTbs = this.queryQuartzLogByArgs(args); +// KitXlsxExportUtil.exportFile(response, "定时任务日志数据", systemQuartzLogTbs, SystemQuartzLogExportRowVo.class, +// (dataObject) -> { +// SystemQuartzLogExportRowVo rowVo = new SystemQuartzLogExportRowVo(); +// rowVo.setJobName(dataObject.getJobName()); +// rowVo.setBeanName(dataObject.getBeanName()); +// rowVo.setMethodName(dataObject.getMethodName()); +// rowVo.setParams(dataObject.getParams()); +// rowVo.setCronExpression(dataObject.getCronExpression()); +// rowVo.setExceptionDetail(dataObject.getExceptionDetail()); +// rowVo.setTime(dataObject.getTime()); +// rowVo.setStatus(dataObject.getIsSuccess() ? "成功" : "失败"); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); + List rowVos = new ArrayList<>(); + for (SystemQuartzLogTb dataObject : systemQuartzLogTbs) { + SystemQuartzLogExportRowVo rowVo = new SystemQuartzLogExportRowVo(); + rowVo.setJobName(dataObject.getJobName()); + rowVo.setBeanName(dataObject.getBeanName()); + rowVo.setMethodName(dataObject.getMethodName()); + rowVo.setParams(dataObject.getParams()); + rowVo.setCronExpression(dataObject.getCronExpression()); + rowVo.setExceptionDetail(dataObject.getExceptionDetail()); + rowVo.setTime(dataObject.getTime()); + rowVo.setStatus(dataObject.getIsSuccess() ? "成功" : "失败"); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "定时任务日志数据", SystemQuartzLogExportRowVo.class, rowVos); + } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java index bcdc2c95..83b1a73a 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java @@ -28,20 +28,18 @@ import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.SystemCreateRoleArgs; import cn.odboy.system.dal.model.SystemQueryRoleArgs; import cn.odboy.system.dal.model.SystemRoleCodeVo; +import cn.odboy.system.dal.model.SystemRoleExportRowVo; import cn.odboy.system.dal.model.SystemRoleVo; import cn.odboy.system.dal.mysql.SystemRoleMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; -import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import java.util.Set; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; @@ -277,4 +275,26 @@ public class SystemRoleService { } return min; } + + public void exportRoleXlsx(HttpServletResponse response, SystemQueryRoleArgs args) { + List systemRoleVos = this.queryRoleByArgs(args); +// KitXlsxExportUtil.exportFile(response, "角色数据", systemRoleVos, SystemRoleExportRowVo.class, (dataObject) -> { +// SystemRoleExportRowVo rowVo = new SystemRoleExportRowVo(); +// rowVo.setName(dataObject.getName()); +// rowVo.setLevel(dataObject.getLevel()); +// rowVo.setDescription(dataObject.getDescription()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); + List rowVos = new ArrayList<>(); + for (SystemRoleVo dataObject : systemRoleVos) { + SystemRoleExportRowVo rowVo = new SystemRoleExportRowVo(); + rowVo.setName(dataObject.getName()); + rowVo.setLevel(dataObject.getLevel()); + rowVo.setDescription(dataObject.getDescription()); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + KitExcelExporter.exportSimple(response, "部门数据", SystemRoleExportRowVo.class, rowVos); + } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java index a9fa2be8..f42d344e 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java @@ -26,6 +26,7 @@ import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.constant.SystemCaptchaBizEnum; +import cn.odboy.system.constant.SystemZhConst; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; @@ -34,6 +35,7 @@ import cn.odboy.system.dal.dataobject.SystemUserRoleTb; import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.SystemQueryUserArgs; import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs; +import cn.odboy.system.dal.model.SystemUserExportRowVo; import cn.odboy.system.dal.model.SystemUserVo; import cn.odboy.system.dal.mysql.SystemDeptMapper; import cn.odboy.system.dal.mysql.SystemJobMapper; @@ -47,10 +49,12 @@ import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitRsaEncryptUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.io.File; +import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashSet; @@ -59,6 +63,7 @@ import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; @@ -549,4 +554,55 @@ public class SystemUserService { } return KitPageUtil.emptyData(); } + + public void exportUserXlsx(HttpServletResponse response, SystemQueryUserArgs args) { + // List systemUserVos = systemUserService.queryUserVoByArgs(args); +// KitXlsxExportUtil.exportFile(response, "用户数据", systemUserVos, SystemUserExportRowVo.class, (dataObject) -> { +// SystemUserExportRowVo rowVo = new SystemUserExportRowVo(); +// rowVo.setUsername(dataObject.getUsername()); +// rowVo.setRoles(dataObject.getRoles().stream().map(SystemRoleTb::getName).collect(Collectors.joining(","))); +// rowVo.setDept(dataObject.getDept().getName()); +// rowVo.setJobs(dataObject.getJobs().stream().map(SystemJobTb::getName).collect(Collectors.joining(","))); +// rowVo.setEmail(dataObject.getEmail()); +// rowVo.setStatus(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); +// rowVo.setMobile(dataObject.getPhone()); +// rowVo.setUpdatePwdTime(dataObject.getPwdResetTime()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// return CollUtil.newArrayList(rowVo); +// }); +// List rowVos = new ArrayList<>(); +// for (SystemUserVo dataObject : systemUserVos) { +// SystemUserExportRowVo rowVo = new SystemUserExportRowVo(); +// rowVo.setUsername(dataObject.getUsername()); +// rowVo.setRoles(dataObject.getRoles().stream().map(SystemRoleTb::getName).collect(Collectors.joining(","))); +// rowVo.setDept(dataObject.getDept().getName()); +// rowVo.setJobs(dataObject.getJobs().stream().map(SystemJobTb::getName).collect(Collectors.joining(","))); +// rowVo.setEmail(dataObject.getEmail()); +// rowVo.setStatus(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); +// rowVo.setMobile(dataObject.getPhone()); +// rowVo.setUpdatePwdTime(dataObject.getPwdResetTime()); +// rowVo.setCreateTime(dataObject.getCreateTime()); +// rowVos.add(rowVo); +// } +// KitExcelExporter.exportSimple(response, "用户数据", SystemUserExportRowVo.class, rowVos); + long totalCount = this.countUserByArgs(args); + KitExcelExporter.exportByPage(response, "用户数据", SystemUserExportRowVo.class, totalCount, (long pageNum, long pageSize) -> { + KitPageResult pageResult = this.searchUserByArgs(args, new Page<>(pageNum, pageSize)); + List rowVos = new ArrayList<>(); + for (SystemUserVo dataObject : pageResult.getContent()) { + SystemUserExportRowVo rowVo = new SystemUserExportRowVo(); + rowVo.setUsername(dataObject.getUsername()); + rowVo.setRoles(dataObject.getRoles().stream().map(SystemRoleTb::getName).collect(Collectors.joining(","))); + rowVo.setDept(dataObject.getDept().getName()); + rowVo.setJobs(dataObject.getJobs().stream().map(SystemJobTb::getName).collect(Collectors.joining(","))); + rowVo.setEmail(dataObject.getEmail()); + rowVo.setStatus(dataObject.getEnabled() ? SystemZhConst.ENABLE_STR : SystemZhConst.DISABLE_STR); + rowVo.setMobile(dataObject.getPhone()); + rowVo.setUpdatePwdTime(dataObject.getPwdResetTime()); + rowVo.setCreateTime(dataObject.getCreateTime()); + rowVos.add(rowVo); + } + return rowVos; + }); + } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java index 407481c4..c28e6731 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java @@ -24,6 +24,7 @@ import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.properties.model.StorageOSSModel; import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; +import cn.odboy.system.dal.model.SystemOssStorageExportRowVo; import cn.odboy.system.dal.model.SystemOssStorageVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.mysql.SystemOssStorageMapper; @@ -32,16 +33,13 @@ import cn.odboy.system.service.SystemOssStorageService; import cn.odboy.util.KitDateUtil; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; +import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -106,25 +104,6 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl ossStorages, HttpServletResponse response) - throws IOException { - List> list = new ArrayList<>(); - for (SystemOssStorageVo ossStorage : ossStorages) { - Map map = new LinkedHashMap<>(); - map.put("服务类型", ossStorage.getServiceType()); - map.put("服务地址", ossStorage.getEndpoint()); - map.put("存储桶名称", ossStorage.getBucketName()); - map.put("文件名称", ossStorage.getFileName()); - map.put("文件大小", ossStorage.getFileSizeDesc()); - map.put("文件类型", ossStorage.getFileMime()); - map.put("创建人", ossStorage.getCreateBy()); - map.put("创建日期", ossStorage.getCreateTime()); - list.add(map); - } - KitFileUtil.downloadExcel(list, response); - } - @Override @Transactional(rollbackFor = Exception.class) public String uploadFile(MultipartFile file) { @@ -174,6 +153,15 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl systemOssStorageVos = this.queryOssStorage(args); +// KitXlsxExportUtil.exportFile(response, "OSS文件上传记录数据", systemOssStorageVos, SystemOssStorageExportRowVo.class, +// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class))); + List rowVos = BeanUtil.copyToList(systemOssStorageVos, SystemOssStorageExportRowVo.class); + KitExcelExporter.exportSimple(response, "OSS文件上传记录数据", SystemOssStorageExportRowVo.class, rowVos); + } + private SystemOssStorageTb getOssStorageByMd5(String md5) { return lambdaQuery().eq(SystemOssStorageTb::getFileMd5, md5).one(); }