|
@@ -143,23 +143,39 @@ public class ObeReportController {
|
|
|
@RequestMapping(value = "/requirements/detail/report", method = RequestMethod.POST)
|
|
|
@ApiResponses({@ApiResponse(code = 200, message = "毕业要求达成度详情报表", response = ScoreResult.class)})
|
|
|
public Result requirementsDetailReport(@ApiParam(value = "培养方案ID", required = true) @RequestParam Long cultureProgramId) {
|
|
|
- ObeCourseRequirementReport obeCourseRequirementReport = obeCourseRequirementReportService.findByCultureProgramId(cultureProgramId);
|
|
|
+ String lockKey = SystemConstant.REDIS_OBE_RADAR_DETAIL_DATA_PREFIX + cultureProgramId;
|
|
|
+ boolean lock = redisUtil.lock(lockKey, SystemConstant.REDIS_LOCK_OBE_RADAR_DATA_TIME_OUT);
|
|
|
+ if (!lock) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("正在计算数据,请稍候再试!");
|
|
|
+ }
|
|
|
List<ObeCourseRequirementDto> obeCourseRequirementDtoList = new ArrayList<>();
|
|
|
- if (Objects.nonNull(obeCourseRequirementReport) && Objects.nonNull(obeCourseRequirementReport.getRequirementDetail())) {
|
|
|
- obeCourseRequirementDtoList = JSONArray.parseArray(obeCourseRequirementReport.getRequirementDetail(), ObeCourseRequirementDto.class);
|
|
|
- } else {
|
|
|
- List<CourseRequirementMatrixDto> courseRequirementMatrixDtoList = obeCourseRequirementMatrixService.getMatrix(cultureProgramId);
|
|
|
- if (!CollectionUtils.isEmpty(courseRequirementMatrixDtoList)) {
|
|
|
- log.info("courseRequirementMatrixDto:{}", JacksonUtil.parseJson(courseRequirementMatrixDtoList));
|
|
|
- List<ObeCourseOutline> obeCourseOutlineList = obeCourseOutlineService.findByCultureProgramId(cultureProgramId);
|
|
|
- if (!CollectionUtils.isEmpty(obeCourseOutlineList)) {
|
|
|
- Map<Long, List<ObeSubRequirementsDto>> obeSubRequirementsDtoMap = new LinkedHashMap<>();
|
|
|
- for (ObeCourseOutline obeCourseOutline : obeCourseOutlineList) {
|
|
|
- obeCourseRequirementReportService.matrixCourseReportInfo(courseRequirementMatrixDtoList, obeCourseOutline.getId(),
|
|
|
- null, obeCourseRequirementDtoList, obeSubRequirementsDtoMap);
|
|
|
+ try {
|
|
|
+ ObeCourseRequirementReport obeCourseRequirementReport = obeCourseRequirementReportService.findByCultureProgramId(cultureProgramId);
|
|
|
+ if (Objects.nonNull(obeCourseRequirementReport) && Objects.nonNull(obeCourseRequirementReport.getRequirementDetail())) {
|
|
|
+ obeCourseRequirementDtoList = JSONArray.parseArray(obeCourseRequirementReport.getRequirementDetail(), ObeCourseRequirementDto.class);
|
|
|
+ } else {
|
|
|
+ List<CourseRequirementMatrixDto> courseRequirementMatrixDtoList = obeCourseRequirementMatrixService.getMatrix(cultureProgramId);
|
|
|
+ if (!CollectionUtils.isEmpty(courseRequirementMatrixDtoList)) {
|
|
|
+ log.info("courseRequirementMatrixDto:{}", JacksonUtil.parseJson(courseRequirementMatrixDtoList));
|
|
|
+ List<ObeCourseOutline> obeCourseOutlineList = obeCourseOutlineService.findByCultureProgramId(cultureProgramId);
|
|
|
+ if (!CollectionUtils.isEmpty(obeCourseOutlineList)) {
|
|
|
+ Map<Long, List<ObeSubRequirementsDto>> obeSubRequirementsDtoMap = new LinkedHashMap<>();
|
|
|
+ for (ObeCourseOutline obeCourseOutline : obeCourseOutlineList) {
|
|
|
+ obeCourseRequirementReportService.matrixCourseReportInfo(courseRequirementMatrixDtoList, obeCourseOutline.getId(),
|
|
|
+ null, obeCourseRequirementDtoList, obeSubRequirementsDtoMap);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(SystemConstant.LOG_ERROR, e);
|
|
|
+ if (e instanceof ApiException) {
|
|
|
+ ResultUtil.error((ApiException) e, ((ApiException) e).getCode(), e.getMessage());
|
|
|
+ } else {
|
|
|
+ ResultUtil.error(e.getMessage());
|
|
|
+ }
|
|
|
+ } finally {
|
|
|
+ redisUtil.releaseLock(lockKey);
|
|
|
}
|
|
|
return ResultUtil.ok(obeCourseRequirementDtoList);
|
|
|
}
|