From f7940e23fa42cb57b29a460847e08c685d02670f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Wed, 27 Aug 2025 17:32:36 +0800 Subject: [PATCH] =?UTF-8?q?08-27-=E5=88=86=E9=A1=B9=E5=B7=A5=E7=A8=8B?= =?UTF-8?q?=E5=8D=95=E4=BB=B7=E5=AF=BC=E5=85=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PgsProgressCategoryController.java | 74 +++++++++++++++---- 1 file changed, 59 insertions(+), 15 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProgressCategoryController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProgressCategoryController.java index c4a72acc..50e63197 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProgressCategoryController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/controller/PgsProgressCategoryController.java @@ -92,26 +92,70 @@ public class PgsProgressCategoryController extends BaseController { @Log(title = "进度类别", businessType = BusinessType.EXPORT) @Transactional @PostMapping("/export") - public void export(@RequestBody Map> ids, HttpServletResponse response) throws IOException { - List> voList = new ArrayList<>(); - List sheetNames = new ArrayList<>(); - List idss = new ArrayList<>(); + public void export(@RequestBody Map projectId , HttpServletResponse response) throws IOException { - - List idStrings = ids.get("ids"); - for (String idString : idStrings) { - idss.add(Long.valueOf(idString)); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + //根据projectid拿到整个数据 + queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PgsProgressCategory::getProjectId, projectId.get("projectId")); + List list = pgsProgressCategoryService.list(queryWrapper); + List ids = new ArrayList<>(); + for (PgsProgressCategory pgsProgressCategory : list) { + ids.add(pgsProgressCategory.getId()); } - for (Long id : idss) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(PgsProgressCategory::getMatrixId, id); - List voList1 = pgsProgressCategoryService.getVoList(pgsProgressCategoryService.list(queryWrapper)); - voList.add(voList1); - sheetNames.add(matrixService.getById(voList1.getFirst().getMatrixId()).getMatrixName()); + //要导出的整个sheet所需要的names + List names = new ArrayList<>(); + //要导出的list + List> listValues = new ArrayList<>(); + + //获取非方阵类别name 非方阵类别有多级 暂定只有2级 也有可能没有父子关系 + queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PgsProgressCategory::getParentId,0).eq(PgsProgressCategory::getMatrixId,0).in(PgsProgressCategory::getId,ids); + List unMatrixList = pgsProgressCategoryService.list(queryWrapper); + if (!unMatrixList.isEmpty()) { + for (PgsProgressCategory unMatrix : unMatrixList) { + //所有非方阵顶类名 + names.add(unMatrix.getName()); + //寻找子类 + queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PgsProgressCategory::getParentId,unMatrix.getId()); + List children = pgsProgressCategoryService.getVoList(pgsProgressCategoryService.list(queryWrapper)); + if (!children.isEmpty()) { + //寻找孙类 然后添加 + List grandson = new ArrayList<>(); + for (PgsProgressCategoryVo childrenCategory : children) { + queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PgsProgressCategory::getParentId,childrenCategory.getId()); + List grandsonCategory = pgsProgressCategoryService.getVoList(pgsProgressCategoryService.list(queryWrapper)); + if (!grandsonCategory.isEmpty()) { + grandson.addAll(grandsonCategory); + }else { + grandson = children; + } + } + listValues.add(grandson); + } + } } - ExcelUtil.exportMultiSheetExcelEnhanced(voList, sheetNames, PgsProgressCategoryVo.class, null, response); + //获取矩阵类别name + queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PgsProgressCategory::getParentId,0).ne(PgsProgressCategory::getMatrixId,0).in(PgsProgressCategory::getId,ids); + List matrixList = pgsProgressCategoryService.list(queryWrapper); + if (!matrixList.isEmpty()) { + for (PgsProgressCategory pgsProgressCategory : matrixList) { + //增加矩阵名 + names.add(pgsProgressCategory.getName() + "-" + pgsProgressCategory.getMatrixName()); + //找到该矩阵下的列表 + queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PgsProgressCategory::getMatrixId,pgsProgressCategory.getMatrixId()); + listValues.add(pgsProgressCategoryService.getVoList(pgsProgressCategoryService.list(queryWrapper))); + } + } + + ExcelUtil.exportMultiSheetExcelEnhanced(listValues, names, PgsProgressCategoryVo.class, null, response); + } /***