update 五育数据整合

develop
hhb@hotmail.com 2 weeks ago
parent 8f8df01299
commit 192c05460e

@ -0,0 +1,32 @@
package cn.teammodel.controller.admin.controller;
import cn.teammodel.common.R;
import cn.teammodel.controller.admin.service.FiveEducationService;
import cn.teammodel.model.dto.admin.common.FiveDto;
import cn.teammodel.model.dto.admin.exam.OverViewDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.Map;
@RestController
@RequestMapping("admin/five")
@Api(tags = "管理员端-五育分析")
public class FiveEducationController {
@Resource
private FiveEducationService fiveEducationService;
@RequestMapping("getAnalysis")
@ApiOperation("获取五育看板详细内容")
public R<Map<String, Object>> getAnalysis(@Valid @RequestBody FiveDto fiveDto, HttpServletRequest request) {
Map<String, Object> res = fiveEducationService.getAnalysis(fiveDto,request);
return R.success(res);
}
}

@ -3,12 +3,19 @@ package cn.teammodel.controller.admin.service.impl;
import cn.teammodel.controller.admin.service.*; import cn.teammodel.controller.admin.service.*;
import cn.teammodel.model.dto.admin.common.FiveDto; import cn.teammodel.model.dto.admin.common.FiveDto;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
@Service
public class FiveEducationServiceImpl implements FiveEducationService { public class FiveEducationServiceImpl implements FiveEducationService {
@Autowired @Autowired
@ -22,32 +29,41 @@ public class FiveEducationServiceImpl implements FiveEducationService {
@Override @Override
public Map<String, Object> getAnalysis(FiveDto dto, HttpServletRequest request) { public Map<String, Object> getAnalysis(FiveDto dto, HttpServletRequest request) {
Map<String, Object> integratedResult = new ConcurrentHashMap<>(); Map<String, Object> integratedResult = new ConcurrentHashMap<>();
List<CompletableFuture<Void>> futures = new ArrayList<>();
// 使用自定义线程池或公共线程池
Executor executor = Executors.newFixedThreadPool(4); // 根据实际情况调整线程数
// 1. 处理概况分析 // 1. 概况分析(异步执行)
if (dto.getOverViewDto() != null) { if (dto.getOverViewDto() != null) {
integratedResult.put("overView", futures.add(CompletableFuture.runAsync(() -> {
examService.getAnalysis(dto.getOverViewDto(), request)); integratedResult.put("overView", examService.getAnalysis(dto.getOverViewDto(), request));
}, executor));
} }
// 2. 处理艺术分析 /* // 2. 艺术分析(异步执行)
if (dto.getArtAnalysisDto() != null) { if (dto.getArtAnalysisDto() != null) {
integratedResult.put("artAnalytics", futures.add(CompletableFuture.runAsync(() -> {
artService.getArtAnalytics(dto.getArtAnalysisDto(), request)); integratedResult.put("artAnalysis", artService.getArtAnalytics(dto.getArtAnalysisDto(), request));
} }, executor));
}*/
// 3. 处理德育分析 // 3. 德育分析(异步执行)
if (dto.getLaborDto() != null) { if (dto.getLaborDto() != null) {
integratedResult.put("moralAnalysis", futures.add(CompletableFuture.runAsync(() -> {
laborEducationService.getAnalysis(dto.getLaborDto(), request)); integratedResult.put("moralAnalysis", laborEducationService.getAnalysis(dto.getLaborDto(), request));
}, executor));
} }
// 4. 处理劳育分析 // 4. 劳育分析(异步执行)
if (dto.getMoralDto() != null) { if (dto.getMoralDto() != null) {
integratedResult.put("laborAnalysis", futures.add(CompletableFuture.runAsync(() -> {
moralLaborService.getAnalysis(dto.getMoralDto(), request)); integratedResult.put("laborAnalysis", moralLaborService.getAnalysis(dto.getMoralDto(), request));
}, executor));
} }
return integratedResult; // 等待所有异步任务完成
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
return integratedResult;
} }
} }

@ -87,7 +87,7 @@ public class LaborEducationServiceImpl implements LaborEducationService {
//根据具体参数查询相关课列内容 //根据具体参数查询相关课列内容
List<LessonRecord> records; List<LessonRecord> records;
LessonRecordQueryService queryService = new LessonRecordQueryService(lessonRecordRepository); LessonRecordQueryService queryService = new LessonRecordQueryService(lessonRecordRepository);
String schoolId = SecurityUtil.getLoginUser().getSchoolId(); String schoolId = laborDto.getCode();
String lessonRecordKey = String.format(PK.PK_LESSON_RECORD, laborDto.getCode()); String lessonRecordKey = String.format(PK.PK_LESSON_RECORD, laborDto.getCode());
Long startTime = laborDto.getStartTime(); Long startTime = laborDto.getStartTime();
Long endTime = laborDto.getEndTime(); Long endTime = laborDto.getEndTime();

@ -88,7 +88,7 @@ public class MoralEducationServiceImpl implements MoralEducationService {
//根据具体参数查询相关课列内容 //根据具体参数查询相关课列内容
List<LessonRecord> records; List<LessonRecord> records;
LessonRecordQueryService queryService = new LessonRecordQueryService(lessonRecordRepository); LessonRecordQueryService queryService = new LessonRecordQueryService(lessonRecordRepository);
String schoolId = SecurityUtil.getLoginUser().getSchoolId(); String schoolId = moralDto.getCode();
String lessonRecordKey = String.format(PK.PK_LESSON_RECORD, moralDto.getCode()); String lessonRecordKey = String.format(PK.PK_LESSON_RECORD, moralDto.getCode());
Long startTime = moralDto.getStartTime(); Long startTime = moralDto.getStartTime();
Long endTime = moralDto.getEndTime(); Long endTime = moralDto.getEndTime();

Loading…
Cancel
Save