| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | @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") |