hurixing 1 سال پیش
والد
کامیت
14cf7959af

+ 9 - 0
hcp-app/src/main/java/com/yingyangfly/app/controller/ReviewTaskController.java

@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yingyangfly.common.dto.ResultResponse;
 import com.yingyangfly.common.log.annotation.TraceLog;
 import com.yingyangfly.core.annotation.Log;
+import com.yingyangfly.core.domain.ReviewRecord;
 import com.yingyangfly.core.domain.ReviewTask;
 import com.yingyangfly.core.dto.AppCurrentLoginUser;
 import com.yingyangfly.core.dto.ReviewTaskDto;
@@ -64,5 +65,13 @@ public class ReviewTaskController {
         return ResultResponse.success(list);
     }
 
+    @ApiOperation("查询测评项任务信息")
+    @PostMapping(value = "/selectReviewTask")
+    @TraceLog
+    public ResultResponse selectReviewTask(@RequestBody ReviewRecord reviewRecord) {
+        ReviewTask reviewTask = reviewTaskService.getById(reviewRecord.getReviewTaskId());
+        return ResultResponse.success(reviewTask);
+    }
+
 
 }

+ 1 - 0
hcp-app/src/main/resources/application.yml

@@ -28,6 +28,7 @@ security:
       - /app/getCheckCode
       - /app/loginMsg
       - /app/logout
