|
|
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.yingyangfly.common.utils.DateUtils;
|
|
|
import com.yingyangfly.core.domain.*;
|
|
|
import com.yingyangfly.core.dto.AppCurrentLoginUser;
|
|
|
+import com.yingyangfly.core.dto.CurrentLoginUser;
|
|
|
import com.yingyangfly.core.enums.GameTypeEnums;
|
|
|
import com.yingyangfly.core.mapper.AppUserMapper;
|
|
|
import com.yingyangfly.core.mapper.ReviewMapper;
|
|
|
@@ -18,7 +19,9 @@ import com.yingyangfly.core.service.GameTaskService;
|
|
|
import com.yingyangfly.core.service.ReviewService;
|
|
|
import com.yingyangfly.core.util.DateUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.jacoco.agent.rt.internal_035b120.core.internal.flow.IFrame;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.security.authentication.BadCredentialsException;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -316,6 +319,90 @@ public class ReviewServiceImpl extends ServiceImpl<ReviewMapper, Review> impleme
|
|
|
return returnList;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> printReviewResultDetail(ReviewRecord reviewRecord) {
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+
|
|
|
+ LambdaQueryWrapper<ReviewTask> taskLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ taskLambdaQueryWrapper.eq(ReviewTask::getUserId,reviewRecord.getUserId());
|
|
|
+ taskLambdaQueryWrapper.eq(ReviewTask::getType,reviewRecord.getType());
|
|
|
+ taskLambdaQueryWrapper.isNotNull(ReviewTask::getReviewTime);
|
|
|
+ taskLambdaQueryWrapper.eq(ReviewTask::getStatus ,"1");
|
|
|
+ taskLambdaQueryWrapper.orderByDesc(ReviewTask::getReviewTime);
|
|
|
+ taskLambdaQueryWrapper.last("LIMIT 7");
|
|
|
+ List<ReviewTask> reviewTasks = reviewTaskMapper.selectList(taskLambdaQueryWrapper);
|
|
|
+ for (ReviewTask reviewTask : reviewTasks) {
|
|
|
+ Integer totalPointsByReviewTaskId = 0;
|
|
|
+ if (reviewRecord.getType().equals("MMSE")){
|
|
|
+ totalPointsByReviewTaskId = reviewRecordMapper.getTotalPointsByReviewTaskId(String.valueOf(reviewTask.getId()));
|
|
|
+ }else {
|
|
|
+ LambdaQueryWrapper<ReviewRecord> recordLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ recordLambdaQueryWrapper.eq(ReviewRecord::getReviewTaskId,String.valueOf(reviewTask.getId()));
|
|
|
+ List<ReviewRecord> reviewRecords = reviewRecordMapper.selectList(recordLambdaQueryWrapper);
|
|
|
+ totalPointsByReviewTaskId = getI(reviewRecords);
|
|
|
+ }
|
|
|
+ reviewTask.setTotalPoints(totalPointsByReviewTaskId);
|
|
|
+ }
|
|
|
+ map.put("reviewTasks",reviewTasks);
|
|
|
+
|
|
|
+ LambdaQueryWrapper<ReviewRecord> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(ReviewRecord::getReviewTaskId,reviewRecord.getReviewTaskId());
|
|
|
+ List<ReviewRecord> reviewRecordList = reviewRecordMapper.selectList(lambdaQueryWrapper);
|
|
|
+ Map<Long,Integer> reviewIdScoreMap = new HashMap<>();
|
|
|
+ // 得分
|
|
|
+ Integer totalPoints = 0;
|
|
|
+ for (ReviewRecord reviewRecord1 : reviewRecordList) {
|
|
|
+ Review review = reviewMapper.selectById(reviewRecord1.getReviewId());
|
|
|
+ reviewRecord1.setViewType(review.getViewType());
|
|
|
+ reviewRecord1.setType(review.getType());
|
|
|
+ if (ObjectUtils.isNotEmpty(reviewRecord1.getScore())){
|
|
|
+ totalPoints = totalPoints+Integer.parseInt(reviewRecord1.getScore());
|
|
|
+ reviewIdScoreMap.put(reviewRecord1.getReviewId(),Integer.parseInt(reviewRecord1.getScore()));
|
|
|
+ }
|
|
|
+ if (reviewRecord.getType().equals("MMSE")){
|
|
|
+ if (reviewRecord1.getReviewId()==30L){
|
|
|
+ if (ObjectUtils.isNotEmpty(reviewRecord1.getReviewAnswer())){
|
|
|
+ map.put("url1",reviewRecord1.getReviewAnswer());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ if (reviewRecord1.getReviewId()==33L){
|
|
|
+ if (ObjectUtils.isNotEmpty(reviewRecord1.getReviewAnswer())){
|
|
|
+ map.put("url1",reviewRecord1.getReviewAnswer());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (reviewRecord1.getReviewId()==38L){
|
|
|
+ if (ObjectUtils.isNotEmpty(reviewRecord1.getReviewAnswer())){
|
|
|
+ map.put("url2",reviewRecord1.getReviewAnswer());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map.put("reviewIdScoreMap",reviewIdScoreMap);
|
|
|
+ map.put("reviewRecordList",reviewRecordList);
|
|
|
+ // 认知域 得分
|
|
|
+ Map<String, Integer> scoreSumByViewType = reviewRecordList.stream()
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ ReviewRecord::getViewType, // 按 viewType 分组
|
|
|
+ Collectors.summingInt(record -> Integer.parseInt(record.getScore())) // 将 score 转换为 int 并求和
|
|
|
+ ));
|
|
|
+
|
|
|
+ map.put("scoreSumByViewType",scoreSumByViewType);
|
|
|
+
|
|
|
+ // 总得分
|
|
|
+ if (reviewRecord.getType().equals("MMSE")){
|
|
|
+ map.put("totalPoints",totalPoints);
|
|
|
+ }else {
|
|
|
+ map.put("totalPoints",getI(reviewRecordList));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ CurrentLoginUser currentUser = tokenUtil.getCurrentUser();
|
|
|
+ // 所属医院
|
|
|
+ map.put("orgName",currentUser.getOrgName());
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取每一条数据得分
|
|
|
* @param reviewRecords
|