From 5d34bdd3c426bb2ca5f6627424ae67984f745603 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 21 十月 2026 18:28:59 +0800
Subject: [PATCH] feat: 新增资产/用车/采购模块,完善课题、会员、财务与企微功能
---
yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/ResearchApplicationController.java | 33 ++++++++++++++++++++++++++++++++-
1 files changed, 32 insertions(+), 1 deletions(-)
diff --git a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/ResearchApplicationController.java b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/ResearchApplicationController.java
index 63f150d..5145027 100644
--- a/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/ResearchApplicationController.java
+++ b/yudao-module-research/src/main/java/cn/iocoder/yudao/module/research/controller/admin/application/ResearchApplicationController.java
@@ -1,13 +1,18 @@
package cn.iocoder.yudao.module.research.controller.admin.application;
import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.research.controller.admin.application.vo.ResearchApplicationPageReqVO;
import cn.iocoder.yudao.module.research.controller.admin.application.vo.ResearchApplicationRespVO;
import cn.iocoder.yudao.module.research.controller.admin.application.vo.ResearchApplicationSaveReqVO;
+import cn.iocoder.yudao.module.research.controller.admin.application.vo.member.ResearchApplicationMemberRespVO;
+import cn.iocoder.yudao.module.research.controller.admin.application.vo.member.ResearchApplicationMemberStatisticsReqVO;
+import cn.iocoder.yudao.module.research.controller.admin.application.vo.member.ResearchApplicationMemberStatisticsRespVO;
import cn.iocoder.yudao.module.research.dal.dataobject.application.ResearchApplicationDO;
import cn.iocoder.yudao.module.research.dal.dataobject.guideline.ResearchGuidelineDO;
import cn.iocoder.yudao.module.research.service.application.ResearchApplicationService;
@@ -21,14 +26,17 @@
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen;
@@ -83,7 +91,30 @@
@Parameter(name = "id", description = "缂栧彿", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('research:application:query')")
public CommonResult<ResearchApplicationRespVO> getApplication(@RequestParam("id") Long id) {
- return success(buildApplicationDetail(applicationService.getApplication(id)));
+ ResearchApplicationRespVO vo = buildApplicationDetail(applicationService.getApplication(id));
+ if (vo != null) {
+ vo.setMembers(BeanUtils.toBean(applicationService.getMemberListByApplicationId(id),
+ ResearchApplicationMemberRespVO.class));
+ }
+ return success(vo);
+ }
+
+ @GetMapping("/member-statistics")
+ @Operation(summary = "鎸夋垚鍛樼淮搴︾粺璁¤棰樺弬涓庢儏鍐�")
+ @PreAuthorize("@ss.hasPermission('research:application:query')")
+ public CommonResult<List<ResearchApplicationMemberStatisticsRespVO>> getMemberStatistics(
+ @Valid ResearchApplicationMemberStatisticsReqVO reqVO) {
+ return success(applicationService.getMemberStatistics(reqVO));
+ }
+
+ @GetMapping("/member-statistics/export-excel")
+ @Operation(summary = "瀵煎嚭璇鹃鎴愬憳缁村害缁熻 Excel")
+ @PreAuthorize("@ss.hasPermission('research:application:query')")
+ @ApiAccessLog(operateType = EXPORT)
+ public void exportMemberStatisticsExcel(@Valid ResearchApplicationMemberStatisticsReqVO reqVO,
+ HttpServletResponse response) throws IOException {
+ List<ResearchApplicationMemberStatisticsRespVO> list = applicationService.getMemberStatistics(reqVO);
+ ExcelUtils.write(response, "璇鹃鎴愬憳缁熻.xls", "鏁版嵁", ResearchApplicationMemberStatisticsRespVO.class, list);
}
@GetMapping("/page")
--
Gitblit v1.9.3