+      - /app/selectNewVersion
       - /info
       - /logout
       - /pub/app/**

+ 6 - 0
hcp-core/src/main/java/com/yingyangfly/core/domain/ReviewTask.java

@@ -1,9 +1,12 @@
 package com.yingyangfly.core.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.yingyangfly.common.domain.BaseEntity;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class ReviewTask extends BaseEntity {
@@ -34,4 +37,7 @@ public class ReviewTask extends BaseEntity {
 
     private String orgName;
 
+    @TableField(exist = false)
+    List<String> scaleNameList;
+
 }

+ 54 - 22
hcp-core/src/main/java/com/yingyangfly/core/service/impl/ReviewServiceImpl.java

@@ -103,36 +103,46 @@ public class ReviewServiceImpl extends ServiceImpl<ReviewMapper, Review> impleme
         reviewTask.setReviewTime(DateUtils.getTime());
         reviewTaskMapper.update(reviewTask,reviewTaskQueryWrapper);
         ReviewTask reviewTask1 = reviewTaskMapper.selectById(list.get(0).getReviewTaskId());
+
+        LambdaQueryWrapper<ReviewTask> taskQueryWrapper = new LambdaQueryWrapper<>();
+        taskQueryWrapper.eq(ReviewTask::getReviewTaskId,reviewTask1.getReviewTaskId());
+        taskQueryWrapper.eq(ReviewTask::getStatus,0);
+        Long count = reviewTaskMapper.selectCount(taskQueryWrapper);
+        AppUser appUser = appUserMapper.selectById(appCurrentLoginUser.getId());
+        AppUser appUserUpdate = new AppUser();
+        appUserUpdate.setId(appUser.getId());
         if (reviewTask1.getType().equals("MMSE") || reviewTask1.getType().equals("MOCA")){
             //更新脑力值
             int i = getI(list);
-            int synthesisScore = (new BigDecimal(i).divide(new BigDecimal("30"))).multiply(new BigDecimal("500")).setScale(0, RoundingMode.DOWN).intValue();
-
-
-            AppUser appUserUpdate = new AppUser();
-            AppUser appUser = appUserMapper.selectById(appCurrentLoginUser.getId());
-            appUserUpdate.setId(appUser.getId());
-            if(appUser.getTestFlag().equals("2")){
-
+            int synthesisScore = (new BigDecimal(i).divide(new BigDecimal("30"), RoundingMode.HALF_UP))
+                    .multiply(new BigDecimal("500"))
+                    .setScale(0, RoundingMode.DOWN)
+                    .intValue();
+            if(appUser.getMentalEnergy() != null && appUser.getMentalEnergy()>0){
                 appUserUpdate.setMentalEnergy(synthesisScore+appUser.getMentalEnergy());
-                appUserUpdate.setTestFlag("0");
-                appUserMapper.updateById(appUserUpdate);
-
-                // 完成测评任务,推荐专属任务
-                List<Game> gameList = recommendFacade.recommendationA(appUser);
-                GameRecommendRule ruleA = recommendFacade.getRule("A");
-                List<GameUser> gameUsers = recommendFacade.buildGameUsers(gameList, appUser, ruleA);
-
-                gameTaskService.generateTask(gameUsers, ruleA.getOrgCode(), ruleA.getOrgName());
-                log.info("<<<<<<<<<<<<保存推荐游戏记录>>>>>>>>>>>>>>");
-                boolean gameRecommend = gameRecommendRecordService.saveBatch(gameUsers, ruleA.getOrgCode(), ruleA.getOrgName(), ruleA.getRecommendPlayClass());
-                log.info("<<<<<<<<<<<<保存推荐游戏记录响应:{}>>>>>>>>>>>>>>",gameRecommend);
             }else{
                 appUserUpdate.setMentalEnergy(synthesisScore);
-                appUserUpdate.setTestFlag("2");
-                appUserMapper.updateById(appUserUpdate);
             }
         }
+
+        if (count == 1) {
+            appUserUpdate.setTestFlag("2");
+        }
+
+        if (count == 0 && appUser.getTestFlag().equals("2")){
+            appUserUpdate.setTestFlag("0");
+
+            // 完成测评任务,推荐专属任务
+            List<Game> gameList = recommendFacade.recommendationA(appUser);
+            GameRecommendRule ruleA = recommendFacade.getRule("A");
+            List<GameUser> gameUsers = recommendFacade.buildGameUsers(gameList, appUser, ruleA);
+
+            gameTaskService.generateTask(gameUsers, ruleA.getOrgCode(), ruleA.getOrgName());
+            log.info("<<<<<<<<<<<<保存推荐游戏记录>>>>>>>>>>>>>>");
+            boolean gameRecommend = gameRecommendRecordService.saveBatch(gameUsers, ruleA.getOrgCode(), ruleA.getOrgName(), ruleA.getRecommendPlayClass());
+            log.info("<<<<<<<<<<<<保存推荐游戏记录响应:{}>>>>>>>>>>>>>>",gameRecommend);
+        }
+        appUserMapper.updateById(appUserUpdate);
     }
 
 
@@ -152,6 +162,7 @@ public class ReviewServiceImpl extends ServiceImpl<ReviewMapper, Review> impleme
             map.put("reviewContent", "总体认知能力");
         }
         int i = getI(reviewRecords);
+        map.put("type", reviewTask.getType());
         map.put("reviewScore",i);
         if(i>=421){
             map.put("result","正常");
@@ -174,11 +185,31 @@ public class ReviewServiceImpl extends ServiceImpl<ReviewMapper, Review> impleme
 //        reviewTaskQueryWrapper.eq("review_task_id",reviewRecord.getReviewTaskId());
         ReviewTask reviewTask = reviewTaskMapper.selectById(reviewRecord.getReviewTaskId());
 
+        if ("STROOP".equals(reviewTask.getType())) {
+            List<Map<String, Object>> mapList = new ArrayList<>();
+            for (ReviewRecord record : reviewRecords) {
+                Map<String,Object> map = new HashMap<>();
+                map.put("type","执行能力");
+                List<Map<String, Object>> list = new ArrayList<>();
+                Map<String,Object> m = new HashMap<>();
+                m.put("score",50-Integer.parseInt(record.getReviewAnswer()));
+                m.put("scoreRange",record.getUsedTime());
+                m.put("scaleType",reviewTask.getType());
+                Review review = reviewMapper.selectById(record.getReviewId());
+                m.put("reviewType",review.getReviewDesc());
+                list.add(m);
+                map.put("list",list);
+                mapList.add(map);
+            }
+            return mapList;
+        }
+
         //根据type获取viewType、reviewType
         QueryWrapper<Review> reviewWrapper = new QueryWrapper<>();
         reviewWrapper.eq("type",reviewTask.getType());
         reviewWrapper.select("view_type ");
         reviewWrapper.groupBy("view_type");
+        reviewWrapper.gt("review_score",0);
         List<Map<String, Object>> maps = reviewMapper.selectMaps(reviewWrapper);
         Map<String, Object> returnMap = new HashMap<>();
         for (Map<String, Object> map : maps) {
@@ -188,6 +219,7 @@ public class ReviewServiceImpl extends ServiceImpl<ReviewMapper, Review> impleme
             QueryWrapper<Review> reviewTypeWrapper = new QueryWrapper<>();
             reviewTypeWrapper.eq("view_type",viewType);
             reviewTypeWrapper.eq("type",reviewTask.getType());
+            reviewTypeWrapper.gt("review_score",0);
             reviewTypeWrapper.select("review_type ");
             reviewTypeWrapper.groupBy("review_type");
             List<Map<String, Object>> reviewTypeMap = reviewMapper.selectMaps(reviewTypeWrapper);

+ 80 - 62
hcp-core/src/main/java/com/yingyangfly/core/service/impl/ReviewTaskServiceImpl.java

@@ -79,36 +79,50 @@ public class ReviewTaskServiceImpl extends ServiceImpl<ReviewTaskMapper, ReviewT
 
 
     @Override
-    public List<List<ReviewTaskDto>> his(ReviewTask reviewTask,Long userId) {
+    public List<List<ReviewTaskDto>> his(ReviewTask reviewTask, Long userId) {
         QueryWrapper<ReviewTask> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("status","1");
-        if(StringUtils.isNotBlank(reviewTask.getType())){
-            queryWrapper.eq("type",reviewTask.getType());
-        }
-        queryWrapper.eq("user_id",userId);
-        queryWrapper.orderByDesc("create_time");
-        List<ReviewTask> records = reviewTaskMapper.selectList(queryWrapper);
-        List<ReviewTaskDto> recordDtos = new ArrayList<>();
-        for (ReviewTask record : records) {
-            ReviewTaskDto reviewTaskDto =new ReviewTaskDto();
-            BeanUtils.copyProperties(record,reviewTaskDto);
-            recordDtos.add(reviewTaskDto);
-            if(record.getStatus().equals("1")){
-                ReviewRecord reviewRecord = new ReviewRecord();
-                reviewRecord.setReviewTaskId(String.valueOf(record.getId()));
-                Map<String, Object> reviewResult = reviewService.findReviewResult(reviewRecord);
-                reviewTaskDto.setResult(reviewResult);
-            }
+        queryWrapper.eq("status", "1")
+                .eq("user_id", userId)
+                .orderByDesc("create_time");
+
+        if (StringUtils.isNotBlank(reviewTask.getType())) {
+            queryWrapper.eq("type", reviewTask.getType());
         }
-        Map<String, List<ReviewTaskDto>> groups = recordDtos.stream().collect(Collectors.groupingBy(ReviewTaskDto::getReviewTaskId));
 
-        List<List<ReviewTaskDto>>  returnList = new ArrayList<>();
+        List<ReviewTask> records = reviewTaskMapper.selectList(queryWrapper);
+        List<ReviewTaskDto> recordDtos = records.stream()
+                .map(this::convertToDto)
+                .collect(Collectors.toList());
+
+        Map<String, List<ReviewTaskDto>> groupedByTaskId = recordDtos.stream()
+                .collect(Collectors.groupingBy(ReviewTaskDto::getReviewTaskId));
+
+        Map<Date, List<ReviewTaskDto>> sortedByCreateTime = groupedByTaskId.entrySet().stream()
+                .collect(Collectors.toMap(
+                        entry -> entry.getValue().get(0).getCreateTime(),
+                        Map.Entry::getValue,
+                        (existing, replacement) -> existing,
+                        LinkedHashMap::new
+                ));
+
+        List<Map.Entry<Date, List<ReviewTaskDto>>> entryList = new ArrayList<>(sortedByCreateTime.entrySet());
+        entryList.sort((entry1, entry2) -> entry2.getKey().compareTo(entry1.getKey()));
+
+        return entryList.stream()
+                .map(Map.Entry::getValue)
+                .collect(Collectors.toList());
+    }
 
-        Set<String> keySet = groups.keySet();
-        for (String key:keySet) {
-            returnList.add(groups.get(key));
+    private ReviewTaskDto convertToDto(ReviewTask record) {
+        ReviewTaskDto reviewTaskDto = new ReviewTaskDto();
+        BeanUtils.copyProperties(record, reviewTaskDto);
+        if ("1".equals(record.getStatus())) {
+            ReviewRecord reviewRecord = new ReviewRecord();
+            reviewRecord.setReviewTaskId(String.valueOf(record.getId()));
+            Map<String, Object> reviewResult = reviewService.findReviewResult(reviewRecord);
+            reviewTaskDto.setResult(reviewResult);
         }
-        return returnList;
+        return reviewTaskDto;
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -117,43 +131,47 @@ public class ReviewTaskServiceImpl extends ServiceImpl<ReviewTaskMapper, ReviewT
         log.info("添加测评任务start!!!"+ reviewTask.getUserId());
         CurrentLoginUser currentUser = tokenUtil.getCurrentUser();
         String taskId = IdUtils.get32UUID();
-        reviewTask.setReviewTaskId(taskId);
-        if(currentUser != null){
-            reviewTask.setCreateBy(currentUser.getUsername());
-        }else{
-            reviewTask.setCreateBy("系统");
-        }
-        reviewTask.setType("MOCA");
-        reviewTask.setReviewTaskName("MOCA测评任务");
-        reviewTask.setCreateTime(new Date());
-        reviewTask.setStatus("0");
-        reviewTaskMapper.insert(reviewTask);
-        ReviewTask reviewTask2 = new ReviewTask();
-        reviewTask2.setUserId(reviewTask.getUserId());
-        reviewTask2.setReviewTaskId(taskId);
-        if(currentUser != null){
-            reviewTask2.setCreateBy(currentUser.getUsername());
-        }else{
-            reviewTask2.setCreateBy("系统");
-        }
-        reviewTask2.setType("MMSE");
-        reviewTask2.setReviewTaskName("MMSE测评任务");
-        reviewTask2.setCreateTime(new Date());
-        reviewTask2.setStatus("0");
-        reviewTaskMapper.insert(reviewTask2);
-        ReviewTask reviewTaskNCSE = new ReviewTask();
-        reviewTaskNCSE.setUserId(reviewTask.getUserId());
-        reviewTaskNCSE.setReviewTaskId(taskId);
-        if(currentUser != null){
-            reviewTaskNCSE.setCreateBy(currentUser.getUsername());
-        }else{
-            reviewTaskNCSE.setCreateBy("系统");
-        }
-        reviewTaskNCSE.setType("NCSE");
-        reviewTaskNCSE.setReviewTaskName("NCSE测评任务");
-        reviewTaskNCSE.setCreateTime(new Date());
-        reviewTaskNCSE.setStatus("0");
-        reviewTaskMapper.insert(reviewTaskNCSE);
+        reviewTask.getScaleNameList().forEach(item ->{
+            ReviewTask newTask = new ReviewTask();
+            newTask.setReviewTaskId(taskId);
+            newTask.setUserId(reviewTask.getUserId());
+            if(currentUser != null){
+                newTask.setCreateBy(currentUser.getUsername());
+            }else{
+                newTask.setCreateBy("系统");
+            }
+            newTask.setType(item);
+            newTask.setReviewTaskName(item+"测评任务");
+            newTask.setCreateTime(new Date());
+            newTask.setStatus("0");
+            reviewTaskMapper.insert(newTask);
+        });
+//        ReviewTask reviewTask2 = new ReviewTask();
+//        reviewTask2.setUserId(reviewTask.getUserId());
+//        reviewTask2.setReviewTaskId(taskId);
+//        if(currentUser != null){
+//            reviewTask2.setCreateBy(currentUser.getUsername());
+//        }else{
+//            reviewTask2.setCreateBy("系统");
+//        }
+//        reviewTask2.setType("MMSE");
+//        reviewTask2.setReviewTaskName("MMSE测评任务");
+//        reviewTask2.setCreateTime(new Date());
+//        reviewTask2.setStatus("0");
+//        reviewTaskMapper.insert(reviewTask2);
+//        ReviewTask reviewTaskNCSE = new ReviewTask();
+//        reviewTaskNCSE.setUserId(reviewTask.getUserId());
+//        reviewTaskNCSE.setReviewTaskId(taskId);
+//        if(currentUser != null){
+//            reviewTaskNCSE.setCreateBy(currentUser.getUsername());
+//        }else{
+//            reviewTaskNCSE.setCreateBy("系统");
+//        }
+//        reviewTaskNCSE.setType("NCSE");
+//        reviewTaskNCSE.setReviewTaskName("NCSE测评任务");
+//        reviewTaskNCSE.setCreateTime(new Date());
+//        reviewTaskNCSE.setStatus("0");
+//        reviewTaskMapper.insert(reviewTaskNCSE);
         //修改患者测评状态为未测评
         AppUser appUser = new AppUser();
         appUser.setTestFlag("1");

+ 9 - 0
hcp-large-screen/src/main/java/com/yingyangfly/large/screen/controller/ReviewTaskController.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yingyangfly.common.dto.ResultResponse;
 import com.yingyangfly.common.log.annotation.TraceLog;
 import com.yingyangfly.core.annotation.Log;
+import com.yingyangfly.core.domain.ReviewRecord;
 import com.yingyangfly.core.domain.ReviewTask;
 import com.yingyangfly.core.dto.AppCurrentLoginUser;
 import com.yingyangfly.core.dto.ReviewTaskDto;
@@ -12,6 +13,7 @@ import com.yingyangfly.core.security.util.TokenUtil;
 import com.yingyangfly.core.service.ReviewTaskService;
 import com.yingyangfly.core.util.EntityConverter;
 import com.yingyangfly.core.vo.ReviewTaskDtoVo;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -61,5 +63,12 @@ public class ReviewTaskController {
         return ResultResponse.success(list);
     }
 
+    @ApiOperation("查询测评项任务信息")
+    @PostMapping(value = "/selectReviewTask")
+    @TraceLog
+    public ResultResponse selectReviewTask(@RequestBody ReviewRecord reviewRecord) {
+        ReviewTask reviewTask = reviewTaskService.getById(reviewRecord.getReviewTaskId());
+        return ResultResponse.success(reviewTask);
+    }
 
 }